分类: 网络与安全
2009-07-03 11:52:15
Kerberos是由美国麻省理工学院提出的基于可信赖的第三方的认证系统。Kerberos提供了一种在开放式网络环境下进行身份认证的方法,它使网络上的用户可以相互证明自己的身份。
下面是自己整理的Kerberos Version 5的原理。先确定几个约定:
KDC_REPLY = TICKET + SESSION
TICKET = {client, server,
start_time, lifetime, k_session}k_server
SESSION = {client, server,
k_session}k_user
V_CLIENT = {client}k_session
V_SERVER = {server}k_session
Kerberos认证系统不仅保存了用户的基本信息(包括用户名和用户密码等信息,文中用client表示除了用户密码外用户的相关信息),也保存了服务的基本信息(包括服务名和服务密码等信息,文中用server表示除了服务密码外的服务的相关信息)。{}表示大括号里的东西用括号后的密钥加密。下面是Kerberos原理的图示说明:
注:验证器在是不能重用的,但是票(TICKET)有自己的生命期,在生命期内票是可以重用的。因此用户在获得其他服务的票或继续使用服务时都无需再次输入口令,可以直接使用。验证器不能重用是为了防范重演攻击,在Kerberos v5中真正做到验证器只能用一次是因为服务器用“重演缓冲区”保存了最近一次提交的验证器的信息。如果攻击者试图截取验证器并重用它,“重演缓冲区”会发现验证器已经被提交了。
下面介绍一篇博文,文章以话剧的形式演示了Kerberos的原理。虽然是Kerberos V4运行方式的演示,不过相信对理解Kerberos的原理有很大帮助:http://blog.csdn.net/peon/archive/2007/02/21/1512408.aspx