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

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

Шифрование почты — это способ сохранить содержимое почты от любопытных глаз, пока писмьо путешествует через интернет. Наиболее распросранёный тип шифрования – OpenGPG (OpenGPG — это характеристика, PGP — это “Pretty good privacy”, и оно проприетарно, GPG — это GNU Privacy Guard, и является свободным ПО). В интернете есть множество ресурсов, которые могут в деталях объяснить, как работает шифрование. Для наших нужд важно понимание трёх компонентов: открытый (публичный) ключ, закрытый (приватный) ключ, и парольная фраза.

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

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

Ваша парольная фраза должна быть длиной минимум 21 символ, содержать буквы верхнего и нижнего регистра и спецсимволы (&$"{@). Парольная фраза разблокирует закрытый ключ и позволяет использовать его совместно с открытым ключом для получения и отправки шифрованных писем.

Как пользоваться шифрованной почтой?

Есть три основных функции, которые вы можете выполнить с помощь GPG: подписание, шифрование и верификация.

Подписание: Когда вы что-то подписываете, используйте свою парольную фразу и закрытый ключ, чтоб сгенерировать блок подписи, прикрепляемый к подписываемому объекту. Этот блок подписи генерируется из двух вещей: (1) числовое значение, вычисляемое на основе содержания письма и (2) закрытого ключа.

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

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

Могу ли я получать и отправлять шифрованные сообщения через web-интерфейс riseup?

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

Каковы ограничения у зашифрованной переписки?

Шифрованная переписка не защитит вас от отслеживания связей, заключающегося в мониторинге взаимодействия между людьми. Например, если ihatebush@riseup.net регулярно отправляет шифрованные письма joehill@riseup.net, кто-то, кто перехватывает сообщения между ними, может не знать что именно они обсуждают, но сам факт того, что эти два человека регулярно взаимодействуют, важен уже сам по себе. К тому же, тема письма остаётся незашифрованной.

Подписание и верификация не гарантируют, что письмо реально отправлено с почтового ящика, связанного с ключом. Спуфинг обратного адреса очень прост. То есть, кто-то с адресом federalagent@yahoo.com может: (1) создать ключ для адреса joehill@riseup.net, (2) загрузить его на сервер публичных ключей и (3) отправить письмо с ящика federalagent@yahoo.com, которое будет выглядеть отправленным с joehill@riseup.net и им подписанным. Если вы просто скачали открытый ключ и проверили сообщение, программа покажет вам сообщение “хорошая подпись joehill@riseup.net”, даже если сообщение вооще пришло НЕ от joehill@riseup.net! И вот почему сеть доверия столь важна (см. ниже).

Как мне проверить идентичность обладателя ключа?

Итак, вы настроили шифрование и радостно шлёте и получаете сообщения. Но как вам убедиться, что вы на самом деле взаимодействуете именно с теми людьми? И тут в игру вступает отпечаток ключа/

Каждый открытый ключ обладает уникальным отпечатком (fingerprint). Отпечаток генерируется хеш-функцией, выглядящей как однонаправленный портал. Для каждого специфического ввода существует один и только один вывод. Отпечатки открытых ключей уникальны, как отпечатки пальцев. Почему это полезно? Потому что для того, чтоб убедиться в точ, что всё идёт хорошо, вам необходимо быть уверенным, что когда вы получаете письмо от joehill@riseup.net, вам пишет именно Джо Хилл. И есть два (ну, или три) способа в этом убедиться:

1. Вы и Джо встречаетесь лично, и Джо даёт вам электронную копию своего открытого ключа. 2. Вы и Джо встречаетесь лично и Джо даёт вам копию отпечатка ключа, чтоб вы потом могли сверить его с полученным открытым ключом. 3. (менее безопасный) Если вы хорошо знаете Джо по голосу, он может надиктовать вам отпечаток ключа по телефону.

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

Как подписать ключ и с чего бы мне это делать?

Перейдём к следующему шагу. Допустим, вы обменялись с Джо ключами в безопасной форме. Теперь вы можете безопасно переписываться с Джо, зная, что вы общаетесь именно с ним (потому чт оон подписывает письма), и зная, что содержание переписки не подделано (потому что вы шифруете вашу почту используя открытый ключ Джо). Но вот Джо встречает Риту и они тоже безопасно обмениваются ключами. Вы знаете и доверяете Джо, но никогда не встречали Риты. Как вам правильно удостовериться, что Ритин ключ не подделан, не встречаясь с ней лично?

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

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

Если вы доверяете тому, как Джо проверяет личные ключи, вы можете выставить в своей связке ключей уровень доверия для ключа Джо. Тогда, если вы никогда не встречали человека, но его встречал Джо, вы можете установить уровень доверия с ключом этого человека, основываясь лишь на том, что Джо подписал этот ключ.

Вы можете устроить key signing party, чтоб сподвигнуть ваших друзей и коллег на обмен и подписание ключей. Это открывает возможность удостовериться в личности людей, которых вы никогда не встречали, но с котороыми встречались те, кому вы доверяете.

Есть ли ещё советы касательно шифрованной почты?

Рады, что вы спросили!

  • Всегда храните ваш закрытый ключ на шифрованном разделе диска — Это сохранит ваш ключ в случае утери, кражи или конфискаци компьютера.
  • НИКОГДА не делитесь вашим закрытым ключом и не храните его на общественных компьютерах.
  • ИСПОЛЬЗУЙТЕ СЛОЖНУЮ ПАРОЛЬНУЮ ФРАЗУ — ваша парольная фраза — это ваша последняя линия обороны от несанкционированного использования ключа. Не поломайте всё, использую слабый пароль. Парольная фраза должна быть длиннее 21 символа и не должна содержать словарных слов или легкодоступных комбинаций. Случайный набор символов, записанный на бумажке и хранимый в надёжном месте, лучше, чем длинная фраза, содержащая словарные слова.
  • ИСПОЛЬЗУЙТЕ БАНАЛЬНЫЕ ТЕМЫ ПИСЕМ — тема письма не шифруется. Потому, используйте что-нибудь обыденное при шифрованной переписке.
  • УСТРОЙТЕ ШИФРОВЕЧЕРИНКУ – сагитируйте друзей сгенерировать pg-ключи и подписать ключи друг друга.
  • ОТПРАВЛЯЙТЕ ШИФРОВАННЫЕ ПИСЬМА, ДАЖЕ ЕСЛИ СОДЕРЖИМОЕ НЕ ВАЖНО — Это жизненно необходимо!!! Если шифрованный трафик содержит только секретные сведения, он создаёт малюсенький объём трафика для анализа. Если каждый будет использовать шифрование для любой переписки, даже обсуждения, какую пиццу заказать, это резко повысит процент шифрованного трафика.

Как установить почту с OpenPGP на свой компьютер?

Пожалуйста, прочтите: