本篇文章我会用一个故事来讲一个Kerberos的处理过程,整个事务的处理过程不完全等同于Kerberos的实际处理过程,只是作为一个参考。

假定香港反黑局派了一个卧底(资源服务器-梁朝伟饰)到黑社会组织B,现在反黑局派要一个信使(Kerberos客户端-刘德华饰)去和这个卧底见面,以便交流情报。但问题是,卧底没见过信使,信使也没见过卧底。当他们见面时,怎么来验证对方身份呢?很简单,虽然他们都没见过面,但他们都认识一个人,那就是反黑局的BOSSKDC-黄秋生饰),因为信使和卧底他都认识,而且是他派梁朝伟潜入黑社会组织B,同时他现在要刘德华使去和这个卧底见面。

     刘德华来到黄秋生办公室,出示一份请求,要求黄秋生给他一张票证,要求票证中的秘密是只有黄秋生和卧底(梁朝伟)知道,并用自己的密码哈希加密这份请求

黄秋生作为反黑局BOSS,安全意识一向很强,他也要确认你就是所说的刘德华,以免别人冒充刘德华来问他要票证。于是黄秋生使用刘德华的密码哈希来解密这份请求,如果验证不通过,就说明这个刘德华是冒充的,如果通过则会起草一个票证交给刘德华。这个票证有两部分组成:

1) 第一部分是一个随机数,它是黄秋生随便写的,并用刘德华的密码哈希来加密

2) 第二部分包含相同的随机数、信使的姓名、起草这份票证的时间和日期以及这份票证的有效期,这部分会用卧底(梁朝伟)的密码哈希来加密

作为警察,信使的安全意识也不会差,他也要验证这个黄秋生就是他要找的那个黄秋生,于是他用自己的密码哈希来解密属于他的那部分内容,如果是乱码或无法解密,就认为他是假冒的boss,如果解密成功,那么就认定这是真的boss,于是把这张票证放到自己的口袋里。

 在一个月黑分风高的夜晚,梁朝伟和刘德华在一个酒吧见面了。

 他们首先交换了各自的姓名。然后刘德华拿出由boss起草的票证并把属于对方的那部分给了梁朝伟。他们虎视眈眈的看着对方,气氛非常的紧张。他们一边看着对方,一边把手放在自己腰间的枪上(是腰间,不是裤裆间),随时准备动手。接下来有可能会发生如下情况:

1) 梁朝伟无法解密票证,刘德华就知道对方是假冒的,二话不说,拔出枪把对方干掉

2) 如果梁朝伟能解密票证,但其中是乱码,他就知道对方是假冒刘德华,拔出枪,把对方干掉

3) 如果能解密票证,但里面显示的姓名和刚才交换的不符,不用说了,直接拔出枪掉对方

4) 如果能解密,但当前时间已经过了这张票证的有效时间,梁朝伟会把票证扔了,并和对方再次约定下次见面的时间和地点,然后走出酒吧。(对,他没有买单)

如果以上情况都没有发生,认证就结束了吗?还没有,这时,梁朝伟会交给刘德华一封信,其中包含了梁朝伟的姓名、当前时间、以及他提出的一些条件。这封信会用头头票证中的随机数来加密。这个时候随机数就会变成双方的共享密钥。

      刘德华用boss给他的那部分随机数来解密,如果解密成功,然后查看里面的条件,如果能接收,双方的认证过程结束。然后开始交流情报。

下一篇文章将来到真实的环境,来看看票证是如何申请以及如果去访问资源和验证票证的