Bekijk de volledige versie : cryptsetup luks
Привет!
А есть ли возможность прикрутить luks-шифрование подключаемых по USB дисков? и справится ли wnr3500l?
staticroute
23-03-2012, 00:40
Привет!
А есть ли возможность прикрутить luks-шифрование подключаемых по USB дисков? и справится ли wnr3500l?
+1, только можно ли такое на wl-500gP (v1) ?
Потянет ли? Хотелось бы поэкспериментировать, если не трудно прикрутите плиз :)
EDIT: нашел на польском http://eko.one.pl/?p=openwrt-crypto завтра буду пробовать..
так понимаю OpenWRT пакеты ставятся на эту прошивку?
ryzhov_al
24-03-2012, 10:30
так понимаю OpenWRT пакеты ставятся на эту прошивку?Не совсем. У нас с томатовцами свой клон репозитория OpenWRT, по объёму равный (http://code.google.com/p/wl500g-repo/source/browse/#svn%2Fipkg%2Fopenwrt) примерно трети объёма оригинала.
Актуальна ли инструкция из первого поста (Примерный порядок перехода на нашу прошивку) для перехода с -d прошивки на -rtn?В первом посте нет такой инструкции. Если вы про сохранение настроек при переходе с ветки -d на -rtn, то перенос настроек крайне нежелателен.
Если вы про сохранение настроек при переходе с ветки -d на -rtn, то перенос настроек крайне нежелателен.
Да, а можно ли хотябы flashfs восстановить без негативных последствий?
staticroute
24-03-2012, 23:16
Не совсем. У нас с томатовцами свой клон репозитория OpenWRT, по объёму равный (http://code.google.com/p/wl500g-repo/source/browse/#svn%2Fipkg%2Fopenwrt) примерно трети объёма оригинала.
не могли бы туда включить cryptsetup ?
+ ядровые модули dm_crypt, aes256_generic в прошивку.
EDIT: http://danm.de/files/src/bcm5365p/REPORTED_DEVICES
кстати в 500gP оказывается есть hardware crypto o_O
staticroute
06-06-2012, 23:55
Привет!
А есть ли возможность прикрутить luks-шифрование подключаемых по USB дисков? и справится ли wnr3500l?
+1, только можно ли такое на wl-500gP (v1) ?
Потянет ли? Хотелось бы поэкспериментировать, если не трудно прикрутите плиз :)
EDIT: нашел на польском http://eko.one.pl/?p=openwrt-crypto завтра буду пробовать..
так понимаю OpenWRT пакеты ставятся на эту прошивку?
собственно удалось-таки поднять cryptsetup на wl500gP v1, все работает :)
скомпелировал на optware.. честно говоря замучался править исходники, чтобы оно собралось..
нужно конечно же компилить кастом прошивку с включенными
sha256 12320 0
dm_crypt 14224 1
dm_mod 59872 3 dm_crypt
cryptoloop 2176 0
aes 31024 2
cryptoloop по желанию (если планируете хранить в файле контейнер, а не использовать целый раздел флешки).
нужно по сути основное это сам скомпиленный пакет cryptsetup_1.4.3-1_mipsel.ipk (http://www.mediafire.com/?v5mfbjm2os842cs)
остальные депы ipkg доставит автоматом (они уже все есть) + модули ядра естественно собрать
неплохо б конечно это вынести в отдельную опцию при сборке прошивки, чтобы не мучаться.
скорость естественно грустная:
dd if=/dev/zero of=1 bs=1M count=20
20+0 records in
20+0 records out
20971520 bytes (20.0MB) copied, 45.423548 seconds, 450.9KB/s
Но на WNR3500L проц помощнее и памяти больше (в 2 раза), думаю скорость будет получше, но не особо, не больше 1мб/sec
Отцы, ранее товарищ staticroute здесь же отписался (http://wl500g.info/showthread.php?17136-p/page374#post251563), что пропатчил cryptsetup.
Нельзя ли в основной прошивке собирать среди прочих модули sha256, dm_mod, dm_crypt, cryptoloop, aes?
Единственный неприятный момент, который приходит в голову -- увеличится итоговый размер тарбола с модулями.
staticroute
29-07-2012, 11:55
Отцы, ранее товарищ staticroute здесь же отписался (http://wl500g.info/showthread.php?17136-p/page374#post251563), что пропатчил cryptsetup.
Нельзя ли в основной прошивке собирать среди прочих модули sha256, dm_mod, dm_crypt, cryptoloop, aes?
Единственный неприятный момент, который приходит в голову -- увеличится итоговый размер тарбола с модулями.
Вы можете сделать это самостоятельно при сборке прошивки и включить нужные модули, просто для этого придется (пока что) ручками править Makefile.
У меня есть подозрение, что cryptsetup я немного криво пропатчил, так как собирал под Optware, находу меняя нужные структуры в заголовочных файлах. Хотя он и работает, но с некоторыми багами.
Надо будет перепроверить или перелезть-таки на Entware и собрать уже там.
staticroute
09-08-2012, 16:15
Каких именно? Большую (и наиболее популярную) часть репозитория OpenWRT мы уже вобрали:
cryptsetup, libdevmapper, lvm2
собственно я сам их уже собрал, но тем не менее хотелось бы видеть их тоже, имелось ввиду, что не выбраны все доступные пакеты в make menuconfig, а только избранные.
ryzhov_al
09-08-2012, 18:44
cryptsetup, Зачем? Если месяцем раньше сами доказали (http://wl500g.info/showthread.php?30367-cryptsetup-luks&p=251563#post251563) его неработоспособность в плане скорости.
libdevmapper, lvm2Зачем? Если раньше была доказана (http://wl500g.info/showthread.php?13735-%CF%EE%E4%ED%E8%EC%E0%E5%EC-RAID-%ED%E0-%F0%EE%F3%F2%E5%F0%E5-WL-500gP-RT-N16&p=229989#post229989) его неработоспособность в плане скорости. RAID-то получится софтовый, нагрузка по вводу-выводу ляжет на CPU.
staticroute
09-08-2012, 18:51
Зачем? Если месяцем раньше сами доказали (http://wl500g.info/showthread.php?30367-cryptsetup-luks&p=251563#post251563) его неработоспособность в плане скорости.
Зачем? Если раньше была доказана (http://wl500g.info/showthread.php?13735-%CF%EE%E4%ED%E8%EC%E0%E5%EC-RAID-%ED%E0-%F0%EE%F3%F2%E5%F0%E5-WL-500gP-RT-N16&p=229989#post229989) его неработоспособность в плане скорости. RAID-то получится софтовый, нагрузка по вводу-выводу ляжет на CPU.
Затем, что это кому-то может пригодится, я туда не записываю каждую секунду.
То же самое с LVM.
ryzhov_al
09-08-2012, 18:53
Затем, что это кому-то может пригодится, я туда не записываю каждую секунду.
То же самое с LVM.Ок, так и сделаем: если ещё кому-нибудь пригодится, тогда и соберём.
platinummsk
21-08-2012, 11:52
Ок, так и сделаем: если ещё кому-нибудь пригодится, тогда и соберём.
Было бы отлично увидеть cryptsetup в репозитории)) или может есть альтернатива ему? :)
ryzhov_al
21-08-2012, 17:44
Было бы отлично увидеть cryptsetup в репозитории))Уболтали:) Cryptosetup добавлен в репозиторий. Ниже приведена краткая инструкция по его использованию. Учтите, что cryptsetup будет бесполезен, если у вас нет перечисленных ниже модулей ядра для вашей прошивки.
1. Подготавливаем файл-контейнер
Размер контейнера в примере 512Мб, текущая директория - на USB-носителе.
$ opkg install losetup cryptsetup
$ dd if=/dev/zero of=./crypto.img bs=1M count=512
$ insmod ./loop.ko
$ losetup /dev/loop1 ./crypto.img
Контейнер смонтирован как loop device в /dev/loop1. Для использования LUKS (http://ru.wikipedia.org/wiki/LUKS)-шифрования его необходимо отформатировать:
$ insmod ./dm-mod.ko
$ insmod ./aes.ko
$ insmod ./sha256.ko
$ insmod ./dm-crypt.ko
$ cryptsetup -y --key-size 256 luksFormat /dev/loop1
2. Монтируем контейнер
$ cryptsetup luksOpen /dev/loop1 crypted
Напоминаю, что cryptsetup - это всего лишь user space надстройка (http://www.saout.de/misc/dm-crypt/), облегчающая использование dm-crypt. В примере был создан готовый к монтированию block device /dev/mapper/crypted.
3. Создаём на нём файловую систему
Всё как с жёстким диском:
$ mkfs.ext3 -j /dev/mapper/crypted
$ mkdir /tmp/crypted
$ mount /dev/mapper/crypted /tmp/crypted/
Всё! Можно использовать /tmp/crypted/ для хранения зашифрованных данных. Оценим производительность на RT-N66u (данные затираются!):
$ /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
...при загрузке системы:
$ 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
Информацию о состоянии смонтированного криптоконтейнера можно посмотреть командой:
$ cryptsetup -y luksDump /dev/loop1
4. Окончание работы с контейнером
Надо просто всё размонтировать в обратном порядке:
$ umount /tmp/crypted/
$ cryptsetup luksClose crypted
$ losetup -d /dev/loop1
К посту приложены необходимые модули для стоковой/мерлиновской прошивки для Asus RT-N66u.
ryzhov_al
21-08-2012, 17:56
...или может есть альтернатива ему? :)Есть. Предшественник dm-crypt - cryptoloop (http://tldp.org/HOWTO/html_single/Cryptoloop-HOWTO/).
В посте выше я монтировал файл-контейнер как loop device, а dm-crypt шифровал данные между /dev/loop1 и /dev/mapper/crypted. При использовании cryptoloop данные между файлом контейнера и loop device'ом волшебным способом шифруются на лету.
1. Создаём файл-контейнер
$ dd if=/dev/zero of=./crypto.img bs=1M count=512
2. Подгружаем модули шифрования sha/aes
$ insmod ./aes.ko
$ insmod ./sha256.ko
Шифры должны стать нам доступны в перечне:
$ cat /proc/crypto | grep ^name
3. Монтируем шифрованный loop device
$ opkg install losetup
$ insmod ./loop.ko
$ insmod ./cryptoloop.ko
$ losetup -e aes /dev/loop0 ./crypto.img
Далее /dev/loop0 можно отформатировать и смонтировать ровно как в предыдущем случае. Производительность, правда, поменьше:
$ /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
...при загрузке:
$ 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
staticroute
21-08-2012, 19:23
Ну наконец-то :)
Спасибо за труды.
loop.ko кстати можно не подгружать и без него работает...
и лучше юзать cryptsetup вместо cryptoloop.
platinummsk
22-08-2012, 20:52
ryzhov_al, cпасибо! =)
ryzhov_al
23-08-2012, 06:23
Следует заметить, что в стандарте WPA2 предусмотрено (http://ru.wikipedia.org/wiki/WPA2#WPA2) шифрование AES и я не верю, что в наших роутерах оно выполняется средствами CPU. На таких-то скоростях:)
Если у Broadcom'овского SDK существуют интерфейсы, позволяющий "вытащить" функционал шифрования AES из беспроводного чипа, то теоретически можно было бы модифицировать aes.ko для использования аппаратного ускорения. Подробнее может быть theMIROn подскажет, я ни в стандарты Wi-Fi, ни в SDK не закапывался.
theMIROn
23-08-2012, 06:55
Следует заметить, что в стандарте WPA2 предусмотрено (http://ru.wikipedia.org/wiki/WPA2#WPA2) шифрование AES и я не верю, что в наших роутерах оно выполняется средствами CPU. На таких-то скоростях:)
да, шифрование/расшифровка выполняется, в основном, аппаратно внутри wireless модуля.
Если у Broadcom'овского SDK существуют интерфейсы, позволяющий "вытащить" функционал шифрования AES из беспроводного чипаК сожалению, не существует
ryzhov_al
25-08-2012, 06:45
Можно создать на роутер шифорванный LUKS-контейнер (п.п.1,2 (http://wl500g.info/showthread.php?30367-cryptsetup-luks&p=254114#post254114)) и экспортировать (http://wl500g.info/showthread.php?18355-iSCSI-target&p=250798#post250798) его как iSCSI target в сторону большого ПК. Получится шифрованный сетевой диск с производительностью ~4Мб/c @RT-N66u, с которым Windows cможет работать нативно. При желании с него даже можно загружаться.
Всё шифрование будет осуществляться силами роутера, на ПК никаких следов применения криптосредств не будет. При пропадании питания роутера, соответственно, получить доступ к контейнеру без ключевой фразы будет невозможно.