пятница, 29 февраля 2008 г.

Как сделать зашифрованный диск

Дано: Gentoo Linux
Рабочая болванка - 1 штука.

Для начала убедимся, что у нас в ядре поставлены нужные галочки (версия 2.6.23):
BLK_DEV_LOOP=y
Prompt: Loopback device support
Location: -> Device Drivers -> Block devices

BLK_DEV_CRYPTOLOOP=y
Prompt: Cryptoloop Support
Location -> Device Drivers -> Block devices -> Loopback device support

В разделе Cryptographic API указать используемые алгоритмы шифрования, в нашем примере:
CRYPTO_TWOFISH=y
Prompt: Twofish cipher algorithm
Location:
-> Cryptographic API

Можно это все собрать и модулями, главное проследить чтобы они были загружены. Однако, если часто этим пользоваться, то собрать все необходимое прямо в ядре намного удобнее.

(добавлено 20080423): Проверить софт: sys-apps/util-linux должна быть с USE флагом loop-aes.

Затем:
1. создаем чистый файл под размер болванки. В примере ниже будет создан файл 1024*4200k байт.


# dd if=/dev/zero of=./disk.dat bs=1024 count=4200k

2. создаем шифрованный loop device и вводим пароль для шифрования:

# losetup -e twofish256 /dev/loop0 ./disk.dat
Password:

3. создаем файловую систему на вновь созданном устройстве

# mkfs.ext2 /dev/loop0

4. монтируем устройство

# mount /dev/loop0 /mnt/secure-disk

5. После этого в папку /mnt/secure-disk копируем все необходимые данные.
Оставшееся место можно, как обычно, контролировать командой df.

6. Затем размонтируем и удаляем устройство

# umount /mnt/test && losetup -d /dev/loop0

Полученный таким образом файл disk.dat можно записать на болванку. Важно помнить, что файлы больше 2Гб требуют на диске файловую систему UDF, которая, если не ошибаюсь, в Windows не поддерживается. Проблему можно обойти сделав несколько фалов размером до 2 гб и записать диск в обычном формате ISO.

Также лучше не забыть положить на диск файл readme.txt с короткой инструкцией. Она вам самим пригодится, чтобы не забыть какой алгоритм шифрования использовался:

(http://knopkodav.blogspot.com/2008/02/blog-post.html)

# losetup -e twofish256 /dev/loop0 ./disk.dat
Password:
# mount /dev/loop0 /mnt/secure-disk -t ext2
...
# umount /dev/loop0
# losetup -d /dev/loop0


Пока не изученные альтернативы:
loop-aes

Комментариев нет: