Какие существуют подходы для полного шифрования диска на удаленном сервере (например, в центре обработки данных)? В Windows мы можем просто включить Bitlocker с помощью TPM. Затем сервер может перезагрузиться, и для атаки потребуется либо захватить машину в режиме реального времени и сбросить RAM, либо сломать TPM. Что доступно в Linux?
До сих пор я нашел "план" IBM, описывающий, как хранить ключи dm-crypt в TPM. Это лучший подход?
http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/topic/liaai/tpm/liaaitpm_pdf.pdf
Чтобы понять, как лучше всего решить вашу проблему, вам необходимо уточнить, чего вы пытаетесь достичь. Другими словами, какова ваша модель угроз? Кто ваш нападающий? Вы упомянули, что для обхода шифрования потребуется «взять машину в действии» (под этим, я полагаю, вы имеете в виду ее взлом), но это наиболее вероятный сценарий для размещенного в одном месте сервера. Шифрование диска в основном используется в случае физической кражи.
Вам также необходимо подумать, какие данные вы защищаете. Вы упоминаете «полное шифрование диска», но требуется ли для этого шифрование, например / usr? Если вы используете стандартный дистрибутив, там ничего интересного. Не зная больше о том, что будет содержать сервер, трудно дать рекомендации.
Но чтобы дать более конкретное предложение, рассмотрим следующий гипотетический сервер. Он содержит следующее:
Из этих компонентов только база данных действительно нуждается в защите, поэтому вот как я подхожу к этому:
Вы упоминаете TPM, но TPM не помогает вам в ряде случаев, например, если злоумышленник получает права администратора. TrueCrypt есть отклонено поддержка TPM по этой причине.
Вы также можете использовать TPM с dm-crypt:
https://github.com/shpedoikal/tpm-luks
http://code.google.com/p/cryptsetup/wiki/FrequentAskedQuestions#2._Setup
При интеграции на виртуальный диск initrd компактный SSH-сервер позволяет удаленно ввод пароля чтобы разблокировать диск.
Обратите внимание, что ни одно из вышеперечисленных решений не защищает должным образом от опытного злоумышленника, имеющего физический доступ к серверу.