PGP, вернее его реализация GnuPG стандартное средство шифрования в Linux. В нем из коробки имеются развитые средства работы, например, Seahorse в GNOME. Обратную ситуацию имеем в Windows (особенно в семерке), нет не только поддержки из коробки, но и нормально работающие утилиты еще поискать нужно. Я поискал и нашел. Теперь рассказываю о найденном, т.к. большинство статей на эту тему как минимум устарели. Статья будет именно о программах, о том как работает PGP и зачем он нужен много написано и без меня (ссылки прилагаются).
Что такое GPG/GnuPG?
GnuPG (GNU Privacy Guard или просто GPG) — это свободный некоммерческий аналог PGP (Pretty Good Privacy), как и PGP, основанный на IETF-стандарте OpenPGP. Если отбросить всю эту кучу аббревиатур, то это система шифрования сообщений с использованием пар ключей. Еще с помощью GnuPG можно подписывать свои сообщения цифровой подписью, что позволяет проверить как личность автора, так и целостность сообщения. Для удобства изложения будем считать GnuPG, PGP и OpenPGP синонимами.
GnuPG распространяется по GPL лицензии и полностью бесплатен. Для работы использует алгоритмы CAST5, 3DES, AES, Blowfish и Twofish. В проекте не используются запатентованное или иначе ограниченное ПО и/или алгоритмы. Любопытно, что порт под Windows профинансирован Федеральным министерством Германии по экономике и технике.
Установка и настройка GPG
Вариант первый (правильный):
- Скачиваем (например, отсюда) последнюю версию первой ветки. Пакет называется gnupg-w32cli, последняя версия на момент написания 1.4.14.
- Устанавливаем.
- Настраиваем системные переменные: (панель управления — система — дополнительные параметры системы — переменные среды) открываем на редактирование Path и добавляем
C:\Program Files (x86)\GNU\GnuPG
. - Проверяем:
win+r
вводим командуgpg
, если запустилось без ошибки, все сделано правильно.
Вариант второй (неправильный):
Gpg4win коллекция портов Linux программ, часто рекомендуется пользователям Windows (если бы Gpg4win у меня заработал, то возможно этой статьи не было бы). В меру здравая идея дать пользователю все необходимые утилиты разбивается о суровую действительность: утилиты по отдельности нормально работающие в Linux, собранные вместе в Windows превращаются в здоровый, глючный комбайн. Это можно было бы стерпеть, если бы в пакете не использовался GnuPG тестовой версии не желающий нормально работать в Windows 7.
* Уже после написания этой статьи в проекте наметилось движение. В последней, доступной версии (Gpg4win 2.2.0 released) вроде GPG заработал. Все равно не работает, если раньше не работала генерация ключей, то сейчас — шифрование. Если вас это не пугает используйте хотя бы, урезанную версию, только GPG (Gpg4win-Vanilla).
Примеры работы в командной строке
Да, GPG работает исключительно в командной строке, но волноваться по этому поводу не нужно. Вполне возможно, что вы ни разу (кроме как в этих примерах) не увидите командную строку. Примеры нужны скорее для понимания работы. Запустим командную строку Откроем командную строку: win+r
ввести cmd
(рекомендую использовать FAR cntr-o
) и попробуем выполнить несколько примеров для начала:
Создадим связку ключей (открытый и закрытый). Ключи создаются командой: gpg --gen-key
. Потребуется указать свое имя и адрес электронной почты, пароль для закрытого ключа, а также срок действия ключа. Ключи хранятся в связках (keyrings), минимум двух: связка открытых и связка закрытых ключей. Созданные ключи можно посмотреть набрав команду gpg --list-keys
.
Отправим открытый ключ на сервер ключей, например pgp.mit.edu: gpg --keyserver pgp.mit.edu --send-key name@mail
. Размещение ключей на на сервере очень удобно, обычно клиент сам находит нужные ключи на key-сервере. Сами сервера ключей синхронизируются между собой и образуют распределенную сеть. Для иллюстрации я думаю хватит, если хочется большего попробуйте gpg --help
, или попросить помощи у google.
* Командная строка это хорошо и в целом полезно для понимания механизма работы, но жизнь не облегчает. Поэтому переходим к более простым вариантам:
Программы работающие с GPG
Thunderbird +Enigmail
Многие почтовые программы поддерживают PGP/GPG (непременный атрибут хорошей почтовой программы) из коробки, но мой выбор Mozilla Thunderbird в связке с дополнением Enigmail.
* Как вариант можно воспользоватся проектом GPGrelay. Это локальный SMTP/POP3 прокси, через который можно настроить GPG в любом почтовом клиенте, так что даже Thunderbird ставить не придется.
Portable GPG
Руководствуясь правилом omnia mea mecum porto :-), неплохо было бы иметь портативный вариант не требующий установки. GPG4USB именно такой. Еще одна годная программа, представляющая собой текстовый редактор с GPG шифрованием (шифроблокнот). Может шифровать не только тексты но и файлы. Работать исключительно удобно — все необходимое идет в комплекте, и GPG, и управление ключами.
* Имеется сборка для PortableApps, пока только Development Test.
GPG в Jabber (Psi)
Psi (так же известная как саи) — программа для обмена сообщениями по протоколу XMPP (Jabber). Отлично реализована работа с OpenPGP, достаточно (при установленном пакете GnuPG и имеющейся связке ключей) в настройках выбрать свой ключ для использования, и связать контакт в ростере с его ключом. Из недостатков, Psi не умеет OTR (Off-the-Record). Для OTR можно воспользоваться расхваливаемым мной в одной из статей Pidgin.
* О вопросе выбора способа шифрования в IM. Тут многое зависит от условий использования и личных предпочтений. Например, OpenPGP позволяет отправлять сообщения оффлайн, а OTR более универсален и можно сказать стандарт для IM клиентов.
GPGshell
Я уже говорил, что в Windows удивительно бедно представлено ПО для OpenPGP? GPGshell графический интерфейс к GPG, еще одно из немногих, годных родных приложений. И что характерно, оно таким было и лет десять назад, ничего не меняется. Поддерживает большинство возможностей GnuPG, обязательно к установке продвинутым пользователям. Относительный минус программы — это именно GUI, для выполнения многих действий программа запускает командную строку где придется вводить необходимые параметры.
GPG в браузере
Нашелся только один работающий и не заброшенный разработчиками проект — Mailvelope. Для работы использует JavaScript реализацию OpenPGP.js. Есть реализации для Chrome и Firefox, поддерживаются GMail, Yahoo, Outlook и другие.
RetroShare
RetroShare — F2F/P2P сеть для обмена письмами, сообщениями, файлами, новостями… Если чего не хватит есть плагины. Попала в этот обзор т.к. основана на PGP (шифрование и идентификация). Сеть интересная и более, чем заслуживает упоминания.
Ссылки
Проект openPGP в России, имеется неплохая библиотека, категорически рекомендую «Введение в криптографию» Филиппа Циммерманна (я даже подсуетился и сверстал в fb2)
Сайт проекта GnuPG (зеркало на SourceForge).
Перевод на русский GnuPG Frequently Asked Questions
The International PGP Home Page
Сравнение PKI или PGP?
pgp.mit.edu(веб-интерфейс http://pgp.mit.edu), keys.gnupg.net — сервера ключей.
GPG-шифрование в Psi под Windows
Справка для домохозяек по Gpg4USB в Windows (в архиве)
Полезно! Спасибо!