Сервер в кармане, или просто о сложном!

главная - Статьи - Разное



Шифрование PGP

Дата обновления: 28.08.2021

Теги: Шифрование

PGP (Pretty Good Privacy) - криптографическое приложение для обеспечения защиты и аутентификации данных. Используя его можно быть уверенным, что никто не сможет прочитать или изменить Вашу информацию. Подробнее о программе и истории ее создания можно прочитать на сервере www.pgpi.org. Защита гарантирует, что только получатель информации сможет воспользоваться ей. Оказавшись в чужих руках, она будет совершенно бесполезной, поскольку ее невозможно декодировать.

Внимание - в настоящее время статья устарела. Актуальная замена PGP - это GnuPG (GNU Privacy Guard, https://www.gnupg.org). Пример работы с GnuPG в Windows смотрите в статье "Шифрование GPG (GnuPG, ex PGP)".


 

 

Аутентификация гарантирует, что если некоторая информация была создана Вами и выложена для публичного доступа, то она действительно поступила от Вас и не была никем фальсифицирована или изменена в пути.

В 1999 году силами Фонда свободного программного обеспечения была создана свободная реализация OpenPGP под названием GNU Privacy Guard (GnuPG), а сам PGP был куплен McAfee, а поздгнее - Symantec. Проект GnuPG жив и здоров, о нем читайте в отдельной статье.

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, нужно создать собственную пару ключей (открытый/закрытый). Чтобы это сделать, выполните команду:

pgp -kg

Вас попросят выбрать максимальный размер ключа (512, 768 или 1024 байт). Чем больше ключ, тем более надежным он будет, правда ценой небольшого снижения быстродействия при шифровании.

После выбора размера нужно задать идентификатор открытого ключа. Обычно здесь указывают свои имена и/или e-mail адрес. Например:

Ivan Petrov <ivan@zmail.ru>

Далее нужно задать пароль, который будет защищать закрытый ключ. Это необходимо для защиты закрытого ключа. Например, если кто-нибудь украдет его, ключ будет бесполезен без пароля. Наконец, программа попросит в произвольном порядке нажать несколько клавиш на клавиатуре чтобы она могла создать последовательность случайных чисел. Через несколько секунд 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" выделяет открытый ключ, идентифицированный подстрокой "alex" в файле 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 файл

 



02.08.2016 09:02 Stif
wcDMA7xplHHtIa35AQwAoT7ouxEVN2BYHZ0jxZVSZvwPzV6+oXYKMBQY05GmCzo0
TeVO7DQzjWAiELxGWdocxxV0O9jRXVH4wvdjXaY1nQTCZVLGZDUdJCB4tJw/e/06
Sf2RC4pezSgmJmEp2+iXfjG0PDJG7tqYG9MczKPIcd2ML2gQRt46hj4UjgTbuJdD
FB3Yi9AQDfUZ93qOlPRGD98NB3pw4z07XkXXq+VkgzvKmR+mlOj94529lOQpWzfm
tgUnMT/8evj/9hQ7hsMh6DkzEOZcab2Z4fu1PtSMysMQsziuMJa5O8znjymmi1C/
o2lnBzlUsm99DYhAPs3vyjRFdyFzrhthybhkyiP+svZ3Lv8pUB7NCDto2CvvvFJZ
yIs9Lj94d+DGE8XrWq94ChCak5ghbnTPv/HZm/O46oIIkIrMjSz+/kNFbj1iMmzU
8j8vvYg5CkRChg01N9bpE2EPmH3dJOxkVdiZh7dahSbtYLSD2BQhQldgRL4dr17t
GR2F55flWi4jkZp5FvF60uAB5FlB8MVz/Xzlwxmsua53ArzhBXLg/OA04ZxW4D/i
jgjQUOBC530JrJ8HvwbXODFqzRKn1a21fv+YYYKty1yCMIRnHJgkNkteGJVA+G3v
r0hZPlKXm736Bh1C0FMG8qFQCCJrDxDvRvxTpbTL4+evT+WU4juIpO+wAc53eqoI
0ZFd3ugLL//jArM0Ma4CE4Btl3j86fGmaM5UzCSzsLQ8+9z+28BG4P/hzSvgDOSf
Wx8bIOJFC0NrRSVJn+ZS4tNuVQbhVUQA
=LKLW
21.09.2016 14:00 Munk
Прелестно! И кому вы это адресовали?
22.01.2018 19:14 Boris12121233446
ff[f[f[f[[f
17.10.2019 12:15 максим
подскажите пожалуйста у меня была программа на телефоне openkeychain,я добавил ключ к одному из сайтов,я купил новый телефон и теперь не могу зайти туда так как у меня сайт просит расшифровать сообщение!а свой ключ в программе я могу только найти а добавить в свои ключи я не могу!помогите пожалуйста
05.07.2020 20:21 Sense4532
Как расшифровать pgp
05.07.2020 20:21 Sense4532
Помоги пожалуйста

Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?