Автоматизация и полное шифрование диска
Я знаю, что название кажется совершенно противоречивым, но позвольте мне уточнить. Чтение недавней статьи Брюса Шнайера об удалении данных заставило меня задуматься о том, что на каждом сервере должно быть полное шифрование диска, хотя бы потому, что знание rm file
надежно удаляет файл и, пока его нет нигде, исчезнет навсегда.
Если я нашел способ, скажем, запустить один "действительно безопасный" сервер, который служил в качестве сервера ключей для ключей расшифровки файловой системы LUKS, а все остальные серверы просто сделали какую-то сетевую загрузку, в которой они обратились к этому "действительно безопасному" Сервер для ключей, могу ли я добиться полной автоматизации на этих машинах? Поскольку я должен предположить, что Amazon может (если они захотят) легко извлечь ключи шифрования, реально ли я потеряю какую-либо безопасность при такой настройке? Под полной автоматизацией я имею в виду возможность добавлять и удалять машины по своему желанию без какого-либо ручного вмешательства от моего имени или физического доступа. Кроме того, машины должны иметь возможность самостоятельно перезагружаться, а не подавляться в ожидании парольной фразы расшифровки.
Кроме того, это возможно? Я думал, что есть способ сделать что-то подобное, но сейчас я немного размыт по этому поводу.
3 ответа
Это частый случай использования FDE, когда вы предоставляете FDE пустой пароль. Затем вам нужно настроить загрузчик FDE, чтобы пропустить запрос пароля, и просто загрузить компьютер с пустым паролем. Если вы используете LUKS, вы можете изменить исходный код и перекомпилировать загрузчик LUKS, чтобы просто пропустить ввод пароля и продолжить с пустым паролем.
Обратите внимание, что использование пустого пароля для FDE не является небезопасным в этом случае использования (для облегчения стирания диска). Пароль шифрует ключ шифрования диска, который, в свою очередь, шифрует диск. Это сделано для того, чтобы можно было сменить пароль без необходимости повторного шифрования всего диска. Таким образом, даже если ключ шифрования диска не зашифрован и не защищен, его содержимое все равно будет защищено, когда этот ключ шифрования диска будет надежно очищен.
Когда приходит время выводить сервер из эксплуатации, вы просто стираете первые несколько мегабайт, которые содержат загрузчик, и затем проверяете, что загрузчик пропал.
Другой вариант использования - поместить загрузчик на другое устройство / носитель, который легче уничтожить, чем жесткий диск. Когда приходит время выводить сервер из эксплуатации, вы либо сохраняете загрузочный носитель, либо уничтожаете его.
Загрузка через PXE также является жизнеспособным решением. Затем вы помещаете весь загрузчик на PXE-сервер. Вы даже можете прошить iPXE ( http://www.ipxe.org/) в чип материнской платы / сетевой карты, а затем получить загрузчик через HTTP/HTTPS.
Некоторые накопители также используют эту встроенную функцию, где он генерирует случайный ключ шифрования, сохраняет его во флэш-памяти или на диске, а затем шифрует весь накопитель. Затем, когда вы вводите команду ATA Secure Erase, она надежно стирает ключ шифрования, делая весь диск нечитаемым.
Автоматизировать виртуальные машины с помощью FDE (Full Disk Encryption), за исключением раздела / boot, можно.
Вот несколько вариантов, все с использованием стандартного шифрования LUKS в Linux:
- Жесткий код парольной фразы LUKS в initramfs (Golden Image)
- Это может быть изменено после развертывания, и KVM используется для ввода его при каждой перезагрузке после этого.
- Установите сервер initramfs ssh, например, dropbear
- Требуется логин ssh и ввод ключа перед полной загрузкой. Может быть автоматизирован.
- Используйте настройки клиент / сервер для передачи ключей, например, Mandos
Возможно, я не получил ваш ответ, или я n00b, но не могли бы вы создать Golden Image, в котором уже есть шифрование, а затем развернуть его с помощью Zero Touch? Управляйте, используя что-то вроде Puppet или SCCM, но я считаю очень бесполезным то, что вы хотите, чтобы парольная фраза вводилась автоматически (некоторый код, безусловно, мог бы быть создан для этого), но тогда это делает сервер менее безопасным и нарушает цель шифрование.