概要
- SSH3 は、SSHプロトコルをHTTP/3の上に再設計した実験的なリモートターミナル技術
- QUIC+TLS1.3 による高速なセッション確立とHTTP認証(OAuth2.0等)をサポート
- 隠しURL機能 やUDPポートフォワーディングなど、従来SSHv2にない新機能を提供
- セキュリティ検証中 のため、本番運用は非推奨
- オープンソース開発 とコミュニティ協力による標準化と安全性向上を目指す
SSH3とは:HTTP/3上の新しいSSHプロトコル
- SSH3 は、従来のSSHプロトコル(RFC4254)を HTTP/3 Extended connect 上で動作させる実験的プロジェクト
- 公式名称は「 Remote Terminals over HTTP/3」に変更予定
- QUIC+TLS1.3 を用いた安全なチャネル確立
- HTTP認証 (OAuth 2.0、OpenID Connectなど)に対応し、Google/Microsoft/Githubアカウントでの認証も可能
- 従来のSSH認証 (パスワード、公開鍵)も引き続きサポート
SSH3の主な特徴と利点
- セッション確立の高速化
- SSHv2は5~7往復必要だが、SSH3は 3往復 で完了
- 実際のキーストローク遅延は変わらず
- 新しい認証方式
- OAuth 2.0 や OpenID Connect によるSSO
- 企業アカウントや外部サービスアカウントでのログイン
- 堅牢なセキュリティ基盤
- TLS1.3、QUIC、HTTP による広く実績ある暗号化
- X.509証明書 によるサーバ認証
- UDPポートフォワーディング
- QUICやDNS、RTPなど UDPベースのサービス にも対応
- サーバの秘匿化
- 秘密のURLパス でサーバを隠し、スキャン攻撃や辞書攻撃を回避
- 404応答による存在の秘匿
セキュリティと運用上の注意
- SSH3は実験段階
- 現時点では 本番環境での運用は非推奨
- サンドボックスやプライベートネットワークでのテスト推奨
- 十分な 暗号レビューと脆弱性検証 が必要
- 秘密URLは認証の代替不可
- 秘密URLのみでアクセス制御せず、 従来の認証方式 を必ず併用
- URLの秘匿は発見リスク低減用
SSH3の主な新機能
- UDPポートフォワーディング
- QUICデータグラムによるUDP転送
- X.509証明書認証
- Let's Encrypt等で取得した証明書を利用可能
- OpenID Connectによるキー不要認証
- SSOや外部アカウントでの認証
- サーバの秘匿化
- 秘密リンクによる非公開運用
OpenSSH互換機能
- ~/.ssh/authorized_keys の解析
- known_hosts によるサーバ認証(X.509未使用時)
- ssh-agent との連携、エージェント転送
- TCPポートフォワーディング (リバースは今後対応予定)
- Proxy Jump 機能(UDP経由でのプロキシ転送)
- ~/.ssh/config の一部オプション対応(Hostname, User, Port, IdentityFile, UDPProxyJump)
インストールとセットアップ
- Go install によるインストール
go install github.com/francoismichel/ssh3/cmd/...@latest
- ソースコードからのビルド
git clone https://github.com/francoismichel/ssh3- クライアント:
go build -o ssh3 cmd/ssh3/main.go - サーバ:
CGO_ENABLED=1 go build -o ssh3-server cmd/ssh3-server/main.go
- パス設定
/usr/binへのコピー、またはPATHへの追加
サーバのデプロイと証明書管理
- サーバ起動例
- Let's Encrypt証明書:
ssh3-server -generate-public-cert my-domain.example.org -url-path /ssh3 - 自己署名証明書:
ssh3-server -generate-selfsigned-cert -url-path /ssh3 - 既存証明書使用:
ssh3-server -cert /path/to/cert -key /path/to/key -url-path /ssh3
- Let's Encrypt証明書:
- 証明書の種類
- 公開ドメイン名があればLet's Encrypt推奨
- IPアドレスのみの場合は自己署名証明書も可
- root権限 での実行推奨(他ユーザーとしてのログイン時)
認証情報の管理
- ~/.ssh/authorized_keys および ~/.ssh3/authorized_identities でユーザー認証情報を管理
- 詳細設定や運用方法は今後のドキュメント拡充予定
コミュニティへの呼びかけ
- セキュリティ研究者や開発者の協力 を歓迎
- コードベースのレビューや標準化団体への橋渡しを希望
- IETF/IRTF プロセスへの進展も視野
- 安全性と信頼性の向上 に向けて共同開発を推進
まとめ
- SSH3 はSSHの新たな進化形として、 HTTP/3とQUIC の利点を活かしつつ、従来SSHの使い勝手も継承
- 現段階では 実験的 であり、セキュリティ検証とコミュニティの協力が不可欠
- 本番運用前には十分な検証とレビュー が必要
- 将来的な標準化と普及 を目指すオープンなプロジェクト