dm-crypt - это прозрачная подсистема шифрования диска в ядре Linux версии 2.6 и выше и в DragonFly BSD. Он является частью инфраструктуры устройства отображения и использует криптографические процедуры из ядра Crypto API. В отличие от своего предшественника cryptoloop, dm-crypt был разработан для поддержки расширенных режимов работы, таких как XTS, LRW и ESSIV (см. теория шифрования диска для получения дополнительной информации), чтобы избежать атак с использованием водяных знаков. В дополнение к этому, dm-crypt также решает некоторые проблемы надежности cryptoloop.
dm-crypt реализован как целевой объект сопоставления устройств и может быть наложен поверх преобразователей других устройств. Таким образом, он может шифровать целые диски (включая съемные носители ), разделы, тома программного RAID, логические тома, а также файлы. Он выглядит как блочное устройство, которое можно использовать для резервного копирования файловых систем, подкачки или как LVM физический том.
Some Дистрибутивы Linux поддерживают использование dm-crypt в корневой файловой системе. Эти дистрибутивы используют initrd, чтобы предложить пользователю ввести парольную фразу в консоли или вставить смарт-карту перед обычным процессом загрузки.
dm-crypt Целевой объект сопоставления устройств находится полностью в пространстве ядра и занимается только шифрованием блочного устройства - он сам не интерпретирует никакие данные. Он полагается на пользовательское пространство интерфейсы для создания и активации зашифрованных томов и управления аутентификацией. В настоящее время доступно как минимум два внешних интерфейса: cryptsetup
и cryptmount
.
Автор (ы) оригинала | Яна Саут, Клеменс Фрувирт, Милан Броз |
---|---|
Стабильная версия | 2.2.1 / 6 сентября 2019 г.; 13 месяцев назад (06.09.2019) |
Написано в | C |
Операционная система | Unix-подобная |
Платформа | x86, x86-64, ARMv8, ARMv7, ppc64le, MIPS |
Размер | 7 МБ |
Доступно на | 16 языках |
Список языков Английский, португальский, китайский (упрощенный), чешский, датский, голландский, финский, французский, немецкий, итальянский, японский, польский, русский, испанский, шведский, украинский | |
Тип | Программное обеспечение для шифрования дисков |
Лицензия | GPLv2. Подбиблиотеки:. LGPLv2.1 + |
Веб-сайт | gitlab.com / cryptsetup / cryptsetup |
Интерфейс командной строки cryptsetup
по умолчанию не записывает никаких заголовков в зашифрованный том и, следовательно, предоставляет только самое необходимое: настройки шифрования должны предоставляться каждый раз диск смонтирован (хотя обычно используется с автоматическими сценариями), и только один ключ может использоваться на том; ключ симметричного шифрования непосредственно получен из предоставленной кодовой фразы .
. Поскольку в нем отсутствует «salt », использование cryptsetup менее безопасно в этом режиме, чем в случае с Настройка единого ключа Linux (LUKS). Однако простота cryptsetup делает его полезным в сочетании со сторонним программным обеспечением, например, с аутентификацией по смарт-карте .
cryptsetup
также предоставляет команды для работы с дисковым форматом LUKS. Этот формат предоставляет дополнительные функции, такие как управление ключами и растяжение ключа (с использованием PBKDF2 ), а также запоминает конфигурацию зашифрованного тома при перезагрузках.
Интерфейс cryptmount
является альтернативой инструменту «cryptsetup», который позволяет любому пользователю монтировать и размонтировать файловую систему dm-crypt, когда это необходимо, без необходимости привилегии суперпользователя после того, как устройство было настроено суперпользователем.
Тот факт, что программное обеспечение для шифрования дисков (шифрование томов), такое как dm-crypt, работает только с прозрачным шифрованием абстрактных блочных устройств, дает ему большую гибкость. Это означает, что его можно использовать для шифрования любых дисковых файловых систем , поддерживаемых операционной системой, а также пространства подкачки ; барьеры записи, реализованные файловыми системами, сохраняются. Зашифрованные тома могут храниться на разделах диска, логических томах, целых дисках, а также в файловых -задерживаемых образах дисков (с использованием кольцевых устройств с помощью утилиты losetup). dm-crypt также можно настроить для шифрования томов RAID и физических томов LVM.
dm-crypt также может быть настроен для обеспечения предзагрузочной аутентификации через initrd, таким образом шифруя все данные на компьютере - кроме загрузчика и ядра. и сам образ initrd.
При использовании режима работы цепочки блоков шифра с предсказуемыми векторами инициализации в качестве другого программного обеспечения для шифрования диска, диск уязвим для атаки с использованием водяных знаков. Это означает, что злоумышленник может обнаружить наличие на диске специально созданных данных. Чтобы решить эту проблему в своих предшественниках, dm-crypt включил положения для более сложных, специфичных для шифрования дисков режимов работы. Поддержка ESSIV (зашифрованный вектор инициализации солевого сектора) была представлена в ядре Linux версии 2.6.10, LRW в 2.6.20 и XTS в 2.6.24.
Linux Crypto API включает поддержку наиболее популярных блочных шифров и хэш-функций, которые можно использовать с dm-crypt.
Поддержка зашифрованных файловых систем включает тома LUKS, а начиная с ядра Linux 3.13, цель TrueCrypt называется «tcw».
dm-crypt и К зашифрованным дискам LUKS можно получить доступ и использовать в MS Windows с помощью ныне несуществующей FreeOTFE (ранее DoxBox, LibreCrypt), при условии, что используемая файловая система поддерживается Windows (например, FAT / FAT32 / NTFS ). Зашифрованные файловые системы ext2 и ext3 поддерживаются с помощью Ext2Fsd или так называемой «устанавливаемой файловой системы Ext2 для Windows»; FreeOTFE также поддерживает их.
Cryptsetup / LUKS и необходимая инфраструктура также были реализованы в операционной системе DragonFly BSD.