
Быстрый, безопасный протокол оболочки, построенный на HTTP/3, QUIC и TLS 1.3. Поддерживает OAuth2, OpenID Connect и классическую аутентификацию SSH с пробросом UDP-портов и возможностями скрытого сервера.
[!NOTE] SSH3, вероятно, сменит название. Он по-прежнему использует протокол SSH Connection Protocol (RFC4254), работающий поверх HTTP/3 Extended connect, но требуемые изменения слишком масштабны и слишком далеки от философии популярных реализаций SSH, чтобы рассматривать их для интеграции. Черновик спецификации уже переименован ("Remote Terminals over HTTP/3"), но нам нужно время, чтобы подобрать хорошее постоянное название.
SSH3 — это полный пересмотр протокола SSH, отображающий его семантику на механизмы HTTP. Он появился в результате нашей исследовательской работы, и мы (исследователи) недавно предложили его в качестве Internet-Draft (draft-michel-remote-terminal-http3-00).
По сути, SSH3 использует QUIC+TLS1.3 для установки защищённого канала и механизмы HTTP Authorization для аутентификации пользователей. Среди прочего, SSH3 обеспечивает следующие улучшения:
[!TIP] Хотите быстро начать? Узнайте, как установить SSH3. Вы научитесь настраивать SSH3-сервер и использовать SSH3-клиент.
Быстрее — для установления сеанса, а не пропускной способности! SSH3 обеспечивает значительно более быстрое установление сеанса, чем SSHv2. Установление нового сеанса с SSHv2 может занимать от 5 до 7 сетевых круговых задержек, что легко заметно пользователю. SSH3 требуется всего 3 круговые задержки. Задержка нажатия клавиш в активном сеансе остаётся неизменной.
SSH3 (сверху) VS SSHv2 (снизу): установление сеанса при ping 100 мс до сервера.
В то время как SSHv2 определяет собственные протоколы для аутентификации пользователей и установки защищённого канала, SSH3 полагается на надёжные и проверенные временем механизмы TLS 1.3, QUIC и HTTP. Эти протоколы уже широко используются для защиты критически важных приложений в Интернете, таких как электронная коммерция и интернет-банкинг.
SSH3 уже реализует распространённые методы аутентификации на основе пароля и открытого ключа (RSA и EdDSA/ed25519). Он также поддерживает новые методы аутентификации, такие как OAuth 2.0, и позволяет входить на ваши серверы, используя учётные записи Google/Microsoft/Github.
Хотя SSH3 демонстрирует потенциал для более быстрого установления сеанса, он всё ещё находится на ранней стадии доказательства концепции. Как и для любого нового сложного протокола, требуется экспертная криптографическая проверка в течение длительного времени, прежде чем можно будет сделать обоснованные выводы о безопасности.
Мы разрабатываем SSH3 как проект с открытым исходным кодом, чтобы облегчить обратную связь и анализ со стороны сообщества. Однако мы пока не можем рекомендовать его для использования в производственных системах без дополнительного рецензирования. Пожалуйста, сотрудничайте с нами, если у вас есть соответствующий опыт!
Учитывая текущее состояние прототипа, мы рекомендуем тестировать SSH3 в изолированных средах или частных сетях. Имейте в виду, что подключение экспериментальных серверов напрямую к Интернету может создать риски до проведения тщательной проверки безопасности.
Хотя скрытие серверов за секретными путями имеет потенциальные преимущества, это не отменяет необходимости строгого анализа уязвимостей перед выходом в продакшн. Мы воодушевлены будущими возможностями SSH3, но призываем сначала провести дополнительную проверку.
С помощью SSH3 вы можете избежать обычного стресса от сканирования и атак по словарю на ваш SSH-сервер. Подобно вашим секретным документам Google Drive, SSH3-сервер может быть скрыт за секретной ссылкой и отвечать только на попытки аутентификации, которые сделали HTTP-запрос по этой конкретной ссылке, например:
ssh3-server -bind 192.0.2.0:443 -url-path <my-long-secret>
Заменив <my-long-secret>, скажем, на случайное значение M3MzkxYWMxMjYxMjc5YzJkODZiMTAyMjU, ваш SSH3-сервер будет отвечать только на попытки подключения SSH3, сделанные по URL https://192.0.2.0:443/M3MzkxYWMxMjYxMjc5YzJkODZiMTAyMjU, а на остальные запросы будет отвечать 404 Not Found. Таким образом, злоумышленники и сканеры в Интернете не смогут обнаружить присутствие вашего SSH3-сервера. Они увидят лишь простой веб-сервер, отвечающий кодом 404 на каждый запрос.
ВАЖНО: размещение SSH3-сервера за секретным URL может снизить влияние атак сканирования, но никогда не заменит классические механизмы аутентификации. Секретная ссылка должна использоваться только для того, чтобы ваш хост не был обнаружен. Знание секретного URL не должно предоставлять кому-либо доступ к вашему серверу. Используйте классические механизмы аутентификации, описанные выше, для защиты вашего сервера.
SSH3 предоставляет новые возможности, которые не мог предоставить протокол SSHv2.