一种网络访问控制方法及系统
技术领域
本发明属信息安全技术中的网络安全应用领域,尤其涉及一种网络访问控制方法及系统。
背景技术
现有的网络访问控制方法中,通常在访问者向目的网络发起访问请求后,由目的网络中的访问控制器完成对访问者的鉴别和授权,从而实现对访问者的访问控制。在需要第三方,如鉴别服务器,参与身份鉴别的访问控制场景中,可能因为访问控制器自身或者是目的网络的原因,访问控制器无法直接与鉴别服务器连接而导致访问控制器无法直接使用鉴别服务器提供的鉴别服务。在这种情形下,现有的由访问控制器直接连接并使用鉴别服务器提供鉴别服务的访问控制方法将无法满足对访问者进行访问控制的实际应用需求。
发明内容
为了解决背景技术中存在的上述技术问题,本发明提供了一种能够满足对访问者进行访问控制的应用需求的网络访问控制方法及系统。
本发明的技术解决方案是:本发明提供了一种网络访问控制方法,其特殊之处在于:所述网络访问控制方法包括以下步骤:
步骤1),一访问者REQ向一目的网络中的一访问控制器AC发送一访问请求消息M1;所述访问请求消息M1中包括NREQ和QREQ;其中,NREQ表示访问者REQ产生的随机数,QREQ表示访问者REQ的访问请求;
步骤2),所述访问控制器AC收到所述访问请求消息M1后,构造一接入鉴别请求消息M2发送给所述访问者REQ;所述接入鉴别请求消息M2包括所述访问控制器AC的用以向所述鉴别服务器AS证明所述访问控制器AC身份的合法性的一第一身份鉴别信息I1;所述第一身份鉴别信息I1是利用KAS,AC对NREQ进行对称密码运算后产生的结果;其中,KAS,AC是所述访问控制器AC和所述鉴别服务器AS之间的共享密钥;
步骤3),访问者REQ收到所述接入鉴别请求消息M2后,构造一身份鉴别请求消息M3发送给所述目的网络的一鉴别服务器AS;所述身份鉴别请求消息M3中包括所述第一身份鉴别信息I1以及所述访问者REQ的第二身份鉴别信息I2;所述第二身份鉴别信息I2用以向鉴别服务器AS证明访问者REQ身份的合法性,是利用KAS,REQ对NREQ进行对称密码运算后产生的结果;其中,KAS,REQ是所述访问者REQ和所述鉴别服务器AS之间的共享密钥;
步骤4),鉴别服务器AS收到所述身份鉴别请求消息M3后,利用共享密钥KAS,AC对所述身份鉴别请求消息M3中的第一身份鉴别信息I1进行鉴别并得到对所述访问控制器AC的第一鉴别结果、利用KAS,REQ对所述第二身份鉴别信息I2进行鉴别并得到对所述访问者REQ的第二鉴别结果,所述鉴别服务器AS将所述第一鉴别结果利用KAS,REQ进行加密形成对所述访问控制器AC的第一可公开的鉴别结果C1以及将所述第二鉴别结果利用KAS,AC进行加密形成对所述访问者REQ的第二可公开的鉴别结果C2,所述鉴别服务器AS构造身份鉴别响应消息M4发送给所述访问者REQ;所述身份鉴别响应消息M4包括所述第一可公开的鉴别结果C1及所述第二可公开的鉴别结果C2;
步骤5),访问者REQ收到身份鉴别响应消息M4后,解密第一可公开的鉴别结果C1获得所述第一鉴别结果,根据所述第一鉴别结果构造接入鉴别响应消息M5发送给访问控制器AC;所述接入鉴别响应消息M5中包括第二可公开的鉴别结果C2;
步骤6),访问控制器AC收到所述接入鉴别响应消息M5后,解密所述第二可公开的鉴别结果C2,得到所述第二鉴别结果,并根据一授权策略构造访问响应消息M6发送给所述访问者REQ,所述授权策略是指访问控制器AC对访问者REQ的访问请求QREQ进行授权的策略。
上述步骤1中,所述访问请求消息M1包括NREQ||QREQ,其中||表示其前后两信息之间为串联。
可选的,上述步骤2)中,所述第一身份鉴别信息I1为E(KAS,AC,NREQ),所述接入鉴别请求消息M2包括NREQ||NAC||E(KAS,AC,NREQ);
其中,NAC表示访问控制器AC产生的随机数;E(KAS,AC,NREQ)表示利用共享密钥KAS,AC对NREQ加密的结果;E为一种对称加密算法。
上述步骤3)的一种可选的实现方式包括:
步骤3.1),所述访问者REQ收到接入鉴别请求消息M2后,判断NREQ是否访问者REQ产生的随机数,若否,则执行步骤3.2);若是,则执行步骤3.3);
步骤3.2),所述访问者REQ丢弃所述鉴别请求消息M2;
步骤3.3),所述访问者REQ利用共享密钥KAS,REQ计算E(KAS,REQ,NREQ),所述第二身份鉴别信息I2是E(KAS,REQ,NREQ),所述访问者REQ构造身份鉴别请求消息M3发送给所述鉴别服务器AS;所述身份鉴别请求消息M3包括IDAC||NREQ||E(KAS,REQ,NREQ)||E(KAS,AC,NREQ);
其中,IDAC是所述访问控制器AC的身份标识。
上述步骤4)的一种可选的实现方式包括:
步骤4.1),所述鉴别服务器AS收到所述身份鉴别请求消息M3后,判断所述访问者REQ是否已与所述鉴别服务器AS共享KAS,REQ,若否,则执行步骤4.2);若是,则执行步骤4.3);
步骤4.2),所述鉴别服务器AS根据IDAC判断所述访问控制器AC是否已与所述鉴别服务器AS共享KAS,AC,若否,则执行步骤4.2.1);若是,则执行步骤4.2.2);
步骤4.2.1),所述鉴别服务器AS终止鉴别;
步骤4.2.2),所述鉴别服务器AS利用KAS,AC解密E(KAS,AC,NREQ),并判断解密后得到的NREQ是否与所述访问者REQ在步骤3)中发送给所述鉴别服务器AS的身份鉴别请求消息M3中的信息NREQ相等,若否,则执行步骤4.2.2.1);若是,则执行步骤4.2.2.2);
步骤4.2.2.1),所述鉴别服务器AS终止鉴别;
步骤4.2.2.2),所述鉴别服务器AS构造身份鉴别响应消息M4发送给所述访问者REQ;所述身份鉴别响应消息M4包括IDAC||NREQ||Res(AC)||Res(REQ)||MIC2;
其中,R(AC)=True,表示所述访问控制器AC的身份合法,R(REQ)=Failure,表示所述访问者REQ的身份非法;MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)),用来验证消息IDAC||NREQ||Res(AC)||Res(REQ)的完整性;
步骤4.3),所述鉴别服务器AS利用KAS,REQ解密E(KAS,REQ,NREQ),并判断解密后得到的NREQ是否与访问者REQ在步骤3)中发送给所述鉴别服务器AS的所述身份鉴别请求消息M3中的信息NREQ相等,若否,则执行步骤4.3.1);若是,则执行步骤4.3.2);
步骤4.3.1),所述鉴别服务器AS根据IDAC判断所述访问控制器AC是否已与所述鉴别服务器AS共享KAS,AC,若否,则执行步骤4.3.1.1);若是,则执行步骤4.3.1.2);
步骤4.3.1.1),所述鉴别服务器AS终止鉴别;
步骤4.3.1.2),所述鉴别服务器AS利用KAS,AC解密E(KAS,AC,NREQ),并判断解密后得到的NREQ是否与所述访问者REQ在步骤3)中发送给所述鉴别服务器AS的所述身份鉴别请求消息M3中的信息NREQ相等,若否,则执行步骤4.3.1.2.1);若是,则执行步骤4.3.1.2.2);
步骤4.3.1.2.1),所述鉴别服务器AS终止鉴别;
步骤4.3.1.2.2),所述鉴别服务器AS构造所述身份鉴别响应消息M4发送给所述访问者REQ;所述身份鉴别响应消息M4包括;
其中,R(AC)=True,表示所述鉴别服务器AS对所述访问控制器AC鉴别成功,R(REQ)=Failure,表示所述鉴别服务器AS对所述访问者REQ鉴别失败;MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)),用来验证IDAC||NREQ||Res(AC)||Res(REQ)||MIC2的完整性;其中,H为一种单向哈希算法;
步骤4.3.2),所述鉴别服务器AS根据IDAC判断所述访问控制器AC是否已与所述鉴别服务器AS共享KAS,AC,若否,则执行步骤4.3.2.1);若是,则执行步骤4.3.2.2);
步骤4.3.2.1),所述鉴别服务器AS构造所述身份鉴别响应消息M4发送给所述访问者REQ;所述身份鉴别响应消息M4包括IDAC||NREQ||Res(AC)||Res(REQ)||MIC2;
其中,R(AC)=Failure,表示所述鉴别服务器AS对所述访问控制器AC鉴别失败;R(REQ)=True,表示所述鉴别服务器AS对所述访问者REQ鉴别成功;此时MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)),用来验证IDAC||NREQ||Res(AC)||Res(REQ)||MIC2的完整性;
步骤4.3.2.2),所述鉴别服务器AS判断利用共享KAS,AC解密E(KAS,AC,NREQ)后得到的NREQ是否与访问者REQ在步骤3)中发送给鉴别服务器AS的身份鉴别请求消息M3中的信息NREQ相等,若否,则执行步骤4.3.2.1);若是,则执行步骤4.3.2.3);
步骤4.3.2.3),所述鉴别服务器AS生成KAC,REQ,KAC,REQ为所述访问者REQ和所述访问控制器AC间的会话密钥,所述鉴别服务器(AS)利用KAS,AC、KAS,REQ以及KAC,REQ计算E(KAS,AC,IDREQ||KAC,REQ)、E(KAS,REQ,KAC,REQ)以及H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,R EQ));其中,MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,REQ)),用来验证消息IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,REQ)的完整性;R(AC)=True,表示所述鉴别服务器AS对所述访问控制器AC鉴别成功;R(REQ)=True,表示所述鉴别服务器AS对所述访问者REQ鉴别成功;所述鉴别服务器AS构造所述身份鉴别响应消息M4发送给所述访问者REQ;所述身份鉴别响应消息M4包括IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,REQ)||MIC2;
其中,Res(AC)为所述第一可公开的鉴别结果C1,Res(REQ)为所述第二可公开的鉴别结果C2,Res(AC)=E(KAS,REQ,R(AC)),Res(REQ)=E(KAS,AC,R(REQ)),R(AC)为所述第一鉴别结果,R(REQ)为所述第二鉴别结果,MIC2为消息完整性鉴别码,IDREQ是所述访问者REQ的身份标识。
可选的,上述步骤2)中,所述第一身份鉴别信息(I1)为H(KAS,AC||NREQ),所述接入鉴别请求消息M2包括NREQ||NAC||H(KAS,AC||NREQ);
其中,NREQ表示所述访问者REQ产生的随机数;NAC表示所述访问控制器AC产生的随机数;H(KAS,AC||NREQ)表示对KAS,AC||NREQ进行哈希运算后的结果,H为一种单向哈希算法
上述步骤3)的另一种可选的实现方式包括:
步骤3.1′),所述访问者REQ收到所述接入鉴别请求消息M2后,首先判断NREQ是否所述访问者REQ产生的随机数,若否,则执行步骤3.2′);若是,则执行步骤3.3′);
步骤3.2′),所述访问者(REQ)丢弃所述鉴别请求消息M2;
步骤3.3′),所述访问者REQ利用KAS,REQ计算消息完整性鉴别码MIC5=H(KAS,REQ,IDAC||NREQ||H(KAS,AC||NREQ)),并构造所述身份鉴别请求消息M3发送给所述鉴别服务器AS;所述身份鉴别请求消息M3包括IDAC||NREQ||H(KAS,AC||NREQ)||MIC5,其中,MIC5为消息完整性鉴别码,用来验证IDAC||NREQ||H(KAS,AC||NREQ)的完整性,IDAC是所述访问控制器(AC)的身份标识,所述第二身份鉴别信息I2为MIC5。
上述步骤4)的另一种可选的实现方式包括:
步骤4.1′),所述鉴别服务器AS收到所述身份鉴别请求消息M3后,判断所述访问者REQ是否已与所述鉴别服务器AS共享KAS,REQ,若否,则执行步骤4.2′);若是,则执行步骤4.3′);
步骤4.2′),所述鉴别服务器AS根据IDAC判断所述访问控制器AC是否已与所述鉴别服务器AS共享KAS,AC,若否,则执行步骤4.2.1′);若是,则执行步骤4.2.2′);
步骤4.2.1′),所述鉴别服务器AS终止鉴别;
步骤4.2.2′),所述鉴别服务器AS构造所述身份鉴别响应消息M4发送给所述访问者REQ;所述身份鉴别响应消息M4包括IDAC||NREQ||Res(AC)||Res(REQ)||MIC2;其中,R(REQ)=Failure,表示所述鉴别服务器AS对所述访问者REQ鉴别失败,R(AC)=True,表示所述鉴别服务器AS对所述访问控制器AC鉴别成功;MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)),用来验证消息IDAC||NREQ||Res(AC)||Res(REQ)的完整性;
步骤4.3′),所述鉴别服务器AS根据所述身份鉴别请求消息M3中的MIC5判断IDAC||NREQ||H(KAS,AC||NREQ)的完整性,若不完整,则执行步骤4.3.1′);若完整,表示访问者REQ合法,则执行步骤4.3.2′);
步骤4.3.1′),所述鉴别服务器AS丢弃所述身份鉴别请求消息M3;
步骤4.3.2′),所述鉴别服务器AS利用IDAC判断所述访问控制器AC是否已与鉴别服务器AS共享密钥KAS,AC,若否,则执行步骤4.3.2.1′);若是,则执行步骤4.3.2.2′);
步骤4.3.2.1′),所述鉴别服务器AS构造所述身份鉴别响应消息M4发送给所述访问者REQ;所述身份鉴别响应消息M4包括IDAC||NREQ||Res(AC)||Res(REQ)||MIC2;R(AC)=Failure,表示所述鉴别服务器AS对所述访问控制器AC鉴别失败;R(REQ)=True,表示所述鉴别服务器AS对所述访问者REQ鉴别成功;其中,MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)),用来验证消息IDAC||NREQ||Res(AC)||Res(REQ)的完整性;
步骤4.3.2.2′),所述鉴别服务器AS根据NREQ验证H(KAS,AC||NREQ)的完整性,若验证失败,则执行步骤4.3.2.2.1′);若验证成功,则执行步骤4.3.2.2.2′);
步骤4.3.2.2.1′),所述鉴别服务器AS构造所述身份鉴别响应消息M4发送给所述访问者REQ;所述身份鉴别响应消息M4包括IDAC||NREQ||Res(AC)||Res(REQ)||MIC2;R(AC)=Failure,表示所述鉴别服务器AS对所述访问控制器AC鉴别失败;R(REQ)=True,表示所述鉴别服务器AS对所述访问者REQ鉴别成功;其中,MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)),用来验证消息IDAC||NREQ||Res(AC)||Res(REQ)的完整性;
步骤4.3.2.2.2′),所述鉴别服务器AS生成所述访问者REQ和所述访问控制器AC间的会话密钥,所述鉴别服务器(AS)利用KAS,AC、KAS,REQ以及KAC,REQ计算E(KAS,AC,IDREQ||KAC,REQ)、E(KAS,REQ,KAC,REQ)以及H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,R EQ));其中,MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,REQ)),用来验证消息IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,REQ)的完整性;R(AC)=True,表示所述鉴别服务器AS对所述访问控制器AC鉴别成功;R(REQ)=True,表示所述鉴别服务器AS对所述访问者REQ鉴别成功;所述鉴别服务器AS构造所述身份鉴别响应消息M4发送给所述访问者REQ;所述身份鉴别响应消息M4包括IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,REQ)||MIC2;
其中,Res(AC)为所述第一可公开的鉴别结果(C1),Res(REQ)为所述第二可公开的鉴别结果(C2),Res(AC)=E(KAS,REQ,R(AC)),Res(REQ)=E(KAS,AC,R(REQ)),R(AC)为所述第一鉴别结果,R(REQ)为所述第二鉴别结果,MIC2为消息完整性鉴别码,IDREQ是访问者REQ的身份标识。
上述步骤5)包括:
步骤5.1),所述访问者REQ收到所述身份鉴别响应消息M4后,判断随机数NREQ是否所述访问者REQ产生的随机数,若否,则执行步骤5.2);若是,则执行步骤5.3);
步骤5.2),所述访问者REQ丢弃所述身份鉴别响应消息M4;
步骤5.3),所述访问者REQ根据MIC2判断相应消息的完整性,若不完整,则执行步骤5.3.1);若完整,则执行步骤5.3.2);
步骤5.3.1),所述访问者REQ丢弃所述身份鉴别响应消息M4;
步骤5.3.2),所述访问者REQ利用KAS,REQ对Res(AC)进行解密,借以判断所述访问控制器AC的合法性,若对Res(AC)进行解密后得到的R(AC)=Failure,则表示所述访问控制器(AC)非法,则执行步骤5.3.2.1);若对Res(AC)进行解密后得到的R(AC)=True,则表示所述访问控制器AC合法,则执行步骤5.3.2.2);
步骤5.3.2.1),所述访问者REQ终止访问;
步骤5.3.2.2),所述访问者REQ解密所述身份鉴别响应消息M4中的E(KAS,REQ,KAC,REQ)而获得KAC,REQ,并产生随机数N’REQ、计算MIC3=H(KAC,REQ,NAC||N’REQ||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ))、构造接入鉴别响应消息M5发送所述给访问控制器AC;所述接入鉴别响应消息M5包括NAC||N’REQ||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||MIC3;其中,MIC3为消息完整性鉴别码,用来验证消息NAC||N’REQ||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)的完整性。
上述步骤6)包括:
步骤6.1),所述访问控制器AC收到所述身份鉴别响应消息M5后,判断随机数NAC是否所述访问控制器AC产生的随机数,若否,则执行步骤6.2);若是,则执行步骤6.3);
步骤6.2),所述访问控制器AC拒绝所述访问者REQ的访问;
步骤6.3),所述访问控制器AC利用KAS,AC对Res(REQ)进行解密,若解密Res(REQ)得到的R(REQ)=Failure,表示所述访问者REQ非法,则执行步骤6.3.1);若解密Res(REQ)得到的R(REQ)=True,表示所述访问者REQ合法,则执行步骤6.3.2);
步骤6.3.1),所述访问控制器AC拒绝所述访问者REQ的访问;
步骤6.3.2),所述访问控制器AC解密E(KAS,AC,IDREQ||KAC,REQ),获得KAC,REQ,并根据MIC3判断NAC||N’REQ||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)的完整性,若不完整,则执行步骤6.3.2.1);若完整,则执行步骤6.3.2.2);
步骤6.3.2.1),所述访问控制器AC拒绝所述访问者REQ的访问;
步骤6.3.2.2),所述访问控制器AC确认解密E(KAS,AC,IDREQ||KAC,REQ)后获得的IDREQ是否与所述访问者REQ的所述身份标识IDREQ一致,若不一致,则执行步骤6.3.2.2.1);若一致,则执行步骤6.3.2.2.2);
步骤6.3.2.2.1),所述访问控制器AC拒绝所述访问者REQ的访问;
步骤6.3.2.2.2),所述访问控制器AC根据所述授权策略判断所述访问者REQ在步骤1)中发送的QREQ是否合法,若不合法,则执行步骤6.3.2.2.2.1);若合法,则执行步骤6.3.2.2.2.2);
步骤6.3.2.2.2.1),所述访问控制器AC拒绝所述访问者REQ的访问;
步骤6.3.2.2.2.2),所述访问控制器AC根据QREQ构造RAC、计算MIC4=H(KAC,REQ,N’REQ||E(KAC,REQ,RAC)),进而构造所述访问响应消息M6发送给所述访问者REQ;所述访问响应消息M6包括N’REQ||E(KAC,REQ,RAC)||MIC4;其中,RAC为应答数据,用于所述访问控制器AC通知所述访问者REQ是否有权访问所述目的网络,MIC4为消息完整性鉴别码,用以判断N’REQ||E(KAC,REQ,RAC)完整性;
上述授权策略调用自所述访问控制器AC或所述鉴别服务器AS,当所述授权策略调用自所述鉴别服务器AS时,步骤4)中的所述身份鉴别响应消息M4中的E(KAS,AC,IDREQ||KAC,REQ)修改为E(KAS,AC,IDREQ||KAC,REQ||APAS),步骤5)中的所述接入鉴别响应消息M5中的E(KAS,AC,IDREQ||KAC,REQ)修改为E(KAS,AC,IDREQ||KAC,REQ||APAS);其中,APAS表示对所述授权策略。
上述步骤6.3)之后还包括:
步骤6.4),所述访问者REQ收到所述访问响应消息M6后,判断随机数N’REQ是否所述访问者REQ产生的随机数,若否,则执行步骤6.4.1);若是,则执行步骤6.4.2);
步骤6.4.1),所述访问者REQ丢弃所述访问响应消息M6;
步骤6.4.2),所述访问者REQ根据MIC4判断消息N’REQ||E(KAC,REQ,RAC)的完整性,若不完整,则执行步骤6.4.2.1);若完整,则执行步骤6.4.2.2);
步骤6.4.2.1),所述访问者REQ丢弃所述访问响应消息M6;
步骤6.4.2.2),所述访问者REQ解密E(KAC,REQ,RAC)获得RAC,并根据RAC判断所述访问者REQ是否被所述访问控制器AC授权访问所述目的网络,并据此对目的网络进行访问。
一种网络访问控制系统,访问者REQ、目的网络的访问控制器AC以及鉴别服务器AS;其特殊之处在于:所述访问者REQ向所述目的网络中的访问控制器AC发送访问请求消息M1;所述访问控制器AC收到所述访问请求消息M1后,构造接入鉴别请求消息M2发送给所述访问者REQ;所述访问者REQ收到所述接入鉴别请求消息M2后,构造身份鉴别请求消息M3发送给所述鉴别服务器AS;所述鉴别服务器AS根据所述身份鉴别请求消息M3提供鉴别服务并产生可公开的鉴别结果,并根据所述可公开的鉴别结果构造身份鉴别响应消息M4发送给所述访问者REQ;所述访问者REQ收到所述身份鉴别响应消息M4后,根据所述身份鉴别响应消息(M4)中的所述可公开的鉴别结果构造接入鉴别响应消息M5发送给所述访问控制器AC;所述访问控制器AC收到所述接入鉴别响应消息M5后,根据所述接入鉴别响应消息(M5)中的所述可公开的鉴别结果以及一授权策略构造访问响应消息M6发送给所述访问者REQ。
本发明的优点是:
本发明提出的网络访问控制方法及系统,是在有鉴别服务器参与且目的网络的访问控制器无法直接利用鉴别服务器提供的鉴别服务的情况下,完成对访问者身份的鉴别的网络访问控制方法。本发明基于对称密码机制,在访问者提出访问请求后,由目的网络中的访问控制器对访问请求进行处理,并通过访问者向鉴别服务器发起对访问者身份的鉴别请求,目的网络中的访问控制器根据由访问者转发的鉴别服务器的可公开的鉴别结果完成对访问者身份的鉴别,并根据授权策略对鉴别成功的访问者进行授权管理。本发明解决了在访问控制器无法直接使用鉴别服务器提供的鉴别服务时而导致的无法实施访问控制的问题,满足了实际应用需求。
附图说明
图1是本发明所提供的网络访问控制方法流程图。
图2为本发明所提供的网络访问控制系统的工作简图。
图3为图2中步骤S1的框图。
图4为图2中步骤S2的框图。
图5为图2中步骤S3的框图。
图6为图2中步骤S4的框图。
图7为图2中步骤S5的框图。
图8为图2中步骤S6的框图。
具体实施方式
请参考图2,本发明提供了一种网络访问控制系统100。访问控制系统100包括访问者REQ、鉴别服务器AS以及访问控制器AC。在系统100工作之前,访问者REQ和鉴别服务器AS之间已共享密钥KAS,REQ,访问控制器AC和鉴别服务器AS之间已共享密钥KAS,AC。
请参考图1至图8,网络访问控制系统100是通过S1~S6六个步骤完成对访问者REQ的鉴别和授权的。
步骤S1:请参考图3,访问者REQ向目的网络中的访问控制器AC发送访问请求消息M1。访问请求消息M1中含有NREQ和QREQ。其中,NREQ表示访问者REQ产生的随机数,QREQ表示访问者REQ的访问请求,下同。
步骤S2:请参考图4,访问控制器AC收到访问请求消息M1后,构造接入鉴别请求消息M2发送给访问者REQ。接入鉴别请求消息M2含有访问控制器AC的身份鉴别信息I1。身份鉴别信息I1用以向鉴别服务器AS证明访问控制器AC身份的合法性,是利用共享密钥KAS,AC对NREQ进行对称密码运算后产生的结果。
步骤S3:请参考图5,访问者REQ收到接入鉴别请求消息M2后,构造身份鉴别请求消息M3发送给鉴别服务器AS。其中,身份鉴别请求消息M3中包含身份鉴别信息I1以及访问者REQ的身份鉴别信息I2。身份鉴别信息I2用以向鉴别服务器AS证明访问者REQ身份的合法性,是利用共享密钥KAS,REQ对NREQ进行对称密码运算后产生的结果。
步骤S4:请参考图6,鉴别服务器AS根据身份鉴别请求消息M3提供鉴别服务并产生鉴别结果。鉴别服务器AS利用共享密钥KAS,AC对身份鉴别请求消息M3中的身份鉴别信息I1进行鉴别并得到对访问控制器AC的第一鉴别结果、利用共享密钥KAS,REQ对身份鉴别请求消息M3中的身份鉴别信息I2进行鉴别并得到对访问者REQ的第二鉴别结果,鉴别服务器AS将所述第一鉴别结果利用共享密钥KAS,REQ进行加密形成对访问控制器AC的可公开的鉴别结果C1、将所述第二鉴别结果利用共享密钥KAS,AC进行加密形成对访问者REQ的可公开的鉴别结果C2,鉴别服务器AS构造身份鉴别响应消息M4发送给访问者REQ。其中,身份鉴别响应消息M4包含可公开的鉴别结果C1及C2。
步骤S5:请参考图7,访问者REQ收到身份鉴别响应消息M4后,解密可公开的鉴别结果C1获得所述第一鉴别结果,根据所述第一鉴别结果构造接入鉴别响应消息M5发送给访问控制器AC。其中,接入鉴别响应消息M5中包含可公开的鉴别结果C2;
步骤S6:请参考图8,访问控制器AC收到接入鉴别响应消息M5后,解密鉴别响应消息M5中可公开的鉴别结果C2,得到所述第二鉴别结果,并根据授权策略构造访问响应消息M6发送给访问者REQ,访问响应消息M6中包含是否授权访问者REQ对所述目的网络进行访问的信息。至此,完成本发明对访问者REQ的鉴别和授权的过程。其中,所述授权策略是指访问控制器AC对访问者REQ的访问请求QREQ进行授权的策略。所述授权策略可以来自某一服务器,例如鉴别服务器AS,也可以来自访问控制器AC本地。所述授权策略已事先内置于所述鉴别服务器AS或访问控制器AC中,本发明仅对所述授权策略进行调用。
按照步骤S1~S6所示之方法,即可实现对访问者REQ的鉴别和授权,以满足对访问者REQ进行访问控制的实际应用需求。
上述步骤S1~S6的一种具体实施例是:
步骤S1:
访问者REQ构造NREQ||QREQ发送给访问控制器AC,在本实施例中NREQ||QREQ即为访问请求消息M1,在其他实施例中,请求消息M1还可为其他消息且所述其他消息中至少包含NREQ||QREQ。其中“||”表示其前后两信息之间为串联,下同。
步骤S2:
访问控制器AC收到访问请求消息M1即NREQ||QREQ后,构造接入鉴别请求消息M2即NREQ||NAC||E(KAS,AC,NREQ)发送给访问者REQ,在其他实施例中,接入鉴别请求消息M2为一至少包含NREQ||NAC||E(KAS,AC,NREQ)的消息。
其中,NAC表示访问控制器AC产生的随机数;E(KAS,AC,NREQ)表示利用共享密钥KAS,AC对NREQ加密的结果,即访问控制器AC的身份鉴别信息I1;E为一种对称加密算法;下同。
步骤S3:
访问者REQ收到接入鉴别请求消息M2即NREQ||NAC||E(KAS,AC,NREQ)后,首先判断NREQ是否访问者REQ产生的随机数,如果不是,则丢弃该鉴别请求消息M2;如果是,则访问者REQ利用共享密钥KAS,REQ计算E(KAS,REQ,NREQ)即访问者REQ的身份鉴别信息I2,并构造身份鉴别请求消息M3即IDAC||NREQ||E(KAS,REQ,NREQ)||E(KAS,AC,NREQ)发送给鉴别服务器AS。其中,IDAC是访问控制器AC的身份标识,下同。
在其他实施例中,身份鉴别请求消息M3为一至少包含IDAC||NREQ||E(KAS,REQ,NREQ)||E(KAS,AC,NREQ)的消息。
步骤S4:
4.1),鉴别服务器AS收到身份鉴别请求消息M3即IDAC||NREQ||E(KAS,REQ,NREQ)||E(KAS,AC,NREQ)后,首先判断访问者REQ是否已与鉴别服务器AS共享密钥KAS,REQ,若未共享密钥KAS,REQ,则执行4.2);若已共享密钥KAS,REQ,则执行4.3)。
4.2),鉴别服务器AS根据IDAC判断访问控制器AC是否已与鉴别服务器AS共享密钥KAS,AC,若未共享密钥KAS,AC,则执行4.2.1);若已共享密钥KAS,AC,则执行步骤4.2.2)。
4.2.1),鉴别服务器AS终止鉴别。
4.2.2),鉴别服务器AS利用共享密钥KAS,AC解密E(KAS,AC,NREQ)即身份鉴别信息I1,并判断解密后得到的NREQ是否与访问者REQ在步骤S3中发送给鉴别服务器AS的身份鉴别请求消息M3中的信息NREQ相等,若解密后得到的NREQ与访问者REQ在步骤S3中发送给鉴别服务器AS的身份鉴别请求消息M3中的信息NREQ不相等,则执行4.2.2.1);若解密后得到的NREQ与访问者REQ在步骤S3中发送给鉴别服务器AS的身份鉴别请求消息M3中的信息NREQ相等,则执行4.2.2.2)。
4.2.2.1),鉴别服务器AS终止鉴别。
4.2.2.2)鉴别服务器AS构造身份鉴别响应消息M4即IDAC||NREQ||Res(AC)||Res(REQ)||MIC2发送给访问者REQ。其中,Res(AC)即为可公开的鉴别结果C1,Res(REQ)即为可公开的鉴别结果C2,Res(AC)=E(KAS,REQ,R(AC)),Res(REQ)=E(KAS,AC,R(REQ)),R(AC)即为所述第一鉴别结果,R(REQ)即为所述第二鉴别结果,MIC2为消息完整性鉴别码,下同;此时,R(AC)=True,表示访问控制器AC的身份合法,R(REQ)=Failure,表示访问者REQ的身份非法;此时,MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)),用来验证消息IDAC||NREQ||Res(AC)||Res(REQ)的完整性。
4.3),鉴别服务器AS利用共享密钥KAS,REQ解密E(KAS,REQ,NREQ),并判断解密后得到的NREQ是否与访问者REQ在步骤S3中发送给鉴别服务器AS的身份鉴别请求消息M3中的信息NREQ相等,若解密后得到的NREQ与访问者REQ在步骤S3中发送给鉴别服务器AS的身份鉴别请求消息M3中的信息NREQ不相等,则执行4.3.1);若鉴别服务器AS利用共享密钥KAS,REQ解密E(KAS,REQ,NREQ)后得到的NREQ与访问者REQ在步骤S3中发送给鉴别服务器AS的身份鉴别请求消息M3中的信息NREQ相等,则执行4.3.2)。
4.3.1),鉴别服务器AS根据IDAC判断访问控制器AC是否已与鉴别服务器AS共享密钥KAS,AC,若未共享密钥KAS,AC,则执行4.3.1.1);若已共享密钥KAS,AC,则执行4.3.1.2)。
4.3.1.1),鉴别服务器AS终止鉴别。
4.3.1.2),鉴别服务器AS利用共享密钥KAS,AC解密E(KAS,AC,NREQ),并判断解密后得到的NREQ是否与访问者REQ在步骤S3中发送给鉴别服务器AS的身份鉴别请求消息M3中的信息NREQ相等,若解密后得到的NREQ与访问者REQ在步骤S3中发送给鉴别服务器AS的身份鉴别请求消息M3中的信息NREQ不相等,则执行4.3.1.2.1);若解密后得到的NREQ与访问者REQ在步骤S3中发送给鉴别服务器AS的身份鉴别请求消息M3中的信息NREQ相等,则执行4.3.1.2.2)。
4.3.1.2.1),鉴别服务器AS终止鉴别。
4.3.1.2.2),鉴别服务器AS构造身份鉴别响应消息M4即IDAC||NREQ||Res(AC)||Res(REQ)||MIC2发送给访问者REQ。此时,R(AC)=True,表示鉴别服务器AS对访问控制器AC鉴别成功,R(REQ)=Failure,表示鉴别服务器AS对访问者REQ 鉴别失败;此时,MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)),用来验证消息IDAC||NREQ||Res(AC)||Res(REQ)的完整性。其中,H为一种单向哈希算法,下同。
4.3.2),鉴别服务器AS根据IDAC判断访问控制器AC是否已与鉴别服务器AS共享密钥KAS,AC,若未共享密钥KAS,AC,则执行4.3.2.1);若已共享密钥KAS,AC,则执行4.3.2.2);
4.3.2.1)鉴别服务器AS构造身份鉴别响应消息M4即IDAC||NREQ||Res(AC)||Res(REQ)||MIC2发送给访问者REQ。此时,R(AC)=Failure,表示鉴别服务器AS对访问控制器AC鉴别失败;R(REQ)=True,表示鉴别服务器AS对访问者REQ 鉴别成功。此时MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)),用来验证消息IDAC||NREQ||Res(AC)||Res(REQ)的完整性。
4.3.2.2),鉴别服务器AS判断利用共享密钥KAS,AC解密E(KAS,AC,NREQ)后得到的NREQ是否与访问者REQ在步骤S3中发送给鉴别服务器AS的身份鉴别请求消息M3中的信息NREQ相等,若否,则步骤4.3.2.1);若是,则执行4.3.2.3)。
4.3.2.3),鉴别服务器AS生成访问者REQ和访问控制器AC间的会话密钥KAC,REQ,然后利用共享密钥KAS,AC和KAS,REQ以及会话密钥KAC,REQ计算E(KAS,AC,IDREQ||KAC,REQ)与E(KAS,REQ,KAC,REQ),进而计算此时的消息完整性鉴别码MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,RE Q,KAC,REQ))。其中,IDREQ是访问者REQ的身份标识,下同。此时的消息完整性鉴别码MIC2用来验证消息IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,REQ)的完整性。此时,R(AC)=True,表示鉴别服务器AS对访问控制器AC鉴别成功;R(REQ)=True,表示鉴别服务器AS对访问者REQ鉴别成功。鉴别服务器AS进而构造此时的身份鉴别响应消息M4即IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,REQ)||MIC2发送给访问者REQ。
综上可以注意到,当R(AC)=Failure或R(REQ)=Failure时,消息完整性鉴别码MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)),相应的,身份鉴别响应消息M4为IDAC||NREQ||Res(AC)||Res(REQ)||MIC2,另外,在其他实施例中,身份鉴别响应消息M4为一至少包含IDAC||NREQ||Res(AC)||Res(REQ)||MIC2的消息;当R(AC)=True且R(REQ)=True时,消息完整性鉴别码MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,R EQ)),相应的,身份鉴别响应消息M4为IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,REQ)||MIC2,另外,在其他实施例中,身份鉴别响应消息M4为一至少包含IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,REQ)||MIC2的消息。
步骤S5:
5.1),访问者REQ收到身份鉴别响应消息M4即IDAC||NREQ||Res(AC)||Res(REQ)||MIC2或IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,REQ)||MIC2后,首先判断随机数NREQ是否访问者REQ产生的随机数,若不是,则执行5.2);若是,则执行5.3)。
步骤5.2),访问者REQ丢弃该身份鉴别响应消息M4。
步骤5.3),访问者REQ根据MIC2判断相应消息的完整性,若不完整,则执行5.3.1);若完整,则执行5.3.2)。
5.3.1),访问者REQ丢弃该身份鉴别响应消息M4。
5.3.2),访问者REQ利用KAS,REQ对可公开的鉴别结果C1即Res(AC)进行解密,来判断访问控制器AC的合法性,若对Res(AC)进行解密后得到的R(AC)=Failure,则表示访问控制器AC非法,则执行5.3.2.1);若对Res(AC)进行解密后得到的R(AC)=True,则表示访问控制器AC合法,则执行5.3.2.2)。
5.3.2.1),访问者REQ终止访问。
5.3.2.2),访问者REQ解密身份鉴别响应消息M4中的E(KAS,REQ,KAC,REQ)而获得会话密钥KAC,REQ,并产生随机数N’REQ、计算消息完整性鉴别码MIC3=H(KAC,REQ,NAC||N’REQ||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ))、构造接入鉴别响应消息M5即NAC||N’REQ||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||MIC3发送给访问控制器AC。其中,消息完整性鉴别码MIC3用来验证消息NAC||N’REQ||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)的完整性。
在其他实施例中,接入鉴别响应消息M5为一至少包含NAC||N’REQ||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||MIC3的消息。
步骤S6:
6.1),访问控制器AC收到身份鉴别响应消息M5即NAC||N’REQ||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||MIC3后,首先判断随机数NAC是否访问控制器AC产生的随机数,若不是,则执行6.2);若是,则执行6.3);
6.2),访问控制器AC拒绝访问者REQ的访问。
6.3),访问控制器AC利用KAS,AC对Res(REQ)进行解密,若解密Res(REQ)得到的R(REQ)=Failure,表示访问者REQ非法,则执行6.3.1);若解密Res(REQ)得到的R(REQ)=True,表示访问者REQ合法,则执行6.3.2)。
6.3.1),访问控制器AC拒绝访问者REQ的访问。
6.3.2),访问控制器AC解密E(KAS,AC,IDREQ||KAC,REQ),获得会话密钥KAC,REQ,并根据MIC3判断消息NAC||N’REQ||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)完整性,若不完整,则执行6.3.2.1);若完整,则执行6.3.2.2)。
6.3.2.1),访问控制器AC拒绝访问者REQ的访问。
6.3.2.2),访问控制器AC确认解密E(KAS,AC,IDREQ||KAC,REQ)后获得的IDREQ是否与访问者REQ的身份标识IDREQ一致,若不一致,则执行6.3.2.2.1);若一致,则执行6.3.2.2.2)。
6.3.2.2.1),访问控制器AC拒绝访问者REQ的访问。
6.3.2.2.2),访问控制器AC根据所述授权策略判断访问者REQ在步骤S1中发送的访问请求QREQ是否合法,若不合法,则执行6.3.2.2.2.1);若合法,则执行6.3.2.2.2.2)。
6.3.2.2.2.1),访问控制器AC拒绝访问者REQ的访问。
6.3.2.2.2.2),访问控制器AC根据QREQ构造应答数据RAC、计算消息完整性鉴别码MIC4=H(KAC,REQ,N’REQ||E(KAC,REQ,RAC)),进而构造访问响应消息M6即N’REQ||E(KAC,REQ,RAC)||MIC4发送给访问者REQ。其中,RAC用于访问控制器AC通知所述访问者REQ是否有权访问所述目的网络。
其中,消息完整性鉴别码MIC4用来验证消息N’REQ||E(KAC,REQ,RAC)的完整性,访问控制器AC对访问者REQ的所述授权策略可以来自访问控制器AC本地,也可以由其他服务器如鉴别服务器AS提供,当所述授权策略由鉴别服务器AS提供时,则需将步骤S4中的身份鉴别响应消息M4即IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,REQ)||MIC2中的E(KAS,AC,IDREQ||KAC,REQ)修改为E(KAS,AC,IDREQ||KAC,REQ||APAS),同时需要将步骤S5中的接入鉴别响应消息M5即NAC||N’REQ||E(KAS,AC,IDREQ||KAC,REQ)||MIC3中的E(KAS,AC,IDREQ||KAC,REQ)修改为E(KAS,AC,IDREQ||KAC,REQ||APAS)。其中,APAS表示对访问者REQ的授权策略。
至此,即完成了访问控制器AC对访问者REQ的鉴别和授权,实现了对访问控制器AC的访问控制。
6.4),访问者REQ收到访问响应消息M6即N’REQ||E(KAC,REQ,RAC)||MIC4后,首先判断随机数N’REQ是否访问者REQ产生的随机数,若不是,则执行6.4.1);若是,则执行6.4.2)。
6.4.1),访问者REQ丢弃该访问响应消息M6。
6.4.2),访问者REQ根据MIC4判断消息N’REQ||E(KAC,REQ,RAC)完整性,若不完整,则执行6.4.2.1);若完整,则执行6.4.2.2)。
6.4.2.1),访问者REQ丢弃该访问响应消息M6。
6.4.2.2),访问者REQ解密E(KAC,REQ,RAC)获得所述应答数据RAC,并根据应答数据RAC判断是否被访问控制器AC授权访问目的网络,然后据此对目的网络进行访问。
在其他实施例中,访问响应消息M6为一至少包含N’REQ||E(KAC,REQ,RAC)||MIC4的消息。
上述步骤S2-S4的另一种具体实施例是:
步骤S2:
访问控制器AC收到访问请求消息M1即NREQ||QREQ后,构造接入鉴别请求消息M2即NREQ||NAC||H(KAS,AC||NREQ)发送给访问者REQ,在其他实施例中,接入鉴别请求消息M2为一至少包含NREQ||NAC||H(KAS,AC||NREQ)的消息。
其中,H(KAS,AC||NREQ)表示对KAS,AC||NREQ进行哈希运算后的结果,即访问控制器AC的身份鉴别信息I1。
步骤S3:
访问者REQ收到接入鉴别请求消息M2即NREQ||NAC||H(KAS,AC||NREQ)后,首先判断NREQ是否访问者REQ产生的随机数,如果不是,则丢弃该鉴别请求消息M2;如果是,则访问者REQ利用共享密钥KAS,REQ计算消息完整性鉴别码MIC5=H(KAS,REQ,IDAC||NREQ||H(KAS,AC||NREQ)),并进而构造身份鉴别请求消息M3即IDAC||NREQ||H(KAS,AC||NREQ)||MIC5发送给鉴别服务器AS。其中,消息完整性鉴别码MIC5用来验证IDAC||NREQ||H(KAS,AC||NREQ)的完整性,MIC5即为访问者REQ的身份鉴别信息I2。
在其他实施例中,身份鉴别请求消息M3为一至少包含IDAC||NREQ||H(KAS,AC||NREQ)||MIC5的消息。
步骤S4:
4.1′),鉴别服务器AS收到身份鉴别请求消息M3即IDAC||NREQ||H(KAS,AC||NREQ)||MIC5后,首先判断访问者REQ是否已与鉴别服务器AS共享密钥KAS,REQ,若未共享密钥KAS,REQ,则执行4.2′);若已共享密钥KAS,REQ,则执行4.3′)。
4.2′),鉴别服务器AS根据IDAC判断访问控制器AC是否已与鉴别服务器AS共享密钥KAS,AC,若未共享密钥KAS,AC,则执行4.2.1′);若已共享密钥KAS,AC,则执行4.2.2′)。
4.2.1′),鉴别服务器AS终止鉴别。
4.2.2′),鉴别服务器AS构造身份鉴别响应消息M4即IDAC||NREQ||Res(AC)||Res(REQ)||MIC2发送给访问者REQ。其中,Res(AC)即为可公开的鉴别结果C1,Res(REQ)即为可公开的鉴别结果C2,Res(AC)=E(KAS,REQ,R(AC)),Res(REQ)=E(KAS,AC,R(REQ)),R(AC)即为所述第一验证结果,R(REQ)即为所述第二验证结果,MIC2为消息完整性鉴别码。此时,R(REQ)=Failure,表示鉴别服务器AS对访问者REQ鉴别失败,R(AC)=True,表示鉴别服务器AS对访问控制器AC鉴别成功。此时MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)),用来验证消息IDAC||NREQ||Res(AC)||Res(REQ)的完整性。
4.3′),鉴别服务器AS根据身份鉴别请求消息M3中的MIC5判断IDAC||NREQ||H(KAS,AC||NREQ)的完整性,若不完整,则执行4.3.1′);若完整,表示访问者REQ合法,则执行4.3.2′)。
4.3.1′),鉴别服务器AS丢弃该身份鉴别请求消息M3。
4.3.2′),鉴别服务器AS利用IDAC判断访问控制器AC是否已与鉴别服务器AS共享密钥KAS,AC,若未共享密钥KAS,AC,则执行4.3.2.1′);若已共享密钥KAS,AC,则执行4.3.2.2′)。
4.3.2.1′),鉴别服务器AS构造身份鉴别响应消息M4即IDAC||NREQ||Res(AC)||Res(REQ)||MIC2发送给访问者REQ。此时,R(AC)=Failure,表示鉴别服务器AS对访问控制器AC鉴别失败;R(REQ)=True,表示鉴别服务器AS对访问者REQ鉴别成功。此时MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)),用来验证消息IDAC||NREQ||Res(AC)||Res(REQ)的完整性。
4.3.2.2′),鉴别服务器AS根据NREQ验证H(KAS,AC||NREQ)的完整性,若验证失败,则执行4.3.2.2.1′);若验证成功,则执行4.3.2.2.2′)。
4.3.2.2.1′),鉴别服务器AS构造身份鉴别响应消息M4即IDAC||NREQ||Res(AC)||Res(REQ)||MIC2发送给访问者REQ。此时,R(AC)=Failure,表示鉴别服务器AS对访问控制器AC鉴别失败;R(REQ)=True,表示鉴别服务器AS对访问者REQ鉴别成功。此时MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)),用来验证消息IDAC||NREQ||Res(AC)||Res(REQ)的完整性。
4.3.2.2.2′),鉴别服务器AS生成访问者REQ和访问控制器AC间的会话密钥KAC,REQ,然后利用共享密钥KAS,AC和KAS,REQ以及会话密钥KAC,REQ计算E(KAS,AC,IDREQ||KAC,REQ)与E(KAS,REQ,KAC,REQ),进而计算此时的消息完整性鉴别码MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,RE Q,KAC,REQ)),用来验证消息IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,REQ)的完整性。此时R(AC)=True,表示鉴别服务器AS对访问控制器AC鉴别成功;R(REQ)=True,表示鉴别服务器AS对访问者REQ鉴别成功。鉴别服务器AS进而构造此时的身份鉴别响应消息M4即IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,REQ)||MIC2发送给访问者REQ。
综上可以注意到,当R(AC)=Failure或R(REQ)=Failure时,消息完整性鉴别码MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)),相应的,身份鉴别响应消息M4为IDAC||NREQ||Res(AC)||Res(REQ)||MIC2,另外,在其他实施例中,身份鉴别响应消息M4为一至少包含IDAC||NREQ||Res(AC)||Res(REQ)||MIC2的消息;当R(AC)=True且R(REQ)=True时,消息完整性鉴别码MIC2=H(KAS,REQ,IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,R EQ)),相应的,身份鉴别响应消息M4为IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,REQ)||MIC2,另外,在其他实施例中,身份鉴别响应消息M4为一至少包含IDAC||NREQ||Res(AC)||Res(REQ)||E(KAS,AC,IDREQ||KAC,REQ)||E(KAS,REQ,KAC,REQ)||MIC2的消息。
本发明基于密码学中的对称密码机制,分别提供了两种由鉴别服务器AS提供鉴别服务时在访问控制器AC与访问者REQ之间实现鉴别的具体实施方法,一种方法基于对称加密运算即前一实施例,一种方法基于哈希运算即后一实施例,都能够实现在访问控制器AC无法直接使用鉴别服务器AS提供的鉴别服务时、由访问者REQ与鉴别服务器AS之间完成鉴别并由访问控制器AC完成对访问者REQ进行授权的访问控制过程。