Kerberos协议
Kerberos由MIT于1988年开发,用于分布式环境中的应用层协议,这是一个身份认证协议。其设计目标是通过密钥系统为客户机/服务器应用程序提供强大的认证服务。Kerberos在一个分布式的Client/Server体系的机构中,引入一个可信任的第三方(Kerberos服务器),使用共享密钥加密技术,让其提供认证服务。
简写 | 全称 | 作用 |
KDC | key distributed center | 整个安全认证过程的票据生成管理服务,其中包含两个服务,AS和TGS |
AS | authentication service | 为client生成TGT的服务 |
TGS | ticket granting service | 为client生成某个服务的ticket |
AD | account database | 存储所有client的白名单,只有存在于白名单的client才能顺利申请到TGT |
TGT | ticket-granting ticket | 用于获取ticket的票据 |
Ticket | 票据 | 身份或权利的证明,Ticket由AS以数据报形式发放给C |
client | 想访问某个server的客户端 | |
server | 提供某种业务的服务 |
1、Kerberos要解决的问题
在一个开放的分布式网络环境中,用户通过工作站访问服务器提供的服务,存在许多问题:
- 工作站上的用户可以冒充另一个用户操作
- 用户可以改变工作站的地址冒充另一台工作站
- 用户可以窃听并回放他人的信息交换,获得对于某种服务的访问权或中断服务的运行
- 使用假冒服务器从而骗得用户的机密信息
2、Kerberos 4认证过程
认证服务交换:获得票据许可票据-- Tickettgs = EKtgs[Kc,tgs || IDc || ADc || IDtgs || TS2 || Lifetime2]
1)C → AS :IDc || IDtgs || TS1
2)AS → C : EKc[Kc,tgs || IDtgs || TS2 || Lifetime2 || Tickettgs]
票据许可服务交换:获得服务许可票据-- Ticketv = EKv[KC,V || IDc || ADc || IDv || TS4 || Lifetime4];Kc,tgs : 由AS生成允许客户端和TGS间安全交换报文;Authenticatorc = EKc,tgs[IDc || ADc || TS3]符号说明:Authenticatorc :由客户端产生认证符,证明票据的有效性
3)C → TGS :IDv || Tickettgs || Authenticatorc
4)TGS → C :Kc,tgs[KC,V || IDv || TS4 || Ticketv]
客户端/服务器端认证交换:获得服务-- Authenticatorc = EKc,v[IDc || ADc || TS5]
5)C → V : Ticketv || Authenticatorc
6)V → C :EKv[TS5 + 1]
3、Kerberos特点
- 安全:使网络窃听者不能获得必要的信息来伪装成另一个客户。
- 可靠:对所有以Kerberos进行控制访问的服务来说,客户无法通过Kerberos服务器的认证就意味着无法获得所需要的服务。
- 透明:用户除了需要输入一个口令外,不必知道认证过程的存在以及细节。
- 可伸缩:可支持大量用户和服务器。
注:Kerberos协议不是一成不变的,也是由一般的版本慢慢更新的,安全协议都是在往复发现安全隐患后越发成熟。