Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #69, АВГУСТ 2006 г.

пламенный почтовик

ВОЛЬФ Д. А. AKA PAYHASH

Спецвыпуск: Хакер, номер #069, стр. 069-040-2


openssl genrsa -des3 -rand /usr/local/games/doom3-linux-1.3.1302.x86.run -out sendmail.key 1024

Эта команда сгенерирует секретный 1024-битный ключ RSA, где опция

-rand - это входные данные, необходимые для того, что бы получить надежный псевдослучайный набор простых чисел. Также нам необходимо будет ввести ключевое слово - пароль на секретный ключ, который нужно запомнить. Итак, ключ, с помощью которого мы сможем дешифровать данные, создан. Назначим на него права, которые будут беречь его от посторонних глаз:

terminal# chmod 700 sendmail.key

Конечно же, мы не зря выбрали такое имя ключа - это поможет нам избежать путаницы.

На основе нашего секретного ключа создадим его публичную часть. Сделать это можно следующем образом:

terminal# openssl rsa -in sendmail.key -out pubsendmail.pem -pubout

Для того чтобы зашифровать какое-либо текстовое сообщение

при помощи публичного ключа, необходимо выполнить следующую команду:

terminal# openssl rsautl -in file.txt -out file.crypt -inkey pubsendmail.pem -pubin -encrypt

Здесь rsautl - это алгоритм шифрования, in file.txt – файл, нуждающийся в шифровании (его подаем на вход), out file.crypt – шифрованный файл, который будет получаться на выходе, inkey pubsendmail.pem – ключ, с помощью которого мы будем шифровать файл file.txt, а pubin и encrypt – аргументы, которые сообщают программе rsault, что надо совершить шифрование с помощью открытого ключа.

В результате этой команды из файла file.txt будут извлечены чистые данные, которые программа rsault зашифрует и выдаст результат в файл file.crypt. Для того чтобы дешифровать файл file.crypt с помощью OpenSSL нужно совершить следующее:

terminal# openssl rsautl -in file.crypt -out file.decrypt -inkey server.key -decrypt

Файл file.decrypt содержит дешифрованный текст, который был в исходном состоянии в файле file.txt. Итак, мы разобрались с базовым понятием криптографии при помощи шифрования с использованием открытого ключа.

[сертификаты]

Представь, что наш открытый ключ подписала некая доверительная (сторонняя) организация. Теперь такой открытый ключ будет являться не просто ключом, а целым сертификатом, удостоверяющим пользователей в том, что данный ключ несет полную гарантию целостности зашифрованных данных и является настоящей собственностью владельца сертификата. Это и есть понятие сертификата. Иначе говоря, существует некий публичный ключ и его подписал некий доверительный центр (своим дайджестом или чем-либо еще). Данный ключ действительно является публичным ключом владельца, и после подписания он превращается в доверительный сертификат и может быть использован. Для того чтобы правильно сформировать открытый ключ, из которого мы будем формировать сертификат (в OpenSSL этим занимается программа req), нужно сделать следующее:

Назад на стр. 069-040-1  Содержание  Вперед на стр. 069-040-3