Шифрование в 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 логин, при его использовании количество переданного трафика и время соединения практически не увеличивается.
Примечания:
- ↑ Часто происходит путаница между SASL и передачей пароля открытым текстом. На самом деле, в случае, если включена опция "передавать пароль открытым текстом", пароль передается зашифрованным. Пароль передается открытым текстом только когда отключен SASL, что практически никогда не происходит.
- ↑ SSL считается устаревшим, поэтому рекомендуется использовать TLS.
- ↑ Сервер livejournal.com принципиально не поддерживает шифрование SSL/TLS для снижения нагрузки, ограничиваясь SASL
- ↑ Исключение составляет Tkabber, при его использовании трафик не только не возрастает, но ещё и уменьшается.