论文部分内容阅读
远程桌面是Windows操作系统的一个标准组件,它允许用户使用任何基于Windows操作系统的客户端从任何位置,通过任何连接访问另一台基于Windows的计算机。远程桌面可让用户可靠地使用远程计算机上的所有应用程序、文件和网络资源,就如同用户本人坐在远程计算机的面前一样。不仅如此,本地运行的任何应用程序在用户使用远程桌面后仍可以正常运行。远程桌面的这些功能是通过微软公司的远程桌面协议,即RDP(Remote Desktop Protocol)协议提供的。RDP实现Windows终端或其它任何基于Windows的客户端与Windows服务器进行通信,从而为运行在Windows上的应用程序提供远程显示和输入的能力。RDP能在任何TCP/IP的连接上运行,默认在端口3389上监听。由于远程桌面给电脑用户带来的便利,RDP协议已经得到了广泛的应用,但由于其远程连接的特性,我们有必要对其安全性进行分析和研究。虽然RDP协议是微软公司的私有协议,其具体实现细节并不公开,但是我们仍然可以通过抓取通信数据包和研究RDP协议中的相关技术来分析RDP协议的连接建立、密钥协商和数据通信过程。通过对RDP协议的分析,我们发现它确实存在一些安全漏洞。攻击者可以利用其中一个协议漏洞对其进行中间人攻击,通过监听客户端和服务器之间的通信,获取明文数据,并对其进行回放。基于上述分析和研究,我们进一步设计并实现了对RDP协议的中间人攻击。本文详细介绍了对RDP协议进行中间人攻击的原理和两种实现方法,以及通过ARP欺骗的方式实施中间人攻击的技术。RDP协议中间人攻击主要利用了RDP会话认证阶段的单向认证缺陷。由于客户端不对来自服务器的RSA公钥进行身份认证,攻击者可以采用ARP欺骗等方法伪装成服务器,从而将自己构造的公钥传递给客户端,骗取客户端在密钥协商过程中发送的随机串。而该随机串是生成会话密钥的重要参数,获得该随机串就可以进一步计算RDP会话密钥,从而破解通信数据。为了直观清晰的反映攻击结果,我们设计并实现了RDP协议回放系统。RDP协议中间人攻击成功后,中间人攻击主机将会存储客户端与服务器之间通信的明文数据。这些明文数据包括客户端发送到服务器的鼠标、键盘控制信息和服务器返回给客户端的屏幕显示信息等。根据屏幕显示明文数据,我们可以绘制出远程桌面使用过程中客户端界面,以此达到协议回放的目的。最后,根据现有RDP协议中暴露出的安全隐患,我们提出了几种增强RDP协议安全性的方法。其中,重点介绍了利用SSL协议对RDP协议进行改进,增加客户端对服务器的认证策略,使得客户端可以识别服务器公钥的真实性,从根本上杜绝中间人攻击的可能性。