Шифрование PGP
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:
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 командой:
После этого командой «/usr/local/bin/pgp -kg» создаем ключи и защищаем свой закрытый ключ паролем. Обязательно запишите этот пароль. При утере восстановить его будет невозможно и придется создавать новые ключи. В каталоге .pgp созданы два файла:
pubring.pgp — набор открытых ключей
secring.pgp — набор закрытых ключей
Теперь можете приступать к использованию PGP
Использование PGP
- Генерация ключей(подробно)
- Добавление ключа в файл
- Удаление ключа из файла
- Выделение ключа
- Содержание файла с ключами
- Шифрование сообщения
- Шифрование сообщения для нескольких получателей
- Подписываем сообщение
- Расшифровка
Создание пары ключей
Чтобы начать использовать PGP, нужно создать собственную пару ключей (открытый/закрытый). Чтобы это сделать, выполните команду:
Вас попросят выбрать максимальный размер ключа (512, 768 или 1024 байт). Чем больше ключ, тем более надежным он будет, правда ценой небольшого снижения быстродействия при шифровании.
После выбора размера нужно задать идентификатор открытого ключа. Обычно здесь указывают свои имена и/или e-mail адрес. Например:
Далее нужно задать пароль, который будет защищать закрытый ключ. Это необходимо для защиты закрытого ключа. Например, если кто-нибудь украдет его, ключ будет бесполезен без пароля. Наконец, программа попросит в произвольном порядке нажать несколько клавиш на клавиатуре чтобы она могла создать последовательность случайных чисел. Через несколько секунд 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. Также такое сообщение смогут читать те, кому не обязательно проверять подпись.
Кроме того, можно подписать документ и затем закодировать его при помощи следующей команды:
pgp -es файл идентификатор_получателя мой_идентификатор
Для кодирования файла используется открытый ключ, идентифицируемый подстрокой «идентификатор_получателя», поэтому только этим ключом можно декодировать этот файл. Затем идентифицируем закрытый ключ строкой «мой_идентификатор», так как в нашем наборе есть несколько ключей. Даже в этом случае можно создать файл в формате ASCII, используя опцию -a.
Расшифровка
Для расшифровки файла и/или проверки его подписи используется команда:
pgp входной_файл [-o выходной_файл]
По умолчанию предполагается, что входной файл имеет расширение .pgp. Имя файла, который получится в результате декодирования, является необязательным параметром. Если выходной файл не указан, расшифрованный файл будет сохранен в файле входной_файл без расширения .pgp.
Также можно просто просмотреть расшифрованный файл без сохранения:
Шифрование с помощью PGP
Эта статья родилась из простой задачи, мне нужно было передать файл с паролями с одного компьютера на другой через интернет. Можно сколько угодно говорить о шифровании в мессенджере и безопасных сервисах, которые “упрощают” нашу жизнь. Но факт остается фактом, если вы хотите действительно безопасно передать данные через интернет, придется погрузиться в шифрование. Я не специалист по информационной безопасности, мой интерес чисто обывательский. Первое правило здесь — каналы передачи данных всегда небезопасны. Второе — любой сервис с пользователями всегда будет целью для взломов и поиска уязвимостей.
PGP (Pretty Good Privacy) — одна из первых популярных реализаций шифрования с открытым ключом. У нее интересная история, особенно в части как правительство США пыталось запретить её экспорт. В итоге PGP стала коммерческим продуктом. Доступна бесплатная версия, основанная на том же стандарте, что и PGP. Она называется GnuPG (или GPG). Поскольку стандарт одинаковый, пользователи часто говорят «PGP-ключ» и «PGP-сообщение», хотя на самом деле используют GnuPG.
В виду своего возраста и распространенности, PGP одна из самых критикуемых реализаций. Но именно из-за этих двух факторов PGP является своего рода стандартом. Куча ошибок в нем уже были найдены и устранены и многие уже привыкли/знают как с ним работать. При использовании современных алгоритмов он дает неплохую криптоустойчивость, а к минусам можно отнести не самое простое управление, для которого требуется небольшое погружение.
Предположим, вы хотите отправить кому-то сообщение, содержащее деликатную информацию и не хотите, чтобы кто-то еще мог его прочитать. Лучший способ будет зашифровать сообщение специальным ключом, который будете знать только вы и получатель. Если атакующий перехватит сообщение, он не сможет ничего расшифровать. В наше время мы считаем “условно не сможет” потому что компьютерные мощности растут и, например, устаревшие алгоритмы шифрования могут быть взломаны как через уязвимости, так и методом перебора. Такой вариант назыается системой с симметричным ключом. Они работают нормально, но есть проблема курицы и яйца, прежде чем отправить сообщение, нужно поделиться ключом, а как это сделать без секретного канала?
PGP решает именно эту проблему. Криптография открытого ключа позволяет безопасно делиться информацией, независимо на каком расстоянии и за какими границами вы находитесь и не требует установки изначального безопасного канала.
Шифрование и Дешифрование
Шифрование и дешифрование в криптографии публичным ключом опирается на пару математически уникальных ключей. Один называется публичный, а другой приватный. Публичный ключ предоставляет однонаправленную функцию, подобно висячему замку. Любой человек может его закрыть, но открыть только владелец закрытого ключа. Критическим моментом является защита приватного ключа, который используется для расшифровки сообщения, зашифрованного публичным ключом. Он должен всегда оставаться секретным, известным только владельцу. Картинка ниже иллюстрируется пример шифрования и дешифрования.

Если Ваня хочет послать зашифрованное сообщение Пете, ему нужен Петин публичный ключ. Это значит, что Петя должен им как-то поделиться, например в социальных сетях. Тогда Ваня сможет взять этот публичный ключ, зашифровать им сообщение и отправить любым, в том числе ненадежным каналом связи Пете. А Петя в свою очередь расшифрует сообщение своим приватным ключом.
Отпечатки
Одна из проблем с публичным ключами это самозванство. Нет легкого способа гарантировать, что определенный публичный ключ, опубликованный онлайн действительно принадлежит конкретному человеку. Атакующий может сгенерировать пару ключей и “подсунуть” свой публичный ключ, прикидываясь другим человеком.
Чтобы справиться с этой проблемой, в PGP существует механизм отпечатков. Отпечатки (Fingerprints) — это уникальный идентификатор, они генерируются в результате односторонней математической функции называемой хэширование. Односторонней значит что из отпечатка нельзя получить исходный ключ выполнив обратную процедуру (хэшировать можно любые данные, не только ключи). Результатом является цифробуквенная строка фиксированной длинны. Пользователи публикуют свои отпечатки на различных платформах. Например в социальных сетях, email подписях или даже печатают на визитках. Одним из способов также является публикация на специальном сервере-справочнике (например keybase.io).
У меня в блоге есть отдельная страница, на которой можно скачать мой публичный PGP ключ и найти отпечаток. Этот же отпечаток указан в био в моем Twitter аккаунте. Скачав публичный ключ и импортировав его к себе (об этом еще будет позже), можно повторить процесс генерации отпечатка самостоятельно и сравнить его с тем, что указан публично. Таким образом вы убедитесь что публичный ключ действительно принадлежит этому человеку. Но будьте внимательны, злоумышленник может подменить отпечатки тоже.

Публикация отпечатка в разных источниках увеличивает стоимость атаки для злоумышленника, который пытается прикинуться другим человеком. Ему придется взломать каждую платформу, на которой опубликован настоящий отпечаток, чтобы подменить его своим собственным. Выложив отпечаток на разных платформах, можно также легко идентфицировать, если какая-то из них была скомпрометирована.
Подпись сообщений
Другой компонент PGP — подпись сообщений. Это процесс удостоверения сообщения уникальной цифровой подписью.

Ваня хочет отправить сообщение Пете и подтвердить, что сообщение действительно пришло от него, а также, что оно не было модифицировано по пути. Для этого он подписывает его. Чтобы подписать сообщение PGP хэширует его, чтобы длина подписи не зависела от размера сообщения, затем шифрует хэш используя приватный ключ. Расшифровать подпись можно только публичным ключом Вани, т.е. если у Пети получилось это сделать, он будет уверен, что сообщение пришло именно от Вани. Затем, Петя может сам создать хэш сообщения и сравнить его с тем, что получился в результате дешифрования подписи, таким образом убедившись, что сообщение не было изменено в процессе передачи.
Будьте внимательны, подписывание сообщения позволяет убедиться в аутентичности и целостности данных, но не защищает само сообщение. Другими словами, если вы только подписали сообщение, оно будет передано в открытом виде и кто угодно сможет его прочитать. Чтобы сообщение было конфиденциальным, после подписания его надо зашифровать публичным ключом получателя и отправить в шифрованном виде.
Сочетание подписания с шифрованием гарантирует:
- Конфиденциальность — гарантия того, что ни одна сторона, кроме предполагаемого получателя, не сможет получить доступ к содержимому сообщения
- Целостность — гарантия того, что сообщение не было изменено при передаче
- Аутентификация — гарантия того, что личность отправителя может быть проверена
- Неотрицание — гарантия того, что отправитель не сможет обоснованно отрицать факт отправки сообщения
Как генерировать PGP ключи
Как я уже упоминал, существует бесплатная библиотека и ПО, которые реализуют PGP протокол — GnuPG. Есть несколько способов как ими пользоваться, я предпочитаю использовать терминал. Команды, приведенные ниже, подходят для операционных систем MacOS и Linux, а также, скорее всего, Linux подсистемы в Windows — WSL.
Если работать с PGP в терминале вам некомфортно, я советую посмотреть в сторону инструкций Surveillance Self-Defense от Electronic Frontier Foundation. Они доступны в том числе на русском языке.
На MacOS GnuPG может быть установлен через Homebrew.

Сначала выбираем тип ключа, который хотим создать. Можно нажать Enter чтобы выбрать тип по умолчанию, на MacOS это ECC (sign and encrypt) . Если вы не видите такой тип в списке, а по умолчанию предлагается RSA, воспользуйтесь параметром —expert , чтобы увидеть больше опций.

Дальше нам предлагается выбрать эллептическую кривую. Берем Curve 25519 и переходим к сроку действия. Можно создать ключи с ограниченным сроком действия, это хорошая, но продвинутая практика, придется перегенерировать ключи до даты истечения, чтобы начать работать с PGP это не нужно, поэтому выбираем key does not expire .
Для RSA будет предложен выбор размера, если вы, по какой-то причине не можете использовать ECC, а доступен только RSA, я бы рекомендовал как минимум 4096.

Дальше нам нужно будет заполнить идентификационные данные, такие как имя и email. В поле комментарий можно ввести любую информацию.

На следующем шаге нужно будет дважды ввести пароль для ключа, тут как всегда, он должен быть достаточно сложным, но если вы его забудете/потеряете, то уже никогда не сможете пользоваться приватным ключом из этой пары. Сгенерировать хороший случайный пароль можно в специальном Telegram боте.

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

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

Используйте параметр —fingerprint чтобы отобразить отпечатки ключей. Это длинная строка из 10 блоков с 4 цифрами и буквами в каждом.

Чтобы поделиться вашим публичным ключом его нужно экспортировать в текстовый файл. Для этого можно воспользоваться следущей командой, заменив и на те, что были указаны при генерации ключей. Вместо имени можно также использовать email.

Как импортировать публичный ключ и зашифровать им сообщение
Представим, что кто-то хочет отправить мне сообщение зашифровав его моим публичным ключом. Для этого ему НЕ нужно иметь собственные ключи, но необходимо иметь установленной GnuPG.
Первым делом нужно скачать мой публичный ключ со специальной страницы. Это можно сделать через браузер или в том же терминале, с помощью команды:

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

Если вы уверены в каком-то конкретном ключе, вы можете изменить его уровень доверия в GnuPG и тогда предупреждения не будет. Для этого можно воспользоваться параметром —edit-key .
gpg --edit-key KEY_ID> gpg> trust
Далее вам будет предложен выбор уровня доверия.
1 = I don't know or won't say 2 = I do NOT trust 3 = I trust marginally 4 = I trust fully 5 = I trust ultimately m = back to the main menu
После подтверждения выбора можно выйти из редактирования ключа командой quit .
Дополнительные материалы
Примеры критики PGP:
- Operational PGP
- Using OpenPGP subkeys in Debian development
- signify: Securing OpenBSD From Us To You
- Поблагодарить автора
- Telegram канал
Шифрование GPG (GnuPG, ex PGP)

Защита конфиденциальной информации периодически востребована всеми, кто пользуется электронной почтой и хранит документы на своем компьютере, т.е. практически каждый современный человек хоть раз, но сталкивался с проблемой защиты передавемых или хранимых данных. GnuPG — это полная и бесплатная реализация стандарта OpenPGP, определенного в RFC4880 (также известном как PGP). GnuPG позволяет вам шифровать и подписывать ваши данные и сообщения; он оснащен универсальной системой управления ключами, а также модулями доступа для всех видов каталогов открытых ключей. GnuPG, также известный как GPG, представляет собой инструмент командной строки с функциями для легкой интеграции с другими приложениями. Доступно множество интерфейсных приложений и библиотек. GnuPG также поддерживает S/MIME и Secure Shell (ssh).
Для защиты информации (с возможностью ее передачи по электронной почте или на физическом носителе) от чужих глаз используется несколько основных методик:
- криптоконтейнеры (например, VeraCrypt)
- зашифрованные файлы
- зашифрованные сообщения, передаваемые в открытом текстовом сообщении
Также используют скрытые контейнеры, но я не представляю себе, как передать по почте скрытый криптоконтейнер. И еще — никто не возбраняет использовать несколько методик одновременно, например, зашифровать текстовое сообщение, поместить его в текстовый файл, файл зашифровать, поместить в другой криптоконтейнер, который и передавать по электронной почте (вариант с хранением смерти Кощея Бессмертного).
Кратко рассмотрим использование GnuPG как средство шифрования текстовых сообщений.
Итак, GnuPG.

Веб-сайт: https://www.gnupg.org
Реализация для Windows: https://www.gpg4win.org
Распространение бесплатно
GNU Privacy Guard, совместимый с OpenPGP, созданный Фондом СПО на базе PGP, востребован и стабильно развивается на протяжении многих лет. На февраль 2020 года актуальная версия 3.1.11, в которой заявлены улучшения в плагине к Outlook GpgOL, в основном модуле Kleopatra и др.
Установка GPG
После установки при первом запуске программа предлагает сгенерировать ключ для подписывания/шифрования информации.
Соглашаемся, вводим необходимую информацию, программа сгенерирует пару секретного/открытого ключей:



Фразу-пароль ключа необходимо беречь как зеницу ока! Этот пароль — защита всей вашей переписки, возможно, на долгие годы вперед. Пароль должен быть сложным и не словарным.
Открытым ключом сообщения подписываются и/или шифруются (этот ключ можно отправить вашему другу, который будет посылать вам секретные письма!), а расшифровываются они только закрытым ключем, который есть только у вас.
Все, установка и создание ключа закончены. Открытый ключ можно отправить по электронной почте, опубликовать (но, как программа вас предупредит, отозвать опубликованный открытый ключ будет крайне трудно, поэтому подумайте, оно вам сразу надо или нет).
Шифрование текста
Вся работа (управление ключами, шифрование текста и много другое) происходит в приложении Kleopatra . Возможностей и тонкостей настолько много, что, пожалуй, даже не буду начинать их обзор.
Запускаем: Пуск — Kleopatra.
Рядом с часами внизу экрана появиось стилизованное изображение женщины с красными волосами. Так, программа запущена.
Наберем текст для ширования. Удобно это сделать в самом приложении Kleopatra в модуле «Блокнот»:

Для примера, пусть это будет слово «test» (без кавычек).
Во вкладке «получатели» необходимо выбрать, от кого сообщение (по желанию — подписываем сообщение), кто получатель — если у нас есть чьи-то открытые ключи, можно сразу создать сообщение для конкретных людей. А можно просто защитить сообщение паролем, зная который, любой сможет прочитать текст.
Нажимаем «Подписать/зашифровать — Блокнот». Появится окно, в котором вы должны выбрать, каким ключом будете шифровать секретный текст «test». Выбрали ключ, нажали «Ok», ввели пароль ключа. Все, программа зашифровала и подписала текст с помощью вашего ключа. У меня это выглядит так (пример, не настоящее сообщение):
-----BEGIN PGP MESSAGE----- qCc7ndI3FQKUeI3ZXy9BLHvRhM2vtFm67U5/VWAFeJbPG5uPoPGvf01GaAaBFGGE zCeu83Z/saRzh5CU2+AO2RRdlHoksoNPsUOc1Gl45SQ70ERUNGzYxULPMFtfkGsR 1Tqoi5b5wHFJaydXthbJWcr3gwHbr24K+/ycsGwJdPM4Zi2NGknjZsGOeP7Gnynj cO1m8EDO+wJNlYL1phLkdsvcq1UFOfzL+rigIlavUSmlQV+UWBzkL+thMukh6gxQ qCc7ndI3FQKUeI3ZXy9BLHvRhM2vtFm67U5/VWAFeJbPG5uPoPGvf01GaAaBFGGE rrbR6QBrkk8wlmuBV19Xj/RpiBVDsZdqZ1udjjJnStLAxAE2TnTY3ZzTYcsvof5z fokicJBIEHfuHjwRqcecsKSTCgCdpajGZntus+SoU55ohasq8q8tf8D/EXHWDrhR CuMRLhiLECXqACwKDipzh/OOqfuXqVinlDk+cGwS89q5x2RRNDf55Kma85UaHwrK XPgQn+Ucz18jVTSzwJt/4lhzYgNC/Pi+ChrQ3MgUIU1lQsSUHMatFU+3fhhUB7Lc d+wSCPeJU5wgUtQ9lbjqD44RCf2d2TKuPBV0ViCcUsS4VbCGZlg+eJoiDm+SHmiT fokicJBIEHfuHjwRqcecsKSTCgCdpajGZntus+SoU55ohasq8q8tf8D/EXHWDrhR zCeu83Z/saRzh5CU2+AO2RRdlHoksoNPsUOc1Gl45SQ70ERUNGzYxULPMFtfkGsR xVJYibdiM9lqteVHyc+Ypaqm2cl3wnLWs4hRxYib7VXysROdlJN8vyF+TmrXjdSA 7zd7+KaFG9TKh9RKhwduDRFkT17vnMYUgQLONGOs+At8pKAjWHw= =rxDG -----END PGP MESSAGE-----
Мы получили подписанное вашим ключем сообщение. Не просто зашифрованный текст, а с указанием, что его автор — вы, а не жулик. Не выходя из приложения, можно нажать «Расшифровать и/или проверить текст» и сразу увидеть наш «test».
Перед тем, как радостно отправлять этот текст по электронной почте, надо выбрать получателя. Пока что весь этот текст (включая заголовки ——BEGIN PGP MESSAGE—— и ——END PGP MESSAGE——) можно спокойно переслать по элетронной почте в отрытом виде (более открытого вида и не придумать!) кому угодно. Без вашего секретного ключа этот текст расшифровать невозможно. Без вашего ключа. Пока что только вы сможете открыть этот текст.
Шифруем простым паролем
Как вы наверняка знаете, шифрование с приватным/открытым ключом подразумевает предварительный обмен открытыми ключами между корреспондентами. Т.е. для того, чтобы зашифровать сообщение для Bob (чтобы Bob открыл сообщение своим приватным ключем), надо чтобы Bob предварительно прислал вам его открытый ключ. Во вкладке «Получатели» выбираете ключ Bob (предварительно полученный и установленный) и все. Это не всегда возможно, а порой — невозможно. Так вот, с помощью GnuPG можно просто зашифровать сообщение, чтобы отправить его кому угодно. Без пароля расшифровать его будет невозможно.
Для этого переходим во вкладку «Получатели», оставляем только галку «Зашифровать, используя пароль. Каждый, кто знает пароль, сможет прочитать данные.»
Теперь, если вернуться на вкладку «Блокнот», то при нажатии на кнопку «Зашифровать Блокнот», появится предложение ввести пароль (любой, пусть это будет 123-654-ATAS). Повторите фразу-пароль и сообщение будет зашифровано. Результат:
-----BEGIN PGP MESSAGE----- jA0EBwMC3pIbioeFcSO+0jkBoYr+j/z0CuEcdKPDCFTOEzVZayqFq1X1W5N3z/AG R2Bc1qPnPjhTbaoTpOMfc93xF+Hs1qD6Goo= =N4xU -----END PGP MESSAGE-----
Этот текст не привязан ни к вашему ключу подписи, ни к программе. Просто зашифрованный текст.
Расшифровка GPG
Если текст шифровался вашим открытым ключем, то для его расшифровки необходим секретный ключ из пары открытого/секретного ключей, которым было зашифровано сообщение. Каждый из виртуальных собеседников создает свою пару открытого/секретного ключей и спокойно обменивается открытыми ключами друг с другом (хоть по обычной электронной почте). Если один захочет написать секретное сообщение другому, то просто зашифрует письмо не своим ключом, а открытым ключом получателя. Получатель же, когда получит письмо, сможет расшифровать его своим секретным ключом и паролем, который останется известным только ему.
Итак, при личной встрече мы лично передали секретный ключ и пароль нашему получателю. Ок, теперь, используя мастер импорта ключей, наш получатель сможет импортировать полученный ключ в его копию программы GnuPG и сможет расшифровать полученное от вас сообщение следующим образом (считаем, что ключ импортирован):
Копируем полученное зашифрованное сообщение в буфер обмена и вставляем его в модуль «Блокнот» Kleopatra.
Жмем «Расшифровать/Проверить» (Decrypt/Verify)
Программа попросит ввести пароль ключа и отобразит расшифрованное сообщение.
Напомню, что копировать шифрованный текст необходимо полностью, от ——BEGIN . и до END PGP MESSAGE——
Вот собственно, и все. К плюсам данного метода шифрования сообщений можно отнести то, что сообщения можно не только шифровать, но и подписывать, при этом, если разместите на вашем веб-сайте ваш публичный ключ (а не в коем случае не секретный), то любой сможет отправить вам подписанное и/или зашифрованное сообщение, прочитать которое сможете только вы (если секретный ключ есть только у вас).
Само собой, если вы расшифровывате текст, который был просто зашифрован паролем, без ключей, то и для расшифровки потребуется только пароль, но этот пароль надо будет как-то передать от отправителя к получателю (или согласовать заранее).
В заключение могу сказать, что программа GPG позволяет не только шифровать текстовые сообщения, но позволяет также шифровать целые файлы, причем шифрование можно совершать не используя ваш ключ, а просто парольной фразой. Это может быть необходимо для передачи вашему будущему собеседнику вашего секретного ключа. Но это уже тема отдельной статьи.
Подпись GPG
Помимо шифрования часто полезно знать, что данный конкретный файл — оригинал, а не подделка. GnuPG позволяет, не шифруя, просто подписать файл. В дальнейшем всегда можно убедиться, что файл не был изменен.
Kleopatra > Файл > Подписать / Зашифровать [файлы]
Выбираете файл (например, file.doc), выбираете сертификат подписи, убираете все галочки, оставив только выбранный сертификат подписи и жмете «Подписать». Будет необдим пароль приватного ключа.
После успешного завершения в той же папке, что и нужный файл, будет создан файл file.doc.sig (с расширением .sig). Двойной клик на нем и если с расширением .sig ассоциирована программа Kleopatra, то октроется окно, в котором будет написано, что файл подписан тем-то, тогда-то.
Исхдный файл и файл подписи должны быть в одной папке при проверке. Имя файла подписи должно быть такое же, как и исходный файл, просто добавляется .sig. Если переименовать файл подписи, то проверить кликом мышки уже не выйдет.
Попробуйте изменить хоть немного оригинальный файл — проверка покажет, что файл уже не тот.
Это можно использовать при скачивании файлов — вы предоставляете файл и файл его подписи. Подменить файл подписи не выйдет, ведь незаметно переподписать, не зная пароля приватного ключа, не возможно.
Thunderbird интегрируется с GnuPG с помощью плагина Enigmail (https://www.enigmail.net/). После скачивания и установки позволяет шифровать не только тело, но и тему письма.
Для других платформ сморите ПО на странице https://gnupg.org/download/index.html
05.07.2020 20:05 Sense4532
——BEGIN PGP MESSAGE——
hQGMA+qI8SSOraNiAQwAj8Ee+SwUf24dKHeqeQAhBNyj9G/aHAa7VIliit3J1l6v
4JVBA2kgJyRYccIJx8Y+udqvmZajvb/2S8NBhzAPz2oeTX05+80vZzD1OGxpFt8S
8ktwP3ZVtEIEP6Le6muZOg/umP2zo8WMAO17wJ7GXCRxbMu583bGvvHJgN82eAZN
SzJwkwTxgdJ+6p21aPI3tm40AA9MsuXsGKoXc38lZaJv6+u/x1sde6oxbf00GBjF
12vyfcYLeKC0c6fFFD3xejE3OWQU52oasAdcAOTOD8gqI++QM4EZmT6M+nygTERF
0+fX6BRHSUUKmcPnM6E5a/AHqA9qL+HUtP6bgZpfZWKoQ9O+7FvAONdCHhaaYDrG
LCVqo3Vyjp9U1z8GjP5dk6T30ZpZEdAQYj+w47Xszzs/Y7+dTO7EVNc8hKDysqlu
bCPoeeG/0HNtDvhgeBAbPEzPpilAYCIq/u/z0WVO3Ox2oOObS8Wwfn6de/jG/yks
24T/6Z7uFWKMQgHI6ly+0l8BZ0idNIhZxzBJBMMkKjfLK8tA9FWJi4sMLFpB5FWj
kpzlUQ0YZfYN+KNalXvCqpr/BEPv1BjW9L6JycAUOg/Maou9jU/6qZtnj+ShXM9J
pUVEBueLEcQU9toNIcykkw==
=psq5
——END PGP MESSAGE——
27.08.2020 01:18 Sense4532
Расшифруйте код подтверждения
——BEGIN PGP MESSAGE——
hQGMA+qI8SSOraNiAQwAsXPh0CenWerB2yItSXuTyPBcQc/xCnXXWtx45oLUVlgL
R4dPSsLR+KfY11oIbOM4dbMrN2eNdLSGTp0ONkap578rVeS+2ZEMIyzThtf6Eh+q
3LOk6FfCl/I0j06HiQ9lYzZhijJBnpb9kQp+nAOZj8BtLpXjTfjHIR9NfZkmJGUT
JhqRHXNqmljMfw6JCFKkUzTnYviLnopUPV26gWewt0pPGK7Ey5zrDqBFauhVUV2J
DJ2SC8Q/LAPMNEXaUxuskt32enZ8KrljlJbcM03rUTDgERQ6LV9Fm9mlN3JvWz4M
6tNcotWDVgiAHadwDAhm1NUOLetz8laxDtdoCYuO5CGokNCI06u9VGtNip8wtRWR
MpCZfw4391GdWp9cXqCHuxc+35nc7eGI0erNfQQECPoMYuItP58P1Qv4+1xdIeSm
DkH75F2FKHRM3e2L+ZXNrR35GV1rcqVZn1OwfCzKNrRAbViYtLPdgYYSPNk7SdNR
FC74WJzA3OjCUF06ojaY0l8BJcLQu3v13bTztrRWc9s/nHS3hwn8rm5UWbKHpRWi
jokEwDoDboWBAUKbGwIHa9vCIFrkuRVilHJxz0lIvlFPGjI1z3WdeGpZDJ6BF4nZ
/prAm1vRMiwt6TbpXe3Xpw==
=ZkZc
——END PGP MESSAGE——
22.09.2022 08:07 Molotok41
——BEGIN PGP MESSAGE——
hQGMA/ZYHv8QAP5pAQv9G5zho0ZIcxfWPM1xQeZaveaNuWCYy5EMu4jUQOzem03R
IRun+KGmgGMkt1rTwMr4JtW8EfPGi9vVCWHqnU9gIm4qNKlsVXaRpM+GK0yOiAG8
URDM0E4RWAObUvLXSIBU60+nm/BKmA4maw/MMxNa/DVnT+RPN+FvK8Uc2mxXcxXt
dMv7R/UNSvPz+stsNo5oSbuTw3Ycig6kMafTBARhKez/W53OUEfDOxWH10s5pqbD
i7ufVWNU46uw4SEabahleFFZZW38sygD7tIR9nKHEYu5HMsOT7N0ciUMgMfSfhIB
g03noUOjGK2mTNWrPwKK2avC8mp6idZ5Rzy496d02pzSUcbUwX+Vb7EAQpjgNxEL
jp2iSMVMr2CnBVzGJy0zYp/w5V2wqpRWb6mVs7XmjGxrEwb769NC4T6QjbmtoBOb
dJhzUUDWqPVn3seBpIgLEl72R1Ph0BX85pj3KIvPRDxpufQl5UCa2c/+z+Pil/Bg
Kd9K/HaCOLmtoY43QqH40lUBlE02d+lJiJIMA5A6H6MSHkWFsEcNz3bUZHAjrAie
Psrj4oLfxUY2zhNLRPbFWJhMJR6wyZ7/vS3PClRhqJNdUU2J+Uu7dV4QdS2L6tDi
QlCHgkOy
=5MR/
——END PGP MESSAGE——
Расшифруйте пожалуйста
01.07.2023 09:29 ju sam
——BEGIN PGP MESSAGE——
hQEMAyN4PeUKHYydAQgAl28W0oF7QtUZ2yayXrAtyQuNpnmVuZVc3U/ehJuNSl7R
Ay1v5SrVY3CYpcvtWcwHanIlFRKiLvc0SO3rslyF8ur9/SJgUTTcX05Gurkom6vd
d/f3vc2uLXywA22bKDTo7047jmhTdXpzqS2mA1zn5U5tFXJctm3M6El7pIWxIW3v
7rO8wdNk1BkBtm0NuIOwJwZtYbLmnJQWRsmtOsber0MaGOF9QJFJLcCVwxgIB9pE
LIyEjlZtn1KANrfHxMYFtex9ua5OtrNowZwWGfM1CPGmZ2JKbAC0bYp5ghfLK6KE
9yGq8H0qvTzHdKrRV84X284fZFhXd98Acj3emJeChtJKAdWA4sM7S5dPKSoh0Mdw
FGpacLMtonMaTh7HhSJnm1VsfduvuCWGdLQpTQQgZGcNUZ9gOR3VoPvH4Cbs8Q53
C4Sg8/gumqjN6j4=
=IKli
——END PGP MESSAGE——
01.07.2023 09:31 ju sam
Добрый день, забыла точнее не записала первый код, помогите пожалуйста с расшифровкой. Заранее Благодарю!
——BEGIN PGP MESSAGE——
hQEMAyN4PeUKHYydAQgAl28W0oF7QtUZ2yayXrAtyQuNpnmVuZVc3U/ehJuNSl7R
Ay1v5SrVY3CYpcvtWcwHanIlFRKiLvc0SO3rslyF8ur9/SJgUTTcX05Gurkom6vd
d/f3vc2uLXywA22bKDTo7047jmhTdXpzqS2mA1zn5U5tFXJctm3M6El7pIWxIW3v
7rO8wdNk1BkBtm0NuIOwJwZtYbLmnJQWRsmtOsber0MaGOF9QJFJLcCVwxgIB9pE
LIyEjlZtn1KANrfHxMYFtex9ua5OtrNowZwWGfM1CPGmZ2JKbAC0bYp5ghfLK6KE
9yGq8H0qvTzHdKrRV84X284fZFhXd98Acj3emJeChtJKAdWA4sM7S5dPKSoh0Mdw
FGpacLMtonMaTh7HhSJnm1VsfduvuCWGdLQpTQQgZGcNUZ9gOR3VoPvH4Cbs8Q53
C4Sg8/gumqjN6j4=
=IKli
——END PGP MESSAGE——
01.07.2023 09:32 ju sam
Добрый день, забыла точнее не записала первый код, помогите пожалуйста с расшифровкой. Заранее Благодарю!
——BEGIN PGP MESSAGE——
hQEMAyN4PeUKHYydAQgAl28W0oF7QtUZ2yayXrAtyQuNpnmVuZVc3U/ehJuNSl7R
Ay1v5SrVY3CYpcvtWcwHanIlFRKiLvc0SO3rslyF8ur9/SJgUTTcX05Gurkom6vd
d/f3vc2uLXywA22bKDTo7047jmhTdXpzqS2mA1zn5U5tFXJctm3M6El7pIWxIW3v
7rO8wdNk1BkBtm0NuIOwJwZtYbLmnJQWRsmtOsber0MaGOF9QJFJLcCVwxgIB9pE
LIyEjlZtn1KANrfHxMYFtex9ua5OtrNowZwWGfM1CPGmZ2JKbAC0bYp5ghfLK6KE
9yGq8H0qvTzHdKrRV84X284fZFhXd98Acj3emJeChtJKAdWA4sM7S5dPKSoh0Mdw
FGpacLMtonMaTh7HhSJnm1VsfduvuCWGdLQpTQQgZGcNUZ9gOR3VoPvH4Cbs8Q53
C4Sg8/gumqjN6j4=
=IKli
——END PGP MESSAGE——
Авторизуйтесь для добавления комментариев!

Почтовый сервер Mikrotik VPN 3proxy Шифрование Squid Резервное копирование Защита почты Виртуальные машины Настройка сервера java kvm Групповые политики SELinux OpenVPN IPFW WDS Lightsquid Samba firewalld systemd Mobile libvirt Remote desktop WiFi Iptables NAT Postfix Dovecot Удаление данных Софт Безопасность Winbox User agent Хостинг Передача данных Онлайн сервисы Privacy LetsEncrypt VPN сервер Настройка прокси RRDTool sendmail Rsync Linux SSH Система Windows Синхронизация Облако fail2ban FreeBSD
Программа шифрования PGP

В результате борьбы с терроризмом и отмыванием денег во многих странах, в том числе и в Украине, были приняты законы, которые обязывают интернет-провайдеров архивировать переписку своих клиентов. Спецслужбы крупных государств сканируют электронную почту в поиске подозрительных ключевых слов и фраз. Вот лишь несколько таких государственных программ: международная система ECHELON (США и другие), проект Carnivore (США), системы СОРМ и СОРМ-2 (Россия).
Агенты спецслужб или другие заинтересованные лица могут не только перехватить любое ваше сообщение но и изменить его содержание, а затем отправить его так, как будто с ним ничего не произошло. Обратный адрес и служебные заголовки письма легко подделываются и модифицируются. Научно-технический прогресс облегчил задачу слежения за электронной перепиской, но этот же прогресс позволяет эту переписку надежно защитить.
Соответственно, если вы являетесь владельцем оффшорной компании или планируете зарегистрировать оффшор, вам следует уделять особое внимание защите конфиденциальности переписки.
Как защититься?
В Интернете можно найти массу средств защиты данных. Разобраться в этом многообразии нелегко. Вот несколько простых советов:
- Выбирайте программы, которые существуют как можно дольше.
- Отдавайте предпочтение программам, исходный код которых является открытым (Open Source).
- Стойкость программы должна основываться на невозможности подобрать ключ, а не на секретности алгоритма шифрования.
- Старайтесь найти о программе как можно больше отзывов незаинтересованных лиц.
Криптография очень консервативна. Новые средства шифрования не считаются надежными до тех пор, пока их тщательно не разобрали «по косточкам» профессиональные криптоаналитики. Для этого им должен быть доступен исходный код этих программ. Разработчики коммерческих программ этот код не публикуют из-за опасений, что конкуренты воспользуются их идеями. Поэтому программы с закрытым исходным кодом не пользуются доверием у специалистов. Опасность применения таких программ состоит в том, что гипотетически за закрытым кодом разработчиками может быть спрятан потайной «черный ход» (backdoor) — возможность взломать шифр, даже не зная пароля. Именно исходя из этих соображений гораздо предпочтительней пользоваться для целей шифрования программами с открытым исходным кодом.

Самым распространенным средством защиты информации в последние годы стали программы реализации стандарта шифрования PGP (Pretty Good Privacy). Устойчивость PGP базируется на некоторых фундаментальных нерешенных математических задачах.
Создатель первой программы PGP, Филипп Циммерман, открыто опубликовал ее код в 1991 году. С тех пор программу неоднократно исследовали криптоаналитики высочайшего класса и ни один из них не нашел в используемых методах шифрования слабых мест. При соблюдении простых правил взломать ее практически невозможно.
Со временем данный проект был коммерциализирован. В 2010-м году корпорация Symantec выкупила PGP у разработчиков за 300 млн. долларов и с тех пор предлагает пользователям коммерческие версии программы с расширенной функциональностью. Мы настоятельно не рекомендуем использовать коммерческую версию PGP, поскольку ее исходный код, естественно, уже закрыт.
В качестве альтернативы еще в 1999 году Фондом свободного программного обеспечения была создана свободная реализация шифрования PGP под названием GnuPG. Данная программа имеет открытый исходный код и полностью совместима с другими версиями PGP. Проект GnuPG находится в процессе развития и группа разработчиков-энтузиастов по сей день продолжает работу над ее усовершенствованием.
Скачать дистрибутив программы GnuPG можно по следующим ссылкам:
- Версия для Windows — Gpg4Win
- Версия для Mac OS — GPG Suite
- Версия для Android — GPG Guardian project
- Версии для других операционных систем — на сайте GnuPG
Принцип шифрования PGP
Шифрование PGP построено на принципе несимметричной криптографии. Вкратце это означает следующее. Сообщение, зашифрованное одним ключом, может быть расшифровано только другим, взаимосвязанным ключом. Эти два ключа образуют пару — публичный и секретный. Такая пара ключей есть у каждого участника переписки. Главное преимущество PGP состоит в том, что для обмена зашифрованными сообщениями пользователям нет необходимости передавать друг другу тайные ключи.
Хотя ключ, которым шифруется текст сообщения, доступен посторонним, с его помощью это сообщение расшифровать невозможно. Этот ключ называется публичным. Пользователи могут открыто посылать друг другу свои публичные ключи через Интернет. При этом риска несанкционированного доступа к их конфиденциальной переписке не возникает.
Секретный ключ тщательно оберегается от посторонних. С помощью секретного ключа получатель дешифрует сообщения, которые были зашифрованы его публичным ключом. Но даже заполучив секретный ключ, противник не сможет им воспользоваться, не зная пароля.
Проиллюстрируем принцип работы PGP
Имеются два собеседника, желающих сохранить конфиденциальность своей переписки. Назовем их Алиса и Борис.
1. Оба собеседника установили программу и каждый из них сгенерировал по паре ключей — один публичный и один секретный.
2. После чего Алиса и Борис по открытому каналу обмениваются своими публичными ключами. В результате у каждого собеседника получается следующий набор ключей:

3. Алиса пишет сообщение, зашифровывает его публичным ключом Бориса и отправляет адресату. Борис получает зашифрованное сообщение и открывает его своим секретным ключом:

4. Борис пишет ответ, зашифровывает его публичным ключом Алисы и отправляет Алисе. Алиса получает зашифрованный ответ и открывает его своим секретным ключом:

Что делает PGP?
Шифрование PGP решает три задачи конфиденциального обмена информацией:
- Защищает текст сообщений от посторонних. То есть прочитать сообщение может только человек, у которого есть секретный ключ и который знает пароль.
- Подтверждает получателю целостность приходящего сообщения. То есть дает уверенность в том, что при передаче содержание сообщения не изменилось.
- Подтверждает личность отправителя. Встроенная в PGP электронная подпись однозначно идентифицирует отправителя, поскольку только он имеет доступ к секретному ключу и знает пароль.
Как работает PGP?
Прежде чем зашифровать сообщение отправитель определяет получателя. Программа находит публичный ключ получателя (для этого он должен быть в файле публичных ключей на компьютере отправителя).
Перед шифрованием PGP сжимает текст сообщения. Это ускоряет передачу и увеличивает надежность шифрования. Затем генерируется так называемый сессионный (одноразовый) ключ, который представляет собой длинное случайное число. С помощью сессионного ключа шифруется текст сообщения. Текст сообщения шифруется с помощью алгоритма симметричного шифрования. В этом алгоритме для шифрования и дешифрования используется один ключ. Поэтому для дешифрования сообщения получатель тоже должен иметь этот сессионный ключ. Однако отправлять этот ключ в открытом виде небезопасно, поэтому он шифруется публичным ключом получателя. Зашифрованный сессионный ключ отправляется получателю вместе с зашифрованным текстом. Необходимость использовать симметричный алгоритм шифрования обусловлена его высокой скоростью.
Расшифровка сообщений происходит в обратной последовательности. На компьютере получателя программа использует его секретный ключ для расшифровки сессионного ключа. С помощью этого ключа дешифруется текст сообщения.
Ключи
Ключ — это число, которое программа использует для шифрования и дешифрования текста. Размер ключа измеряется в битах. Чем больше ключ, тем его сложнее взломать (подобрать). Сегодня в публичной криптографии заведомо устойчивыми считаются ключи длиной 2048 бита и больше.
Несмотря на то, что публичный и секретный ключи взаимосвязаны, получить закрытый ключ имея открытый ключ, очень сложно. Это возможно если длина ключа невелика и у противника есть компьютеры большой мощности. Поэтому важно выбирать ключи большого размера. С другой стороны, слишком длинный ключ замедляет расшифровку сообщений. Поэтому следует соблюдать золотую середину. Вполне достаточно, если подбор будет занимать несколько десятков или сотен лет. На современном уровне развития компьютерных технологий ключи длиной 2048 — 4096 бита взломать практически невозможно.
Ключи хранятся на жестком диске вашего компьютера в виде двух файлов: одного для публичных ключей, а другого — для секретных. Эти файлы называются «связками» ключей (Keyrings). Публичные ключи ваших корреспондентов будут «цепляться» на связку публичных ключей. Ваши секретные ключи хранятся в файле секретных ключей. Хранить его нужно особенно тщательно. Потеряв секретный ключ, вы не сможете расшифровать адресованную вам информацию, которая была зашифрована вашим публичным ключом.
Цифровая подпись
Цифровая подпись позволяет получателю удостовериться в личности отправителя сообщения. Она исполняет ту же самую функцию, что и обычная подпись. Однако обычную подпись можно подделать. Цифровую же подпись подделать практически невозможно.
Подтверждение целостности сообщения — хэш-функция
По пути от отправителя к получателю содержимое сообщения может быть изменено. В программе предусмотрена проверка целостности сообщения. Для этого используется так называемая хэш-функция. Это алгоритм преобразования текста произвольного размера в некоторое небольшое число. Такое преобразование совершенно однозначно, то есть при любом изменении данных, пусть даже на один бит, результат хэш-функции тоже изменится.
Перед шифрованием сообщения программа рассчитывает его хэш-функцию и шифрует ее секретным ключом. Результат шифрования и является цифровой подписью. Цифровая подпись передается почтовой программой вместе с текстом. Программа на компьютере получателя расшифровывает хэш-функцию, после чего рассчитывает хэш-функцию текста сообщения. Если хэш-функция, полученная от отправителя и рассчитанная на месте совпадают, то это означает, что сообщение по пути не менялось. Далее текст сообщения дешифруется с помощью секретного ключа получателя.
Затем программа проверяет какой из публичных ключей подходит для расшифровки результата хэш-функции. Если это оказался ключ отправителя, то получатель может быть уверен, что сообщение подписал владелец секретного ключа или человек, которому этот ключ и пароль стали доступны.
Извлечь подпись из одного документа и вложить в другой, либо изменить содержание сообщения так, чтобы оно по-прежнему соответствовало цифровой подписи, невозможно. Любое изменение подписанного документа сразу же будет обнаружено при проверке подлинности подписи.
Пароль
Шифрование PGP обладает еще одним уровнем защиты. Чтобы воспользоваться секретным ключом недостаточно иметь доступ к файлу секретных ключей. Для этого необходимо знать пароль.
В программах реализации PGP пароль называется «парольной фразой» (Passphrase), хотя она может состоять и из одного слова. Однако помните, что использование слишком коротких паролей значительно увеличивает риск их взлома.
Существует три наиболее популярных метода взлома пароля:
- Метод «словарной атаки» (Dictionary Attack) — последовательный перебор всех слов языка в различных регистрах.
- Метод «грубой силы» (Brute Force) — последовательный перебор всех возможных комбинаций всех символов.
- Метод «гаечного ключа» (другие варианты названия: метод «резинового шланга» (Rubber-hose Cryptanalysis), «терморектальный криптоанализ», «бандитский криптоанализ») — использование для взлома пароля слабейшего звена системы защиты информации, коим является человеческий фактор. Применяя этот метод, «криптоаналитик» прибегает к угрозам, пыткам, шантажу, вымогательству, взяточничеству и другим некорректным мерам воздействия на человека, который знает пароль. Это можно проиллюстрировать карикатурой:

Описание мер противодействия методу «гаечного ключа» выходит за рамки данной статьи. В этих вопросах вам могут помочь специалисты по обеспечению физической безопасности. А вот для борьбы с первыми двумя методами достаточно соблюдать несложные правила выбора пароля:
- Использовать слова, которые можно встретить в словаре любого известного языка.
- Использовать даты рождения, фамилии и имена родственников, клички домашних животных и прочие легко угадываемые наборы символов.
- Использовать осмысленные слова одного языка, набранные в раскладке клавиатуры для другого языка.
- Записывать пароль (особенно в личных записных книжках или оставлять его вблизи компьютера).
- Выбирать длину пароля более 8 символов (если он состоит из случайного набора буквенно-цифровых символов и знаков препинания).
- При использовании в пароле осмысленных слов увеличить его длину до 16-20 символов. Слов при этом должно быть несколько.
- При использовании осмысленных слов делать в них ошибки, вставлять знаки препинания, менять регистр.
Пароль необходимо запомнить. Если вы его забудете, то уже никогда не сможете восстановить информацию зашифрованную этим ключом. Без знания пароля ваш секретный ключ совершенно бесполезен.
Как начать использовать PGP
- Установите программу на свой компьютер. Как правило, ее установка затруднений не вызывает.
- Создайте секретный и публичный ключи.
- Разошлите свой публичный ключ своим корреспондентам и получите их публичные ключи. По умолчанию после генерации ключей программа предлагает отправить свой публичный ключ на сервер ключей. Сделайте это. Ваш публичный ключ станет доступным всем желающим.
- Внесите ключи своих корреспондентов в файл публичных ключей. Для этого достаточно дважды кликнуть мышью по файлу ключа. Программа сама предложит импортировать этот ключ.
- Убедитесь в подлинности публичных ключей ваших корреспондентов. Для этого свяжитесь с корреспондентом и попросите его прочитать вам по телефону так называемый «Отпечаток» (Fingerprint) — уникальный идентификационный номер его публичного ключа. Сообщите ему также отпечаток своего публичного ключа. Как только вы убедитесь в том, что ключ действительно принадлежит ему, вы можете пометить его как доверенный. Подтвердить подлинность публичного ключа также может третье лицо, которому доверяет каждый из корреспондентов.
- Шифрование сообщений и цифровая подпись. После генерации пары ключей и обмена публичными ключами с вашими корреспондентами вы можете начинать конфиденциальную переписку. Если вы используете почтовую программу, которая поддерживает шифрование PGP, то процессы шифровки и дешифровки корреспонденции, а также проверка подлинности отправителя происходят почти автоматически. Программа только спросит у вас пароль вашего секретного ключа.
Еще по теме
- Защита электронной почты
- Анонимная операционная система TAILS