web-dev-qa-db-ja.com

Windows 10 Schannelでセッションチケットを本当に無効にする

Windows 7では、schannelキャッシュを無効にすることでセッションチケットが無効になりました。例:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL]
"EventLogging"=dword:00000004
"MaximumCacheSize"=dword:00000000
"ServerCacheTime"=dword:00000000

その他 Microsoftソース Windows 10に関して次のように言います:Schannel EnableSessionTicket、値2は、システムのセッションチケットTLS「最適化」を無効にします。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL]
"EnableSessionTicket"=dword:00000002

「セッションチケットのTLS最適化」と「セッションチケット全般」に違いはありますか?それとも、rtt0やその他の最適化形式など、OPTIMIZATIONを使用したTLSセッションチケットですか?

論理的には、TLSセッションチケットを無効にするには次のエントリが必要だと思います

"EnableSessionTicket"=dword:00000000

ただし、- このソースの主張 設定dword:00000002、システムは以前のWindows Serverオペレーティングシステムでセッションがネゴシエートされたのとまったく同じようにTLSセッションの処理に戻ります。

セッションチケットを無効にするには、次の3つを有効にする必要がありますか?

"EnableSessionTicket"=dword:00000002
"MaximumCacheSize"=dword:00000000
"ServerCacheTime"=dword:00000000

そして最後に、"EnableSessionTicket"=dword:00000000dword:000000001 行う?

ありがとうございました。

2
Tyler

可能であれば、グローバルな無効化ではなく、PowershellからDisable-TlsSessionTicketKeyを使用することをお勧めします。

これは、指定されたサービスアカウントに影響し、既存のTLSセッションチケットを復号化できないようにし、他には影響しません。この方法により、他のサービスによる機能の使用を妨げることなく、脆弱性を表す可能性があることがわかっている特定のサービスを簡単に保護できます。

それ以外の場合は、設定できます

HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\MaximumCacheSize to 0 

そして

HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\ServerCacheTime to 0 

キャッシングを防止することにより、チケット発行機能は機能しません。これは十分であるため、機能しません。これの欠点は、TLSの使用量が多い場合にlatencyになる可能性があります。

設定"EnableSessionTicket"=dword:00000002はチケットを無効にしません。セッションチケットのTLS最適化を無効にします。論理的には、無効にしたい場合は「0」に設定できますが、前述のとおり、キャッシュがない場合は不要です。

2
Overmind