![](/upload/img/20220715/6r6g31bws.jpg)
1.本技术涉及网络通信安全技术领域,特别是涉及一种身份鉴别方法和装置。
背景技术:
2.目前,通信网络通常要求在用户和网络接入点之间执行双向身份鉴别,确保合法用户访问合法网络,在已有的实体鉴别方案中,实体的身份要么统一采用数字证书,要么实体之间采用预共享密钥的形式,但在实际应用中某些场景下,面临一端采用数字证书作为身份凭证、另一端采用预共享密钥作为身份凭证的情况,这对实体身份鉴别机制提出了挑战。
3.另外,在身份鉴别过程中,直接暴露实体的身份信息,而某些时候,实体的身份信息包含了实体的若干私密或敏感信息,譬如身份证号、家庭住址、银行卡信息等,若被攻击者截获继而被其利用从事非法活动,后果将不堪设想,如何在不暴露身份敏感信息的前提下完成实体身份鉴别成为当务之急。
技术实现要素:
4.为了解决上述技术问题,本技术提供了一种身份鉴别方法和装置,能够实现在请求设备采用数字证书、鉴别接入控制器采用预共享密钥作为身份凭证的情况下实体双向身份鉴别以及实体的身份保护。
5.有鉴于此,本技术第一方面提供了一种身份鉴别方法,包括:
6.鉴别接入控制器接收请求设备发送的身份密文消息,所述身份密文消息包括第一身份信息密文;所述第一身份信息密文是所述请求设备利用加密证书的公钥对包括所述请求设备的身份信息和所述请求设备的第一身份密钥在内的信息加密生成的;所述请求设备的身份信息包括所述请求设备的数字证书;所述第一身份密钥包括第二密钥;
7.所述鉴别接入控制器向其信任的第一鉴别服务器发送第一鉴别请求消息,所述第一鉴别请求消息中包括所述第一身份信息密文和所述鉴别接入控制器的身份鉴别码;所述鉴别接入控制器的身份鉴别码是所述鉴别接入控制器利用与所述第一鉴别服务器的预共享密钥,采用与所述第一鉴别服务器约定的密码算法对包括所述第一身份信息密文在内的信息计算生成的;
8.所述鉴别接入控制器接收所述第一鉴别服务器发送的第一鉴别响应消息,所述第一鉴别响应消息包括第一鉴别结果信息、所述请求设备信任的第二鉴别服务器的第一数字签名、第二鉴别结果信息密文和所述第一鉴别服务器的第一消息鉴别码;所述第一鉴别结果信息中包括对所述鉴别接入控制器的第一验证结果,所述第一数字签名是所述第二鉴别服务器对包括所述第一鉴别结果信息在内的签名数据计算生成的数字签名,所述第二鉴别结果信息密文是利用所述第二密钥对包括第二鉴别结果信息在内的信息加密生成的,所述第二鉴别结果信息中包括对所述请求设备的数字证书的第二验证结果,所述第一鉴别服务器的第一消息鉴别码是所述第一鉴别服务器利用与所述鉴别接入控制器的预共享密钥,采
用与所述鉴别接入控制器约定的密码算法对包括所述第二鉴别结果信息密文在内的信息计算生成的;
9.所述鉴别接入控制器利用与所述第一鉴别服务器的预共享密钥,采用与所述第一鉴别服务器约定的密码算法验证所述第一鉴别服务器的第一消息鉴别码,若验证通过,向所述请求设备发送第三鉴别响应消息,所述第三鉴别响应消息中包括身份鉴别结果信息密文,所述身份鉴别结果信息密文是所述鉴别接入控制器利用消息加密密钥对包括第一鉴别结果信息和所述第一数字签名在内的加密数据加密生成的;
10.所述请求设备利用所述消息加密密钥解密所述身份鉴别结果信息密文得到所述第一鉴别结果信息和所述第一数字签名;
11.所述请求设备利用所述第二鉴别服务器的公钥对所述第一数字签名进行验证,若验证通过,则所述请求设备根据所述第一鉴别结果信息中的第一验证结果确定所述鉴别接入控制器的身份鉴别结果;当所述请求设备确定所述鉴别接入控制器的身份鉴别结果为合法时,向所述鉴别接入控制器发送第四鉴别响应消息;或者,
12.所述请求设备利用所述第二鉴别服务器的公钥对所述第一数字签名进行验证,若验证通过,则所述请求设备向所述鉴别接入控制器发送第四鉴别响应消息以及根据所述第一鉴别结果信息中的第一验证结果确定所述鉴别接入控制器的身份鉴别结果;或者,
13.所述请求设备利用所述第二鉴别服务器的公钥对所述第一数字签名进行验证;若所述第一数字签名验证通过,则所述请求设备根据所述第一鉴别结果信息中的第一验证结果确定所述鉴别接入控制器的身份鉴别结果;所述请求设备向所述鉴别接入控制器发送第四鉴别响应消息;
14.其中,所述第四鉴别响应消息包括第二密钥密文,所述第二密钥密文是利用所述消息加密密钥对包括所述第二密钥在内的信息加密生成的;
15.所述鉴别接入控制器接收到所述第四鉴别响应消息后,利用所述消息加密密钥解密所述第二密钥密文得到第二密钥,利用所述第二密钥对所述第二鉴别结果信息密文进行解密得到第二鉴别结果信息,根据所述第二鉴别结果信息中的第二验证结果确定所述请求设备的身份鉴别结果。
16.本技术第二方面提供了一种请求设备,包括:
17.加密模块,用于利用加密证书的公钥对包括所述请求设备的身份信息和所述请求设备的第一身份密钥在内的信息加密生成第一身份信息密文,所述请求设备的身份信息包括所述请求设备的数字证书,所述第一身份密钥包括第二密钥;
18.发送模块,用于向鉴别接入控制器发送身份密文消息,所述身份密文消息包括所述第一身份信息密文;
19.接收模块,用于接收所述鉴别接入控制器发送的第三鉴别响应消息,所述第三鉴别响应消息中包括身份鉴别结果信息密文,所述身份鉴别结果信息密文是所述鉴别接入控制器利用消息加密密钥对包括第一鉴别结果信息和第一数字签名在内的加密数据加密生成的;所述第一鉴别结果信息中包括对所述鉴别接入控制器的第一验证结果,所述第一数字签名是所述请求设备信任的第二鉴别服务器对包括所述第一鉴别结果信息在内的签名数据计算生成的数字签名;
20.解密模块,用于利用所述消息加密密钥解密所述身份鉴别结果信息密文得到所述
第一鉴别结果信息和所述第一数字签名;
21.验证模块,用于利用所述第二鉴别服务器的公钥对所述第一数字签名进行验证,若验证通过,则确定模块根据所述第一鉴别结果信息中的第一验证结果确定所述鉴别接入控制器的身份鉴别结果;当所述确定模块确定所述鉴别接入控制器的身份鉴别结果为合法时,所述发送模块向所述鉴别接入控制器发送第四鉴别响应消息;或者,
22.用于利用所述第二鉴别服务器的公钥对所述第一数字签名进行验证,若验证通过,则所述发送模块向所述鉴别接入控制器发送第四鉴别响应消息以及确定模块根据所述第一鉴别结果信息中的第一验证结果确定所述鉴别接入控制器的身份鉴别结果;或者,
23.用于利用所述第二鉴别服务器的公钥对所述第一数字签名进行验证;若所述第一数字签名验证通过,则确定模块根据所述第一鉴别结果信息中的第一验证结果确定所述鉴别接入控制器的身份鉴别结果;所述发送模块向所述鉴别接入控制器发送第四鉴别响应消息;
24.其中,所述第四鉴别响应消息包括第二密钥密文,所述第二密钥密文是所述加密模块利用消息加密密钥对包括所述第二密钥在内的信息加密生成的。
25.本技术第三方面提供了一种鉴别接入控制器,包括:
26.接收模块,用于接收请求设备发送的身份密文消息,所述身份密文消息包括第一身份信息密文;所述第一身份信息密文是所述请求设备利用加密证书的公钥对包括所述请求设备的身份信息和所述请求设备的第一身份密钥在内的信息加密生成的;所述请求设备的身份信息包括所述请求设备的数字证书;所述第一身份密钥包括第二密钥;
27.发送模块,用于向所述鉴别接入控制器信任的第一鉴别服务器发送第一鉴别请求消息,所述第一鉴别请求消息中包括所述第一身份信息密文和所述鉴别接入控制器的身份鉴别码;所述鉴别接入控制器的身份鉴别码是所述鉴别接入控制器利用与所述第一鉴别服务器的预共享密钥,采用与所述第一鉴别服务器约定的密码算法对包括所述第一身份信息密文在内的信息计算生成的;
28.所述接收模块还用于接收所述第一鉴别服务器发送的第一鉴别响应消息,所述第一鉴别响应消息包括第一鉴别结果信息、所述请求设备信任的第二鉴别服务器的第一数字签名、第二鉴别结果信息密文和所述第一鉴别服务器的第一消息鉴别码;所述第一鉴别结果信息中包括对所述鉴别接入控制器的第一验证结果,所述第一数字签名是所述第二鉴别服务器对包括所述第一鉴别结果信息在内的签名数据计算生成的数字签名,所述第二鉴别结果信息密文是利用所述第二密钥对包括第二鉴别结果信息在内的信息加密生成的,所述第二鉴别结果信息中包括对所述请求设备的数字证书的第二验证结果,所述第一鉴别服务器的第一消息鉴别码是所述第一鉴别服务器利用与所述鉴别接入控制器的预共享密钥,采用与所述鉴别接入控制器约定的密码算法对包括所述第二鉴别结果信息密文在内的信息计算生成的;
29.验证模块,用于利用与所述第一鉴别服务器的预共享密钥,采用与所述第一鉴别服务器约定的密码算法验证所述第一鉴别服务器的第一消息鉴别码;
30.所述发送模块,还用于若验证通过,向所述请求设备发送第三鉴别响应消息,所述第三鉴别响应消息中包括身份鉴别结果信息密文,所述身份鉴别结果信息密文是所述鉴别接入控制器利用消息加密密钥对包括第一鉴别结果信息和所述第一数字签名在内的加密
数据加密生成的;
31.所述接收模块,还用于接收所述请求设备发送的第四鉴别响应消息,所述第四鉴别响应消息包括第二密钥密文,所述第二密钥密文是利用所述消息加密密钥对包括所述第二密钥在内的信息加密生成的;
32.解密模块,用于利用所述消息加密密钥解密所述第二密钥密文得到第二密钥,利用所述第二密钥对所述第二鉴别结果信息密文进行解密得到第二鉴别结果信息;
33.确定模块,用于根据所述第二鉴别结果信息中的第二验证结果确定所述请求设备的身份鉴别结果。
34.本技术第四方面提供了一种第一鉴别服务器,包括:
35.接收模块,用于接收鉴别接入控制器发送的第一鉴别请求消息,所述第一鉴别请求消息中包括第一身份信息密文和所述鉴别接入控制器的身份鉴别码,所述第一身份信息密文是请求设备利用加密证书的公钥对包括所述请求设备的身份信息和所述请求设备的第一身份密钥在内的信息加密生成的,所述请求设备的身份信息包括所述请求设备的数字证书,所述第一身份密钥包括第二密钥,所述鉴别接入控制器的身份鉴别码是所述鉴别接入控制器利用与所述第一鉴别服务器的预共享密钥,采用与所述第一鉴别服务器约定的密码算法对包括所述第一身份信息密文在内的信息计算生成的;
36.发送模块,用于向所述鉴别接入控制器发送第一鉴别响应消息,所述第一鉴别响应消息包括第一鉴别结果信息、所述请求设备信任的第二鉴别服务器的第一数字签名、第二鉴别结果信息密文和所述第一鉴别服务器的第一消息鉴别码;所述第一鉴别结果信息中包括对所述鉴别接入控制器的第一验证结果,所述第一数字签名是所述第二鉴别服务器对包括所述第一鉴别结果信息在内的签名数据计算生成的数字签名,所述第二鉴别结果信息密文是利用所述第二密钥对包括第二鉴别结果信息在内的信息加密生成的,所述第二鉴别结果信息中包括对所述请求设备的数字证书的第二验证结果,所述第一鉴别服务器的第一消息鉴别码是所述第一鉴别服务器利用与所述鉴别接入控制器的预共享密钥,采用与所述鉴别接入控制器约定的密码算法对包括所述第二鉴别结果信息密文在内的信息计算生成的。
37.本技术第五方面提供了一种第二鉴别服务器,包括:
38.接收模块,用于接收第一鉴别服务器发送的第二鉴别请求消息,所述第二鉴别请求消息中包括第一鉴别结果信息、第一身份信息密文和第二数字签名或所述第二鉴别请求消息中包括第一鉴别结果信息、第一身份信息密文和第二消息鉴别码;其中,所述第一身份信息密文是请求设备利用加密证书的公钥对包括所述请求设备的身份信息和所述请求设备的第一身份密钥在内的信息加密生成的,所述请求设备的身份信息包括所述请求设备的数字证书,所述第一身份密钥包括第二密钥;所述第二数字签名是所述第一鉴别服务器对包括所述第一鉴别结果信息和所述第一身份信息密文在内的签名数据计算生成的或所述第二消息鉴别码是所述第一鉴别服务器对包括所述第一鉴别结果信息和所述第一身份信息密文在内的信息计算生成的;
39.验证模块,用于利用所述第一鉴别服务器的公钥验证所述第二数字签名或利用与所述第一鉴别服务器的预共享密钥验证所述第二消息鉴别码,若验证通过,则利用加密证书对应的私钥解密所述第一身份信息密文得到所述请求设备的数字证书和所述第二密钥,
对所述请求设备的数字证书进行合法性验证得到第二验证结果;
40.生成模块,用于根据包括所述第二验证结果在内的信息生成所述第二鉴别结果信息,利用所述第二密钥对包括第二鉴别结果信息在内的信息加密生成第二鉴别结果信息密文,对包括所述第一鉴别结果信息在内的签名数据计算生成第一数字签名,对包括所述第二鉴别结果信息密文在内的签名数据计算生成第三数字签名或对包括所述第二鉴别结果信息密文在内的信息计算生成第三消息鉴别码;
41.发送模块,用于向所述第一鉴别服务器发送的第二鉴别响应消息,所述第二鉴别响应消息中包括所述第一鉴别结果信息、所述第一数字签名、所述第二鉴别结果信息密文和所述第三数字签名或所述第二鉴别响应消息中包括所述第一鉴别结果信息、所述第一数字签名、所述第二鉴别结果信息密文和所述第三消息鉴别码。
42.由上可知:在本技术提供的一种身份鉴别方法中,请求设备采用数字证书作为其身份凭证,鉴别接入控制器采用预共享密钥作为其身份凭证,在身份鉴别过程中,请求设备先向鉴别接入控制器发送身份密文消息,该身份密文消息中包括第一身份信息密文,即请求设备利用加密证书的公钥对包括请求设备的身份信息和请求设备的第一身份密钥在内的信息加密生成的密文,其中,请求设备的身份信息包括其数字证书,第一身份密钥包括第二密钥,鉴别接入控制器利用与其信任的第一鉴别服务器的预共享密钥和约定的密码算法对包括第一身份信息密文在内的信息计算生成鉴别接入控制器的身份鉴别码,并向第一鉴别服务器发送携带有第一身份信息密文和鉴别接入控制器的身份鉴别码的第一鉴别请求消息,由请求设备信任的第二鉴别服务器对请求设备的数字证书的合法性进行验证,由所述第一鉴别服务器对鉴别接入控制器的身份鉴别码进行验证,完成验证后,第一鉴别服务器向鉴别接入控制器发送第一鉴别响应消息,第一鉴别响应消息中包括第一鉴别结果信息、第二鉴别服务器的第一数字签名、第二鉴别结果信息密文及第一鉴别服务器的第一消息鉴别码,然后鉴别接入控制器利用与第一鉴别服务器的预共享密钥和约定的密码算法验证第一鉴别服务器的第一消息鉴别码,验证通过后,向请求设备发送携带身份鉴别结果信息密文的第三鉴别响应消息,请求设备利用消息加密密钥解密身份鉴别结果信息密文得到第一鉴别结果信息,并从中获得鉴别接入控制器的验证结果,当确定鉴别接入控制器身份合法时,向鉴别接入控制器发送包括第二密钥密文的第四鉴别响应消息,鉴别接入控制器利用消息加密密钥解密第二密钥密文得到第二密钥,利用第二密钥对第二鉴别结果信息密文解密得到第二鉴别结果信息,从第二鉴别结果信息中获取请求设备的验证结果,从而实现请求设备和鉴别接入控制器的双向身份鉴别,为保证只有合法用户才能访问合法网络奠定基础。并且,实体的身份信息和/或身份鉴别结果信息以密文形式传输,保障私密信息在传输过程中的安全性,实现实体的身份保护。
附图说明
43.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
44.图1为本技术实施例提供的一种身份鉴别方法的示意图;
45.图2为本技术实施例提供的一种请求设备req和鉴别接入控制器aac协商消息加密密钥的方法的示意图;
46.图3为本技术实施例提供的一种身份鉴别方法的示意图,其中“*”表示可选的字段或可选的操作;
47.图4为本技术实施例提供的一种身份鉴别方法的示意图,其中“*”表示可选的字段或可选的操作;
48.图5为本技术实施例提供的一种身份鉴别方法的示意图,其中“*”表示可选的字段或可选的操作;
49.图6为本技术实施例提供的一种身份鉴别方法的示意图,其中“*”表示可选的字段或可选的操作;
50.图7为本技术实施例提供的一种请求设备req的结构框图;
51.图8为本技术实施例提供的一种鉴别接入控制器aac的结构框图;
52.图9为本技术实施例提供的一种第一鉴别服务器as-aac的结构框图;
53.图10为本技术实施例提供的一种第二鉴别服务器as-req的结构框图。
具体实施方式
54.在通信网络中,请求设备可以通过鉴别接入控制器访问网络,为了确保访问网络的请求设备属于合法用户,以及请求设备访问的网络为合法网络,鉴别接入控制器和请求设备之间需要进行双向身份鉴别(mutual identity authentication,简称mia)。
55.以目前的无线通信和移动通信场景为例,在请求设备通过鉴别接入控制器接入无线网络的场景下,请求设备可以为手机、个人数字助理(personal digital assitant,简称pda)、平板电脑等终端设备,鉴别接入控制器可以是无线接入点、无线路由器等网络侧设备。在请求设备通过鉴别接入控制器接入有线网络的场景下,请求设备可以为台式机、笔记本电脑等终端设备,鉴别接入控制器可以是交换机或路由器等网络侧设备。在请求设备通过鉴别接入控制器接入第四/五代移动通信技术(the 4th/5th generation mobile communication technology,简称4g/5g)网络的场景下,请求设备可以为手机、平板电脑等终端设备,鉴别接入控制器可以为基站等网络侧设备。当然,本技术同样适用于其他有线网络、近距离通信网络等各种数据通信场景。
56.然而,在目前已有的实体鉴别方案中,实体的身份凭证要么统一采用数字证书的形式,要么统一采用预共享密钥的形式,而针对实际应用中一端采用数字证书作为身份凭证、另一端采用预共享密钥作为身份凭证的情况,并没有提出简洁、有效的身份鉴别机制。并且在身份鉴别消息的传输过程中,直接暴露实体的身份信息,导致其安全性无法得到保障。
57.为了解决上述技术问题,本技术实施例提供了一种身份鉴别方法,针对请求设备采用数字证书,鉴别接入控制器采用预共享密钥的鉴别方式的应用场景,由鉴别接入控制器信任的第一鉴别服务器验证鉴别接入控制器的身份鉴别码得到第一验证结果,由请求设备信任的第二鉴别服务器验证请求设备数字证书的合法性得到第二验证结果,请求设备和鉴别接入控制器分别依据对方实体所对应的验证结果来确定对方实体是否合法,实现鉴别接入控制器与请求设备之间的双向身份鉴别,从而为确保只有合法用户才能与合法网络通
信奠定基础。并且实体的私密信息如身份标识、鉴别结果信息等以密文形式传输,保障了私密信息在传输过程中的安全性,实现实体的身份保护。
58.为便于介绍,在本技术实施例中,将以请求设备(requester,简称req)、鉴别接入控制器(authentication access controller,简称aac)和鉴别服务器(authentication server,简称as)为例对本技术的身份鉴别方法进行介绍。
59.其中,aac信任的as称为第一鉴别服务器as-aac,req信任的as称为第二鉴别服务器as-req。as-req持有符合iso/iec 9594-8/itu x.509、其他标准或其他技术体系规定的数字证书和数字证书对应的私钥,as-aac能够验证aac的身份合法性,as-req能够验证req的数字证书的合法性。as-aac和as-req可以是同一as也可以是不同的as,当as-aac与as-req相同时,即非漫游情况;当as-aac与as-req不相同时,即漫游情况,此时as-aac与as-req之间具有有效的预共享密钥,或者,当as-aac持有符合iso/iec9594-8/itu x.509、其他标准或其他技术体系规定的数字证书和数字证书对应的私钥时,as-aac与as-req相互信任,且知晓对方的数字证书或数字证书中的公钥。证书解密服务器(certificate sever-decrypt,简称cs-dec)持有符合iso/iec 9594-8/itu x.509、其他标准或其他技术体系规定的加密证书和加密证书对应的私钥,其加密证书可以有一张也可以有多张,cs-dec可以是独立的服务器,也可以驻留在as-aac和/或as-req中。
60.req可以是参与身份鉴别过程的一个端点,与aac建立连接,访问aac提供的服务,且通过aac访问as,req持有符合iso/iec 9594-8/itu x.509、其他标准或其他技术体系规定的数字证书和数字证书对应的私钥,req知晓as-req的数字证书或数字证书中的公钥,并知晓cs-dec的加密证书或加密证书中的公钥。aac可以是参与身份鉴别过程的另一个端点,与req建立连接,提供服务,并与req通信,且可直接访问as-aac,aac与as-aac之间具有预共享密钥,且在某些情况下知晓cs-dec的加密证书或加密证书中的公钥。
61.下面结合图1,说明本技术实施例提供的一种身份鉴别方法,该方法包括:
62.s101、aac接收req发送的身份密文消息reqinit。
63.所述reqinit中包括第一身份信息密文encpub
as_req
。其中,encpub
as_req
是req利用加密证书的公钥对包括req的身份信息和req的第一身份密钥在内的加密数据加密生成的;req的身份信息包括req的数字证书cert
req
,第一身份密钥包括第二密钥nonce
reqpub
。
64.s102、aac向其信任的as-aac发送第一鉴别请求消息aacveri。
65.所述aacveri中包括encpub
as_req
和aac的身份鉴别码mic
aac
。其中,mic
aac
是aac利用与as-aac的预共享密钥k
aac_as
,采用与as-aac约定的密码算法对包括encpub
as_req
在内的信息计算生成的。作为一个示例,aac与as-aac约定的密码算法可以是杂凑算法,通过利用所述k
aac_as
,结合杂凑算法对包括aacveri中mic
aac
字段之前的其他字段,如包括encpub
as_req
在内的信息,进行杂凑运算得到杂凑值,将该杂凑值作为aac的身份鉴别码mic
aac
。如此,由as-aac对mic
aac
进行验证得到第一验证结果res
aac
,由req信任的as-req对解密encpub
as_req
得到的cert
req
进行验证得到第二验证结果res
req
。
66.需要说明的是,当aac信任的as-aac和req信任的as-req为同一个鉴别服务器时,req和aac共同信任的鉴别服务器可以用as-aac(当然也可以用as-req)来表示。此情形下,可以由as-aac(也可以表示为as-req)对所述mic
aac
进行验证得到res
aac
,对解密encpub
as_req
得到的所述cert
req
进行合法性验证得到res
req
。其中,对encpub
as_req
的解密操作可以由证书
解密服务器cs-dec执行,cs-dec利用所述加密证书对应的私钥解密encpub
as_req
,as-aac(也可以表示为as-req)从cs-dec获取解密得到的cert
req
;或者,as-aac(也可以表示为as-req)利用驻留在as-aac(也可以表示为as-req)中的cs-dec的加密证书对应的私钥解密encpub
as_req
得到cert
req
。在验证所述mic
aac
时,as-aac(也可以表示为as-req)先确定与aac的预共享密钥k
aac_as
和约定的密码算法,再利用所述k
aac_as
,采用所述密码算法对包括aacveri中mic
aac
字段之前的其他字段,如包括encpub
as_req
在内的信息,在本地计算生成mic
aac
,然后将计算出的mic
aac
与接收到的mic
aac
进行比较,从而完成对mic
aac
的验证。as-aac在确定所述k
aac_as
和密码算法时,可以预先确知与aac具有的有效的预共享密钥k
aac_as
和密码算法;此外,aacveri中还可以携带aac的身份标识id
aac
,as-aac可以根据id
aac
确定与aac具有的有效的预共享密钥k
aac_as
和密码算法。
67.接着,as-aac(也可以表示为as-req)根据包括所述res
aac
在内的信息生成第一鉴别结果信息pub
aac
,根据包括所述res
req
在内的信息生成第二鉴别结果信息pub
req
,利用解密encpub
as_req
得到的nonce
reqpub
对包括pub
req
在内的信息加密得到第二鉴别结果信息密文(例如,可以将nonce
reqpub
与pub
req
进行异或运算生成第二鉴别结果信息密文即pub
req
⊕
nonce
reqpub
),并利用所述k
aac_as
,采用所述密码算法对包括所述第二鉴别结果信息密文在内的信息计算生成as-aac的第一消息鉴别码mic
as_aac
(也可以表示为as-req的第一消息鉴别码mic
as_req
),对包括所述pub
aac
在内的签名数据计算生成第一数字签名sig
as_aac1
(也可以表示为sig
as_req1
),根据包括所述pub
aac
、所述sig
as_aac1
(也可以表示为sig
as_req1
)、所述第二鉴别结果信息密文和所述mic
as_aac
(也可以表示为mic
as_req
)在内的信息生成第一鉴别响应消息asveri。
68.当aac信任的as-aac和req信任的as-req为两个不同的鉴别服务器时,此情形下,由as-aac验证所述mic
aac
得到res
aac
,由as-req对解密encpub
as_req
得到的cert
req
进行合法性验证得到res
req
。
69.具体地,as-aac利用与aac的预共享密钥k
aac_as
,采用与aac约定的密码算法对所述mic
aac
进行验证得到res
aac
,根据包括所述res
aac
在内的信息生成第一鉴别结果信息pub
aac
,对包括所述pub
aac
和所述encpub
as_req
在内的签名数据计算生成第二数字签名sig
as_aac2
,并向as-req发送第二鉴别请求消息as-aacveri,所述as-aacveri中包括所述pub
aac
、所述encpub
as_req
和所述sig
as_aac2
。其中,sig
as_aac2
可替换为mic
as_aac2
,mic
as_aac2
是as-aac利用与as-req的预共享密钥,采用与as-req约定的密码算法对包括所述pub
aac
、所述encpub
as_req
在内的信息计算生成的第二消息鉴别码。
70.然后,as-req利用as-aac的公钥验证sig
as_aac2
或者利用与as-aac的预共享密钥采用与as-aac约定的密码算法验证mic
as_aac2
,验证通过后,由as-req对解密所述encpub
as_req
得到的cert
req
进行合法性验证得到res
req
,再根据包括res
req
在内的信息生成第二鉴别结果信息pub
req
,利用解密所述encpub
as_req
得到的nonce
reqpub
对包括pub
req
在内的信息加密生成第二鉴别结果信息密文,并对包括所述pub
aac
在内的签名数据计算生成第一数字签名sig
as_req1
,对包括所述第二鉴别结果信息密文在内的签名数据计算生成第三数字签名sig
as_req3
,并向as-aac发送第二鉴别响应消息as-reqveri,所述as-reqveri中包括所述pub
aac
、所述sig
as_req1
、所述第二鉴别结果信息密文和所述sig
as_req3
。其中,sig
as_req3
可替换为mic
as_req3
,mic
as_req3
是as-req利用与as-aac的预共享密钥,采用与as-aac约定的密码算法
对包括所述第二鉴别结果信息密文在内的信息计算生成的第三消息鉴别码。
71.as-aac利用as-req的公钥验证所述sig
as_req3
,或者利用与as-req的预共享密钥采用与as-req约定的密码算法验证mic
as_req3
,验证通过后,由as-aac利用所述k
aac_as
,采用与aac约定的密码算法对包括所述第二鉴别结果信息密文在内的信息计算生成as-aac的第一消息鉴别码mic
as_aac
,并根据包括所述pub
aac
、所述sig
as_req1
、所述第二鉴别结果信息密文和所述mic
as_aac
在内的信息生成所述第一鉴别响应消息asveri。
72.s103、aac接收as-aac发送的第一鉴别响应消息asveri。
73.所述asveri中包括第一鉴别结果信息、第一数字签名sig
as_req1
、第二鉴别结果信息密文和as-aac的第一消息鉴别码mic
as_aac
。
74.s104、aac利用与as-aac的预共享密钥,采用与as-aac约定的密码算法验证所述mic
as_aac
。
75.若验证通过,则执行s105。其中,aac利用与as-aac的预共享密钥k
aac_as
采用与as-aac约定的密码算法对包括第二鉴别结果信息密文在内的信息计算生成mic
as_aac
,将计算出的mic
as_aac
与接收到的mic
as_aac
进行比较,若一致,则mic
as_aac
验证通过,若不一致,则丢弃asveri。
76.s105、aac向req发送第三鉴别响应消息aacauth。
77.所述aacauth中包括身份鉴别结果信息密文encdata
aac
。其中,encdata
aac
是aac利用消息加密密钥对包括第一鉴别结果信息和第一数字签名sig
as_req1
在内的加密数据加密生成的。本技术中,将被加密的对象称为加密数据。
78.s106、req利用消息加密密钥解密encdata
aac
得到第一鉴别结果信息和sig
as_req1
。
79.s107、req利用as-req的公钥验证所述sig
as_req1
。
80.s108、req根据第一鉴别结果信息中的res
aac
确定aac的身份鉴别结果。
81.由于res
aac
可以反映出aac是否合法,因此req可以根据第一鉴别结果信息中的res
aac
确定aac是否合法。
82.s109、req向aac发送第四鉴别响应消息reqauth。
83.所述reqauth中包括第二密钥密文encdata
req
。其中,encdata
req
是req利用消息加密密钥对包括nonce
reqpub
在内的信息加密生成的。
84.需要说明的是:s107至s109的执行顺序并不影响本技术的具体实现,在实际应用中,可根据需求设定s107至s109的执行顺序。优选建议,先执行s107,当req对所述sig
as_req1
验证不通过,则丢弃aacauth,当req对所述sig
as_req1
验证通过后,再执行s108,当req确定aac为合法时,再执行s109,当req确定aac为不合法时,则req根据本地策略选择是否执行s109,考虑到效率,优选方案为不执行并结束本次鉴别过程。
85.s110、aac利用消息加密密钥解密所述encdata
req
得到nonce
reqpub
,利用nonce
reqpub
对第二鉴别结果信息密文解密得到第二鉴别结果信息,根据第二鉴别结果信息中的res
req
确定req的身份鉴别结果。
86.由于res
req
可以反映出req是否合法,因此aac可以根据第二鉴别结果信息中的res
req
确定req是否合法。
87.由上述技术方案可以看出,在对请求设备和鉴别接入控制器进行双向身份鉴别时,针对请求设备采用数字证书,鉴别接入控制器采用预共享密钥的鉴别方式的应用场景,
由鉴别接入控制信任的第一鉴别服务器利用与鉴别接入控制器约定的预共享密钥对鉴别接入控制器的身份鉴别码进行验证得到第一验证结果,由请求设备信任的第二鉴别服务器对请求设备的数字证书进行验证得到第二验证结果,请求设备和鉴别接入控制器分别获取对方实体所对应的验证结果,可以确定对方实体是否合法,实现鉴别接入控制器与请求设备之间的双向身份鉴别,为确保只有合法用户才能访问合法网络奠定基础。并且实体的私密信息如身份标识、鉴别结果信息等以密文形式传输,保障私密信息在传输过程中的安全性,实现实体的身份保护。
88.为保障鉴别结果的可靠性,aac可以生成消息完整性校验码。例如,s105的aacauth中还可以包括第一消息完整性校验码mactag
aac
,mactag
aac
是aac利用消息完整性校验密钥对包括aacauth中除mactag
aac
外的其他字段计算生成的;则在req确定aac的身份鉴别结果之前,req可以利用消息完整性校验密钥验证mactag
aac
,验证通过后再确定aac的身份鉴别结果。其中,req验证mactag
aac
时,应利用所述消息完整性校验密钥对包括aacauth中除mactag
aac
外的其他字段在本地计算生成mactag
aac
,并对比本地计算的mactag
aac
与接收到的aacauth中的mactag
aac
是否一致,若一致,则验证通过,若不一致,则验证不通过。
89.同样的,req也可以生成消息完整性校验码。例如,s109的reqauth中还可以包括第二消息完整性校验码mactag
req
,mactag
req
是req利用消息完整性校验密钥对包括reqauth中除mactag
req
外的其他字段计算生成的。相应的,在aac确定req的身份鉴别结果之前,aac可以利用消息完整性校验密钥验证mactag
req
,验证通过后再确定req的身份鉴别结果。其中,aac验证mactag
req
时,应利用所述消息完整性校验密钥对包括reqauth中除mactag
req
外的其他字段在本地计算生成mactag
req
,并对比本地计算的mactag
req
与接收到的reqauth中的mactag
req
是否一致,若一致,则验证通过,若不一致,则验证不通过。
90.需要说明的是,req和aac利用的消息完整性校验密钥的生成方式在下一实施例中介绍。
91.请参考图1,s101的reqinit中还可以包括req的数字签名sig
req
,sig
req
的签名数据包括reqinit中sig
req
之前的其他字段,则在aac确定req的身份鉴别结果之前,aac还要确定sig
req
是否验证通过,若确定sig
req
验证通过,则再根据所述第二鉴别结果信息中的res
req
确定req的身份鉴别结果。本技术中,将被签名的对象称为签名数据。其中,aac确定sig
req
是否验证通过包括以下方式:
92.一种实现方式为,当所述第二鉴别结果信息中还包括cert
req
时,aac利用所述第二鉴别结果信息中的cert
req
验证所述sig
req
,根据验证结果确定sig
req
是否验证通过。另一种实现方式为,as-req利用解密所述encpub
as_req
得到的cert
req
验证所述sig
req
,若验证通过,则继续执行后续操作,并向aac发送第一鉴别响应消息asveri,若验证不通过,则不会向aac发送第一鉴别响应消息asveri;因此,若aac能够接收到asveri,则aac确定所述sig
req
已验证通过。
93.需要说明的是,请求设备和/或鉴别接入控制器产生的随机数、身份标识等信息可以在身份鉴别过程交互的消息中进行传递。正常情况下,接收的消息中携带的随机数和/或身份标识与发送的消息中携带的随机数和/或身份标识应该相同,但在遇到网络抖动或攻击等情况时,可能造成消息中参数信息的丢失或篡改。因此在一些实施例中,还可以通过比较收发消息中的随机数和/或身份标识是否一致来保障鉴别结果的可靠性。
94.请参考图1,s102的aacveri中还可以包括aac的身份标识id
aac
和/或aac生成的第一随机数nonce
aac
,相应地,s103的asveri中还包括id
aac
和/或nonce
aac
;则在s105之前,aac可以对asveri中的id
aac
和aac自身的身份标识id
aac
(也就是aac通过aacveri发出去的id
aac
)的一致性进行验证,和/或,对asveri中的nonce
aac
和aac生成的nonce
aac
(也就是aac通过aacveri发出去的nonce
aac
)的一致性进行验证,若验证通过,则aac再执行s105。
95.在另一些实施例中,所述第一鉴别结果信息中还可以包括id
aac
,s105的aacauth中的encdata
aac
的加密数据还包括id
aac
,则在req确定aac的身份鉴别结果之前,req还要对所述第一鉴别结果信息中的id
aac
和解密encdata
aac
得到的id
aac
的一致性进行验证,若验证通过,则req再根据所述第一鉴别结果信息中的res
aac
确定aac的身份鉴别结果。
96.当然,为了保障鉴别结果的可靠性,req也可以对req生成的第二随机数nonce
req
和/或req的身份标识id
req
进行一致性验证。
97.请参考图1,在s101中,req的身份信息还可以包括id
req
,第一身份密钥还可以包括第三密钥nonce
reqid
,则第一身份信息密文encpub
as_req
的加密数据不仅包括cert
req
和nonce
reqpub
,还可以包括id
req
和nonce
reqid
。相应的,在生成第二鉴别结果信息密文时,还可以利用nonce
reqid
对包括id
req
在内的信息加密生成req的身份标识密文(简单的,req的身份标识密文可以为nonce
reqid
与id
req
进行异或运算生成的即id
req
⊕
nonce
reqid
),则s103的asveri中还包括req的身份标识密文,s105的aacauth中的encdata
aac
的加密数据还包括req的身份标识密文;相应地,在req确定aac的身份鉴别结果之前,req还需要根据自身的身份标识id
req
和所述nonce
reqid
对解密encdata
aac
得到的req的身份标识密文进行验证,具体验证包括:req利用所述nonce
reqid
对包括req自身的身份标识id
req
在内的信息加密生成req的身份标识密文,并将生成的req的身份标识密文与解密encdata
aac
得到的req的身份标识密文进行一致性验证;或者,req利用nonce
reqid
解密req的身份标识密文得到id
req
,将解密得到的id
req
与req自身的身份标识id
req
进行一致性验证;若验证通过,则req再根据第一鉴别结果信息中的res
aac
确定aac的身份鉴别结果。
98.当然,s101的reqinit中还可以包括nonce
req
,相应地,s102的aacveri和s103的asveri中还可以包括nonce
req
,s105的aacauth中的encdata
aac
的加密数据还包括nonce
req
。相应地,在req确定aac的身份鉴别结果之前,req需要将解密encdata
aac
得到的nonce
req
与req生成的nonce
req
的一致性进行验证,若验证通过,则req再根据第一鉴别结果信息中的res
aac
确定aac的身份鉴别结果。
99.在上述实施例中,aac的身份标识id
aac
、第一鉴别结果信息等是以明文形式传输的,考虑到aac敏感信息的安全性,还可以采用密文形式传输上述信息。
100.请参考图1,在一些实施例中,s102的aacveri中还可以包括第二身份信息密文encpub
as_aac
,所述encpub
as_aac
是aac利用加密证书的公钥对包括id
aac
和aac的第二身份密钥在内的信息加密生成的,第二身份密钥包括第四密钥nonce
aacpub
和第五密钥nonce
aacid
。相应的,s103的asveri中包括第一鉴别结果信息、sig
as_req1
、aac的身份标识密文、第二鉴别结果信息密文和mic
as_aac
。其中,第一鉴别结果信息以密文形式存在(例如用所述nonce
aacpub
对包括pub
aac
在内的信息加密生成的,简单的,可以为异或运算生成的即pub
aac
⊕
nonce
aacpub
);aac的身份标识密文是as-aac利用所述nonce
aacid
对包括所述id
aac
在内的信息加密生成的(简单的,可以为异或运算生成的即id
aac
⊕
nonce
aacid
)。
101.基于此,aac在接收到s103的asveri后,可以根据aac自身的身份标识id
aac
和所述第五密钥nonce
aacid
对aac的身份标识密文进行验证,具体验证包括:aac利用所述nonce
aacid
对包括aac自身的身份标识id
aac
在内的信息加密生成aac的身份标识密文,并将生成的aac的身份标识密文与接收到s103的asveri中的aac的身份标识密文进行一致性验证;或者,aac利用nonce
aacid
解密aac的身份标识密文得到id
aac
,并将解密得到的id
aac
与aac自身的身份标识id
aac
的一致性进行验证,验证通过后,再向req发送aacauth。其中,s105的aacauth中的encdata
aac
的加密数据还包括所述nonce
aacpub
;相应地,在req确定aac的身份鉴别结果之前,req可以利用解密encdata
aac
得到的nonce
aacpub
对第一鉴别结果信息解密得到第一验证结果res
aac
,再根据第一验证结果res
aac
确定aac的身份鉴别结果。
102.以上实施例中,req与aac使用的消息加密密钥可以是二者协商得到的也可以是预先共享的,因此本实施例还提供一种req和aac协商消息加密密钥的方法,参见图2,所述方法包括:
103.s201、aac向req发送密钥请求消息aacinit。
104.所述aacinit中包括aac的密钥交换参数keyinfo
aac
,keyinfo
aac
包括aac的临时公钥,其中,密钥交换是指如迪菲
·
赫尔曼(diffie-hellman,简称dh)等密钥交换算法。所述aacinit中还可以包括aac生成的第一随机数nonce
aac
。
105.所述aacinit中还可以包括security capabilities
aac
,security capabilities
aac
表示aac支持的安全能力参数信息,包括aac支持的身份鉴别套件(身份鉴别套件中包含一种或多种身份鉴别方法)、对称加密算法、完整性校验算法和/或密钥导出算法等,以供req选择使用的特定安全策略,则req可以根据security capabilities
aac
选择req使用的特定安全策略security capabilities
req
。security capabilities
req
表示req相应确定使用的身份鉴别方法、对称加密算法、完整性校验算法和/或密钥导出算法等。
106.s202、req根据包括req的密钥交换参数keyinfo
req
对应的临时私钥和keyinfo
aac
所包括的临时公钥进行密钥交换计算生成第一密钥,根据包括所述第一密钥在内的信息利用密钥导出算法计算消息加密密钥。
107.若s201的aacinit中还包括aac生成的nonce
aac
,则req可以根据包括keyinfo
req
对应的临时私钥和keyinfo
aac
所包括的临时公钥进行密钥交换计算生成第一密钥k1,将k1结合包括nonce
aac
和req生成的第二随机数nonce
req
在内的信息,利用协商的或预置的密钥导出算法计算消息加密密钥。协商的密钥导出算法可以是req根据aac发送的security capabilities
aac
而选择使用的密钥导出算法。其中,keyinfo
req
是req产生的密钥交换参数,包括req的临时公钥。keyinfo
req
对应的临时私钥是req产生的对应于req的临时公钥的临时私钥,即所述临时公钥和临时私钥是一对临时公私钥对。
108.s203、req向aac发送身份密文消息reqinit。
109.所述reqinit中包括keyinfo
req
,以便aac根据包括keyinfo
aac
对应的临时私钥和keyinfo
req
所包括的临时公钥在内的信息计算得到消息加密密钥。其中,keyinfo
aac
对应的临时私钥是aac产生的对应于aac的临时公钥的临时私钥,即所述临时公钥和临时私钥是一对临时公私钥对。
110.所述reqinit中还可以包括security capabilities
req
。所述reqinit中还可以包括nonce
req
,以便aac根据包括所述keyinfo
aac
对应的临时私钥、所述keyinfo
req
所包括的临
时公钥、所述nonce
aac
和所述nonce
req
在内的信息计算得到该消息加密密钥。
111.所述reqinit中还可以包括nonce
aac
,进而aac可以在计算消息加密密钥之前,对reqinit中的nonce
aac
和aac生成的nonce
aac
的一致性进行验证,以确保aac接收的reqinit是对aacinit的响应消息。
112.s204、aac根据包括keyinfo
aac
对应的临时私钥和keyinfo
req
所包括的临时公钥进行密钥交换计算生成所述第一密钥,根据包括所述第一密钥在内的信息利用所述密钥导出算法计算消息加密密钥。
113.若所述reqinit中还包括所述nonce
req
,则aac可以根据包括所述keyinfo
aac
对应的临时私钥和所述keyinfo
req
所包括的临时公钥进行密钥交换计算生成所述第一密钥k1,将k1结合包括所述nonce
aac
和所述nonce
req
在内的信息,利用协商的或预置的密钥导出算法计算该消息加密密钥。其中,协商的密钥导出算法可以是aac根据req发送的security capabilities
req
而选择使用的密钥导出算法。
114.需要说明的是,在图2实施例中,req和aac也可以生成消息完整性校验密钥。req和aac各自生成消息完整性校验密钥的实施方式与图2实施例中示例的req和aac各自生成消息加密密钥的实施方式相同。例如,aac可以通过图2实施例的方式利用密钥导出算法导出一串密钥数据,该密钥数据既可以作为消息加密密钥又可以作为消息完整性校验密钥,或者,将该密钥数据中的一部分密钥数据作为消息加密密钥,将另一部分密钥数据作为消息完整性校验密钥;aac也可以通过图2实施例的方式利用密钥导出算法分次导出两串相同或不同的密钥数据,一串作为消息加密密钥,一串作为消息完整性校验密钥。req可以通过图2实施例的方式利用密钥导出算法导出一串密钥数据,该密钥数据既可以作为消息加密密钥又可以作为消息完整性校验密钥,或者,将该密钥数据中的一部分密钥数据作为消息加密密钥,将另一部分密钥数据作为消息完整性校验密钥;req也可以通过图2实施例的方式利用密钥导出算法分次导出两串相同或不同的密钥数据,一串作为消息加密密钥,一串作为消息完整性校验密钥。
115.本技术实施例还提供了利用aac和req之间信息交互来确定本次鉴别过程所使用的第一鉴别服务器和/或第二鉴别服务器的方法:
116.请参考图2,aac在s201的aacinit中添加aac信任的至少一个鉴别服务器的身份标识id
as_aac
,则req可以根据所述id
as_aac
确定自身信任的至少一个鉴别服务器的身份标识id
as_req
。具体实现时,req从id
as_aac
中选取至少一个鉴别服务器且是自身信任的鉴别服务器的身份标识作为id
as_req
,若选取失败,则req将自身信任的至少一个鉴别服务器的身份标识作为id
as_req
(其中,选取成功对应非漫游情况,选取失败对应漫游情况),将该id
as_req
添加至s203的reqinit中发送给aac。进而,aac可以根据id
as_aac
和id
as_req
确定第一鉴别服务器,例如aac可以判断id
as_req
和id
as_aac
中是否存在至少一个相同的鉴别服务器的身份标识,若存在,即为非漫游情况,aac从上述至少一个req和aac共同信任的鉴别服务器的身份标识中,确定参与身份鉴别的第一鉴别服务器;若不存在,则为漫游情况,aac需要根据id
as_aac
确定参与身份鉴别的第一鉴别服务器as-aac,并将id
as_req
发送给as-aac,以便as-aac根据id
as_req
确定第二鉴别服务器as-req。
117.作为另一种实现方式,aac可以不必向req发送id
as_aac
,而由req将自身信任的至少一个鉴别服务器的身份标识id
as_req
添加至s203的reqinit中发送给aac。根据id
as_req
和aac
自身信任的至少一个鉴别服务器的身份标识id
as_aac
确定参与身份鉴别的第一鉴别服务器和/或第二鉴别服务器的具体实现方式如前一种实施方式。
118.由于req和aac信任的鉴别服务器可以相同也可以不同,当req和aac信任的鉴别服务器相同时,即为非漫游情况;当req和aac信任的鉴别服务器不同时,即为漫游的情况。下面结合非漫游和漫游的应用场景,对本技术实施例提供的身份鉴别方法进行介绍:(一)非漫游情况下,req身份保护的身份鉴别方法;(二)非漫游情况下,req和aac身份保护的身份鉴别方法;(三)漫游情况下,req身份保护的身份鉴别方法;(四)漫游情况下,req和aac身份保护的身份鉴别方法。
119.参见图3,为上述(一)情况下一种身份鉴别方法的实施例。其中,可以用as-aac表示(当然也可以用as-req表示)req和aac共同信任的鉴别服务器。在该实施例中,req和aac之间的消息加密密钥协商过程被并行地融合到了身份鉴别过程中,更便于工程实施。该身份鉴别方法包括:
120.s301、aac生成nonce
aac
和keyinfo
aac
,根据需要生成security capabilites
aac
。
121.s302、aac向req发送密钥请求消息aacinit。
122.所述aacinit中包括nonce
aac
、keyinfo
aac
和security capabilites
aac
。其中,security capabilites
aac
为可选字段,表示aac支持的安全能力参数信息,包括aac支持的身份鉴别套件、对称加密算法和/或密钥导出算法等(下文同)。
123.s303、req接收到aacinit后,执行下述操作(若无特别说明或逻辑上的关系,本文中以(1)、(2)
……
编号的动作并不因为有编号而存在必然的先后顺序,全文同),包括:
124.(1)、生成nonce
req
和keyinfo
req
;
125.(2)、根据需要生成security capabilities
req
;
126.(3)、根据包括keyinfo
req
对应的临时私钥和keyinfo
aac
所包括的临时公钥进行密钥交换计算生成第一密钥k1,将k1结合nonce
aac
、nonce
req
及其他信息(req和aac采用的其他信息是相同的且可选的,譬如特定字符串等)利用协商的或预置的密钥导出算法计算消息加密密钥和消息完整性校验密钥;这一步可以移至在后续需要使用消息加密密钥、消息完整性校验密钥时再执行;
127.(4)、生成nonce
reqid
和nonce
reqpub
;
128.(5)、利用加密证书的公钥计算encpub
as_req
;
129.(6)、计算req的数字签名sig
req
。
130.s304、req向aac发送身份密文消息reqinit。
131.所述reqinit中包括nonce
aac
、nonce
req
、security capabilities
req
、keyinfo
req
、encpub
as_req
及sig
req
。其中,sig
req
的签名数据包括reqinit中sig
req
之前的其他字段,例如包括nonce
aac
、nonce
req
、security capabilities
req
、keyinfo
req
及encpub
as_req
;nonce
aac
应等于aacinit中的相应字段;encpub
as_req
的加密数据包括id
req
、cert
req
、nonce
reqid
和nonce
reqpub
;security capabilities
req
为可选字段,req是否生成security capabilities
req
取决于aac向req发送的aacinit中是否携带security capabilities
aac
。security capabilities
req
表示req根据security capabilites
aac
作出的特定安全策略的选择,即req确定使用的身份鉴别方法、对称加密算法和/或密钥导出算法等(下文同)。
132.s305、aac接收到reqinit,执行下述操作,包括:
133.(1)、检查reqinit中的nonce
aac
与aac生成的nonce
aac
是否一致,若不一致,则丢弃reqinit;
134.(2)、根据包括所述keyinfo
aac
对应的临时私钥和所述keyinfo
req
所包括的临时公钥进行密钥交换计算生成第一密钥k1,将k1结合nonce
aac
、nonce
req
及其他信息(aac和req采用的其他信息是相同的且可选的,譬如特定字符串等)利用协商的或预置的密钥导出算法计算消息加密密钥和消息完整性校验密钥;当然,这一步也可以移至在后续需要使用消息加密密钥、消息完整性校验密钥时再执行。
135.(3)、计算生成mic
aac
。
136.s306、aac向as-aac发送第一鉴别请求消息aacveri。
137.所述aacveri中包括encpub
as_req
、nonce
req
、id
aac
、nonce
aac
及mic
aac
。其中,encpub
as_req
、nonce
req
应分别等于reqinit中的相应字段;id
aac
、nonce
aac
是aac的身份标识id
aac
和aac产生的nonce
aac
;mic
aac
是aac利用与as-aac的预共享密钥k
aac_as
,采用与as-aac约定的杂凑算法对aacveri中mic
aac
之前的其他字段在内的信息计算得到的杂凑值。例如,当aacveri中依次包括encpub
as_req
、nonce
req
、id
aac
、nonce
aac
及mic
aac
时,aac利用所述k
aac_as
,采用所述杂凑算法对包括encpub
as_req
、nonce
req
、id
aac
和nonce
aac
在内的信息计算得到mic
aac
。
138.s307、as-aac接收到aacveri后,执行下述操作,包括:
139.(1)、验证mic
aac
得到res
aac
,根据包括res
aac
和id
aac
在内的信息生成pub
aac
;
140.其中,as-aac根据aacveri中的id
aac
确定与aac的预共享密钥k
aac_as
和杂凑算法,利用所述k
aac_as
,采用所述杂凑算法对aacveri中mic
aac
之前的其他字段在本地计算出mic
aac
,并将其和接收到的mic
aac
进行比较,若相同,则mic
aac
验证通过,as-aac判定aac的身份鉴别结果为合法,若不同,则mic
aac
验证不通过,as-aac根据本地策略执行如下操作,包括:丢弃aacveri,或者判定aac的身份鉴别结果为不合法等。
141.(2)、利用加密证书对应的私钥解密encpub
as_req
得到id
req
、cert
req
、nonce
reqid
和nonce
reqpub
,验证cert
req
的合法性得到res
req
,根据包括res
req
和cert
req
在内的信息生成pub
req
;
142.(3)、利用nonce
reqid
对id
req
进行异或运算得到id
req
⊕
nonce
reqid
,利用nonce
reqpub
对pub
req
进行异或运算得到pub
req
⊕
nonce
reqpub
;
143.(4)、计算第一数字签名sig
as_aac1
,计算as-aac的第一消息鉴别码mic
as_aac
。
144.s308、as-aac向aac发送第一鉴别响应消息asveri。
145.所述asveri中包括id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
、sig
as_aac1
、id
aac
、nonce
aac
、pub
req
⊕
nonce
reqpub
及mic
as_aac
。其中,id
req
、nonce
req
、id
aac
、nonce
aac
应分别等于aacveri中的相应字段;sig
as_aac1
的签名数据包括id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
;mic
as_aac
是as-aac利用所述k
aac_as
,采用与aac约定的杂凑算法对包括id
aac
、nonce
aac
和pub
req
⊕
nonce
reqpub
在内的信息计算生成的。
146.s309、aac接收到asveri后,执行下述操作,包括:
147.(1)、检查asveri中的id
aac
、nonce
aac
是否分别与aac自身的身份标识id
aac
、aac生成的nonce
aac
相同;若不同,则丢弃asveri;
148.(2)、验证mic
as_aac
;若验证不通过,则丢弃asveri;
149.其中,aac利用所述k
aac_as
,采用与as-aac约定的杂凑算法对包括id
aac
、nonce
aac
和
pub
req
⊕
nonce
reqpub
在内的信息在本地计算出mic
as_aac
,并将其与接收到的mic
as_aac
进行比较,若相同,则mic
as_aac
验证通过,若不同,则mic
as_aac
验证不通过。
150.(3)、利用消息加密密钥计算身份鉴别结果信息密文encdata
aac
;
151.(4)、计算第一消息完整性校验码mactag
aac
。
152.s310、aac向req发送第三鉴别响应消息aacauth。
153.所述aacauth中包括nonce
aac
、nonce
req
、encdata
aac
和mactag
aac
。其中,nonce
req
和nonce
aac
为可选字段,且分别等于reqinit中的nonce
req
和aac生成的nonce
aac
。encdata
aac
的加密数据包括id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
、sig
as_aac1
和id
aac
,且id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
、sig
as_aac1
来源于asveri,id
aac
应等于aac自身的身份标识id
aac
。mactag
aac
的计算过程为:利用消息完整性校验密钥采用完整性校验算法对包括aacauth中除mactag
aac
外的其他字段在内的信息计算生成mactag
aac
。
154.s311、req接收到aacauth后,执行下述操作,包括:
155.(1)、若aacauth中携带nonce
req
和/或nonce
aac
,则检查nonce
req
是否与req生成的nonce
req
相同,和/或,检查nonce
aac
是否与aacinit中的nonce
aac
相同;
156.(2)、验证mactag
aac
;
157.验证过程为:利用消息完整性校验密钥采用完整性校验算法对包括aacauth中除mactag
aac
外的其他字段在内的信息在本地计算mactag
aac
(该计算方式与aac计算mactag
aac
的方式相同),将计算的mactag
aac
与接收到的mactag
aac
比较。
158.(3)、利用消息加密密钥解密encdata
aac
得到id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
、sig
as_aac1
和id
aac
;
159.(4)、利用nonce
reqid
对id
req
⊕
nonce
reqid
进行异或运算恢复id
req
,检查id
req
、nonce
req
是否分别与req自身的身份标识id
req
、req生成的nonce
req
相同;
160.(5)、检查pub
aac
中的id
aac
和解密得到的id
aac
是否一致;
161.(6)、利用as-aac的公钥验证sig
as_aac1
;
162.(7)、若上述检查与验证中任一步不通过,则立即丢弃aacauth;若上述检查和验证均通过后,根据pub
aac
中的res
aac
确定aac的身份鉴别结果;若aac为不合法,则结束本次鉴别过程;
163.(8)、利用消息加密密钥计算第二密钥密文encdata
req
;
164.(9)、计算第二消息完整性校验码mactag
req
。
165.s312、req向aac发送第四鉴别响应消息reqauth。
166.所述reqauth中包括nonce
aac
、nonce
req
、encdata
req
及mactag
req
。其中,nonce
req
和nonce
aac
为可选字段,且应分别等于req生成的nonce
req
和aacinit中的nonce
aac
;encdata
req
的加密数据包括nonce
reqpub
。mactag
req
的计算过程为:利用消息完整性校验密钥采用完整性校验算法对包括reqauth中除mactag
req
外的其他字段在内的信息计算生成mactag
req
。
167.s313、aac接收到reqauth后,执行下述操作,包括:
168.(1)、若reqauth中携带nonce
req
和/或nonce
aac
,则检查nonce
req
是否与reqinit中的nonce
req
相同,和/或,检查nonce
aac
是否与aac生成的nonce
aac
相同;
169.(2)、验证mactag
req
;
170.验证过程为:利用消息完整性校验密钥采用完整性校验算法对包括reqauth中除
capabilities
req
取决于aac向req发送的aacinit中是否携带security capabilities
aac
。
190.s405、aac接收到reqinit后,执行如下操作,包括:
191.(1)、检查reqinit中的nonce
aac
与aac生成的nonce
aac
是否一致,若不一致,则丢弃reqinit;
192.(2)、根据包括所述keyinfo
aac
对应的临时私钥和所述keyinfo
req
所包括的临时公钥进行密钥交换计算生成第一密钥k1,将k1结合nonce
aac
、nonce
req
及其他信息(aac和req采用的其他信息是相同的且可选的,譬如特定字符串等)利用协商的或预置的密钥导出算法计算消息加密密钥和消息完整性校验密钥;当然,这一步也可以移至在后续需要使用消息加密密钥、消息完整性校验密钥时再执行。
193.(3)、生成nonce
aacpub
和nonce
aacid
;
194.(4)、利用加密证书的公钥计算生成encpub
as_aac
;
195.(5)、计算生成mic
aac
。
196.s406、aac向as-aac发送第一鉴别请求消息aacveri。
197.所述aacveri中包括encpub
as_req
、nonce
req
、encpub
as_aac
、nonce
aac
及mic
aac
。其中,nonce
req
应等于reqinit中的相应字段,nonce
aac
应等于aac生成的nonce
aac
。encpub
as_aac
是aac利用加密证书的公钥对包括id
aac
、nonce
aacid
、nonce
aacpub
在内的信息加密生成的;mic
aac
是aac利用与as-aac的预共享密钥k
aac_as
,采用与as-aac约定的杂凑算法对aacveri中mic
aac
之前的其他字段计算的杂凑值。
198.s407、as-aac接收到aacveri后,执行下述操作,包括:
199.(1)、利用加密证书对应的私钥解密encpub
as_aac
得到id
aac
、nonce
aacid
和nonce
aacpub
;
200.(2)、验证mic
aac
得到res
aac
,根据包括res
aac
和id
aac
在内的信息生成pub
aac
;
201.其中,as-aac根据id
aac
确定与aac的预共享密钥k
aac_as
和杂凑算法,利用所述k
aac_as
,采用所述杂凑算法对所述aacveri中mic
aac
之前的其他字段在本地计算出mic
aac
,并将其和接收到的mic
aac
进行比较,若相同,则mic
aac
验证通过,as-aac判定aac的身份鉴别结果为合法,若不同,则mic
aac
验证不通过,as-aac根据本地策略执行如下操作,包括:丢弃aacveri,或者判定aac的身份鉴别结果为不合法等。
202.(3)、利用加密证书对应的私钥解密encpub
as_req
得到id
req
、cert
req
、nonce
reqid
和nonce
reqpub
;
203.(4)、验证cert
req
的合法性得到res
req
,根据包括res
req
和cert
req
在内的信息生成pub
req
;
204.(5)、利用nonce
reqid
对id
req
进行异或运算得到req的身份标识密文id
req
⊕
nonce
reqid
,利用nonce
aacid
对id
aac
进行异或运算得到aac的身份标识密文id
aac
⊕
nonce
aacid
,利用nonce
aacpub
对pub
aac
进行异或运算得到pub
aac
⊕
nonce
aacpub
,利用nonce
reqpub
对pub
req
进行异或运算得到pub
req
⊕
nonce
reqpub
;
205.(6)、计算第一数字签名sig
as_aac1
和as-aac的第一消息鉴别码mic
as_aac
。
206.s408、as-aac向aac发送第一鉴别响应消息asveri。
207.所述asveri中包括id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
⊕
nonce
aacpub
、sig
as_aac1
、id
aac
⊕
nonce
aacid
、nonce
aac
、pub
req
⊕
nonce
reqpub
和mic
as_aac
。其中,id
req
、nonce
req
、id
aac
、nonce
aac
应分别等于aacveri中的相应字段。sig
as_aac1
的签名数据包括id
req
⊕
nonce
reqid
、nonce
req
和
pub
aac
⊕
nonce
aacpub
;mic
as_aac
是as-aac利用所述k
aac_as
,采用与aac约定的杂凑算法对包括id
aac
⊕
nonce
aacid
、nonce
aac
和pub
req
⊕
nonce
reqpub
在内的信息计算生成的。
208.s409、aac接收到asveri后,执行下述操作,包括:
209.(1)、利用nonce
aacid
对id
aac
⊕
nonce
aacid
进行异或运算恢复id
aac
,检查id
aac
、nonce
aac
是否分别与aac自身的身份标识id
aac
、aac生成的nonce
aac
相同;若不同,则丢弃asveri;
210.(2)、验证mic
as_aac
;若验证不通过,则丢弃asveri;
211.其中,aac利用所述k
aac_as
,采用与as-aac约定的杂凑算法对包括id
aac
⊕
nonce
aacid
、nonce
aac
和pub
req
⊕
nonce
reqpub
在内的信息在本地计算出mic
as_aac
,并将其与接收到的mic
as_aac
进行比较,若相同,则mic
as_aac
验证通过,若不同,则mic
as_aac
验证不通过;
212.(3)、利用消息加密密钥计算生成encdata
aac
;
213.(4)、计算生成mactag
aac
。
214.s410、aac向req发送第三鉴别响应消息aacauth。
215.所述aacauth中包括nonce
aac
、nonce
req
、encdata
aac
和mactag
aac
。其中,nonce
req
和nonce
aac
为可选字段,且应分别等于reqinit中nonce
req
、aac生成的nonce
aac
。encdata
aac
的加密数据包括id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
⊕
nonce
aacpub
、sig
as_aac1
、nonce
aacpub
和id
aac
,其中,id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
⊕
nonce
aacpub
、sig
as_aac1
来源于asveri;mactag
aac
的计算过程如图3实施例中相关描述。
216.s411、req接收到aacauth后,执行下述操作,包括:
217.(1)、若aacauth中存在nonce
req
和/或nonce
aac
,则检查nonce
req
是否与req生成的nonce
req
相同,和/或,检查nonce
aac
是否与aacinit中的nonce
aac
相同;
218.(2)、验证mactag
aac
;验证过程如图3实施例中相关描述;
219.(3)、利用消息加密密钥解密encdata
aac
得到id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
⊕
nonce
aacpub
、sig
as_aac1
、nonce
aacpub
和id
aac
;
220.(4)、利用nonce
reqid
对id
req
⊕
nonce
reqid
进行异或运算恢复id
req
,利用nonce
aacpub
对pub
aac
⊕
nonce
aacpub
进行异或运算恢复pub
aac
;
221.(5)、检查id
req
、nonce
req
是否分别与req自身的身份标识id
req
、req生成的nonce
req
是否相同;
222.(6)、检查pub
aac
中的id
aac
是否与解密得到的id
aac
一致;
223.(7)、利用as-aac的公钥验证sig
as_aac1
;
224.(8)、若上述检查与验证中任一步不通过,则立即丢弃aacauth;若上述检查和验证均通过后,根据pub
aac
中的res
aac
确定aac的身份鉴别结果;若确定aac为不合法,则结束本次鉴别过程;
225.(9)、利用消息加密密钥计算生成encdata
req
;
226.(10)、计算生成mactag
req
。
227.s412、req向aac发送第四鉴别响应消息reqauth。
228.所述reqauth中包括nonce
aac
、nonce
req
、encdata
req
和mactag
req
。其中,nonce
req
和nonce
aac
为可选字段,且应分别等于req生成的nonce
req
、aacinit中的nonce
aac
。encdata
req
的加密数据包括nonce
reqpub
。mactag
req
的计算过程如图3实施例中相关描述。
capabilities
req
、keyinfo
req
、id
as_req
及encpub
as_req
;encpub
as_req
的加密数据包括id
req
、cert
req
、nonce
reqid
和nonce
reqpub
。security capabilities
req
和id
as_req
为可选字段,且id
as_req
表示req信任的至少一个鉴别服务器的身份标识,当aacinit中存在id
as_aac
时,req尽量从其信任的鉴别服务器中选择至少一个与id
as_aac
中相同的鉴别服务器作为id
as_req
,若选择失败,则将自身信任的至少一个鉴别服务器作为id
as_req
;当aacinit中不存在id
as_aac
时,req将自身信任的至少一个鉴别服务器作为id
as_req
(下文同)。
250.s505、aac接收到reqinit后,执行下述操作,包括:
251.(1)、检查reqinit中的nonce
aac
与aac生成的nonce
aac
是否一致,若不一致,则丢弃reqinit;
252.(2)、根据包括所述keyinfo
aac
对应的临时私钥和所述keyinfo
req
所包括的临时公钥进行密钥交换计算生成第一密钥k1,将k1结合nonce
aac
、nonce
req
及其他信息(aac和req采用的其他信息是相同的且可选的,譬如特定字符串等)利用协商的或预置的密钥导出算法计算消息加密密钥和消息完整性校验密钥;
253.(3)、计算生成mic
aac
;
254.(4)、若reqinit中携带id
as_req
且aacinit中携带id
as_aac
,则aac判断id
as_req
和id
as_aac
是否存在至少一个相同的鉴别服务器的身份标识,若存在,即为非漫游情况,aac从上述至少一个req和aac共同信任的鉴别服务器的身份标识中,确定参与身份鉴别的第一鉴别服务器;若不存在,则为漫游情况,aac需要根据id
as_aac
确定参与身份鉴别的第一鉴别服务器as-aac,并将id
as_req
发送给as-aac,以便as-aac根据id
as_req
确定第二鉴别服务器as-req;或者,
255.若reqinit中携带id
as_req
但aacinit中不携带id
as_aac
,则aac判断id
as_req
和aac所信任的鉴别服务器是否存在至少一个相同的鉴别服务器的身份标识,若存在,即为非漫游情况,aac从上述至少一个req和aac共同信任的鉴别服务器的身份标识中,确定参与身份鉴别的第一鉴别服务器;若不存在,则为漫游情况,aac需要根据自身信任的鉴别服务器确定参与身份鉴别的第一鉴别服务器as-aac,并将id
as_req
发送给as-aac,以便as-aac根据id
as_req
确定第二鉴别服务器as-req;
256.需要说明的是,此实施例判断出的结果应为漫游情况。
257.s506、aac向as-aac发送第一鉴别请求消息aacveri。
258.所述aacveri中包括nonce
aac
、nonce
req
、id
as_req
、encpub
as_req
、id
aac
及mic
aac
。其中,id
as_req
为可选字段;mic
aac
是aac利用与as-aac的预共享密钥k
aac_as
,采用与as-aac约定的杂凑算法对aacveri中mic
aac
之前的其他字段在内的信息计算得到的杂凑值。
259.s507、as-aac接收到aacveri后,执行下述操作,包括:
260.(1)、验证mic
aac
得到res
aac
,根据包括res
aac
和id
aac
在内的信息生成pub
aac
;验证mic
aac
的过程参见图3实施例中相关内容;
261.(2)、若aacveri中存在id
as_req
,则as-aac根据id
as_req
确定第二鉴别服务器as-req;若不存在,则表示as-aac已确知as-req;
262.(3)、计算生成第二数字签名sig
as_aac2
。
263.s508、as-aac向as-req发送第二鉴别请求消息as-aacveri。
264.所述as-aacveri中包括nonce
aac
、nonce
req
、encpub
as_req
、id
aac
、pub
aac
和sig
as_aac2
。
其中,nonce
aac
、nonce
req
、encpub
as_req
、id
aac
应分别等于aacveri中的相应字段;sig
as_aac2
的签名数据包括as-aacveri中sig
as_aac2
之前的其他字段。
265.s509、as-req接收到as-aacveri后,利用as-aac的公钥验证sig
as_aac2
。
266.若验证通过,则执行s510。
267.s510、as-req向cs-dec发送第一解密请求消息as-reqreq。
268.所述as-reqreq中包括encpub
as_req
。
269.s511、cs-dec利用加密证书对应的私钥解密encpub
as_req
得到id
req
、cert
req
、nonce
reqid
和nonce
reqpub
。
270.s512、cs-dec向as-req发送第一解密响应消息cs-decrep。
271.所述cs-decrep中包括id
req
、cert
req
、nonce
reqid
和nonce
reqpub
。
272.s513、as-req接收到cs-decrep后,执行下述操作,包括:
273.(1)、验证cert
req
的合法性得到res
req
,根据包括res
req
和cert
req
在内的信息生成pub
req
;
274.(2)、利用nonce
reqid
对id
req
进行异或运算得到id
req
⊕
nonce
reqid
,利用nonce
reqpub
对pub
req
进行异或运算得到pub
req
⊕
nonce
reqpub
;
275.(3)、计算第一数字签名sig
as_req1
和第三数字签名sig
as_req3
。
276.s514、as-req向as-aac发送第二鉴别响应消息as-reqveri。
277.所述as-reqveri中包括id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
、sig
as_req1
、id
aac
、nonce
aac
、pub
req
⊕
nonce
reqpub
和sig
as_req3
。其中,id
req
、nonce
reqid
和nonce
reqpub
应分别等于cs-decrep中的相应字段;sig
as_req1
的签名数据包括id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
;sig
as_req3
的签名数据包括id
aac
、nonce
aac
、pub
req
⊕
nonce
reqpub
。
278.s515、as-aac接收到as-reqveri后,执行下述操作,包括:
279.(1)、利用as-req的公钥验证sig
as_req3
,若验证不通过,则丢弃as-reqveri;
280.(2)、计算as-aac的第一消息鉴别码mic
as_aac
。
281.s516、as-aac向aac发送第一鉴别响应消息asveri。
282.所述asveri中包括id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
、sig
as_req1
、id
aac
、nonce
aac
、pub
req
⊕
nonce
reqpub
和mic
as_aac
。其中,id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
、sig
as_req1
、id
aac
、nonce
aac
、pub
req
⊕
nonce
reqpub
应分别等于as-reqveri中的相应字段;mic
as_aac
是as-aac利用所述k
aac_as
,采用与aac约定的杂凑算法对包括id
aac
、nonce
aac
和pub
req
⊕
nonce
reqpub
在内的信息计算的杂凑值。
283.s517、aac接收到asveri后,执行下述操作,包括:
284.(1)、检查asveri中的id
aac
、nonce
aac
是否分别aac自身的身份标识id
aac
、aac生成的nonce
aac
相同;若不同,则丢弃asveri;
285.(2)、验证mic
as_aac
,若验证不通过,则丢弃asveri;验证过程参见图3实施例的相关内容;
286.(3)、利用消息加密密钥计算encdata
aac
;计算mactag
aac
。
287.s518、aac向req发送第三鉴别响应消息aacauth。
288.所述aacauth中包括nonce
aac
、nonce
req
、encdata
aac
和mactag
aac
。其中,nonce
req
、nonce
aac
为可选字段,应分别等于reqinit中的nonce
req
、aac生成的nonce
aac
;encdata
aac
是
aac利用消息加密密钥,采用对称加密算法对包括id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
、sig
as_req1
和id
aac
在内的加密数据加密生成的;mactag
aac
的计算过程参见图3实施例的相关内容。
289.s519、req接收到aacauth后,执行下述操作,包括:
290.(1)、若aacauth中存在nonce
req
和/或nonce
aac
,则检查nonce
req
是否与req生成的nonce
req
相同,和/或,检查nonce
aac
是否与aacinit中的nonce
aac
相同;
291.(2)、验证mactag
aac
;验证过程参见图3实施例的相关内容;
292.(3)、利用消息加密密钥解密encdata
aac
得到id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
、sig
as_req1
和id
aac
;
293.(4)、利用nonce
reqid
对id
req
⊕
nonce
reqid
进行异或运算恢复id
req
;
294.(5)、检查id
req
、nonce
req
是否分别与req自身的身份标识id
req
、req生成的nonce
req
相同;
295.(6)、检查解密得到的id
aac
和pub
aac
中的id
aac
是否一致;
296.(7)、利用as-req的公钥验证sig
s_req1
;
297.(8)、若上述检查与验证中任一步不通过,则立即丢弃aacauth;若上述检查和验证均通过后,根据pub
aac
中的res
aac
确定aac的身份鉴别结果;若aac为不合法,则结束本次鉴别过程;
298.(9)、利用消息加密密钥计算encdata
req
;
299.(10)、计算mactag
req
。
300.s520、req向aac发送第四鉴别响应消息reqauth。
301.所述reqauth中包括nonce
aac
、nonce
req
、encdata
req
和mactag
req
。其中,nonce
req
和nonce
aac
为可选字段,应分别等于req生成的nonce
req
和aacinit中的nonce
aac
;encdata
req
的加密数据包括nonce
reqpub
;mactag
req
的计算过程参见图3实施例的相关内容。
302.s521、aac接收到reqauth后执行下述操作,包括:
303.(1)、若reqauth中存在nonce
aac
和/或nonce
req
,则检查nonce
aac
是否与aac生成的nonce
aac
相同,和/或,检查nonce
req
是否与reqinit中的nonce
req
相同;
304.(2)、验证mactag
req
;验证过程参见图3实施例的相关内容;
305.(3)、利用消息加密密钥解密encdata
req
得到nonce
reqpub
;
306.(4)、利用nonce
reqpub
对pub
req
⊕
nonce
reqpub
进行异或运算恢复pub
req
;
307.(5)、利用pub
req
中的cert
req
验证sig
req
;
308.(6)、上述检查及验证均通过,则根据pub
req
中的res
req
确定req的身份鉴别结果;上述检查与验证中任一步不通过,则立即丢弃reqauth。
309.由此,在s519和s521分别实现漫游情况下对aac和对req的身份鉴别,即实现req和aac的双向身份鉴别,并且req的鉴别结果全程以密文传输,实现req的身份保护。
310.需要说明的是,(1)、s521中验证sig
req
的操作也可以改为在s513中先行执行,其中,sig
req
可以通过s506的aacveri及s508的as-aacveri传递至as-req,则在s513中,as-req还要利用cert
req
验证sig
req
,验证通过后再执行后续操作。此情形下,在s521中aac不再验证sig
req
,此时pub
req
中可以不包括cert
req
。(2)、s507、s508中的第二数字签名sig
as_aac2
可以替换为第二消息鉴别码mic
as_aac2
,其中,mic
as_aac2
是as-aac利用与as-req的预共享密钥,采用
与as-req约定的杂凑算法对包括as-aacveri中mic
as_aac2
之前的其他字段计算的杂凑值;则s509中as-req验证sig
as_aac2
替换为验证mic
as_aac2
。s513、s514中的第三数字签名sig
as_req3
可以替换为第三消息鉴别码mic
as_req3
,其中,mic
as_req3
是as-req利用与as-aac的预共享密钥,采用与as-aac约定的杂凑算法对包括as-reqveri中的id
aac
、nonce
aac
、pub
req
⊕
nonce
reqpub
在内的字段计算的杂凑值;则s515中as-aac验证sig
as_req3
替换为验证mic
as_req3
。
311.参见图6,为上述(四)情况下一种身份鉴别方法的实施例,在该实施例中,req和aac之间的消息加密密钥协商过程被并行地融合到了身份鉴别过程中,更便于工程实施。该身份鉴别方法包括:
312.s601、aac生成nonce
aac
和keyinfo
aac
,根据需要生成security capabilities
aac
。
313.s602、aac向req发送密钥请求消息aacinit。
314.所述aacinit中包括nonce
aac
、keyinfo
aac
、security capabilities
aac
和id
as_aac
。其中,security capabilities
aac
和id
as_aac
为可选字段。
315.s603、req接收到aacinit后,执行下述操作,包括:
316.(1)、生成nonce
req
、nonce
reqid
、nonce
reqpub
和keyinfo
req
;
317.(2)、根据需要生成id
as_req
和security capabilities
req
;
318.(3)、根据包括keyinfo
req
对应的临时私钥和keyinfo
aac
所包括的临时公钥进行密钥交换计算生成第一密钥k1,将k1结合nonce
aac
、nonce
req
及其他信息(req和aac采用的其他信息是相同的且可选的,譬如特定字符串等)利用协商的或预置的密钥导出算法计算消息加密密钥和消息完整性校验密钥;当然,本步骤也可以移至在后续需要使用消息加密密钥、消息完整性校验密钥时再执行;
319.(4)、利用加密证书的公钥计算encpub
as_req
;
320.(5)、计算req的数字签名sig
req
。
321.s604、req向aac发送身份密文消息reqinit。
322.所述reqinit中包括nonce
aac
、nonce
req
、security capabilities
req
、keyinfo
req
、id
as_req
、encpub
as_req
及sig
req
。其中,nonce
aac
应等于aacinit中的相应字段;security capabilities
req
和id
as_req
为可选字段;encpub
as_req
的加密数据包括id
req
、cert
req
、nonce
reqid
和nonce
reqpub
;sig
req
的签名数据包括reqinit中sig
req
之前的其他字段,例如包括nonce
aac
、nonce
req
、security capabilities
req
、keyinfo
req
、id
as_req
及encpub
as_req
。
323.s605、aac接收到reqinit后,执行下述操作,包括:
324.(1)、检查reqinit中的nonce
aac
与aac生成的nonce
aac
是否一致,若不一致,则丢弃reqinit;
325.(2)、根据包括所述keyinfo
aac
对应的临时私钥和所述keyinfo
req
所包括的临时公钥进行密钥交换计算生成第一密钥k1,将k1结合nonce
aac
、nonce
req
及其他信息(aac和req采用的其他信息是相同的且可选的,譬如特定字符串等)利用协商的或预置的密钥导出算法计算消息加密密钥和消息完整性校验密钥;
326.(3)、利用加密证书的公钥计算encpub
as_aac
;
327.(4)、计算生成mic
aac
;
328.(5)、确定参与身份鉴别的as-aac的过程同图5实施例相关内容。
329.s606、aac向as-aac发送第一鉴别请求消息aacveri。
330.所述aacveri中包括reqinit、encpub
as_aac
、nonce
aac
和mic
aac
。其中,encpub
as_aac
是aac利用加密证书的公钥对包括id
aac
、nonce
aacid
、nonce
aacpub
在内的信息加密生成的;mic
aac
是aac利用与as-aac的预共享密钥k
aac_as
,采用与as-aac约定的杂凑算法对aacveri中mic
aac
之前的其他字段计算的杂凑值。
331.s607、as-aac向cs-dec发送第二解密请求消息as-aacreq。
332.所述as-aacreq中包括encpub
as_aac
。
333.s608、cs-dec利用加密证书对应的私钥解密encpub
as_aac
得到id
aac
、nonce
aacpub
和nonce
aacid
。
334.s609、cs-dec向as-aac发送第二解密响应消息cs-decrep。
335.所述cs-decrep中包括id
aac
、nonce
aacpub
和nonce
aacid
。
336.s610、as-aac接收到cs-decrep后,执行下述操作,包括:
337.(1)、验证mic
aac
得到res
aac
,根据包括res
aac
和id
aac
在内的信息生成pub
aac
;验证过程参见图4实施例中相关内容;
338.(2)、利用nonce
aacid
对id
aac
进行异或运算得到id
aac
⊕
nonce
aacid
,利用nonce
aacpub
对pub
aac
进行异或运算得到pub
aac
⊕
nonce
aacpub
,
339.(3)、计算第二数字签名sig
as_aac2
。
340.s611、as-aac向as-req发送第二鉴别请求消息as-aacveri。
341.所述as-aacveri中包括reqinit、id
aac
⊕
nonce
aacid
、pub
aac
⊕
nonce
aacpub
和sig
as_aac2
。其中,sig
as_aac2
的签名数据包括as-aacveri中sig
as_aac2
之前的其他字段。
342.s612、as-req接收到as-aacveri后,利用as-aac的公钥验证sig
as_aac2
。
343.若验证通过,则执行s613。
344.s613、as-req向cs-dec发送第一解密请求消息as-reqreq。
345.所述as-reqreq中包括encpub
as_req
。
346.s614、cs-dec利用加密证书对应的私钥解密encpub
as_req
得到id
req
、cert
req
、nonce
reqid
和nonce
reqpub
。
347.s615、cs-dec向as-req发送第一解密响应消息cs-decrep。
348.所述cs-decrep中包括id
req
、cert
req
、nonce
reqid
和nonce
reqpub
。
349.s616、as-req接收到cs-decrep后,执行下述操作,包括:
350.(1)、利用cert
req
验证sig
req
,若验证不通过,则丢弃cs-decrep;
351.(2)、验证cert
req
的合法性得到res
req
,根据包括res
req
在内的信息生成pub
req
;
352.(3)、利用nonce
reqid
对id
req
进行异或运算得到id
req
⊕
nonce
reqid
,利用nonce
reqpub
对pub
req
进行异或运算得到pub
req
⊕
nonce
reqpub
;
353.(4)、计算生成第一数字签名sig
as_req1
和第三数字签名sig
as_req3
。
354.s617、as-req向as-aac发送第二鉴别响应消息as-reqveri。
355.所述as-reqveri包括id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
⊕
nonce
aacpub
、sig
as_req1
、id
aac
⊕
nonce
aacid
、nonce
aac
、pub
req
⊕
nonce
reqpub
和sig
as_req3
,其中,sig
as_req1
的签名数据包括id
req
⊕
nonce
reqid
、nonce
req
和pub
aac
⊕
nonce
aacpub
,sig
as_req3
的签名数据包括id
aac
⊕
nonce
aacid
、nonce
aac
和pub
req
⊕
nonce
reqpub
。
356.s618、as-aac接收到as-reqveri后,执行下述操作,包括:
357.(1)、利用as-req的公钥验证sig
as_req3
;若验证不通过,则丢弃as-reqveri;
358.(2)、计算as-aac的第一消息鉴别码mic
as_aac
。
359.s619、as-aac向aac发送第一鉴别响应消息asveri。
360.所述asveri中包括id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
⊕
nonce
aacpub
、sig
as_req1
、id
aac
⊕
nonce
aacid
、nonce
aac
、pub
req
⊕
nonce
reqpub
和mic
as_aac
。其中,id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
⊕
nonce
aacpub
、sig
as_req1
、id
aac
⊕
nonce
aacid
、nonce
aac
、pub
req
⊕
nonce
reqpub
应分别等于as-reqveri中的相应字段;mic
as_aac
是as-aac利用所述k
aac_as
,采用与aac约定的杂凑算法对包括id
aac
⊕
nonce
aacid
、nonce
aac
和pub
req
⊕
nonce
reqpub
在内的信息计算的杂凑值。
361.s620、aac接收到asveri后,执行下述操作,包括:
362.(1)、利用nonce
aacid
对id
aac
⊕
nonce
aacid
进行异或运算恢复id
aac
,检查id
aac
、nonce
aac
是否分别与aac自身的身份标识id
aac
、aac生成的nonce
aac
相同;若不同,则丢弃asveri;
363.(2)、验证mic
as_aac
;若验证不通过,则丢弃asveri;验证过程参见图4实施例中的相关内容;
364.(3)、利用消息加密密钥计算encdata
aac
;
365.(4)、计算mactag
aac
。
366.s621、aac向req发送第三鉴别响应消息aacauth。
367.所述aacauth中包括nonce
aac
、nonce
req
、encdata
aac
和mactag
aac
。其中,nonce
req
和nonce
aac
为可选字段,且应分别等于reqinit中的nonce
req
和aac生成的nonce
aac
;encdata
aac
是aac利用消息加密密钥,采用对称加密算法对包括id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
⊕
nonce
aacpub
、nonce
aacpub
、sig
as_req1
和id
aac
在内的加密数据加密生成的;mactag
aac
的计算方式如图3实施例中相关描述。
368.s622、req接收到aacauth后,执行下述操作,包括:
369.(1)、若aacauth中存在nonce
req
和/或nonce
aac
,则检查nonce
req
是否与req生成的nonce
req
相同,和/或,检查nonce
aac
是否与aacinit中的nonce
aac
相同;
370.(2)、验证mactag
aac
;验证过程如图3实施例中相关描述;
371.(3)、利用消息加密密钥解密encdata
aac
得到id
req
⊕
nonce
reqid
、nonce
req
、pub
aac
⊕
nonce
aacpub
、nonce
aacpub
、sig
as_req1
和id
aac
;
372.(4)、利用nonce
reqid
对id
req
⊕
nonce
reqid
进行异或运算恢复id
req
,利用nonce
aacpub
对pub
aac
⊕
nonce
aacpub
进行异或运算恢复pub
aac
;
373.(5)、检查id
req
、nonce
req
是否分别与req自身的身份标识id
req
、req生成的nonce
req
相同;
374.(6)、检查pub
aac
中的id
aac
是否与解密得到的id
aac
一致;
375.(7)、利用as-req的公钥验证sig
as_req1
;
376.(8)、上述检查与验证中任一步不通过,则立即丢弃aacauth;上述检查和验证均通过后,根据pub
aac
中的res
aac
确定aac的身份鉴别结果;若aac为不合法,则结束本次鉴别过程;
377.(9)、利用消息加密密钥计算生成encdata
req
;计算生成mactag
req
。
378.s623、req向aac发送第四鉴别响应消息reqauth。
379.所述reqauth中包括nonce
aac
、nonce
req
、encdata
req
和mactag
req
。其中,nonce
aac
和nonce
req
为可选字段,且应分别等于aacinit中的nonce
aac
和req生成的nonce
req
;encdata
req
的加密数据包括nonce
reqpub
;mactag
req
的计算过程如图3实施例中相关描述。
380.s624、aac接收到reqauth后,执行下述操作,包括:
381.(1)、若reqauth中存在nonce
aac
和/或nonce
req
,则检查nonce
aac
和aac生成的nonce
aac
是否相同,和/或,检查nonce
req
是否与reqinit中的nonce
req
相同;
382.(2)、验证mactag
req
;验证过程如图3实施例中相关描述;
383.(3)、利用消息加密密钥解密encdata
req
得到nonce
reqpub
;
384.(4)、利用nonce
reqpub
对pub
req
⊕
nonce
reqpub
进行异或运算恢复pub
req
;
385.(5)、上述检查及验证均通过,则根据pub
req
中的res
req
确定req的身份鉴别结果;上述检查与验证中任一步不通过,则立即丢弃reqauth。
386.由此,在s622和s624分别实现了漫游情况下对aac和对req的身份鉴别,即实现req和aac的双向身份鉴别,并且req和aac的鉴别结果全程以密文传输,实现了req和aac的身份保护。
387.需要说明的是,s610、s611中的第二数字签名sig
as_aac2
可以替换为第二消息鉴别码mic
as_aac2
,其中,mic
as_aac2
是as-aac利用与as-req的预共享密钥,采用与as-req约定的杂凑算法对包括as-aacveri中mic
as_aac2
之前的其他字段计算的杂凑值;则s612中as-req验证sig
as_aac2
替换为验证mic
as_aac2
。s616、s617中的第三数字签名sig
as_req3
可以替换为第三消息鉴别码mic
as_req3
,其中,mic
as_req3
是as-req利用与as-aac的预共享密钥,采用与as-aac约定的杂凑算法对包括as-reqveri中的id
aac
⊕
nonce
aacid
、nonce
aac
和pub
req
⊕
nonce
reqpub
在内的字段计算的杂凑值;则s618中as-aac验证sig
as_req3
替换为验证mic
as_req3
。
388.在上述各实施例中,每条消息还可以携带一个杂凑值hash
x_y
,该杂凑值hash
x_y
是该消息的发送方实体x利用杂凑算法对接收到的对端实体y发送的最新前序消息计算得到的,用于对端实体y来验证实体x是否接收到完整的最新前序消息。其中,hash
req_aac
表示req对接收到的aac发送的最新前序消息计算的杂凑值,hash
aac_req
表示aac对接收到的req发送的最新前序消息计算的杂凑值,hash
aac_as-aac
表示aac对接收到的as-aac发送的最新前序消息计算的杂凑值,hash
as-aac_aac
表示as-aac对接收到的aac发送的最新前序消息计算的杂凑值,hash
as-aac_as-req
表示as-aac对接收到的as-req发送的最新前序消息计算的杂凑值,hash
as-req_as-aac
表示as-req对接收到的as-aac发送的最新前序消息计算的杂凑值。若发送方实体x当前发送的消息为实体x和实体y之间交互的首条消息,意味着实体x未曾收到对端实体y发送的前序消息,则该条消息中hash
x_y
可以不存在或者无意义。
389.对应的,对端实体y接收到实体x发送的消息后,若该条消息中包含hash
x_y
,则当实体y未曾向实体x发送过前序消息时,实体y忽略hash
x_y
;当实体y曾向实体x发送过前序消息时,实体y利用杂凑算法对之前向实体x发送的最新前序消息在本地计算杂凑值,并与接收到的消息中携带的杂凑值hash
x_y
比较,若一致,则执行后续步骤,否则丢弃或者结束本次鉴别过程。
390.本发明中,对实体x而言,对端实体y向实体x发送的前序消息指的是:实体x向对端实体y发送消息m之前,接收过的对端实体y向实体x发送的消息;对端实体y向实体x发送的最新前序消息指的是:实体x向对端实体y发送消息m之前,接收的对端实体y向实体x发送的
最新一条消息。若实体x向其对端实体y发送的消息m是实体x和实体y之间交互的第一条消息,则实体x向其对端实体y发送消息m之前,不存在对端实体y向实体x发送的前序消息。
391.上述图3至图6所对应实施例中的可选字段和可选操作,在说明书附图的图3至图6中用“*”表示。以上所有实施例涉及的消息中所包括的各个内容不限定顺序,并且在没有特别说明的情况下,不限定消息接收方收到消息后对相关消息的操作顺序以及对消息中所包括的内容进行处理的顺序。
392.基于图1至图6所对应的方法实施例,参见图7,本技术实施例还提供了一种请求设备700,包括:
393.加密模块710,用于利用加密证书的公钥对包括所述请求设备的身份信息和所述请求设备的第一身份密钥在内的信息加密生成第一身份信息密文,所述请求设备的身份信息包括所述请求设备的数字证书,所述第一身份密钥包括第二密钥;
394.发送模块720,用于向鉴别接入控制器发送身份密文消息,所述身份密文消息包括所述第一身份信息密文;
395.接收模块730,用于接收所述鉴别接入控制器发送的第三鉴别响应消息,所述第三鉴别响应消息中包括身份鉴别结果信息密文,所述身份鉴别结果信息密文是所述鉴别接入控制器利用消息加密密钥对包括第一鉴别结果信息和第一数字签名在内的加密数据加密生成的;所述第一鉴别结果信息中包括对所述鉴别接入控制器的第一验证结果,所述第一数字签名是所述请求设备信任的第二鉴别服务器对包括所述第一鉴别结果信息在内的签名数据计算生成的数字签名;
396.解密模块740,用于利用所述消息加密密钥解密所述身份鉴别结果信息密文得到所述第一鉴别结果信息和所述第一数字签名;
397.验证模块750,用于利用所述第二鉴别服务器的公钥对所述第一数字签名进行验证,若验证通过,则确定模块760根据所述第一鉴别结果信息中的第一验证结果确定所述鉴别接入控制器的身份鉴别结果;当确定模块760确定所述鉴别接入控制器的身份鉴别结果为合法时,发送模块720向所述鉴别接入控制器发送第四鉴别响应消息;或者,
398.验证模块750用于利用所述第二鉴别服务器的公钥对所述第一数字签名进行验证,若验证通过,则发送模块720向所述鉴别接入控制器发送第四鉴别响应消息以及确定模块760根据所述第一鉴别结果信息中的第一验证结果确定所述鉴别接入控制器的身份鉴别结果;或者,
399.验证模块750用于利用所述第二鉴别服务器的公钥对所述第一数字签名进行验证;若所述第一数字签名验证通过,则确定模块760根据所述第一鉴别结果信息中的第一验证结果确定所述鉴别接入控制器的身份鉴别结果;发送模块720向所述鉴别接入控制器发送第四鉴别响应消息;
400.其中,所述第四鉴别响应消息包括第二密钥密文,所述第二密钥密文是加密模块710利用消息加密密钥对包括所述第二密钥在内的信息加密生成的。
401.可选的,接收模块730还用于:在发送模块720发送身份密文消息之前,接收所述鉴别接入控制器发送的密钥请求消息,所述密钥请求消息中包括所述鉴别接入控制器的密钥交换参数;所述请求设备还包括:
402.计算模块,用于根据包括所述请求设备的密钥交换参数对应的临时私钥和所述鉴
别接入控制器的密钥交换参数所包括的临时公钥进行密钥交换计算生成第一密钥,根据包括所述第一密钥在内的信息利用密钥导出算法计算所述消息加密密钥;
403.则所述身份密文消息中还包括所述请求设备的密钥交换参数。
404.可选的,所述密钥请求消息中还包括所述鉴别接入控制器生成的第一随机数;则所述计算模块具体用于:根据包括所述第一密钥、所述第一随机数和所述请求设备生成的第二随机数在内的信息计算所述消息加密密钥;对应的,所述身份密文消息中还包括所述第二随机数。
405.可选的,所述密钥请求消息中还包括所述鉴别接入控制器支持的安全能力参数信息;确定模块760还用于根据所述安全能力参数信息确定所述请求设备使用的特定安全策略;则所述身份密文消息中还包括所述特定安全策略。
406.可选的,所述密钥请求消息中还包括所述鉴别接入控制器信任的至少一个鉴别服务器的身份标识;则确定模块760还用于根据所述鉴别接入控制器信任的至少一个鉴别服务器的身份标识,确定所述请求设备信任的至少一个鉴别服务器的身份标识;则所述身份密文消息中还包括所述请求设备信任的至少一个鉴别服务器的身份标识。
407.可选的,发送模块720发送的身份密文消息中还包括所述请求设备信任的至少一个鉴别服务器的身份标识。
408.可选的,所述请求设备的身份信息还包括所述请求设备的身份标识;所述第一身份密钥还包括第三密钥;则所述第一鉴别响应消息中还包括所述请求设备的身份标识密文;所述请求设备的身份标识密文是利用所述第三密钥对包括所述请求设备的身份标识在内的信息加密生成的;
409.所述第三鉴别响应消息中的身份鉴别结果信息密文的加密数据还包括所述请求设备的身份标识密文;所述解密模块解密所述身份鉴别结果信息密文还得到所述请求设备的身份标识密文;
410.则在确定模块760确定所述鉴别接入控制器的身份鉴别结果之前,验证模块750还用于根据所述请求设备自身的身份标识和所述第三密钥对所述请求设备的身份标识密文进行验证。
411.可选的,接收模块730接收的第三鉴别响应消息中还包括第一消息完整性校验码;则在确定模块760确定所述鉴别接入控制器的身份鉴别结果之前,验证模块750还用于利用消息完整性校验密钥对所述第一消息完整性校验码进行验证;其中,所述消息完整性校验密钥与所述消息加密密钥的生成方式相同。
412.可选的,发送模块720发送的第四鉴别响应消息中还包括第二消息完整性校验码,所述第二消息完整性校验码是所述请求设备利用消息完整性校验密钥对包括所述第四鉴别响应消息中除所述第二消息完整性校验码外的其他字段计算生成的;其中,所述消息完整性校验密钥与所述消息加密密钥的生成方式相同。
413.可选的,所述第一鉴别结果信息是利用所述第四密钥对包括所述鉴别接入控制器的第一验证结果在内的信息加密生成的;所述第三鉴别响应消息中的身份鉴别结果信息密文的加密数据还包括所述第四密钥;
414.则解密模块740解密所述身份鉴别结果信息密文还得到所述第四密钥,解密模块740还用于利用所述第四密钥解密所述第一鉴别结果信息得到第一验证结果。
415.可选的,所述请求设备向所述鉴别接入控制器发送的消息还包括所述请求设备对接收到的所述鉴别接入控制器发送的最新前序消息计算的杂凑值。
416.参见图8,本技术实施例还提供了一种鉴别接入控制器800,包括:
417.接收模块810,用于接收请求设备发送的身份密文消息,所述身份密文消息包括第一身份信息密文;所述第一身份信息密文是所述请求设备利用加密证书的公钥对包括所述请求设备的身份信息和所述请求设备的第一身份密钥在内的信息加密生成的;所述请求设备的身份信息包括所述请求设备的数字证书;所述第一身份密钥包括第二密钥;
418.发送模块820,用于向所述鉴别接入控制器信任的第一鉴别服务器发送第一鉴别请求消息,所述第一鉴别请求消息中包括所述第一身份信息密文和所述鉴别接入控制器的身份鉴别码;所述鉴别接入控制器的身份鉴别码是所述鉴别接入控制器利用与所述第一鉴别服务器的预共享密钥,采用与所述第一鉴别服务器约定的密码算法对包括所述第一身份信息密文在内的信息计算生成的;
419.接收模块810还用于接收所述第一鉴别服务器发送的第一鉴别响应消息,所述第一鉴别响应消息包括第一鉴别结果信息、所述请求设备信任的第二鉴别服务器的第一数字签名、第二鉴别结果信息密文和所述第一鉴别服务器的第一消息鉴别码;所述第一鉴别结果信息中包括对所述鉴别接入控制器的第一验证结果,所述第一数字签名是所述第二鉴别服务器对包括所述第一鉴别结果信息在内的签名数据计算生成的数字签名,所述第二鉴别结果信息密文是利用所述第二密钥对包括第二鉴别结果信息在内的信息加密生成的,所述第二鉴别结果信息中包括对所述请求设备的数字证书的第二验证结果,所述第一鉴别服务器的第一消息鉴别码是所述第一鉴别服务器利用与所述鉴别接入控制器的预共享密钥,采用与所述鉴别接入控制器约定的密码算法对包括所述第二鉴别结果信息密文在内的信息计算生成的;
420.验证模块830,用于利用与所述第一鉴别服务器的预共享密钥,采用与所述第一鉴别服务器约定的密码算法验证所述第一鉴别服务器的第一消息鉴别码;
421.发送模块820,还用于若验证通过,向所述请求设备发送第三鉴别响应消息,所述第三鉴别响应消息中包括身份鉴别结果信息密文,所述身份鉴别结果信息密文是所述鉴别接入控制器利用消息加密密钥对包括第一鉴别结果信息和所述第一数字签名在内的加密数据加密生成的;
422.接收模块810,还用于接收所述请求设备发送的第四鉴别响应消息,所述第四鉴别响应消息包括第二密钥密文,所述第二密钥密文是利用所述消息加密密钥对包括所述第二密钥在内的信息加密生成的;
423.解密模块840,用于利用所述消息加密密钥解密所述第二密钥密文得到第二密钥,利用所述第二密钥对所述第二鉴别结果信息密文进行解密得到第二鉴别结果信息;
424.确定模块850,用于根据所述第二鉴别结果信息中的第二验证结果确定所述请求设备的身份鉴别结果。
425.可选的,发送模块820还用于:在接收所述身份密文消息之前,向所述请求设备发送密钥请求消息,所述密钥请求消息中包括所述鉴别接入控制器的密钥交换参数;则所述身份密文消息中还包括所述请求设备的密钥交换参数;所述鉴别接入控制器还包括:
426.计算模块,用于根据包括所述鉴别接入控制器的密钥交换参数对应的临时私钥和
所述请求设备的密钥交换参数所包括的临时公钥进行密钥交换计算生成第一密钥,根据包括所述第一密钥在内的信息利用密钥导出算法计算所述消息加密密钥。
427.可选的,所述密钥请求消息中还包括所述鉴别接入控制器生成的第一随机数;对应的,所述身份密文消息中还包括所述请求设备生成的第二随机数;所述计算模块具体用于:根据包括所述第一密钥、所述第一随机数和所述第二随机数在内的信息计算所述消息加密密钥。
428.可选的,所述身份密文消息中还包括所述第一随机数;在所述计算模块计算所述消息加密密钥之前,验证模块830还用于对所述身份密文消息中的第一随机数和所述鉴别接入控制器生成的第一随机数的一致性进行验证。
429.可选的,所述密钥请求消息中还包括所述鉴别接入控制器信任的至少一个鉴别服务器的身份标识;对应的,所述身份密文消息中还包括所述请求设备信任的至少一个鉴别服务器的身份标识;确定模块850还用于根据所述身份密文消息中所述请求设备信任的至少一个鉴别服务器的身份标识和所述密钥请求消息中所述鉴别接入控制器信任的至少一个鉴别服务器的身份标识,确定所述第一鉴别服务器。
430.可选的,所述身份密文消息中还包括所述请求设备信任的至少一个鉴别服务器的身份标识;确定模块850还用于根据所述请求设备信任的至少一个鉴别服务器的身份标识和所述鉴别接入控制器信任的鉴别服务器的身份标识,确定所述第一鉴别服务器。
431.可选的,所述第一鉴别请求消息中还包括所述鉴别接入控制器的身份标识和/或所述鉴别接入控制器生成的第一随机数;对应的,所述第一鉴别响应消息中还包括所述鉴别接入控制器的身份标识和/或所述第一随机数;则验证模块830还用于在发送模块820发送第三鉴别响应消息之前,对所述第一鉴别响应消息中的所述鉴别接入控制器的身份标识和所述鉴别接入控制器自身的身份标识的一致性进行验证;和/或,对所述第一鉴别响应消息中的所述第一随机数和所述鉴别接入控制器生成的第一随机数的一致性进行验证。
432.可选的,所述第一鉴别请求消息中还包括第二身份信息密文,所述第二身份信息密文是所述鉴别接入控制器利用加密证书对包括所述鉴别接入控制器的身份标识和所述鉴别接入控制器的第二身份密钥在内的信息加密生成的,所述第二身份密钥包括第四密钥和第五密钥;
433.相应的,所述第一鉴别响应消息中还包括所述鉴别接入控制器的身份标识密文;所述第一鉴别结果信息是利用所述第四密钥对包括所述鉴别接入控制器的第一验证结果在内的信息加密生成的;所述鉴别接入控制器的身份标识密文是利用所述第五密钥对包括所述鉴别接入控制器的身份标识在内的信息加密生成的;
434.验证模块830还用于:根据所述鉴别接入控制器自身的身份标识和所述第五密钥对所述鉴别接入控制器的身份标识密文进行验证;若验证通过,则发送模块820再向所述请求设备发送第三鉴别响应消息;其中,所述第三鉴别响应消息中的身份鉴别结果信息密文的加密数据还包括所述第四密钥。
435.可选的,发送模块820发送的所述第三鉴别响应消息中还包括第一消息完整性校验码,所述第一消息完整性校验码是所述鉴别接入控制器利用消息完整性校验密钥对包括所述第三鉴别响应消息中除所述第一消息完整性校验码外的其他字段计算生成的;其中,所述消息完整性校验密钥与所述消息加密密钥的生成方式相同。
436.可选的,接收模块810接收的所述第四鉴别响应消息中还包括第二消息完整性校验码;则在确定模块850确定所述请求设备的身份鉴别结果之前,验证模块830还用于利用消息完整性校验密钥验证所述第二消息完整性校验码;其中,所述消息完整性校验密钥与所述消息加密密钥的生成方式相同。
437.可选的,当所述身份密文消息中还包括所述请求设备的数字签名时,确定模块850还用于:在确定所述请求设备的身份鉴别结果之前,确定所述请求设备的数字签名是否验证通过,若确定所述请求设备的数字签名验证通过,则再根据所述第二鉴别结果信息中的第二验证结果确定所述请求设备的身份鉴别结果。
438.可选的,确定模块850通过以下方式确定所述请求设备的数字签名是否验证通过:
439.所述第二鉴别服务器利用所述请求设备的数字证书对所述请求设备的数字签名进行验证,若接收模块810接收到所述第一鉴别响应消息,则确定模块850确定所述请求设备的数字签名已验证通过;或者,
440.当所述第二鉴别结果信息中还包括所述请求设备的数字证书时,由验证模块830利用所述请求设备的数字证书对所述请求设备的数字签名进行验证,确定模块850根据验证结果确定所述请求设备的数字签名是否验证通过。
441.可选的,所述鉴别接入控制器向所述请求设备发送的消息还包括所述鉴别接入控制器对接收到的所述请求设备发送的最新前序消息计算的杂凑值;所述鉴别接入控制器向所述第一鉴别服务器发送的消息还包括所述鉴别接入控制器对接收到的所述第一鉴别服务器发送的最新前序消息计算的杂凑值。
442.参见图9,本技术实施例还提供了一种第一鉴别服务器900,包括:
443.接收模块910,用于接收鉴别接入控制器发送的第一鉴别请求消息,所述第一鉴别请求消息中包括第一身份信息密文和所述鉴别接入控制器的身份鉴别码,所述第一身份信息密文是请求设备利用加密证书的公钥对包括所述请求设备的身份信息和所述请求设备的第一身份密钥在内的信息加密生成的,所述请求设备的身份信息包括所述请求设备的数字证书,所述第一身份密钥包括第二密钥,所述鉴别接入控制器的身份鉴别码是所述鉴别接入控制器利用与所述第一鉴别服务器的预共享密钥,采用与所述第一鉴别服务器约定的密码算法对包括所述第一身份信息密文在内的信息计算生成的;
444.发送模块920,用于向所述鉴别接入控制器发送第一鉴别响应消息,所述第一鉴别响应消息包括第一鉴别结果信息、所述请求设备信任的第二鉴别服务器的第一数字签名、第二鉴别结果信息密文和所述第一鉴别服务器的第一消息鉴别码;所述第一鉴别结果信息中包括对所述鉴别接入控制器的第一验证结果,所述第一数字签名是所述第二鉴别服务器对包括所述第一鉴别结果信息在内的签名数据计算生成的数字签名,所述第二鉴别结果信息密文是利用所述第二密钥对包括第二鉴别结果信息在内的信息加密生成的,所述第二鉴别结果信息中包括对所述请求设备的数字证书的第二验证结果,所述第一鉴别服务器的第一消息鉴别码是所述第一鉴别服务器利用与所述鉴别接入控制器的预共享密钥,采用与所述鉴别接入控制器约定的密码算法对包括所述第二鉴别结果信息密文在内的信息计算生成的。
445.可选的,所述第一鉴别服务器900还包括:
446.第一验证模块,用于对所述鉴别接入控制器的身份鉴别码进行验证得到第一验证
结果,利用加密证书对应的私钥解密所述第一身份信息密文得到所述请求设备的数字证书和所述第二密钥,对所述请求设备的数字证书进行合法性验证得到第二验证结果;
447.第一生成模块,用于根据包括所述第一验证结果在内的信息生成所述第一鉴别结果信息,根据包括所述第二验证结果在内的信息生成所述第二鉴别结果信息,利用所述第二密钥对包括第二鉴别结果信息在内的信息加密生成第二鉴别结果信息密文,对包括所述第一鉴别结果信息在内的签名数据计算生成第一数字签名,对包括所述第二鉴别结果信息密文在内的信息计算生成第一鉴别服务器的第一消息鉴别码;
448.第二生成模块,用于根据包括所述第一鉴别结果信息、所述第一数字签名、所述第二鉴别结果信息密文和所述第一鉴别服务器的第一消息鉴别码在内的信息生成所述第一鉴别响应消息。
449.可选的,第一鉴别服务器900还包括:
450.第二验证模块,用于对所述鉴别接入控制器的身份鉴别码进行验证得到第一验证结果;
451.第三生成模块,用于根据包括所述第一验证结果在内的信息生成所述第一鉴别结果信息,对包括所述第一鉴别结果信息和所述第一身份信息密文在内的签名数据计算生成第二数字签名或对包括所述第一鉴别结果信息和所述第一身份信息密文在内的信息计算生成第二消息鉴别码;
452.所述发送模块,还用于向第二鉴别服务器发送第二鉴别请求消息,所述第二鉴别请求消息中包括所述第一鉴别结果信息、所述第一身份信息密文和所述第二数字签名或所述第二鉴别请求消息中包括所述第一鉴别结果信息、所述第一身份信息密文和所述第二消息鉴别码;
453.所述接收模块,还用于接收所述第二鉴别服务器发送的第二鉴别响应消息,所述第二鉴别响应消息中包括所述第一鉴别结果信息、第一数字签名、第二鉴别结果信息密文和第三数字签名或所述第二鉴别响应消息中包括所述第一鉴别结果信息、第一数字签名、第二鉴别结果信息密文和第三消息鉴别码;其中,所述第一数字签名是所述第二鉴别服务器对包括所述第一鉴别结果信息在内的签名数据计算生成的;所述第三数字签名是所述第二鉴别服务器对包括所述第二鉴别结果信息密文在内的签名数据计算生成的或所述第三消息鉴别码是所述第二鉴别服务器对包括所述第二鉴别结果信息密文在内的信息计算生成的;
454.第三验证模块,用于利用所述第二鉴别服务器的公钥验证所述第三数字签名或利用与所述第二鉴别服务器的预共享密钥验证所述第三消息鉴别码;
455.第四生成模块,用于若验证通过,则对包括所述第二鉴别结果信息密文在内的信息计算生成所述第一鉴别服务器的第一消息鉴别码,根据包括所述第一鉴别结果信息、所述第一数字签名、所述第二鉴别结果信息密文和所述第一鉴别服务器的第一消息鉴别码在内的信息生成所述第一鉴别响应消息。
456.可选的,所述第一鉴别服务器向所述鉴别接入控制器发送的消息还包括所述第一鉴别服务器对接收到的所述鉴别接入控制器发送的最新前序消息计算的杂凑值;所述第一鉴别服务器向所述第二鉴别服务器发送的消息还包括所述第一鉴别服务器对接收到的所述第二鉴别服务器发送的最新前序消息计算的杂凑值。
457.参见图10,本技术实施例还提供了一种第二鉴别服务器1000,包括:
458.接收模块1010,用于接收第一鉴别服务器发送的第二鉴别请求消息,所述第二鉴别请求消息中包括第一鉴别结果信息、第一身份信息密文和第二数字签名或所述第二鉴别请求消息中包括第一鉴别结果信息、第一身份信息密文和第二消息鉴别码;其中,所述第一身份信息密文是请求设备利用加密证书的公钥对包括所述请求设备的身份信息和所述请求设备的第一身份密钥在内的信息加密生成的,所述请求设备的身份信息包括所述请求设备的数字证书,所述第一身份密钥包括第二密钥;所述第二数字签名是所述第一鉴别服务器对包括所述第一鉴别结果信息和所述第一身份信息密文在内的签名数据计算生成的或所述第二消息鉴别码是所述第一鉴别服务器对包括所述第一鉴别结果信息和所述第一身份信息密文在内的信息计算生成的;
459.验证模块1020,用于利用所述第一鉴别服务器的公钥验证所述第二数字签名或利用与所述第一鉴别服务器的预共享密钥验证所述第二消息鉴别码,若验证通过,则利用加密证书对应的私钥解密所述第一身份信息密文得到所述请求设备的数字证书和所述第二密钥,对所述请求设备的数字证书进行合法性验证得到第二验证结果;
460.生成模块1030,用于根据包括所述第二验证结果在内的信息生成所述第二鉴别结果信息,利用所述第二密钥对包括第二鉴别结果信息在内的信息加密生成第二鉴别结果信息密文,对包括所述第一鉴别结果信息在内的签名数据计算生成第一数字签名,对包括所述第二鉴别结果信息密文在内的签名数据计算生成第三数字签名或对包括所述第二鉴别结果信息密文在内的信息计算生成第三消息鉴别码;
461.发送模块1040,用于向所述第一鉴别服务器发送的第二鉴别响应消息,所述第二鉴别响应消息中包括所述第一鉴别结果信息、所述第一数字签名、所述第二鉴别结果信息密文和所述第三数字签名或所述第二鉴别响应消息中包括所述第一鉴别结果信息、所述第一数字签名、所述第二鉴别结果信息密文和所述第三消息鉴别码。
462.可选的,所述第二鉴别服务器向所述第一鉴别服务器发送的消息还包括所述第二鉴别服务器对接收到的所述第一鉴别服务器发送的最新前序消息计算的杂凑值。
463.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:rom)、ram、磁碟或者光盘等各种可以存储程序代码的介质。
464.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其与方法实施例相一致和对应,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
465.以上所述,仅为本技术的一种具体实施方式,但本技术的保护范围并不局限于此,
任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应该以权利要求的保护范围为准。
再多了解一些
本文用于企业家、创业者技术爱好者查询,结果仅供参考。