zoukankan      html  css  js  c++  java
  • kerberos认证协议分析

    Kerberos认证协议分析



    Kerberos认证协议流程



    如上图:
    * 第一步:client和认证服务器(AS)通信完成认证过程,如果认证成功AS返回给client一个TGT(用来向TGS获取ticket);
    * 第二步:client和票据生成服务器(TGS)通信验证是否要去访问目标站点的权限,如果有返回一个ticket给client;
    * 第三步:client带着这个票据访问待访问站点;

    协议弱点


    *  Kerberos引入的时间戳,在时间内依然可以被重放;
    *  Kerberos协议对口令进行对称加密,尤其是当AS返回给client的消息使用client产生的Kc来加密,使用单向hash函数对口令运算口得到加密秘钥;
    *  秘钥存储困难;
    *  时间同步困难;
    

    协议数据包分析值ASREQ


    *  kerberos-as-req特征Hex字符串 =》 6a8199308196a1030201
    *  Pvno协议版本号:05(Hex)十进制就是版本5
    *  分割点 a2030201
    *  MSG-TYPE(krb-as-req)0a(Hex) 十进制就是10
    *  分割点a3633061(内容可变,长度不变)
    *  PA-DATA  预认证数据
    *  a47a3078(内容可变,长度不变)
    *  a0070305(内容可变,长度不变)
    *  padding数据 00(Hex)
    *  KDC-OPTIONS:
    


    *  a112(可变后面两个Hex数字)
    *  CNAME 3017(3010)
    *  a0030201(分割点)
    *  name-type:krb5-NT-PRINCIPAL 01 ,也可以是其他
    *  a1093070(分割点,内容可变,长度不变)
    *  1b05(后面两个数可以变,长度不变)
    *  kerberos-string:十六机制数
    *  4个十六进制数分割值
    *  realname 服务域
    *  2个十六进制数分割值
    *  服务器名
    *  4个十六进制数分割值
    *  终止时间
    *  4个十六进制数分割值
    *  更新终止时间
    *  4个十六进制数分割值
    *  随机数
    *  4个十六进制数分割值
    *  加密类型
    *  主机地址
    

    协议数据包分析值ASREP


    *  record-mark : 4个十六进制数
    


    *  4个十六进制数分割
    *  8个16进制数,最后四个是a0030201
    *  Pvno版本号 :1个16进制数(05)
    *  a1030201
    *  msg-type:kr5-as-rep:11  0b (1个16进制数)
    *  4个十六进制数分割
    *  pa-data 域认证数据
        -  padata-type => 13(Hex) KRB5-PADATA-ETYPE-INFO2
        -  4个十六进制分隔符
        -  6个十六进制分割
        -  etype(一个Hex)
        -  4个十六进制分隔符
        -  域名+账户
    *  四个Hex分隔符
    *  域名
    *  二个Hex分隔符
    *  CNAME
        -  六个Hex数
        -  name-type(一个Hex)
        -  四个Hex数
        -  name-string
                +  两个Hex
                +  账户名
    *  ticket
        -  八个Hex
        -  tkt-vno版本 05(一个hex)
        -  四个hex
        -  域名
        -  两个Hex
        -  sname
            +  6个hex
            +  name-type (1个hex)
            +  name-string
                -  2个hex
                -  kerberosstring
                -  2个hex
                -  kerberosstring
        -  4个hex
        -  enc-part
            +  8个hex
            +  etype  加密算法1个hex
            +  4个hex
            +  kvno  1个hex
            +  8个hex
            +  cipher(秘钥)
    *  4个hex
    *  enc-part
        -  8个hex
        -  etype 加密算法  1个hex
        -  4个hex
        -  kvno版本  1个hex
        -  8个hex
        -  cipher(秘钥)
    

    协议数据包分析值TGSREQ




    协议数据包分析值TGSREP


  • 相关阅读:
    Java基础总结--常用类以及包的访问权限
    Java基础总结--多线程总结2
    关于技术太多造成选择困难/浮躁的心情应对
    Java基础总结--多线程总结1
    研究生毕业目标以及具体路线
    Java基础总结--异常处理机制
    Java基础总结--面向对象2
    【Mac系统 + Python + Django】之开发一个发布会系统【Django视图(二)】
    【Mac系统 + Python + Django】之搭建第一个【Django Demo(一)】
    【Python + ATX】之uiautomator2 PageObject模式自动化框架学习
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/8868671.html
Copyright © 2011-2022 走看看