Pull to refresh

Шифруемся по полной

Reading time 2 min
Views 15K
Однажды появилась идея спрятать данные подальше от глаз людских, поковырял я различные системы шифрования и нашел в них огромный минус, они афишируют свое наличие (нужно установить) и делают факт наличие криптоконтейнера явным (пустой раздел или файл с криптоконтейнером)

Т.е. в обоих случаях возможен «терморектальный криптоанализ TM» по факту наличия шифрованой инфы на компьютере.

Что привело меня к написанию небольшого скрипта.
Его можно запустить даже с LiveCD, он не создает шифрованых файлов или разделов, но и конечно же имеет следующие проблемы:
  • контролировать целостность данных прийдется вручную;

Ниже приведу код, используйте его на свой страх и риск, в случае чего за порчу ваших данных я ответственности не несу.
Кому интересно смотрим под кат.



Суть всех телодвижений состоит в том чтобы создать криптоконтейнер на используемом диске в неиспользуемой области используя только встроенные команды стандартного Ububntu LiveCD.

Тестировал его только в песочнице (на отдельном разделе размером 200Мб создавал криптоконтейнер 50Мб со смещением 50Мб) мд5 суммы файлов на физическом разделе (20Мб) и внутри криптоконтейнера (10 Мб) сошлись с оригиналами.

Все делаем под рутом (sudo su).
устройство, место(Смещение), размер заменяем на свои. Размер и смещение от начала диска везде указанно в Мегабайтах байтах.

Создаем


modprobe cryptoloop
modprobe aes

mkdir ~/mnt1
mount -t tmpfs ~/mnt1
dd if=/dev/urandom of=~/mnt1/file bs=1M count=размер
losetup -e aes /dev/loop2 ~/mnt1/file
// вводим пароль
mkfs -t ext2 /dev/loop2
dd if=/dev/loop2 of=устройство bs=1M seek=место count=размер

losetup -e aes /dev/loop1 &ltустройство> -o &ltместо> --sizelimit &ltразмер>
// вводим пароль
mount /dev/loop1 <точка монтирования>
mkfs -t ext2 <точка монтирования>


Монтируем


modprobe cryptoloop
modprobe aes


mkdir ~/mnt1
mkdir ~/mnt2
mount -t tmpfs ~/mnt1
dd of=~/mnt1/file if=устройство bs=1M skip=место count=размер
losetup -e aes /dev/loop2 ~/mnt1/file
// вводим пароль
mount /dev/loop2 ~/mnt2

losetup -e aes /dev/loop1 &ltустройство> -o &ltместо> --sizelimit &ltразмер>
// вводим пароль
mount /dev/loop1 <точка монтирования>

Размонтируем


umount /dev/loop2
dd if=/dev/loop2 of=устройство bs=1M seek=место count=размер

umount /dev/loop1

Примечание


Если кто знает более простое решение прошу в коментарии. И еще раз предупреждаю, этот метод опасен для ваших данных, используйте его только в крайних случаях. Так же в скрипте могут быть ошибки и неточности, так что не советую использовать его на очень важных данных.

P.S.: Как продолжение данного метода в небольшой контейнер созданный данным способом можно положить полноценную программу для шифрования, например тот же Truecrypt. Или же придумать что-то свое использующее похожий принцип, но уже более удобное и более безопасное.

UPD: Раннее был молод и глуп, все делается намного легче, нежели было представленно изначально, собственно поправил статью.
Tags:
Hubs:
+31
Comments 53
Comments Comments 53

Articles