Полная версия

OSS Group


Авторизация

  

Навигация

Текущее местоположение:  OSS Group :: Wiki :: APT :: Работа с cryptsetup
Главное меню:   Главная   Документация   Разработка   Контакты   Поиск   Карта сайта   Wiki   Блоги
Разделы Wiki:   Admin  APT  Sandbox

Работа с cryptsetup

== Краткое введение в cryptsetup-luks и работу с ним. ==

-1. Что это такое.

Данная утилита позволяет выполнять конфигурацию устройств 
модуля Device Mapper в составе ядер Linux 2.6.x для обеспечения 
прозрачного шифрования дисковых систем, т.е. создание систем 
OTFE  (On The Fly disk Encryption). 

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

Разделы cryptsetup могут располагаться поверх других систем dm 
(т.е. на программых RAID-массивах, разделах LVM/LVM2 и т.п.) и,
в свою очередь, содержать такие системы. Возможно создание 
шифрованных дисков внутри подключенных через losetup файлов.

Шифруется вся поверхность диска, файловая система может быть любой.

cryptsetup-luks поддерживает два вида дисков OTFE. Первый вид -
это диски старого стандарта dm-crypt. Шифруется весь выделенный
раздел диска, ключом шифрования является хеш парольной фразы. 
В отключенном состоянии раздел диска с точки зрения постороннего лица
целиком заполнен мусором, отличительных признаков наличия на нём
шифрованного раздела нет. При подключении диска обязательно требуется 
указывать используемый блочный шифр и его параметры, т.к. никаких данных
об этом на диске нет. Данный вид дисков может быть уязвим для 
криптоанализа, т.к. неудачный выбор парольной фразы может привести к 
плохому с точки зрения криптостойкости хешу, т.е. ключу шифрования.
Подробности см. http://luks.endorphin.org/LUKS-on-disk-format.pdf 

Второй вид - диски LUKS (Linux Unified Key Setup). В этом случае в 
начале шифрованного раздела записывается заголовок, содержащий информацию
о выбранном шифре, длине ключа и пр. Ключом шифрования данных на диске
является случайным образом выбранная последовательность, которая также
сохраняется в зашифрованном виде в заголове диска. Пользователь не 
знает ключ шифрования, и имеет дело только с парольной фразой, которой
зашифрован ключ в заголовке диска. Ключ шифрования может храниться в 
нескольких выделенных слотах в заголовке диска, каждый слот защищается
своей парольной фразой. Данный подход:
- предотвращает угрозы раскрытия данных от неудачного выбора парольных фраз;
- предоставляет возможность иметь для диска несколько парольных фраз, каждая из
  которых позволяет подключить шифрованный диск;
- позволяет лёгкого сменить пароль на диск путём создания нового слота
  с зашифрованным ключом к диску и удалением старого слота, без необходимости
  переписывания всего раздела;
- позволяет определить ошибки ввода парольной фразы на этапе рашифровывания 
  слота, без необходимости попытки подключения файловой системы;
- даёт возможность полностью разрушить шифрованный раздел путём уничтожения 
  слота с ключём шифрования.
- позволяет отличить диск LUKS от неформатированного раздела с мусором.

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


0. До начала работы с cryptsetup-luks.

Подумайте, действительно ли Вам нужны разделы dm-crypt. В 
ряде случаев вполне можно обойтись шифрованием файлов (архивов) 
с использованием GnuPG или подобных систем. Возможно, Вам стоит 
взглянуть на EncFS. Решение на базе dm-crypt достаточно ресурсоёмкие
с точки зрения процессорного времени и плохо подходят для слабых машин.

Сделайте резервную копию данных. 

Помните, что утрата ключа равнозначна потери всех данных на разделе.

Помните, что неосторожная работа с разделом (неправильный порядок 
подключения раздела, запуск fsck на неподключенном разделе, случайное
удаление слота с ключом в LUKS, пр.) практически однозначно приведёт к 
потере всех данных на нём.

Изучите возможные проблемы использования систем OTFE с точки зрения 
закона. 

Проверьте наличие резервной копии данных. В списке рассылки
cryptsetup вопросы о возможности восстановления данных задаются 
достаточно часто. Положительные ответы звучат _гораздо_ реже.





Далее дана краткая справка по порядку создания и работы с дисками
LUKS и dm-crypt. Предпочтение выбора того или иного формата дисков
зависит от поставленной задачи. Команды даны для создания диска в
файле. Для обычных разделов команды losetup не требуются.

1. Подготовка диска.
    
Создание файла crypt-disk размером XXX Mb и заполнение его 
случайными данными:
# dd if=/dev/urandom of=crypt-disk bs=1M count=XXX

Обычные разделы также следует заполнить мусором. Данная операция
весьма длительна для больших размеров дисков. Состояние работы
dd можно увидеть, послав процессу сигнал USR1 (для dd из состава
дистрибутивов ALTLinux, в других случаях данную возможность 
желательно проверить).

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

В случае острых приступов паранойи рекомендуется почитать статью
"Secure Deletion of Data from Magnetic and Solid-State Memory", 
Peter Gutmann (http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html)
и повторить вышеописанную операцию от 2 до 17 раз. В особо тяжёлых
случаях - с заменой /dev/urandom на /dev/random.



2. Создание и работа с диском LUKS

2.1. Форматирование нового диска LUKS
Подключение файла crypt-disk к /dev/loop0:
# losetup /dev/loop0 crypt-disk

Форматирование диска LUKS:
# 


Создание файловой системы
# mkfs.YYYY /dev/mapper/crypt_disk

Удаление устройства dm-crypt:
# cryptsetup remove crypt_disk
# losetup -d /dev/loop0

2.2. Подключение существующего диска LUKS

2.3. Отключение существующего диска LUKS

2.4. Проверка, содержит ли данный диск LUKS


2.5. Добавление новой парольной фразы для диска LUKS


2.6. Удаление парольной фразы для диска LUKS


Таким же образом производится смена парольной фразы:
- добавляется новая парольная фраза
- удаляется слот со старой парольной фразой
Указанный порядок действий здесь _крайне_ важен.

При работе со слотами парольных фраз следует _внимательно_
следить за тем, чтобы _всегда_ был _хотя бы один_ действующий
слот. При удалении слота производится уничтожение его содержимого,
_без_ возможности восстановления. Средств резервного копирования
заголовка диска LUKS в данный момент в cryptsetup-luks отсутствуют. 
Потеря всех слотов с паролями к диску равнозначна потере всего
содержимого диска. 


3. Создание и работа с диском dm-crypt.

3.1. Создание нового диска.

Создание loop-устройства:
# losetup /dev/loop0 crypt-disk

Создание устройства dm-crypt:
# cryptsetup -y [-c <cypher> [-s <keysize>]] create crypt_disk /dev/loop0

Доступные модули шифрования (cypher): 
blowfish, serpent, twofish, des, aes. 
Самый быстрый из них - aes (как целиком написанный на ассемблере). 
Остальные немного хуже. Сравнение можно посмотреть на странице
http://www.pgpru.com/articles/openpgp/pgp_compare.shtml
По умолчанию выбирается модуль aes, длина ключа 256 бит.

При выполнении команды будет запрошен пароль и создано устройство 
/dev/mapper/crypt_disk .

Создание файловой системы
# mkfs.YYYY /dev/mapper/crypt_disk

Удаление устройства dm-crypt:
# cryptsetup remove crypt_disk
# losetup -d /dev/loop0
	   
При работе с обычным диском создание loop-устройства опускается.
	   

3.2. Монтирование диска:
	       
# losetup /dev/loop0 crypt-file
# cryptsetup [-c <cypher> [-s <keysize>] ] create crypt_disk /dev/loop0
# mount /dev/mapper/crypt_disk /mnt/disk
		   
Если при создании зашифрованного диска использован не стандартный модуль
шифрования, то указывать его обязательно. То же по длине ключа.

Если mount не может смонтировать устройство, то введён неверный пароль или
указан неверный модуль алгоритма шифрования.
		   
3.3. Размонтирование диска:
       
# umount /mnt/disk
# cryptsetup remove crypt_disk
# losetup -d /dev/loop0




4. Дополнения, примечания.

Свободное устройство loopX можно узнать с помощью команды
# losetup -f


Для дисков dm-crypt возможно зашифровать существующую файловую 
систему на дисковом разделе без предварительного переноса
данных с неё на временное место. Порядок данного процесса:
- Резервное копирование
- Проверка функционирования ИБП
- Размонтирование устройства
- Проверка: fsck -f /dev/XXXX
- Подготовка устройства криптографического диска:
  # cryptsetup -y -c aes -s 256 create XXXX /dev/XXXX
- Шифрование диска:
  # dd if=/dev/XXXX of=/dev/mapper/XXXX bs=4k
- Проверка нового диска: fsck -f /dev/mapper/XXXX
- Монтирование его по старому месту



=== Ссылки ===
Домашняя страница cryptsetup-luks: http://luks.endorphin.org/dm-crypt

Много полезной информации можно найти на странице старой версии cryptsetup,
http://www.saout.de/misc/dm-crypt/

Доступно также Wiki: http://www.saout.de/tikiwiki/tiki-index.php 


Plausible Denial ("Правдоподобный отказ") - возможность правдоподоного отказа 
от предоставления ключей к защищённым разделам при угрозе или применении насилия.
LUKS _не предоставляет_ механизмов для plausible denial и внедрение подобных
механизмов в него _не планируется_. Объяснение см. здесь:
http://clemens.endorphin.org/weblog/archives/2006-03.shtml#e2006-03-30T19_26_01.txt


Дата создания: 2006-05-21 13:25:40 (Фетисов Н. А. (naf))
Последнее изменение: 2006-10-03 19:37:20 (Фетисов Н. А. (naf))
Владелец: Фетисов Н. А. (naf)
Версия: 2  Все версии


  Не показывать комментарии


Wiki::APT   Карта раздела  Оглавление  Изменения за сутки  Изменения за неделю  Изменения за месяц



Быстрый поиск по Wiki:
И ИЛИ

На эту страницу ссылаются:

©2006-2024 OSS Group. All rights reserved. | Техническая поддержка: Открытые Информационные Технологии и Системы