Шифрование в Jabber

Материал из Мир Jabber
Версия от 15:39, 24 января 2009; Grumbler (обсуждение | вклад) (указан принцип работы TLS. Упомянуто, что сервер LJ не поддерживает шифрование)
Перейти к навигацииПерейти к поиску

Введение

Для обеспечения безопасного подключения к серверу, а также для сохранения конфиденциальности разговоров в сети Jabber используются разнообразные системы шифрования. При подключении к серверу вся сессия между клиентом и сервером (т.е., Ваш логин, пароль и все то, о чем вы говорите) может шифроваться при помощи одного из протоколов - SSL либо TLS. Для большей конфиденциальности и для исключения перехвата трафика на сервере в дополнение к SSL/TLS можно использовать шифрование с использованием пары открытых и закрытых ключей - GPG или OTR, а для сохранения конфиденциальности пароля используется SASL. Ниже разъясняется значение этих сокращений.

Терминология

  • SASL - Один из способов передачи пароля. При нем вместо пароля передается его хэш-сумма, поэтому получить пароль недоброжелателю при таком способе логина проблематично
  • SSL - традиционный способ шифрования. При включенном SSL шифрование начинается с самого начала передачи данных. SSL обычно использует специально выделенный порт 5223
  • TLS - более новый способ шифрования, базируется на SSL. Сеанс начинается без шифрования, и первым делом стороны договариваются, будут ли они работать по шифрованному каналу, и по какому шифру, затем оба включают шифрование. Поэтому возможен вариант "TLS если возможно". Работает на том же порту, что и Jabber без шифрования, обычно 5222.
  • GPG - свободная реализация PGP. Используется для шифрования исключительно сообщений и проходит сервер в зашифрованном виде. Дешифруется на конечном клиенте по доверенному ключу. Для шифрования используется открытый и закрытый ключи.
  • OTR - протокол шифрования, специально созданный для сетей обмена мгновенными сообщениями. Шифрует только сообщения. Не требует обмена ключами.

Что использовать?

Для большей безопасности при общении в сети Jabber стоит как минимум использовать один из протоколов шифрования сессии - TLS либо SSL[1]. Благодаря этому практически исключается перехват трафика (т.е., Ваших паролей и разговоров) в Вашей локальной сети либо на промежуточных узлах между клиентом и сервером. Сейчас практически не осталось серверов, не поддерживающих один из этих протоколов (но сервер livejournal.com принципиально не поддерживает шифрование SSL/TLS, ограничиваясь SASL), поэтому практически всегда сессия изначально защищена. Ценой безопасного общения становится немного увеличившееся время подключения к серверу и слегка возросший трафик[2], но оно стоит того. Такого шифрования хватит для большинства случаев. Тем людям, для кого важна конфиденциальность передаваемой информации, стоит в дополнение к SSL/TLS использовать шифрование GPG или OTR. В любом случае не стоит забывать про необходимость иметь надежный пароль. Также рекомендуется включать SASL логин, при его использовании количество переданного трафика и время соединения практически не увеличивается.

Примечания:

  1. SSL считается устаревшим, поэтому рекомендуется использовать TLS.
  2. Исключение составляет Tkabber, при его использовании трафик не только не возрастает, но ещё и уменьшается.

Ссылки

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

Настройка OTR

Немного о SSL/TSL и SASL на ткаббер-вики

GPG в Psi

Vonderer blog. "Безопасность и покой"