Содержание статьи
LUKS
LUKS (Linux Unified Key Setup), а если быть точным, dm-crypt, — это классическая, универсальная, высокопроизводительная, хорошо изученная и не имеющая обнаруженных уязвимостей система шифрования дисков. LUKS поддерживает многочисленные алгоритмы шифрования и режимы работы, а также несколько хеш‑функций. В качестве алгоритма шифрования можно выбрать один из множества поддерживаемых, в частности AES, Serpent, Twofish, CAST-128 и CAST-256, которые могут работать в одном из четырех режимов: ECB, CBC-PLAIN64, CBC-ESSIV:hash или XTS-PLAIN64. Чаще всего по умолчанию используется комбинация параметров CBC-ESSIV:SHA256 с шифрованием AES и 256-битным ключом.
info
Подробнее о том, что такое LUKS и как его использовать, можно почитать в статьях «Полнодисковое шифрование с LUKS2. Изучаем новую версию популярного средства шифрования для Linux и проверяем, можно ли его взломать» и «LUKS good! Ставим Linux на шифрованный раздел и делаем удобной работу с ним».
В процессе создания зашифрованного диска или контейнера пользователь может указать любой алгоритм шифрования. Тем не менее использование любого алгоритма шифрования, кроме AES, контрпродуктивно: реальная безопасность (как и скорость подбора пароля при атаке) не увеличивается, а вот скорость работы страдает очень сильно из‑за того, что AES — единственный алгоритм шифрования, получивший аппаратную поддержку в виде набора команд процессора AES-NI.
Хеш‑функции, или функции одностороннего криптографического преобразования, используются для преобразования пароля в двоичный ключ в составе Key Derivation Function (KDF). LUKS поддерживает следующие варианты: SHA-1, SHA-256, SHA-512, RIPEMD160 и Whirlpool. Однозначно не рекомендую пользоваться SHA-1 и RIPEMD160. SHA-256 — выбор по умолчанию, но и функции SHA-512 и Whirlpool не хуже.
Одна из интересных возможностей LUKS — поддержка нескольких (до восьми) слотов ключей. Каждый из восьми слотов может быть защищен своим собственным уникальным паролем или ключом. С одной стороны, это позволяет разблокировать зашифрованные диски разным пользователям, каждый — своим собственным паролем. С другой — для расшифровки данных достаточно взломать любой пароль к любому из занятых слотов. В заголовке LUKS прописана информация о том, какие из слотов ключей заняты (то есть содержат действительные ключи для доступа к данным), а какие пустуют.
Важное следствие из такого механизма: удаление последнего из доступных ключей делает расшифровку данных невозможной, что позволяет мгновенно (или очень быстро) навсегда заблокировать доступ к зашифрованным данным.
Есть, однако, у LUKS и свои недостатки. С одной стороны, шифрование диска или раздела целиком отлично защищает данные, при этом скорость доступа к зашифрованным данным мало отличается от скорости доступа к незашифрованному массиву информации. С другой — шифрование действительно всех данных означает, что для проведения любых операций с зашифрованным диском, включая проверку целостности файловой системы, нужно смонтировать также весь диск целиком. Сделать резервную копию, создать или восстановить снапшот зашифрованного диска без ввода ключа шифрования не удастся.
Проблема создания и восстановления резервных копий, в том числе на недоверенные удаленные компьютеры, побудила разработчиков искать альтернативные способы шифрования. Одним из них стали криптографические (шифрующие) файловые системы.
Криптографические файловые системы
Помимо шифрования дисков целиком, в Linux можно использовать и шифрование на уровне папок (криптографические ФС). Такое шифрование можно включать как на обычных, так и на зашифрованных дисках. В готовых сетевых хранилищах чаще всего используется первый вариант, но в отдельных случаях (например, в некоторых моделях QNAP) можно использовать и второй.
Пользователям доступен довольно широкий выбор криптографических файловых систем. Среди них можно выделить две: eCryptFS, работающую на уровне ядра и не использующую FUSE, и EncFS, работающую в пространстве пользователя через FUSE.
eCryptFS шифрует каждый файл по отдельности; метаданные шифрования для каждого файла хранятся в его заголовке. Таким образом, как каждый отдельный файл, так и целые папки можно спокойно копировать между компьютерами. Это позволяет организовать систему «слепого» резервного копирования, когда копируются или синхронизируются только те зашифрованные файлы, которые были изменены. В то же время eCryptFS не позволяет воспользоваться функциями дедупликации файловой системы: каждый зашифрованный файл использует уникальную соль, в результате чего содержимое даже идентичных изначально файлов в зашифрованном виде будет различаться (с точки зрения безопасности это правильно).
eCryptFS часто используется для шифрования домашних каталогов пользователей (в этом случае администратор может настроить «слепое» резервное копирование), а также в ряде сетевых хранилищ (NAS) производства Asustor, QNAP, Synology, TerraMaster и некоторых других.
warning
Самая популярная альтернатива eCryptFS — шифрующая файловая система EncFS. В отличие от предыдущего eCryptFS, EncFS работает в пространстве пользователя без каких‑либо дополнительных привилегий через фреймворк FUSE. К сожалению, не так давно в ней была найдена серьезная уязвимость, которая делает ее небезопасной для использования.
eCryptFS поддерживает несколько алгоритмов шифрования, включая AES, Blowfish, DES3_EDE, Twofish, CAST6 и CAST5. Так же как и в других случаях, использовать отличный от AES алгоритм шифрования смысла нет: надежность AES достаточна, а скорость работы этого шифра намного превышает скорость работы альтернатив благодаря аппаратному ускорению набором инструкций AES-NI.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»