Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

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

Оригинал: How to Encrypt Email in Linux
Автор: Carla Schroder
Дата публикации: 14 августа 2014 года
Перевод: А. Кривошей
Дата перевода: март 2015 г.

kgpg

Если вы задумывались о шифровании вашей электронной почты, то могли обратить внимание, что сегодня это довольно запутанный вопрос, так как имеется множество служб и клиентов электронной почты. Есть два уровня шифрования: SSL/TLS обеспечивает безопасность вашего логина и пароля для почтового сервера. GnuPG - это стандарт утилит сильного шифрования для Linux, который шифрует ваши сообщения и обеспечивает подтверждение их подлинности. Лучше иметь свои ключи шифрования GPG и пользоваться ими, чем доверять защиту третьим лицам.

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

Забудьте о веб-интерфейсе

Если вы пользуетесь GMail, Yahoo, Hotmail или любым другим веб-интерфейсом для электронной почты, забудьте о нем. Все, что вы набираете в браузере, уязвимо для атак JavaScript, что бы ни говорили по этому поводу провайдеры электронной почты. GMail, Yahoo и Hotmail предлагают SSL/TLS-шифрование для защиты от перехвата ваших сообщений, но они не предлагают никакой защиты от собственной привычки копаться в ваших данных, то есть они не обеспечивают вас сквозным шифрованием на протяжении всего цикла создания и отправки письма, хотя Yahoo и Google обещают представить такое шифрование в следующем году. Однако я отношусь к этому скептически, так как обработка данных пользователей является основой их бизнеса.

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

Peer messaging позволяет избежать многих проблем, возникающих при использовании централизованных сервисов. Популярными примерами такого подхода являются RetroShare и Bitmessage. Не знаю, соответствуют ли они декларируемым ими требованиям, но концепция, безусловно, имеет свои достоинства.

А что насчет Android и iOS? Безопаснее считать, что большинство приложений для Android и iOS также не откажутся от ваших данных. Не верьте мне на слово - читайте их соглашения об обслуживании и проверяйте разрешения, которые они просят при установке. И даже если при первой установке все выглядит приемлемым, помните, что изменение условий обслуживания в одностороннем порядке стало уже практически отраслевым стандартом, поэтому безопаснее предполагать худшее.

Нулевое разглашение (Zero Knowledge)

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

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

Почтовые клиенты для Linux

Отдельные почтовые клиенты с открытым исходным кодом, такие как KMail, Thunderbird, Mutt, Claws, Evolution, Sylpheed или Alpine, установленные с вашими собственными ключами GnuPG, обеспечивают наиболее высокий уровень безопасности (самый простой способ повысить уровень безопасности веб-серфинга и электронной почты - пользоваться защищенным дистрибутивом TAILS).

Используете ли вы TAILS, или обычный дистрибутив Linux, работа с GnuPG ничем не отличается, поэтому давайте научимся шифровать свои сообщения с помощью GnuPG.

Использование GnuPG

Для начала немного терминологии. OpenPGP - это открытый протокол шифрования и аутентификации на базе Pretty Good Privacy (PGP) Филиппа Циммермана. GNU Privacy Guard (GnuPG или GPG) - это реализация OpenPGP под лицензией GPL. GnuPG использует симметричное шифрование с открытым ключом. Это значит, что вы создаете пары ключей: открытый ключ, который кто угодно может использовать для шифрования отправляемых вам сообщений, и закрытый, который вы используете только для расшифровки получаемых сообщений. GnuPG выполняет две отдельные задачи: подписывает ваши сообщения электронной подписью, чтобы можно было удостовериться в том, что отправителем являетесь именно вы, и шифрует их. Любой может читать ваши сообщения с электронной подписью, но только тот, с кем вы обменялись ключами, может читать ваши зашифрованные сообщения. Помните, что нельзя ни с кем делиться своими закрытыми ключами!
Seahorse - это графический интерфейс GnuPG для GNOME, а KGpg - для KDE.
Теперь давайте освоим основные команды для создания и управления ключами в GnuPG. Команда для создания нового ключа:

$ gpg --gen-key

Это многоступенчатый процесс, вам нужно просто ответить на все вопросы, причем большинству пользователей подойдут ответы по умолчанию. После того, как вы создадите пароль, запишите его и храните в надежном месте, так как если вы потеряете его, то не сможете ничего расшифровать. Все, что говорится о том, что пароли нельзя записывать - неверно. У большинства из нас есть десятки логинов и паролей, в том числе те, которыми мы пользуемся сравнительно редко, невозможно запомнить их все. Вы знаете, что происходит, если люди не записывают свои пароли? Они придумывают простые пароли и используют их повторно. Все, что вы храните в своем компьютере, является потенциально уязвимым. Небольшой блокнот, запертый в ящике стола, устойчив то всему, кроме физического проникновения.
Я не буду описывать здесь настройку почтового клиента для работы с вашим новым ключем, так как она отличается у разных программ. Вы можете просмотреть свой ключ или список ключей с помощью команды:

$ gpg --list-keys
/home/carla/.gnupg/pubring.gpg
------------------------------
pub   2048R/587DD0F5 2014-08-13
uid                  Carla Schroder (my gpg key) 
sub   2048R/AE05E1E4 2014-08-13

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

$ gpg --send-keys 'Carla Schroder' --keyserver http://example.com

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

$ gpg --output revoke.asc --gen-revoke 'Carla Schroder'

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

$ gpg --import ~/.gnupg/revoke.asc

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

$ gpg --output carla-pubkey.asc --export -a 'Carla Schroder'

При этом будет создан текстовый открытый ключ:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mQENBFPrn4gBCADeEXKdrDOV3AFXL7QQQ+i61rMOZKwFTxlJlNbAVczpawkWRC3l
IrWeeJiy2VyoMQ2ZXpBLDwGEjVQ5H7/UyjUsP8h2ufIJt01NO1pQJMwaOMcS5yTS
[...]
I+LNrbP23HEvgAdNSBWqa8MaZGUWBietQP7JsKjmE+ukalm8jY8mdWDyS4nMhZY=
=QL65
-----END PGP PUBLIC KEY BLOCK-----

Освоить работу с GnuPG детально вам поможет The GnuPG manual.