安全协议:Kerberos认证协议
一、简介
Kerberos由MIT于1988年开发,用于分布式环境中,完成服务器与用户之间的相互认证。设计者的设计初衷是要用Kerberos的三个头来守卫网络之门。三个头分别包括:认证、账目清算和审计。
Kerberos要解决的问题
在一个开放的分布式网络环境中,用户通过工作站访问服务器提供的服务,存在许多问题:
- 工作站上的用户可以冒充另一个用户操作
- 用户可以改变工作站的地址冒充另一台工作站
- 用户可以窃听并回放他人的信息交换,获得对于某种服务的访问权或中断服务的运行
- 使用假冒服务器从而骗得用户的机密信息
Kerberos的解决方案
- 在一个分布式的Client/Server体系的机构中,引入一个可信任的第三方(Kerberos服务器),让其提供认证服务。
- 使用共享密钥加密技术
Kerberos基本性质
- 安全:使网络窃听者不能获得必要的信息来伪装成另一个客户。
- 可靠:对所有以Kerberos进行控制访问的服务来说,客户无法通过Kerberos服务器的认证就意味着无法获得所需要的服务。
- 透明:用户除了需要输入一个口令外,不必知道认证过程的存在以及细节。
- 可伸缩:可支持大量用户和服务器。
二、协议具体内容
三个重要概念
- 认证服务器(AS):它将所有用户的口令集中存放在本地数据库中;而且它与每一个应用服务器共享一个唯一的密钥(这些密钥通过物理或其他安全的方式发放)
- 客户端(C):代替用户与服务器进行信息交换
- 票据(Ticket):身份或权利的证明
Ticket由AS以数据报形式发放给C。
一个简单的认证对话
上图就是一个简单的认证对话过程,总共有三步: