积极答复者
如何确认RDS是否使用TLS

问题
-
我们的服务器上检测出两个漏洞,一个是要RDP使用额外的加密协议,配置SSL/TLS,另一个则是检测出TLSv1.0不符和CPI标准,要求disableTLSv1.0. 从前者来看的话RDP未配置TLS,从后者来看的话则是配了并在使用。两者看起来很矛盾。
我该怎样确认RDP是否在使用TLS呢?Windows server 2008 默认是开启TLSv1.0的,我们的RDP安全曾使用的是negotiate(其它两个选项分别是RDP security layer和SSL(TLS1.0)),这是否意味着RDP在使用TLS呢?
OS:Windows server 2008 SP2
- 已移动 Amy Wang_Moderator 2016年8月22日 1:59 Unrelated to Windows Server Technical Preview
答案
-
谢谢!
这些资料我也有查过,觉得奇怪的是默认Win7是开启TLS1.2的,所以应该在客户端上不用设置也是Ok的,但是我们在服务器端一关闭TLS1.0,开启TLS1.2,客户端就不能RDP了。
后来发现这和客户端版本及其使用的RDP协议版本有关,我们的客户端是Win7 SP1,必须使用RDP8.0及以上的版本才能正常使用TLS1.2进行RDP通信,而我们的客户端是RDP7.1. 找的很辛苦,所以也分享给大家。
https://support.microsoft.com/en-us/kb/3097192
(If the client machine is running Windows 7, it must have the RDC 8.0 update installed in order to use TLS 1.2. Without the RDC 8.0 update, the Windows 7 client can only use TLS 1.0.)
解决办法就是打上RDP8.0的更新(kb2592687),在此之前还需要打上一个关于DTLS的hotfix(kb2574819).
https://support.microsoft.com/en-us/kb/2592687
(Install the prerequisite:Before you install the RDP 8.0update, you must have hotfix 2574819 installed as a prerequisite.)
- 已标记为答案 Perry_6678 2016年9月12日 2:08
-
谢谢您的解答!
我尝试安装了Network monitor并抓取了TCP port3389的包,但是看不懂数据包的含义。
于是在网上找到一份帖子(http://serverfault.com/questions/691247/how-do-i-disable-tls-1-0-without-breaking-rdp),上面介绍了一种方法可以查看RDP连接过程中是否使用了TLS以及具体版本。
方法:
在注册表中启用Schannel的eventlog,根据需要设置适当的value,然后重启计算机即可在eventlog中查看到相关信息。
Schannel路径:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\EventLogging
我测试时设置的值是4(Log informational and success events)
也可以参照以下link启用Schannel logging:
https://support.microsoft.com/en-us/kb/260729
但是在测试中我发现当我将RDP的安全曾设置成RDP security layer时,RDP虽然不使用TLS1.0了,但是在SSL启用的情况下,RDP会使用SSL,这是为什么呢?(我一直以为如果RDP安全曾设置成原始的RDP security layer时,就不会使用SSL/TLS等其它加密协议了。)
- 已标记为答案 Perry_6678 2016年9月12日 2:09
-
你好,
据我所知,RDP Security Layer部分的解释在Server 2012/R2 的图形界面跟Negotiate的解释是一样的,但是我建议还是根据实际抓包情况为准。
考虑到Windows Server 2008 不支持 TLS 1.1/1.2,我更偏向于建议升级Server 的操作系统从而构建一个更加安全的企业环境。
关于操作系统升级,如果购买了OS的 Software Assurance 就可以直接升级,如果没有购买就需要购买新的操作系统的license才能升级。
下面有些英文链接也许有些许帮助:
Support for SSL/TLS protocols on Windows
https://blogs.msdn.microsoft.com/kaushal/2011/10/02/support-for-ssltls-protocols-on-windows/
Software Assurance by product
http://www.microsoft.com/en-us/licensing/licensing-programs/software-assurance-by-product.aspx
Best Regards,
Amy
Please remember to mark the replies as an answers if they help and unmark them if they provide no help.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.- 已建议为答案 Amy Wang_Moderator 2016年9月7日 6:48
- 已标记为答案 Perry_6678 2016年9月12日 2:08
全部回复
-
你好,
我觉得如果需要百分之百地确定RDP的连接过程是否使用了TLS以及具体的版本,我建议使用Network Monitor或者其他网络抓包工具来判断。
Best Regards,
Amy
Please remember to mark the replies as an answers if they help and unmark them if they provide no help.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.- 已编辑 Amy Wang_Moderator 2016年8月22日 2:51
-
谢谢您的解答!
我尝试安装了Network monitor并抓取了TCP port3389的包,但是看不懂数据包的含义。
于是在网上找到一份帖子(http://serverfault.com/questions/691247/how-do-i-disable-tls-1-0-without-breaking-rdp),上面介绍了一种方法可以查看RDP连接过程中是否使用了TLS以及具体版本。
方法:
在注册表中启用Schannel的eventlog,根据需要设置适当的value,然后重启计算机即可在eventlog中查看到相关信息。
Schannel路径:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\EventLogging
我测试时设置的值是4(Log informational and success events)
也可以参照以下link启用Schannel logging:
https://support.microsoft.com/en-us/kb/260729
但是在测试中我发现当我将RDP的安全曾设置成RDP security layer时,RDP虽然不使用TLS1.0了,但是在SSL启用的情况下,RDP会使用SSL,这是为什么呢?(我一直以为如果RDP安全曾设置成原始的RDP security layer时,就不会使用SSL/TLS等其它加密协议了。)
- 已标记为答案 Perry_6678 2016年9月12日 2:09
-
你好,
请看下面关于这个设置的截图,我的理解是只要SSL(TLS 1.0)是client和server双方都支持的情况下,即使选择了RDS Security Layer,其实也会优先选择更加安全的加密方式 (SSL/TLS 1.0),仅在不能支持更加安全加密方式的情况下退而求其次使用RDP native的加密方式。
而如果选择了SSL(TLS 1.0)这个选项,当client和server不支持SSL(TLS 1.0) 加密方式的时候,就不能fall back 到 RDP native 的加密方式,进而RDP连接不能成功建立。
Best Regards,
Amy
Please remember to mark the replies as an answers if they help and unmark them if they provide no help.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com. -
谢谢!
从以下这个链接来看,您标注的那部分解释好像是关于Negotiate的说明,我该以哪个为准呢?
另外我想问一下,Native的RDP加密方式是否安全呢?
最近由于TLS1.0(SSL3.1)不符合PCI标准,必须Disable掉,而我们的服务器是2008 SP2,不支持更高版本的TLS1.1和TLS1.2,所以我们想disable掉所有的SSL/TLS,使用native的RDP加密协议,所以想确认下这样是否可行,会不会带来更大的安全风险呢?
https://technet.microsoft.com/en-us/library/cc770833%28v=ws.11%29.aspx
Security layer Description SSL (TLS 1.0)
SSL (TLS 1.0) will be used for server authentication and for encrypting all data transferred between the server and the client.
Negotiate
This is the default setting.
The most secure layer that is supported by the client will be used. If supported, SSL (TLS 1.0) will be used. If the client does not support SSL (TLS 1.0), the RDP Security Layer will be used.
RDP Security Layer
Communication between the server and the client will use native RDP encryption. If you select RDP Security Layer, you cannot use Network Level Authentication.
-
你好,
据我所知,RDP Security Layer部分的解释在Server 2012/R2 的图形界面跟Negotiate的解释是一样的,但是我建议还是根据实际抓包情况为准。
考虑到Windows Server 2008 不支持 TLS 1.1/1.2,我更偏向于建议升级Server 的操作系统从而构建一个更加安全的企业环境。
关于操作系统升级,如果购买了OS的 Software Assurance 就可以直接升级,如果没有购买就需要购买新的操作系统的license才能升级。
下面有些英文链接也许有些许帮助:
Support for SSL/TLS protocols on Windows
https://blogs.msdn.microsoft.com/kaushal/2011/10/02/support-for-ssltls-protocols-on-windows/
Software Assurance by product
http://www.microsoft.com/en-us/licensing/licensing-programs/software-assurance-by-product.aspx
Best Regards,
Amy
Please remember to mark the replies as an answers if they help and unmark them if they provide no help.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.- 已建议为答案 Amy Wang_Moderator 2016年9月7日 6:48
- 已标记为答案 Perry_6678 2016年9月12日 2:08
-
你好,
据我所知,在server 和client 端的注册表键值是有区别的。
请在server 端和client 端分别添加以下 subkey :
HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server
HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client
然后创建 DWORD Value, enable的值为1。
下面有个英文文档也许对你会有帮助:
TLS/SSL Settings
https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx
Best Regards,
Amy
Please remember to mark the replies as an answers if they help and unmark them if they provide no help.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.- 已建议为答案 Amy Wang_Moderator 2016年9月7日 6:48
-
谢谢!
这些资料我也有查过,觉得奇怪的是默认Win7是开启TLS1.2的,所以应该在客户端上不用设置也是Ok的,但是我们在服务器端一关闭TLS1.0,开启TLS1.2,客户端就不能RDP了。
后来发现这和客户端版本及其使用的RDP协议版本有关,我们的客户端是Win7 SP1,必须使用RDP8.0及以上的版本才能正常使用TLS1.2进行RDP通信,而我们的客户端是RDP7.1. 找的很辛苦,所以也分享给大家。
https://support.microsoft.com/en-us/kb/3097192
(If the client machine is running Windows 7, it must have the RDC 8.0 update installed in order to use TLS 1.2. Without the RDC 8.0 update, the Windows 7 client can only use TLS 1.0.)
解决办法就是打上RDP8.0的更新(kb2592687),在此之前还需要打上一个关于DTLS的hotfix(kb2574819).
https://support.microsoft.com/en-us/kb/2592687
(Install the prerequisite:Before you install the RDP 8.0update, you must have hotfix 2574819 installed as a prerequisite.)
- 已标记为答案 Perry_6678 2016年9月12日 2:08
-
你好,
非常感谢你的分享,这将对论坛的用户非常有帮助!
Best Regards,
Amy
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.