web-dev-qa-db-ja.com

TLS 1.0を無効にすると、ASP.NETアプリケーションが破損します

Windows Server 2012R2で実行する

IISでTLS 1.0を無効にしようとしています。これは、クライアントがセキュリティ上の問題としてそれを強調するサイトスキャナーを持っているためです。

クリーンなテストサーバーをセットアップし、TLS 1.0を無効にするまでアプリは正常に動作しています。

適切な設定をすべて更新しました。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000

イベントビューアーでは、次のようになります。

致命的なアラートが生成され、リモートエンドポイントに送信されました。これにより、接続が終了する場合があります。 TLSプロトコルで定義された致命的なエラーコードは70です。WindowsSChannelのエラー状態は105です。

TLS 1.0(DisabledByDefaultではなく有効)のみのレジストリ設定を元に戻すと、すべてが再び正常になります。

System.webでの使用:

<httpRuntime targetFramework="4.7.2" />

私は何が欠けていますか?

10
Cade Roux

あなたのサイトは、TLS 1.1+をサポートしていないSSLを介して何かと通信している可能性があります。サイトスキャナーには表示されない発信TLS 1.0接続を許可できますが、これらの接続は安全性が低くなります。

2
C.M.

TLS 1.2ハンドシェイクをサポートするには、アプリケーション自体を更新する必要があります。したがって、構成にのみアクセスできる場合、必ずしも変更できるものではありません。基礎となるコードがサポートしていない場合、機能しません。

コードが.NET 4.6をターゲットにしている場合、TLS 1.2はネイティブに機能すると信じています。 4.5では、ネットワークが発生する前に実行されるようにコード行を配置する必要があります。コード:

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12
6
hurlman

より多くの情報を取得するためにschannelロギングを有効にしようとしましたか?

https://support.Microsoft.com/en-us/help/260729/how-to-enable-schannel-event-logging-in-iis

行方不明の部分を明らかにすることを願っています。

1
frostshoxx