在 IIS 上,如何修补 SSL 3.0 POODLE 漏洞 (CVE-2014-3566)?

Eri*_*rop 53 windows iis ssl

如何在运行 IIS 的 Windows Server 2012 系统上修补CVE-2014-3566

Windows Update 中是否有补丁,或者我是否必须更改注册表才能禁用 SSL 3.0

Eva*_*son 58

没有“补丁”。这是协议中的漏洞,而不是实现中的错误。

在 Windows Server 2003 到 2012 R2 中,SSL/TLS 协议由设置在 的注册表中的标志控制HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols

要禁用与 POODLE 漏洞相关的 SSLv3,请在上述位置(如果尚不存在)创建一个名为的子项,并在其下创建一个SSL 3.0名为Server(如果尚不存在)的子项。在此位置 ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server) 创建一个名为 DWORD 值Enabled并将其设置为0.

禁用 SSL 2.0,您也应该这样做,以相同的方式完成,除了您将使用SSL 2.0在上述注册表路径中命名的键。

我还没有测试过所有版本,但我认为可以安全地假设需要重新启动才能使此更改生效。

  • 至少在 Windows Server 2012 上不需要重新启动。您可以在 http://poodlebleed.com/ 之前和之后通过输入您的 URL 和 SSL 端口的 443 进行验证 (3认同)

Eri*_*rop 24

为了便于安装,我从上面埃文的回答中导出了这个“禁用 ssl 2 和 3.reg”文件:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]
"Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000
Run Code Online (Sandbox Code Playgroud)


Vas*_*kis 12

Powershell 禁用 SSL2 和 SSL3:

2..3 | %{ New-ItemProperty -Path "HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL $_.0\Server" -Name Enabled -PropertyType "DWORD" -Value 0 -Force }
Run Code Online (Sandbox Code Playgroud)

  • 是的...看截图上传到:http://i.imgur.com/rctFH4D.png 使用 PS 3.0 和 WSMan 3.0。 (2认同)

小智 9

Nartac 提供了一个免费实用程序,您可以使用它来禁用协议。

https://www.nartac.com/Products/IISCrypto/Default.aspx


Kaz*_*azi 8

这是一个 PowerShell,它将测试是否存在注册表项,根据需要创建它们,然后输入必要的值以禁用 SSL 2.0 和 SSL 3.0

$regPath1 = 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0'
$regPath2 = 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0\Server'
$regPath3 = 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0'
$regPath4 = 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server'


If(!(Test-Path -Path $regPath1))
{
New-Item -Path $regPath1 -Force
}

If(!(Test-Path $regPath2))
{
New-Item -Path $regPath2 -Force
}
   New-ItemProperty -Path $regPath2 -Name DisabledByDefault -PropertyType DWORD -Value "1" -Force
   New-ItemProperty -Path $regPath2 -Name Enabled -PropertyType DWORD -Value "0" -Force 

If(!(Test-Path $regPath3))
{
New-Item -Path $regPath3 -Force
}

If(!(Test-Path $regPath4))
{
New-Item -Path $regPath4 -Force
}
   New-ItemProperty -Path $regPath4 -Name DisabledByDefault -PropertyType DWORD -Value "1" -Force
   New-ItemProperty -Path $regPath4 -Name Enabled -PropertyType DWORD -Value "0" -Force
Run Code Online (Sandbox Code Playgroud)

这可以使用 SCCM 或命令行进行部署 - 只需确保以管理员身份运行 SCCM 作业或命令行。一些带有注册表信息的网站表明在创建和/或修改注册表项后需要重新启动。