我们的信用卡处理器最近通知我们,截至2016年6月30日,我们将需要禁用TLS 1.0以保持PCI标准 。 我试图通过在Windows Server 2008 R2机器上禁用TLS 1.0来主动发现重启后立即发现我完全无法通过远程桌面协议(RDP)连接到它。 经过一番研究,看来RDP只支持TLS 1.0(见这里或这里 ),或者至less不清楚如何通过TLS 1.1或TLS 1.2启用RDP。 有没有人知道在Windows Server 2008 R2上禁用TLS 1.0而不破坏RDP的方法? Microsoft是否计划通过TLS 1.1或TLS 1.2支持RDP?
注意:似乎有办法通过configuration服务器来使用RDP安全层,但禁用networking级身份validation ,这看起来像交易另一个邪恶。
更新1 :微软现在已经解决了这个问题。 有关服务器更新,请参阅下面的答案 。
更新2 :Microsoft发布了有关SQL Server支持PCI DSS 3.1的教程。
微软发布了这个问题的补丁2015年9月15日
由于我们必须遵守要求禁用TLS 1.0的PCI-DSS 3.1,所以我一直在考虑这个问题。
我们也不想回到RDP安全层这是一个重大的安全问题。
我终于find了一些确认RLS支持TLS 1.1和TLS 1.2的文档。 本文档隐藏在SChannel日志logging中,并且是RDP非常详细的规范 。
在Technet或其他微软网站上完全没有主stream文档,似乎很希望在这里logging这可能会帮助一些人。
提供的链接相关摘录:
从MSDN链接:
"RDP supports four External Security Protocols: TLS 1.0 ([RFC2246]) TLS 1.1 ([RFC4346])<39>, TLS 1.2 ([RFC5246])<40>"
从RDP规格PDF:
"When Enhanced RDP Security is used, RDP traffic is no longer protected by using the techniques described in section 5.3. Instead, all security operations (such as encryption and decryption, data integrity checks, and Server Authentication) are implemented by one of the following External Security Protocols: TLS 1.0 (see [RFC2246]) TLS 1.1 (see [RFC4346]) TLS 1.2 (see [RFC5246]) CredSSP (see [MS-CSSP])" "<39> Section 5.4.5: TLS 1.1 is not supported by Windows NT, Windows 2000 Server, Windows XP, Windows Server 2003, Windows Vista and Windows Server 2008. <40> Section 5.4.5: TLS 1.2 is not supported by Windows NT, Windows 2000 Server, Windows XP, Windows Server 2003, Windows Vista, and Windows Server 2008"
因此,可以得出结论:根据本文档,您可以在Windows Server 2008 R2上使用TLS 1.1或1.2。
但是,我们的testingcertificate,当禁用TLS 1.0并且RDP安全选项设置为需要TLS 1.0时,这不适用于Windows 7 RDP客户端(版本6.3.9600)。
这当然也可以启用TLS 1.1和1.2,在2008R2上默认是closures的 – 顺便说一下,我们使用Nartac Software提供的非常有用的IISencryption工具 。
查看此问题时,启用SChannel日志logging可以查看会话打开时发生的更多细节。
您可以通过将HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ EventLogging项更改为5并重新启动来设置SChannel日志logging 。
完成此操作后,您可以观察显示在进行RDP连接时使用的TLS版本的SChannel事件。 启用日志logging后,当RDP客户端尝试在禁用TLS 1.0的Windows 2008 R2上build立连接时,您可以观察到SChannel错误:
A fatal error occurred while creating an SSL server credential. The internal error state is 10013.
我还testing了在Windows Server 2012和2012 R2上禁用TLS 1.0,我可以确认使用Windows 7 RDP客户端完美地工作。 SChannel日志条目显示正在使用TLS 1.2:
An SSL server handshake completed successfully. The negotiated cryptographic parameters are as follows. Protocol: TLS 1.2 CipherSuite: 0xC028 Exchange strength: 256
我希望这能帮助那些正在寻求澄清的人。
我将继续寻找如何让RDP在Windows Server 2008 R2中的TLS 1.1和TLS 1.2上运行。
更新:2015年8月5日
我们提出了RDP的问题,与Microsoft支持的Server 2008 R2无法合作,包括重现步骤。
经过几个星期的反转和转发,我们终于收到了支持小组今天的电话,确认他们确实可以复制它,现在这被归类为一个bug。 更新补丁将会在2015年10月发布。只要有知识库文章或其他细节,我将把它们添加到这篇文章中。
希望那些坚持使用Windows Server 2008 R2的人至less可以在发布补丁之前在2016年6月的最后期限之前得到解决。
更新:2015年9月19日
微软终于在这里发布了一个kb支持文章,我可以确认它的工作正常。
请使用IPsec,因为文档build议:“首先设置强encryption的会话(例如IPsec隧道),然后在安全隧道内通过SSL发送数据”
为RDPconfigurationTLS的主要原因是防火墙策略很容易被审计(比较certificate一系列的registry更改是合规的),并且IPsec在Windows中很容易configuration。
如果您碰巧需要全套B符合性,则使用tls 1.0的IPSEC是适用于适当证书长度的唯一方法
这不是对问题的回答,而是对于如何恢复对禁用TLS 1.0并且没有物理访问权的虚拟机的远程访问的子问题。
我使用IISCrypto禁用了TLS 1.0,它提供了一个有用的警告,说明如果将RDP设置为TLS,RDP将停止工作。 所以我检查了:
Admin Tools\Remote Desktop Services\Remote Desktop Session Host Configuration, RDP-Tcp, General Tab, Security Layer
和我的安全级别被设置为“协商”。 我假设这意味着如果TLS不可用,它将优雅地降级到RDP安全。
但是,不,谈判不这样工作。 在禁用TLS 1.0之前,必须将安全级别设置为RDP安全性,而不是“无关联”。
所以我失去了远程连接到我的AWS实例的能力!
为了重新连接,我使用了另一个AWS实例。
net use \\lost_machine_ip\c$
\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\
并将SecurityLayer
的值设置为0(0是RDP安全性)。
然后,您将能够远程连接,并在需要时在IISCrypto中重新启用TLS 1.0。
您将需要在Windows 7计算机和Windows Server 2008 R2服务器上安装RDP 8.0,然后在本地计算机策略或组策略上启用RDP 8.0。
这是RDP 8.0的Microsoft KB。 https://support.microsoft.com/en-us/kb/2592687
一旦完成,您应该能够在计算机和服务器上禁用TLS 1.0,方法是按照此Technet文章中的说明编辑registry。 https://technet.microsoft.com/en-us/library/dn786418.aspx
安装RDP 8.0之后,您还可以安装RDP 8.1,但是在安装RDP 8.1之前必须先安装RDP 8.0。 RDP 8.0包含客户端和服务器端协议组件,但RDP 8.1只包含客户端。 RDP 8.1的Microsoft KB是KB2830477。
我在其中一个Windows 7工作站上进行了这些更改,并使用“需要使用远程(RDP)连接的特定安全层”组策略设置启用并将其设置为“SSL(TLS 1.0)”来testingRDP连接,以确保它不会回退到RDPencryption。
更新6/19/2015:
我终于有机会在我们的Windows Server 2008 R2服务器上对其进行testing,并且肯定会破坏与服务器的RDP连接。 似乎RDP 8.0服务器端组件只安装在Windows 7计算机上,而不安装在Windows Server 2008 R2服务器上。
只是一个更新,如果任何人正在寻找信息。 对于我的Windows 7 64位盒,我必须安装KB2574819(第一个)和KB2592687(第二个),Windows 7必须先安装SP1才能安装这两个pkgs。 如果像我这样安装SP1时遇到问题,我必须先卸载KB958830,然后再安装SP1。
对于我的Windows Server 2008 R2机器,我必须安装KB3080079。 一旦你这样做了,并有适当的安全通信适当的设置,那么它将使用TLS 1.2您可以确认使用Wireshark执行捕获您的两个箱子之间的通信。
正如发布在如何禁用TLS 1.0而不破坏服务器2012 R2上的RemoteApps,但在这里重新发布,以便那些可能不会监视该链接的好处:
经过近一年的时间,我终于find了一个工作解决scheme来禁用TLS 1.0 / 1.1而不破坏RDP和远程桌面服务连接并启动RemoteApps:
运行IISCrypto并禁用TLS 1.0,TLS 1.1和所有不好的密码。
在运行网关angular色的远程桌面服务服务器上,打开本地安全策略并导航到安全选项 – 系统encryption:使用符合FIPS的algorithm进行encryption,散列和签名。 将安全设置更改为已启用。 重新启动以使更改生效。
请注意,在某些情况下(特别是在Server 2012 R2上使用自签名证书时),可能需要将安全策略选项Network Security:LAN Manager身份validation级别设置为仅发送NTLMv2响应。
我已成功使用rdesktop( http://www.rdesktop.org )for Linux来解决此问题。