Kerberos安全认证模型广泛用于互联网客户端和服务器之间的双向认证。
可以用于防止网络replay攻击、恶意破坏、窃听,保证了数据的完整性,是一种对称密钥体制进行密钥管理的系统。
ceph分布式文件系统中的安全认证模块的原型也来源于kerbos
具体的认证流程:
用户登录:
1) 用户输入用户名和密码到客户端
2) 客户机程序在输入的密码上运行一个单向函数(大多数为杂凑),这个成为客户端/用户的密钥。
客户端认证:
1) 客户端向认证服务器发送一个明文消息,代表用户请求服务。只发送“用户AAA想请求服务”,不用发送密钥,也不需要发送密码。
2) 认证服务器检验这个用户AAA是否在它的数据库中。若在,认证服务器返回以下2条信息给用户:
a) 消息A:使用客户端密钥加密的客户端/票据授权会话密钥
b) 消息B:用票据授权密钥加密的票据授权票据(包含:客户ID、客户网络IP地址、票据有效期、客户端/票据授权会话密钥)
3) 客户端受到消息A和消息B,他解密得到消息A的客户端/票据授权会话密钥。客户端/票据授权会话密钥是在将来与票据授权服务器通信上(客户端不能解密消息B,因为它是用票据授权服务器的密钥加密的),这样客户端有足够的信息向票据授权服务器证明自己的身份。
服务器认证:
当申请服务时,客户向票据授权服务器发送以下两条消息:</