Що таке PGP (GPG) і як із ним працювати/шифрувати емейли на прикладі Mailvelope.

PGP (Pretty Good Privacy) програма/бібліотека для шифрування. Назва каже сама за себе. Кажуть за надійністю близька до стандартів армійського шифрування. Часто використовується для шифрування емейлів (що ми і розглянемо в цьому пості) але можна шифрувати і файли. Едвард Сноуден використовував саме PGP для спілкування з журналістами.

GPG або GNU Privacy Guard – відкрита версія стандарту PGP

Існує симетричне і асиметричне шифрування. GPG підтримує обидва способи. Що це таке?

Симетричне. Шифрування відбувається одним і тим же ключем. Тобто: зашифрували файлик ключиком ‘А’ а потім для розшифрування потрібен цей самий ключик ‘А’.

Уявіть собі скриньку із вбудованим замком. Туди ви кладете ваш лист. Закриваєте її на ключ і пересилаєте її вашому адресату. У адресата є копія цього ключа який зможе відкрити цю скриньку.

Інший приклад. Закрили важливі документи в сейфі і в таємному місці зберігаєте ключ до сейфа.

Асиметричне. Тут вже цікавіше. В такому випадку відбувається генерація пари – двох ключів: private key (секретний ключ, тільки для вас) і public key (публічний, загальнодоступний для всіх).

Тепер уявіть що в особи є один ключ і багато однакових замочків з такими функціями:

  • Замочок автоматично закривається (захлопується) без ключа.
  • На кожному замочку написано ім’я власника.
  • Всі замочки може відкрити один ключ. Цей ключ є тільки у власника.

Далі припустимо, що у нас є троє людей які хочуть приватно між собою спілкуватися. Назвемо їх Антон, Богдан, Віра. Кожен із них згенерував собі пару ключів, тобто має багато однакових замочків і один ключ який ці замочки відкриває. Майте на увазі у кожного з персонажів свої індивідуальні замочки і ключі.

gpgДля приватно спілкуватися Антон передає Вірі і Богдану свої замочки. Так само поступають Віра і Богдан. Всі вони обмінюються своїми замочками. Після цього для прикладу у Богдана крім своїх ключа і замочків є ще й замочки від Антона і Віри.

Настав час і Богдан вирішив написати приватного листа Вірі. Він пише звичайний лист і кладе його у коробку. А коробку закриває замочком від Віри. Замочок захлопнувся. Все, тільки власниця замка зможе його відкрити. Богдан бере цю закриту коробку і пересилає звичайною поштою. Під час пересилки потенційні зловмисники бачать замок на коробці і розуміють, що без ключа до вмісту коробки не доберуться. Віра отримавши коробку відкриває її своїм ключем і читає повідомлення.

Тепер бажаючи відповісти Богдану вона пише листа. Кладе його у коробку і зверху вішає замочок Богдана на коробку і відсилає його Богданові. Тепер тільки Богдан зможе відкрити і прочитати те, що там написано.

’Замочок’ це public key

’Ключик’ це private key

Отже, Антон коли пише листа Богдану то зашифрує повідомлення за допомогою public key Богдана. Богдан після отримання  повідомлення від Антона розшифрує його своїм private key.

gpg2

Тепер трішки практики

Інструмент для роботи – Mailvelope

Качаємо для Firefox (рекомендовано), але є варіант і для Chrome.

https://addons.mozilla.org/en-US/firefox/addon/mailvelope/

Встановлюємо і натискаємо на значку(замочок і ключик) і тиснемо кнопку options

open_mailvelope

Генеруємо ключ.
Вводимо свої дані і придумаємо сильний пароль.

Screenshot from 2015-04-01 20:47:13

Заходимо Display Keys -> клікаємо на нашу згенеровану Пару ключів. (’Ключ’ + ’Замочок’)-> Export -> Public -> копіюємо цю всю абрукадабру або тиснемо Download і ця абракадабра збережеться для нас у файлику.
Це і є ’Замочок’ який ми повинні надіслати нашим контактам.
ТІЛЬКИ УВАЖНО. Це має бути PUBLIC !!!

Screenshot from 2015-04-01 20:53:38

І тепер навпаки. Коли вам хтось присилає свій “Замочок” (свій public key) його потрібно імпортувати до свого сховища.
І відповідно ви або копіюєте тест ключа (абрукадабру) або вибираєте файлик і його підвантажуєте у броузері.
Далі тисніть submit
Так ви приймете чийсь “Замочок” і ним зможете для цієї особи шифрувати листи.

Screenshot from 2015-04-01 21:01:46

Зараз напишемо листа, зашифруємо його і відішлемо його на прикладі пошти Gmail.

Створюємо новий лист в Gmail.
Пишемо адресу отримувача, тему (все як зазвичай), а в полі де писати повідомлення
натискаємо значок блокнотика з жовтим олівцем.

Screenshot from 2015-04-02 16:52:51

Вводимо повідомлення яке буде зашифроване. І натискаємо encrypt

Screenshot from 2015-04-02 16:53:20

Далі вибираємо зі списку людину якій адресується повідомлення.
Тобто ви вибираєте ’Замочок’ (public key) тієї людини якій ви адресуєте листа. (Перед тим ви б мали додати ці ’замочки’ в сховищі, як описано в попередніх кроках. Якщо ви цього не зробили, то в списку буде лише ваш ’замочок’ і зашифрувати ви зможете лише самі для себе.)
Коли вибрали то натисніть Add і потім OK

Screenshot from 2015-04-02 16:53:32

Ваше повідомлення зашифрується у щось подібне, як на малюнку і тепер тільки власних ’Ключа’ до цього ’замочка’ зможе розшифрувати це повідомлення. Навіть ви назад його не зможете розкодувати.
Натискайте Transfer і це все скопіюється в тіло листа gmail.

Screenshot from 2015-04-02 16:53:39

Ось тепер ваше зашифроване повідомлення готове до відправлення через gmail.
Відправляйте!

Screenshot from 2015-04-02 16:53:47

Коли вам хтось надішле таке повідомлення то ви наведіть мишкою на нього.
З’явиться конвертик і ключик. Клікніть по конвертику

Screenshot from 2015-04-02 17:11:19

Програма автоматично перевірить чи є у вас в сховищі ’Ключик’ (private key) до ’Замочка’ який висить на повідомленні яке до вас прийшло. Якщо так то запропонує  ввести пароль до нього.
(Згадайте, ви коли генерували ключі то вказували пароль)

Screenshot from 2015-04-02 17:12:25

Тиснете Ок і якщо все вірно то побачите зашифроване повідомлення

Screenshot from 2015-04-02 17:12:57

Дякую за увагу