&">nbsp; Kerberos这一名词来源于希腊神话“三个头的狗——地狱之门守护者”
Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下, Kerberos 作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。
认证过程具体如下:客户机向认证服务器(AS)发送请求,要求得到某服务器的证书,然后 AS 的响应包含这些用客户端密钥加密的证书。证书的构成为: 1) 服务器 “ticket” ; 2) 一个临时加密密钥(又称为会话密钥 “session key”) 。客户机将 ticket (包括用服务器密钥加密的客户机身份和一份会话密钥的拷贝)传送到服务器上。会话密钥可以(现已经由客户机和服务器共享)用来认证客户机或认证服务器,也可用来为通信双方以后的通讯提供加密服务,或通过交换独立子会话密钥为通信双方提供进一步的通信加密服务。
上述认证交换过程需要只读方式访问 Kerberos 数据库。但有时,数据库中的记录必须进行修改,如添加新的规则或改变规则密钥时。修改过程通过客户机和第三方 Kerberos 服务器(Kerberos 管理器 KADM)间的协议完成。有关管理协议在此不作介绍。另外也有一种协议用于维护多份 Kerberos 数据库的拷贝,这可以认为是执行过程中的细节问题,并且会不断改变以适应各种不同数据库技术。
协议结构
Kerberos 信息:
* 客户机/服务器认证交换
<
信息方向 信息类型
客户机向 Kerberos KRB_AS_REQ
Kerberos 向客户机 KRB_AS_REP或KRB_ERROR
* 客户机/服务器认证交换
信息方向 信息类型
客户机向应用服务器 KRB_AP_REQ
【可选项】 应用服务器向客户机 KRB_AP_REP或 KRB_ERRORR
* 票证授予服务(TGS)交换
信息方向 信息类型
客户机向 Kerberos KRB_TGS_REQ
Kerberos 向客户机 KRB_TGS_REP或KRB_ERROR
* KRB_SAFE 交换
* KRB_PRIV 交换
* KRB_CRED 交换
Kerberos的是MIT为雅典娜(Athena)计划开发的认证系统。
Kerberos的组成:
Kerberos应用程序库:应用程序接口,包括创建和读取认证请求,以及创建safe message 和private message的子程序。
加密/解密库:DES等。
Kerberos数据库:记载了每个Kerberos 用户的名字,私有密钥,截止信息(记录的有效时间,通常为几年)等信息。
数据库管理程序:管理Kerberos数据库KDBM服务器(数据库管理服务器):接受客户端的请求对数据库进行操作。
认证服务器(AS):存放一个Kerberos数据库的只读的副本,用来完成principle的认证,并生成会话密钥.
数据库复制软件:管理数据库从KDBM服务所在的机器,到认证服务器所在的机器的复制工作,为了保持数据库的一致性,每隔一段时间就需要进行复制工作.
用户程序:登录Kerberos,改变Kerberos密码,显示和破坏Kerberos标签(ticket)等工作。
Microsoft Windows Server 2003操作系统上实现了Kerberos5身份验证协议。Windows Server2003总是使用扩展公钥身份验证机制。KerBeros身份验证客户端作为SSP(Security Support Provider)通过访问SSPI(Security Support Provider Interface)来实现身份验证。用户身份验证初始化过程被集成在Winlogon这SSO(Single Sign-On)体系中。