Завантажувачі Linux, що підтримують повне шифрування диска?


28

Чи є завантажувачі Linux, що підтримують повне шифрування диска (a la TrueCrypt ). Я знаю, що працювали над додаванням підтримки GRUB2 для шифрування, але це, здається, ще не готове. Будь-які інші варіанти?

(Зверніть увагу, що я тут справді маю на увазі повне шифрування диска (включаючи /boot)

Більшість відповідей описують налаштування, де /bootне зашифровано, а деякі з них намагаються пояснити, чому незашифроване /bootповинно бути ОК.

Не вступаючи в дискусію про те, чому мені насправді потрібно / завантажувати, щоб бути зашифрованим, ось стаття, яка описує саме те, що мені потрібно, на основі модифікованої версії GRUB2:

Проблема в тому, що ці зміни, мабуть, не підтримуються в поточній кодовій базі GRUB2 (або, можливо, я щось не помічаю).


так, тут є чудовий підказки
ebal

Відповіді:


20

Я думаю, що поточна версія GRUB2 не підтримує завантаження та розшифрування розділів LUKS сама по собі (вона містить деякі шифри, але, думаю, вони використовуються лише для підтримки пароля). Я не можу перевірити галузь експериментальних розробок, але на сторінці GRUB є деякі підказки, що планується виконати певну роботу, щоб реалізувати те, що ви хочете зробити.

Оновлення (2015) : остання версія GRUB2 (2.00) вже містить код для доступу до зашифрованих розділів LUKS та GELI. (Посилання xercestch.com на ОП за умови згадування перших виправлень для цього, але вони тепер інтегровані в останню версію).

Однак якщо ви намагаєтесь зашифрувати весь диск з міркувань безпеки, зауважте, що незашифрований завантажувач (наприклад, TrueCrypt, BitLocker або модифікований GRUB) забезпечує не більше захисту, ніж незашифрований /bootрозділ (як зазначив СП у коментарі вище) . Усі, хто має фізичний доступ до комп'ютера, можуть так само легко замінити його на користувальницьку версію. Про це навіть згадується у статті на xercestech.com, яку ви пов’язали:

Зрозуміло, це ні в якому разі не робить вашу систему менш вразливою до офлайн-атаки, якщо зловмисник повинен замінити ваш завантажувач на свій власний або перенаправити процес завантаження для завантаження власного коду, ваша система все одно може бути порушена.

Зауважте, що всі програмні продукти для шифрування повного диска мають цю слабкість, незалежно від того, чи вони використовують незашифрований завантажувач або незашифрований розділ завантаження / перезавантаження. Навіть продукти з підтримкою мікросхем TPM (Trusted Platform Module), як і BitLocker, можуть вкорінюватися без зміни обладнання.

Кращим підходом було б:

  1. розшифрувати на рівні BIOS (на материнській платі або адаптері диска або зовнішньому апаратному забезпеченні [smartcard], з чипом TPM чи без) або
  2. перенесіть код PBA (авторизація перед перезавантаженням) ( /bootрозділ у цьому випадку) на знімному пристрої (наприклад, смарт-картці або USB-накопичувачі).

Щоб зробити це другим способом, ви можете перевірити проект повного шифрування диска Linux (LFDE) за адресою: http://lfde.org/, який забезпечує сценарій після встановлення для переміщення /bootрозділу на зовнішній накопичувач USB, шифруючи ключ за допомогою GPG і зберігання його в USB. Таким чином, слабша частина шляху завантаження (незашифрований /bootрозділ) завжди з вами (ви будете єдиним, хто має фізичний доступ до дешифрувального коду І ключа). ( Примітка . Цей сайт був загублений, а також блог автора також зник, однак ви можете знайти старі файли за адресою https://github.com/mv-code/lfde. Зауважте, що остання розробка була зроблена 6 років тому). Як легша альтернатива, ви можете встановити незашифрований розділ завантаження на USB-накопичувач під час встановлення вашої ОС.

З повагою, МВ


1
Розшифрування на рівні BIOS справді було б дуже хорошим рішенням (я розглядав це як варіант) ...

1
Я не знаю жодної робочої реалізації, але EFI / UEFI має можливість включити користувальницький диспетчер завантажень EFI для заміни загального завантажувача, можливо, додавши шар дешифрування для дешифрування даних (звичайно, тоді вам знадобиться платформа EFI ). Або, можливо, деякі проекти, пов'язані з CoreBoot (ADLO, SeaBIOS, OpenBIOS тощо), можна змінити для цього. Просто ідеї.

4
Просто для додання додаткової інформації про слабкість використання нешифрованого / завантажувального розділу (але він також застосовується і для незашифрованого завантажувача): twopointfouristan.wordpress.com/2011/04/17/… (як змінити завантаження розділ за 10 хвилин фізичного доступу, щоб отримати парольну фразу для монтажу плюс будь-який інший файл у зашифрованому розділі)

1
@MV .: Спасибі Я можу перевірити його сам і додати тут відповідь з більш детальними кроками щодо використання зашифрованих /bootрозділів з GRUB2.
Peque

1
@ 에이 바: ні, це пов’язано (використовуючи LUKS з TPM), але це не той самий проект, який раніше розміщувався на lfde.org (зараз це сайт про аероклуб).
МВ.

4

Зробіть так, щоб ваш початковий RAMdisk та / boot папка не використовували шифрування.

Це підніме «мінімальне» ядро, з драйверами і підтримкою , щоб перейти до «реальної» кореневої файлової системи , яка буде зашифрована.

Перш ніж стверджувати, що "це хак" - пам’ятайте - більшість (якщо не всі) дистрибутивів Linux завантажуються сьогодні таким чином за замовчуванням. Це явно дозволяє вашій системі завантажувати та завантажувати ваш кореневий FS, використовуючи модулі, які йому потрібно завантажити з файлової системи. (Сортування проблеми з куркою та яйцями). Як, наприклад, якщо ваша коренева файлова система знаходилась на апаратному RAID-томі, і вам потрібно було завантажити її драйвер, перш ніж ви зможете встановити свій root FS.


3

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


Так, все ще є незашифрований завантажувач. Це було б прийнятно для мене.

Зла служниця може заразити завантажувач, щоб підробити підроблений пароль, щоб обдурити вас, а потім просто завантажити незашифроване троянізоване ядро. Шифрування ядра отримує дуже мало, не шифруючи завантажувач.
Скаперен

1

Я вважаю, що більшість із них робить, що вам потрібна інструкція про встановлення ОС в першу чергу з зашифрованим HD.

У Ubuntu є приємна сторінка з інструкціями щодо створення зашифрованих розділів, LMVP, папок і т. Д., Просто google ваша версія дистрибутива ...


2
Більшість дистрибутивів Linux, включаючи Ubuntu, містять певну підтримку шифрування розділів, однак вони вимагають не шифрування / завантаження. Що я шукаю - це завантажувач, який може обробляти повністю зашифрований диск.

1
Принаймні деяку частину завантажувача потрібно розшифрувати, інакше процесор не міг би його запустити. Чи є у вас якась проблема із залишенням / завантаженням незашифрованим?

2
Завантажувач і / завантаження - це різні речі. Я шукаю завантажувач, ніж можу завантажувати повністю зашифрований диск. TrueCrypt може це зробити для Windows, але не для Linux.

Різниця полягає в тому, що завантажувач Windows міститься у самій mbr, тоді як у Linux mbr просто посилається на файли / boot.
СП

1
"Перевірка автентичності перед завантаженням обробляється завантажувачем TrueCrypt, який знаходиться в першій доріжці завантажувального накопичувача" - він також створює міні-/ завантаження. Знову ж таки, сама grub міститься в / boot, mbr складає всього 512 байт, недостатньо для зберігання алгоритму розшифровки. Однак це зроблено, частина жорсткого диска повинна постачатися незашифрованою. Можливо, ви зможете запустити grub на зашифрованому розділі з завантажувача на зовсім іншому, але це вимагатиме серйозного безладного коду ...
JV

0

Ні, я думаю, що їх немає.

Вам дійсно потрібно шифрувати / завантажувати? Підозрюю, що ні. Решта файлової системи може бути зашифрована звичайним програмним забезпеченням Linux, яке знаходиться на initramfs в / boot і запитує користувача відповідно.


2
Так, мені потрібно шифрувати / завантажувати. Все повинно бути зашифровано, крім самого завантажувача.

Поясніть, будь ласка, чому ви вважаєте, що не існує завантажувачів, що підтримують повне шифрування диска.
this.josh

@Grodriguez: якщо ви вважаєте / boot частиною завантажувача, все зашифроване - усі бінарні файли, які використовуються під час виконання, усі дані користувачів тощо
MarkR

2
Як зазначається в коментарі до іншої відповіді: я знаю, що завжди повинно бути "щось", що не зашифроване - мені просто потрібно, щоб це "щось" було завантажувачем (MBR + завантажувальний сектор), а не розділом / boot. .

0

Здається, ви просите щось, що неможливо зробити, і порівнюючи це з рішенням Windows, яке приховує від вас реалізацію, але насправді робить те саме, що робить Linux.

Найближчим рішенням, про яке я можу придумати, є використання жорсткого диска, який реалізує пароль безпеки та шифрування. Деякі з ноутбуків Thinkpad використовують ці апаратні рішення.


2
Вибачте, але я не розумію, чому це повинно бути "неможливо". Стаття, на яку я посилаюсь у своєму запитанні, доводить, що це можна зробити. Доказ концепції було реалізовано за допомогою модифікованої версії GRUB 2. Я знаю, що завжди має бути "щось", яке не шифрується - мені просто потрібно, щоб це "щось" було завантажувачем (MBR + завантажувальний сектор), а не розділу / boot.

@Grodriguez: Ваша вимога не має сенсу. Чи виконується ваша вимога при використанні віртуальної машини всередині іншої ОС? Якщо так, то завантажте ОС одну, розшифруйте накопичувач і запустіть VM.
Зан Лінкс

2
Ви насправді намагалися прочитати статтю, до якої я посилався? Те, що ви не розумієте вимоги, не означає, що "це не має сенсу". У мене є вагомі причини цього (в які я не хочу потрапляти).

У статті 3 в пункті 3 зрозуміло, що ситуація не покращує ситуацію. Тому для мене немає сенсу слідкувати за рештою, яка зосереджена на тому, як його налаштувати, а не як це працює. Подумайте про те, що вам скаже, що я замінив ваше ядро, або все / завантаження, своїм власним (коли я виступаю як зла діва).
Скаперен

0

На відповідь натякає стаття. "Це тепер можливо завдяки розширенням до завантажувача GRUB2 нового покоління, яке було виправлене для підтримки не лише", і "ми хочемо встановити нове зображення, включене grub2, згодом" та "Тепер ми компілюємо джерело GRUB2 з підтримкою LUKS. " Здається, є патч або розширення, які потрібно отримати та включити до GRUB2 або роздвоєного джерела GRUB2.


0

Grub2 версія 2.02 ~ beta3 може зробити багато речей, які не може зробити Grub2 версія 2.02 ~ beta2, перевірена мною:

  1. Завантажте за допомогою диска Super Grub 2
  2. Наберіть клавішу "c", щоб перейти до командного рядка
  3. Введіть команди, щоб змонтувати зашифрований розділ, який я хочу
    • insmod luks
    • cryptomount (hd0, #) // де # представляє зашифрований розділ
  4. Введіть пароль та введіть інші команди більше
    • багатозавантаження (crypto0) /grub/i386-pc/core.img
    • завантаження

Це завантажить ще один Grub2, який знаходиться в зашифрованому розділі, злий божевільний напад не має сенсу тут ... я завантажуюся з компакт-диска (читайте лише носій), потім монтую зашифрований розділ (не з парольною фразою, як сміє хто-небудь вводити що-небудь!), потім завантажуватись із всередині зашифрованого розділу та завантажувати Grub2 із власним меню тощо.

Примітка. Такі завантажувачі Grub 2.02 ~ beta3 (я використовую Super Grub 2 cd) можуть бути на USB-накопичувачі, USB HDD тощо.

Попередження: Grub2 версія 2.02 ~ beta2 не може робити те саме, оскільки має деякі помилки (які, здається, виправлені на Grub2 версії 2.02 ~ beta3), пов'язані з командою cryptomount ...

Про помилки beta2, про які я говорю, є:

  1. Він насправді не змонтує зашифрований розділ, тому не дає доступу (crypto0) / *
  2. Якщо є більше одного зашифрованого розділу, використовуючи cryptomount -aлише запити для однієї парольної фрази
  3. Після запуску криптовалюти один раз він запускається знову нічого не робить

на бета-версії 3:

  1. Він дійсно монтує зашифрований розділ і дозволяє вам отримувати доступ до файлів через (crypto0) / * або (crypto1) / * і т.д., якщо одночасно встановлено більше одного
  2. Він запитує для кожної парольної фрази (по одній на зашифрований розділ)
  3. Це дозволяє запускати його стільки разів, скільки вам потрібно, ви можете змонтувати то одне, то інше тощо.

Бічна примітка: я не зрозумів, як їх відключити, за винятком перезавантаження або завантаження іншого або того ж grub2 / іншого завантажувача тощо.

Сподіваємось, це допомагає з’ясувати речі, і сподіваємося, що Grub2 версія 2.02 ~ beta3 буде інтегрована в LiveCD, тому все, що ми зможемо встановити, не потрібно складати.

PD: З диском Super Grub 2 я не бачу жодного способу встановлення Grub2 версії 2.02 ~ beta3 на розділ MBR / boot тощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.