Настройка GPG-шифрования между Psi и Gajim

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

Jabber gpg gajim psi 01.png

Настройка состоит из нескольких этапов:

  • создание пары "Открытый-Закрытый" ключ
  • указание собственного закрытого ключа в своем Jabber-клиенте
  • обмен открытыми ключами
  • присвоение открытого ключа Вашего собеседника соответствующему контакту в ростере.

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


Создание пары ключей в консолиПравить

Создание пары ключей утилитой gpg

Создание пары "открытый-закрытый" ключ в консоли делается с использованием утилиты gpg передачей ей параметра --gen-key, после чего в диалоговом режиме Вам необходимо будет ответить на несколько вопросов, касающихся параметров ключа и данных его владельца:

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


  • Идентификатор пользователя (к примеру, его имя и фамилия)
  • email-адрес, после чего еще раз надо будет подтвердить правильность введенной информации.
  • Пароль для данного ключа.

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

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

Для начала выполните команду gpg --list-keys, она выведет список доступных ключей и их идентификаторы.

После этого выполните команду gpg --armor --export ID КЛЮЧА > gajim_gpg.asc, например, gpg --armor --export 8F2CD94D > gajim_gpg.asc для данного примера. Получившийся в итоге файл Вы можете отправить Вашему собеседнику, к примеру, по почте, либо передать при личной встрече.


Создание пары ключей в KgpgПравить

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

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

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

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

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

Указание собственного ключа в GajimПравить

Теперь необходимо указать свой закрытый ключ в Jabber-клиенте, чтобы тот мог его использовать. В Gajim для этого выберите пункт "Учетные записи" в меню "Правка".

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

Указание собственного ключа в PsiПравить

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

Импорт открытых ключейПравить

Теперь самое время импортировать открытый ключ своего собеседника в свой менеджер ключей. В Kgpg для этого в меню "Ключи" выберите пункт "Импорт ключа...", после чего укажите файл, который Вам передал Ваш собеседник. Ключ будет импортирован.

Для импорта открытого ключа в консоли с использованием утилиты gpg выполните команду gpg --import имя_файла, где "имя_файла" - открытый ключ Вашего собеседника. Ключ будет импортирован.

Назначение контакту открытого ключаПравить

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

В Gajim для этого нажмите правой клавишей на необходимом контакте, выберите пункт "Управление контактом" -> "Назначить OpenPGP ключ", после чего выберите открытый ключ Вашего собеседника.

В Psi в контекстном меню контакта выберите пункт "Присвоить ключ OpenPGP", после чего аналогично выберите открытый ключ собеседника.

Защищенный разговорПравить

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

Теперь Ваш разговор надежно шифруется между клиентами при помощи GPG-ключа.