none
如何确认RDS是否使用TLS RRS feed

  • 问题

  • 我们的服务器上检测出两个漏洞,一个是要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
    2016年8月19日 1:36

答案

  • 谢谢!

    这些资料我也有查过,觉得奇怪的是默认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
    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
    2016年8月23日 10:48
  • 你好,

    据我所知,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.

    2016年8月30日 11:54
    版主

全部回复

  • 你好,

    我觉得如果需要百分之百地确定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.

    2016年8月22日 2:47
    版主
  • 谢谢您的解答!

    我尝试安装了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
    2016年8月23日 10:48
  • 你好,

    请看下面关于这个设置的截图,我的理解是只要SSL(TLS 1.0)clientserver双方都支持的情况下,即使选择了RDS Security Layer,其实也会优先选择更加安全的加密方式 (SSL/TLS 1.0),仅在不能支持更加安全加密方式的情况下退而求其次使用RDP native的加密方式。

    而如果选择了SSL(TLS 1.0)这个选项,当clientserver不支持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.

    2016年8月25日 11:15
    版主
  • 谢谢!

    从以下这个链接来看,您标注的那部分解释好像是关于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.

    2016年8月26日 2:46
  • 顺便问下,OS可以免费在线升级吗?如果可以,有没有相关的升级方法KB可以参照?

    我们目前的版本是OS版本是Windows server 2008 Enterprise 6.0.6002

    2016年8月26日 3:22
  • 你好,

    据我所知,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.

    2016年8月30日 11:54
    版主
  • 非常感谢!另外我还想问下如果要配置和使用TLS1.2,除了要在服务器端修改注册表配置TLS1.2外,需要在客户端进行同样的配置吗?
    2016年8月30日 15:04
  • 你好,

    据我所知,在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.

    2016年9月1日 9:31
    版主
  • 谢谢!

    这些资料我也有查过,觉得奇怪的是默认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
    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.

    2016年9月12日 2:32
    版主
  • Amy,您好!

    我还想问下如果我们这边有SAID,我们应该怎样获取想要升级的OS升级包呢?您说的直接升级是可以从微软下载中心直接下载想要升级的OS 升级包,安装过程中不会被要求提供license key吗?还是说要先提供给你们SAID, 由你们提供相应的license key之后再下载升级包安装呢?

    比如我们想从Windows server 2008 升级到 2008 R2 或者 Windows server 2012。

    2016年9月14日 3:19