Прямой протокол сквозного безопасного чата
Управление по присвоению номеров в Интернете (IANA) официально присвоило порт 4605 протоколу безопасного обмена сообщениями SixChat End2End Direct, созданному Sixscape Communications, Pte. Ltd. Назначение было выдано IANA 11 сентября 2014 г. и внесено в официальный реестр ресурсов IANA по адресу https://www.iana.org/assignments/service-names-port-numbers.
Существует очень ограниченное количество номеров портов, которые IANA присваивает протоколам, признанным жизнеспособными, соответствующими текущим стандартам разработки протоколов и еще не охваченным существующими стандартами Интернета. Например, порт 25 был назначен протоколу электронной почты SMTP много лет назад. Это обеспечивает стандартный порт и уменьшает конфликты с другими протоколами. Технический обзор протокола SixChat был выполнен Ларсом Эггертом , уважаемым председателем Целевой группы по исследованию Интернета .
Протокол обмена сообщениями SixChat был создан Лоуренсом Э. Хьюзом, соучредителем и техническим директором Sixscape Communications, для их интернет-приложения SixChat. Новый протокол позволяет двум пользовательским агентам SixChat подключаться напрямую, выполнять взаимную аутентификацию с помощью цифровых сертификатов клиента X.509, а затем безопасно обмениваться симметричным сеансовым ключом (для шифрования всего контента). компании SixChat использует протокол регистрации личности (порт 4604, назначенный IANA) для регистрации и поиска адресов, а также функции инфраструктуры открытых ключей (для получения и использования цифровых сертификатов клиентов).
Для обмена прямыми сообщениями End2End требуются глобально маршрутизируемые («публичные») IP-адреса для всех задействованных узлов. Он несовместим с NAT (преобразованием сетевых адресов). Он может работать в частном Интернете (подмножество Интернета IPv4, использующее плоское адресное пространство без NAT) или между любыми двумя узлами общедоступного Интернета IPv6. NAT предотвращает входящие соединения, поэтому любой обмен сообщениями между пользователями должен использовать промежуточные серверы.
End2End Direct Messaging имеет несколько преимуществ по сравнению с косвенным обменом сообщениями через промежуточные серверы. Трафик End2End Direct сильно децентрализован и проходит только по кратчайшему сетевому пути между взаимодействующими сторонами. Это затрудняет перехват, мониторинг или блокировку. Промежуточные серверы создают проблемы с надежностью, продаваемостью и безопасностью. Гораздо проще отслеживать или блокировать сетевой трафик, который должен проходить через небольшое количество «узких мест».
Можно было бы использовать DNS для разрешения имен узлов (сопоставление имен узлов с IP-адресами) для обмена сообщениями End2End Direct, но DNS становится все более небезопасным, не имеет аутентификации для каждого пользователя для регистрации или обновления и требует много времени для распространения. У него нет хорошего способа публиковать цифровые сертификаты клиента X.509 для пользователей, и он может публиковать только адрес данного сетевого узла, а не узла, который последний раз использовался конкретным человеком. IRP обеспечивает высокозащищенный реестр адресов с аутентификацией каждого пользователя (обычно с использованием строгой аутентификации клиента на основе сертификата X.509). Зарегистрированная информация доступна сразу. IP-адреса мобильных узлов (например, смартфонов) могут часто меняться при подключении к различным точкам доступа Wi-Fi. Это не очень хорошо работает в модели DNS.
Протокол обмена сообщениями SixChat End2End представляет собой протокол потоковой передачи (на основе TCP, ориентированный на соединение). Его невозможно защитить с помощью TLS, который по своей сути является технологией клиент/сервер. Он обеспечивает взаимную строгую аутентификацию с использованием только цифровых сертификатов клиента X.509 (без использования сертификата сервера) и симметричный обмен ключами сеанса (посредством шифрования открытого/закрытого ключа или обмена эфемерными ключами Диффи-Хеллмана). Это рукопожатие основано на конструкции TLS, но не является клиент-серверным, а скорее между узлами. В отличие от TLS, он полностью находится на прикладном уровне, сообщения протокола основаны на XML.
Узлы, поддерживающие обмен сообщениями End2End Direct, не являются ни клиентом, ни сервером, но должны иметь возможность создавать и принимать сетевые соединения (следовательно, иметь характеристики как клиентов, так и серверов). Такой узел называется «Пользовательский агент».