Запуск VeraCrypt из-под Tails ¶
By: Michael_Hock on 2015-11-29 03 ч.
Запуск VeraCrypt из-под Tails
VeraCrypt – форк и своего рода «наследник» известной программы сильного шифрования TrueCrypt (который более не обновляется). Так же, как и TrueCrypt, VeraCrypt позволяет создавать скрытый шифрованный том внутри другого шифрованного тома, с другим паролем. Это – двухуровневое отрицаемое шифрование. С таким криптоконтейнером, можно во внешний том поместить менее чувствительные файлы, и если даже кто-то получит Ваш шифрованный файл и (тем или другим способом) заставит Вас выдать пароль от него – можно назвать пароль от внешнего уровня, не столь интересного. Свободное место на таком виртуальном диске заполнено случайными числами. Без пароля от внутреннего тома не получится не то, что просмотреть его, но даже определить, а создан ли он там вообще, или же этот криптоконтейнер – в самом деле одноуровневый (VeraCrypt) позволяет создать и такое.
VeraCrypt нормально ставится в Linux Debian 8.2. Правда, чтобы потом он нормально работал – нужно установить пакет sudo, создать пользователя-администратора, и потом уже устанавливать/запускать VeraCrypt из-под него. В современной версии 8.2 Linux Debian sudo при установке системы автоматом уже не ставится, и сообществом Debian больше не поддерживается, т. к. программисты этого сообщества сделали какую-то более усовершенствованную систему передачи части административных и корневых прав пользователям. Однако VeraCrypt, чтобы получить доступ к созданию разделов диска и монтированию файлов-криптоконтейнеров как виртуальных дисков – по-прежнему обращается к sudo.
Но как быть в Tails, где порой даже простейшая программа типа «Hellow world», написанная на Си и скомпилированная gcc в том же Linux Debian – часто не хочет запускаться; то библиотеки какой не находит, то доступ запрещён, то скомпилированная как 64-битная под Tails вообще не работает?
Я нашёл несложный способ сделать из VeraCrypt портабельное консольное 32-битное приложение, запросто запускаемое в Tails хоть через менеждер файлов Nautilus одним кликом, хоть через терминал. Можно пропустить несколько следующих шагов и скачать выложенный мною исполняемый (ELF) файл veracrypt32 (или здесь), проверить контрольные суммы (см. далее шаг 2). Но если Вы хотите взять с сайта производителя и сами сделать такое – это можно следующим образом:
Скачиваем veracrypt-1.16-setup.tar.bz2 (16.9 МБ) с этой страницы
Шаг 1.
Это не получится сделать в Tails – нужно в обычном Linux Debian (проверено мной), может быть, сработает и в других *nix-системах (мною не проверено).
Сохраняем в свою домашнюю папку или в другую.
Чтобы не делать вручную несколько последующих команд, можно сохранить вот такой sh-скрипт в файл v***** (можно и другое имя дать, без разницы), в правах доступа к этому файлу разрешить выполнение как программы (-x):
#!/bin/sh
tar -xf veracrypt-1.16-setup.tar.bz2 veracrypt-1.16-setup-gui-x86
./veracrypt-1.16-setup-gui-x86
mv /tmp/veracrypt_1.16_i386.tar.gz ./veracrypt_1.16_i386.tar.gz
tar -xf veracrypt_1.16_i386.tar.gz usr/bin/veracrypt
mv usr/bin/veracrypt veracrypt32
rm -r usr
rm -f veracrypt-1.16-setup-gui-x86 veracrypt_1.16_i386.tar.gz
В терминале меняем рабочую директорию cd — на папку, где находится созданный нами v***** и архив veracrypt-1.16-setup.tar.bz2
далее
./v*****
Запустится инсталлятор VeraCrypt (32-битная оконная версия). Нужно выбрать не «Install...», а «Extract .tar package file». Потом согласие с условиями лицензии «I accept ang agree to be bound by the license terms». Выдаст сообщение:
to uninstall VeraCrypt, please run 'veracrypt-uninstall.sh'
нажимаем ОК.
Выдаст Installation package 'veracrypt_1.16_i386.tar.gz' extracted and placed in '/tmp', снова OK.
Далее вышенаписанный скрипт переместит из темпа в рабочую директорию этот файл, распакует из него нужный бинарник, удалит лишнее.
Файл veracrypt32 можно просто запускать из-под Tails из любой папки, можно переименовать его – работать будет.
Шаг 2. Проверяем контрольные суммы
sha512sum veracrypt32
0a650ed6657a0573dcf93d67fe1aaae59e359bd4971aea86a5b790dae8205e33583098271a3532228179fac9ccffb327f4773da32a6393af8cbfd12c999ff699 veracrypt32
sha256sum veracrypt32
a4d8d87e2d4f0ba1f31f5e6e1c386aae9aa650b9ef8050abf4aeeff6eae46d05 veracrypt32
Если совпадают – всё в порядке, файл тот самый.
Шаг 3. Запускаем VeraCrypt
При загрузке Tails обязательно выбрать «More options» и задать административный (он же в Tails и root-овский) пароль. Без этого не получится работать с криптотомами VeraCrypt.
Просто двойным кликом по veracrypt32 или в терминале
./veracrypt32
Шаг 4. Создаём криптоконтейнер со скрытым томом
Нажимаем Create Volume
Create a encrypted file container
Next >
Hidden VeraCrypt volume
Next >
Далее выбираем, где будет расположен файл с криптоконтейнером и как мы его обзовём. Next >
Теперь нужно выбрать параметры шифрования для внешнего тома (Outer Volume Encryption Options), Алгоритм шифрования и контрольной суммы можно оставить AES и SHA-512 соответственно. Next >
Выбираем размер контейнера в кило-, мега- или гигабайтах. Next >
Отмечаем галочку на Use PIM и вводим пароль наружного тома – не менее 20 и не более 64 латинских букв, цифр и некоторых других символов. Значение PIM (Personal Iteration Multiplier) позволяет нам задать число итераций шифрования по формуле:
I = 15000 + PIM*1000
Если PIM не задан или задан 0, он по умолчанию равен 485, а соответствующее количество итераций – нетрудно посчитать, составит полмиллиона. Это сделает ощутимо долгим как создание, так и открытие криптоконтейнера – даже если процессор двухядерный и три гигагерца тактовая частота.
Но для того, чтобы сделать PIM меньше 485, пароль должен быть не короче 20 символов. Такое условие стойкости VeraCrypt.
Минимальный PIM – единица (отрицательные и дробные числа не допускаются и просто не вводятся). Тогда итераций будет 16000, и том будет монтироваться примерно за 1-2 секунды.
PIM нужно запомнить обязательно, как и пароль. Если верный пароль, а PIM неверный – не откроется. Алгоритм контрольной суммы (хэша) (по умолчанию sha512) запомнить желательно – при автодетекте перебираются все, и это тормозит открытие контейнера.
Надеюсь, тут не нужно никому напоминать, что стойкие криптоалгоритмы – не соцсети, и никакого восстановления забытого пароля по подсказке или ещё как в них не существует, данные теряются безвозвратно.
Next >, подтверждаем, что мы ввели сильный пароль.
Теперь немного случайно подвигаем мышку и понажимаем что попало на клаве, затем кликаем на Format.
Когда внешний том будет создан, и программа попросит «user password or administrator password» – вводим пароль root-а, что мы задали при загрузке Tails. Без него томов не смонтировать.
Шаг 5. Файлы на внешний том
Нажимаем Open Outer Volume, открывается пустая корневая (относительно тома) папка veracrypt1. В неё скопируем/перенесём не самые ценные, но «вроде бы заслуживающие шифрования» файлы. И не самые большие – потому что скрытый том может быть создан на оставшемся свободном месте, да и то за некоторым вычетом. Закрываем Nautilus-окно с этой папкой, в VeraCrypt снова жмём Next > и снова Next >.
Шаг 6. Создание скрытого тома
Так же, как и для открытого, выбираем (или оставляем прежний) алгоритм шифра и хэша, на следующей «странице» задаём размер скрытого тома (не больше указанного там максимума).
Также пароль (20-64 симовола) и «Use PIM» для скрытого тома. На следующей странице можно задать и запомнить PIM для скрытого тома (наверно, порядка нескольких единиц или несколько десятков). Эти параметры имеют тот же смысл, что и для внешнего. Но пароль внутреннего скрытого тома от пароля внешнего тома должен, разумеется, отличаться, и чем больше – тем лучше.
Но далее будет диалог, которого не было для внешнего тома: выбор файловой системы, в которой будет отформатирован скрытый том. Варианты: FAT, NTFS, Ext2, Ext3, Ext4.
Next > . Далее вопрос о том, будете ли монтировать этот скрытый том только под Линуксом или под другими ОС тоже.
Снова получение случайного числа мышкой и клавиатурой, снова кнопка Format. Когда закончит – OK, Exit.
Шаг 7. Монтирование внешнего либо скрытого тома.
Снова запускаем veracrypt32, выбираем одну из пронумерованных пустых строк в её окне, нажимаем «Select File». Выбираем наш файл-контейнер, затем «Mount».
Отмечаем «Use PIM», вводим пароль и PIM от внешнего либо внутреннего тома, в PKC-5 PRF вместо Autodetection для ускорения можно выбрать тот хэш-алгоритм, который был выбран при создании тома (обычно по умолчанию HMAC-SHA-512). Дополнительные опции «Option >»: можно открыть том только для чтения, можно при открытие внешнего тома выбрать «Protect hidden volume when mountion outer volume». В таком случае придётся вводить пароли и PIM от обоих томов сразу, но это позволит добавить файлы на внешний том, не рискуя разрушить скрытый. Иначе, как уже говорилось, скрытый том нельзя отличить от просто случайных цифр на свободном месте «диска», и можно перезаписать другим файлом его часть – и потерять все данные на скрытом томе.
Если же в качестве основного пароля будет введён пароль скрытого тома – будет открыт и смонтирован именно скрытый. Тогда его размер будет точно определён, и беспокоиться о случайном затирании части внешнего тома не придётся.
Размонтировать лучше также в VeraCrypt: «Dismount» или «Dismount all».
О других возможностях VeraCrypt – наверно, в другой раз; также см. документацию на её сайте.