发明名称 一种基于访问授权票据的跨异构域身份认证及会话密钥协商方法
摘要 一种基于访问授权票据的跨异构域身份认证及会话密钥协商方法,其做法主要是:首先,利用基于公钥认证机制的分布式信任模型,在PKI域的认证中心CA与Kerberos域的认证服务器AS之间建立起第一级信任关系;在此基础上,由CA(或AS联合TGS)生成并分发外域用户访问本域资源的授权票据,并通过设计基于对称密钥密码体制的双向跨域认证及密钥协商协议,建立起外域用户访问本域资源之间的第二级信任关系。在满足各级安全需求的前提下,有效降低了终端计算量与通信量,可完全避免Kerberos域终端的公钥加解密运算,在动态分布式系统跨异构域身份认证过程中具有良好的可实施性;身份认证的同时完成会话密钥协商,协议效率高。
申请公布号 CN103780618B 申请公布日期 2016.11.09
申请号 CN201410028603.2 申请日期 2014.01.22
申请人 西南交通大学 发明人 张文芳;饶宇;王小敏
分类号 H04L29/06(2006.01)I;H04L9/32(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 成都博通专利事务所 51208 代理人 陈树明
主权项 一种基于访问授权票据的跨异构域身份认证及会话密钥协商方法,其步骤包括:首先,公钥基础设施(PKI)域中的认证中心CA与私钥认证体制(Kerberos)域中的认证服务器AS通过公钥证书进行交互认证;然后,Kerberos域的用户和PKI域的资源通过访问授权票据进行交互认证和会话密钥协商,其特征在于:所述的Kerberos域的用户和PKI域的资源通过访问授权票据进行交互认证和会话密钥协商的具体方法是:A1、访问授权票据请求Kerberos域的用户向认证服务器AS提出跨域访问PKI域资源的认证请求,认证服务器AS对Kerberos域的用户身份进行认证,若认证未通过则转步骤A4;否则,向PKI域的认证中心CA发送访问授权票据请求;所述的Kerberos域用户向认证服务器AS提出跨域访问PKI域资源的认证请求时的请求消息M<sub>A1</sub>为:<maths num="0001"><math><![CDATA[<mrow><msub><mi>M</mi><mrow><mi>A</mi><mn>1</mn></mrow></msub><mo>=</mo><mo>{</mo><msub><mi>ID</mi><mi>U</mi></msub><mo>,</mo><msub><mrow><mo>{</mo><msub><mi>ID</mi><mi>U</mi></msub><mo>,</mo><msub><mi>ID</mi><mi>S</mi></msub><mo>,</mo><msub><mi>T</mi><mn>1</mn></msub><mo>}</mo></mrow><msub><mi>k</mi><mrow><mi>U</mi><mo>,</mo><mi>A</mi><mi>S</mi></mrow></msub></msub><mo>}</mo></mrow>]]></math><img file="FDA0001060790870000011.GIF" wi="605" he="71" /></maths>其中ID<sub>U</sub>表示Kerberos域用户的身份标识,ID<sub>S</sub>表示PKI域资源的身份标识,T<sub>1</sub>表示Kerberos域用户产生的时间戳,k<sub>U,AS</sub>表示Kerberos域用户和认证服务器AS的共享对称密钥,<img file="FDA0001060790870000012.GIF" wi="325" he="70" />表示用对称密钥k<sub>U,AS</sub>对{ID<sub>U</sub>,ID<sub>S</sub>,T<sub>1</sub>}加密;所述的认证服务器AS对Kerberos域的用户身份进行认证的具体做法是:认证服务器AS接收到请求消息M<sub>A1</sub>后,用k<sub>U,AS</sub>解密<img file="FDA0001060790870000013.GIF" wi="321" he="70" />得到Kerberos域用户的解密身份标识ID’<sub>U</sub>、解密的时间戳T’<sub>1</sub>;当解密身份标识ID’<sub>U</sub>与请求消息M<sub>A1</sub>中明文的Kerberos域用户的身份标识ID<sub>U</sub>一致且解密的时间戳T’<sub>1</sub>具有新鲜性,则认证通过,否则,认证不通过;所述的认证服务器AS向PKI域的认证中心CA发送访问授权票据请求的具体做法是:认证服务器AS产生新的时间戳T<sub>2</sub>,向PKI域资源所在域的认证中心CA发送访问授权票据请求M<sub>A2</sub>:<maths num="0002"><math><![CDATA[<mrow><msub><mi>M</mi><mrow><mi>A</mi><mn>2</mn></mrow></msub><mo>=</mo><msub><mrow><mo>{</mo><msub><mi>ID</mi><mrow><mi>A</mi><mi>S</mi></mrow></msub><mo>,</mo><msub><mi>ID</mi><mrow><mi>C</mi><mi>A</mi></mrow></msub><mo>,</mo><msub><mi>ID</mi><mi>U</mi></msub><mo>,</mo><msub><mi>ID</mi><mi>S</mi></msub><mo>,</mo><msub><mi>T</mi><mn>2</mn></msub><mo>,</mo><msub><mi>SIGN</mi><mrow><msub><mi>SK</mi><mrow><mi>A</mi><mi>S</mi></mrow></msub></mrow></msub><mo>}</mo></mrow><mrow><msub><mi>PK</mi><mrow><mi>C</mi><mi>A</mi></mrow></msub></mrow></msub></mrow>]]></math><img file="FDA0001060790870000014.GIF" wi="837" he="71" /></maths>其中ID<sub>AS</sub>表示认证服务器的身份标识,ID<sub>CA</sub>表示认证中心的身份标识,<img file="FDA0001060790870000015.GIF" wi="166" he="62" />表示认证服务器AS用私钥SK<sub>AS</sub>对消息{ID<sub>AS</sub>,ID<sub>CA</sub>,ID<sub>U</sub>,ID<sub>S</sub>,T<sub>2</sub>}的签名,<img file="FDA0001060790870000016.GIF" wi="749" he="70" />表示用认证中心CA的公钥PK<sub>CA</sub>对消息<img file="FDA0001060790870000017.GIF" wi="642" he="71" />加密;A2、访问授权票据生成和发放认证中心CA验证认证服务器AS的身份,若验证未通过则转步骤A4;否则,生成Kerberos域用户访问PKI域资源的会话密钥、包括该会话密钥的访问授权票据,再对会话密钥和访问授权票据打包加密,然后发送给认证服务器AS;认证服务器AS解密出会话密钥和访问授权票据并验证其有效性,若验证不通过则转步骤A4;否则,将会话密钥和访问授权票据打包加密并发送给Kerberos域的用户;所述的认证中心CA验证认证服务器AS的身份的具体做法为:认证中心CA收到M<sub>A2</sub>后,用私钥SK<sub>CA</sub>解密M<sub>A2</sub>,解密得到认证服务器AS的签名SIGN<sub>AS</sub>及时间戳T<sub>2</sub>,若验证签名SIGN<sub>AS</sub>正确,并且T<sub>2</sub>是具有新鲜性,则认证服务器AS的身份验证通过,否则验证不通过;所述的认证中心CA生成Kerberos域的用户访问PKI域的资源的会话密钥、包括该会话密钥的访问授权票据,再对会话密钥和访问授权票据打包加密,然后发送给认证服务器AS的具体做法为:认证中心CA产生Kerberos域的用户和PKI域的资源之间的会话密钥k<sub>U,S</sub>及其使用期限lt(k<sub>U,S</sub>的起止时间),新的时间戳T<sub>3</sub>,认证中心CA为Kerberos域用户生成的用于访问PKI域资源的访问授权票据TKT,作为认证中心CA信任Kerberos域用户的凭证:<maths num="0003"><math><![CDATA[<mrow><mi>T</mi><mi>K</mi><mi>T</mi><mo>=</mo><msub><mrow><mo>{</mo><msub><mi>ID</mi><mrow><mi>C</mi><mi>A</mi></mrow></msub><mo>,</mo><msub><mi>ID</mi><mi>U</mi></msub><mo>,</mo><msub><mi>k</mi><mrow><mi>U</mi><mo>,</mo><mi>S</mi></mrow></msub><mo>,</mo><mi>l</mi><mi>t</mi><mo>,</mo><msub><mi>sign</mi><mrow><msub><mi>SK</mi><mrow><mi>C</mi><mi>A</mi></mrow></msub></mrow></msub><mo>}</mo></mrow><mrow><msub><mi>PK</mi><mi>S</mi></msub></mrow></msub></mrow>]]></math><img file="FDA0001060790870000021.GIF" wi="718" he="63" /></maths>其中,<img file="FDA0001060790870000022.GIF" wi="148" he="55" />表示用认证中心CA的私钥SK<sub>CA</sub>对{ID<sub>CA</sub>,ID<sub>U</sub>,k<sub>U,S</sub>,lt}签名,<img file="FDA0001060790870000023.GIF" wi="621" he="71" />表示用PKI域资源的公钥PK<sub>S</sub>对{ID<sub>CA</sub>,ID<sub>U</sub>,k<sub>U,S</sub>,lt,sign<sub>SKCA</sub>}加密;然后,认证中心CA生成消息M<sub>A3</sub>发送给认证服务器AS:<maths num="0004"><math><![CDATA[<mrow><msub><mi>M</mi><mrow><mi>A</mi><mn>3</mn></mrow></msub><mo>=</mo><msub><mrow><mo>{</mo><msub><mi>ID</mi><mrow><mi>C</mi><mi>A</mi></mrow></msub><mo>,</mo><msub><mi>ID</mi><mrow><mi>A</mi><mi>S</mi></mrow></msub><mo>,</mo><msub><mi>ID</mi><mi>U</mi></msub><mo>,</mo><msub><mi>ID</mi><mi>S</mi></msub><mo>,</mo><msub><mi>k</mi><mrow><mi>U</mi><mo>,</mo><mi>S</mi></mrow></msub><mo>,</mo><mi>l</mi><mi>t</mi><mo>,</mo><mi>T</mi><mi>K</mi><mi>T</mi><mo>,</mo><msub><mi>T</mi><mn>3</mn></msub><mo>,</mo><msub><mi>SIGN</mi><mrow><msub><mi>SK</mi><mrow><mi>C</mi><mi>A</mi></mrow></msub></mrow></msub><mo>}</mo></mrow><mrow><msub><mi>PK</mi><mrow><mi>A</mi><mi>S</mi></mrow></msub></mrow></msub></mrow>]]></math><img file="FDA0001060790870000024.GIF" wi="1206" he="71" /></maths>其中,<img file="FDA0001060790870000025.GIF" wi="173" he="62" />表示用认证中心CA的私钥SK<sub>CA</sub>对{ID<sub>CA</sub>,ID<sub>AS</sub>,ID<sub>U</sub>,ID<sub>S</sub>,k<sub>U,S</sub>,lt,TKT,T<sub>3</sub>}签名,<img file="FDA0001060790870000026.GIF" wi="1003" he="70" />表示用认证服务器AS的公钥PK<sub>AS</sub>对<img file="FDA0001060790870000027.GIF" wi="886" he="62" />加密;所述的认证服务器AS解密出会话密钥和访问授权票据并验证其有效性的具体做法是:认证服务器AS用私钥SK<sub>AS</sub>解密M<sub>A3</sub>得到证认证中心CA签名<img file="FDA0001060790870000028.GIF" wi="172" he="63" />及时间戳T<sub>3</sub>,验证<img file="FDA0001060790870000029.GIF" wi="178" he="62" />的有效性和T<sub>3</sub>的新鲜性,若<img file="FDA00010607908700000210.GIF" wi="171" he="62" />有效性且T<sub>3</sub>新鲜,则验证通过,否则不通过;将解密得到的k<sub>U,S</sub>、lt、TKT连同认证服务器AS新产生的时间戳T<sub>4</sub>一起用Kerberos域用户和认证服务器AS之间的共享密钥k<sub>U,AS</sub>加密作为消息M<sub>A4</sub>发送给用户:<maths num="0005"><math><![CDATA[<mrow><msub><mi>M</mi><mrow><mi>A</mi><mn>4</mn></mrow></msub><mo>=</mo><msub><mrow><mo>{</mo><msub><mi>ID</mi><mi>U</mi></msub><mo>,</mo><msub><mi>ID</mi><mi>S</mi></msub><mo>,</mo><msub><mi>k</mi><mrow><mi>U</mi><mo>,</mo><mi>S</mi></mrow></msub><mo>,</mo><mi>l</mi><mi>t</mi><mo>,</mo><mi>T</mi><mi>K</mi><mi>T</mi><mo>,</mo><msub><mi>T</mi><mn>4</mn></msub><mo>,</mo><mi>H</mi><mi>A</mi><mi>S</mi><mi>H</mi><mo>}</mo></mrow><msub><mi>k</mi><mrow><mi>U</mi><mo>,</mo><mi>A</mi><mi>S</mi></mrow></msub></msub></mrow>]]></math><img file="FDA00010607908700000211.GIF" wi="846" he="71" /></maths>其中,HASH表示{ID<sub>U</sub>,ID<sub>S</sub>,k<sub>U,S</sub>,lt,TKT,T<sub>4</sub>}的哈希摘要值,<img file="FDA0001060790870000031.GIF" wi="828" he="70" />表示用Kerberos域用户与认证服务器AS的共享对称密钥k<sub>U,AS</sub>对{ID<sub>U</sub>,ID<sub>S</sub>,k<sub>U,S</sub>,lt,TKT,T<sub>4</sub>,HASH}加密;A3、双向身份认证及会话密钥协商Kerberos域用户解密提取出会话密钥和访问授权票据,验证其有效性,若验证未通过则转步骤A4,否则将自己的身份信息用该会话密钥加密后并连同访问授权票据一起发送给PKI域资源;PKI域资源解密访问授权票据获得并存储会话密钥,再用该会话密钥解密出用户的身份信息并验证Kerberos域用户身份的有效性,若验证未通过则转步骤A4,否则将自己的身份信息用该会话密钥加密发送给Kerberos域用户;Kerberos域用户用会话密钥解密出资源的身份信息并验证资源身份的有效性,若验证未通过则转步骤A4;否则,Kerberos域用户利用该会话密钥安全访问PKI域资源;所述的Kerberos域的用户解密提取出会话密钥和访问授权票据,验证其有效性的具体做法是:Kerberos域用户用k<sub>U,AS</sub>解密M<sub>A4</sub>得到Kerberos域的用户身份信息ID’<sub>U</sub>、PKI域资源的身份信息ID’<sub>S</sub>及时间戳T’<sub>4</sub>,若解密出的ID’<sub>U</sub>及自己的身份标识ID<sub>U</sub>一致,ID’<sub>S</sub>与和PKI域资源的身份标志ID<sub>S</sub>一致,并且T’<sub>4</sub>具有新鲜性,则验证通过,并认为k<sub>U,S</sub>、lt、TKT有效,否则不通过;所述的Kerberos域的用户将自己的身份信息用该会话密钥加密后并连同访问授权票据一起发送给PKI域的资源的具体做法是:Kerberos域的用户产生新的时间戳T<sub>5</sub>连同自己的身份信息ID<sub>U</sub>用k<sub>U,S</sub>加密后,再加入TKT作为消息M<sub>A5</sub>发送给资源:<maths num="0006"><math><![CDATA[<mrow><msub><mi>M</mi><mrow><mi>A</mi><mn>5</mn></mrow></msub><mo>=</mo><mo>{</mo><mi>T</mi><mi>K</mi><mi>T</mi><mo>,</mo><msub><mrow><mo>{</mo><msub><mi>ID</mi><mi>U</mi></msub><mo>,</mo><msub><mi>T</mi><mn>5</mn></msub><mo>}</mo></mrow><msub><mi>k</mi><mrow><mi>U</mi><mo>,</mo><mi>S</mi></mrow></msub></msub><mo>}</mo></mrow>]]></math><img file="FDA0001060790870000032.GIF" wi="573" he="79" /></maths>其中,<img file="FDA0001060790870000033.GIF" wi="198" he="62" />表示用会话密钥k<sub>U,S</sub>对{ID<sub>U</sub>,T<sub>5</sub>}加密;所诉的PKI域的资源解密访问授权票据获得并存储会话密钥,再用该会话密钥解密出用户的身份信息并验证用户身份的有效性,其具体做法是:PKI域的资源收到M<sub>A5</sub>后,首先用自己的私钥SK<sub>S</sub>解密TKT,得到认证中心CA的签名<img file="FDA0001060790870000034.GIF" wi="165" he="67" />及有效期lt,验证<img file="FDA0001060790870000035.GIF" wi="142" he="55" />和lt的有效性;若验证通过,则认为解密TKT得到的k<sub>U,S</sub>有效并存储;然后,利用k<sub>U,S</sub>解密消息<img file="FDA0001060790870000036.GIF" wi="225" he="62" />得到Kerberos域用户的身份标识ID’<sub>U</sub>以及时间戳T’<sub>5</sub>,验证ID’<sub>U</sub>是否和TKT中的ID<sub>U</sub>一致,并验证T’<sub>5</sub>是否具有新鲜性,若验证都通过则认为Kerberos域用户的身份有效;所述的PKI域的资源将自己的身份信息用该会话密钥加密发送给Kerberos域用户,其作法是:PKI域资源生成新的时间戳T<sub>6</sub>,用会话密钥k<sub>U,S</sub>加密{ID<sub>S</sub>,T<sub>6</sub>},向Kerberos域用户发送一条确认消息M<sub>A6</sub>:<img file="FDA0001060790870000041.GIF" wi="405" he="70" />所述的Kerberos域的用户用会话密钥解密出PKI域资源的身份信息并验证PKI域资源身份的有效性,具体作法是:Kerberos域的用户收到M<sub>A6</sub>后,用会话密钥k<sub>U,S</sub>解密M<sub>A6</sub>,得到PKI域资源的身份标识ID’<sub>S</sub>以及时间戳T’<sub>6</sub>,若解密结果ID’<sub>S</sub>正确且T’<sub>6</sub>新鲜即可确认资源的有效性;随后,Kerberos域用户和PKI域资源之间可利用会话密钥k<sub>U,S</sub>实现安全通信;A4、终止会话。
地址 610031 四川省成都市二环路北一段111号
您可能感兴趣的专利