Windows系统中如何完成Kerberos认证协议

原创
系统 Windows
Kerberos认证协议定义了客户端和称为密钥分配中心KDC的认证服务之间的安全交互过程。Kerberos是基于共享密钥的认证协议,用户和密钥分配中心KDC都知道用户的口令,并定义了一套客户端、KDC和服务器之间获取和使用Kerberos票据的交换协议。

【51CTO独家特稿】Kerberos认证协议定义了客户端和称为密钥分配中心KDC(Key Distribution Center)的认证服务之间的安全交互过程。Windows 2000在每一个域控制器中应用KDC认证服务,其域同Kerberos中的realm功能类似,具体可参考RFC 1510协议。Windows 2000中采用多种措施提供对Kerberos协议的支持:Kerberos客户端使用基于SSPI的Windows 2000安全提供者,初始Kerberos认证协议同WinLogon的单次登录进行了集成,而Kerberos KDC也同运行在域控制器中的安全服务进行了集成,并使用活动目录作为用户和组的账号数据库。

Kerberos是基于共享密钥的认证协议,用户和密钥分配中心KDC都知道用户的口令,或从口令中单向产生的密钥,并定义了一套客户端、KDC和服务器之间获取和使用Kerberos票据的交换协议。当用户初始化Windows登录时,Kerberos SSP利用基于用户口令的加密散列获取一个初始Kerberos票据TGT,Windows 2000把TGT存储在与用户的登录上下文相关的工作站的票据缓存中。当客户端想要使用网络服务时,Kerberos首先检查票据缓存中是否有该服务器的有效会话票据。如果没有,则向KDC发送TGT来请求一个会话票据,以请求服务器提供服务。

请求的会话票据也会存储在票据缓存中,以用于后续对同一个服务器的连接,直到票据超期为止。票据的有效期由域安全策略来规定,一般为8个小时。如果在会话过程中票据超期,Kerberos SSP将返回一个响应的错误值,允许客户端和服务器刷新票据,产生一个新的会话密钥,并恢复连接。

在初始连接消息中,Kerberos认证协议把会话票据提交给远程服务,会话票据中的一部分使用了服务和KDC共享的密钥进行了加密。因为服务器端的Kerberos有服务器密钥的缓存拷贝,所以,服务器不需要到KDC进行认证,而直接可以通过验证会话票据来认证客户端。在服务器端,采用Kerberos认证系统的会话建立速度要比NTLM认证快得多,因为使用NTLM,服务器获取用户的信任书以后,还要与域控制器建立连接,来对用户进行重新认证。

Kerberos会话票据中包含有一个唯一的、由KDC创建的、用于客户端和服务器之间传输数据和认证信息加密的会话密钥。在Kerberos模型中,KDC是作为产生会话密钥的可信第三方而存在的,这种形式更适合于分布式计算环境下的认证服务。

Kerberos作为基本的Windows 2000认证协议,与Windows 2000认证和存取控制安全框架进行了紧密整合。初始的Windows域登录由WinLogon提供,它使用Kerberos安全提供者(security provider)来获取一个初始的Kerberos认证协议票据。操作系统的其他组件,如转向器(Redirector)则使用安全提供者的SSPI接口来获取一个会话票据,以连接对远程文件存取的SMB服务器。

Kerberos V5协议在会话票据中定义了一个携带授权数据的加密域,该域的使用留给了应用开发,而Windows 2000则使用Kerberos票据中的授权数据来附带代表用户和组成员的Windows 安全ID。在服务器端的Kerberos安全提供者则使用授权数据来建立代表用户的一个Windows安全存取控制令牌,可以模拟客户端来请求提供相应服务。

Windows 2000中应用了Kerberos协议的扩展,除共享密钥外,还支持基于公/私钥对的身份认证机制。Kerberos公钥认证的扩展允许客户端在请求一个初始TGT时使用私钥,而KDC则使用公钥来验证请求,该公钥是从存储在活动目录中用户对象的X.509证书中获取的。用户的证书可以由权威的第三方,如VeriSign和Digital IDs等来发放,也可以由Windows 2000中的微软证书服务器来产生。初始认证以后,就可以使用标准的Kerberos来获取会话票据,并连接到相应的网络服务。

通过对Kerberos认证协议进行公钥扩展,可以使用户采用多种方式来登录工作站和网络,如采用智能卡技术。智能卡中一般存储有用户的私钥,可用于Kerberos的初始化认证处理。

目前,使用公钥技术来扩展Kerberos认证协议的计划和建议已经提交到IETF来进行标准化推广。

【51CTO独家特稿,合作站点转载请注明原文译者和出处。】

【编辑推荐】

  1. Windows终端服务的Kerberos化验证
  2. Samba将可取得微软Windows协议文件 
责任编辑:张浩 来源: 51CTO.com
相关推荐

2022-11-18 11:01:57

微软Windows

2012-03-28 14:06:43

软件系统系统测试

2020-11-04 00:00:29

Kerberos协议身份

2014-11-21 09:52:47

2010-06-28 09:46:17

2011-05-30 14:11:45

2011-09-22 13:34:24

2014-09-01 11:08:34

LinuxSSH

2010-07-09 15:44:47

Linux开发环境

2013-04-16 10:33:58

Windows 安全认微软

2019-03-04 11:30:07

修复Windows 10系统文件

2020-04-08 17:32:29

Windows10windows.old删除

2013-09-23 10:15:09

Windows 7梦幻桌面技巧

2017-03-13 15:55:11

Windows 10WindowsDeskScapes

2021-07-30 07:57:53

Windows 操作系统微软

2021-08-02 06:49:46

OIDC认证协议

2009-12-15 14:42:54

Internet协议

2010-07-02 12:31:22

设置DHCP协议

2013-04-15 17:55:12

Windows认证安全认证

2020-12-07 12:47:22

MQTT鸿蒙hi3861
点赞
收藏

51CTO技术栈公众号