Cryptsetup linux что это

Содержание
  1. Шифрование жесткого диска в Linux
  2. Ресурсы
  3. Шаг 01: Рассматриваем Dm-crypt
  4. Шаг 02: Рассматриваем LUKS
  5. Шаг 03: Установка
  6. Шаг 04: Создание целевого файла
  7. Шаг 05: Создаем dm-crypt LUKS
  8. Шаг 06: Создаем и монтируем файловую систему
  9. Шаг 07: Файловая система — продолжение
  10. Шаг 08: Использование шифруемого диска
  11. Шаг 09: Резервное копирование
  12. Шаг 10: Различные настройки
  13. Cryptsetup linux что это
  14. ЧТО ВЫБРАТЬ: PLAIN DM-CRYPT ИЛИ LUKS?
  15. ПРЕДУПРЕЖДЕНИЯ
  16. ОСНОВНЫЕ КОМАНДЫ
  17. ФОРМАТ PLAIN DM-CRYPT
  18. ФОРМАТ LUKS
  19. ФОРМАТ LOOP-AES
  20. ФОРМАТ TCRYPT (TRUECRYPT-СОВМЕСТИМЫЙ И VERACRYPT)
  21. РАЗНОЕ
  22. ОПЦИИ
  23. КОДЫ ВЫХОДА
  24. ЗАМЕЧАНИЯ ПО ОБРАБОТКЕ ПАРОЛЕЙ PLAIN DM-CRYPT
  25. ЗАМЕЧАНИЯ ПО ОБРАБОТКЕ ПАРОЛЕЙ LUKS
  26. ОТЛИЧИЯ В ОБРАБОТКЕ НЕВЕРНЫХ ПАРОЛЕЙ И КЛЮЧЕЙ
  27. ЗАМЕЧАНИЕ О ПОДДЕРЖИВАЕМЫХ ШИФРАХ, ФОРМАТАХ, ХЕШАХ И РАЗМЕРАХ КЛЮЧЕЙ
  28. ЗАМЕЧАНИЕ О ПАРОЛЯХ
  29. ЗАМЕЧАНИЕ О ГЕНЕРАТОРАХ ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ
  30. ЗАМЕЧАНИЕ О ПЕТЛЕВЫХ УСТРОЙСТВАХ
  31. УСТАРЕВШИЕ ДЕЙСТВИЯ
  32. СООБЩАТЬ ОБ ОШИБКАХ
  33. АВТОРЫ
  34. АВТОРСКИЕ ПРАВА
  35. ПЕРЕВОД
  36. СМОТРИТЕ ТАКЖЕ

Шифрование жесткого диска в Linux

TrueCrypt больше не поддерживается, но dm-crypt и LUKS — отличный вариант с открытым исходным кодом, позволяющий шифровать и использовать шифрованные данные.

Безопасность данных стала одной из самых больших проблем среди интернет-пользователей. Новости о краже данных с веб-сайтов стали очень распространенными, но защита ваших данных — это не только обязанность сайтов, есть многое, что мы, как конечные пользователи, можем сделать для нашей собственной безопасности. Например, только некоторые примеры — использовать надежные пароли, шифровать жесткие диски, которые расположены на наших компьютерах, и использовать безопасные соединения. В частности, шифрования жесткого диска является хорошим способом обеспечения безопасности — оно не только защитит вас от любых троянов, пытающихся украсть ваши данные через сеть, но также и от физических атак.

В мае этого года остановилась разработка приложения TrueCrypt, известного инструментального средства с открытым исходным кодом, предназначенного для шифрования дисков. Как многие из вас знают, это был один из весьма надежных инструментов, предназначенных для шифрования дисков. Прискорбно видеть исчезновение инструмента такого калибра, но величие мира с открытым исходным кодом таково, что есть несколько других инструментов с открытым исходным кодом, которые помогут вам достичь безопасности с помощью шифрования дисков, у которых, к тому же, есть много конфигурационных настроек. Мы рассмотрим два из них — dm-crypt и LUKS — в качестве альтернативы TrueCrypt для платформы Linux. Давайте начнем с краткого рассмотрения dm-crypt, а затем — LUKS.

Это основная информация об устройстве, использующим LUKS, в которой указывается, какое используется шифрование, режим шифрования, алгоритм хэширования и другие криптографические данные.

Ресурсы

Шаг 01: Рассматриваем Dm-crypt

Название приложения dm-crypt является сокращением от device mapper- crypt (шифрование при отображении устройства). Как следует из названия, оно базируется на отображении устройств — фреймворке ядра Linux, предназначенном для отображения блочных устройств на виртуальные блочные устройства более высокого уровня. При отображении устройств можно пользоваться несколькими функциями ядра, такими как dm-cache (создает гибридные тома), dm-verity (предназначена для проверки целостности блоков, является частью Chrome OS) и также очень популярным Docker. Для криптографических целей в dm-crypt применяется фреймворк ядра Linux Crypto API.

Итак, если подвести итог, то приложение dm-crypt является подсистемой шифрования на уровне ядра, предлагающее прозрачное шифрование диска: это означает, что файлы доступными сразу после монтирования диска — для конечного пользователя нет видимой задержки. Чтобы шифровать с использованием dm-crypt вы можете просто указать один из симметричных шифров, режим шифрования, ключ (любого допустимого размера), режим генерации IV, а затем в /dev создать новое блочное устройство. Теперь при любой записи на это устройство будет происходить шифрование, а при чтении — расшифровка. Вы можете как и обычно смонтировать на этом устройстве файловую систему, либо можете использовать устройство dm-crypt для создания других конструкций, таких как RAID или том LVM. Таблица соответствия для dm-crypt задается следующим образом:

Здесь значение start-sector (начальный сектор), как правило, равно значению 0, значение size (размер) равно размеру устройства, указываемую в секторах, а target name является именем, которое вы хотите присвоить зашифрованному устройству. Таблица целевого отображения target-mapping table состоит из следующих разделов:

Шаг 02: Рассматриваем LUKS

Как мы уже видели на предыдущем шаге, приложение dm-crypt может самостоятельно шифровать / расшифровывать данные. Но у него есть несколько недостатков — если приложением dm-crypt пользоваться непосредственно, то оно не будет создавать на диске метаданные, и это может стать серьезной проблемой в случае, если вы хотите обеспечить совместимость между различными дистрибутивами Linux. Кроме того, приложение dm-crypt не поддерживает использование несколько ключей, тогда как в реальных ситуация очень важно пользоваться несколькими ключами.

Именно по этим причинам на свет появилась методика LUKS (Linux Unified Key Setup — Унифицированная настройка ключей в Linux). LUKS является в Linux стандартом шифрования жестких дисков и стандартизация позволяет обеспечить совместимость различных дистрибутивов. Также поддерживается использование нескольких ключей и парольных фраз. В рамках такой стандартизации к зашифрованным данным добавляется заголовок LUKS и в этом заголовке присутствует вся информация, необходимая для настройки. Когда есть такой заголовок с данными, то пользователи могут легко перейти на любой другой дистрибутив. Сейчас в проекте dm-crypt рекомендуется использовать LUKS в качестве предпочтительного способа настройки шифрования диска. Давайте рассмотрим, как установить утилиту cryptsetup и как ее использовать для создания томов на основе LUKS.

Шаг 03: Установка

Функциональные возможности уровня ядра, которые применяются в dm-crypt, уже есть во всех дистрибутивах Linux; нам нужно к ним только интерфейс. Мы будем пользоваться утилитой cryptsetup, с помощью которой можно создавать тома с использованием dm-crypt, стандарта LUKS, а также старого и доброго приложения TrueCrypt. Для того, чтобы установить cryptsetup на дистрибутивах Debian / Ubuntu, вы можете воспользоваться следующими командами:

Первая команда синхронизирует индексные файлы ракета с содержимым их репозиториев: она получает информацию о последних версиях всех доступных пакетов. Вторая команда загрузит и установит на ваш компьютер пакет cryptsetup. Если вы используете дистрибутив RHEL/Fedora/CentOS, то для установки утилиты cryptsetup вы можете воспользоваться командой yum.

Шаг 04: Создание целевого файла

Теперь, когда утилита cryptsetup успешно установлена, мы должны создать целевой файл, в котором будет храниться контейнер LUKS. Хотя есть много способов создания такого файла, при его создании необходимо выполнить ряд условий:

  • Файл не должен состоять из нескольких частей, расположенных в различных местах диска, т. е. для него при создании следует сразу выделить достаточное количество памяти.
  • Весь файл нужно заполнить случайными данными с тем, чтобы никто не мог сказать, где будут расположены данные, применяемые при шифровании.

В создании файла, который будет удовлетворять вышеуказанным условиям, нам может помочь команда dd, хотя она и будет работать сравнительно медленно. Просто используйте ее вместе с файлом специального устройства /dev/random, указанным в качестве входных данных, и целевого файла, который должен быть указан в качестве выходных данных. Пример команды выглядит следующим образом:

В результате в каталоге /home/nitish будет создан файл с именем basefile, имеющий размер в 128 МБ. Однако, учтите, что на выполнение этой команды может потребоваться достаточно большое время; в системе, которой пользовался наш эксперт, на это потребовался час времени.

Шаг 05: Создаем dm-crypt LUKS

После того, как вы создали целевой файл, в этом файле необходимо создать раздел LUKS. Этот раздел служит в качестве основного слоя, на базе которого строится все шифрование данных. Кроме этого, в заголовке этого раздела (LUKS header) содержится вся информация, требуемая для совместимости с другими устройствами. Чтобы создать раздел LUKS применяется команда cryptsetup:

После того, как вы согласитесь с тем, что данные, находящиеся внутри файла basefile, будут безвозвратно удалены, введете парольную фразу, а затем — ее подтверждение, будет создан раздел LUKS. Вы можете проверить это с помощью следующей команды file:

Обратите внимание, что фраза, которую вы здесь вводите, будет использоваться для расшифровки данных. Очень важно ее запомнить и хранить ее в безопасном месте, поскольку если вы ее забудете, то почти наверняка потеряете все данные, имеющиеся в зашифрованном разделе.

Шаг 06: Создаем и монтируем файловую систему

Контейнер LUKS, который мы создали на предыдущем шаге, теперь доступен в виде файла. В нашем примере, это /home/nitish/basefile. Утилита cryptsetup позволяет открывать контейнер LUKS как независимое устройство. Чтобы сделать это, сначала отобразите файл контейнера на имя устройства, а затем смонтируйте устройство. Команда, осуществляющая отображение, выглядит следующим образом:

После того как вы успешно введете парольную фразы, созданную на предыдущем шаге, контейнер LUKS будет отображен на имя volume1. Фактически происходит открытие файла как локального устройства типа loopback, так что остальная часть системы теперь может обрабатывать файл, как если бы это было реальное устройство.

Читайте также:  Файла подкачки windows 2003

Шаг 07: Файловая система — продолжение

Файл контейнера LUKS теперь доступен в системе в виде обычного устройства. Прежде, чем мы сможем использовать его для обычных операций, мы должны его отформатировать и создать на нем файловую систему. Вы можете пользоваться любой файловой системой, которая поддерживается в вашей системе. В моем примере, мы использовали ext4, поскольку это самая новая файловая система для систем Linux.

После того, как устройство будет успешно отформатировано, следующим шагом будет его монтирование. Сначала вы должны создать точку монтирования, предпочтительно в /mnt (исходя из здравого смысла).

Теперь выполняем монтирование:

Для перекрестной проверки воспользуйтесь командой df –h — вы в конце списка смонтированные устройств увидите устройство «/dev/mapper/volume1». Видно, что заголовок LUKS уже занимает в устройстве уже некоторое место.

Благодаря этому шагу, вы теперь можете использовать устройство LUKS с файловой системой ext4. Просто используйте это устройство для хранения файлов — все, что вы будет записывать на это устройство, будет шифроваться, а все, что вы будете читать с него, будет расшифровано и показано вам.

Шаг 08: Использование шифруемого диска

Мы выполнили несколько шагов для того, чтобы достичь этого результата, и если вам не очень понятно, как все это работает, вы, скорее всего, запутаетесь в том, что нужно сделать только один раз (требуется для установки), и в том, что нужно делать регулярно при использовании шифрования. Давайте рассмотрим следующий сценарий: вы успешно выполнили все описанные выше шаги, а затем выключили компьютер. На следующий день, когда вы запускаете ваш компьютер, вы не в состоянии найти смонтированное устройство — куда оно делось? Чтобы со всем этим разобраться, нужно иметь в виду, что после запуска системы нужно смонтировать контейнер LUKS, а перед остановкой компьютера — размонтировать.

Для того, чтобы получить доступ к файлу LUKS, каждый раз, когда вы включаете компьютер, выполняйте следующие действия, а затем прежде, чем выключить компьютер, безопасно закрывайте файл:

Откройте файл LUKS (т.е. /home/nitish/basefile) и введите пароль. Команда выглядит следующим образом:

После того, как файл будет открыт, смонтируйте его (если он не монтируется автоматически):

Теперь вы можете использовать смонтированное устройство как обычный диск и читать с него или записывать на него данные.

После того, как все сделаете, размонтируйте устройство следующим образом:

После успешного размонтирования, закройте файл LUKS:

Шаг 09: Резервное копирование

Большинство потерь данных, хранящихся в контейнере LUKS, связаны с повреждением заголовка LUKS или слотов с ключами. Кроме того, что даже из-за случайной перезаписи в память заголовка могут быть повреждены заголовки LUKS, в реальных условиях также возможен полный выход жесткого диска из строя. Лучший способ защититься от таких проблем — это резервное копирование. Давайте посмотрим, какие доступны варианты резервного копирования.

Чтобы создать резервную копию файла заголовка LUKS, укажите в команде параметр luksHeaderBackup:

Или, если вы хотите восстановить файл из резервной копии, то укажите в команде параметр luksHeaderRestore:

Для проверки файла заголовка LUKS и проверки того, что файл, с которым вы имеете дело, соответствует действительно существующему устройству LUKS, вы можете воспользоваться параметром isLuks.

Мы уже видели, как делать резервную копию файлов заголовков LUKS, но резервная копия заголовка LUKS на самом деле не защитит от полного отказа диска, так что вам с помощью следующей команды cat необходимо сделать резервную копию всего раздела:

Шаг 10: Различные настройки

Есть несколько других настроек, которые при использовании шифрования dm-crypt LUKS могут оказаться полезными. Давайте их рассмотрим.

Чтобы сделать дамп заголовка LUKS, в команде cryptsetup есть параметр luksDump. Он позволит вам сделать снимок файла заголовка LUKS того устройства, которое вы используете. Пример команды выглядит следующим образом:

В начале данной статьи мы упоминали о том, что LUKS поддерживает работу с несколькими ключами. Давайте сейчас это увидим в действии, добавив новый слот ключа (прим.пер.: слот ключа — место под ключ):

Эта команда добавляет ключ к слоту ключа с номером 1, но только после того, как вы введете текущий пароль (ключ, присутствующий в слоте ключа 0). Всего есть восемь слотов ключей, и вы можете расшифровывать данные с использованием любого ключа. Если вы после того, как добавили второй ключ, сделаете дамп заголовка, вы увидите, что второй слот ключа занят.

Вы можете удалить слоты с ключами следующим образом:

В результате будет удален слот с ключом с самым большим номером слота. Будьте аккуратны и не удаляйте все слоты, иначе ваши данные будут навсегда потеряны.

Источник

Cryptsetup linux что это

Программа cryptsetup предназначена для настройки виртуальных блочных устройств под управлением служб ядра «device mapper» ( dm ) и dm-crypt . Поддерживаются виртуальные тома форматов «plain dm-crypt» и LUKS. Формат LUKS более функционален, чем «plain dm-crypt», благодаря наличию специального блока метаданных. Однако этот блок может быть легко обнаружен и повреждён.

Также есть ограниченная поддержка томов устаревшего формата «loop-AES» и томов TrueCrypt.

ЧТО ВЫБРАТЬ: PLAIN DM-CRYPT ИЛИ LUKS?

Если не разбираетесь — LUKS. В обращении с томами формата «plain dm-crypt» нередки ошибки, сильно снижающие безопасность. Это не значит, что LUKS полностью лишен таких проблем. Просто возможный ущерб может быть значительно снижен.

ПРЕДУПРЕЖДЕНИЯ

Документ «Cryptsetup FAQ» содержит много ценных сведений по возможным рискам, решению возникающих проблем и особенностям шифрования информации. Обязательно ознакомьтесь с ним. Здесь, тем не менее, мы укажем главные риски.

Резервное копирование: Накопители могут ломаться. Шифрование здесь бессильно. Если шифруемые данные сколь-нибудь ценны — делайте резервные копии. В «Cryptsetup FAQ» указаны кое-какие советы на этот счёт.

Кодировка: Пароль может быть записан неверно, если содержит расширенные символы. Неверные настройки клавиатуры могут сделать ввод пароля невозможным. Например, при смене кодировки с 8-битного варианта ASCII на UTF-8 двоичное кодирование символов будет различаться, даже если на экране всё отображается одинаково. Символы 7-битного варианта ASCII входят в UTF-8, поэтому следует составлять пароли только из символов этого подмножества. Подробности можно найти в ascii (7).

Заголовок LUKS: Если он повреждён, то без копии заголовка шифрованные данные можно считать утраченными. Повреждённый слот ключа можно восстановить из копии заголовка или из целого слота, если пароль последнего известен. Люди портят LUKS-заголовки с завидной частотой. Эта проблема появилась как баланс между надёжностью и безопасностью, потому что возможность мгновенно лишить доступа к данным, удалив заголовок, заложена в формат LUKS намеренно.

Непустой раздел накопителя: Перед созданием шифрованного тома поверх несущего раздела желательно полностью затереть (wipe) старое содержимое: метаданные файловой системы и сами данные. Программа wipefs может быстро удалить метаданные файловой системы, хотя это ещё не полное затирание информации. Например, могут сохраниться сигнатуры md (RAID) в конце устройства. Сами данные файлов тоже сохранятся. Чтобы затереть их полностью, нужно затереть весь раздел перед шифрованием. Подробности можно найти в «Cryptsetup FAQ».

ОСНОВНЫЕ КОМАНДЫ

open устройство имя —type тип_устройства Открывает (создаёт и отображает в dm ) имя поверх устройства . Возможные типы_устройств :
plain , luks (по умолчанию), loopaes или tcrypt . Для обратной совместимости предусмотрены псевдонимы действия open :
create ( argument-order имя устройство ): open —type plain
plainOpen: open —type plain
luksOpen: open —type luks
loopaesOpen: open —type loopaes
tcryptOpen: open —type tcrypt Опции зависят от формата и отдельно описаны ниже. По историческим причинам порядок следования имени и устройства — обратный для действия create , но прямой (сначала устройство , потом имя ) для остальных псевдонимов.

close имя Деактивирует открытое в dm виртуальное устройство и стирает рабочий ключ из памяти ядра. Для обратной совместимости предусмотрены псевдонимы действия close :
remove , plainClose , luksClose , loopaesClose , tcryptClose (это просто псевдонимы, формат определяется автоматически).

status имя Показывает состояние открытого виртуального тома имя .

resize имя Изменяет объём открытого виртуального тома имя . Если не указан новый объём в секторах опцией —size , то он принимается равным объёму несущего раздела или иного блочного объекта. Физическая геометрия несущего устройства не меняется, просто определяется доля, занятая шифрованным томом.

ФОРМАТ PLAIN DM-CRYPT

Допустимые действия:
open —type plain устройство имя
create имя устройство ( УСТАРЕВШИЙ синтаксис ) Открывает (отображает в dm ) виртуальный том имя на несущем устройстве . Возможные опции:
—hash , —cipher , —verify-passphrase, —key-file , —keyfile-offset , —key-size , —offset , —skip , —size, —readonly , —shared , —allow-discards . Пример:
cryptsetup open —type plain /dev/sda10 e1
Несущее зашифрованное устройство /dev/sda10 отображается в расшифрованное виртуальное устройство /dev/mapper/e1 . Последнее можно форматировать (создавать файловую систему), монтировать, проверять на ошибки файловой системы.

Читайте также:  Журнал логов windows 10

ФОРМАТ LUKS

Полное название этого стандарта шифрования накопителей — Linux Unified Key Setup. В начале несущего накопителя записывается стандартизированный заголовок (header), за ним — слоты ключей, остальное место отдано под данные. Всё вместе называется «LUKS-контейнер» (LUKS container). Несущее устройство — «LUKS-устройство» (LUKS device). Обычно эти термины вполне взаимозаменяемы, однако если заголовок расположить не в начале устройства, то последнее считается обычным накопителем или томом, содержащим LUKS-контейнер со смещением (offset) как файл или иначе.

Возможно одновременное хранение нескольких паролей («парольных фраз», passphrase). Любой пароль может быть изменён или удалён необратимо. Защитой от подбора (грубого или по словарю) служит метод PBKDF2, включающий одновременно соль и многопроходное хеширование.

Число слотов (key-slots) для хранения паролей/ключей (passphrase/key) равно 8 (восьми). В действиях с ключами берётся первый подходящий слот (заполненный ключом) или первый пустой, если номер слота не указан явно.

Возможно указать LUKS-заголовок, находящийся вне несущего устройства, опцией —header . Внешний заголовок будет иметь приоритет по отношению к уже возможно имеющемуся заголовку на несущем устройстве.

Допустимые действия:
luksFormat устройство [ файл_ключа ] Создаёт LUKS-контейнер и задаёт начальный пароль (слот ключа номер 0), получаемый с пользовательского ввода или из файла_ключа . Если файл_ключа указан, то опция —key-file не требуется. В любом случае файл_ключа можно задать как «-«, то есть стандартный ввод (stdin). При этом запрос на подтверждение пропускается. Для действия luksFormat само LUKS-устройство должно быть неактивно (не задействовано с dm ). Возможные опции:
—hash , —cipher , —verify-passphrase , —key-size , —key-slot , —key-file (имеет приоритет по отношению к файлу_ключа ), —keyfile-offset , —keyfile-size , —use-random | —use-urandom , —uuid , —master-key-file , —iter-time , —header , —force-password . ВНИМАНИЕ : если LUKS-устройство уже содержит контейнер, старый заголовок будет затёрт новым, а доступ к старым данным будет возможен только при наличии отдельной резервной копии старого заголовка.

open —type luks устройство имя
luksOpen устройство имя ( устаревший синтаксис ) Получив верный пароль, открывает имя поверх несущего устройства . Если не предоставлен файл_ключа (или опция —key-file ), запрашивает пароль интерактивно. Возможные опции:
—key-file , —keyfile-offset , —keyfile-size , —readonly , —test-passphrase , —allow-discards , —header , —key-slot , —master-key-file .

luksSuspend имя Приостанавливает активное устройство (ожидание доступа становится вечным, все операции ввода-вывода блокируются) и стирает рабочий ключ из памяти ядра. Требуется ядро версии 2.6.19 или более новое. Из этого состояния есть два корректных выхода: luksResume для повторного запроса ключа и разблокировки виртуального устройства или close для отключения устройства от dm . Виртуальное устройство (уже активное) можно указать как внутренний идентификатор LUKS UUID в форме UUID = идентификатор . В каталоге /dev/disk/by-uuid можно найти одноимённую символьную ссылку, указывающую на устройство, обслуживаемое dm . ВНИМАНИЕ : не приостанавливайте устройство, на котором хранится исполняемый файл cryptsetup . Возможные опции:
—header .

luksResume имя Повторно читает ключ и восстанавливает активное состояние тома имя . Если не задана опция —key-file , запрашивает пароль интерактивно. Возможные опции:
—key-file , —keyfile-size , —header .

luksAddKey устройство [ файл_с_новым_ключом ] Добавляет другой пароль. Требуется предоставить уже имеющийся пароль интерактивно или посредством опции —key-file . Новый пароль добавляется интерактивно или из файла_с_новым_ключом . Возможные опции:
—key-file , —keyfile-offset , —keyfile-size , —new-keyfile-offset , —new-keyfile-size , —key-slot , —master-key-file , —iter-time , —force-password , —header .

luksRemoveKey устройство [ файл_ключа_с_удаляемым_паролем ] Удаляет заданный пароль (затирает слот) из LUKS-устройства. Удаляемый пароль также можно ввести интерактивно или опцией —key-file . Возможные опции:
—key-file , —keyfile-offset , —keyfile-size , —header . ВНИМАНИЕ: если пароль получен со стандартного ввода, активируется пакетный (неинтерактивный) режим ( -q ) и удаление даже последнего (в LUKS-контейнере) пароля будет выполнено без каких-либо предупреждений. Если ни одного пароля не останется (то есть все слоты ключей будут пусты), дешифровать LUKS-контейнер станет невозможно.

luksChangeKey устройство [ новый_файл_ключа ] Заменяет один из паролей на другой. Старый пароль нужно ввести интерактивно или опцией —key-file . Новый пароль можно ввести интерактивно или через новый_файл_ключа . Если задан номер слота ключа (опцией —key-slot ), нужно ввести старый пароль именно для заданного слота, и замена пароля произойдёт тоже в этом слоте. Если номер слота не задан и есть свободный слот, то сначала новый пароль будет записан в свободный слот, а потом будет затёрт слот, содержащий старый пароль. Если свободных слотов не окажется, то новый пароль будет записан прямо в слот, ранее содержащий старый пароль. ВНИМАНИЕ: в случае сбоя накопителя может оказаться, что старый пароль уже стёрт, а новый ещё не записан — тогда дешифровать LUKS-контейнер станет невозможно. Возможные опции:
—key-file , —keyfile-offset , —keyfile-size , —new-keyfile-offset , —new-keyfile-size , —key-slot , —force-password , —header .

luksKillSlot устройство номер_слота_ключа Затирает слот ключа с заданным номером_слота_ключа . Необходимо ввести пароль из другого слота интерактивно или опцией —key-file , если не активирован пакетный (неинтерактивный) режим ( -q ). Возможно затереть последний слот, но это потребует интерактивного подтверждения. Если ни одного пароля не останется (то есть все слоты ключей будут пусты), дешифровать LUKS-контейнер станет невозможно. Возможные опции:
—key-file , —keyfile-offset , —keyfile-size , —header . ВНИМАНИЕ: если пароль получен со стандартного ввода, активируется пакетный (неинтерактивный) режим ( -q ) и удаление даже последнего (в LUKS-контейнере) пароля будет выполнено без каких-либо предупреждений. Если ни одного пароля не останется (то есть все слоты ключей будут пусты), дешифровать LUKS-контейнер станет невозможно. ЗАМЕЧАНИЕ: если пароль никак не введён и активирован пакетный (неинтерактивный) режим ( -q ), то слот будет затёрт без каких-либо предупреждений.

erase устройство
luksErase устройство Затирает все слоты ключей, после чего дешифровать LUKS-контейнер станет невозможно. Вводить пароль не требуется. ВНИМАНИЕ: это действие необратимо.

luksUUID устройство Выводит внутренний UUID LUKS-устройства.
Устанавливает (если нужно) новый UUID опцией —uuid .

isLuks устройство Возвращает в систему «true», если устройство является LUKS-устройством, или «false» в ином случае. Опцией -v можно получить человеко-читаемый ответ, а именно: «Команда выполнена успешно.» (Command successful.), если устройство является LUKS-устройством.

luksDump устройство Выводит метаданные заголовка LUKS-устройства. Если задана опция —dump-master-key , то вместо информации о слотах выводит мастер-ключ (master key, MK). Его нельзя сменить, им можно расшифровать LUKS-контейнер даже без пароля и без заголовка. То есть утечка мастер-ключа означает необходимость затереть всё устройство. Будьте осторожны с опцией —dump-master-key . Чтобы получить мастер-ключ, необходимо ввести пароль интерактивно или опцией —key-file . Возможные опции:
—dump-master-key , —key-file , —keyfile-offset , —keyfile-size , —header . ВНИМАНИЕ: при сочетании опций —dump-master-key и —key-file =’-‘ действие выполняется без дополнительных запросов или предупреждений.

luksHeaderBackup устройство —header-backup-file файл_копии Делает двоичную копию заголовка со слотами ключей.
ЗАМЕЧАНИЕ: если имя файла_копии задано как «-«, то полученный файл так и будет называться. ВНИМАНИЕ: если копия содержит верные пароли, то становится возможным расшифровать устройство , даже если сменить (или удалить) пароли в оригинальном заголовке. Кроме того, к устройству всё ещё возможно получить доступ, даже если затереть оригинальный заголовок. Для полного лишения доступа необходимо также затереть все двоичные копии либо всё устройство . Последний вариант всё ещё недостаточно безопасен, так как некоторые сектора могут сохранить данные, например благодаря внутреннему управлению дефектами накопителя.

luksHeaderRestore устройство —header-backup-file файл_копии Восстанавливает заголовок со слотами ключей из двоичной копии.
ЗАМЕЧАНИЕ: если имя файла_копии задано как «-«, то cryptsetup будет предполагать наличие файла с таким именем. ВНИМАНИЕ: после этого действия будут верны только пароли из файла_копии . Необходимо, чтобы соответствовали размеры внутренних структур (в том числе мастер-ключа) оригинального заголовка и файла_копии . Если устройство не содержит заголовка, он будет записан из файла_копии .

ФОРМАТ LOOP-AES

open —type loopaes устройство имя —key-file файл_ключа
loopaesOpen устройство имя —key-file файл_ключа ( УСТАРЕВШИЙ синтаксис ) Открывает устройство формата «loop-AES» (в dm ) с заданным именем . Если файл_ключа зашифрован посредством GnuPG , сначала необходимо расшифровать ключ, примерно так:
gpg —decrypt файл_ключа | \
cryptsetup loopaesOpen —key-file=- устройство имя ВНИМАНИЕ: нет возможности ввести ключ для «loop-AES» с терминала напрямую, потому что ключи отделяются символами конца строки, а следовательно, файл с несколькими ключами будет получен лишь частично.
Если нужно обепечить ввод ключа (здесь — $KEYFILE) в командном сценарии, сделайте перенаправление:
echo $KEYFILE | \
cryptsetup loopaesOpen —key-file=- устройство имя Явно указать длину ключа можно опцией —keyfile-size . Явно указать смещение (в секторах по 512 байт) с начала устройства можно опцией —offset . Явно указать смещение синхропосылки (initialization vector) можно опцией —skip . Если аргумент опции —offset не содержит (?) смещение синхропосылки, необходимо дополнительно указать —skip 0 .
(Оригинальный текст: Use —skip to specify the IV offset. If the original device used an offset and but did not use it in IV sector calculations, you have to explicitly use —skip 0 in addition to the offset parameter.) Явно указать хеширующую функцию для пароля можно опцией —hash (или она будет выбрана автоматически на основе длины ключа). Возможные опции:
—key-file , —key-size , —offset , —skip , —hash , —readonly , —allow-discards .

Читайте также:  Как отключить требование подписи драйвера windows

Дополнительную информацию по «loop-AES» можно найти в «Cryptsetup FAQ» и на сайте:

ФОРМАТ TCRYPT (TRUECRYPT-СОВМЕСТИМЫЙ И VERACRYPT)

Для работы с TCRYPT здесь необходима поддержка в ядре функциональности «userspace crypto API» (представлена начиная с версии 2.6.38). Если собираете ядро самостоятельно, включите пункт «User-space interface for symmetric key cipher algorithms» в секции «Cryptographic API» (то есть «CRYPTO_USER_API_SKCIPHER» в файле .config ).

Так как заголовок TCRYPT зашифрован, необходимо всегда вводить верные пароли и ключи.

Предполагается, что cryptsetup распознает любые заголовки, кроме устаревших цепочек шифров, основанных на LRW и 64-битных блоках (в частности, Blowfish на LRW не распознается из-за отсутствия поддержки в ядре Linux).

Для обращения к устройству формата VeraCrypt используйте опцию —veracrypt . Этот формат предусматривает заголовок TrueCrypt с увеличенным числом итераций, так что время дешифровки увеличивается в сравнении с устройством формата TCRYPT.

ЗАМЕЧАНИЕ: Действие tcryptOpen работает только для цепочек шифров, основанных на LRW или XTS.

Действие tcryptDump должно сработать для любого распознанного TCRYPT-устройства и не требует прав привилегированного пользователя (root, superuser).

Активировать системное устройство можно опцией —tcrypt-system . Аргументом может быть физический том, но не регулярный файл-контейнер.

Если системное TCRYPT-устройство создано внутри регулярного файла и нужно активировать несколько разделов, сначала создайте петлевые устройства для разделов, а потом задавайте петлевые устройства как аргументы. Подробности создания петлевых устройств можно найти в losetup (8), в частности описание опции -P .

Если устройство-аргумент указывает на полное физическое устройство, активное виртуальное устройство будет отображать системное устройство полностью. Это сделано для совместимости со старыми версиями cryptsetup .

Активировать скрытый заголовок (и скрытое устройство, если есть) можно опцией —tcrypt-hidden .

Принудительно выбрать резервный (второй) заголовок можно опцией —tcrypt-backup .

ЗАМЕЧАНИЕ: при монтировании внешнего тома скрытый том никак не защищается от перезаписи. Возможная защита потребовала бы дополнительных метаданных во внешнем томе, что позволило бы обнаружить скрытый том.

open —type tcrypt устройство имя
tcryptOpen устройство имя ( УСТАРЕВШИЙ синтаксис ) Открывает устройство формата TCRYPT (TrueCrypt-совместимое) и активирует его в dm под заданным именем . Возможные опции:
—key-file , —tcrypt-hidden , —tcrypt-system , —tcrypt-backup , —readonly , —test-passphrase , —allow-discards . Опция —key-file допускает и файл, и пароль, а также может быть задана несколько раз. Допустимое для TCRYPT применение ключей отличается от практики LUKS. ВНИМАНИЕ: опции —allow-discards и —tcrypt-hidden несовместимы. Это сделано для защиты скрытого тома, который создаётся в свободном пространстве внешнего тома и подвержен риску потери при отбрасывании (discard).

tcryptDump устройство Выводит метаданные заголовка TCRYPT-устройства. Если задана опция —dump-master-key , то вместо информации о заголовке выводит мастер-ключ. Мастер-ключом (или цепочкой мастер-ключей) можно расшифровать TCRYPT-контейнер даже без пароля. То есть утечка мастер-ключа означает необходимость затереть всё устройство. Будьте осторожны с опцией —dump-master-key . Возможные опции:
—dump-master-key , —key-file , —tcrypt-hidden , —tcrypt-system , —tcrypt-backup . Опция —key-file допускает и файл, и пароль, а также может быть задана несколько раз.

Дополнительную информацию по TCRYPT можно найти на сайте:

В cryptsetup нет кода из TrueCrypt , поэтому сообщения об ошибках с форматом TCRYPT следует отсылать проекту TrueCrypt .

РАЗНОЕ

repair устройство Пытается восстановить метаданные устройства . В настоящее время доступно только для формата LUKS. Может исправлять некоторые известные незначительные ошибки в метаданных заголовка LUKS. Исправимы только лёгкие повреждения неиспользуемых слотов ключей. Изменения вносятся только в заголовок, сами слоты ключей не затрагиваются. ВНИМАНИЕ: перед вызовом repair обязательно создайте резервную двоичную копию LUKS-заголовка.

benchmark [ опция ]. Выполняет тест скоростей шифров и функций формирования ключа (key derivation function, KDF). Без опций сравнивает несколько типовых конфигураций. Задать шифры или режимы можно опциями —cipher , —key-size , —hash . ЗАМЕЧАНИЕ: тест выполняется только в памяти и носит ознакомительный характер. Не предоставляет возможности вычислить скорость работы реального зашифрованного накопителя. Для проведения теста на блочных шифрах здесь необходима поддержка в ядре функциональности «userspace crypto API» (представлена начиная с версии 2.6.38). Если собираете ядро самостоятельно, включите пункт «User-space interface for symmetric key cipher algorithms» в секции «Cryptographic API» (то есть «CRYPTO_USER_API_SKCIPHER» в файле .config ). Возможные опции:
—cipher , —key-size , —hash .

ОПЦИИ


КОДЫ ВЫХОДА


ЗАМЕЧАНИЯ ПО ОБРАБОТКЕ ПАРОЛЕЙ PLAIN DM-CRYPT

С терминала: пароль считывается до появления символа конца строки (то есть «\n»). Полученный ввод (исключая символ конца строки) хешируется функцией, заданной по умолчанию или в опции —hash . Хеш усекается до размера ключа выбранного шифра или до значения опции -s .

Со стандартного ввода: пароль считывается до появления символа конца строки или достижения максимального размера. Завершающий символ конца строки усекается. Максимальный размер запрограммирован по умолчанию или задаётся опцией —keyfile-size option .

Ввод хешируется функцией, заданной по умолчанию или в опции —hash . Хеш усекается до размера ключа выбранного шифра или до значения опции -s .

Если для ввода ключа задано выражение —key-file = — , то завершающий символ конца строки НЕ усекается.

Если задано выражение —hash = plain , то ввод не хешируется. Ввод дополняется нулями или усекается до нужного размера и в таком виде используется как ключ. Это возможность задать двоичный ключ напрямую. Предупреждений о слишком коротком ключе здесь не будет выведено.

Из файла ключа: ввод усекается до размера ключа выбранного шифра или до значения опции -s , потом используется как двоичный ключ.

ВНИМАНИЕ: опция —hash здесь игнорируется. Она действительна только для получения ключа со стандартного ввода.

Если файл короче, чем размер ключа, cryptsetup завершится с ошибкой. Максимальный размер запрограммирован по умолчанию или задаётся опцией —keyfile-size option .

ЗАМЕЧАНИЯ ПО ОБРАБОТКЕ ПАРОЛЕЙ LUKS

С терминала: пароль считывается до появления символа конца строки, завершающий символ конца строки усекается, и затем пароль обрабатывается в PBKDF2.

Со стандартного ввода: пароль считывается до появления символа конца строки или достижения запрограммированного максимального размера файла ключа. Размер можно задать опцией —keyfile-size option .

Из файла ключа: файл считывается до достижения запрограммированного максимального размера. Символы конца строки не прерывают ввод. Размер можно задать опцией —keyfile-size option .

Обработка пароля : при любом добавлении пароля в заголовок можно установить интервал обработки. Длительность интервала определяет количество проходов (итераций) PBKDF2, и большее количество означает лучшую защиту слабых паролей, но замедление действия open . Если энтропия пароля превышает требования к ключу, увеличивать количество проходов НЕ повышает безопасность.

По умолчанию задан интервал в одну секунду (1000 миллисекунд), чего достаточно для большинства случаев. Исключением может служить слабый пароль на компьютере с медленным процессором, когда количество проходов недостаточно. Здесь рекомендуется увеличить интервал опцией —iter-time , что даст больше проходов. Соответственно замедлятся последующие действия luksOpen .

ОТЛИЧИЯ В ОБРАБОТКЕ НЕВЕРНЫХ ПАРОЛЕЙ И КЛЮЧЕЙ

На контейнере «plain dm-crypt» пароль не проверяется. Такой контейнер просто дешифруется полученным паролем. Если пароль неверен, данные по сути остаются зашифрованными и не пригодны для работы.

ЗАМЕЧАНИЕ О ПОДДЕРЖИВАЕМЫХ ШИФРАХ, ФОРМАТАХ, ХЕШАХ И РАЗМЕРАХ КЛЮЧЕЙ

Если применяется библиотека libgcrypt , то для опции —hash доступны все её (библиотеки) шифры. В других библиотеках доступных шифров может быть меньше.

ЗАМЕЧАНИЕ О ПАРОЛЯХ


ЗАМЕЧАНИЕ О ГЕНЕРАТОРАХ ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ

Запросы cryptsetup (LUKS) к генераторам можно разделить на две группы. Первая: соль, «AF splitter», затирание удалённых слотов ключей. Всегда /dev/urandom .

Вторая: мастер-ключ. Можно указать генератор опцией —use-random или —use-urandom . При выборе /dev/random на системах с малым числом источников энтропии действие luksFormat будет приостановлено до накопления нужного объёма потока псевдослучайных данных. Например, на внедряемой системе (embedded system) процесс может затянуться практически до бесконечности. С другой стороны, /dev/urandom там же достаточно быстр, но даст слабые ключи. Обсуждать здесь пути решения этой важной проблемы неуместно. Некоторые подробности можно найти в urandom (4).

ЗАМЕЧАНИЕ О ПЕТЛЕВЫХ УСТРОЙСТВАХ

Имя активного петлевого устройства показано в выводе действия status . Подробности можно найти в losetup (8).

УСТАРЕВШИЕ ДЕЙСТВИЯ

Действие reload больше не поддерживается. Если нужно напрямую обратиться к таблице отображений (device mapping table), воспользуйтесь программой dmsetup (8).

Действие luksDelKey заменено на luksKillSlot .

СООБЩАТЬ ОБ ОШИБКАХ


АВТОРЫ

Создатель программы cryptsetup — Jana Saout
Расширения LUKS и оригинальная man-страница — Clemens Fruhwirth
Пополнение man-страницы — Milan Broz
Пополнение и переработка man-страницы — Arno Wagner

АВТОРСКИЕ ПРАВА


ПЕРЕВОД

Перевод man-страницы с английского — Андрей Балаев 2017.

СМОТРИТЕ ТАКЖЕ

Сайт проекта LUKS:

Документ «Cryptsetup FAQ» поставляется в составе пакета или по адресу:

Адреса списка и архива рассылки: смотрите пункт 1.6 в «Cryptsetup FAQ».
Спецификация формата метаданных LUKS:

Источник

Оцените статью