Kerberos体系的运作过程

Kerberos的定义

  1. Kerberos是一种网络认证协议,其设计目标是通过密钥系统为客户机/服务器应用程序提供强大的认证服务。其认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络傻瓜所有主机的物理安全,并假定网络上传送的数据包可以被任意的读取、修改和插入数据。在以上情况下Kerberos作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。

协议的安全主要依赖于参与者对世界的松散同步和短周期的叫做Kerberos票据的认证声明。下面是对于这个协议的一个简化描述,它包括以下几个模:
2. AS:认证服务器;
3. KDC:密钥分发中心;
4. TGT:票据授权票据;
5. SGT:服务许可票据;
6. TGS:票据授权服务器;
7. SS:特定服务提供端;
Kerberos体系的运作过程_第1张图片
Kerberos流程详解

  1. 客户机发送客户端名+TGS名(服务许可票据申请)到AS服务器;
  2. AS在数据库中检查是否有客户保存;
  3. 如果用户存在则生成临时密钥K1;
  4. 将客户机的密码的HASH值叫做KC(KEYClient)密钥加密K1,记为KC(K1);
  5. 产生TGT信息,TGT也包括K1,客户端名,有效期;
  6. TGT会被一个固定密钥加密,加密的密钥保存在AS服务器和TGS服务器上,命名为Kkdc;
  7. 发送K1和TGT信息两个信息到客户端;
  8. 客户端如果密码正确则可生成正确的HASH并可以解密出正确的K1;
  9. 利用K1为密钥加密客户端名;
  10. 将K1加密后的客户端名、TGT、加密后的Web服务器名发送给TGS服务器获取服务许可票据SGT;
  11. TGS服务器验证用户身份用固定密钥Kkdc解密TGT信息来获取TGT中的K1密钥和客户端名 ;
  12. 将从TGS中解密的K1在解密有客户端传输过来的由K1加密的客户端名,并与TGT信息中的客户端名对比判断;
  13. 产生服务许可票据SGT,SGT包含TGS为了本次服务生成的临时密钥K2,客户端名,有效期;
  14. SGT用固定密钥Ks进行加密,分别存放于AS、TGS和WEB服务器;
  15. 用AS生成的临时密钥K1,为密钥加密K2;
  16. 将加密后的K2,SGT返回给客户端;
  17. 客户端用K1解密K2,再用K2加密客户端名;
  18. 客户端将加密后的客户机名、SGT、时间戳发送给WEB服务器;
  19. WEB服务器由KS密钥,所有可以解密SGT拿到客户端名和K2密钥;
  20. WEB服务器通过K2密钥解密客户端名,并于SGT中的客户端名进行比较验证;
  21. WEB服务器利用K2加密时间戳返回给客户端提供服务;
  22. 客户端通过K2密钥解密验证Web服务器是合法服务器;

Kerberos体系的运作过程_第2张图片

你可能感兴趣的:(kerberos,网络)