kerberos:一个游客的故事

kerberos是一种网络身份认证协议,源自希腊神话中的地狱三头犬(刻耳柏洛斯),名副其实的“看门狗”。

kerberos:一个游客的故事_第1张图片

kerberos使用对称密钥算法,提供双向认证服务,类似于支付宝对于买卖双方的作用。微软的Windows、苹果的Mac OS X、部分Linux操作系统都使用Kerberos身份认证。

公民小新在出生上户口时即获得一个身份信息(密钥),这个身份信息(密钥)只有自己和户籍中心知道。

某天,小新前往游览某5A景区。

想要玩,先买票。小新前往售票处,正常流程出示身份证即可购票,但是小新多张了个心眼,这个售票处会不会是假的?售票处认证小新的身份只是单向鉴别,小新如何验证售票处的身份?于是小新去了使用kerberos协议的票务中心。

票务中心:姓名?

小新:小新。

票务中心: 请使用小新的密钥加密“一段认证信息”发给我。

小新使用自己的密钥加密了一串字符“AAABBB”,发送给票务中心。

票务中心与户籍中心联网,将解密后的消息告诉小新。

小新的密钥只有户籍中心知道,能够正确解密说明是官方认证的票务中心。

票务中心给小新两样东西:1)使用「5A景区密钥」加密的门票;2)使用「小新密钥」加密的「临时会话密钥」;门票中包含了同样的「临时会话密钥」,以及小新能够游玩的玩乐设施。

小新使用自己的密钥解密获得「临时会话密钥」,去往5A景区的验票处。

验票处:请出示你的门票和认证信息。

小新递上门票和使用「临时会话密钥」加密的“CCCDDD”。

验票处使用「5A景区密钥」获得「临时会话密钥」,再解密小新发送的信息,返回解密的“CCCDDD”。

小新验证信息一致,开始游玩。

上述过程不完全准确地描述了Kerberos协议的工作过程。

Kerberos的组成部分:

TGT:门票,用来向服务器证明自己的身份,包括标识、会话密钥、时间戳;

KDC(key distribution center ) :户籍中心,提供Ticket和临时会话密钥;

TSG(Ticket Granting Server): 票务中心,提供票证授予服务,通常和KDC在同一服务器上;

AS (Authentication Server): 验票处。

使用TGT的目的,是无需和景区包含的玩乐设施进行认证。

Kerberos的缺点也很明显,KDC被攻击,整个系统就会出现故障。集中身份认证都存着此类单点故障问题。


参考文献:

能用通用的语言介绍下Kerberos 协议么? - 车小胖的回答 - 知乎

你可能感兴趣的:(kerberos:一个游客的故事)