发明名称 一种基于公钥证书的身份鉴别方法及其系统
摘要 本发明涉及一种基于公钥证书的身份鉴别方法及其系统,该鉴别方法包括以下步骤:1)鉴别访问控制器AAC向请求者REQ发送鉴别激活分组;2)请求者REQ收到鉴别激活分组后向鉴别访问控制器AAC接入鉴别请求分组;3)鉴别访问控制器AAC收到接入鉴别请求分组后向鉴别服务器AS发送证书鉴别请求分组;4)鉴别服务器AS收到证书鉴别请求分组后向鉴别访问控制器AAC发送证书鉴别响应分组;5)鉴别访问控制器AAC收到证书鉴别响应分组后向请求者REQ发送接入鉴别响应分组;6)请求者REQ收到接入鉴别响应分组后向鉴别访问控制器AAC发送接入鉴别确认分组。
申请公布号 CN101631114B 申请公布日期 2011.09.21
申请号 CN200910023629.7 申请日期 2009.08.19
申请人 西安西电捷通无线网络通信股份有限公司 发明人 铁满霞;曹军;葛莉;李琴
分类号 H04L29/06(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 西安智邦专利商标代理有限公司 61211 代理人 商宇科
主权项 一种基于公钥证书的身份鉴别方法,其特征在于:该方法包括以下步骤:1)鉴别访问控制器AAC向请求者REQ发送鉴别激活分组;鉴别激活分组包括:SNonce、IDAS‑AAC、CertAAC、ParaECDH、TIEAAC以及SIGAAC;其中:SNonce字段:表示鉴别标识,若为首次身份鉴别,则该字段为由鉴别访问控制器AAC产生的随机数;若为更新的身份鉴别过程,则该字段的值是上一次身份鉴别过程中协商生成的鉴别标识值;IDAS‑AAC字段:表示鉴别访问控制器AAC所信任的鉴别服务器AS的身份标识ID,是鉴别访问控制器AAC证书CertAAC的颁发者鉴别服务器AS的身份标识ID;CertAAC字段:表示鉴别访问控制器AAC的证书;ParaECDH字段:表示椭圆曲线密码体制的Diffie‑Hellman交换ECDH参数,是请求者REQ和鉴别访问控制器AAC进行ECDH计算时采用的椭圆曲线密码参数;TIEAAC字段:表示鉴别访问控制器AAC所支持的鉴别和密钥管理套件及密码套件,本字段为可选字段;SIGAAC字段:表示鉴别访问控制器AAC的签名,是鉴别访问控制器AAC利用自己的私钥对本分组中除本字段之外所有字段进行的签名,本字段为可选字段;2)请求者REQ收到鉴别激活分组后向鉴别访问控制器AAC发送接入鉴别请求分组:2.1)如果此次鉴别过程为身份鉴别的更新过程,则请求者REQ检查鉴别激活分组中的鉴别标识字段与上一次身份鉴别过程中计算的鉴别标识是否一致,如果不一致,则丢弃该分组,如果一致,则执行2.2);如果此次鉴别过程不是身份鉴别的更新过程,为首次身份鉴别过程,则直接执行2.2);2.2)如果收到的鉴别激活分组中包含SIGAAC字段,则验证SIGAAC字段的正确性,如果不正确则丢弃该分组,如果正确,则执行2.3);如果收到的鉴别激活分组中未包含SIGAAC字段,则直接执行2.3);2.3)根据鉴别激活分组中的IDAS‑AAC字段选择由该鉴别服务器AS颁发的请求者REQ证书CertREQ或者根据本地策略选择请求者REQ证书CertREQ,并产生用于ECDH交换的请求者REQ密钥数据x·P和请求者REQ询问NREQ,生成接入鉴别请求分组,发送给鉴别访问控制器AAC;接入鉴别请求分组主要内容包括:SNonce、NREQ、x·P、IDAAC、CertREQ、ParaECDH以及SigREQ;其中:SNonce字段:表示鉴别标识,其值同鉴别激活分组中的SNonce字段值,若为首次身份鉴别过程,则该字段值直接取决于鉴别激活分组中的SNonce字段值;若为更新的身份鉴别过程,则该字段值为上一次身份鉴别过程中计算的鉴别标识值;NREQ字段:表示请求者REQ询问,是请求者REQ产生的随机数;x·P字段:表示请求者REQ的密钥数据,是请求者REQ生成的用于ECDH交换的临时公钥x·P;IDAAC字段:表示鉴别访问控制器AAC的身份标识ID,根据鉴别激活分组中鉴别访问控制器AAC的证书CertAAC字段得到;CertREQ字段:表示请求者REQ的证书;ParaECDH字段:表示ECDH参数,是请求者REQ和鉴别访问控制器AAC进行ECDH计算时采用的椭圆曲线密码参数,其值同鉴别激活分组中的ParaECDH字段值;SigREQ字段:表示请求者REQ的签名,是请求者REQ利用自己的私钥对本分组中除本字段之外所有字段进行的签名;3)鉴别访问控制器AAC收到接入鉴别请求分组后向鉴别服务器AS发送证书鉴别请求分组:3.1)如果鉴别访问控制器AAC发送了鉴别激活分组,则检查收到的接入鉴别请求分组中的SNonce、ParaECDH字段值和鉴别激活分组中对应的字段值是否一致,如果有一个不一致,则丢弃该分组,如果一致,则执行3.2);如果鉴别访问控制器AAC没有发送鉴别激活分组,则检查SNonce字段值和上一次证书鉴别过程中计算的鉴别标识是否一致,并检查ParaECDH字段和上一次鉴别激活分组中的ParaECDH是否一致,如果有一个不一致,则丢弃该分组;如果一致,则执行3.2);3.2)检查IDAAC与自己的身份是否一致,如果不一致,则丢弃该分组;如果一致则执行3.3);3.3)验证请求者REQ的签名SigREQ字段的正确性,如果正确,则执行3.4);如果不正确,则执行丢弃该分组;3.4)如果鉴别访问控制器AAC的本地策略要求使用鉴别服务器AS来鉴别请求者REQ的证书CertREQ,则鉴别访问控制器AAC生成证书鉴别请求分组,发送给鉴别服务器AS;否则执行3.5);3.5)鉴别访问控制器AAC本地鉴别请求者REQ的证书CertREQ,即根据本地缓存的请求者REQ的证书CertREQ的验证结果及本地策略所定义的时效性确认请求者REQ的证书CertREQ的验证结果,若合法,则本地生成用于ECDH交换的密钥数据即鉴别访问控制器AAC的临时公钥y·P以及AAC询问NAAC,并根据请求者REQ的临时公钥x·P以及自己的临时私钥y进行ECDH计算得到基密钥BK以及下一次身份鉴别过程的鉴别标识并保存,然后设定接入结果为成功,构造接入鉴别响应分组发送给请求者REQ,并允许用户访问网络;若CertREQ的验证结果为不合法,则鉴别访问控制器AAC设定接入结果为不成功,鉴别访问控制器AAC的询问NAAC和密钥数据y·P可设置为任意值,构造接入鉴别响应分组发送给请求者REQ;证书鉴别请求分组主要内容包括:NAAC、NREQ、CertREQ以及CertAAC;其中:NAAC字段:表示鉴别访问控制器AAC询问,是鉴别访问控制器AAC产生的随机数;NREQ字段:表示请求者REQ询问,其值同接入鉴别请求分组中NREQ字段的值;CertREQ字段:表示请求者REQ的证书,其值同接入鉴别请求分组中CertREQ字段的值;CertAAC字段:表示鉴别访问控制器AAC的证书,其值同鉴别激活分组中CertAAC字段的值;4)鉴别服务器AS收到证书鉴别请求分组后向鉴别访问控制器AAC发送证书鉴别响应分组:4.1)如果此次鉴别过程为单向鉴别,则只需验证请求者REQ的证书CertREQ,如果是双向鉴别则需要同时验证鉴别访问控制器AAC的证书CertAAC和请求者REQ的证书CertREQ,然后执行4.2);4.2)根据证书的验证结果,构造证书鉴别响应分组,并且附加相应的签名,发往鉴别访问控制器AAC;证书鉴别响应分组主要内容包括:RESCert以及SIGAS‑REQ;其中:RESCert字段:表示证书的验证结果,本字段包括鉴别访问控制器AAC询问值NAAC、请求者REQ询问值NREQ、CertAAC的验证结果以及CertREQ的验证结果,如果只是单向验证则不包括CertAAC的验证结果;SIGAS‑REQ字段:表示请求者REQ信任的鉴别服务器AS对本分组中证书的验证结果RESCert字段的签名;5)鉴别访问控制器AAC收到证书鉴别响应分组后向请求者REQ发送接入鉴别响应分组:5.1)检查证书的验证结果RESCert字段中的鉴别访问控制器AAC的询问NAAC与证书鉴别请求分组中的NAAC字段值是否相同,若不同,丢弃该分组;若相同则执行5.2);5.2)如果分组中含有两个签名字段,则检查鉴别访问控制器AAC所信任的鉴别服务器AS的签名SIGAS‑AAC字段是否正确,若不正确,则丢弃该分组,若正确则执行5.3);如果分组中只含有一个签名字段,即表明对证书验证结果进行签名的鉴别服务器AS也是鉴别访问控制器AAC所信任的鉴别服务器AS,则检查SIGAS‑REQ字段是否正确,若不正确,则丢弃该分组,若正确则执行5.3);5.3)检查证书的验证结果RESCert字段中CertREQ的验证结果是否合法,若合法,则本地生成用于ECDH交换的密钥数据即鉴别访问控制器AAC的临时公钥y·P,并根据请求者REQ的临时公钥x·P以及自己的临时私钥y进行ECDH计算得到基密钥BK以及下一次身份鉴别过程的鉴别标识并保存,然后设定接入结果为成功,构造接入鉴别响应分组发送给请求者REQ,并允许用户访问网络;若CertREQ的验证结果为不合法,则鉴别访问控制器AAC设定接入结果为不成功,鉴别访问控制器AAC的询问NAAC和密钥数据y·P可设置为任意值,构造接入鉴别响应分组发送给请求者REQ;接入鉴别响应分组主要内容包括:NREQ、NAAC、AccRES、x·P、y·P、IDAAC、IDREQ、MRESCert以及SIGAAC或MIC;其中:NREQ字段:表示请求者REQ询问,是请求者REQ产生的随机数,仅为单向鉴别过程时,接入鉴别响应分组需包含此字段,若存在,其值同请求者REQ发送的接入鉴别请求分组中NREQ字段的值;NAAC字段:表鉴别访问控制器AAC的询问,是鉴别访问控制器AAC产生的随机数,仅为单向鉴别过程时,接入鉴别响应分组需包含此字段,若存在,其值同鉴别访问控制器AAC发送的证书鉴别请求分组中NAAC字段的值;AccRES字段:表示接入结果,是鉴别访问控制器AAC根据鉴别结果设定的接入成功或失败以及失败的原因;x·P:表示请求者REQ的密钥数据,其值同接入鉴别请求分组中x·P字段的值;y·P:表示鉴别访问控制器AAC的密钥数据,是鉴别访问控制器AAC生成的用于ECDH交换的临时公钥y·P;IDAAC字段:表示鉴别访问控制器AAC的身份标识ID,是根据鉴别访问控制器AAC的证书CertAAC字段得到;IDREQ字段:表示请求者REQ的身份标识ID,根据收到的接入鉴别请求分组中请求者REQ的证书CertREQ字段得到;MRESCert字段:表示复合的证书验证结果;仅为双向鉴别过程时,在接入鉴别响应分组中需包含此字段,若存在,则该字段由证书鉴别响应分组中的各个字段组成,并且值相同;SIGAAC字段:表示鉴别访问控制器AAC的签名,是鉴别访问控制器AAC利用自己的私钥对本分组中除本字段之外所有字段的签名;MIC字段:表示消息鉴别码,是鉴别访问控制器AAC利用鉴别过程中协商生成的基密钥BK对接入鉴别响应分组中除了本字段外的所有字段及下一次证书鉴别过程的鉴别标识计算得到的杂凑值;6)请求者REQ收到接入鉴别响应分组后向鉴别访问控制器AAC发送接入鉴别确认分组:6.1)根据分组中的IDAAC和IDREQ字段判断是否为对应当前接入鉴别请求分组的接入鉴别响应分组,如果不是,则丢弃该分组;如果是则执行6.2);6.2)比较分组中请求者REQ密钥数据x·P字段值与自己发送的接入鉴别请求分组中的x·P字段值是否一致,若不一致,则丢弃该分组;否则执行6.3);6.3)如果是单向鉴别过程,则比较NREQ字段值与之前发送的接入鉴别请求分组中的NREQ字段值是否一致,若不一致,则丢弃该分组,否则执行6.4);如果是双向鉴别过程,则直接执行6.4);6.4))查看分组中的AccRES字段,如果接入结果为不成功,则得知不能访问该网络;如果接入结果为成功,则执行6.5);6.5)如果收到的接入鉴别响应分组中含有SIGAAC字段,则验证SIGAAC的正确性,如果不正确,则丢弃该分组;如果正确则执行6.6);如果收到的分组中含有MIC字段,则验证MIC字段的正确性,如果不正确,则丢弃分组;如果正确则执行f);6.6)如果是单向鉴别过程,则执行6.8),否则验证复合的证书验证结果MRESCert字段中所包含的NREQ字段值与自己发送的接入鉴别请求分组中NREQ字段值是否一致,若不一致,则丢弃该分组;如果一致则验证签名SIGAS‑REQ是否正确,如果不正确则丢弃该分组;如果正确则执行6.7);6.7)验证复合的证书验证结果MRESCert字段中鉴别访问控制器AAC证书验证结果是否为合法,如果不合法,则得知该网络不合法,不可以访问该网络;如果合法则得到该网络是合法的,可以进行访问,并执行6.8);6.8)请求者REQ根据鉴别访问控制器AAC的临时公钥y·P和自己的临时私钥x进行ECDH计算得到基密钥BK以及下一次身份鉴别过程的鉴别标识并保存;6.9)如果收到的接入鉴别响应分组中含有MIC字段,则是否发送接入鉴别确认分组是可选的;如果收到的分组中含有SIGAAC字段,则需要构造接入鉴别确认分组,发送给鉴别访问控制器AAC;接入鉴别确认分组主要内容包括:MIC;其中:MIC字段:表示消息鉴别码,是请求者REQ利用鉴别过程中协商生成的基密钥BK对鉴别访问控制器AAC询问值NAAC、请求者REQ询问值NREQ及下一次证书鉴别过程的鉴别标识计算得到的杂凑值。
地址 710075 陕西省西安市高新区科技二路68号西安软件园秦风阁A201