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

Материал из Мир Jabber
Перейти к навигацииПерейти к поиску

Введение

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

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

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

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

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

Примечания:

  1. Часто происходит путаница между SASL и передачей пароля открытым текстом. На самом деле, в случае, если включена опция "передавать пароль открытым текстом", пароль передается зашифрованным. Пароль передается открытым текстом только когда отключен SASL, что практически никогда не происходит.
  2. SSL считается устаревшим, поэтому рекомендуется использовать TLS.
  3. Сервер livejournal.com принципиально не поддерживает шифрование SSL/TLS для снижения нагрузки, ограничиваясь SASL
  4. Исключение составляет Tkabber, при его использовании трафик не только не возрастает, но ещё и уменьшается.

Ссылки