密码学应用-Kerberos体系

Kerberos体系是一种网络认证协议,其设计及的目的是通过**系统对客户机/服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主句地址的信任,不要求网络上所有主句的物理安全,并假定网络上传送的数据包可以任意的被读取,修改和插入数据。在以上情况下,Kerberos体系作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密码)执行认证服务的。协议的安全主要依赖于参加者对时间的松散同步和短周期的叫做Kerberos票据的认证声明。下面是对协议的一个简化描述,它包括以下几个模:

  • AS:认证服务器
  • KDC:**分发中心(认证服务,票据授权)
  • TGT:票据授权票据
  • SGT:服务许可票据
  • TGS:票据授权服务器
  • SS:特定服务提供端
    密码学应用-Kerberos体系
    Kerberos流程:
    1.客户机发送客户端名+TGS名到AS服务器。
    2.AS在数据库中检查是否有客户保存。
    3.如果用户存在则生成临时**K1。
    4.将客户机密码生成HASH值做为KC(KeyClient)**加密k1,记为KC(K1)。
    5.产生TGT信息,TGT信息也包括k1,客户端名,有效期。
    6.TGT会被加密,TGT**保存在AS服务器和TGS服务器上,是一个固定**1称为Kkdc.
    7.发送K1和TGT两个信息到客户端
    8.客户端密码正确则生成密码的HASH码可以**得到k1。
    9.利用k1为**加密客户端名。
    10.将被k1加密的客户端名,TGT,加密的WEB服务器名发送给TGS服务器获取服务许可票据。
    11.TGS服务器验证用户身份用固定**Kkdc解密TGT信息,获取TGT中的k1**和客户端名,有效期。
    12.将TGS中解密的k1再解密由客户端传来的由k1加密的客户端名,得到的客户端名与TGT中的客户端名进行对比判断。
    13.产生服务许可票据STG,SGT包含TGS为了本次服务生成的临时**K2,客户端名,有效期。
    14.用Ks为**对SGT进行加密,Ks为存放在AS,TGS和WEB应用服务器,是固定**2.
    15.用AS生成的临时**K1为**去加密临时**K2,得到**K2
    16.将加密后的K2,SGT返回给客户。
    17.客户机用K2**加密客户端名。
    18.客户机将加密后的客户端名,SGT,时间戳发送给WEB应用服务器。
    19.WEB应用服务器有Ks固定**,所以对SGT进行解密得到客户端名和**K2,有效期。
    20.WEB应用服务器用SGT中得到的**K2对客户端传来的客户端名解密,并于SGT中的客户端名对比验证。
    21.WEB应用服务器利用K2**加密后的时间戳返给客户机并提供服务。
    22.客户机通过K2**解密时间戳验证WEB应用服务器是合法服务器。