Для шифрования данных можно использовать разные методы. В этой статье будет описан процесс шифрования данных с помощью Truecrypt, который служит для кодирования жестких дисков, разделов жестких дисков, файлов, USB-устройств.
Необходимые файлы
Скачать необходимые файлы для установки можно на http://www.truecrypt.org/downloads. или здесь: http://cyberside.planet.ee/truecrypt/ Причем лучше качать версю 7.1а - т.к. с версией 7.2 - какая-то лажа (и нет возможности создать контейнер). Эта инструкция написана для console-версии. В архиве не исходники, это инсталлятор, нужно его рапаковать и запустить.
tar xvzf archive.tar.gz
Предисловие
Для начала нужно будет создать так называемый контейнер, в котором будут содержаться файлопапки, предназначенные для шифрования. Контейнером будет служить файл с произвольным названием или даже целый раздел диска (что довольно заманчиво). Для доступа к контейнеру обязательно нужно будет указать пароль (придумываете сами), а также можно сделать файл ключа (необязательная опция), с помощью которого будет шифроваться информация. Учтите сразу, что размер контейнера не резиновый, так что придётся подумать над его размером. И последнее: GUI для Truecrypt'а нет, поэтому весь процесс будет проходить в терминале.
Создание зашифрованных разделов/файлов
Создаём файл ключа:
truecrypt --create-keyfile /home/user/test/file
, где file - название файла - ключа. Учтите, что директория /home/user/test должна существовать.
Создаём контейнер, в моём случае раздел:
sudo truecrypt -k /home/user/test/file -c /dev/sda9
Вместо раздела /dev/sda9 вполне можно указать и файл, например /home/user/test/cryptofile, но в этом случае нужно будет указать его размер, это делается параметром --size=5G
до параметра -c
. В указанном примере создастся файл cryptofile размером 5 ГигаБайт.
Иногда (всегда?) truecrypt принимает размер только в байтах, для 5 Гбайт можно или высчитать значение заранее и указать --size=5368709120
, или добавить немножко терминальной магии вот так: --size=`echo 1024^3*5 | bc`
.
Для «любителей» информатики: 1 ГБ = 1024 МБ, 1 МБ = 1024 кБ, 1 кБ = 1024 Байт.
Для шифрования будет использоваться сделанный уже файл - ключ.
Вам предложат выбрать тип контейнера (нормальный / скрытый) - выберете (я работал только с нормальным),
Volume type: 1) Normal 2) Hidden Select [1]: 1
Также вам предложат выбрать алгоритм шифрования (например, AES),
Encryption algorithm: 1) AES 2) Serpent 3) Twofish 4) AES-Twofish 5) AES-Twofish-Serpent 6) Serpent-AES 7) Serpent-Twofish-AES 8) Twofish-Serpent Select [1]: 1
а так же hash-алгоритм (например, SHA-1) для шифрования потоков данных.
Hash algorithm: 1) RIPEMD-160 2) SHA-512 3) Wirlpool Select [1]: 2
также - файловую систему (FAT, ext2/3/4 или без ФС), мы выберем «без ФС», можно создать её и позже.
Filesystem: 1) None 2) FAT 3) Linux Ext2 4) Linux Ext3 5) Linux Ext4 Select [2]: 1
Truecrypt используется для шифрования данных налету, то есть вы можете, под монтировав контейнер, работать с находящимися в нём файлами как обычно (открывать/редактировать/закрывать/создавать/удалять), что очень удобно, просто это, естественно, будет медленнее, чем обычно.
Шифрованный раздел/файл создали. Теперь, если нужно его внутреннюю файловую систему (далее ФС) отформатировать под нужную, делаем следующее. Цепляем его Truecrypt'ом:
truecrypt -k /home/user/test/file /dev/sda9
По умолчанию будет задействован созданный Truecrypt'ом девайс /dev/mapper/truecrypt0, можно поменять девайс на другой (читайте man truecrypt). и если будет писать что не понимает формата, то указать параметр --filesystem=none
По обращению к этому девайсу, можно менять например ФС в шифрованном контейнере. В нашем примере это нужно сделать. Делаем:
sudo mkfs.ext3 -v /dev/mapper/truecrypt0
Этим самым мы сделали ФС ext3 внутри нашего шифрованного контейнера.
Далее, т.к. наш контейнер уже «прикреплён» к девайсу /dev/mapper/truecrypt0, то осталось его просто примонтировать к какой-нибудь директории. Эта директория для монтирования должна уже существовать в системе. Монтируем:
sudo mount /dev/mapper/truecrypt0 /mnt/crypto
, где /mnt/crypto - директория, к которой примонтировали шифрованный контейнер.
Далее, чтобы что-то зашифровать, нужно теперь просто кинуть информацию в папку /mnt/crypto. А чтобы скрыть шифрованную информацию от чужих глаз, выполняем команду размонтирования, но с помощью Truecrypt'а:
truecrypt -d
Вот и всё, теперь без знания файла-ключа и пароля никто не сможет прочесть спрятанную информацию.
Проверка работы
Чтобы проверить акт размонтирования, наберём:
truecrypt -v -l
Нам покажут примонтированные Truecrypt'ом контейнеры, если такие (примонтированные) имеются.
Чтобы снова получить доступ к информации, подключим контейнер:
truecrypt -k /home/user/test/file /dev/sda9 /mnt/crypto
Для проверки снова наберём:
truecrypt -v -l
Эта команда выведет что-то вроде:
/dev/mapper/truecrypt0: Volume: /dev/sda9 Type: Normal Size: 22709965312 bytes Encryption algorithm: AES Mode of operation: LRW Read-only: No Hidden volume protected: No
Далее работаем с файлами в контейнере, обращаясь к ним как обычно.
Отключаем контейнер командой:
truecrypt -d
После этого команда
truecrypt -v -l
выведет:
No volumes mapped
Возможные проблемы и их решение
К сожалению, Truecrypt поддерживает в своих контейнерах в полной мере только файловую систему fat. Поэтому иногда не монтируются контейнера с ФС ext3, например.
Подключаем контейнер командой:
truecrypt -k /home/user/test/file /dev/sda9
Проверяем ФС:
>sudo fsck -t ext3 /dev/mapper/truecrypt0
Затем уже монтируем его для работы:
sudo mount /dev/mapper/truecrypt0 /mnt/crypto
Возможно, разработчики это уже исправили.