TrustWave的漏洞扫描程序由于运行RDP的Windows 10计算机而导致扫描失败:
块大小为64位的分组密码algorithm(如DES和3DES)生日攻击称为Sweet32(CVE-2016-2183)
注:在运行RDP(远程桌面协议)的Windows 7/10系统上,应禁用的易受攻击的密码标记为“TLS_RSA_WITH_3DES_EDE_CBC_SHA”。
使用IIS Crypto(Nartac),我尝试应用“最佳实践”模板以及PCI 3.1模板,但是它们都包含不安全的密码(TLS_RSA_WITH_3DES_EDE_CBC_SHA):
如果我禁用此密码,从这台计算机到许多Windows站点的RDP停止工作(它仍然适用于某些2008 R2和2012 R2服务器)。 RDP客户端只是提供“发生内部错误”和事件日志:
创buildTLS客户端凭据时发生致命错误。 内部错误状态是10013。
我检查了其中一台服务器的服务器事件日志,看到这两条消息
从远程客户端应用程序收到TLS 1.2连接请求,但服务器不支持客户端应用程序支持的任何密码套件。 SSL连接请求失败。
生成以下致命警报:40.内部错误状态是1205。
如何修复安全漏洞而不打破传出的RDP?
或者,如果上述不可能, 那么在每个RDP主机上我能做些什么,我不能再连接到那个处理它呢?
— 更新#1 —
在Windows 10机器上禁用TLS_RSA_WITH_3DES_EDE_CBC_SHA后,我尝试连接到几个RDP主机(其中一半失败,出现“内部错误…”)。 所以我比较了一个我可以连接的主机和一个我无法连接的主机。 都是2008 R2。 两者都有相同的RDP版本(支持6.3.9600,RDP协议8.1)。
我通过使用IIS Crypto来对TLS协议和密码进行比较,以对其当前设置执行“保存模板”,以便可以比较模板文件。 他们是相同的! 所以无论这个问题是不是在主机上缺less一个芯片组套件的问题。 这是一个来自Beyond Compare的文件的屏幕截图:
导致此问题的两台RDP主机之间有什么不同,以及如何解决这个问题?
我有同样的问题,在服务器上安装KB3080079补丁启用支持tls 1.1和1.2。
请注意,对于Windows 7客户端,您将不得不安装rdp客户端更新(KB2830477),否则只有Windows 8 +将能够连接。
IIS Crypto可以select设置服务器端(传入)和客户端(传出)选项。 为了兼容性,您需要在客户端启用一些密码。
为了做到你想要的,我亲自去做以下事情:
如果需要的话重新启动(并且您可以物理访问机器)。
重新启动应该导致正确的结束状态。
实际上,您只需要禁用3DES入站,但仍允许出站使用所述密码套件。
我会分享我的答案从TechNet 线程,但第一BLUF:
Serverfault的结论:很可能你在系统之间还有一些其他的区别。 您在不同的操作系统版本之间进行连接,一个系统启用了FIPS,另一个则不启动,或者您在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers下有不同的密码限制。 我肯定会启用系统上的SCHANNEL日志logging,以确定哪个密码正在使用。 如果您以某种方式让RDP使用替代密码,我们很乐意听到。
post的副本:
我们得到它的工作!
显然,2008年和2012年有语法问题,2008/7年需要一个尾随/ 168。 2012 / 8.1 / 10没有。
在2008年的键看起来像这样:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168/168和2012年的键看起来像这样:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168
我可以确认使用“Triple DES 168/168”不会禁用系统上的3DES。 您可以使用协议扫描程序(如Nessus)或启用SCHANNEL日志logging来certificate这一点:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL] "EventLogging"=dword:00000007然后,您将在SYSTEM日志中包含事件;
SSL客户端握手成功完成。 协商的密码参数如下。
协议:TLS 1.0 CipherSuite:0x2f交换强度:1024
对于我来说,结果是0xa,Google显示为TLS_RSA_WITH_3DES_EDE_CBC_SHA。
当我使用“Triple DES 168”(不带/ 168)时,系统事件ID 36880不会出现,并且RDP会话被阻止。
每篇文章: 系统encryption:使用FIPS兼容algorithm进行encryption,哈希和签名
远程桌面服务(RDS)为了encryption远程桌面服务networking通信,此策略设置仅支持三重DESencryptionalgorithm。
根据文章: “系统encryption:使用FIPS兼容algorithm进行encryption,散列和签名”Windows XP及更高版本的Windows中的安全设置效果
此设置还会影响Windows Server 2003和更高版本的Windows中的terminal服务。 效果取决于是否将TLS用于服务器身份validation。
如果正在使用TLS进行服务器身份validation,则此设置会导致仅使用TLS 1.0。
默认情况下,如果不使用TLS,并且在客户端或服务器上未启用此设置,则服务器和客户端之间的远程桌面协议(RDP)通道将使用128位RC4algorithm密钥长度。 在基于Windows Server 2003的计算机上启用此设置后,下列情况是正确的:RDP通道使用168位密钥长度的密码块链接(CBC)模式中使用3DESalgorithmencryption。 SHA-1algorithm用于创build消息摘要。 客户端必须使用RDP 5.2客户端程序或更高版本进行连接。
所以这两个都支持RDP只能使用3DES的想法。 但是,本文build议使用更大范围的密码: FIPS 140validation
远程桌面协议(RDP)服务器将使用的一组密码algorithm的作用域为: – CALG_RSA_KEYX – RSA公钥交换algorithm – CALG_3DES – 三重DESencryptionalgorithm – CALG_AES_128 – 128位AES – CALG_AES_256 – 256位AES – CALG_SHA1 – SHA散列algorithm – CALG_SHA_256 – 256位SHA散列algorithm – CALG_SHA_384 – 384位SHA散列algorithm – CALG_SHA_512 – 512位SHA散列algorithm
最终目前还不清楚在启用FIPS模式时RDP是否可以支持非3DES协议,但证据表明它不支持。
我没有看到任何证据表明Server 2012 R2的function与Server 2008 R2不同,但似乎Server 2008 R2是基于FIPS 140-1兼容的,而Server 2012 R2则遵循FIPS 140-2,所以Server 2012 R2完全有可能支持附加协议。 您将在FIPS 140validation链接中记下其他协议。
总之:我不认为Server 2008 R2可以在禁用3DES的FIPS模式下支持RDP。 我的build议是确定您的系统是否满足SWEET32攻击的条件(在单个会话中发送超过768GB)以及禁用3DES是否值得删除RDPfunction。 还有其他一些实用程序可用于pipe理RDP以外的服务器,特别是在虚拟化非常普遍的世界中。
显然,2008年和2012年有语法问题,2008/7年需要一个尾随/ 168。 2012 / 8.1 / 10没有。
在2008年的键看起来像这样:HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Ciphers \ Triple DES 168/168
**伟大的发现,我有一些Windows 2008 R2域控制器完全相同的问题,奇怪的是我的成员2008R2服务器似乎没事……而我的2012R2服务器也工作得很好。 需要破解分解那些老DC的:)