Шифрование электронной почты

OpenPGP для почтовых клиентов на примере Thunderbird и Outlook

7 мин

Шифрование электронной почты

Пошаговая инструкция по настройке end-to-end шифрования ваших email.

Зачем шифровать письма

...ведь их передача происходит в шифрованном виде (SSL/TLS), что может пойти не так? Акцент тут ставится на слово "передача", т.к. способ их хранения известен только администратору почтового сервера. Зачастую хранение происходит в открытом виде, чтобы сэкономить вычислительные мощности. Ну и, конечно, админ почтового сервера имеет уровень доступа, позволяющий ему прочесть вашу переписку.

Что получим на выходе?

E2EE (end to end encryption) подразумевает шифрование данных между отправителем и получателем (или между их почтовыми клиентами, если быть точным). Т.е. помимо существующей шифрованной передачи в рамках SSL/TLS сессии, само тело передаваемого письма будет зашифровано открытым ключом получателя.

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

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

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

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

Поддерживаемые OpenPGP операционные системы и почтовые клиенты можно посмотреть тут: https://www.openpgp.org/software/

Генерируем пару ключей для шифрования почты

В примере я буду использовать два почтовых сервиса - Gmail (с клиентом Thunderbird) и Яндекс Почта (с клиентом Outlook). Почтовые учётки в них настроены стандартным образом без каких-то добавок и нюансов.

OpenPGP в Thunderbird
  1. В меню приложения откройте Параметры учётной записи - разверните меню соответствующего ящика и выберите Сквозное шифрование.

openpgp_thunderbird_1

  1. Нажмите Добавить ключ затем Создать новый ключ OpenPGP и Продолжить.

openpgp_thunderbird_2

  1. Если хотите сделать ключ бессрочным - установите соответствующее значение. Дефолтно ограничение включено.

openpgp_thunderbird_3

  1. Подтвердите создание ключа. Не закрывайте приложение до окончания процесса генерации.
  2. Откройте Менеджер ключей OpenPGP, ПКМ на существующий ключ и Экспорт открытых ключей в файл, сохраните файл на диск. Позже мы его опубликуем.

openpgp_thunderbird_4

  1. В меню приложения перейдите в Настройки - Приватность и защита - промотайте до Сквозное шифрование электронной почты. Включите опцию Автоматически включать шифрование, когда это возможно.

openpgp_thunderbird_5

OpenPGP в Outlook

Outlook сам по себе не восторг и не умеет OpenPGP, поэтому для его работы будем использовать надстройку.

  1. Скачайте и установите GPG4win.
  2. В открывшемся после установки приложении Kleopatra нажмите Создать пару ключей.

openpgp_outlook_1

  1. Заполните поля Имя и Адрес эл. почты. Снять ограничение срока действия можно развернув Advanced options.

openpgp_outlook_2

  1. ПКМ на созданном сертификате - Экспорт.... Сохраните файл открытого ключа на диске.

openpgp_outlook_3

Публикуем открытый ключ почтового ящика

Для хранения публичных ключей используется официальный сервер открытых ключей проекта OpenPGP.

  1. Зайдите в раздел загрузки ключей и опубликуйте свой открытый ключ.

openpgp_keys_upload

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

openpgp_keys_upload_2

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

openpgp_keys_upload_3

  1. Проверьте, что ключ вашего почтового ящика опубликован.

openpgp_keys_upload_4

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

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

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

Пишем шифрованные письма

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

openpgp_new_email_thunderbird_1

  1. Напишите письмо, при необходимости - добавьте вложения.
  2. Нажмите на панели инструментов OpenPGP - Шифровать.

openpgp_new_email_thunderbird_2

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

openpgp_new_email_thunderbird_3

  1. Отправленное письмо корректно отобразится в почтовом клиенте с ключом, а вот в веб-интерфейсе прочесть его не удастся.

openpgp_new_email_thunderbird_4

Отправка из Outlook
  1. Создайте новое письмо и укажите получателя, имеющего опубликованный ключ.
  2. Напишите письмо, при необходимости - добавьте вложения.
  3. Нажмите на панели инструментов Secure - Encrypt (опционально можете добавить Sign)

openpgp_new_email_outlook

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

openpgp_new_email_oulook_2

  1. Проверьте отправленные - письмо будет иметь соответствующую маркировку и будет читабельно. А вот в веб-интерфейсе прочесть его не удастся.

openpgp_new_email_oulook_3

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

Яблофоноводы, эта инструкция для Thunderbird на Android (для iOS его нет), но логика настройки поддерживаемых клиентов такая же.

Экспорт ключей из Thunderbird
  1. В меню приложения откройте Параметры учётной записи - разверните меню соответствующего ящика и выберите Сквозное шифрование.
  2. Разверните настройки имеющегося ключа, нажмите Больше и выберите пункт Создать резервную копию секретного ключа в файле.

openpgp_thunderbird_export_1

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

openpgp_thunderbird_export_2

  1. Сохраните файл с закрытым ключом на диск.
Экпорт ключей из Outlook (Kleopatra)
  1. Запустите Kleopatra, ПКМ на соответствующий ключ - Резервное копирование закрытых ключей.

openpgp_outlook_3

  1. Сохраните файл с закрытым ключом на диск.
Настройка на Android
  1. Установите на смартфон Thunderbird и OpenKeychain.
  2. Перекиньте выгруженный закрытый ключ на телефон удобным вам способом.
  3. Попробуйте открыть файл - Android сам предложит импортировать его в OpenKeychain.
  4. Нажмите на Импорт

openpgp_android_import

  1. Ключ появится в списке установленных.

openpgp_android_import_2

  1. Откройте Thunderbird и настройте почтовый ящик стандартным способом.
  2. После предыдущих разделов у вас в почте уже есть зашифрованное сообщение. Откройте его.

openpgp_android_1

  1. Внутри сообщения нажмите Настройки, чтобы перейти в настройки сквозного шифрования.

openpgp_android_2

  1. Включите поддержку OpenPGP и следом выберите имеющуюся пару ключей.

openpgp_android_3

  1. Вернитесь в сообщение и убедитесь, что оно успешно расшифровано.

openpgp_android_4

Туда