Results 1 to 15 of 20

Thread: cryptsetup luks

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Quote Originally Posted by staticroute View Post
    Затем, что это кому-то может пригодится, я туда не записываю каждую секунду.

    То же самое с LVM.
    Ок, так и сделаем: если ещё кому-нибудь пригодится, тогда и соберём.

  2. #2
    Quote Originally Posted by ryzhov_al View Post
    Ок, так и сделаем: если ещё кому-нибудь пригодится, тогда и соберём.
    Было бы отлично увидеть cryptsetup в репозитории)) или может есть альтернатива ему?

  3. #3

    Cryptosetup. Инструкция по использованию

    Quote Originally Posted by platinummsk View Post
    Было бы отлично увидеть cryptsetup в репозитории))
    Уболтали Cryptosetup добавлен в репозиторий. Ниже приведена краткая инструкция по его использованию. Учтите, что cryptsetup будет бесполезен, если у вас нет перечисленных ниже модулей ядра для вашей прошивки.

    1. Подготавливаем файл-контейнер
    Размер контейнера в примере 512Мб, текущая директория - на USB-носителе.
    Code:
    $ 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-шифрования его необходимо отформатировать:
    Code:
    $ insmod ./dm-mod.ko
    $ insmod ./aes.ko
    $ insmod ./sha256.ko
    $ insmod ./dm-crypt.ko
    $ cryptsetup -y --key-size 256 luksFormat /dev/loop1
    2. Монтируем контейнер
    Code:
    $ cryptsetup luksOpen /dev/loop1 crypted
    Напоминаю, что cryptsetup - это всего лишь user space надстройка, облегчающая использование dm-crypt. В примере был создан готовый к монтированию block device /dev/mapper/crypted.

    3. Создаём на нём файловую систему
    Всё как с жёстким диском:
    Code:
    $ mkfs.ext3 -j /dev/mapper/crypted
    $ mkdir /tmp/crypted
    $ mount /dev/mapper/crypted /tmp/crypted/
    Всё! Можно использовать /tmp/crypted/ для хранения зашифрованных данных. Оценим производительность на RT-N66u (данные затираются!):
    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
    Информацию о состоянии смонтированного криптоконтейнера можно посмотреть командой:
    Code:
    $ cryptsetup -y luksDump /dev/loop1
    4. Окончание работы с контейнером
    Надо просто всё размонтировать в обратном порядке:
    Code:
    $ umount /tmp/crypted/
    $ cryptsetup luksClose crypted
    $ losetup -d /dev/loop1
    К посту приложены необходимые модули для стоковой/мерлиновской прошивки для Asus RT-N66u.
    Attached Files Attached Files
    Last edited by ryzhov_al; 21-08-2012 at 17:59.

  4. #4

    Cryptoloop. Инструкция по использованию

    Quote Originally Posted by platinummsk View Post
    ...или может есть альтернатива ему?
    Есть. Предшественник dm-crypt - cryptoloop.

    В посте выше я монтировал файл-контейнер как loop device, а dm-crypt шифровал данные между /dev/loop1 и /dev/mapper/crypted. При использовании cryptoloop данные между файлом контейнера и loop device'ом волшебным способом шифруются на лету.

    1. Создаём файл-контейнер
    Code:
    $ dd if=/dev/zero of=./crypto.img bs=1M count=512
    2. Подгружаем модули шифрования sha/aes
    Code:
    $ insmod ./aes.ko
    $ insmod ./sha256.ko
    Шифры должны стать нам доступны в перечне:
    Code:
    $ cat /proc/crypto | grep ^name
    3. Монтируем шифрованный loop device
    Code:
    $ opkg install losetup
    $ insmod ./loop.ko
    $ insmod ./cryptoloop.ko
    $ losetup -e aes /dev/loop0 ./crypto.img
    Далее /dev/loop0 можно отформатировать и смонтировать ровно как в предыдущем случае. Производительность, правда, поменьше:
    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.

  5. #5
    Ну наконец-то

    Спасибо за труды.

    loop.ko кстати можно не подгружать и без него работает...

    и лучше юзать cryptsetup вместо cryptoloop.

  6. #6
    ryzhov_al, cпасибо! =)

  7. #7

    Насчёт акселерации шифрования

    Следует заметить, что в стандарте WPA2 предусмотрено шифрование AES и я не верю, что в наших роутерах оно выполняется средствами CPU. На таких-то скоростях

    Если у Broadcom'овского SDK существуют интерфейсы, позволяющий "вытащить" функционал шифрования AES из беспроводного чипа, то теоретически можно было бы модифицировать aes.ko для использования аппаратного ускорения. Подробнее может быть theMIROn подскажет, я ни в стандарты Wi-Fi, ни в SDK не закапывался.

  8. #8
    Quote Originally Posted by ryzhov_al View Post
    Следует заметить, что в стандарте WPA2 предусмотрено шифрование AES и я не верю, что в наших роутерах оно выполняется средствами CPU. На таких-то скоростях
    да, шифрование/расшифровка выполняется, в основном, аппаратно внутри wireless модуля.

    Quote Originally Posted by ryzhov_al View Post
    Если у Broadcom'овского SDK существуют интерфейсы, позволяющий "вытащить" функционал шифрования AES из беспроводного чипа
    К сожалению, не существует

  9. #9

    Параноику на заметку

    Можно создать на роутер шифорванный LUKS-контейнер (п.п.1,2) и экспортировать его как iSCSI target в сторону большого ПК. Получится шифрованный сетевой диск с производительностью ~4Мб/c @RT-N66u, с которым Windows cможет работать нативно. При желании с него даже можно загружаться.

    Всё шифрование будет осуществляться силами роутера, на ПК никаких следов применения криптосредств не будет. При пропадании питания роутера, соответственно, получить доступ к контейнеру без ключевой фразы будет невозможно.
    Last edited by ryzhov_al; 25-08-2012 at 06:46. Reason: Полуфлуд/полуоффтопик

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •