PGP (Pretty Good Privacy) - криптографическое
приложение для обеспечения защиты и
аутентификации данных. Используя его, можно
быть уверенным, что никто не сможет
прочитать или изменить Вашу информацию.
Подробнее о программе и истории ее создания
можно прочитать на сервере http://www.pgpi.org/.
Защита гарантирует, что только получатель
информации сможет воспользоваться ей.
Оказавшись в чужих руках, она будет
совершенно бесполезной, поскольку ее
невозможно декодировать.
Аутентификация гарантирует, что если
некоторая информация была создана Вами и
выложена для публичного доступа, то она
действительно поступила от Вас и не была
никем фальсифицирована или изменена в пути.
PGP основана на криптографической системе,
известной как открытый ключ, которая может
быть использована на ненадежных каналах.
Это делает ее идеальной для обеспечения
защиты информации, передаваемой по таким
сетям, как Internet.
В системах с открытым ключом каждый из
участников информационного обмена имеет
два ключа, взаимно дополняющих друг друга;
один является открытым ключом, а другой -
закрытым. Открытый ключ может и должен быть
свободно доступным, так как он является
именно тем ключом, который отправитель
использует для шифрования передаваемой Вам
информации. Закрытый ключ ни в коем случае
не должен распространяться. Именно он
гарантирует безопасность передаваемых
данных.
Шифрование
Возьмем для примера двух друзей - Сергея и
Максима. У Сергея есть открытый ключ
Максима. Он шифрует письмо с помощью этого
ключа и отправляет. Теперь только Максим
сможет прочитать это письмо, потому что
закрытый ключ находится только у него. Даже
Сергей уже не может прочитать свое
собственное, но уже зашифрованное письмо.
Аутентификация
Вы посылаете письмо в список рассылки для
своих клиентов. При этом подписчики списка
хотят быть уверены что это именно Вы
послали сообщение и что оно не было
изменено каким-либо посторонним лицом.
Подписываем сообщение с помощью своего
закрытого ключа и вставляем подпись в
письмо. Теперь все клиенты, у которых есть
открытый ключ, могут с помощью него
проверить, действительно ли Вы послали это
письмо и не изменено ли оно кем-либо.
Версии PGP
На моей машине установлены две версии PGP:
PGP 2.6.3ia - /usr/local/bin/pgp
PGP 6.5.1i - /usr/local/bin/pgp6
В PGP версии 2.6.3ia для криптования
используется алгоритм RSA, а в версии 6.5.1i
добавлен алгоритм DSS/DH.
Генерация ключей
Сначала необходимо зайти в unix shell и в своей
домашней директории создать подкаталог .pgp
командой:
mkdir .pgp
После этого командой "/usr/local/bin/pgp -kg"
создаем ключи и защищаем свой закрытый ключ
паролем. Обязательно запишите этот пароль.
При утере восстановить его будет
невозможно и придется создавать новые
ключи. В каталоге .pgp созданы два файла:
pubring.pgp - набор открытых ключей
secring.pgp - набор закрытых ключей
Теперь можете приступать к использованию PGP
Создание пары ключей
Чтобы начать использовать PGP, нужно создать
собственную пару ключей (открытый/закрытый).
Чтобы это сделать, выполните команду:
pgp -kg
Вас попросят выбрать максимальный размер
ключа (512, 768 или 1024 байт). Чем больше ключ, тем
более надежным он будет, правда, ценой
небольшого снижения быстродействия при
шифровании.
После выбора размера нужно задать
идентификатор открытого ключа. Обычно
здесь указывают свои имена и/или e-mail адрес.
Например:
Ivan Petrov
Далее нужно задать пароль, который будет
защищать закрытый ключ. Это необходимо для
защиты закрытого ключа. Например, если кто-нибудь
украдет его, ключ будет бесполезен без
пароля. Наконец, программа попросит в
произвольном порядке нажать несколько
клавиш на клавиатуре чтобы она могла
создать последовательность случайных
чисел. Через несколько секунд PGP создаст
ключи и известит об этом соответствующим
сообщением. После того, как ключи были
сгенерированы должным образом, они
сохраняются в каталоге ~/.pgp в виде файлов:
pubring.pgp и secring.pgp. Первый, pubring.pgp, является
файлом с открытыми ключами, secring.pgp - файл с
закрытыми ключами На данный момент эти
файлы содержат только открытый и закрытый
ключи их создателя. Необходимо помнить, что
безопасность методов открытого ключа
опирается на безопасности закрытого ключа,
поэтому обязательно хранить его в надежном
месте и следить за тем, чтобы никто не смог
его получить. Установите такие права
доступа к файлу secring.pgp, чтобы только Вы
могли читать и записывать в него.
Редактировать и изменять идентификаторы
ключей и пароли закрытых ключей можно с
помощью команды:
pgp -ke идентификатор [файл с ключами]
Добавление ключей в файл
Теперь Вам, вероятно, захочется добавить
открытые ключи людей, с которыми есть
желание обмениваться шифрованными
сообщениями. Для этого потребуется
получить открытые ключи Ваших
корреспондентов: с сервера ключей,
непосредственно от конкретных людей, по e-mail,
и т.д. Вспомним, что открытые ключи
распространяются свободно и нет
необходимости передавать их по безопасному
каналу. Если в файле somekey.pgp содержится ключ
и есть желание добавить его в файл ключей,
процедура такова:
pgp -ka somekey [файл с ключами]
По умолчанию расширение .pgp указывает на
файл с ключом и имена pubring.pgp и secring.pgp даются
файлам, содержащим наборы открытых и
закрытых ключей, соответственно. После
добавления ключа PGP может сообщить, что
добавленный ключ не полностью
сертифицирован, это означает, что данный
ключ не обязательно может принадлежать
заявленному владельцу. Если есть
уверенность, что ключ действительно
принадлежит этому человеку, то сами можете
подтвердить его приемлемость для
использования.
Удаление ключа из файла
Удалить ненужный ключ из файла можно
командой
pgp -kr идентификатор [файл с ключами]
Например: "pgp -kr alex" удалит любой ключ, у
которого в идентификаторе содержится "alex".
По умолчанию исследуется файл открытых
ключей.
Выделение ключа
После сохранения ключей друзей в файле
необходимо послать им свой открытый ключ.
Прежде всего его необходимо выделить из
собственного файла открытых ключей:
pgp -kx идентификатор файл [файл с ключами]
Например: "pgp -kx alex mykey" выделяет
открытый ключ, идентифицированный
подстрокой "angel" в файле mykey.
Созданный файл mykey.pgp будет не в формате ASCII.
Однако, если потребуется создать файл ключа
в формате ASCII чтобы послать, к примеру, по
e-mail или добавить дополнительную информацию
к базе данных, потребуется использовать
команду:
pgp -kxa идентификатор файл [файл с ключами]
Например: "pgp -kxa alex mykey" выделяет
открытый ключ, идентифицированный
подстрокой "alex", в файл "mykey.asc".
Вместе с ключом также выделяются все
сертификаты, которые его подтверждают.
Содержание файлов с ключами
Чтобы просмотреть ключи, содержащиеся в
файле, наберите команду:
pgp -kv [идентификатор] [файл с ключами]
Еще раз заметим, что файлом по умолчанию
является pubring.pgp. Если идентификатор не
указан явно, то показываются все ключи из
файла. Чтобы просмотреть все сертификаты
каждого ключа, необходимо набрать:
pgp -kvv [идентификатор] [кольцо]
Шифрование сообщений
Теперь попробуем зашифровать файл. Сделать
это можно командой:
pgp -e файл идентификатор
Эта команда создает файл с именем файл.pgp,
содержащий исходный файл, зашифрованный
так, что только получатель может его
расшифровать с помощью своего закрытого
ключа.
Помните, что созданный файл, не является ASCII
файлом, поэтому для отправки его по E-Mail
может потребоваться добавить еще одну
опцию -a для того, чтобы выходной
закодированный файл был в формате ASCII,
например так:
pgp -ea файл идентификатор
Кодирование сообщения для нескольких
получателей
Допустим, необходимо зашифровать и
отправить письмо для нескольких
получателей. В этом случае поступим так:
pgp -ea файл идентификатор1 идентификатор2
идентификатор3
Как подписывается сообщение
Подпись документа позволяет получателю
удостовериться в том, что текст написан
действительно отправителем и что сообщение
не было изменено. Чтобы подписать документ,
необходимо использовать закрытый ключ:
pgp -s файл идентификатор
Если у нас есть несколько закрытых ключей в
нашем secring.pgp, мы можем выбрать один из них
при помощи идентификатора. Эта команда
создает файл, который не является ASCII-текстом,
потому что PGP пытается сжать файл. Если, с
другой стороны, Вы хотите подписать файл,
оставив текст читабельным и с подписью в
конце, то процедура будет выглядеть так :
pgp -sta файл
Эта последняя команда очень полезна при
подписи электронной почты, которую и дальше
можно будет читать без использования PGP.
Также такое сообщение смогут читать те,
кому не обязательно проверять подпись.
Кроме того, можно подписать документ и
затем закодировать его при помощи
следующей команды:
pgp -es файл идентификатор_получателя мой_идентификатор
Для кодирования файла используется
открытый ключ, идентифицируемый подстрокой
"идентификатор_получателя", поэтому
только этим ключом можно декодировать этот
файл. Затем идентифицируем закрытый ключ
строкой "мой_идентификатор", так как в
нашем наборе есть несколько ключей. Даже в
этом случае можно создать файл в формате ASCII,
используя опцию -a.
Расшифровка
Для расшифровки файла и/или проверки его
подписи используется команда:
pgp входной_файл [-o выходной_файл]
По умолчанию предполагается, что входной
файл имеет расширение .pgp. Имя файла, который
получится в результате декодирования,
является необязательным параметром. Если
выходной файл не указан, расшифрованный
файл будет сохранен в файле входной_файл
без расширения .pgp.
Также можно просто просмотреть
расшифрованный файл без сохранения:
pgp -m файл.
Вот и все, теперь никто не сможет
просматривать твои сообщения.