PDA

Bekijk de volledige versie : cryptsetup luks



ddayb
27-11-2010, 08:38
Привет!
А есть ли возможность прикрутить 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, то перенос настроек крайне нежелателен.

Rucha
24-03-2012, 19:51
Если вы про сохранение настроек при переходе с ветки -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

pux
29-07-2012, 05:45
Отцы, ранее товарищ 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может работать нативно. При желании с него даже можно загружаться.

Всё шифрование будет осуществляться силами роутера, на ПК никаких следов применения криптосредств не будет. При пропадании питания роутера, соответственно, получить доступ к контейнеру без ключевой фразы будет невозможно.