如何在运行IIS的Windows Server 2012系统上修补CVE-2014-3566?
Windows Update中是否有修补程序,还是必须更改注册表才能禁用SSL 3.0?
如何在运行IIS的Windows Server 2012系统上修补CVE-2014-3566?
Windows Update中是否有修补程序,还是必须更改注册表才能禁用SSL 3.0?
Answers:
没有“补丁”。这是协议中的漏洞,而不是实现中的错误。
在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
上面注册表路径中命名的密钥。
我尚未测试所有版本,但我认为可以安全地假设必须重新启动该更改才能生效。
为了简化安装,我从上述Evan的回答中得出了这个“ disable ssl 2 and 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
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 }
Nartac提供了一个免费实用程序,可用于禁用协议。
这是一个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
可以使用SCCM或命令行进行部署-只需确保以管理员身份运行SCCM作业或命令行即可。某些具有注册表信息的网站指示在创建和/或修改注册表项后需要重新启动。
您不必禁用SSL3。您可以启用SSL3并减轻POODLE的负担。
# Copy and paste this in PowerShell then restart your server
$cipherSuitesOrder = @(
'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256',
'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384',
'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256',
'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384',
'TLS_RSA_WITH_AES_128_CBC_SHA256',
'TLS_RSA_WITH_AES_128_CBC_SHA',
'TLS_RSA_WITH_AES_256_CBC_SHA256',
'TLS_RSA_WITH_AES_256_CBC_SHA',
'TLS_RSA_WITH_RC4_128_SHA',
'TLS_RSA_WITH_3DES_EDE_CBC_SHA',
'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256',
'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256',
'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384',
'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384',
'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256',
'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384',
'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256',
'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384'
)
$cipherSuitesAsString = [string]::join(',', $cipherSuitesOrder)
New-ItemProperty -path 'HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002' \
-name 'Functions' -value $cipherSuitesAsString -PropertyType 'String' -Force | Out-Null
有了这些设置,您仍将具有IE6支持(使用RC4的SSLv3),并且具有超过可接受的配置安全性。仅IE6和真正的旧客户端将使用SSLv3或RC4密码。
有一个很好的PowerShell脚本可以帮助IIS 7.5和8配置:
此PowerShell脚本将您的Microsoft Internet Information Server 7.5和8.0(IIS)设置为支持具有转发保密性的TLS 1.1和TLS 1.2协议。此外,它通过禁用不安全的SSL2和SSL3以及所有不安全和弱密码(浏览器也可能会回退)来提高SSL连接的安全性。该脚本实现了当前的最佳实践规则。
https://www.hass.de/content/setup-your-iis-ssl-perfect-forward-secrecy-and-tls-12