Шифруем почту

Содержание

Логотип GnuPG
Логотип GnuPG (источник)

Теория

Horror
Ужас-ужас!
(Roberto Ferrari, источник)

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

Асимметричная криптосистема
Асимметричная криптосистема
(Labankova E, источник)

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

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

Шифровать, дешифровать, подписывать и проверять подписи будет бесплатная программа с открытым исходным кодом, проверенная поколениями специалистов. От вас требуется всего лишь: её установить, автоматически создать ключи и настроить почтовое окружение. Далее всё будет делаться в автоматическом режиме, изредка спрашивая у вас пароль.

Мы будем использовать программу под названием GnuPG, созданную по мотивам PGP (почитайте, там интересная история) благодаря стандарту OpenPGP (RFC 4880 — даже не читайте).

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

Подготовка

Для работы нам понадобится почтовый аккаунт (адрес почты), почтовый клиент (программа на локальном компьютере, принимающая и отправляющая почту) и собственно программа GnuPG.

Почтовый аккаунт

Так как всю скрытую почту планируется шифровать, подойдёт абсолютно любой почтовый адрес на платном или бесплатном, приватном или публичном почтовом сервере. От него требуется лишь устойчивой работы и возможности скачивать (POP3 и/или IMAP) и пересылать через него (SMTP) почту почтовым клиентом, установленном на вашем компьютере. Практически все популярные почтовые сервисы эту возможность предоставляют. Если вы не планируете хотя бы первое время изменять своим привычкам, боитесь что-то сломать, или просто хотите разово поэкспериментировать, рекомендую завести для шифрованной почты отдельный почтовый аккаунт. В этом случае можно настроить большинство операций в автоматическом режиме. Если понравится, по-аналогии можно будет распространить этот подход на все свои адреса.

Для чистоты эксперимента я завёл для этих целей аккаунт alexanderkrassotkin@yahoo.com. Тут и далее все адреса, числа и логи реальные, в том числе и для того, чтобы убедиться, что обладая всеми этими данными, невозможно прочитать и расшифрованное сообщение. Настройки клиента для почты на yahoo.com находятся тут.

Настройки POP3 или IMAP (получение) и SMTP (отправка) для Gmail, а также необходимые рекомендации, находятся на этих страницах: 1, 2. Настройки для Outlook.com (Hotmail), можно узнать тут. Настройки почтовых программ (почтовых клиентов) для Yandex, приведены на этой странице. Рекомендации о том, как настроить почтовую программу для адреса на Mail.ru, описаны тут. Если вы используете собственные виртуальные площадки, смотрите настройки у своего провайдера. В случае корпоративной почты, настройки можно узнать у своего системного администратора.

Почтовый клиент

Mozilla Thunderbird 13.0
Mozilla Thunderbird 13.0
(источник)

Почтовый клиент — программа, устанавливаемая на локальном компьютере и позволяющая принимать и отправлять почту.

Для наших целей подойдёт практически любой современный почтовый клиент с открытым исходным кодом. В настоящий момент я использую Evolution, в которой шифрование встроено в настройки. Универсальным решением, для всех платформ является Mozilla Thunderbird, для которой необходимо установить расширение (add-ons) Enigmail.

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

GnuPG

Если вы пользуетесь одним из дистрибутивов Linux, скорее всего у вас уже установлена GnuPG. Для проверки наберите в консоли gpg --help. Если же программы нет, воспользуйтесь установщиком или консольным менеджером пакетов (yum, apt и т.п.).

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

Обладатели Windows могут также инсталлировать оконный вариант GnuPG — Gpg4win. Тем не менее далее все действия лучше производить в консольном (терминальном, интерфейсе командной строки) режиме.

Создание инфраструктуры GnuPG

План

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

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

Подготовка к генерации ключа

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

Создание ключа

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

Для генерации ключа наберите:

gpg --gen-key

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

Первым вопросом будет выбор алгоритма шифрования:

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 2

Введя «2», мы выбрали DSA алгоритм для электронной подписи и схему Эль-Гамаля для шифрования.

На следующем этапе вас попросят ввести длину ключа:

DSA keys may be between 1024 and 3072 bits long.
What keysize do you want? (2048) 2048

Общее правило: чем длиннее ключ, тем безопасней, однако ключи длиннее 2048 бит поддерживаются не всеми программами и их версиями.

Потом вас попросят ввести срок действия вашего ключа.

Please specify how long the key should be valid.
   0 = key does not expire
   <n> = key expires in n days
   <n>w = key expires in n weeks
   <n>m = key expires in n months
   <n>y = key expires in n years
Key is valid for? (0) 0

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

Программа, как бы удивившись нашему выбору, переспросит, но мы будем непреклонны:

Key does not expire at all
Is this correct? (y/N) y

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

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
   "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

Real name: Alexander Krassotkin
Email address: alexanderkrassotkin@yahoo.com
Comment: http://www.krassotkin.com/
You selected this USER-ID:
   "Alexander Krassotkin (http://www.krassotkin.com/) <alexanderkrassotkin@yahoo.com>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O

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

You need a Passphrase to protect your secret key.

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

We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.
gpg: WARNING: some OpenPGP programs can't handle a DSA key with this digest size
+++++.+++++..+++++++++++++++++++++++++++++++....+++++.+++++.+++++++.++.++++++++++..++++++++++++++++++++...+++++.+++++++++++.+++++++++++++++++.++++++.++++++++++....+++++
We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.
...+++++..++++++++++.++++++++++.+++++++++++++++++++++.+++++.++++++++++..++++++++++++++++++++.++++++++++.+++++++++++++++.+++++++++++++...+++++++++++++++++++..+++++>.++++++++++<++++......<.+++++...>+++++.<...+++++.>+++++......+......<+++++>.+++++<+++++.....................>+++++...<+++++......>....+++++..................+++++^^^
gpg: key 1D7C3C0B marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0 valid: 4 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 4u
pub 2048D/1D7C3C0B 2013-10-24
   Key fingerprint = B6BB 7A12 24A3 BA97 6970 D5C0 C251 623C 1D7C 3C0B
uid     Alexander Krassotkin (http://www.krassotkin.com/) <alexanderkrassotkin@yahoo.com>
sub 2048g/7E26E3DB 2013-10-24

По завершении работы программа сообщила ID нашего основного ключа — 1D7C3C0B. ID ключа вам понадобиться для выполнения последующих операций.

Просмотреть все ключи в нашей базе и найти ID любого ключа всегда можно командой:

gpg --list-keys

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

gpg --list-keys alexanderkrassotkin@yahoo.com
pub 2048D/1D7C3C0B 2013-10-24
uid     Alexander Krassotkin (http://www.krassotkin.com/) <alexanderkrassotkin@yahoo.com>
sub 2048g/7E26E3DB 2013-10-24

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

Создание аннулирующего сертификата

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

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

Дальнейшие действия лучше совершать в директории (папке), где хранится вся инфраструктура ключей.

В Linux инфраструктура ключей хранится в папке ~/.gnupg, в Windows — в папке %APPDATA%\GnuPG. Для дальнейших действий перейдём туда:

Для перехода в директорию GnuPG в Linux необходимо выполнить команду:

cd ~/.gnupg

а в Windows:

cd %APPDATA%\GnuPG

Для его создания аннулирующего сертификата выполним следующую команду (указав имя файла, в который необходимо будет сохранить аннулирующий сертификат, в моём случае — revoke.1D7C3C0B.asc и ID нашего ключа — 1D7C3C0B; не забудьте указать ваши данные):

gpg --output revoke.1D7C3C0B.asc --gen-revoke 1D7C3C0B

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

Create a revocation certificate for this key? (y/N) y
Please select the reason for the revocation:
 0 = No reason specified
 1 = Key has been compromised
 2 = Key is superseded
 3 = Key is no longer used
 Q = Cancel
(Probably you want to select 1 here)
Your decision? 1

В качестве причины мы указали компрометацию ключа.

Следом gpg попросит ввести комментарий и пароль к секретному ключу:

Enter an optional description; end it with an empty line:
> Someone cracked me and got my key and passphrase
>
Reason for revocation: Key has been compromised
Someone cracked me and got my key and passphrase
Is this okay? (y/N) y

Мы ввели Someone cracked me and got my key and passphrase (нас взломали и украли наш пароль) и подтвердили этот факт.

Аннулирующий сертификат создан и сохранён в текущей папке.

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

Посмотреть содержимое директории, в которой хранится инфраструктура GnuPG и куда только что мы сохранили аннулирующий сертификат в Linux можно командой:

ls

а в Windows:

dir

Экспорт открытого ключа

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

gpg -a -o 1D7C3C0B.openkey.asc --export 1D7C3C0B

где 1D7C3C0B.openkey.asc — имя файла открытого ключа, а 1D7C3C0B — ID ключа. Не забудьте заменить эти данные на свой ID ключа.

После выполнения данной команды, в текущей папке будет создан файл с открытым ключом 1D7C3C0B.openkey.asc в ASCII формате, который вы можете передавать друзьям, публиковать на сайте, или поместить в глобальный репозиторий ключей. Вы можете посмотреть содержимое этого файла в своём текстовом редакторе. В моём случае он выглядит так:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.15 (GNU/Linux)

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
iKeTmKfOTZA6lcMTiurpBQfbyg==
=+isE
-----END PGP PUBLIC KEY BLOCK-----

Экспорт сертификата в открытое хранилище

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

gpg --keyserver pgp.mit.edu --send-keys 1D7C3C0B

где pgp.mit.edu — один из репозиториев хранения ключей, а 1D7C3C0B — ID ключа (замените на свой).

После выполнения этой команды вы можете перейти на сервер pgp.mit.edu, и найти свой ключ по email или имени. Например, для моего ключа: на этой странице.

Также вы можете воспользоваться ручной загрузкой ключа, например, на сервер keyserver.pgp.com.

Бекап инфраструктуры

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

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

Я рекомендую, во-первых, копировать всю инфраструктуру целиком (всю папку GnuPG), во-вторых, шифровать её, в третьих, сохранять получившийся бекап в каких-то онлайн хранилищах.

Для такого решения перейдём в домашнюю директорию.

Команда для Linux:

cd ~

Команда для Windows:

cd %APPDATA%

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

В Linux упаковку и сохранение можно выполнить одной командой:

tar czf - .gnupg/ | gpg --symmetric --cipher-algo aes256 -o filename

где tar czf — .gnupg/ — упаковка директории, gpg --symmetric --cipher-algo aes256 — команда симметричного шифрования с помощью алгоритма aes256, filename — имя итогового файла, который можно загрузить в ваше личное онлайн хранилище файлов.

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

gpg -d filename | tar xzvf -

В Windows необходимо вначале упаковать директорию (например в файл gnupg.zip), а следом зашифровать получившийся файл командой:

gpg -o filename --symmetric --cipher-algo aes256 gnupg.zip

Когда вам понадобиться восстановить эту директорию, для дешифровки выполните команду:

gpg -o outputfilename -d filename

и распакуйте секретный файл filename в outputfilename.

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

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

Импорт ключей

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

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

Импортировать мой открытый ключ можно командой:

gpg --import 1D7C3C0B.pub.d.asc

где 1D7C3C0B.pub.d.asc — имя импортируемого файла открытого ключа (исправляйте соответственно для других ключей).

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

gpg --edit-key 1D7C3C0B

где 1D7C3C0B — ID импортируемого ключа.

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

Command> sign
Really sign all user IDs? y

В случае, если открытый ключ является срочным, вас попросят подтвердить, что доверять ключу вы будете до момента истечения его срока действия:

This key is due to expire on 2003-12-01.
Do you want your signature to expire at the same time? (Y/n) Y

Далее вас попросят установить уровень доверия этому ключу:

How carefully have you verified the key you are about to sign actually belongs
to the person named above? If you don't know what to answer, enter "0".

   (0) I will not answer. (default)
   (1) I have not checked at all.
   (2) I have done casual checking.
   (3) I have done very careful checking.

   Your selection? 3
Are you really sure that you want to sign this key
with your key: "Alexander Krassotkin (http://www.krassotkin.com/) <alexanderkrassotkin@yahoo.com>"

I have checked this key very carefully.

Really sign? y

Проверить правильность внесённых изменений можно интерактивной командой check:

Command> check

Для сохранения внесённых изменений нужно выполнить интерактивную команду save:

Command> save

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

Настройка почтового клиента

Для настройки Evolution:

Для настройки связки Mozilla ThunderbirdEnigmail Add-ons:

Что дальше?

GnuPG очень мощный инструмент, и если вы хотите продолжить обучение, необходимо глубже изучить его возможности.

Если кроме шифрования вы хотите использовать анонимность, рекомендуем применять шифрование с помощью GnuPG в связке с p2p анонимайзерами, например, Tor.

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

Заключительные положения

Cross stitch pattern - Welcome
Welcome!
(Umaranishanmugam, shanmugamstudio, Kollam, источник)

Дисклаймер

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

 
 
Обсудить можно в G+ или в Facebook.