Recent Changes - Search:

Software

PmWiki

edit SideBar

GPG-шифрование в Psi под Windows

Шифрование с помощью GnuPG (PGP с открытым исходным кодом) - наиболее простой и надежный способ обеспечить конфиденциальность переписки при общении в jabber. Ниже приведена инструкция по настройке сабжа. Нам понадобится GnuPG и оболочка к этой программе - GPGShell. Последнюю версию GnuPG можно взять с http://gnupg.org. На момент написания статьи наиболее свежей версией бала 1.4.7. Бинарники для Windows этой версии можно взять с ftp://ftp.gnupg.org/gcrypt/binary/gnupg … -1.4.7.exe . Оффсайт GPGShell - http://jumaros.de, последняя версия программы на момент написания статьи - 3.61.

Нужно сказать пару слов об алгоритме RSA. RSA - криптографический (криптография - наука о шифровании данных) алгоритм с открытым ключем. Алгоритмы шифрования бывают двух типов - симметричные (например AES, TEA, IDEA, BLOWFISH, TWOFISH) и с открытым ключем (DSA, RSA).

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

Для таких целей используются алгоритмы шифрования с открытым ключем. Выглядит это так: пользователь генерирует пару ключей - закрытый (private) и открытый (public). В случае с RSA сообщение, зашифрованное открытым ключем, может быть расшифровано только с помощью закрытого ключа, а зашифрованное закрытым - расшифровано только открытым. Что это дает?

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

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

Хэш - это данные заданного размера, такие, что

  • Любому сообщению соответствует только один хэш, притом зная сообщение легко вычислить хэш
  • Имея хэш, невозможно восстановить исходное сообщение иначе как посчитать хэш для каждого из возможных

сообщений и сравнить его с заданным хэшом.

  • Зная сообщение, практически невозможно найти второе сообщение такое, чтобы у этих двух сообщений был один хэш.
  • Практически невозможно найти пару случайных сообщений с одинаковыми хэшами.
  • Функция, вычисляющая хэш для заданного сообщения, называется хэш-функцией. Наиболее популярные хэш-функции: MD5, SHA, RIPEMD160, SHA256, SHA512.

Итак, посчитав хэш, пользователь шифрует его своим закрытым ключем и присоединяет к сообщению (создает подпись). Чтобы убедится в авторстве пользователя и целостности сообщения, необходимо посчитать его хэш, расшифровать подпись открытым ключем пользователя и сравнить значения. Если они одинаковы - значит проверка подписи прошла успешно. На этом теория заканчивается и начинается установка GnuPG smile. Во время установки поставте галочки в списке, как на скриншоте:

gnupg_install.jpg (увы, картинка утеряна)

Далее введите путь до директории, в которую Вы хотели бы установить GnuPG. Это значение можно оставить без изменений. Жмем Next, ставим галочку "Do not create shortcuts" - можно приступать.

Установка GnuPG завершена - теперь ставим GPGShell. Указываем директорию, в которую хотим поставить программу, далее выбираем "Default application language: Russian"

gpgshell_install.jpg (увы, все картинки к этой статье были утеряны)

Указываем, какие ярлыки создавать - по вкусу, начинаем инсталляцию.

Если возникнет проблема, связанная с определением пути до GnuPG, идем в My Computer->Properties->Advanced->Environment Variables, в нижнем списке выбираем Path, жмем Edit, если в конце строки не стоит точка с запятой - добавляем, затем пишем путь до GnuPG, тот, что указывали при его инсталяции. Сохраняем изменения. Затем, чтобы убедиться, что все сделано правильно, запускаем GPGConfig.

Запускаем GPGKeys. Идем в Настройки->GnuPG..., выбираем закладку "Совместимость с PGP" и настраиваем все в точности так, как на скриншете: gpgshell_config.jpg

Давим ОК, затем идем в Ключ(и)->Новый. Будет запущен диалог gnupg, в котором нужно ответить на вопросы следующим образом: gpg_keygen.jpg

Разумеется, на вопрос "Real name" нужно указать свое имя или никнейм, "Email address" - свой почтовый адрес, на "Comment" можно ответить по своему усмотрению или вообще просто нажать enter. В ответ на "Enter passphrase" нужно указать пароль, которым будет зашифрован закрытый ключ - без этого пароля никто не сможет получить к нему доступ. Затем ввести пароль еще раз в ответ на "Repeat passphrase". При вводе пароля никакие символы не отображаются - даже звездочки. Это сделано для того, чтобы тот, кто стоит у Вас за спиной, не мог узнать даже количество символов в пароле. Затем потребуется несколько секунд на генерацию ключей, после чего сгенерированная пара RSA ключей будет добавлена в список GPGKeys. key_created.jpg

Однако данная пара может использоваться только для создания цифровых подписей. Для того, чтобы что-то шифровать придется создать подключ. Жмем по созданному ключу правой кнопкой мыши (ПКМ), выбираем Редактировать->Добавить подключ. subkey_menu.jpg

В появившемся диалоге нужно ответить на вопросы следующим образом: subkey_dialog.jpg

В ответ на просьбу ввести пароль, введите пароль, выбранный Вами при создании пары RSA ключей. После того, как подключ будет создан, обязательно введите "save" и нажмите enter - иначе подключ не будет сохранен. Убедитесь, что подключ был успешно создан - выбираем в GPGKeys нашу пару RSA ключей, ПКМ->Подключи... Если отображенный список не пуст, значит все было сделано правильно. В противном случае Вы либо неправильно настроили GnuPG, либо установили устаревшие версии GnuPG и GPGShell.

Выбираем свою пару ключей, ПКМ->Экспорт, сохраняем открытый ключ где угодно под любым именем. GPGShell предложит также экспортировать секретный ключ - откажитесь. Затем любым доступным способом передаем файл с открытым ключем своему собеседнику. Файл текстовый, так что можно передать его содержимое как обычное сообщение. Ваш собеседник также должен иметь пару RSA ключей и передать Вам свой открытый ключ. В GPGKeys говорим Ключ(и)->Импорт, и импортируем открытый ключ своего собеседника. pubkey_imported.jpg

Точно так же добавляем открытые ключи всех остальных своих друзей pubkey_imported2.jpg

Переходим к настройкам Psi. Если клиент был запущен, придется перезапустить его. Перейдите в состояние offline, и в меню программы выберите "Account Setup". В появившемся списке выбираем свою учетную запись и жмем "Modify". В закладке "Details" жмем Select Key и выбираем свой секретный ключ. psi_select_key.jpg

Затем ищем в контакт-листе людей, чьи открытые ключи нам известны, ПКМ->Assign OpenPGP Key, в появившемся списке выбираем ключ, соответствующий данному пользователю. Пользователь со своей стороны должен повторить Ваши действия. Заходим в online, Psi при этом должен затребовать пасс к закрытому ключу: psi_pass.jpg Затем в правом нижнем углу чата давим кнопку с иконкой замка ("Toogle encryption") и пытаемся что-то написать. Если все было сделано верно, чат будет выглядеть примерно так: psi_chat.jpg

Если Psi ругается на настройки OpenPGP, значит Ваш собеседник неправильно настроил GnuPG, ему придется удалить свою пару ключей, перечитать эту статью и сгенерировать новую.

Итак, на этом у меня все, хочу только обратить Ваше внимание на то, что созданную пару RSA ключей грех не заюзать для шифрования e-mail. Сделать это по описанному мной в начале статьи алгоритму очень просто, если использовать маздаевский буфер обмена и утилиту GPGTray.

(с) drmist\SaTaNiC Team

Edit - History - Print - Recent Changes - Search
Page last modified on August 23, 2013, at 08:48 PM EST