- SSH3 は HTTP/3 上で動作する次世代の セキュアシェルプロトコル であり、従来の SSHv2 と比べて セッション接続速度 を大幅に向上させる
- QUIC と TLS 1.3 によりセキュアチャネルを形成し、OAuth 2.0、OpenID Connect などのモダンな認証基盤をサポートする
- サーバーを秘密のパスの背後に隠せるため、ポートスキャン などの攻撃に強く、UDPポートフォワーディングや QUIC マルチパスなどの 新機能 を提供する
- OpenSSH の複数の中核機能をすでに採用しているが、現時点では 実験的 段階のため、本番環境への展開は推奨されない
- SSH3 という名前は適切ではないという意見が多く、標準化ドラフトでは「Remote Terminals over HTTP/3」に変更されており、名称変更が進められている
SSH3プロジェクトの概要と重要性
- SSH3 は、既存の SSH プロトコルを HTTP/3 とモダンな Web 技術に合わせて再設計したオープンソースソリューション
- 既存の SSH 接続プロトコル (RFC4254) の意味論を HTTP/3 Extended CONNECT と QUIC+TLS 1.3 チャネル上で再構成
- IETF インターネットドラフト draft-michel-remote-terminal-http3 として提案されており、セッション接続速度 を大きく短縮し、モダン認証方式の拡張 など多くの利点を提供する
- 他の SSH 実装と比べて、QUIC の利用や 隠蔽型サーバー構成 のような革新的なアイデアが特徴
主な機能と特徴
- 高速なセッション接続
- 従来の SSHv2 接続は平均して 5〜7 回のネットワーク往復が必要なのに対し、SSH3 は 3 往復 だけで済み、ユーザーが感じる待ち時間を大幅に減らす
- キー入力遅延 (latency) は従来水準を維持する
- 強化されたセキュリティ
- TLS 1.3、QUIC、HTTP 認証 に基づき、すでに電子商取引やインターネットバンキングなどで使われている検証済みのセキュリティプロトコルを活用
- RSA、EdDSA/ed25519 ベースの公開鍵方式、および OAuth 2.0、OpenID Connect など多様な認証方式をサポート
- Google、Microsoft、Github のアカウントでもログイン可能
- サーバーを隠す機能
- サーバーを特定の 秘密 URL(例: https://192.0.2.0:443/M3MzkxYWMx... など)の背後に置き、その URL に認証リクエストが来た場合にのみ応答する
- それ以外のリクエストには 404 Not Found を返すため、インターネット上の攻撃者やクローラーはサーバーの存在を把握できない
- ただし、秘密のパスは認証の代替ではないため、必ず別の認証メカニズム(公開鍵、パスワード、OIDC など)を使うことが推奨される
- 継続開発中の実験的プロジェクト
- 構造的に信頼できるセキュリティ検証が必要であり、運用サーバーへの導入は推奨されない
- 実験環境または閉域ネットワークでコミュニティのフィードバックを集めている
- OpenSSH 互換性と追加機能
- ~/.ssh/authorized_keys と known_hosts のパース、ssh-agent 連携、TCP/UDP ポートフォワーディング、Proxy Jump をサポート
- UDP フォワーディング により DNS・RTP・QUIC サービス など UDP ベースのサーバーへのアクセス経路を提供し、QUIC datagram 経路を利用
- X.509 証明書 による HTTPS レベルのサーバー認証機能
- キーレス (Keyless) 認証: OpenID Connect により公開鍵をコピーせずに、企業 SSO や Google/GitHub などの外部アカウントだけで接続可能
結論
- SSH3 は モダンなネットワークプロトコルと認証 を導入し、SSH 環境を進化させるオープンソースの実験的プロジェクト
- 速度、柔軟性、セキュリティを大幅に強化するが、十分な検証が済むまでは 本番運用での利用には慎重であるべき
- OpenSSH に近いユーザー体験を提供し、新機能も豊富である
- 適切なセキュリティ評価とコミュニティ参加を通じて、次世代 SSH として定着する可能性を持っている
1件のコメント
Hacker Newsのコメント
ssh3という名前は本当に好きになれなかったが、リポジトリの冒頭に「SSH3 は将来的に改名予定です。現時点では SSH Connection Protocol (RFC4254) を HTTP/3 Extended Connect 上で動かす形ですが、必要な変更が多く、既存の SSH とも大きく異なるため、簡単に統合できるものではありません。仕様ドラフトはすでに ‘Remote Terminals over HTTP/3’ に改めており、より良い恒久的な名前を検討する時間が必要です」と書かれていて良かったSSH3の代わりにSecure Hypertext Interactive TTYみたいな名前はどうかという提案SSH/3はどうだろうと思った (SSH + HTTP/3という感じ)SSH2/3くらいならどうかと思った。大半はSSH2だが、HTTP/3 上に載る構造だscp転送ではかなりの速度向上が期待できるssh3ではヘッドオブラインブロッキングが解消されている可能性が高い。1 本の物理接続で複数ポートや複数接続を多重化するなら、より速くなるはずだconnection init、つまりネットワーク接続初期化の複雑さが高まり、結局は battle-tested なプロトコルにもとづくベストプラクティスに乗る必要がある、というのも理解できる。だが実際の転送内容がもはや hypertext ではないのに、ずっとhttpと呼び続けるのはやはり違和感があるconnection migrationやmultipath対応は QUIC の基本特性であり、ローミング機能や「内蔵 tmux」との違いについては、それがシステムに直接組み込まれていること自体に本当に価値があるのかはよく分からないSet-Locationはcdより望ましいし、remote-terminals-over-http3のような名前のほうがssh3より良いmultipath/migrationや TCP 関連のブロッキング問題まで解決できるなら、すでに大きな前進だ