Инструкция по использованию почтового клиента Thunderbird со встроенным модулем шифрования корреспонденции OpenPGP. В примере используется почтовый сервер из скрытой сети I2P.
Thunderbird - открытый и бесплатный почтовый клиент от компании Mozilla. Первый релиз состоялся в 2003 году. Приложение является кроссплатформенным, официальные сборки выпускаются под операционные системы Windows, Linux и MacOS. Исходный код написан на C и C++, для графической оболочки используется фреймворк GTK. Буревестник - именно так переводится название программы - обладает интуитивно понятным интерфейсом.
Клиент поддерживает протоколы SMTP (для отправки почты), POP3 (для получения почты без оставления копии на сервере) и IMAP (для получения писем, которые остаются на сервере). Помимо этого, поддерживаются два дополнительных протокола для получения новостей и обновлений с сайтов - NNTP и RSS, а также протоколы мгновенных сообщений IRC и XMPP. Так как Thunderbird является в первую очередь почтовым клиентом, а не чат-приложением, реализации IRC и XMPP не шибко впечатляют.
Протокол электронной почты очень стар и не имеет какого-либо встроенного шифрования, разве что поддержку защищенного соединения с сервером. На самом почтовом сервере все письма лежат в виде обычного текста, поэтому всегда доступны тем, кто имеет непосредственный доступ к серверу, в том числе неправомерный.
Далее будет рассмотрен пример использования почтового сервера из сети I2P, что в целом не имеет каких-либо практических различий с использованием тех же Gmail и прочих. При использовании приватного сервера теплее становится на душе разве что. Чтобы обеспечить сквозное шифрование корреспонденции от отправителя до получателя будет использован модуль RNP - разновидность реализации стандартного асимметричного шифрования OpenPGP.
Для простоты восприятия неопытного пользователя все примеры продемонстрированы на Windows. На других операционных системах интерфейсы и конфигурационные файлы выглядят аналогичным образом.
Данный материал носит исключительно образовательный характер. Автор не несет ответственности за любые погрешности в работе описанного программного обеспечения, а также за тех, кто будет использовать описанную технологию в противоправных целях.
Установка i2pd и регистрация почтового ящика
Чтобы ваш компьютер имел выход в анонимную сеть I2P, необходимо установить специальную программу - I2P-роутер. Из-за хорошей производительности рекомендуется использовать i2pd. Установка на любой операционной системе весьма тривиальна, поэтому процесс от загрузки до первого запуска рассмотрен не будет. Чтобы веб-браузер имел выход в скрытую сеть, необходимо настроить прокси. В Firefox это делается через Настройки -> Параметры сети -> Ручная настройка прокси. Адрес HTTP-прокси i2pd по умолчанию: 127.0.0.1:4444
.
Теперь браузер настроен и умеет открывать скрытые сайты! Для примера будет использован самый популярный почтовый сервис сети I2P - hq.postman.i2p, который чаще всего называют просто "mail.i2p". Для создания нового почтового ящика выберите пункт меню "Creating a mailbox".
Страница с описанием сервиса сообщает, что при использовании почтового ящика внутри сети I2P возможен адрес @mail.i2p
, а для обращений извне - @i2pmail.org
. Также выделено жирным текстом, что использовать сервис в криминальных целях категорически запрещено! Основательно соглашаемся с этими словами и двигаемся дальше.
После заполнения регистрационной формы и подтверждения введенных данных, видим сводку о новом аккаунте. Предупреждение сообщает нам, что процесс регистрации может занять до пяти минут. Сервис поддерживает протоколы SMTP и POP3. Также сообщается, что аккаунт будет удален, если более ста дней на нем не будет активности.
Аккаунт есть, теперь нужно к нему подключиться. К этому моменту у вас уже должен быть установлен почтовый клиент Thunderbird. Скачивайте его исключительно с официального сайта, потому что он бесплатный и пиратить его нет нужды.
Чтобы получить доступ к серверу из I2P по протоколам SMTP и POP3, необходимо создать клиентские туннели. Не пугайтесь, это крайне простая операция. Для этого необходимо открыть текстовый конфигурационный файл туннелей tunnels.conf
. В Windows файл обычно хранится в директории %APPDATA%\i2pd\
, на Debian - /etc/i2pd/
.
Файл по умолчанию имеет нужные туннели, но они закомментированы. Уберите решетки в начале строк у секций [SMTP]
и [POP3]
. Если по каким-то причинам у вас нет шаблонного конфигурационного файла, создайте новый файл tunnels.conf
в рабочей директории i2pd (ее можно посмотреть в веб-консоли) и вставьте в него следующее содержимое:
[SMTP]
type = client
address = 127.0.0.1
port = 7659
destination = smtp.postman.i2p
destinationport = 25
keys = smtp-keys.dat
[POP3]
type = client
address = 127.0.0.1
port = 7660
destination = pop.postman.i2p
destinationport = 110
keys = pop3-keys.dat
После этого необходимо перезапустить I2P-роутер. По-простому говоря: закрыть i2pd и снова его запустить. После этого можно убедиться, что туннели с названиями SMTP и POP3 созданы. Для этого откройте "I2P tunnels" в веб-консоли.
При наличии технических навыков вы можете вывести свой почтовый сервер в скрытую сеть и использовать его аналогичным образом.
Настройка Thunderbird
В верхней части интерфейса найдите кнопку "Параметры учетной записи". Затем в меню "Действия для учетной записи" выберите пункт "Создать учетную запись почты".
Необходимо указать регистрационные данные.
Thunderbird ругается на почтовый домен @mail.i2p
, однако позволяет его применить после предупреждения. Для приема входящей почты по умолчанию стоит протокол IMAP, его необходимо сменить на POP3. Укажите адреса и номера портов, которые вписаны в конфигурационный файл туннелей. Отключите шифрование SSL, которое отвечает за безопасное подключение к серверу, так как сеть I2P сама обеспечивает безопасность. Аутентификация - обычный пароль. Имя пользователя - имя вашего электронного ящика без окончания @mail.i2p
. При нажатии на кнопку "Готово" программа наверняка ругнется, что вы используете подключение без шифрования. Но шифрование есть, поверьте, и еще какое! Поэтому игнорируйте предупреждение и завершайте добавление аккаунта.
Если при нажатии на кнопку "Получить" в верхнем левом углу (имеется ввиду "Получить почту") устанавливается соединение с сервером, значит, настройка выполнена корректно.
В случае использования почтовых серверов из обычного интернета, указанные параметры для подключения вы найдете в документации сервиса, либо на странице помощи.
Теперь перейдем к пункту "Сквозное шифрование" - выберите нужный аккаунт и в правой части экрана кликните на упомянутую кнопку.
С августа 2020 года почтовый клиент использует встроенное хранилище ключей, которое не связано с какими-либо менеджерами ключей в операционной системе и сторонними плагинами. Создавать новые ключи (либо импортировать уже существующие) возможно прямо в клиенте Thunderbird. Встроенный менеджер ключей поддерживает создание ключей и привязку конкретного ключа к почтовому ящику, который будет использован по умолчанию для расшифровки и подписи отправляемой корреспонденции. Так как это инструкция для новичков, разберем создание нового ключа и дальнейшие операции с ним.
Нажмите кнопку "Добавить ключ", затем "Создать новый ключ OpenPGP".
На скриншоте продемонстрирован вариант создания бессрочного ключа на эллиптических кривых - более совершенной криптографии, нежели тип RSA, который предлагается по умолчанию. После создания ключа, он автоматически привязывается к почтовому ящику, для которого создавался.
Принципиальный момент в асимметричном шифровании заключается в наличии двух ключей: приватном и публичном. Приватный ключ служит для расшифровки и подписи, и хранится в надежном месте, а публичный - распространяется свободно и служит для проверки подписи и для шифрования информации. Чтобы в дальнейшем можно было использовать личность вашего ключа, например, на другом устройстве, необходимо сделать его резервную копию. Для этого раскройте спойлер выделенного ключа, нажмите кнопку "Больше" и "Создать резервную копию секретного ключа в файле".
Важно понимать, что попадание секретного ключа в чужие руки ставит крест на вашей прошлой зашифрованной переписке. Также снова необходимо будет создать новый ключ и поделиться им с собеседниками, объясняя, что вы - куропаточка. Короче говоря: нельзя, чтобы ваш секретный ключ был у кого-то кроме вас, поэтому храните его в надежном месте. Желательно, в крипто-контейнере и на изолированном устройстве.
Ниже на этой же странице расположены настройки шифрования и подписи по умолчанию. Рекомендуется активировать обе опции.
Подпись осуществляется вашим ключом, поэтому подписывать сообщения нужно вне зависимости от наличия ключей собеседника, а шифрование возможно только в том случае, если у вас есть публичный ключ адресата. Целостность цифровой подписи проверяется вашим публичным ключом, который прикладывается к письму. Она позволяет убедиться, что содержимое сообщения при пересылке не было изменено.
При запуске, Thunderbird расшифровывает свое хранилище ключей. Если ваш компьютер попадет в чужие руки - секретный ключ будет сворован. Чтобы обезопаситься, необходимо поставить мастер-пароль в настройках Thunderbird, который будет требоваться для расшифровки хранилища. Пароль будет запрашиваться каждый раз при запуске почтового клиента, и, если корректная парольная фраза не будет введена, клиент все равно запустится, но использование ключей будет невозможно.
Откройте "Настройки" почтового клиента, затем выберите пункт "Приватность и защита". На этой странице поставьте галочку "Использовать мастер-пароль", после чего будет предложено его создать. Не скупитесь на сложность! Это последний рубеж защиты ваших секретных ключей.
Если вы забудете мастер-пароль, все данные, которые им защищены, будут для вас навсегда утеряны.
Отправка и получение зашифрованных писем
При создании нового сообщения с указанными выше настройками, к каждому письму прикладывается публичный ключ, сообщение подписывается и при наличии публичного ключа собеседника - шифруется. Ключ собеседника в хранилище ключей определяется по адресу электронной почты.
Так как публичного ключа адресата в хранилище нет, необходимо во вкладке "Защита" выбрать пункт "Не шифровать", ибо шифровать нечем и сообщение не будет отправлено.
Получив письмо, адресат импортировал в свое хранилище наш публичный ключ и отправил ответ уже в зашифрованном виде, а также подписал его своим ключом, чтобы мы могли быть уверены в том, кто является отправителем.
Пиктограмма с замком и галочкой в статусе письма говорит о том, что сообщение было зашифровано на стороне отправителя и успешно расшифровано на нашей стороне. Пиктограмма сертификата обозначает цифровую подпись. Чтобы ее проверить, необходимо импортировать публичный ключ отправителя в локальное хранилище ключей. Если публичный ключ прикреплен к сообщению - кнопка с предложением импорта появляется автоматически.
После импорта ключа подпись можно проверить. На скриншоте видно, что подпись действительна, однако Thunderbird не спешит с зеленой иконкой полного доверия, пока мы вручную не подтвердим достоверность полученного ключа. Это делается по отпечатку ключа, который обычно публикуется в общедоступных местах: на веб-страницах, в подписи письма и тому подобных местах.
В примере отпечаток ключа отправителя присутствует в письме, поэтому, сверив отпечатки, заверяем полученный ключ. После этого на экране появится пиктограмма подписи, но уже не с желтым значком и восклицательным знаком, а с зеленой галочкой.
Послесловие
Отпечаток ключа, которым вы подписываете свои сообщения - это идентификатор вашей личности. Если у вас будет потребность в отправке сообщения, не связанного с вашей личностью, не используйте прежнюю цифровую подпись.
Никакие средства шифрования не обеспечивают абсолютную безопасность, потому что существуют другие методы атаки, направленные на компрометацию вашего устройства и личности. Никогда не открывайте вложения, а также не переходите по ссылкам из писем, отправителям которых не доверяете в полной мере.