Yubikey Двухфакторная аутентификация Full-Disk Encryption через LUKS

20

Недавно я приобрел Yubikey Neo - отличное устройство для проверки второго фактора второго аппаратного обеспечения. Он в первую очередь предназначен для использования с одноразовыми паролями и появляющимся протоколом U2F, но так как Yubikey версии 2 также поддерживает аутентификацию HMAC-SHA1 с запросом-ответом. HMAC-SHA1 объединяет секретный ключ (хранящийся внутри Yubikey) и объединяет его с парольной фразой для генерации ответа.

Как я могу объединить Yubikey с моей установкой Ubuntu FDE для использования 2FA с моим зашифрованным жестким диском?     

задан seanlano 22.03.2015 в 12:13
источник

1 ответ

20

Группа, называемая PrivacyIdea , создала небольшой пакет для добавления HMAC-SHA1 для initramfs, что означает, что Ubuntu может запросить у вас вызов передать Yubikey, а затем использовать ответ, чтобы разблокировать том LUKS. По большей части Я следую этим инструкциям , с некоторыми добавленными комментариями. Процесс на самом деле очень легко сделать.

Я тестировал это на Ubuntu 14.04, 16.04 и 17.04; используя Юбики Нео. Он должен работать с любым новым Yubikey с прошивкой 2.0+ и с любой версией Ubuntu после 14.04. Могут также существовать другие аппаратные устройства HMAC-SHA1 с вызовом-ответами, с которыми это работает, но я не знаю ни одного, что существует. Как всегда, убедитесь, что у вас есть резервная копия данных перед продолжением - здесь не должно быть никаких проблем, но всегда есть шанс, что это уничтожит все на вашем компьютере. Эти инструкции не содержат никаких гарантий.

Обновление: Поскольку Ubuntu 16.04, необходимые пакеты находятся в основных репозиториях, и PPA не требуется.

Добавьте комментарий, если у вас есть вопросы!

0. Предпосылки

Для этого вам уже нужно будет настроить и работать с полным диском Шифрования LUKS. Вы можете сделать это, выбрав соответствующий параметр при установке Ubuntu. Для обеспечения максимальной безопасности во время установки вы должны иметь очень сильную кодовую фразу. Если ваша кодовая фраза не до нуля, вы должны измените его на лучший , прежде чем продолжить ( более подробные инструкции здесь ).

Нижеприведенный метод не заменит существующие фразы, но вместо этого добавит еще одну кодовую фразу в один из слотов LUKS. Следовательно, если вы потеряете свой Yubikey, вы все равно сможете разблокировать свой компьютер с помощью любой существующей фразы - я предлагаю вам занести в нее примечание и спрятать его где-нибудь в безопасности - вам также понадобится несколько раз в течение этой процедуры. Ваша новая кодовая фраза Yubikey должна по-прежнему быть достаточно сильной, но не должна быть такой длинной, как кодовая фраза, которую вы использовали при установке Ubuntu.

1. Добавить PrivacyIdea PPA и установить пакет

В Ubuntu 14.04

Откройте терминал и запустите следующую команду:

sudo add-apt-repository ppa:privacyidea/privacyidea 

Нажмите "Ввод" при появлении запроса, затем запустите:

sudo apt-get update

Затем установите пакет с помощью:

sudo apt-get install yubikey-luks

В Ubuntu 16.04 (и позже)

Нет необходимости в PPA, вы можете установить пакет с помощью:

sudo apt-get install yubikey-luks

2. Установите программное обеспечение Yubikey

Если вы используете функциональность HMAC-SHA1 для Yubikey для чего-то еще, вы можете пропустить этот раздел. Он удалит любую конфигурацию во втором слоте Юбикеи, поэтому не выполнять выполнить этот шаг, если вы используете HMAC-SHA1 для других целей с этим Yubikey.

Вам нужно настроить свой Yubikey для работы с Ubuntu, установив необходимое программное обеспечение, из Yubico PPA на Ubuntu 14.04 или из основного репозитория Ubuntu 16.04 и более поздних версий.

В Ubuntu 14.04

Если вы этого еще не сделали, добавьте PPA и установите пакет с помощью:

sudo add-apt-repository ppa:yubico/stable
sudo apt-get update
sudo apt-get install yubikey-personalization

В Ubuntu 16.04 (и позже)

sudo apt-get install yubikey-personalization

3. Инициализация слота Yubikey для HMAC-SHA1

Теперь нам нужно запрограммировать второй слот Yubikey с конфигурацией HMAC-SHA1. Это приведет к стиранию предыдущей конфигурации слота, которая по умолчанию пуста. Опять же, если вы используете HMAC-SHA1 для чего-то еще не , выполните эту команду - он удалит вашу конфигурацию. Вы можете безопасно использовать тот же секретный ключ внутри Yubikey для этой настройки LUKS, как и для других ваших целей. (Например, с другим компьютером, использующим LUKS + Yubikey).

ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible

Терминал отобразит некоторую информацию об сделанных изменениях. Вам не нужно замечать это, но он покажет секретный ключ, используемый Yubikey в алгоритме HMAC-SHA1 для вычисления ответа при задании.

4. Зарегистрировать Юбики в слот LUKS

Теперь мы отредактируем конфигурацию LUKS, чтобы добавить ответ от Yubikey как один из ключей дешифрования.

Раздел, который нам нужно указать, зависит от того, используете ли вы BIOS или UEFI для загрузки вашей машины. Для BIOS зашифрованный том по умолчанию равен /dev/sda5 , для UEFI он равен /dev/sda3 . Вы можете проверить это, открыв утилиту disks и подтвердив путь к разделу - это должно быть либо sda3 , либо sda5 .

Запустите это в терминале:

sudo yubikey-luks-enroll -d /dev/sda3 -s 7

Это будет записываться в слот 7 конфигурации LUKS, следуйте подсказкам в установщике (они немного меняются в зависимости от того, какая версия вы используете).

Тогда все готово! Вы должны перезагрузить компьютер, и если ваш Yubikey вставлен, вы можете ввести пароль для вызова и использовать Yubikey в качестве второго фактора для разблокировки раздела LUKS и загрузки системы. После того, как вы расшифровали жесткий диск, вы можете удалить Yubikey.

Если вы потеряете свой Юбикеи, вы все равно можете ввести свою кодовую фразу (надеюсь, очень длинную), чтобы расшифровать жесткий диск, а затем повторите эту процедуру, чтобы зарегистрировать новый Юбикеи.

Изменение кодовой фразы для шифрования

Изменение пароля на более позднюю дату довольно просто, просто используйте эту команду для сброса секретного ключа. Не обязательно переустанавливать секретный ключ, но это не повредит. Имейте в виду, что это уничтожит предыдущий секретный ключ, не , если вы используете HMAC-SHA1 для чего-то еще с этим Yubikey. (Например, с другим компьютером, использующим LUKS + Yubikey).

 ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible

Затем, аналогично Шаг 4 , чтобы зарегистрировать новый пароль в слоте ключа LUKS, за исключением выбора слота 7 с помощью этой команды:

sudo yubikey-luks-enroll -d /dev/sda3 -s 7 -c

При запросе Enter any remaining passphrase используйте вашу фразу-пароль, а не кодовую фразу Yubikey. Затем дважды введите новую кодовую фразу Yubikey, а затем, наконец, вам нужно будет ввести кодовую фразу для резервного копирования в последний раз.

Теперь ваша старая кодовая фраза Yubikey была удалена, и только ваш новый расшифровывает жесткий диск. Ваша предыдущая кодовая фраза будет по-прежнему одинаковой. Вы можете изменить эту кодовую фразу, следуя ссылкам в Шаг 0 .

Примечание по последствиям безопасности

Добавление Yubikey добавит определенный уровень безопасности вашей системе - кто-то должен знать как ключевую фразу вызова, так и ваш Yubikey сможет разблокировать ваш жесткий диск (или найти вашу начальную кодовую фразу, которую вы сейчас используете как резервная копия). Тем не менее, технически возможно, чтобы злоумышленник расшифровывал жесткий диск, если он знает вашу кодовую фразу (например, "плечевой серфинг", когда вы вводите его), и может получить доступ к вашему Юбикею только на короткое время. Используя контрольную фразу, они могли получить ответ от Yubikey и сохранить его, а затем использовать его для дешифрования жесткого диска в любое время без Yubikey. Или, опять же, если злоумышленник или часть вредоносного ПО знали вашу кодовую фразу и могли запускать код на машине, подключенной к вашему Юбикею, они также могли бы решить проблему и сохранить ответ. Поэтому очень важно быть бдительными при вводе вашей кодовой фразы, а также гарантировать, что у вас всегда есть Юбики в безопасном месте. Вы также должны только подключать его к машине, которой вы доверяете. Если вы потеряете информацию о своем Yubikey и подозреваете, что кто-то, возможно, использовал его, чтобы попытаться изучить ключ дешифрования, выполните шаги 2 и 3 снова, чтобы сбросить секретный ключ внутри Yubikey и выбрать новую ключевую фразу. Обратите внимание, что если противнику удалось узнать одну из ваших кодовых фраз (либо ответ HMAC-SHA1 от Yubikey, либо вашу резервную копию), они могут сделать резервную копию главного ключа LUKS, а затем использовать его для дешифрования вашего жесткого диска, даже если вы измените кодовую фразу в будущем. Страница man для cryptsetup объясняет это, посмотрите раздел luksHeaderBackup . Если вы подозреваете, что это произошло, вы должны создать совершенно новый том LUKS для защиты ваших данных.     

ответ дан seanlano 22.03.2015 в 12:13
источник