Документация по ОС FreeBSD Пятница, 29.03.2024, 09:30
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Безопасность

Шифруем файлы с помощью OpenSSL [2011]
В наши дни шифрование стало обязательной процедурой не только в организациях, но и на домашних машинах. Со всех сторон враги, того и гляди какой-нибудь хацкер влезет в компьютер и украдет твою ценную рукопись. Приходится заниматься самообороной и искать инструменты для надежного шифрования файлов. Но зачем ходить далеко, когда все есть под рукой, в команде под названием openssl.

В качестве универсального средства шифрования каталогов и дисков OpenSSL, конечно, подходит плохо, но для криптования отдельно взятых файлов лучше инструмента не найти. В качестве примера попробуем зашифровать файл secret.txt:

$ openssl enc aes-256-cbc -salt -in secret.txt -out secret.aes
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:

Здесь мы используем алгоритм шифрования AES (один из лучших на сегодня) с длиной ключа 256 байт и режимом шифрования CBC (который хоть и скомпрометировал себя, но для домашних нужд вполне сгодится). Также с помощью опции -salt добавим соли чтобы результат получился совсем мудреный. В ответ на запрос пароля вводим пароль (дважды).

После выполнения этой процедуры файл secret.aes можно спокойно хранить хоть в домашнем каталоге или таскать с собой на флешке до того момента пока не понадобится извлечь его содержимое. А сделать это просто:

$ openssl aes-256-cbc -d -in secret.aes -out secret.txt

Вводим пароль - получаем оригинал. Если требуется зашифровать простую строку текста, то от входного файла можно избавиться:

$ echo секретный текст | openssl aes-256-cbc -salt -out secret.aes

Объединив этот способ со всемогущим netcat получаем сетевой cp:

приемник...$ nc -l -p 666 | openssl aes-256-cbc -d
передатчик.$ echo секретный текст | openssl aes-256-cbc -salt | nc 192.168.0.1 666

Чтобы зашифровать сразу несколько файлов можно написать небольшой скрипт:

$ for f in * ; do [ -f $f ] &&\
    openssl enc -aes-256-cbc -salt -in $f -out $f.enc\
    -pass file:/tmp/passwd ; done

Оцпия -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/.$//'
f2:9e:56:fd:5a:93


Источник: http://execbit.ru/2011/12/01/openssl-encryption/
Категория: Безопасность | Добавил: oleg (31.12.2011)
Просмотров: 1173 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024