MyTetra Share
Делитесь знаниями!
Шифруем файлы и разделы с помощью Cryptoloop и алгоритма AES
Время создания: 02.11.2020 17:47
Автор: alensav
Текстовые метки: Шифруем файлы и разделы с помощью Cryptoloop и алгоритма AES
Раздел: MyTetra - Ubuntu_Command
Запись: alensav/MyTetra2/main/base/1604328476tm955to4gd/text.html на raw.githubusercontent.com

Установка и подготовка к работе
Для cryptoloop нам потребуется установить небольшой пакет:

sudo aptitude install loop-aes-utils

Далее загружаем модуль cryptoloop:

sudo modprobe cryptoloop

он должен появиться в списке модулей ядра, проверить который можно командой lsmod.


Шифруем файлы и разделы с помощью Cryptoloop и алгоритма AES
Для начала нужно определиться: указываемый метод
НЕ ПРЕДНАЗНАЧЕН для шифрования разделов с данными, а только для создания зашифрованных разделов, куда эти данные потом будут скопированы. Так что если вы сотрёте свой раздел с важными данными - пеняйте на себя и читайте в следующий раз внимательно.

Если следовать рецептам ниже с головой и всё сделать правильно, то в результате мы получим раздел\файл, с которым можно будет работать, как с любым диском на чтение и запись - с той разницей, что данные там будут зашифрованы. Каждый раз при монтировании нас будут спрашивать пароль для доступа к этим файлам.

Итак, начинаем подготавливать криптораздел\криптофайл, куда мы скопируем ценные данные и зашифруем.

0. Создание криптофайла или криптораздела
Если мы хотим создать один большой файл, который будет содержать зашифрованные файлы, делаем это так:

dd if=/dev/zero of=~crypto.file bs=1M count=30

В данном примере это файл на 30 Мб, но при нужде можно сделать сколько угодно.

Или ищем флешку, на которой есть
пустой раздел - этот пустой раздел мы сделаем шифрованным. Допустим, это будет /dev/sdd2 который мы скоро отформатируем и зашифруем.

Ещё раз:/dev/sdd2 это НЕ раздел с вашими данными, а пустой раздел, куда вы эти данные переместите - и они при этом зашифруются. О создании разделов можно почитать в посте о форматировании .


1. Связываем устройство с loop device (петлевым устройством) с использованием шифрования
В случае криптофайла:

losetup -e aes /dev/loop0 ~crypto.file

В случае криптораздела:

losetup -e aes /dev/loop0 /dev/sdd2

При любом варианте вас попросят ввести пароль - он будет использоваться для доступа к вашим файлам.

cat file | losetup -e aes /dev/loop0 /dev/sdd2 -p0

Пароль меньше 20 символов оно не примет - и правильно сделает. Излишне напоминать, что если забудете пароль - не сможете примонтировать данные обратно. Для любопытных: ключ -e aes указывает программе использовать шифрование AES, который довольно устойчив ко взлому.

Теперь больше работать с устройством через
/dev/sdd2 или crypto.file мы не будем, потому как оно зашифровано и система его просто так не примонтирует. Вместо этого работать мы будем именно с петлевым устройством, на которое замкнули криптофайл или криптораздел - оно может быть /dev/loop0 или другое (необязательно каждый раз замыкать на одно и то же устройство).


2. Форматирование зашифрованного раздела или файла
После того, как мы связали устройство или файл с loop-device, нужно его отформатировать:

mkfs.ext2 /dev/loop0

В этом примере мы отформатировали на файловую систему Ext2, но можно использовать любую.


3. Перенос данных и работа с зашифрованным разделом или файлом
Работаем с петлевым устройством, как с обычным разделом: монтируем, записываем на него данные и так далее. Монтирование зашифрованного раздела или файла выглядит так:

mkdir /mnt/cryptodisk <--- это если точка монтирования ещё не создана
mount
/dev/loop0 /mnt/cryptodisk

Размонтирование:

umount /dev/loop0

Больше о монтировании можно прочитать в соответствующем посте .


4. Окончание работы с криптофайлом\криптоустройством
После отмонтирования нужно отвязать устройство или файл от петлевого устройства:

losetup -d /dev/loop0

На всякий случай, просмотреть список задействованных петлевых устройств (loop devices) можно командой:

losetup -a

Теперь петлевое устройство свободно, данные зашифрованы, враг не пройдёт.


А как теперь обратно прикрутить криптованный раздел или файл?
Легко - доступ к зашифрованным данным можно получить, опять привязав к петлевому устройству криптораздел\криптофайл и введя пароль, который вы назначили ранее. То есть в случае криптофайла:

losetup -e aes /dev/loop0 ~crypto.file

В случае криптораздела:

losetup -e aes /dev/loop0 /dev/sdd2

Вас снова попросят ввести пароль, который нужен для доступа к вашим файлам.

Теперь мы имеем раздел или файл, который невозможно примонтировать просто так (он зашифрован и Linux не увидит на нем файловую систему). Но после прикручивания к петлевому устройству все данные будут доступны (если вы знаете пароль, разумеется).

Альтернативы

  • более каноничный способ по мнению некоторых комментаторов ниже, это использовать штатный cryptsetup. Об этом есть хорошая заметка на блоге у Librarian и толковое руководство .
  • ещё можно попробовать Truecrypt , где есть возможность создания зашифрованного контейнера с "двойным" дном, т.е. двух уровней правдоподобного отрицания, на случай рассекречивания паролей.



Лирическое отступление
Не хотелось бы разочаровывать начинающих криптоанархистов, но ребята с xkcd в общем реалистично смотрят на вещи:


Тем не менее, светить своими данными не комильфо, и какое-то время вы выиграете.

Так же в этом разделе:
 
MyTetra Share v.0.64
Яндекс индекс цитирования