Уболтали Cryptosetup добавлен в репозиторий. Ниже приведена краткая инструкция по его использованию. Учтите, что cryptsetup будет бесполезен, если у вас нет перечисленных ниже модулей ядра для вашей прошивки.
1. Подготавливаем файл-контейнер
Размер контейнера в примере 512Мб, текущая директория - на USB-носителе.
Контейнер смонтирован как loop device в /dev/loop1. Для использования LUKS-шифрования его необходимо отформатировать:Code:$ opkg install losetup cryptsetup $ dd if=/dev/zero of=./crypto.img bs=1M count=512 $ insmod ./loop.ko $ losetup /dev/loop1 ./crypto.img
2. Монтируем контейнерCode:$ insmod ./dm-mod.ko $ insmod ./aes.ko $ insmod ./sha256.ko $ insmod ./dm-crypt.ko $ cryptsetup -y --key-size 256 luksFormat /dev/loop1
Напоминаю, что cryptsetup - это всего лишь user space надстройка, облегчающая использование dm-crypt. В примере был создан готовый к монтированию block device /dev/mapper/crypted.Code:$ cryptsetup luksOpen /dev/loop1 crypted
3. Создаём на нём файловую систему
Всё как с жёстким диском:
Всё! Можно использовать /tmp/crypted/ для хранения зашифрованных данных. Оценим производительность на RT-N66u (данные затираются!):Code:$ mkfs.ext3 -j /dev/mapper/crypted $ mkdir /tmp/crypted $ mount /dev/mapper/crypted /tmp/crypted/
...при загрузке системы:Code:$ /opt/bin/dd if=/dev/zero of=/dev/mapper/crypted bs=1M count=510 510+0 records in 510+0 records out 534773760 bytes (535 MB) copied, 118,957 s, 4,5 MB/s
Информацию о состоянии смонтированного криптоконтейнера можно посмотреть командой:Code:$ top top - 20:11:29 up 5 days, 22:27, 0 users, load average: 1.06, 1.24, 0.73 Tasks: 82 total, 1 running, 81 sleeping, 0 stopped, 0 zombie Cpu(s): 0.7%us, 63.4%sy, 0.0%ni, 0.0%id, 34.3%wa, 1.3%hi, 0.3%si, 0.0%st Mem: 255520k total, 230476k used, 25044k free, 32832k buffers Swap: 0k total, 0k used, 0k free, 158712k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 26656 admin 11 -5 0 0 0 S 52.5 0.0 1:19.22 kcryptd/0 18037 admin 0 -20 0 0 0 S 5.6 0.0 0:00.49 loop1 18316 admin 17 0 2080 1384 1316 D 4.6 0.5 0:00.26 dd
4. Окончание работы с контейнеромCode:$ cryptsetup -y luksDump /dev/loop1
Надо просто всё размонтировать в обратном порядке:
К посту приложены необходимые модули для стоковой/мерлиновской прошивки для Asus RT-N66u.Code:$ umount /tmp/crypted/ $ cryptsetup luksClose crypted $ losetup -d /dev/loop1
Last edited by ryzhov_al; 21-08-2012 at 17:59.
Есть. Предшественник dm-crypt - cryptoloop.
В посте выше я монтировал файл-контейнер как loop device, а dm-crypt шифровал данные между /dev/loop1 и /dev/mapper/crypted. При использовании cryptoloop данные между файлом контейнера и loop device'ом волшебным способом шифруются на лету.
1. Создаём файл-контейнер
2. Подгружаем модули шифрования sha/aesCode:$ dd if=/dev/zero of=./crypto.img bs=1M count=512
Шифры должны стать нам доступны в перечне:Code:$ insmod ./aes.ko $ insmod ./sha256.ko
3. Монтируем шифрованный loop deviceCode:$ cat /proc/crypto | grep ^name
Далее /dev/loop0 можно отформатировать и смонтировать ровно как в предыдущем случае. Производительность, правда, поменьше:Code:$ opkg install losetup $ insmod ./loop.ko $ insmod ./cryptoloop.ko $ losetup -e aes /dev/loop0 ./crypto.img
...при загрузке:Code:$ /opt/bin/dd if=/dev/zero of=/dev/loop0 bs=1M count=510 510+0 records in 510+0 records out 534773760 bytes (535 MB) copied, 142,805 s, 3,7 MB/s
Code:$ top top - 20:07:12 up 5 days, 22:22, 0 users, load average: 4.47, 1.45, 0.59 Tasks: 83 total, 5 running, 77 sleeping, 0 stopped, 1 zombie Cpu(s): 0.6%us, 56.5%sy, 0.0%ni, 0.0%id, 41.7%wa, 0.3%hi, 0.9%si, 0.0%st Mem: 255520k total, 234192k used, 21328k free, 77308k buffers Swap: 0k total, 0k used, 0k free, 117640k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 17397 admin 0 -20 0 0 0 S 49.7 0.0 0:41.73 loop0 17529 admin 18 0 2080 1384 1316 R 2.5 0.5 0:02.42 dd 469 admin 10 -5 0 0 0 S 1.6 0.0 29:06.05 usb-storage
Last edited by ryzhov_al; 21-08-2012 at 18:01.
Ну наконец-то
Спасибо за труды.
loop.ko кстати можно не подгружать и без него работает...
и лучше юзать cryptsetup вместо cryptoloop.
ryzhov_al, cпасибо! =)
Следует заметить, что в стандарте WPA2 предусмотрено шифрование AES и я не верю, что в наших роутерах оно выполняется средствами CPU. На таких-то скоростях
Если у Broadcom'овского SDK существуют интерфейсы, позволяющий "вытащить" функционал шифрования AES из беспроводного чипа, то теоретически можно было бы модифицировать aes.ko для использования аппаратного ускорения. Подробнее может быть theMIROn подскажет, я ни в стандарты Wi-Fi, ни в SDK не закапывался.
ASUS WL5xx: FW 1.9.2.7-d-rXXXX / обсуждение прошивки [RU] / firmware discussion [EN] | bip irc proxy
ASUS RT-N1x: FW 1.9.2.7-rtn-rXXXX / обсуждение прошивки [RU] / firmware discussion [EN] | fake ident daemon
Можно создать на роутер шифорванный LUKS-контейнер (п.п.1,2) и экспортировать его как iSCSI target в сторону большого ПК. Получится шифрованный сетевой диск с производительностью ~4Мб/c @RT-N66u, с которым Windows cможет работать нативно. При желании с него даже можно загружаться.
Всё шифрование будет осуществляться силами роутера, на ПК никаких следов применения криптосредств не будет. При пропадании питания роутера, соответственно, получить доступ к контейнеру без ключевой фразы будет невозможно.
Last edited by ryzhov_al; 25-08-2012 at 06:46. Reason: Полуфлуд/полуоффтопик