Windows で古い TLS バージョンを削除するのは本当に大変です。レジストリを微調整するだけでは不十分な場合があり、特にすべてが最新の TLS 1.2 や 1.3 などの適切な言語で話していることを確認したい場合はなおさらです。セキュリティをロックダウンして、レガシー プロトコルがセットアップの足を引っ張るのを防ぎたい場合は、このガイドにいくつかのヒントがあります。基本的には、GPO 経由またはレジストリ編集のいずれかでシステム全体で TLS 1.0 および 1.1 を無効にする方法と、アプリとブラウザーが実際に新しい、より安全なプロトコルを使用していることを確認する方法を学びます。目標は? 古い TLS バージョンによって引き起こされる潜在的なセキュリティ ホールを防ぐことですが、レガシー アプリが壊れることは受け入れなければならない現実である場合があることに注意してください。そして、はい、サービスの再起動や再起動はプロセスの一部です。当然、Windows は必要以上に難しくする必要があるためです。
WindowsでレガシーTLSバージョンを無効にする方法
方法1: グループポリシーを使用して古いTLSプロトコルをブロックする
これはよりクリーンで集中管理された方法であり、ドメイン環境に最適です。「暗号化サポートをオフにする」ポリシーを設定することで、ブラウザとシステムコンポーネントで利用可能なTLS/SSLバージョンを制限できます。通常、これはInternet Explorerと一部のWindowsコンポーネントに適用されますが、WinHTTPまたはSCHANNEL構成に依存する他のアプリにも影響します。
メリット:ユーザー設定によって古い暗号化バージョンが再有効化されるのを防ぎ、ドメイン内のすべてのマシンのセキュリティを強固に保ちます。有効に機能する場合:GPOを適用して再起動すると、選択したTLSバージョンのみが利用可能になり、TLS 1.0/1.1などの古いプロトコルは無効になります(該当するチェックボックスをオンにしている場合)。
実際には、GPOエディターで「コンピューターの構成」>「管理用テンプレート」>「Windowsコンポーネント」>「Internet Explorer」>「Internet Explorerコントロールパネル」>「詳細設定ページ」に移動します。次に、 「暗号化のサポートをオフにする」設定を有効にし、 「セキュアプロトコルの組み合わせ」ドロップダウンからサポートされているプロトコルを選択します。これは、レジストリの「 SecureProtocols」HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings DWORDと一致します。
忘れないでください:ポリシーを有効にするには再起動が必要です。設定によっては、変更がすぐに反映されず、再起動しないと「一部の設定はシステム管理者によって管理されています」といったユーザーメッセージが表示される場合があります。また、この方法では、IISやExchangeなどのサーバー側サービスにおけるTLS 1.0/1.1のサポートを完全に無効化することはできません。これは別の問題です。
方法2:レジストリの調整でより詳細な制御を行う
これは少し見苦しいですが、より柔軟性があります。 の下にあるレジストリエントリを直接調整しますHKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols。キーを追加または変更することで、TLS 1.0やTLS 1.1などの特定のTLSバージョンを無効にしたり、TLS 1.2を明示的に有効にしたりできます。これにより、クライアントとサーバーの両方で、有効または無効にするものをより細かく制御できます。
役立つ理由: 次のキーを追加すると、サーバー コンポーネントを含め、TLS 1.0 および 1.1 を完全に無効にできます。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Clients] "DisabledByDefault"=dword:00000001 "Enabled"=dword:00000000 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Servers] "DisabledByDefault"=dword:00000001 "Enabled"=dword:00000000
TLS 1.2 を強制的に有効にするには、以下を追加します。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Clients] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Servers] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001
この方法はより堅牢ですが、適用するには再起動またはサービスの再起動が必要です。フラグが設定されたマシンでは、セキュリティポリシーによってレジストリ編集が上書きまたはロックされている場合があり、少し扱いにくい場合があります。そのため、慎重に進め、事前にテストすることをお勧めします。
方法3: レジストリファイルを使用して展開する
マシンがたくさんある場合、1台ずつ変更する代わりに、必要な変更をまとめたシンプルなレジストリファイルを作成し、GPO、MDT、またはSCCM経由で展開するだけです。レジストリの変更内容をファイルに保存し.reg、まとめてインポートするだけです。こうすることで、各マシンをクリックすることなく、環境全体の一貫性を確保できます。
追加: 互換性のためにアプリとシステム設定を調整する
ここが少し厄介なところです。OutlookなどのWinHTTPベースのアプリは、WindowsにTLS 1.2を明示的に優先するように指示しない限り、デフォルトでTLS 1.0/1.1を使用する可能性があります。TLS 1.2を優先するには、次のようなレジストリキーを調整する必要があります。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727] "SchUseStrongCrypto"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727] "SchUseStrongCrypto"=dword:00000001
WinHTTP の場合も同様に、以下を追加します。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000800 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000800
注意: Windows Server では、IISCrypto GUIを使用してSCHANNEL 設定を視覚的に調整することもできます。レジストリ編集が面倒な場合は、おそらくこの方法の方が簡単です。
これらすべてが完了したら、マシンを再起動することを忘れないでください。レジストリやGPOへの変更は、システムが更新されるまでは何も起こりません。また、予期せぬトラブルを避けるため、可能であれば、これらの設定は必ず管理された環境でテストしてください。
まとめ
- レジストリまたは GPO 経由で古い TLS バージョンを無効にします。
- レジストリ設定を微調整して、アプリが新しい設定を尊重することを確認します。
- 変更を加えた後は再起動してください(場合によっては複数回)。
- ネットワーク全体に展開する前に徹底的にテストしてください。
まとめ
これはクリックしてうまくいく解決策ではありません。TLS 1.0と1.1を無効にするには多少の手間がかかりますが、セキュリティのためには価値があります。レジストリの調整が最も確実で、特にすべてのサービスが最新かつ最も安全なプロトコルを使用していることを確認したい場合は有効です。ただし、古い機能の一部が動作しなくなる可能性があるため、事前にテストすることをお勧めします。この方法が、誰かの頭を悩ませる時間を少しでも軽減してくれることを願っています。