dm-crypt — это прозрачная подсистема шифрования блочных устройств в ядре Linux версии 2.6 и новее, а также в DragonFly BSD . Он является частью инфраструктуры устройства сопоставления устройств (dm) и использует криптографические процедуры из Crypto API ядра . В отличие от своего предшественника cryptoloop , dm-crypt был разработан для поддержки расширенных режимов работы, таких как XTS , LRW и ESSIV , чтобы избежать атак с использованием водяных знаков . [1] В дополнение к этому, dm-crypt решает некоторые проблемы надежности cryptoloop. [2]
dm-crypt реализован как цель устройства сопоставления устройств и может быть наложен поверх других преобразований устройства сопоставления. Таким образом, он может шифровать целые диски (включая съемные носители ), разделы , тома программного RAID , логические тома , а также файлы . Он выглядит как блочное устройство, которое можно использовать для резервного копирования файловых систем , подкачки или в качестве физического тома LVM .
Некоторые дистрибутивы Linux поддерживают использование dm-crypt в корневой файловой системе. Эти дистрибутивы используют initrd , чтобы предложить пользователю ввести парольную фразу на консоли или вставить смарт-карту перед обычным процессом загрузки. [3]
Цель преобразователя устройств dm-crypt полностью находится в пространстве ядра и занимается только шифрованием блочного устройства — сама она не интерпретирует какие-либо данные. Он использует интерфейсы пользовательского пространства для создания и активации зашифрованных томов, а также управления аутентификацией. В настоящее время доступны как минимум два интерфейса: и .cryptsetup
cryptmount
Интерфейс cryptsetup
командной строки по умолчанию не записывает никаких заголовков в зашифрованный том и, следовательно, предоставляет только самое необходимое: настройки шифрования необходимо указывать каждый раз при монтировании диска (хотя обычно они используются с автоматическими сценариями), и только на один том можно использовать один ключ ; ключ симметричного шифрования получается непосредственно из предоставленной парольной фразы .
Поскольку в этом режиме отсутствует « соль », использование cryptsetup менее безопасно, чем в случае с настройкой унифицированного ключа Linux (LUKS). [9] Однако простота настройки шифрования делает его полезным в сочетании со сторонним программным обеспечением, например, с аутентификацией по смарт-карте .
cryptsetup
также предоставляет команды для работы с дисковым форматом LUKS. Этот формат предоставляет дополнительные функции, такие как управление ключами и расширение ключей (с использованием PBKDF2 ), а также запоминает конфигурацию зашифрованного тома при перезагрузке. [3] [10]
Этот cryptmount
интерфейс является альтернативой инструменту «cryptsetup», который позволяет любому пользователю при необходимости монтировать и размонтировать файловую систему dm-crypt без необходимости привилегий суперпользователя после того, как устройство было настроено суперпользователем.
Тот факт, что программное обеспечение для шифрования диска (объемное шифрование), такое как dm-crypt, занимается только прозрачным шифрованием абстрактных блочных устройств , дает ему большую гибкость. Это означает, что его можно использовать для шифрования любых дисковых файловых систем, поддерживаемых операционной системой , а также пространства подкачки ; барьеры записи , реализованные файловыми системами, сохраняются. [11] [12] Зашифрованные тома могут храниться в разделах диска , логических томах , целых дисках, а также в образах дисков с файловой поддержкой (с помощью петлевых устройств с утилитой Losetup). dm-crypt также можно настроить для шифрования томов RAID и физических томов LVM .
dm-crypt также можно настроить для обеспечения аутентификации перед загрузкой через initrd , таким образом шифруя все данные на компьютере — кроме загрузчика, ядра и самого образа initrd. [3]
При использовании режима цепочки блоков шифрования с предсказуемыми векторами инициализации, как и в другом программном обеспечении для шифрования диска, диск уязвим для атак с использованием водяных знаков . Это означает, что злоумышленник может обнаружить наличие на диске специально созданных данных. Чтобы решить эту проблему в своих предшественниках, dm-crypt включил в себя более сложные режимы работы, специфичные для шифрования диска. [1] Поддержка ESSIV (зашифрованный вектор инициализации солевого сектора) была введена в ядре Linux версии 2.6.10, LRW в 2.6.20 и XTS в 2.6.24.
Linux Crypto API включает поддержку большинства популярных блочных шифров и хэш-функций , которые можно использовать с dm-crypt.
Поддержка зашифрованной FS включает тома LUKS, циклический AES и, начиная с ядра Linux 3.13, цель TrueCrypt , называемую «tcw». [13] [14] [15]
Доступ к зашифрованным дискам dm-crypt и LUKS можно получить и использовать в MS Windows с использованием ныне несуществующей FreeOTFE (ранее DoxBox, LibreCrypt), при условии, что используемая файловая система поддерживается Windows (например, FAT /FAT32/ NTFS ). Зашифрованные файловые системы ext2 и ext3 поддерживаются с помощью Ext2Fsd или так называемой «Устанавливаемой файловой системы Ext2 для Windows»; [16] FreeOTFE также поддерживает их.
Cryptsetup/LUKS и необходимая инфраструктура также реализованы в операционной системе DragonFly BSD. [17]
{{cite journal}}
: Требуется цитировать журнал |journal=
( помощь ){{cite journal}}
: Требуется цитировать журнал |journal=
( помощь )