Skip to content

sec(server): TLS を 1.2 以上に絞る / v0.8.6 - #66

Merged
5ym merged 1 commit into
mainfrom
sec/tls12
Oct 14, 2026
Merged

5ym merged 1 commit into
mainfrom
sec/tls12

Conversation

@5ym

@5ym 5ym commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

ブラウザ側の https(Kestrel)と、RDP サーバーへの TLS(SslStream)で、TLS 1.2 と 1.3 だけを使う。WebTransport(QUIC)はもともと 1.3。TLS 1.2 を使えない古い RDP サーバー(Windows 7 などで更新していないもの)にはつながらなくなる。

🤖 Generated with Claude Code

https://claude.ai/code/session_01QpDYXaosTCf5Q41gbCw8qt

@claude

claude Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Claude finished @5ym's task in 21s —— View job


レビュー結果

TLS 1.2 / 1.3 に絞る変更は、Kestrel 側(Program.cs)と RDP 側(Relay.cs)の両方に入っていて、意図どおりです。バージョンの更新(0.8.5 → 0.8.6)と README の記述も合っています。SslStream / UseHttps の呼び出し箇所はこの 2 つだけで、漏れはありません。

不具合・セキュリティ

  • 明確な不具合は見つかりませんでした。TLS 1.0 / 1.1 を無効にするのはセキュリティ上プラスです。
  • 要確認: RDP 側に Tls13 を明示すると、TLS 1.3 を使えるサーバーでは 1.3 で接続します。このとき CredSSP が証明書の公開鍵に結びつける処理が、1.2 のときと同じように動くか、実機で確認できていますか。TLS 1.3 に対応していない OS ではフラグが無視されて 1.2 になるはずです。詳細はインラインコメントに書きました。

設計

  • 軽微: Relay.cs は完全修飾名を使っていて、Program.cs の書き方と揃っていません(インラインコメント参照)。

テスト

  • tests/RelayTests.cs は AuthenticateAsServerAsync を使っていて、プロトコルの制限は検証していません。制限の確認は自動テストが難しい種類の変更なので、無理に追加する必要はないと思います。

所感

  • 小さく安全な変更で、README に互換性の影響(古い RDP サーバーにはつながらなくなる)も PR 本文に書かれていて親切です。上の「要確認」の実機確認が取れていれば、マージして問題ないと思います。

Comment thread server/Relay.cs
await ssl.AuthenticateAsClientAsync(new SslClientAuthenticationOptions
{
TargetHost = target.Host,
EnabledSslProtocols = System.Security.Authentication.SslProtocols.Tls12 | System.Security.Authentication.SslProtocols.Tls13,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

軽微: Program.cs は using System.Security.Authentication; を追加して短く書いているのに、こちらは完全修飾名が 2 回出ていて不揃いです。ファイル先頭に using を足すと揃います(動作には影響なし)。

要確認: Tls13 を含めると、RDP 側が TLS 1.3 を提示した場合に CredSSP のチャネルバインディング(証明書公開鍵への結びつけ)や、Windows のビルド差(SChannel の TLS 1.3 対応は Win11/Server 2022 以降)で挙動が変わらないか。実機(Server 2022 など)での接続確認があれば安心です。Tls12 のみにするか、OS 既定に任せる(None)方が安全な可能性もあります。

@5ym
5ym merged commit 6b1a59a into main Oct 14, 2026
3 checks passed
@5ym
5ym deleted the sec/tls12 branch October 14, 2026 04:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant