В целях безопасности нам необходимо реализовать полное шифрование файловой системы на предстоящей установке сервера. Мы используем настройки шифрования по умолчанию, поставляемые с CentOS 7.
Мой вопрос: поскольку наши серверы используют SSD-накопители, следует ли мне беспокоиться о том, что система шифрования / дешифрования создает дополнительную нагрузку на диски с точки зрения дополнительных операций чтения / записи для стандартного доступа ввода-вывода? У меня есть подозрение, что это должно нагружать ЦП, а не твердотельные накопители, но я хотел разобраться в этом подробнее.
Ответ зависит от того, как устроено шифрование. Большинство шифрований на уровне блоков имеют отображение 1: 1 между логическим и физическим секторами. Это означает, что чтение одного сектора открытого текста с логического устройства преобразуется в чтение одного сектора зашифрованного текста с физического устройства. А запись одного сектора открытого текста в логическое устройство преобразуется в запись одного сектора зашифрованного текста на физическое устройство. Я ожидаю, что по умолчанию CentOS попадет в этот класс.
Это компромисс между эффективностью и безопасностью. В этом подходе есть определенные виды утечек, но их устранение добавляет сложности и накладных расходов. Для любого криптографа очевидно, что, поскольку открытый текст и зашифрованный текст имеют одинаковый размер, вы не можете получить семантическую безопасность.
Сначала кажется, что такой подход означает, что уровень шифрования вообще не влияет на эффективность ввода-вывода. Однако вы теряете возможность использовать ОТДЕЛКА команда. Отсутствие поддержки TRIM может снизить эффективность и срок службы твердотельного накопителя. Если вы используете файловую систему, которая в любом случае не поддерживает TRIM, вы ничего не потеряете с точки зрения ввода-вывода при использовании шифрования.
Ничто не мешает уровню шифрования передать команду TRIM на физический уровень, но это приведет к утечке некоторой информации о структуре данных в файловой системе. Здесь вы можете увидеть документация реализации, которая поддерживает это, но не включает по умолчанию.
Возможны более продвинутые схемы шифрования хранилища, которые имеют стоимость с точки зрения ввода-вывода и емкости хранилища, но имеют меньше возможностей для утечки данных. Такие схемы могут даже поддерживать TRIM без утечки данных.