• 全网最容易理解kerberos流程总结


    AS 认证服务器   (有2个固定密钥,分别为固定密钥1,固定密钥2)

    KDC 密钥分发中心

    TGT 票据授权票据

    SGT 服务许可票据

    TGS 票据授权服务器 (有2个固定密钥,分别为固定密钥1,固定密钥2)

    SS  特定服务提供端

    web服务器(有一个固定密钥,为固定密钥2)

     

    1.客户端向AS认证服务器发送  客户端名字(client-name) + TGS(通往的票据授权服务器) AS在数据库里查找是否有这个客户端 如果有 则继续 

    2.AS认证中心生成一个随机密钥 这里简称key1 ,然后生成一个TGT(票据授权票据),里面包含了client-name key1  和 有效期

      然后 用客户端的密码 加密 key1 ,用固定密钥1(Gkey1)加密TGT  发送给客户端

    3.客户端收到发送过来的 加密后的key1  和 加密后的 TGT, 客户端用自己的密码解开没加密的key1,得到key1, 然后用key1 加密自己的客户端名字 +  TGT 发送给TGS(票据授权服务器)

    4.票据授权服务器接收到加密后的客户端名字 和 TGT  ,  用自己也带有的G1解开TGT ,得到了客户端名字 和 key1 和有效期 , 然后用这个key1 解开加密后的客户端名字

     如果TGT里的客户端名字 和 用key1 解开的客户端名字一致 则证明是客户端发过来的请求 这时候生成 SGT(服务许可票据),一个随机密钥 这里简称 key2 ,SGT包含了客户端的名字 和 key2 和

     有效期,  这时候用key1 加密 key2  , 自带的固定密钥2(Gkey2)加密 SGT  ,  将加密后的SGT  +  加密后的key2  发送会给 客户端

    5. 客户端这时候收到了TGS(票据授权服务器)发送回来的 加密后key2  和 加密后的 SGT, 然后用自己的key1 解密 key2 得到key2,用key2 加密自己的客户端名字(client-name) + SGT 发送给 web

    服务器 + 时间戳。

    6.这时候web服务器收到客户端发过来的SGT 和 加密后的客户端名字 和 时间戳,然后用自己的固定密钥2(Gkey2)解密SGT,拿到里面的客户端名字 和 key2 和有效期 ,用key2解密客户端发过来的 client-name 如果和SGT里面的客户端名字一致 则 用key2 加密时间戳 发送会 客户端

    7.客户端用key2 解密时间戳 如果成功 则web服务器合法  ----------

    kerberos体系顺利走完 

  • 相关阅读:
    改写历史,永久删除git库的物理文件
    双调排序
    GitHub从无到有
    Nginx的安装与基本应用
    Django从无到有的艰苦历程
    pycharm 相关设置问题
    ORM介绍
    Django中的过滤器
    FBV和CBV的差异
    django中models field详解
  • 原文地址:https://www.cnblogs.com/kyooo/p/13267344.html
Copyright © 2020-2023  润新知