走马观花 --- 网络身份认证协议Kerberos (一)

来源:互联网 发布:安易数据恢复软件免费 编辑:程序博客网 时间:2024/05/22 07:26

近日协议之类看多了,聊发少年狂地想起了最经典的网络身份认证协议 --- Kerberos。很多已经记不清,遂抓起书,走马观花般回味一番。

 

1. Kerberos协议是什么?

Kerberos协议是一种应用于开放式网络环境、基于信任第三方的TCP/IP网络安全认证协议,其认证模型基于Needham-Schroeder协议,以加密技术为基础,并引入了时间戳处理,可以为用户对远程服务器的访问提供自动鉴别、数据安全性和完整性服务。

2.Kerberos协议认证过程

Kerberos协议是由MIT发明的,它的安全机制在于首先对发出请求的用户进行身份验证,确认其是否是合法的用户;如果是合法的用户,再审核该用户是否有权对他所请求的服务或主机进行访问。从加密算法上来讲,其验证是建立在对称加密的基础上的(这点和PKI机制不同,PKI是建立在非对称加密基础上)。他采用可信任的第三方,密钥分发中心(KDC)保存与所有密钥持有者通信的保密密钥,其认证过程颇为复杂,下面简化叙之。
首先客户(C)向KDC发送初始票据TGT,申请访问服务器(S)的许可证。KDC确认客户合法后,临时生成一个C与S通信时用的保密密钥KCS,并用C的密钥KC加密KCS后传给C,并附上用S的密钥KS加密的“访问S的许可证TS,内含KCS" - K(TS)。当C收到上述两信件后,用他的KC解密获得KCS,而把用K(TS)原封不动地传给S,并附上用KCS加密的客户身份和时间。当S收到这两信件后,先用他的KS解密K(TS)获得其中的KCS,然后用这KCS解密获得客户身份和时间,告之客户成功。之后C和S用KCS加密通信信息。

 

3.Kerberos协议与其他身份认证方法相比,优势在哪?

(1)单点登录后统一身份认证。

“统一认证”是什么意思?例如,高校有图书馆管理系统,教务管理系统等等,这意味着有多个管理域。如果每个管理域都维护自己的用户数据库(用户名,密码),势必加重了学生们记忆口令的负担。所以我们可以在不同的系统中为学生维护一致的身份,即:所有系统都使用统一的身份管理模块。那么,“单点登录”作何解? 既然身份已经统一,自然应该降低在系统间跳转访问时,学生输入口令的频度。也就是说,我们一旦在单点成功登录后,所有已加入统一认证的服务系统,都可以被学生直接访问,而不用重复认证。

(2) 防止窃听。

因为kerberos的认证过程中,所采用的凭据已经使用服务器的key加密,这样可以使认证结果和session key都安全传送到应用服务器上。所以,不论是口令还是其他信息,都是以密文形式传送。窃听者拿到后也是“天书”。

(3) 集中认证。

集中的好处是便于管理。只要保证域内的Kerberos服务器是物理安全并可控的,就能很好的抵抗攻击者入侵。

(4) 避免静态session key。

用户与应用服务器交互时,每次session使用的session key都由kerberos重新分配,并且分别用用户的key和服务器的key加密,避免静态密钥带来的安全威胁。

(5)双向认证。

这个很好理解。client可以向server证明自己是合法用户,server也可以向client证明自己是可信赖的。

(6)简化跨域身份验证工作。

kerberos发布的凭证可以在使用域间的信任关系传递,从而被域内所有的服务器接受。这样便于大型系统进行层次化管理,提高了多域认证的可伸缩性。