GnuPG в Windows 7

gnupg gpgshell

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 (в архиве)

  • Юрий

    Полезно! Спасибо!