The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

cryptsetup (8)
  • >> cryptsetup (8) ( Русские man: Команды системного администрирования )
  • cryptsetup (8) ( Linux man: Команды системного администрирования )
  • Ключ cryptsetup обнаружен в базе ключевых слов.
  •  

    НАЗВАНИЕ

    cryptsetup - управление шифрованными томами "plain dm-crypt" и LUKS  

    СИНТАКСИС

    cryptsetup [опции] действие операнды_действия  

    ОПИСАНИЕ

    Программа 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

    Устройство шифруется посекторно хешем пароля в один проход, без "соли". Без проверок. Без дополнительных метаданных. Без форматирования. Когда несущее устройство открыто в dm, можно выполнять типичные действия, в том числе форматирование. Файл открытого устройства обычно расположен в /dev/mapper/имя.

    Допустимые действия:
    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. Последнее можно форматировать (создавать файловую систему), монтировать, проверять на ошибки файловой системы.
     

    ФОРМАТ 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

    Работа с томами, зашифрованными в формате "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.

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

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

    Работа с томами форматов TrueCrypt, tcplay или VeraCrypt (с опцией --veracrypt) выполняется при помощи системных вызовов ядра Linux. Форматирование заголовка или изменение заголовка TCRYPT на устройстве не поддерживается.

    Для работы с 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.
     

    ОПЦИИ

    --verbose, -v
    Выдавать больше информации о ходе работы.
    --debug
    Работать в отладочном режиме с максимальной информативностью. Строки отладочных сообщений всегда начинаются с "#".
    --hash, -h хеширующая_функция
    Указать хеширующую_функцию для действия open в работе с устройствами форматов "plain dm-crypt" и "loop-aes".
    Указать хеширующую_функцию для создания (luksFormat) и активации устройств LUKS. Используется для PBKDF2 и AF splitter.
    Название функции передаётся во встроенный модуль шифрования (compiled-in crypto backend). Поддержка хеширующих функций отличается от модуля к модулю. Действию luksFormat необходима функция, выдающая не менее 160 бит, что исключает, например, MD5. Чтобы поддерживать необходимый уровень безопасности, избегайте некриптографических хешей, вроде CRC32.
    Старые версии cryptsetup принимают ripemd160 для "plain dm-crypt" и sha1 для LUKS.
    Значения, принятые по умолчанию, можно посмотреть в выводе опции --help.
    --cipher, -c шифрующий_алгоритм
    Указать шифрующий_алгоритм.
    Значения, принятые по умолчанию, можно посмотреть в выводе опции --help. В настоящее время это aes-cbc-essiv:sha256 для "plain dm-crypt" и aes-xts-plain64 для LUKS.
    Если шифру нужна хеширующая функция, она участвует в генерации синхропосылки. Например ESSIV нуждается в хеширующей функции, а "plain64" - нет, поэтому её название отсутствует.
    Для XTS можно установить размер ключа, равный 512 битам, опцией -s. Один и тот же уровень безопасности требует для XTS ключ удвоенной длины по сравнению с другими режимами.
    Для XTS нужно ядро версии 2.6.24 или более новое. Для "plain64" нужно ядро версии 2.6.33 или более новое. В "Cryptsetup FAQ" есть дополнительные подробности.
    --verify-passphrase, -y
    При интерактивном вводе пароля запросить его дважды и прервать действие в случае несовпадения. Желательно применить для первой активации устройства или для действия luksFormat. Игнорируется при вводе пароля из файла или через перенаправление.
    --key-file, -d файл_ключа
    Ввести пароль из файла_ключа. Значение "-" означает стандартный ввод (stdin). Чтение стандартного ввода НЕ прервётся при получении символа конца строки.
    Для LUKS здесь требуется указать верный пароль, кроме действия luksFormat, где эта опция имеет то же значение, что и последний необязательный аргумент (можно указать либо его, либо опцию --key-file).
    Если нужно задать новый пароль через файл, то вместо этой опции необходимо задать соответствующий аргумент действия luksAddKey.
    Дополнительные подробности можно найти в параграфах "ЗАМЕЧАНИЯ ПО ОБРАБОТКЕ ПАРОЛЕЙ...".
    --keyfile-offset число
    Пропустить число байтов с начала файла ключа. Работает для любого действия, оперирующего с файлом ключа.
    --keyfile-size, -l число
    Читать не более, чем число байт из файла ключа. По умолчанию - весь файл, насколько это возможно для соответствующего модуля (максимальный размер можно узнать опцией --help). Если размер превышен, работа прерывается.
    Удобно, если нужно, например, отсечь завершающие символы конца строки. Если задана ещё и опция --keyfile-offset, то сначала выполняется пропуск (offset), а потом ещё и отсчитывается размерное число. Работает для любого действия, оперирующего с файлом ключа.
    --new-keyfile-offset число
    Пропустить число байтов с начала файла ключа при добавлении нового пароля действием luksAddKey.
    --new-keyfile-size число
    Читать не более, чем число байт из файла ключа при добавлении нового пароля действием luksAddKey. По умолчанию - весь файл, насколько это возможно для соответствующего модуля (максимальный размер можно узнать опцией --help). Если размер превышен, работа прерывается. Если задана ещё и опция --new-keyfile-offset, то сначала выполняется пропуск (offset), а потом ещё и отсчитывается размерное число.
    --master-key-file
    Брать мастер-ключ из файла.
    Действие luksFormat выберет этот ключ для нового заголовка. Если этот мастер-ключ ранее был скопирован из старого заголовка и сопутствующие параметры остались прежними, то при обращении к новому заголовку можно будет расшифровать данные, зашифрованные при старом заголовке.
    ВНИМАНИЕ: самостоятельная подготовка мастер-ключа требует глубоких знаний. Иначе вы рискуете получить ключ с низкой энтропией (легко угадываемый), что снизит безопасность. Например, для действия luksAddKey становится возможным задать новый пароль, не зная старого. Или для действия open становится возможным открыть LUKS-устройство без пароля.
    --dump-master-key
    При выполнении luksDump вывести мастер-ключ вместо информации о слотах ключей. Будьте осторожны, так как знание мастер-ключа позволяет обходиться без паролей (смотрите также опцию --master-key-file).
    --use-random | --use-urandom
    Указать (предоставляемый ядром) генератор псевдослучайных чисел для действия luksFormat. Данные из генератора пойдут на формирование мастер-ключа (то есть основного, несменяемого ключа).
    В параграфе "ЗАМЕЧАНИЕ О ГЕНЕРАТОРАХ ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ" есть дополнительные подробности. Выбор, запрограммированный по умолчанию, можно посмотреть в выводе опции --help.
    ВНИМАНИЕ: на системах с малым числом источников энтропии, например на внедряемой системе (embedded system), любой выбор может оказаться плохим. При выборе генератора /dev/urandom вероятны слабые ключи. При выборе генератора /dev/random процесс может затянуться практически до бесконечности, если ядро не сможет накопить достаточно энтропии.
    --key-slot, -S 0-7
    Указать номер слота для нового ключа (пароля). Предназначено для действий с LUKS: luksFormat, luksAddKey.
    Кроме того, в действии open введённый пароль сравнивается с паролем только указанного слота. При несовпадении работа прерывается.
    --key-size, -s биты
    Задать размер ключа в битах. Число должно быть кратно восьми. Возможные варианты могут отличаться в разных алгоритмах.
    Подробности можно найти в /proc/crypto. Но там размеры указаны в байтах.
    Допустимо для действий open --type plain или luksFormat. Другие действия с LUKS получают размер ключа из LUKS-заголовка. Размер, запрограммированный по умолчанию, можно посмотреть в выводе опции --help.
    --size, -b число_512-байтных_секторов
    Принудительно указать объём несущего устройства в секторах по 512 байт. Допустимо для действий open и resize.
    --offset, -o число_512-байтных_секторов
    Указать смещение с начала несущего устройства в секторах по 512 байт. Допустимо для действия open с форматами "plain dm-crypt" и "loop-AES".
    --skip, -p число_512-байтных_секторов
    Указать смещение для вычисления синхропосылки в секторах по 512 байт. Допустимо для действия open с форматами "plain dm-crypt" и "loop-AES".
    Так, при опциях "--offset n" и "--skip s" сектор номер n несущего устройства будет считаться сектором номер s при вычислении синхропосылки.
    --readonly, -r
    Активировать виртуальное устройство в режиме "только для чтения".
    --shared
    Создаёт в dm ещё одно виртуальное устройство на базе того же несущего. Допустимо для действия open --type plain. Уточнить границы нового устройства можно опциями --offset, --size и --skip.
    --iter-time, -i миллисекунды
    Указать, сколько миллисекунд потратить на обработку пароля с PBKDF2. Допустимо для действий LUKS, как-либо влияющих на пароли, вроде luksFormat или luksAddKey. Для значения, запрограммированного по умолчанию, указать 0 (ноль).
    --batch-mode, -q
    Не запрашивать подтверждений. Будьте осторожны!
    Если не указана опция -y, ещё и не требует вводить пароль дважды для действия luksFormat.
    --timeout, -t секунды
    Ждать ввода пароля с терминала указанное число секунд. Допустимо для любого действия, запрашивающего пароль, вроде open, luksFormat или luksAddKey. Не действует, если указана опция --key-file.
    Полезно, когда нежелательно оставлять систему в вечном ожидании пароля, например при загрузке. Значение по умолчанию - 0, то есть ожидать вечно.
    --tries, -T число
    Указать допустимое общее число попыток ввода пароля. Допустимо для любого действия, запрашивающего пароль, вроде open, luksFormat или luksAddKey. Значение по умолчанию - 3 попытки.
    --align-payload число_512-байтных_секторов
    Выровнять разметку по числу_512-байтных_секторов. Допустимо для действия luksFormat.
    Если не указано, cryptsetup пытается действовать оптимально на основе геометрии несущего устройства, предоставленной ядром. При её отсутствии (или кратном превышении числа по умолчанию) данные выравниваются по границе в 1 МиБ (то есть 2048 секторов).
    Если заголовок отделён, эта опция задаёт смещение на несущем устройстве. См. также опцию --header.
    --uuid=UUID
    Принудительно указать внутренний UUID для нового устройства при действии luksFormat. Записать новый внутренний UUID вместо старого при действии luksUUID.
    Формат записи UUID - стандартный (как 12345678-1234-1234-1234-123456789abc).
    --allow-discards
    Разрешить команды TRIM для устройства. Допустимо для действия open.
    ВНИМАНИЕ: возможны проблемы с безопасностью, потому что на несущем устройстве могут быть видны операции уровня файловой системы. Если отброшенные (discarded) блоки могут быть обнаружены, то возможна утечка данных о типе файловой системе, используемом пространстве и так далее. Если не уверены, не применяйте эту опцию.
    Требуется ядро версии 3.1 или более новое. Иначе опция игнорируется.
    --perf-same_cpu_crypt
    Привязать шифрование и ввод-вывод к одному процессорному ядру. По умолчанию привязки нет, и выполняется автоматическое балансирование нагрузки по доступным процессорным ядрам. Допустимо для действия open.
    ЗАМЕЧАНИЕ: предназначено для низкоуровневой настройки производительности dm-crypt. Применять только для корректировки поведения dm-crypt по умолчанию. Требуется ядро версии 4.0 или более новое.
    --perf-submit_from_crypt_cpus
    Явно запретить выполнение разгрузочной записи (offloading write) в отдельном потоке после шифрования. Возможны ситуации, когда операции разгрузки потоков шифрования в отдельный поток для записи существенно понижают производительность. По умолчанию разгрузочная запись обычно выполняется в том же потоке. Допустимо для действия open.
    ЗАМЕЧАНИЕ: предназначено для низкоуровневой настройки производительности dm-crypt. Применять только для корректировки поведения dm-crypt по умолчанию. Требуется ядро версии 4.0 или более новое.
    --test-passphrase
    Не активировать виртуальное устройство, а только проверить пароль. Допустимо для действия open (имя виртуального устройства можно не указывать).
    --header путь_к_заголовку
    Указать отдельное устройство или файл, где хранится LUKS-заголовок. Это возможность хранить заголовок и зашифрованные данные на разных устройствах. Допустимо для действий luksFormat, open, luksSuspend, luksResume, status и resize.
    Перед выполнением действия luksFormat и записи заголовка в файл необходимо убедиться, что возможно создать (открыть для записи) файл достаточного размера. Подробности о вычислении размера LUKS-заголовка можно найти в "Cryptsetup FAQ".
    Для действий, как-либо изменяющих заголовок (например, luksAddKey), укажите путь_к_заголовку явно как устройство.
    Для действия luksFormat опция --align-payload трактуется как номинальное смещение на несущем устройстве и может быть равна нулю.
    ВНИМАНИЕ: действительная принадлежность заголовка несущему устройству никак не проверяется. Для действия open с опцией --header можно задать любое несущее устройство, так что будьте осторожны.
    --force-password
    Не проверять стойкость новых паролей LUKS. Допустимо для действий luksFormat, luksAddKey и luksChangeKey. Игнорируется, если пакет cryptsetup собран без поддержки функции проверки стойкости паролей.
    Подробности о проверке стойкости паролей можно найти в pwquality.conf(5) и passwdqc.conf(5).
    --version
    Показать номер версии cryptsetup.
    --usage
    Показать краткие инструкции.
    --help, -?
    Показать короткий справочный текст, в том числе параметры по умолчанию.
     

    КОДЫ ВЫХОДА

    0
    Команда выполнена успешно. Остальные коды означают возникновение проблем.
    1
    Неверные аргументы.
    2
    Доступ запрещён (неверный пароль).
    3
    Недостаточно памяти.
    4
    Неверное устройство.
    5
    Устройство уже существует или занято.
     

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

    Для этого формата пароль хешируется в один проход, без "соли". То есть слабые пароли очень уязвимы.

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

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

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

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

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

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

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

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

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

    Защитой (даже некоторых слабых паролей) от подбора (грубого или по словарю) в LUKS служит метод PBKDF2. Дополнительную информацию можно найти в "Cryptsetup FAQ" и "RFC 2898".

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

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

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

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

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

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

    На LUKS-контейнере пароль проверяется.

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

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

    Доступные их варианты и сочетания зависят от наличия в ядре. Текущий список смотрите в /proc/crypto. Может понадобиться подгрузить модули ядра.

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

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

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

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

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

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

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

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

    Обычно операндом для cryptsetup является реальное блочное устройство (раздел диска или том LVM). Но когда операнд - файл, cryptsetup пытается создать активный виртуальный том на петлевом устройстве (loopback device). Для этого нужно ядро версии 2.6.25 или более новое с поддержкой "loop autoclear flag" (автоматическое освобождение закрытого петлевого устройства). Создать петлевое устройство можно и вручную. Подробности можно найти в "Cryptsetup FAQ".

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

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

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

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

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

    Об ошибках в программе или документации сообщайте в список рассылки Или можете оставить сообщение в разделе "Issues" на веб-сайте LUKS. Если ошибка - в программе, то желательно прикрепить к сообщению вывод, получаемый с опцией --debug.  

    АВТОРЫ

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

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

    Copyright © 2004 Jana Saout.
    Copyright © 2004-2006 Clemens Fruhwirth.
    Copyright © 2009-2015 Red Hat, Inc.
    Copyright © 2009-2015 Milan Broz.
    Copyright © 2012-2014 Arno Wagner.
    Это свободное ПО; поставляется вместе с условиями распространения. Никаких гарантий не предоставляется, в том числе на пригодность для ваших целей и/или получение прибыли.  

    ПЕРЕВОД

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

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

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

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

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


     

    Index

    НАЗВАНИЕ
    СИНТАКСИС
    ОПИСАНИЕ
    ЧТО ВЫБРАТЬ: PLAIN DM-CRYPT ИЛИ LUKS?
    ПРЕДУПРЕЖДЕНИЯ
    ОСНОВНЫЕ КОМАНДЫ
    ФОРМАТ PLAIN DM-CRYPT
    ФОРМАТ LUKS
    ФОРМАТ LOOP-AES
    ФОРМАТ TCRYPT (TRUECRYPT-СОВМЕСТИМЫЙ И VERACRYPT)
    РАЗНОЕ
    ОПЦИИ
    КОДЫ ВЫХОДА
    ЗАМЕЧАНИЯ ПО ОБРАБОТКЕ ПАРОЛЕЙ PLAIN DM-CRYPT
    ЗАМЕЧАНИЯ ПО ОБРАБОТКЕ ПАРОЛЕЙ LUKS
    ОТЛИЧИЯ В ОБРАБОТКЕ НЕВЕРНЫХ ПАРОЛЕЙ И КЛЮЧЕЙ
    ЗАМЕЧАНИЕ О ПОДДЕРЖИВАЕМЫХ ШИФРАХ, ФОРМАТАХ, ХЕШАХ И РАЗМЕРАХ КЛЮЧЕЙ
    ЗАМЕЧАНИЕ О ПАРОЛЯХ
    ЗАМЕЧАНИЕ О ГЕНЕРАТОРАХ ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ
    ЗАМЕЧАНИЕ О ПЕТЛЕВЫХ УСТРОЙСТВАХ
    УСТАРЕВШИЕ ДЕЙСТВИЯ
    СООБЩАТЬ ОБ ОШИБКАХ
    АВТОРЫ
    АВТОРСКИЕ ПРАВА
    ПЕРЕВОД
    СМОТРИТЕ ТАКЖЕ


    Поиск по тексту MAN-ов: 




    Спонсоры:
    Inferno Solutions
    Ideco
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру