Штирлиц отдыхает!
Докучаев Дмитрий aka Forb
Xakep, номер #061, стр. 061-076-2
Шифруем файло
Бывает так, что целый диск создавать нецелесообразно. Нужно лишь зашифровать отдельный файл. В Linux для этого существует множество средств, которые ты можешь заюзать, исходя из ситуации. Рассмотрим простой вариант шифрования. Допустим, тебе необходимо закриптовать простой ASCII-файл. Причем на стойкость шифрования можно забить. Тебе подойдет обычая программа для зашифровки, такая, как, например, Code (последняя версия 0.03). Суть ее – генерация непостоянного ключа на основе двух символов, который замещается символом в файле. Первый из них – часть твоего пароля, второй – истинный фрагмент файла. Надежность шифрования прямо пропорциональна длине пароля. В установке Code нет ничего сложного. Правда, разработчики забыли снабдить пакет скриптами для make. Чтобы скомпилить программу, нужно набрать две команды в директории rus или eng (в зависимости от желаемой локализации):
# gcc code.c -o code
# gcc uncode.c -o uncode
А затем заюзать шифровальщик. К примеру, закриптуем /etc/passwd. Для этого введем следующую строку:
# ./code /etc/passwd myp4ssw0rd
В текущем каталоге появится файлик passwd.code, который является свежезакриптованным. Вернуть его в прежнее состояние можно обратной командой:
# ./uncode ./passwd.code myp4ssw0rd
Только вот имя файла будет другим – passwd.code.uncode :).
Бинарный шифр
Теперь обратим внимание на шифрование бинарных файлов. Для этого я выделяю программу AesX, которая имеет более стойкий алгоритм шифрования Rijndael. Утилита весит около 100 килобайт и устанавливается без особых сложностей. В использовании она крайне проста: в качестве параметров бинарнику передается пароль, имя входного и выходного файла, а также один из двух параметров: –d (шифрование) и –e (расшифровка). Таким образом, запустить эту консольную тулзу сможет даже маленький ребенок. Минус AesX – шифрованные файлы никак нельзя запустить. Перед этим их нужно расшифровать в прежнюю форму. Чтобы можно было стартовать файло с предварительным запросом пароля, используй тулзу от TESO. Ее имя – burneye.
Burneye – программа, которая модифицирует ELF-структуру файла и добавляет в бинарник посторонний код. Этот код позволяет расшифровать содержимое бинарника на основании заданного пароля. Вообще, у программы очень много полезных параметров, на которые хотелось бы обратить внимание. Установка тулзы простая – нужно зайти в папку src и скомандовать make. После этого ты получаешь рабочий бинарник утилиты. Запускай его, и ты увидишь подробный хелп по использованию программы. Наиболее интересными опциями являются –B и –P. Первая запаковывает заголовок, который будет отображаться перед вводом пароля. Вторая позволяет поместить пароль в переменную окружения “env”. Она будет просматриваться после запуска зашифрованного файла. Сам файл передается отдельной (последней) опцией, а выходной бинарник через параметр –o. Если внимательно изучить help, то все окажется очень просто.