id: Гость   вход   регистрация
текущее время 14:48 28/03/2024
создать
просмотр
редакции
ссылки

Шифрование сообщений с помощью OTR


Довольно интересный способ шифрования сообщений, основанный на использовании протокола OTR, существует в кроссплатформенном клиенте мгновенных сообщений – Pidgin, который, однако, в большей степени используется пользователями ОС Linux. Хотя мне лично гораздо более импонирует OpenPGP шифрование, данный способ может быть интересен пользователям данной программы обмена мгновенными сообщениями, к тому же производимые настройки не вызовут больших затруднений. С другой стороны данный протокол нельзя сравнивать с технологией OpenPGP по причине ряда существенных, принципиальных отличий (в частности, отсутствия ЭЦП), о деталях протокола можно почитать данном обсуждении. Насколько совместим протокол, используемый в модуле Pidgin, с модулями поддержки OTR в некоторых других мессенджерах мне неизвестно. Скрин-шот окна модуля приведен на рисунке.


 (34 Кб)


Итак приступим:


Сначала загляните в меню Pidgin "Сервис – Модули" и попробуйте найти модуль "Off-the-Record Messaging". Если этого модуля у вас нет, то нужно сделать следующее:


  1. Выйдите из программы Pidgin

  1. Установите модуль "Off-the-Record Messaging" с помощью следующей команды:


Команда приведена для ОС Ubuntu Linux

  1. Запустите Pidgin

  1. Найдите установленный модуль в меню "Сервис – Модули"

  1. Отметьте галочкой данный модуль с целью его активации

  1. Нажимте на кнопку "Настроить модуль"

  1. Откройте вкладку окна "Config"

  1. Выберите нужную (если она не одна) учетную запись напротив поля "Key for Account"

  1. Нажмите кнопку "Generate" для генерации ключа шифрования

После этих операций вместо слов "No Key Present", что изображено на скрин-шоте, появится слово "fingerprint" (отпечаток), а далее, против этого слова, длинный буквенно-цифровой код. Это хеш-значение вашего ключа шифрования. Если кнопка "Generate" не активна, проверьте, возможно вместо слов "No Key Present" у вас уже присутствует слово "fingerprint" с отпечатком ключа шифрования. Это значит, что ключ уже создан и скорее всего это произошло при установке модуля (если же ключ был сгенерирован заранее сборщиками пакета, то это очень плохой знак, однако подробного расследования автор данной заметки не проводил. Данный случай описывается по причине того, что мой собеседник пожаловался именно на такую ситуацию). Остальные настройки окна оставьте по умолчанию.

Теперь в окне обмена сообщениями вы получите дополнительное информационное поле "OTR Not Private". Ваша программа готова для начала приватного общения с вашими собеседниками, но необходимо, что бы они произвели те-же самые процедуры.

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

  1. Вновь откройте модуль, только на этот раз не вкладку "Config", а вкладку "Known finderprint". В данном поле вы увидите учетную запись вашего собеседника и значение поля "fingerprint", соответствующее хеш-значению ключа вашего собеседника (иначе это можно назвать отпечатком ключа).

После этого, если для вас это важно, свяжитесь каким-либо другим способом с вашим собеседником (например по телефону или зашифрованной и подписанной с помощью заверенных ключей OpenPGP электронной почтой) и сверьте коды друг друга. Коды должны совпадать. Это будет значить, что вы действительно общаетесь с тем человеком, которого считаете своим собеседником. До тех пор пока вы не произведете эту проверку и операцию, приведенную в п.11, в информационном поле чата вы будете видеть сообщение "OTR Unverified", свидетельствующее о том, что проверка отпечатков не произведена и чат не может считаться авторизованным.

  1. Отметьте мышью (все это делается во вкладке "Known finderprint"), что бы выделить, учетную запись вашего корреспондента и нажмите накнопку "Verify Fingerprint".

  1. После в выпадающем меню выберите ответ "I Have verifid that this is in fact correct fingerprint for the [ник вашего собеседника]". Давая утвердительный ответ на данное предложение вы тем самым подтверждаете, что произвели проверку отпечатков ключей, т.е. на стороне вашего собеседника присутствует действительно тот человек, за которого себя выдает собеседник чата (вы это сверили по телефону, с помощью заверенных ключей OpenPGP по e-mail или иным способом).

После проведения этих операций в окне чата вы будете видеть информационное поле "OTR Private". Это значит, что теперь вы общаетесь в приватной беседе.


 (7 Кб)


При повторном установлении сеанса переписки (к примеру на следующий день) в информационном поле вы будете видеть сообщение "OTR Not Private", которое сменится на сообщение "OTR Private", свидетельствующее о начале приватного чата, после отправки одним из вас любого произвольного сообщения.


В окне настройки модуля вы так же сможете видеть кнопки "Start Privatr Connection" и "End Private Connection", назначение которых логически понятно, а так же кнопку "Forget Fingerprin", по нажатию на которую вы обнулите поле отпечатков ключей "Known finderprint". Для их генерирования вам вновь придется пройти процедуру генерирования MAC-кодов и проверки доверия, как описано в п. 10-12.


После установки модуля вам будет так же доступно дополнительное меню в листе контактов по клику правой кнопки мыши на контакте собеседника.




Нужно сказать, что для Pidgin предусмотрен еще один модуль шифрования – "Pidgin-Encryption".


file:scr-2_.jpg


Если в вашем клиенте он отсутствует по умолчанию, его можно установить следующей командой:



Команда приведена для ОС Ubuntu Linux


Для запуска модуля в работу необходимо сделать следующее:


  1. В меню Pidgin "Сервис-Модули" найдите этот модуль и отметьте его кликом мыши (поставьте галочку) с целью активации.

  1. Нажмите на кнопку "Настроить модуль"

  1. В открывшейся по умолчанию первой вкладке "Конфиг" в дополнение к отмеченным пунктам отметьте последний пункт "Show lock icon for each line of chat". Это не обязательно, но впоследствии в окне чата вы будете видеть символ замка около каждого сообщения, свидетельствующий о том, что чат шифрован.

  1. Перейдите во вкладку "Локальные ключи". В этой вкладке вы увидите сгенерированные при старте модуля ключи для каждой учетной записи Pidgin. Размер сгенерированных по умолчанию ключей составляет 1024 бит. При желании вы можете произвести генерирование новых ключей, нажав на кнопку "Создать ключ заново". При этом вам будет предложено указать размер ключа. Максимальный размер ключа, который можно сгенерировать в этом модуле, составляет 4096 бит.

После активации модуля правее слова "Адресат" окна чата Pidgin появится символ замка.
file:encrypt-1.jpg
Для начала защищенного чата вашему собеседнику необходимо произвести те-же самые действия.

  1. После того, как вы выполнили предварительные настройки и готовы начать чат вам нужно кликом мыши по символу замка вызвать меню активации защищенного чата, которое состоит из одного единственного пункта – "Включить шифрование".

  1. Отправьте друг другу произвольное сообщение, что бы программы установили контакт, при этом произойдет обмен открытыми ключами. После этого вы увидите окно с сообещением об отпечатке ключа вашего корреспондента.

  1. Сверив отпечаток нажмите в полученном окне кнопку "Принять ключи". При этом ключ вашего собеседника должен появится во вкладке "Ключи надежного контакта". На этом этапе возможно придется перезапустить Pidgin.

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

  1. Вы можете начать сеанс защищенного общения. О том, что сообщения шифрованы вы будете извещены символом замка напротив каждого вашего послания и посланий вашего собеседника (п.3).

После установки модуля вам будет так же доступно дополнительное меню в листе контактов по клику правой кнопки мыши на контакте собеседника.