Вышел SSH3: SSH теперь маскируется под HTTPS

Доступен первый официальный выпуск экспериментальной реализации сервера и клиента для протокола SSH3 , оформленного в форме надстройки над протоколом HTTP/3, использующей QUIC (на базе UDP) и TLS 1.3 для установки защищённого канала связи и механизмы HTTP для аутентификации пользователей. Проект ведёт Франсуа Мишель (François Michel), аспирант Лувенского католического университета (Бельгия), при содействии Оливье Бонавентуры (Olivier Bonaventure), профессора этого же университета, известного разработкой Multipath TCP и сегментной маршрутизации IPv6 для ядра Linux, а также участием в написании 10 RFC и более 60 черновиков сетевых спецификаций. Код эталонной реализации клиента и сервера написан на языке Go и лицензирован под Apache 2.0.

Основными особенностями SSH3 являются:

  1. Новый подход к семантике классического протокола SSH: SSH3 использует механизмы HTTP для реализации функциональности, ранее свойственной SSH, что позволяет внедрить дополнительные возможности и скрыть активность SSH среди другого трафика.
  2. Интеграция с HTTP: SSH3 сервер выглядит как обычный HTTP-сервер и работает на порту 443 (HTTPS). Трафик SSH3 смешивается с обычным HTTP-трафиком, что усложняет выявление SSH-серверов и проведение атак на них.
  3. Секретный путь-идентификатор: для усиления безопасности сервера SSH3 может использоваться секретный путь-идентификатор. Этот идентификатор, указанный в URL, позволяет подключиться к серверу только с правильным идентификатором. Если идентификатор указан некорректно, сервер выдаст штатную ошибку “404”.
  4. Расширенные функции аутентификации: SSH3 поддерживает аутентификацию с использованием сертификатов X.509 и методов OAuth 2.0/OpenID Connect, помимо традиционных методов SSH.
  5. Поддержка перенаправления UDP-портов: помимо TCP-портов, SSH3 позволяет перенаправление UDP-портов, включая QUIC, DNS и RTP.
  6. Расширенные функции протокола QUIC: SSH3 включает возможности протокола QUIC, такие как миграция соединений без разрыва подключения и установка multipath-соединений для распараллеливания трафика по нескольким маршрутам.
  7. Улучшенное время установки соединения: SSH3 сокращает количество сетевых итераций при установке соединения с сервером, что повышает его эффективность.
  8. Использование TLS 1.3 для шифрования: для шифрования канала связи SSH3 использует протокол TLS 1.3, обеспечивая высокий уровень безопасности.
  9. Множество методов аутентификации: SSH3 поддерживает различные методы аутентификации, включая пароли, открытые ключи (RSA и EdDSA/ed25519) и OAuth 2.0.
  10. Интеграция с внешними провайдерами: SSH3 позволяет использовать аутентификацию через сторонних провайдеров, таких как Google, Microsoft и GitHub, с помощью протокола OAuth 2.0.
  11. Совместимость с OpenSSH: Реализация SSH3 поддерживает множество базовых функций OpenSSH, такие как файлы authorized_keys, конфигурационные файлы клиента, аутентификация через сертификаты и механизм known_hosts. Она также совместима с OpenSSH Agent и поддерживает прямой проброс TCP-портов.
Public Release.