Как расшифровать pgp файл

Обновлено: 07.07.2024

Шифрование PGP

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

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

PGP основана на криптографической системе, известной как открытый ключ, которая может быть использована на ненадежных каналах. Это делает ее идеальной для обеспечения защиты информации, передаваемой по таким сетям, как Internet.

В системах с открытым ключом каждый из участников информационного обмена имеет два ключа, взаимно дополняющих друг друга; один является открытым ключом, а другой закрытым. Открытый ключ может и должен быть свободно доступным, так как он является именно тем ключом, который отправитель использует для шифрования передаваемой Вам информации. Закрытый ключ ни в коем случае не должен распространяться. Именно он гарантирует безопасность передаваемых данных.

Как это работает

Возьмем для примера двух друзей - Сергея и Максима. У Сергея есть открытый ключ Максима. Он шифрует письмо с помощью этого ключа и отправляет. Теперь только Максим сможет прочитать это письмо, потому что закрытый ключ находится только у него. Даже Сергей уже не может прочитать свое собственное, но уже зашифрованное письмо.

Аутентификация

На наших машинах установлены две версии 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 в виде файлов: pubring.pgp и secring.pgp. Первый, pubring.pgp, является файлом с открытыми ключами, secring.pgp - файл с закрытыми ключами На данный момент эти файлы содержат только открытый и закрытый ключи их создателя. Необходимо помнить, что безопасность методов открытого ключа опирается на безопасности закрытого ключа, поэтому обязательно хранить его в надежном месте и следить за тем, чтобы никто не смог его получить. Установите такие права доступа к файлу secring.pgp, чтобы только Вы могли читать и записывать в него. Редактировать и изменять, и идентификаторы ключей и пароли закрытых ключей можно с помощью команды:

pgp -ke идентификатор [файл с ключами]

Добавление ключей в файл

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 -es файл идентификатор_получателя мой_идентификатор

Для кодирования файла используется открытый ключ, идентифицируемый подстрокой "идентификатор_получателя", поэтому только этим ключом можно декодировать этот файл. Затем идентифицируем закрытый ключ строкой "мой_идентификатор", так как в нашем наборе есть несколько ключей. Даже в этом случае можно создать файл в формате ASCII, используя опцию -a.

Расшифровка

Для расшифровки файла и/или проверки его подписи используется команда:

pgp входной_файл [-o выходной_файл]

По умолчанию предполагается, что входной файл имеет расширение .pgp. Имя файла, который получится в результате декодирования, является необязательным параметром. Если выходной файл не указан, расшифрованный файл будет сохранен в файле входной_файл без расширения .pgp.

Также можно просто просмотреть расшифрованный файл без сохранения:

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

Стоит ли подвергать личную переписку возможной огласке, когда существуют средства шифрования?


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

В конце концов полнофункциональная версия PGP стала доступной для широкого круга пользователей во всем мире. Фонд свободного программирования разработал собственную OpenPGP-совместимую программу под названием GNU Privacy Guard (GnuPG, или сокращенно GPG), которая свободно распространяется и имеет все необходимые библиотеки, используемые для шифрования, дешифрования и подписи документов и файлов. Эта система может применяться для широкого спектра задач, доступна везде и довольно проста в применении за счет использования графического интерфейса.

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

К этому моменту вы уже явно заинтересовались и готовы хотя бы просто посмотреть, что такое PGP/GPG, и узнать, для чего это может пригодиться вам. В асимметричной криптографии нам нужно иметь два раздельных ключа, один из которых будет частным (закрытым, используемым для шифрования или подписи), а другой публичным (открытым, для шифрования первичного текста или проверки цифровой подписи). Совсем не обязательно вникать во все тонкости, но помните, что все знания и нужный опыт придут к вам в процессе ежедневного использования. Тем не менее мы рассмотрим основные понятия криптографии с публичным ключом, чтобы вы могли чувствовать себя более комфортно, осваивая новые инструменты шифрования.

Нет никаких ограничений по использованию PGP/GPG, так как инструмент доступен на всех операционных системах.

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

Нет никаких ограничений по использованию PGP/GPG, так как инструмент доступен на всех операционных системах. Как уже упоминалось ранее, мы имеем дело с доступной системой GNU PG, однако есть и специализированные наборы, работающие под какой-то одной операционной системой. Для Mac OS мы имеем GPG-пакет, который содержит плагин для Mail, модуль для управления всеми ключами, систему шифрования/дешифрования и цифровой подписи, проверки текстов и файлов и много чего еще. Имеется и MacGPG — инструмент для управления PGP при помощи командной строки. Если же у вас Windows, то для этой системы имеются аналогичные компоненты в пакете по имени GPGWin.

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

Когда вы создаете новую пару ключей с помощью PGP, вы должны будете выбрать длину ключа и фразы, которая защитит ключ. Чем больше эта длина, тем больше времени занимает процесс генерации ключа, однако это делается всего лишь один раз, поэтому стоит потерпеть. А я вам советую выбирать длину не менее 4096 бит, а для максимальной безопасности лучше взять 8192 бита. Надеюсь, вы достаточно терпеливы, чтобы дождаться окончания процесса создания ключа, так как наша система генерации раздельна для PGP и GPG.

PGP использует пару ключей — публичный и частный. Держите частный в тайном месте и не стесняйтесь предлагать публичный всем вокруг.

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

Настройка PGP в почтовом клиенте

Итак, мы узнали, как непросто начиналась система PGP, изучили основы безопасности и получили некоторые рекомендации по работе с PGP. Я надеюсь, это послужит хорошим толчком для того, чтобы попробовать это шифрование и использовать его в дальнейшем. О своей конфиденциальности в Сети мы должны заботиться сами, а с таким инструментом сделать это намного проще. Вы будете благодарить себя за то, что нашли силы и время, чтобы сделать первый шаг к личной безопасности.

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

Img

В каждой папке появляется записка FILES ENCRYPTED.txt примерно такого содержания:

Img

Техническая поддержка Лаборатории Касперского, Dr.Web и других известных компаний, занимающихся разработкой антивирусного ПО, в ответ на просьбы пользователей расшифровать данные сообщает, что сделать это за приемлемое время невозможно.

Но не спешите отчаиваться!

Дело в том, что, проникнув на Ваш компьютер, зловредная программа использует в качестве инструмента совершенно легальное ПО для шифрования GPG и популярный алгоритм шифрования — RSA-1024. Так как эта утилита много где используется и не является вирусом сама по себе, антивирусы пропускают и не блокируют ее работу. Формируется открытый и закрытый ключ для шифрования файлов. Закрытый ключ отправляется на сервер злоумышленников, открытый остается на компьютере пользователя. Для дешифрации файлов необходимы оба ключа! Закрытый ключ злоумышленники тщательно затирают на пораженном компьютере. Но так происходит не всегда. За более чем трёхлетнюю историю безупречной работы специалисты Dr.SHIFRO изучили тысячи вариаций деятельности зловредов, и, возможно, даже в, казалось бы, безнадёжной ситуации мы сможем предложить решение, которое позволит вернуть Ваши данные.

На этом видео Вы можете посмотреть реальную работу дешифратора на компьютере одного из наших клиентов:

КОММЕНТАРИИ (2)

Файлы зашифровались вирусом DHARMA с расширением WIKI. Знакомые посоветовали обратиться в Dr.SHIFRO. Главной проблемой было то, что зашифровалась и SQL база данных 1С размером в 35 Гбайт. И это накануне сдачи отчетности! Очень волновались - заработает ли 1С после расшифровки. Но все отлично - база восстановлена полностью. Спасибо огромное за помощь!

Подхватили шифровальщик dharma или его разновидность через сервер, который все зашифровал включая (спасибо сисадмину) бэкапы которые были на том же сервере. 4 дня пытались решить вопрос самостоятельно не получилось, хотя в принципе как мне кажется это реально. К злоумышленникам решил не обращаться из-за возможных рисков. Компания доктор шифро в лице Игоря Николаевича находится практически сразу, так же как и положительные отзывы о его работе. Попробивав что да как, убедился что он "живой", известный, данные свои не меняет и не скрывает перевёл 100% суммы на карту, так как сам в СПб а он в мск, но что-то в тот вечер пошло не так и расшифровку перенесли на завтра, для моего спокойствия он пепевел всю сумму мне обратно)) На следующий день, по тимвьюверу часа за 2-3 все сделали, сис админ потом ещё пару дней потратил на настройки чего-то там, но это уже обычная практика.


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

Для начала установим программу gpg4win. После этого появляется менеджер ключей Kleopatra:


При помощи этой утилиты мы будем выписывать сертификаты. Её преимущество в том, что сертификат затем можно будет загрузить на сервер ключей, а при переустановке программы на другой компьютер просто импортировать необходимые ключи с сервера.

Создаём сертификат. В меню «Файл» выбираем пункт «Создать новую пару ключей»:


Выбираем тип сертификата — OpenPGP:


Затем нужно задать имя и адрес электронной почты. В дополнительных параметрах можно выбрать криптографические алгоритмы:


Обязательно обратите внимание, какие параметры будут у полученной ключевой пары:


При создании ключей необходимо будет задать пароль для защиты информации:


Когда создадутся ключи, лучше на всякий случай сделать их резервную копию и хранить её у себя:


Ещё советую создать сертификат отзыва. С его помощью в дальнейшем можно будет сделать ваш сертификат недействительным, если понадобится.


В принципе, на этом этапе уже можно работать. Но для начала неплохо бы опубликовать сертификат на сервере ключей, чтобы иметь к нему доступ из любого места. Сделать это можно, выбрав из списка нужный сертификат и соответствующий пункт в меню «Файл»:


Теперь мы можем зашифровать или расшифровать файл, подписать его и проверить подпись.

Шифруем файл при помощи OpenPGP

Выбираем сертификат, жмём кнопку «Подписать / зашифровать». В открывшемся окне указываем файл для шифрования.


Теперь надо выбрать, для кого мы шифруем файлы.


Потом вводим пароль для сертификата — и всё, файл зашифрован. Можно открыть его в текстовом редакторе и посмотреть:


Расшифровываем файл

В Windows для расшифровки достаточно двойного клика по созданному зашифрованному файлу. Если в системе установлена Kleopatra, то ассоциация файлов настраивается автоматически и программа сама запускается.



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

Интеграция с электронной почтой

Установите в систему PGP и настройте сертификаты шифрования, как обговорили выше. И можно перейти к настройке почтового клиента.

Чтобы установить Enigmail в Thunderbird, выберите меню «Инструменты» — «Дополнения». Далее найдите Enigmail и выполните инструкции:


Теперь мы можем создать новое письмо — при этом в меню появится пункт Enigmail. Настройки программы разнообразны и находятся в меню Enigmail — Preferences:


В настройках вы можете проверить, есть ли в системе GnuPG (ссылка выше). Это критически важно.


Сценарий 1: если вы ранее создали ключи и экспортировали их на сервер. В этом случае в Enigmail их можно получить с сервера. Добавляем в Thunderbird учётную запись почты, для которой были сформированы ключи. При создании письма у вас появится меню Enigmail, в котором можно будет импортировать ключи в систему:


Если щёлкнуть правой кнопкой мыши по полю с именем ключа, то попадём в контекстное меню с основными операциями, которые можно выполнить с сертификатами:


Теперь составляем письмо и выбираем в меню Enigmail пункты Sign Message и Attach my public key.


Возможно, придётся указать, как подписать письмо. Выбирайте строчку с PGP.


Адресат теперь получит подписанное письмо и сможет импортировать себе ключ отправителя.


Как только он сделает это, сможет проверить подлинность подписи.


Сценарий 2: если ключи не были созданы. В этом случае их можно будет сгенерировать прямо в Enigmail. Это делается с помощью мастера настройки согласно руководству или вручную.

Для тестирования мы будем использовать тестовый почтовый сервер на виртуальной машине с условным доменом (неважно каким). Создадим ключи для учётной записи pc1@”имя домена” и отправим его по адресу pc2@”имя домена”.


Теперь в открывшемся окне выбираем Generate — New Key Pair:


В следующем окне надо задать параметры ключей. Особенно важен их срок жизни — стоит реально оценить, насколько необходимо делать его долгим:


По завершении процесса система посоветует сгенерировать сертификат отзыва. Напомню: он пригодится, чтобы пометить сертификат как недействительный:


Система спросит пароль от сертификатов:



Получатель может импортировать себе открытый ключ отправителя. После этого письмо можно будет проверить:


Теперь встанем на место пользователя — сгенерируем открытый ключ для пользователя pc2 (аналогично pc1):





Если оба нужных ключа у отправителя есть, то они прикрепляются к письму автоматически. Причём можно ещё и заменить строку с темой письма на невнятный текст. Вот так будет выглядеть для получателя зашифрованное (но не расшифрованное) и подписанное письмо:


Вводим пароль и видим открытый текст:


Письмо было подписано, подпись проверена и расшифрована.

Итоги и рекомендации

Мы научились защищать свою почту с помощью шифрования. Электронная подпись генерируется закрытым ключом отправителя, а проверяется по открытому ключу отправителя. Шифрование осуществляется открытым ключом получателя, а дешифрование — закрытым ключом получателя.

Несколько советов:

  • Всегда создавайте сертификаты отзыва — так вы сможете легко сделать недействительными свои сертификаты, если потребуется.
  • Используйте серверы хранения ключей (если вас не мучает паранойя, что они могут быть известны третьим лицам).
  • Не разбрасывайтесь ключами — не нужно их рассылать кому попало :)
  • Пользуйтесь менеджером ключей — так вы сможете эффективнее ими управлять.

Источники:

Напоминаю ссылку на первую часть статьи, где мы рассмотрели теоретическую часть и базовую работу с шифрованием.

Читайте также: