The OpenNET Project / Index page

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

Работа с зашифрованными дисками в Linux, FreeBSD, NetBSD, OpenBSD (crypt disk freebsd netbsd openbsd linux)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: crypt, disk, freebsd, netbsd, openbsd, linux,  (найти похожие документы)
From: Mark Silinio <silinio(at)mail.ru> Newsgroups: http://silinio.webhost.ru Date: Mon, 25 Jan 2006 14:31:37 +0000 (UTC) Subject: Работа с зашифрованными дисками в Linux, FreeBSD, NetBSD, OpenBSD Оригинал: http://silinio.webhost.ru/crypt-discs.html последнее обновление 19/01/06 Что и кто В данной заметке рассказывается про создание и использование зашифрованного флэш-диска в операционных системах Linux/FreeBSD/NetBSD/OpenBSD. Рассматриваются только низкоуровневые методы шифрования дисков встроенные в ядра операционных систем(рассматриваемых версий). Для использования дополнительных опций и расширенных возможностей(использование нескольких ключей, шифрование корневой файловой системы, шифрование файла подкачки и пр.) см. документацию и ссылки в конце статьи. Использовались следующие операционные системы: * Gentoo Linux (ядра 2.4.32 и 2.6.15) * FreeBSD 6.0-RELEASE * NetBSD 2.0-RELEASE * OpenBSD 3.8-RELEASE Содержание: * Linux + CryptoLoop (Linux 2.4) + dm-crypt: a device-mapper crypto target (Linux 2.6) + LUKS - Linux Unified Key Setup (Linux 2.6) * FreeBSD + GBDE - GEOM Based Disk Encryption (FreeBSD >= 5.0) + GELI (FreeBSD >= 6.0) * NetBSD + CGD - Cryptographic Device Driver (NetBSD >= 2.0) * OpenBSD + SVND - Safe Vnode Disk Driver (OpenBSD >= 2.1) * Ссылки Linux CryptoLoop (Linux 2.4) Поддержка CryptoLoop(крипрографического loopback-устройства) появилась в Linux впервые в ядрах серии 2.4, причём для ранних версий должена была устанавливаться в виде отдельного патча в связи с действующими в то время ограничениями на экспорт криптографических систем в США. Работа с устройствами зашифрованными CryptoLoop в Windows возможна с помощью программ FreeOTFE и TrueCrypt. На сегодняшний день рекомендуется использовать систему dm-crypt ядер 2.6 заместо CryptoLoop. Использование журналируемых файловых систем(EXT3, ReiserFS, XFS, JFS) с CryptoLoop устройствами небезопасно и может привести к потере данных. Для работы с CryptoLoop ваше ядро должно быть скомпилировано с его поддержкой. Прежде чем запускать компиляцию модулей проверьте следующие пункты в menuconfig: Block devices ---> <M> Loopback device support <M> Cryptoloop support - в данном случае CryptoLoop скомпилируется в виде модулей. ...также вам потребуются собственно сами криптоалгоритмы. Выберите необходимые через menuconfig, например: Cryptographic options ---> <M> DES and Triple DES EDE cipher algorithms <M> Blowfish cipher algorithm <M> AES cipher algorithms - таким образом выбранные криптоалгоритмы будут собраны в виде модулей. После компиляции модулей, загрузите их: # modprobe loop # modprobe cryptoloop # modprobe aes Теперь создаём ассоциацию устройства sda(флэшка) с loop-устройсвом loop0, используя для шифрования алгоритм AES: # losetup -e aes /dev/loop0 /dev/sda - при выполнении команды у вас попросят ввести пароль для этого устройства. Создаём файловую систему FAT32 на устройстве(FAT используется для возможности работы в Windows): # mkfs.vfat -F 32 /dev/loop0 Создадим каталог для монтирования: # mkdir /mnt/cryptoflash примонтируем эту файловую систему: # mount -t vfat /dev/loop0 /mnt/cryptoflash размонтируем файловую систему по окончании работы с ней: # umount /dev/loop0 Отключение зашифрованного устройства: # losetup -d /dev/loop0 всё, теперь флэшка может быть извлечена. dm-crypt: a device-mapper crypto target (Linux 2.6) Device-mapper представляет собой новую систему работы с mapping'ом устройсв в Linux 2.6 и шифрование устройств является лишь одной из её возможностей,- LVM2 , EVMS2 также используют подсистему device-mapper. Dm-crypt возможно использовать также для шифрования раздела подкачки, а также поверх иного mapping'а, такого как LVM2, например. Для работы с dm-crypt ваше ядро должно быть скомпилировано с его поддержкой. Прежде чем запускать компиляцию модулей проверьте следующие пункты в menuconfig: Device Drivers ---> Multi-device support (RAID and LVM) ---> <M> Device mapper support <M> Crypt target support - в данном случае dm-crypt скомпилируется в виде модулей. ...также вам потребуются собственно сами криптоалгоритмы. Выберите необходимые через menuconfig, например: Cryptographic options ---> <M> DES and Triple DES EDE cipher algorithms <M> Blowfish cipher algorithm <M> AES cipher algorithms - таким образом выбранные криптоалгоритмы будут собраны в виде модулей. После компиляции модулей, загрузите их: # modprobe dm-mod # modprobe dm-crypt # modprobe aes Устанавливаем программу cryptsetup: # emerge cryptsetup Теперь шифруем устройство sda(флэшка) с помощью алгоритма AES: # cryptsetup --verify-passphrase -c aes create flashcrypt /dev/sda - при выполнении команды у вас попросят ввести пароль для этого устройства. Создаём файловую систему FAT32 на устройстве(FAT используется для возможности работы в Windows): # mkfs.vfat -F 32 /dev/mapper/flashcrypt Создадим каталог для монтирования: # mkdir /mnt/cryptoflash примонтируем эту файловую систему: # mount -t vfat /dev/mapper/flashcrypt /mnt/cryptoflash размонтируем файловую систему по окончании работы с ней: # umount /dev/mapper/flashcrypt Отключение зашифрованного устройства: # cryptsetup remove flashcrypt всё, теперь флэшка может быть извлечена. LUKS - Linux Unified Key Setup (Linux 2.6) LUKS использует улучшенную версию программы cryptsetup, и обладает рядом преемущест по сравнению с ней. Преемущества LUKS: * возможность смены пароля без перешифрования раздела; * возможность иметь несколько паролей; * работа с зашифрованными дисками в Windows-системах с помощью FreeOTFE и TrueCrypt LUKS использует dm-crypt с которым должно быть скомпилировано ваше ядро. Прежде чем запускать компиляцию модулей проверьте следующие пункты в menuconfig: Device Drivers ---> Multi-device support (RAID and LVM) ---> <M> Device mapper support <M> Crypt target support - в данном случае dm-crypt скомпилируется в виде модулей. ...также вам потребуются собственно сами криптоалгоритмы. Выберите необходимые через menuconfig, например: Cryptographic options ---> <M> DES and Triple DES EDE cipher algorithms <M> Blowfish cipher algorithm <M> AES cipher algorithms (i586) - таким образом выбранные криптоалгоритмы будут собраны в виде модулей. После компиляции модулей, загрузите их: # modprobe dm-mod # modprobe dm-crypt # modprobe aes Устанавливаем программу cryptsetup-luks: # emerge cryptsetup-luks Первичное форматирование устройства sda(флэшка) с помощью алгоритма AES(по-умолчанию): # cryptsetup --verify-passphrase luksFormat /dev/sda - при выполнении команды у вас попросят ввести пароль для этого устройства. Подключение зашифрованного устройства(нужно будет ввести пароль): # cryptsetup luksOpen /dev/sda flashcrypt Создаём файловую систему FAT32 на устройстве(FAT используется для возможности работы в Windows): # mkfs.vfat -F 32 /dev/mapper/flashcrypt Создадим каталог для монтирования: # mkdir /mnt/cryptoflash примонтируем эту файловую систему: # mount -t vfat /dev/mapper/flashcrypt /mnt/cryptoflash размонтируем файловую систему по окончании работы с ней: # umount /dev/mapper/flashcrypt Отключение зашифрованного устройства: # cryptsetup luksClose flashcrypt всё, теперь флэшка может быть извлечена. FreeBSD GBDE - GEOM Based Disk Encryption (FreeBSD >= 5.0) GBDE шифрует содержимое секторов при помощи 128-битного AES в режиме CBC. Каждый сектор диска шифруется различным ключом AES. Код GBDE не проанализирован в достаточной степени квалифицированными криптографами, кроме того, разработчики не гарантируют что формат хранения данных GBDE не изменится в результате исправлений ошибок или иных изменений кода. Потенциальные пользователи GBDE должны быть готовы к возможной миграции их данных с помощью утилит dump(8)/restore(8) в будущем. Для работы с GBDE ваше ядро должно быть скомпилировано с его поддержкой. Добавте следующи строки в конфигурационных файл ядра: options GEOM_BDE После необходимо перекомпилировать ядро. Либо подгружать модуль gbde во время загрузки системы. Добавьте следующую строку в /boot/loader.conf: geom_bde_load="YES" после этого устройства gbde(4) должны поддерживаться системой. Первичная инициализация раздела GBDE (флэшки) с помощью gbde(8): # gbde init /dev/da0 при выполнении команды у вас попросят два раза ввести пароль. Подключение зашифрованного устройства к системе(нужно ввести пароль): # gbde attach /dev/da0 создадим новую файловую систему командой newfs(8): # newfs /dev/da0.bde Создадим каталог для монтирования: # mkdir /mnt/cryptoflash примонтируем эту файловую систему: # mount /dev/da0.bde /mnt/cryptoflash размонтируем файловую систему по окончании работы с ней: # umount /dev/da0.bde Отключение зашифрованного устройства: # geli detach /dev/da0 всё, теперь флэшка может быть извлечена. GELI (FreeBSD >= 6.0) GELI - это новый GEOM класс для шифрования диска. Он имеет ряд новых функций, отличающих его от уже существующего класса GBDE. Сам автор не утверждает, что GELI лучше или хуже GBDE, он просто другой. Пользователям предлагается самим выбирать, какой модуль им больше подходит по функциональности. Некоторые возможности GELI: * использование специализированного оборудования для шифрования (если доступно); * поддержка нескольких алгоритмов шифрования (AES, Blowfish и 3DES); * возможность шифрования корневого раздела файловой системы; * возможность использования двух независимых ключей; * возможность использования для временных разделов и разделов подкачки Для работы с GELI ваше ядро должно быть скомпилировано с его поддержкой. Добавте следующи строки в конфигурационных файл ядра: options GEOM_ELI device crypto После необходимо перекомпилировать ядро. Либо подгружать модуль geli во время загрузки системы. Добавьте следующую строку в /boot/loader.conf: geom_eli_load="YES" после этого geli(8) должен поддерживаться системой. Первичная инициализация раздела GELI (флэшки): # geli init /dev/da0 при выполнении команды у вас попросят два раза ввести пароль. Подключение зашифрованного устройства к системе(нужно ввести пароль): # geli attach /dev/da0 создадим новую файловую систему командой newfs(8): # newfs /dev/da0.eli Создадим каталог для монтирования: # mkdir /mnt/cryptoflash примонтируем эту файловую систему: # mount /dev/da0.eli /mnt/cryptoflash размонтируем файловую систему по окончании работы с ней: # umount /dev/da0.eli Отключение зашифрованного устройства: # geli detach /dev/da0 всё, теперь флэшка может быть извлечена. NetBSD CGD - Cryptographic Device Driver (NetBSD >= 2.0) Начиная с версии 2.0, NetBSD имеет собственную систему шифрования дисков CGD - Cryptographic Device Driver. Данная система также портирована под OpenBSD 3.2, но не интегрирована в основную ветвь. Некоторые возможности CGD: * обеспечивает такие алгоритмы кодирования как AES, Blowfish и 3DES в режиме CBC; * различные методы верификации для проверки правильности ключевой фразы: + none: без проверки. Это опасно, так как ключ не проверяется вообще. cgdconfig примонтирует cgd устройство нормально, но данные окажутся разрушенными в случае ввода неправильного ключа (расшифровка блоков с неправильным ключом приведет к появлению совершенно передсказуемых данных), + disklabel: cgdconfig сканирует сответствие раздела. Если и раздел и ключ верны, то верификация будет пройдена, + ffs: cgdconfig сканирует файловую систему. Если файловая система и ключ верны, то верификация будет пройдена; * возможность использования для временных разделов и разделов подкачки Для работы с устройствами cgd, ядро должно быть скомпилированно с поддержкой хотя бы одного(далее возьмём четыре): pseudo-device cgd 4 # cryptographic disk driver Создаём файл конфигурации(/etc/cgd/sd0) cgd для устройства sd0(флэшка): # cgdconfig -g -o /etc/cgd/sd0 -V ffs blowfish-cbc - используем алгоритм Blowfish и проводим верификацию по FFS. Конфигурируем устройство cgd: # cgdconfig -V none cgd0 /dev/sd0 при выполнении команды у вас попросят ввести пароль для этого cgd устройства. создадим новую файловую систему командой newfs(8): # newfs /dev/cgd0 Создадим каталог для монтирования: # mkdir /mnt/cryptoflash примонтируем эту файловую систему: # mount /dev/cgd0 /mnt/cryptoflash размонтируем файловую систему по окончании работы с ней: # umount /dev/cgd0 после окончания работы cgd устройство должно быть расконфигурировано: # cgdconfig -u cgd0 всё, теперь флэшка может быть извлечена. OpenBSD SVND - Safe Vnode Disk Driver (OpenBSD >= 2.1) Вместо добавления криптографии поверх существующей семантики файловой системы, виртуальная шифрованная файловая система была добавлена в существующую в OpenBSD систему vnode(9) через vnd(4), Vnode Disk Driver. SVND имеет следующие ограничения: * использование единственного криптоалгоритма Blowfish (blowfish(3)); * ограничение на максимальный размер шифрованной файловой системы (около 8.2Гб); * отсутствие поддержки HMAC; * опасность повреждения шифрованной файловой системы при ненормальном размотировании Для работы с устройствами vnd, ядро должно быть скомпилированно с поддержкой хотя бы одного(далее возьмём четыре): pseudo-device vnd 4 следует заметить что поддержка vnd устройств присутствует в GENERIC ядре. Для работы с vnd устройствами используется утилита vnconfig(8). Далее создадим зашифрованную файловую систему на устройстве sd0(флэш-диск): # vnconfig -ck -v /dev/svnd0c /dev/sd0 при выполнении команды у вас попросят ввести пароль для этой зашифрованной файловой системы. создадим новую файловую систему командой newfs(8): # newfs /dev/svnd0c Создадим каталог для монтирования: # mkdir /mnt/cryptoflash примонтируем эту файловую систему: # mount /dev/svnd0c /mnt/cryptoflash размонтируем файловую систему по окончании работы с ней: # umount /dev/svnd0c отключим ассоциацию vnd-устройства с реальным устройством(sd0): # vnconfig -u -v /dev/svnd0c всё, теперь флэшка может быть извлечена. Ссылки * Encrypted Root Filesystem HOWTO * dm-crypt wiki * Encrypt devices using dm-crypt and LUKS * Руководство FreeBSD: 16.15. Шифрование дисковых разделов * OpenBSD Encrypted Virtual Filesystem Mini-HOWTO * Операционная система NetBSD. Руководство. Глава 21. Драйвер криптографического устройства * The NetBSD Guide: Chapter 13. The cryptographic device driver (CGD) * The CryptoGraphic Disk Driver(PDF) * FreeOTFE - позволяет монтировать под Windows разделы созданные через cryptoloop, dm-crypt и LUKS * TrueCrypt - бесплатное и открытое средство для создания шифрованных разделов доступных под Windows и Linux * Использование CFS, криптографической файловой системы * Шифрование пользовательских данных с помощью EncFS

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ RSS ]
 
  • 1, aprogrammer, 19:25, 23/09/2013 [ответить] [смотреть все]
  • +/
    Спасибо за инструкцию. Нашел целый ряд инструкций по шифрования от А до Я. Начиная с шифрования при установке, и заканчивая переносом незашифрованой системы на шифрованные диски с удаленной разлочкой http://sysadmin.te.ua/category/linux/shifrovanie
     
  • 2, QarerS8, 20:46, 14/09/2014 [ответить] [смотреть все]
  • +/
    да, были у меня по отдельности два диска с TC, хорошую работу проделали. А поновее сб. поддерживаются? И, если старее с "Vista" пойдёт, ну имеется ввиду конфликт загрузочный-реальные диски?
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:





      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor