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

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



Шифрование GPG (GnuPG, ex PGP)

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

Теги: Шифрование Безопасность Передача данных

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

Для защиты информации (с возможностью ее передачи по электронной почте или на физическом носителе) от чужих глаз используется несколько основных методик:

  • криптоконтейнеры (например, VeraCrypt)
  • зашифрованные файлы
  • зашифрованные сообщения, передаваемые в открытом текстовом сообщении

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

Кратко рассмотрим использование GnuPG как средство шифрования текстовых сообщений.

 

Итак, GnuPG.

GnuPG

Веб-сайт: https://www.gnupg.org
Реализация для Windows: https://www.gpg4win.org
Распространение бесплатно

GNU Privacy Guard, совместимый с OpenPGP, созданный Фондом СПО на базе PGP, востребован и стабильно развивается на протяжении многих лет. На февраль 2020 года актуальная версия 3.1.11, в которой заявлены улучшения в плагине к Outlook GpgOL, в основном модуле Kleopatra и др.

 

Установка GPG

Скачиваем, устанавливаем :).

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

Соглашаемся, вводим необходимую информацию, программа сгенерирует пару секретного/открытого ключей:

GPG key creation variants

GPG - Key creation (2)

GPG - Key creation - set secret

Фразу-пароль ключа необходимо беречь как зеницу ока! Этот пароль - защита всей вашей переписки, возможно, на долгие годы вперед. Пароль должен быть сложным и не словарным.

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

Все, установка и создание ключа закончены. Открытый ключ можно отправить по электронной почте, опубликовать (но, как программа вас предупредит, отозвать опубликованный открытый ключ будет крайне трудно, поэтому подумайте, оно вам сразу надо или нет).

 

Шифрование текста

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

Запускаем: Пуск - Kleopatra.

Рядом с часами внизу экрана появиось стилизованное изображение женщины с красными волосами. Так, программа запущена.

Наберем текст для ширования. Удобно это сделать в самом приложении Kleopatra в модуле "Блокнот":

GPG - Kleopatra - Message creation

Для примера, пусть это будет слово "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 и сможет расшифровать полученное от вас сообщение следующим образом (считаем, что ключ импортирован):

  1. Копируем полученное зашифрованное сообщение в буфер обмена и вставляем его в модуль "Блокнот" Kleopatra.
  2. Жмем "Расшифровать/Проверить" (Decrypt/Verify)
  3. Программа попросит ввести пароль ключа и отобразит расшифрованное сообщение.

Напомню, что копировать шифрованный текст необходимо полностью, от -----BEGIN ... и до END PGP MESSAGE-----

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

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

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

 

Подпись GPG

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

Kleopatra >  Файл > Подписать / Зашифровать [файлы]

Выбираете файл (например, file.doc), выбираете сертификат подписи, убираете все галочки, оставив только выбранный сертификат подписи и жмете "Подписать". Будет необдим пароль приватного ключа.

После успешного завершения в той же папке, что и нужный файл, будет создан файл file.doc.sig (с расширением .sig). Двойной клик на нем и если с расширением .sig ассоциирована программа Kleopatra, то октроется окно, в котором будет написано, что файл подписан тем-то, тогда-то.

Исхдный файл и файл подписи должны быть в одной папке при проверке. Имя файла подписи должно быть такое же, как и исходный файл, просто добавляется .sig. Если переименовать файл подписи, то проверить кликом мышки уже не выйдет.

Попробуйте изменить хоть немного оригинальный файл - проверка покажет, что файл уже не тот.

Это можно использовать при скачивании файлов - вы предоставляете файл и файл его подписи. Подменить файл подписи не выйдет, ведь незаметно переподписать, не зная пароля приватного ключа, не возможно.

 

PS:

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-----

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


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