Kerberos介绍
Kerberos这一名词来源于希腊神话“三个头的狗——地狱之门守护者”。
系统设计上采用客户端/服务器结构与DES加密技术,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止replay攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。
支持SSO(Single Sign On),用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务。
由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。
认证原理解析
准备阶段
先看下图:
这里出现的角色有三个分别是:
- KDC (Key Distribution Center)
- Client
- Service
其中KDC有两个服务:
- AS (Authentication Server): 认证服务,用于签发“Ticket-Granting Tickets” (TGT)
- TGS(Ticket Granting Server): 许可证服务,用于签发service tickets(各种服务的tickets)
密钥两个:
- KDC与Client之间的共享密钥(密钥A,其实就是用户密码)
- KDC与Service之间的共享密钥(密钥B)
认证过程
第一步:
用户发送自己的用户信息给KDC,KDC访问AS