Windows で SSL V3 を無効にするには再起動が必要ですか? - Poodle エクスプロイト

Windows で SSL V3 を無効にするには再起動が必要ですか? - Poodle エクスプロイト

多数の Windows サーバーで SSL V3 を無効にしようとしています。その一環として、レジストリはスクリプトを介してリモートで更新されています。問題は、レジストリの変更後に何度も再起動が必要になることです。回避策はありますか? レジストリの変更後に SSL V3 を受け入れないようにサーバー上でサービスを再起動できますか?

編集: もう少し詳しく説明すると、これは Windows 2012 R2 サーバーでの「SSL V3 サーバー」の無効化に関するものです。

答え1

はい...おそらく... schannel.dll を呼び出すアプリケーションについて話している場合です。

「サーバー」と「SSlv3」というプロトコルについて言及しました。このレジストリ キーを変更するには再起動が必要です。

この Microsoft の記事をお読みください:https://support.microsoft.com/ja-jp/kb/245030 より

基本的にこれがこのトピックのバイブルです。

記事には、「CIPHERS キーまたは HASHES キーへの変更は、システムを再起動せずにすぐに有効になります」と記載されていることに注意してください。

ただし、PROTOCOLS キーを変更しています。そのため、再起動してください。

編集:ああ、最も重要な部分について言及するのを忘れていました。このレジストリ キーの変更は、Schannel DLL を呼び出すアプリケーションにのみ影響します (IIS、RDP、SQL Server など)。OpenSSL などのサード パーティ ライブラリを使用するアプリケーションには影響しません。これらのアプリケーションでは、再起動が必要かどうかはアプリケーションによって異なるため、知ることはできません。

答え2

net stop httpおよびを使用して HTTP サービスを再起動できますnet start http。これは、それを使用しているアプリケーション (IIS など) にのみ影響します。

また、HTTP サービスに依存するすべてのサービスを再起動し、それを使用している他のすべてのプロセスを閉じる必要があります\Device\Http\*(そうしないと、サービスは停止しません)。

これらすべてを実行するPowerShellスクリプトを紹介します。(ハンドル.exeからライブまた、複数レベルの依存サービスは考慮されません。

$depencies = Get-Service HTTP -DependentServices |? Status -eq Running
Stop-Service $depencies
.\handle.exe -nobanner -a \Device\Http\ |? { $_ -match '\s+pid:\s*(?<pid>\d+)\s+' } |% { $matches.pid } | gu |% { Stop-Process -Id $_ -Confirm }
Restart-Service HTTP
Start-Service $depencies

(これは Windows 7 でのみテストしました。)

関連情報