Настройка GPG-шифрования между Psi и Gajim
Итак, Вы решили озаботиться конфиденциальностью Ваших разговоров в сети Jabber и попытаться исключить возможность перехвата Ваших сообщений на стороне сервера, используя систему шифрования GPG. Рассмотрим настройку такого шифрования между двумя популярными клиентами Psi и Gajim.
Настройка состоит из нескольких этапов:
- создание пары "Открытый-Закрытый" ключ
- указание собственного закрытого ключа в своем Jabber-клиенте
- обмен открытыми ключами
- присвоение открытого ключа Вашего собеседника соответствующему контакту в ростере.
Ниже каждый из этих шагов рассмотрен более подробно, а работа с ключами шифрования рассмотрена в двух вариантах - графический, с использованием менеджера ключей KGpg и консольный, с применением утилиты 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-ключа.