пламенный почтовик ВОЛЬФ Д. А. 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), нужно сделать следующее: |