RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
В наши дни шифрование стало обязательной процедурой не только в организациях, но и на домашних машинах. Со всех сторон враги, того и гляди какой-нибудь хацкер влезет в компьютер и украдет твою ценную рукопись. Приходится заниматься самообороной и искать инструменты для надежного шифрования файлов. Но зачем ходить далеко, когда все есть под рукой, в команде под названием openssl.
В качестве универсального средства шифрования каталогов и дисков OpenSSL, конечно, подходит плохо, но для криптования отдельно взятых файлов лучше инструмента не найти. В качестве примера попробуем зашифровать файл secret.txt:
Verifying - enter aes-256-cbc encryption password:
Здесь мы используем алгоритм шифрования AES (один из лучших на сегодня) с длиной ключа 256 байт и режимом шифрования CBC (который хоть и скомпрометировал себя, но для домашних нужд вполне сгодится). Также с помощью опции -salt добавим соли чтобы результат получился совсем мудреный. В ответ на запрос пароля вводим пароль (дважды).
После выполнения этой процедуры файл secret.aes можно спокойно хранить хоть в домашнем каталоге или таскать с собой на флешке до того момента пока не понадобится извлечь его содержимое. А сделать это просто:
Оцпия -pass file:/tmp/passwd здесь используется чтобы не вводить пароль для каждого файла. Достаточно просто поместить его в указанный файл и дело в шляпе (можно также использовать опцию -pass pass:пароль для прямого указания пароля, но это небезопасно, он осядет в истории bash).
С другой стороны, для шифрования каталога лучше использовать такой прием с начальной упаковкой файлов:
$ tar c каталог | openssl enc -aes-256-cbc -e > secret.tar.enc
Также OpenSSL удобно использовать для генерирования стойких паролей:
$ openssl rand 8 -base64
O0Hqtv9l0sY=
И хэшей для записи в /etc/passwd:
# openssl passwd -1 my-secret-pass
$1$WA7AVhQL$y9VaGwseiKRLSGoJg21TP0
И даже фиктивных MAC-адресов:
$ openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'