Статья Основы шифрования данных 2/2

Доброго времени суток, уважаемые форумчане! Как я уже писал в первой части: “Шифрование данных на сегодня является основным методом обеспечения конфиденциальности информации.”, Поэтому продолжим знакомиться с основными методами шифрования данных.

2.png


Шифрование в Linux (eCryptfs)

Функции шифрования в GNU/Linux поддерживаются на уровне ядра ОС. Во многих дистрибутивах в процессе установке предлагается произвести шифрование домашнего каталога. Однако если вам необходимо зашифровать весь диск, то можно использовать шифрованную файловую систему “eCryptfs”.

Давайте для примера попробуем зашифровать домашний каталог пользователя.

1. Для начала установим пакет утилит eCryptfs (Далее буду показывать команды для debian основанных дистрибутивов). Для этого воспользуемся командой “apt-get”:

sudo apt-get update
sudo apt-get install ecryptfs-utils


2. Перед шифрованием чего-либо важно на всякий случай сделать бэкап:

sudo cp -pfr /home/user /tmp

3. Далее примонтируем каталог, указав тип файловой системы ecryptfs:

sudo mount -t ecryptfs /home/user /home/user

4. Следующим действием вас попросят ввести пароль, после чего предложат выбрать алгоритм шифрования (AES, Blowfish, DES3_ede, Twofish, cast5 или cast6). По умолчанию выбран AES.

5. Далее вас спросят, хотите ли вы шифровать названия файлов. после чего дважды отвечаем “yes”.

6. Теперь, когда наш каталог зашифрован, нужно избавиться от резервной копии:

sudo rm -rf /tmp/user


Создание USB-ключа (eCryptfs)

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

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

1. Создадим папку и подмонтируем флешку:

sudo mkdir/mnt/usb
sudo mount /dev/sdb1 /mnt/usb


2. создаём на флешке файл с паролем. Назовём его, например, pass.txt.
Пароль в файле должен храниться так:

passphrase_passwd=<Пароль>

3. Открываем любым текстовым редактором файл “/root/.ecryptfs/sig-cache.txt” (из этого файла нам понадобится сигнатура шифрования. Она будет иметь следующий вид: “fe58j96rn4we724h”.

4. Открываем следующий файл “/root/.cryptfsrc” и добавляем в него эти строки:

key=passphrase:passphrase_passwd_file=/mnt/usb/pass.txt
ecryptfs_sig=fe58j96rn4we724h
ecryptfs_cipher=aes
ecryptfs_key_bytes=16
ecryptfs_passthrough=n
ecryptfs_enable_filename_crypto=n


в 1 строке необходимо указать имя файла с паролем, во 2 строке указать сигнатуру шифрования, в 3 строке метод шифрования, в 4 строке длину ключа, ну а в следующих указать те-же ответы что вы указывали при шифровании.

5. Осталось заставить систему автоматически монтировать флешку, и домашний раздел. Открываем файл “/etc/fstab”, и добавляем в него следующие строки:

/dev/sdb1 /mnt/usb vsfat ro 0 0

/home/user /home/user ecryptfs defaults 0 0


Первая строка примонтирует флешку, а вторая зашифрованный каталог.

6. открываем файл "/etc/rc.local", и перед строкой “exit 0” добавляем строку “/bin/mount -a”. Это должно помочь избежать большинство проблем при автоматическом монтаже.

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


Создание криптоконтейнера (TrueCrypt)

В предыдущей части мы разбирали метод создания криптоконтейнера посредством VeraCrypt, однако я нашел TrueCrypt в aur репозиториях (ссылка будет в конце).
Создание криптоконтейнера TrueCrypt практически не отличается от VeraCrypt. Но если вам хочется использовать именно TrueCrypt, то почему нет?

Создаём криптоконтейнер:
1. переходим во вкладку “Volumes”, жмём “Create New Volume”;
2. выбираем где будет находиться криптоконтейнер (в файле или на внешнем носителе/разделе);
3. указываем путь к файлу, или выбираем раздел;
4. выбираем метод и хеш шифрования;
5. выделяем пространство под криптоконтейнер;
6. вводим пароль от нашего контейнера;
7. водим указателем по окну, тем самым генерируя “ключ шифрования” и жмём “Format”;
8. возможно вас попросят ввести пароль пользователя или администратора.

1z.png
2z.png
3z.png
4z.png
5z.png
7z.png

Открытие криптоконтейнера производится аналогично VeraCrypt:
1. Открываем TrueCrypt, выбираем любой из слотов, указываем раздел или файл и жмём "Mount";
2. в открывшимся окне вводим пароль от контейнера;
3. для открытия контейнера дважды кликаем на слот, который мы выбрали ранее.

1x.png
2x.png
Снимок экрана от 2021-10-10 17-47-24.png


Стеганография (Архив в картинке)

Стеганография предполагает хранение важных данных среди ничего не значащей информации. Ведь лучший способ защиты важной информации - не показывать злоумышленнику, что такая информация есть.

Самый простой способ - это склейка файлов. Например, добавление в конец файла изображения архива. Таким образом картинка будет нормально просматриваться в графических программах, но при открытии его в архиваторе вы сможете получить доступ к скрытым файлам.

Сейчас мы рассмотрим простейший метод склейки картинки с архивом.
предположим что картинка имеет название “img.jpg”, а архив “archive.rar”.

  1. Открываем командную строку и переходим в директорию с файлами;
  2. далее вводим в терминал следующую команду: “copy /b img.jpg+archive.rar profit.jpg”.

Полученный файл (profit.jpg) теперь можно открыть как графическим редактором, так и любым архиватором. К тому же, можно зашифровать добавленный в конец файла архив методом описанным в первой части (кликабельно).

Следует помнить, что большинство фотохостингов не позволяют хранить склеенные файлы.


Аудио-Стеганография

Стеганография также позволяет хранить данные внутри аудиофайлов. Для этой цели мы будем использовать программу “DeepSound”. К сожалению, я не смог запустить её через “Wine”, и не нашел аналогов под Linux. В итоге я вспомнил, что Эллиот из сериала “Мистер робот” в одной из серий использовал данную утилиту. Я отыскал эту серию, и увидел, что он запускает её через VMware, после чего я решил поступить также.

Чтож, настало время спрятать наши “секретные данные” внутри аудиофайла:
1. Запускаем DeepSound, жмём “Open carrier files”, и выбираем аудиозапись, в которую мы спрячем файлы;
2. далее нажимаем “Add secret files”, и выбираем какие данные мы хотим спрятать внутри нашего файла;
3. теперь жмём “Encode secret files”, выбираем в каком расширении мы получим итоговый файл (wav, flac, ape), жмём на чекбокс “Encrypt secret files” и вводим желаемый пароль.

y1.png
y2.png


Теперь давайте разберёмся как получить доступ к зашифрованным данным:
1. Запускаем DeepSound, жмём “Open carrier files”, и выбираем нашу “особую” аудиозапись;
2. появится диалоговое окно, в котором вас попросят ввести пароль;
3. нажимаем “extract secret files”, после чего данные появятся в расшифрованном виде в документах.

u1.png
u2.png


Шифрование LUKS2 (Linux Unified Key Setup)

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

Для шифрования раздела я буду использовать стандартную для графической оболочки “Gnome” утилиту “Диски-Gnome”.

Приступим к шифрованию раздела:
0. Открываем терминал и вводим команду “sudo modprobe dm-crypt
1. Открываем открываем “Диски”, выбираем нужный носитель, выделяем раздел и жмём на плюс;
2. выделяем место под шифрованный раздел;
3. вводим имя тома, выбираем тип “Ext4”, и ставим чекбокс “Защищённый паролем том (LUKS)
4. дважды указываем пароль от нашего раздела, и нажимаем “создать”.
Ждём некоторое время, и наш диск будет успешно зашифрован.



Если вам повезло, и ваш процессор поддерживает технологию “AES-NI” (Advanced Encryption Standard - New Instructions), то шифрование данных было выполнено в разы быстрее благодаря модулю ядра “dm-crypt”.

1w.png
3w.png
4w.png
3 часть

Будет ли 3 часть? хороший вопрос. Однако ответ зависит от вас! Если вы хотите увидеть ещё одну часть про шифрование данных, то пишите о чём ещё желаете прочесть в комментарии или в лс.


Полезные материалы

(Ссылки кликабельны)
Основы шифрования данных часть 1
TrueCrypt (AUR-репозиторий)
DeepSound
Также рекомендую прочесть мою статью про создание тревожной кнопки на часах.



Спасибо за внимание!
 
Мы в соцсетях:

1 августа стартует курс «Основы программирования на Python» от команды The Codeby

Курс будет начинаться с полного нуля, то есть начальные знания по Python не нужны. Длительность обучения 2 месяца. Учащиеся получат методички, видео лекции и домашние задания. Много практики. Постоянная обратная связь с кураторами, которые помогут с решением возникших проблем.

Запись на курс до 10 августа. Подробнее ...