摘要:基于Windows的RDP(Remote Desktop Protocol)协议,以Kerberos协议为核心,实现了RDP客户端的网络安全认证。Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的认证服务。系统采用Kerberos V5协议,基于Windows RDP的特性,扩展实现了Kerberos V5协议在RDP客户端的应用。Kerberos 作为一种可信任的第三方NLA(Network Level Authentication, 网络级身份验证)协议有较高的应用价值。本文实现的系统可用于Windows Server 2008, Windows Vista与Windows 7等RDP客户端Kerberos安全认证。
关键词: Kerberos,NLA,RDP,GSS
Implement of Client Kerberos Authentication Based on Windows RDP Author: Mike Lee
Abstract: Based on Windows RDP (Remote Desktop Protocol), to Kerberos protocol as the core, implement of client network security authentication. Kerberos is a kind of network authentication protocol, and its design goal is through the public-key systems for client/server applications provide strong authentication services. This system adopts Kerberos V5 protocol, based on the characteristics RDP Windows, and expand Kerberos implement in V5 protocol. Kerberos as a trusted third-party NLA (Network, the Network Level to also disables Authentication via an identity verification) protocol has higher application value. This system can be used in the Windows Server 2008, Windows Vista and Windows 7 and so on RDP client Kerberos authentication.
Keywords: Kerberos,NLA,RDP,GSS
引 言
NLA是一种身份验证方法,它要求用户在创建会话前必须通过RDP会话主机服务器的身份验证。NLA在建立远程桌面连接并出现登录屏幕之前完成用户身份验证。这是比较安全的身份验证方法,有助于保护远程计算机避免恶意用户和恶意软件的攻击。网络级身份验证的好处是[1]:
1. 起初需要较少的远程计算机资源。验证用户身份之前,远程计算机使用有限的资源,而不是像以前版本那样启动完整的远程桌面连接。
2. 可以通过降低受到拒绝服务攻击的风险,帮助提高安全性。
Kerberos协议是由麻省理工研发用来保护Project Athena提供的网络服务器。这个协议以希腊神话中的人物Kerberos(或者Cerberus)命名,它在希腊神话中是地狱的一条凶猛的三头保卫神犬,Kerberos的官方网站是:http://web.mit.edu/Kerberos;Kerberos作为实现NLA的一种可选择协议,已经广泛应用到各种主流操作系统,如Windows, Unix, Linux,Mac OS等,作为一种安全的网络认证协议数年前已经被成功应用到微软的Windows操作系统中。
1 Kerberos原理
认证(Authentication)解决的是“如何证明某个人确确实实就是他或她所声称的那个人”的问题。对于如何进行认证,可以采用这样的方法:如果一个密钥仅仅存在于A和B,那么有个人对B声称自己就是A,B通过让A提供这个密钥来证明这个人就是他或她所声称的A。Kerberos也是基于这个认证原理来实现双方的认证,它使用了两个独立的逻辑部分:认证服务器和票据授权服务器组成的"可信赖的第三方",称为密钥分发中心(KDC)。Kerberos工作在用于证明用户身份的"票据"的基础上。KDC持有一个密钥数据库;每个网络实体-无论是客户还是服务器-共享了一套只有他自己和KDC知道的密钥。密钥的内容用于证明实体的身份。对于两个实体间的通信,KDC产生一个会议密钥,用来加密他们之间的交互信息