Использование Yubikey с LUKS на съемном устройстве хранения данных

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

Я использую yubikey-luks, чтобы добавить, что мой HMAC-SHA1 хешировал пароль к слоту 7 устройства.

  • Проблема: cryptsetup только бросает вызов yubikey на начальной загрузке, и я открываюсь, устройство однажды вошло в систему.

Однако я могу использовать ykchalresp вручную бросить вызов моему Yubikey.

  • Проблема:
  • Это вовлекает приписывание моего пароля в простой текст в терминал.
  • Даже если я заканчиваю это, я не знаю способ удобно передать это по каналу/ввести к cryptsetup.

Я думал о записи хешированного пароля в файл и использование его как --key-file, но это походит на плохую идею, так как у меня будет ключ к моему наложению устройства вокруг.

Сообщите мне, форматирую ли я команду неправильно, или если у Вас есть путь вокруг любой из моих проблем!

0
задан 19 August 2017 в 20:08

2 ответа

я предлагаю, чтобы Вы использовали этот маленький хороший проект: yubikey-full-disk-encryption на GitHub,

Это - набор сценариев к enroll и open шифруемое устройство. README.md документы довольно хорошо, что необходимо сделать. Это также имеет инструкцию установить, автодешифруют с Yubikey на начальной загрузке.

В основном необходимо сделать следующее:

  • git clone/download проект и cd к его папке
  • sudo make install устанавливает проект
  • необходимо изменить конфигурационный файл в /etc/ykdfe.con, в особенности я изменил следующие опции
    • YKFDE_DISK_UUID (необходимый, можно получить его с командой blkid /dev/sdX, где /dev/sdX название Вашего внешнего устройства),
    • YKFDE_LUKS_NAME(необходимый, хорошее имя luks-<uuid-of-the encrypted-volume>)
    • YKFDE_CHALLENGE(дополнительный, но Вам нужен он для включения 2FA),
    • YKFDE_CHALLENGE_SLOT (дополнительный, по умолчанию это установлено на 1, но помните, что слот 1 содержит конфигурацию для Yubikey OTP
    • YKFDE_CHALLENGE_PASSWORD_NEEDED, если Вы хотите также ввести свой пароль (так, чтобы Yubikey действовал как аутентификация второго фактора, вместо того, чтобы быть достаточно для разблокирования объема отдельно),

Затем можно следовать инструкциям в README.md чтобы создать Yubikey бросают вызов ответу и добавить его к зашифрованному тому как дополнительный пароль.

В конце я советую Вам делать a make test это протестирует конфигурацию.

У меня есть свой Yubikey, работающий с зашифрованным циклическим устройством, таким образом, я думаю, что он должен также работать с внешним жестким диском.

Надеюсь, это поможет.

0
ответ дан 2 November 2019 в 09:58

Я сделал именно то, что вы хотели. Как я это сделал, описано ниже. Это правильный путь? Ну ... это обсуждается, но у меня это работает. Надеюсь, это поможет тебе. Кроме того, я не использую Ubuntu, но он должен работать так же в Ubuntu

. Сначала я настраиваю конфигурацию Yubikey, редактируя /etc/ykfde.conf установите YKFDE_CHALLENGE на длинную случайную строку, например 40 символов или около того. Неважно, что это такое, просто убедитесь, что оно случайное. Это позволяет мне расшифровать мой диск, не запрашивая секретный пароль. Также установите YKFDE_CHALLENGE_SLOT на любой слот на вашем Yubikey, который вы хотите использовать. (Убедитесь, что вы настроили свой Yubikey для ответа на запрос HMAC-SHA1 в этом слоте)

Затем я настраиваю свой диск на шифрование с помощью следующих команд:
(предполагается, что вы уже разбили диск на разделы с помощью fdisk или аналогичной утилиты)

# This will ask you for a password. Set a password so that you
# can decrypt the drive without your Yubikey
sudo cryptsetup luksFormat /dev/sda1

# Next, enroll the Yubikey so that it can decrypt it as well
# When required, touch your Yubikey so it can get a challenge-response
# It'll ask for an existing password, just enter the one you set in the last command
sudo ykfde-enroll -d /dev/sda1 -s 1

# Next decrypt the drive and add a file system
# Enter the password you set in the first command
sudo cryptsetup open /dev/sda1 drive
sudo mkfs.ext4 /dev/mapper/drive

После завершения всех настроек я создал файл с именем mountDrive.sh в моем домашнем каталоге следующим образом:

. /etc/ykfde.conf
ykchalresp -2 "$YKFDE_CHALLENGE" | sudo cryptsetup open /dev/sda1 drive
sudo mount /dev/mapper/drive /run/mount/

Теперь я просто запускаю sh mountDrive.sh
Мой Yubikey мигает, я нажимаю на него, а затем мой диск монтируется в / run / mount

Очевидно, вам нужно будет изменить / dev / sda1 на любое устройство вашего накопителя и замените / run / mount на то место, где вы хотите смонтировать накопитель.

Кроме того, ykchalresp -2 говорит ему использовать слот 2 на моем Yubikey. Измените это на любой слот, который вы настроили в своем / etc / ykfde.conf файл

Еще я установил / etc / sudoers так, чтобы я мог использовать sudo без необходимости вводить свой пароль. Возможно, есть лучший способ сделать это, не используя sudo для расшифровки и монтирования вашего диска ... не уверен ... в любом случае, вот как я это настроил:

Добавить % wheel ALL = (ALL) NOPASSWD: ALL в файл / etc / sudoers .
Добавьте свою учетную запись в группу wheel , например:

me=`whoami`; sudo usermod -a -G wheel "$me"
2
ответ дан 26 February 2020 в 19:13

Другие вопросы по тегам:

Похожие вопросы: