04.05.2003

 риптографические файловые системы, „асть втора€: »спользование

Ёто втора€ стать€, посв€щенна€ криптографическим файловым системам. ѕерва€ стать€ этой серии описывала процесс шифровани€, основные концепции и некоторые механизмы этих систем. Ёта стать€ посв€щена использованию криптографических файловых систем Microsoft's EFS under Windows 2000 и Linux CryptoAPI.

TECKLORD, по материалам SecurityFocus
Ёто втора€ стать€, посв€щенна€ криптографическим файловым системам. ѕерва€ стать€ этой серии описывала процесс шифровани€, основные концепции и некоторые механизмы этих систем. Ёта стать€ посв€щена использованию криптографических файловых систем Microsoft's EFS under Windows 2000 и Linux CryptoAPI.

Ќапомним, что в первой статье речь шла о том, что Microsoft's EFS не поддерживает† симметричный алгоритм, основанный на пароле, так как такие схемы у€звимы к атакам по словарю. ¬ EFS дл€ шифровани€ и дешифровани€ информации используютс€ открытые ключи. ƒанные зашифровываютс€ с помощью симметричного алгоритма с применением ключа шифровани€ файла (File Encryption Key, FEK), FEK - это сгенерированный случайным образом ключ, имеющий определенную длину. ƒл€ дешифровани€ FEK, требуетс€ использование парол€, и хот€ вход, основанный на нем, полностью запрещен, чаще всего дл€ аутентификации используетс€ пароль пользовател€ домена.

Microsoft Windows 2000 EFS

ѕоскольку некоторое врем€ использовалось альтернативное программное обеспечение дл€ шифровани€ информации других производителей, было прин€то решение интегрировать EFS в Windows 2000. Microsoft Windows 2000 EFS поддерживает лишь алгоритм DESX, в то врем€ как Windows XP включает уже как алгоритм шифровани€ 3DES, так и алгоритм AES (Advanced Encryption Standard).

ќбщее

»спользовать EFS очень легко. Windows 2000 поддерживает два метода шифровани€ файлов: командна€ строка и графический интерфейс. ¬с€ хитрость шифровани€ про€вл€етс€ тогда, когда зашифрованные файлы перенос€тс€ на другой компьютер, поскольку, дл€ того, чтобы расшифровать файл, сертификат и частные ключи пользовател€ должны быть сохранены вместе с файлом на том же компьютере.

Ўифрование/ƒешифрование ‘айла: графический метод

„тобы зашифровать файл следует правой кнопкой мыши нажать на файл и выбрать меню —войства(Properties), как показано на следующем рисунке.

«атем нажмите на кнопку ƒополнительно(Advanced) справа внизу. ¬ самом низу нового окна проставьте галочку возле «ашифровать(Encrypt Contents to secure data), и нажмите ќ .

 огда закроетс€ окно дополнительных атрибутов, нажмите ѕрименить и ќ  (Apply и OK). ѕосле этого по€витс€ диалоговое окно с предложением зашифровать только данный файл, или папку, в которой находитс€ этот файл. «атем снова нажмите ќ . ≈сли файл находитс€ в корневом каталоге, диалогового окна не будет.

ѕосле того, как файл был зашифрован, он доступен, как и любой другой файл. ƒл€ просмотра, его не нужно расшифровывать вручную, так как весь процесс шифровани€/дешифровани€ €вл€етс€ автоматическим и прозрачным. „тобы полностью дешифровать файл, просто откройте меню —войства с помощью правой клавиши мыши. Ќажмите на кнопку ƒополнительно и снимите галочку возле «ашифровать. «атем примените свойства к файлу, и он будет доступен также другим пользовател€м (конечно, в зависимости от атрибутов файла).

Ўифрование/ƒешифрование ‘айла: командна€ строка

Ўифровать и дешифровать данные, пользу€сь командной строкой еще проще. ѕрограмма cipher.exe служит дл€ шифровани€ и дешифровани€ файла, папки и их содержимого. ѕример использовани€ командной строки дл€ этих целей приведен ниже.

cipher /e "D:\crypto\file.txt"

„тобы расшифровать папку и все вложенные папки:

cipher /e /s "D:\crypto"

„тобы просто расшифровать, смените атрибут /e на /d:

cipher /d /s "D:\crypto"

«апомните, чтобы просто дешифровать файл не нужно использовать атрибут /S.

„тобы получить дополнительную справку по атрибутам введите в командной строке

cipher /?

“рудности возникают при переносе зашифрованный данных с одного компьютера на другой. „тобы пользоватьс€ этой возможностью, пользовател€м необходимо импортировать свои ключи с одной машины на другую, использу€ MMC (Microsoft Management Console). ћожно воспользоватьс€ мастером подсказок ћайкрософт по импорту и экспорту FEK. ќн доступен здесь.

–еализаци€ Linux CryptoAPI

ѕринцип использовани€ криптографической файловой системы в Linux так же прост, как и в Windows 2000. ƒл€ использовани€ CryptoAPI вам понадоб€тс€ три (может 4 Ц в зависимости от выбранной вами дистрибуции) компонента: исходный код €дра, исходный код CryptoAPI и cryptoloop. ƒва последние нужно скачать, проверить их подписи, и затем распаковать. ¬ерси€ CryptoAPI должна соответствовать версии €дра операционной системы.

[root@charybdis cryptoapi-0.1.0]# bzip2 -dc /opt/software/kernel/linux-2.4.20.tar.bz2 | tar -xvf -

[root@charybdis cryptoapi-0.1.0]# bzip2 -dc cryptoapi-0.1.0.tar.bz2 | tar -xvf -

[root@charybdis cryptoapi-0.1.0]# bzip2 -dc cryptoloop-0.0.1-pre1.tar.bz2 | tar -xvf -

¬месте с исходным кодом CryptoAPI поставл€ютс€ два патча дл€ файловой системы на устройстве обратной петли. ѕервый патч Ц loopiv (iv означает вектор инициализации - initialization vector) Ц обеспечивает минимальную поддержку дл€ CryptoAPI, и второй патч - loop-jari, также обеспечивает работу CryptoAPI и содержит несколько исправлений дл€ багов.

ѕосле того, как €дро и исходники CryptoAPI будут распакованы, следует сконфигурировать €дро перед установкой патчей CryptoAPI. Ётот процесс можно осуществить, использу€ текущие конфигурации €дра. Ќиже следует описание собрани€ нового €дра с CryptoAPI. ѕосле того, как €дро будет сконфигурировано, следует применить патчи CryptoAPI следующим образом:

[root@charybdis cryptoapi-0.1.0]# make patch-kernel KDIR=< kernel dir > LOOP= < iv|jari >

[root@charybdis cryptoloop-0.0.1-pre1]# make patch-kernel KDIR=< kernel dir > LOOP= < iv|jari>

ѕосле этого перейдите к директории с исходным кодом, скомпилируйте €дро и установите его. –екомендуем перезагрузить машину перед установкой модулей CryptoAPI. ”становка модулей:

†[root@charybdis cyrptoapi-0.1.0]# make modules KDIR=< kernel dir >

ѕосле компил€ции модулей, их нужно установить:

[root@charybdis cyrptoapi-0.1.0]# make modules_install

ѕоследний кусочек пазла Ц патч дл€ losetup. ¬ зависимости от дистрибуции, это программа может требовать отдельного патча, который должен сообщать €дру о шифре и ключе, которые используютс€ дл€ зашифрованных устройств. Ётот патч доступен на SourceForge. ¬ некоторых последних релизах Linux этот патч входит в состав дистрибутива.

ѕосле установки, необходимо решить, кака€ файлова€ система будет использоватьс€: физическа€ или виртуальна€ файлова€ система. ‘изическа€ файлова€ система требует создани€ кодированной файловой системы на физическом носителе. ¬иртуальна€ файлова€ система Ц это большой пустой файл, смонтированный на устройстве обратной петли. Ќиже описан второй метод. —оздание пустого файла требует наличие пространства внутри физической файловой системы.

[root@charybdis cyrptoapi-0.1.0]# dd if=/dev/zero if=/oracle/testfs bs=1M count=50

ћожно также использовать /dev/urandom дл€ заполнени€ пустого файла случайными данными. ѕосле этого нужно загрузить cryptoapi, cryptoloop, и модули шифровани€ €дра.

[root@charybdis cyrptoapi-0.1.0]# modprobe cryptoloop

[root@charybdis cyrptoapi-0.1.0]# modprobe cryptoapi

[root@charybdis cyrptoapi-0.1.0]# modprobe cipher-des

», наконец, можно смонтировать устройство обратной петли:

[root@charybdis cyrptoapi-0.1.0]# losetup -e des /dev/loop0 /oracle/testfs

Password:

Init (up to 16 hex digits):

ѕосле монтировани€ следует создать на устройстве обратной петли файловую систему:

[root@charybdis cyrptoapi-0.1.0]# mkfs -t ext3 /dev/loop0

ј теперь файлова€ система готова к монтированию:

[root@charybdis cyrptoapi-0.1.0]# mount -t ext3 /dev/loop0 /mnt/testfs

¬се файлы, размешенные в этой файловой системе, будут зашифрованы. Ќе рекомендуетс€ делать слишком большую файловою систему, из-за возможного сбо€ в работе системы. — помощью CryptoAPI можно создавать кодированные файловые системы, которые будут невидимы пользовател€м.

¬ывод

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

или введите им€

CAPTCHA