Група під назвою PrivacyIdea створила невеликий пакет, щоб додати до initramfs процедуру реагування на виклик HMAC-SHA1 , що означає, що Ubuntu може запитати вас на виклик, щоб перейти до Yubikey, а потім використовувати відповідь, щоб розблокувати об'єм LUKS. Здебільшого я дотримуюсь цих інструкцій , із деякими доданими коментарями. Процес насправді зробити дуже просто.
Я перевірив це на Ubuntu 14.04, 16.04 та 18.04; за допомогою Yubikey Neo. Він повинен працювати з будь-яким останнім Yubikey, з прошивкою 2.0+ і будь-якою версією Ubuntu після 14.04. Я також протестував Ubuntu 19.04 з Yubikey 5C, потрібна була додаткова робота, але це може бути зроблено для роботи. Можуть також існувати інші апаратні пристрої HMAC-SHA1 на реагування на виклики, з якими це працює, але я не знаю жодного з них. Як завжди, переконайтеся, що у вас є резервна копія даних, перш ніж продовжувати - тут не повинно бути жодних проблем, але завжди є ймовірність, що це знищить усе на вашому комп’ютері. Ці інструкції не мають гарантії.
Оновлення: оскільки Ubuntu 16.04 необхідні пакети знаходяться в основних сховищах і PPA не потрібен.
Додати коментар, якщо у вас є питання!
0. Передумови
Для цього вам уже доведеться налаштувати та працювати шифрування повного диска LUKS. Це можна зробити, вибравши відповідний варіант при установці Ubuntu. Щоб забезпечити максимальну безпеку, у вас має бути обраний дуже сильний пароль під час встановлення. Якщо ваша парольна фраза не подряпається, перед її продовженням слід змінити її на кращу ( детальніші інструкції тут ).
Наведений нижче метод не замінить жодних існуючих парольних фраз, але замість цього додасть іншу парольну фразу до одного із слотів LUKS. Отже, якщо ви втратите Yubikey, ви все одно можете розблокувати комп’ютер, використовуючи будь-яку існуючу парольну фразу - я пропоную вам записати його та сховати його кудись у безпеці - вам також знадобиться кілька разів під час цієї процедури. Ваша нова парольна фраза для виклику Yubikey все ще повинна бути досить сильною, але вона не повинна бути такою ж, як парольна фраза, яку ви використовували під час встановлення Ubuntu.
1. Додайте PPI PrivacyIdea та встановіть пакет
У Ubuntu 14.04
Відкрийте термінал і запустіть таку команду:
sudo add-apt-repository ppa:privacyidea/privacyidea
Натисніть Enter, коли буде запропоновано, а потім запустіть:
sudo apt-get update
Потім встановіть пакет із:
sudo apt-get install yubikey-luks
У Ubuntu 16.04, 18.04
Немає потреби в PPA, ви можете встановити пакет за допомогою:
sudo apt-get install yubikey-luks
У Ubuntu 19.04
Дивіться цю відповідь, як створити yubikey-luks
пакет з джерела для Ubuntu 19.04.
2. Встановіть програмне забезпечення Yubikey
Якщо ви використовуєте функціональність HMAC-SHA1 Yubikey для чогось іншого, ви можете пропустити цей розділ. Це видалить будь-яку конфігурацію у другому слоті 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, 18.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. Зарахуйте Yubikey в слот LUKS
Тепер ми відредагуємо конфігурацію LUKS, щоб додати відповідь від Yubikey як один з ключів розшифровки.
Розділ, який нам потрібно вказати, залежить від того, ви використовуєте BIOS або UEFI для завантаження машини. Для BIOS зашифрований об'єм /dev/sda5
за замовчуванням, для UEFI - на /dev/sda3
. Ви можете перевірити це, відкривши disks
утиліту та підтвердивши шлях розділу - він повинен бути sda3
або sda5
. ПРИМІТКА. На новіших комп'ютерах з NVMe дисками шлях буде чимось подібним /dev/nvme0n1p3
.
Запустити це в терміналі:
sudo yubikey-luks-enroll -d /dev/sda3 -s 7
Це буде записано у слот 7 конфігурації LUKS, дотримуйтесь підказок у програмі встановлення (вони дещо відрізняються залежно від версії, яку ви використовуєте).
Тоді ви все готові! Ви повинні мати можливість перезавантажити комп’ютер, і якщо ваш Yubikey вставлений, ви можете ввести свій пароль для виклику і використовувати Yubikey як другий фактор, щоб розблокувати розділ LUKS і завантажити систему. Після розшифрування жорсткого диска ви можете видалити Yubikey.
Якщо ви втратите Yubikey, ви все одно можете ввести оригінальну (сподіваюсь, дуже довгу) парольну фразу, щоб розшифрувати жорсткий диск, і тоді ви можете повторити цю процедуру ще раз, щоб зареєструвати новий 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. Або, знову ж таки, якщо зловмисник чи зловмисне програмне забезпечення знали вашу парольну фразу і змогли запустити код на машині, підключеній до вашого Yubikey, вони також могли б випробувати проблему та зберегти відповідь. Тому все ще вкрай важливо бути пильними при введенні вашої парольної фрази та гарантувати, що ви завжди матимете Yubikey у безпечному місці. Вам також слід лише коли-небудь підключати його до машини, якій ви довіряєте. Якщо ви втрачаєте інформацію про свій Yubikey і підозрюєте, що хтось, можливо, використовував його, щоб спробувати вивчити ключ розшифровки, виконайте кроки 2 та 3 знову, щоб скинути секретний ключ всередині Yubikey та виберіть нову парольну фразу для виклику. Зауважте, що якщо супротивнику вдалося дізнатися одну з ваших парольних фраз (або відповідь HMAC-SHA1 від Yubikey, або резервну копію), вони могли б зробити резервну копію головного ключа LUKS, а потім використати це для розшифрування вашого жорсткого диска, навіть якщо ви змінюєте парольну фразу в майбутньому. і забезпечити, щоб Ви завжди знаходили Yubikey в безпечному місці. Вам також слід лише коли-небудь підключати його до машини, якій ви довіряєте. Якщо ви втрачаєте інформацію про свій Yubikey і підозрюєте, що хтось, можливо, використовував його, щоб спробувати вивчити ключ розшифровки, виконайте кроки 2 та 3 знову, щоб скинути секретний ключ всередині Yubikey та виберіть нову парольну фразу для виклику. Зауважте, що якщо супротивнику вдалося дізнатися одну з ваших парольних фраз (або відповідь HMAC-SHA1 від Yubikey, або резервну копію), вони могли б зробити резервну копію головного ключа LUKS, а потім використати це для розшифрування вашого жорсткого диска, навіть якщо ви змінюєте парольну фразу в майбутньому. і забезпечити, щоб Ви завжди знаходили Yubikey в безпечному місці. Вам також слід лише коли-небудь підключати його до машини, якій ви довіряєте. Якщо ви втрачаєте інформацію про свій Yubikey і підозрюєте, що хтось, можливо, використовував його, щоб спробувати вивчити ключ розшифровки, виконайте кроки 2 та 3 знову, щоб скинути секретний ключ всередині Yubikey та виберіть нову парольну фразу для виклику. Зауважте, що якщо супротивнику вдалося дізнатися одну з ваших парольних фраз (або відповідь HMAC-SHA1 від Yubikey, або резервну копію), вони могли б зробити резервну копію головного ключа LUKS, а потім використати це для розшифрування вашого жорсткого диска, навіть якщо ви змінюєте парольну фразу в майбутньому. повторно виконайте кроки 2 та 3, щоб скинути секретний ключ всередині Yubikey та вибрати нову парольну фразу для виклику. Зауважте, що якщо супротивнику вдалося дізнатися одну з ваших парольних фраз (або відповідь HMAC-SHA1 від Yubikey, або резервну копію), вони могли б зробити резервну копію головного ключа LUKS, а потім використати це для розшифрування вашого жорсткого диска, навіть якщо ви змінюєте парольну фразу в майбутньому. повторно виконайте кроки 2 та 3, щоб скинути секретний ключ всередині Yubikey та вибрати нову парольну фразу для виклику. Зауважте, що якщо супротивнику вдалося дізнатися одну з ваших парольних фраз (або відповідь HMAC-SHA1 від Yubikey, або резервну копію), вони могли б зробити резервну копію головного ключа LUKS, а потім використати це для розшифрування вашого жорсткого диска, навіть якщо ви змінюєте парольну фразу в майбутньому.Сторінка man для cryptsetup пояснює це, подивіться на розділ luksHeaderBackup . Якщо ви підозрюєте, що це сталося, ви повинні створити абсолютно новий том LUKS для захисту своїх даних.