Cryptsetup(LUKS) Не буду заострять внимание на истории данной прогруммы, всё самое нужное есть на wiki (https://ru.wikipedia.org/wiki/LUKS), так что будет коротко и по делу =)) В данной статье будет рассмотрена тема шифрования дисков при помощи утилиты cryptsetup и в частности при помощи LUKS с возможностью удаления информации из зашифрованного диска или LVM. Данная программа была протестирована на Kali Linux, пакет cryptsetup был взят из дистрибутива kali linux, в качестве носителя жеский биск WD Blue 320Gb Примечание: На debian, при попытке собрать данную утилиту, функция nuke категорически отказывалась работать, в итоге пришлось её добавлять на kali linux. Можете попытаться собрать cryptsetup с данной опцией, может вам повезёт больше =) Ссылка на инструкцию по установке:http://www.kali.org/how-to/emergency-self-destruction-luks-kali/ 1. Подготовка. 1)Если на вашем диске или lvm уже есть какая-то информация, то её необходимо бэкапировать, так как все данные будут уничтожены. 2)Теперь приступим к шифрованию нашего носителя: ''cryptsetup -c aes -s 256 luksFormat /dev/sdb \\ Are you sure? (Type uppercase yes): YES(В верхнем регистре)\\ Enter LUKS passphrase: вводим наш придуманный пароль\\ Verify passphrase: \\ Command successful'' Примечаение: лучше создайте пароль состоящий минимум из 20 символов, далее в статье обьясню для чего это понадобится. Рассмотрим основные опции. с - выбираем алгоритм шифрования из доступных. (Список доступных алгоритмов можно узнать cat /proc/crypto) s - длинна нашего ключа luksFormat - он и в Африке luksFormat =) /dev/sdb - наш "подопытный". Полный список всех команд можно получить в мануале cryptsetup. 3)Теперь нам необходимо подключить зашифрованный диск и создать на нём файловую систему. cryptsetup luksOpen /dev/sdb data и вводим наш пароль. После того, как мы подключили наш диск в директории /dev/mapper/ появится ссылка data которая ссылается на блочное устройство dm-0, после этого уже можно создать на нём файловую систему. mkfs.ext3 /dev/mapper/data 4)Теперь уже можно примонтировать наш диск. ''mount /dev/mapper/data /mnt/data'' Диск готов к работе. Всё элементарно и просто. 2)Работа с ключами. Наш зашифврованный диск имеет 8 слотов от 0 до 7, т.е. для его расшифрования возможно создать 8 ключей (ключь может быть парольной фразой или файлом, всё на ваш вкус и цвет). Для просмотра сведений о нашем диске введём команду: ''cryptsetup luksDump /dev/sdb'' Теперь мы можем узнать такую информацию как алгоритм шифрования, длинну ключа, свободные и занятые слоты ключей, информацию о ключах об используемых ключах, uuid нашего устройства и много чего другого. Краткую справку о нашем зашифрованном диске можно получить, если ввести команду: ''cryptsetup status data'' Пароль для дэшифрования, это конечно хорошо, но так же мы можем создать файл с ключём, что будет весьма удобнее, чем каждый раз вводить этот длинный пароль. ''1)Создадим ключь из рандомных данных. \\ dd if=/dev/random of=$HOME/data.key bs=1 count=256\\ 2) Добавим наш ключ.\\ cryptsetup luksAddKey /dev/sdb $HOME/data.key \\ Воодим пароль от ключа из слота 0.\\ 3)Теперь проверяем, что наш ключь был добавлен в слот.\\ cryptsetup luksDump /dev/sdb \\ И теперь мы должны увидеть то, что Key Slot 1 имеет статус ENABLED \\ 4)Теперь для дешифрования нашего диска нужно использовать команду:\\ cryptsetup -d $HOME/data.key luksOpen /dev/sdb data '' Примечания: 1) Для правильного отключения нашего зашифрованного диска, нужно ввести две команды: umount /mnt/data && cryptsetup close data и только после этого мы можем извлечь наш диск или флешку. Ввод второй команды необходим, так как cryptsetup хранит ваш ключ в оперативной памяти, опция close удалит его из памяти. 2)Если вы планируете использовать только файлы ключей для расшифрования, то лучше оставить один "резервный" пароль. Файлы имеют свойство теряться =) 5)Для удаления ключей нужно ввести: 5.1) Для удаления файла: cryptsetup --key-slot 1 -d $HOME/data.key luksRemoveKey /dev/sdb 5.2) Для удаления пароля: cryptsetup luksRemoveKey /dev/sdb и ввести тот пароль, который вы хотите удалить. 3.Ключ для инучтожения (Nuke). Для добавления пароля: '' cryptsetup luksAddNuke /dev/sdb'' вводим наш основной пароль и позже вводим пароль для уничтожения Теперь, если кто-нибудь введёт данный пароль, то все данные будут уничтожены а пользователь получит сообщение: '' No key available with this passphrase.''