Есть такая занятная штука — тайна переписки. Правда, широко известно о ней лишь в очень узких кругах анонимусов. По крайней мере, правительства и спецслужбы о ней слыхом не слыхивали, да и некоторые коммерсанты очень любят сунуть свой любопытный нос в чужой почтовый ящик: а вдруг удастся разнюхать что-то о предпочтениях абонента и прислать ему еще немного бесполезной рекламы? Сегодня мы поговорим о том, как защитить свою электронную почту от постороннего назойливого внимания.

Защита электронной почты

Существует куча сайтов и сервисов, клятвенно обещающих оберегать приватность своих пользователей от любых поползновений. Правда, зачастую — только на словах. Например, сервис защищенной почты ProtonMail уже неоднократно обвиняли в том, что он помогает правоохранителям и сливает информацию о своих пользователях в чужие руки (первый раз — в 2018 году, второй — совсем недавно). Руководство почтовика всякий раз находило себе оправдания, но дыма без огня, как говорится, не бывает. Значит, о приватности и анонимности нужно побеспокоиться самому, не полагаясь на чужих дяденек и тетенек. Что для этого нужно? А вот прямо сейчас и разберемся.

Как всегда, в этой заметке будет необходимая часть теории, а после я расскажу о некоторых приложениях и объясню, для чего они нужны и как ими пользоваться. Если, конечно, ты не помрешь от тоски, изучая первую часть опуса. Погнали?

(Не)скучная теория

Даже маленький ребенок, только выйдя из пеленок, уже прекрасно осведомлен о том, что винда с точки зрения надежности хранения персональных данных напоминает решето. Поэтому, если у тебя нет возможности навсегда избавиться от этого поделия программистов из Редмонда (иначе на чем мы будем запускать любимые игрушки?), систему нужно правильно настроить, навсегда отбив ей охоту передавать что попало куда не надо. Грамотная настройка Windows — тема отдельного разговора, и к ней мы когда-нибудь обязательно вернемся, а сейчас речь о другом.

После того как мы установим безопасную ОС, которая не рассказывает своим создателям о каждом нашем шаге, нужно задуматься о связи с внешним миром. Самый древний и распространенный способ такой связи после голубиной почты — почта электронная. Обойтись без нее непросто: было бы, конечно, неплохо, если бы всевозможные роботы отсылали нам подтверждения о регистрации куда-нибудь в запрещенный телеграмчик, но они почему-то предпочитают делать это «мылом», будто в каменном веке.

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

Даже если почтовый сервис шифрует твои данные на лету прямо в браузере, алгоритм шифрования все равно загружается с сервера. Как ты проверишь корректность этого самого алгоритма всякий раз, когда отправляешь письмо? Вывод: кому бы почтовый сервис ни принадлежал, безусловно доверять ему свои письма мы не можем. Из этого следует, что обязанность шифровать письма лежит на нас самих.

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

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

Я рекомендую установить, например, Thunderbird. Во-первых, это название ни один товарищ майор не выговорит без ошибок с первого раза, а во-вторых, софтина поддерживается сообществом и позволяет устанавливать расширения. Для шифрования переписки можно воспользоваться плагином Enigmail, который активно разрабатывается по сей день и регулярно обновляется.

Кроме того, нам понадобятся специальные приложения, которые реализуют шифрование, — это GnuPG для *nix или Pgp4Win для Windows. После этого будет необходимо создать пару закрытый — открытый ключ и не забывать подписывать свои письма электронной подписью, чтобы получатель точно знал, что письмо пришло именно от тебя. Звучит сложно? На самом деле все гораздо проще, чем кажется.

INFO Даже с учетом шифрования почтовый сервер все равно будет знать, откуда ты к нему подключился, сможет определить время подключения, действия с письмами (удаление, создание, пересылка) и адрес, на который было отправлено письмо. Но прочитать информацию из письма сможет только получатель. И не забывай: заголовок с темой письма по умолчанию не зашифрован, так что выбирай тему осмотрительно, чтобы ненароком не спалиться.

Установка и настройка необходимого инструментария

С установкой почтового клиента Thunderbird у тебя точно не должно возникнуть проблем — по слухам, однажды с этой архисложной задачей справилась даже шимпанзе из рязанского зоопарка. Далее поставим Pgp4Win, только убедись, что на экране «Компоненты устанавливаемой программы» есть все нужные галочки!

После этого запускаем Thunderbird и настраиваем в клиенте доступ к своему почтовому ящику (документации по настройке Thunderbird в интернете навалом). Следующим этапом устанавливаем плагин Enigmail.

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

Итак, чтобы создать ключевую пару, перейдем в меню «Enigmail → Менеджер ключей». После этого нужно выбрать пункт «Новая пара ключей» в меню «Создать». В открывшемся окне отобразятся настройки создаваемой ключевой пары, поле для ввода парольной фразы и выбор алгоритмов шифрования во вкладке «Дополнительно». Программа предлагает выбрать один из двух криптографических алгоритмов — ECC и RSA.

Выбор между ECC и RSA

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

RSA (аббревиатура от фамилий создателей — Rivest, Shamir и Adleman) — асимметричный криптографический алгоритм, основанный на сложности задачи факторизации (разложения) больших целых чисел. Это была заумная цитата из Википедии. А если попроще, то достаточно сказать, что этот алгоритм старый, как Pentium 4, но такой же надежный и проверенный временем. Он используется повсеместно в самых разных приложениях и защищенных протоколах.

Существует его более новый и, как считается, прогрессивный аналог — алгоритм ECC (Elliptic Curve Cryptography). Та же Википедия говорит нам, что этот асимметричный алгоритм «опирается на эллиптические кривые над конечными полями». Что это означает, при желании прочтешь там же. А нам важно вот что: для обеспечения одинаковой степени криптостойкости алгоритму RSA требуются ключи длиной 4096 бит, а алгоритму ECC — всего от 256 до 384 бит. А если взять ECC с длиной ключа 521 бит, то по криптостойкости он будет эквивалентен RSA с длиной ключа 15 360 бит!

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

Пароль — это важно! Несмотря на стойкость криптоалгоритмов, необходимо уделить внимание выбору качественного пароля для шифрования. Если пароль будет недостаточно стойким, то расшифровать твою переписку не составит большого труда, какие бы крутые криптоалгоритмы ты ни использовал. Не забывай: пароль не должен быть коротким — нужно использовать не менее 12–15 символов. Пароль не должен быть любым словарным словом, должен иметь цифры и буквы обоих регистров , вступление, заключение, развитие драматического сюжета и список использованной литературы в конце . В основном работает правило: чем легче запомнить пароль тебе самому, тем проще его будет подобрать злоумышленнику. Поэтому можно просто пару раз хорошенько стукнуться лбом о клавиатуру, а потом выучить получившуюся псевдослучайную последовательность символов. Главное — никогда не придумывать и не менять пароли после шумной вечеринки. Однажды нарушив это правило, ты поймешь почему.

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

Теперь все готово. Если кто-то захочет зашифровать переписку с тобой, ему понадобится открытый ключ. Передать его собеседнику можно любым способом — ведь если открытый ключ перехватят, то все равно не будет никакой возможности расшифровать переписку. Но все-таки я рекомендую загрузить открытый ключ на специальный сервер — сервер ключей. Оттуда любой человек может забрать твой открытый ключ, например выполнив поиск по почтовому адресу. Чтобы загрузить ключ на сервер, в оснастке «Управление ключами» в меню программы нужно выбрать пункт «Разместить открытые ключи на сервере ключей».

После этого ключ автоматически загрузится на сервер.

Теперь давай посмотрим на практике, что представляет собой шифрование почты асимметричной криптографией. Мы создадим и отправим сами себе зашифрованное сообщение и посмотрим, как оно выглядит с плагином Enigmail и без него — как если бы мы перехватили чье-то сообщение. У нас уже все настроено, нам просто нужно создать письмо обычным способом, не забыв нажать на кнопки «Зашифровать» и «Подписать».

Полученное сообщение будет выглядеть как на картинке ниже.

Здесь видно, что сообщение расшифровано и его подпись проверена, о чем нам и сообщает Enigmail.

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

Как видишь, у того, кто перехватит нашу почту, будут большие проблемы с ее чтением.

Плагин Mailvelope

Что, если по какой-то причине ты не захочешь ставить почтовый клиент, но все же решишь защитить свою переписку? Есть выход: расширение для браузера под названием Mailvelope. Оно имеет открытый исходный код, поддерживается всеми современными браузерами и не требует для работы никаких сторонних приложений. Но если ты установишь на компьютер Pgp4Win, то у тебя появится возможность выбора, какой движок использовать — GnuPG или OpenPGP.js. В последнем реализовано шифрование PGP на языке JavaScript.

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

Сгенерированная ключевая пара появится во вкладке «Управление ключами».

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

Если кликнуть по этой кнопке, откроется окно ввода сообщения. Когда письмо будет написано, необходимо нажать на кнопку «Зашифровать».

Зашифрованное сообщение будет автоматически скопировано в веб-интерфейс почтового сервера.

Если расширение активно, сообщение дешифруется и электронная подпись проверяется автоматически, нужно будет только ввести свой пароль.

Шифрование почты на Android Если у тебя смартфон с Android, обрати внимание на приложение OpenKeychain, которое поможет в шифровании сообщений в твоем телефоне. В качестве почтового клиента для Android можно использовать K-9 Mail — это известный почтовый клиент с открытым исходным кодом, а принцип генерации ключевых пар там точно такой же, как и на десктопе.

Заключение

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

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