了解Kerberos互操作性

日期: 2012-02-08 作者:Gary Olsen翻译:周毅 来源:TechTarget中国 英文

Kerberos协议,以希腊神话中的三头犬命名,保护由服务器、客户端和一个受信任第三方应用程序所组成的计算机环境。Kerberos 这个受信任第三方应用程序,管理共享密钥来实现用户安全地访问客户端和服务器资源。   Kerberos与身份验证服务(AS)和票证授予服务(TGS)一同部署。 Active Directory域控制器(DC)实现这两种服务。

这些服务同样也能运行在Unix环境中。域控制器同样也是密钥分发中心(KDC)。通过身份验证服务创建用户账号和密码,并保存在数据库中。Kerberos客户端服务使用明文密码,再加上一个文本字符串(通常是用户名),然后通过String2key的程序运……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

Kerberos协议,以希腊神话中的三头犬命名,保护由服务器、客户端和一个受信任第三方应用程序所组成的计算机环境。Kerberos 这个受信任第三方应用程序,管理共享密钥来实现用户安全地访问客户端和服务器资源。

  Kerberos与身份验证服务(AS)和票证授予服务(TGS)一同部署。 Active Directory域控制器(DC)实现这两种服务。这些服务同样也能运行在Unix环境中。域控制器同样也是密钥分发中心(KDC)。通过身份验证服务创建用户账号和密码,并保存在数据库中。Kerberos客户端服务使用明文密码,再加上一个文本字符串(通常是用户名),然后通过String2key的程序运行这个服务,把结果存储为“共享密钥”。

  当用户登录到工作站上,输入用户名和密码后,在工作站上, Kerberos客户端服务使用相同的算法生成共享密钥。该密钥用于加密AS_REQ数据包,同时请求票证授予票证(TGT)。如果该用户的共享密钥匹配该用户服务器端的密钥,则读取数据包,同时一个加密的TGT返回给用户(AS_REP)。该TGT证明用户是合法用户,可以如其说的那样安全访问资源。请注意:永远不要跨网传递密码。

Kerberos,互操作性,AS,TGS,TGT
图一:概述

  图1显示了Kerberos身份验证(登录)和授权(访问网络资源)的过程。获得的TGT后,该TGT会被提交给票证授予服务。 TGS的请求服务,如登录或访问一个共享、应用程序或设备,比如打印机。TGT使用用户共享密钥加密,通过TGS_REG请求发送给TGS(票证授予服务)。TGS和AS一样,它比较服务器端和用户的共享密钥,如果两者匹配,就会打开、读取并兑现TGS_REQ请求。TGS反馈一个TGS_REP响应,同时用会话密钥加密一个服务票据。客户端能打开TGS_REP并获取服务票据,但是不能打开密钥本身,只有服务器能打开,因为只有服务器知道这个会话密钥。

Kerberos互操作性,AS,TGS,TGT
图2:身份验证实现安全性

  在图2中,显示了身份验证过程,该验证过程是通过AP_REQ请求发送的。这包括服务票据、将票据提交给识别会话密钥的应用服务器和兑现请求。同时检查用户对资源的访问权限(如读、写等),根据权限进行不同的任务程序。请注意,验证还包含一个时间戳,这是客户机上创建数据包的时间。这可用于防止重放攻击,重放攻击中,入侵者常使用合法的数据包向服务器发出请求。如果该攻击请求与时间戳同时或之后发生,该数据包会被拒绝。同时也会与服务器的时间戳进行比较。如果比较结果大于5分钟,则拒绝响应数据包,所以同步网络上所有计算机的时间尤为主要。每一台计算机的系统时钟始终是UTC时间,而且不会受时区的影响。

  Kerberos可以在Windows林/域环境和Unix/Linux环境下的MIT Kerberos域间相互访问和操作, 因为在两者间Kerberos实现过程非常类似,所以很容易实现两者的兼容。在Windows实现过程中,一个用于定位DC/KDC的DNS请求会被提交。然后如之前所述,向DC提交一个AS_REQ以获得TGT。

  为了核实Kerberos互操作性,需要考虑一些场景。下篇文章中我们就将具体地通过几个场景来核实Kerberos互操作性

相关推荐