详细的 Kerberos 体系介绍

Kerberos 介绍

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

协议的安全主要依赖与参加对时间的松散同步和短周期的叫做 Kerberos 票据的认证声明。下面是对这个协议的一个简化描述,它包括以下几个模:

  • AS (Authentication Server):认证服务器
  • KDC (Key Distribution Center):密钥分发中心
  • TGT (Ticket Granting Ticket):票据授权票据
  • SGT :服务许可票据
  • TGS (Ticket Granting Server):票据授权服务器
  • SS (Service Server):特定服务提供端

Kerberos 流程图

详细的 Kerberos 体系介绍_第1张图片

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

你可能感兴趣的:(详细的 Kerberos 体系介绍)