媒体接入控制系统中安全上下文的组织结构和维护方法
技术领域
本发明涉及无线通信技术,特别涉及一种宽带无线城域网基站媒体接入控制系统中安全上下文(Security Context)的组织结构和维护方法。
背景技术
宽带无线城域网是一种能够在城域范围内提供高速无线接入的宽带网络。从文献1“Part 16:Air Interface for Fixed and Mobile Broadband WirelessAccess Systems,IEEE Std 802.16eTM-2005”中的记载可以看出,基站媒体接入控制系统中的认证授权过程实现了IEEE 802.16eTM-2005标准中有关安全子层(Security Sublayer)的一部分功能,包括:基站对终端的认证和授权(Authentication and Authorization)、基站为终端分发通信加密密钥以及服务流管理中安全相关的操作。
在认证授权和密钥分发的过程中,以及服务流管理安全相关的操作中,基站和终端对安全上下文进行更新维护并通过空口消息进行同步。虽然IEEE802.16e标准明确定义了终端发起认证授权请求和通信加密密钥请求的流程,但没有提供在此流程中安全上下文的组织和维护方法,因此有必要提供一种高效的安全上下文的组织和维护方法。
发明内容
本发明的目的是针对上述问题,提供一种宽带无线城域网基站媒体接入控制系统中高效的安全上下文的组织结构和维护方法。
为了达到上述目的,本发明提供技术方案如下:
一种基站媒体接入控制系统,包括基站和终端,其特征是,还包括:安全上下文的组织结构,采取多级哈希队列方式对安全上下文进行分类存储,其中:
每个终端拥有一个授权密钥上下文节点,可以拥有多个通信加密密钥上下文节点;同一个终端的通信加密密钥上下文节点组成的队列连接到对应的授权密钥上下文节点;所述授权密钥上下文节点,用于保存授权密钥上下文;所述通信加密密钥上下文节点保存通信加密密钥上下文;
连接标识哈希表,其表项指向所述授权密钥上下文节点组成的队列;安全关联标识哈希表,其表项指向所述通信加密密钥上下文节点组成的队列;
在两个所述哈希表中进行快速交叉索引,通过所述授权密钥上下文节点可以搜索到终端对应的所有通信加密密钥上下文节点,而通过终端的任意一个通信加密密钥上下文节点也可以搜索到终端的授权密钥上下文节点。
优选地,所述连接标识哈希表由终端的主管理连接标识符作为索引;所述授权密钥上下文节点包括:主管理连接标识符、认证结果、安全关联-通信加密密钥握手流程进度、重认证标识符、新授权密钥参数、旧授权密钥参数和指向同一个终端所对应的所有通信加密密钥上下文节点组成的队列的索引。
优选地,所述授权密钥参数包括以下信息:授权密钥、授权密钥标识符、授权密钥生命周期、授权密钥序列号和基站产生的随机数。
优选地,所述通信加密密钥上下文节点包括:主管理连接标识符、安全关联描述符、服务流标识符、新通信加密密钥参数和旧通信加密密钥参数。
优选地,所述通信加密密钥参数包括:通信加密密钥、通信加密密钥生命周期和通信加密密钥序列号。
优选地,所述安全关联描述符包括:安全关联标识符,安全关联类型和所支持的加解密算法;所述安全关联标识哈希表由通信加密密钥对应的安全关联标识符作为索引。
一种媒体接入控制系统中安全上下文的维护方法,其特征是,采取多级哈希队列方式对安全上下文进行分类存储,包括如下步骤:
构建授权密钥上下文节点,用于保存授权密钥上下文;构建通信加密密钥上下文节点,用于保存通信加密密钥上下文;
构建连接标识哈希表和安全关联标识哈希表,所述连接标识哈希表的表项指向授权密钥上下文节点组成的队列,所述安全关联标识哈希表的表项指向通信加密密钥上下文节点组成的队列;
每个终端拥有一个所述授权密钥上下文节点,拥有多个所述通信加密密钥 上下文节点;同一个终端的通信加密密钥上下文节点组成的队列连接到对应的授权密钥上下文节点,在两个所述哈希表中进行快速交叉索引,通过授权密钥上下文节点搜索到终端对应的所有通信加密密钥上下文节点,而通过终端的任意一个通信加密密钥上下文节点搜索到终端的授权密钥上下文节点;
在对终端进行可扩展认证协议认证、安全关联-通信加密密钥三次握手、为终端分发通信加密密钥的过程中,以及服务流创建过程中在哈希表中搜索到相应的上下文节点,对节点中的相关字段进行操作,以对安全上下文进行维护。
所述对终端进行可扩展认证协议认证、安全关联-通信加密密钥三次握手、为终端分发通信加密密钥,以及服务流创建过程,包括下列步骤:
步骤S1,当对终端进行可扩展认证协议认证时,如果终端对应的授权密钥上下文节点尚未保存在连接标识哈希表中,则构造并初始化该授权密钥上下文节点将其插入到连接标识哈希表中,然后进行终端的身份合法性认证;如果在连接标识哈希表中搜索到对应的授权密钥上下文节点,则直接进行终端的身份合法性认证;认证完成后分配授权密钥,并保存于授权密钥上下文节点中,同时设置授权密钥的上下文信息;
步骤S2,当进行安全关联-通信加密密钥握手过程时,如果是初始认证,需要向终端发送授权访问的安全关联信息,包括安全关联标识符、安全关联类型和所支持的加解密算法;如果是重认证,则对终端原有的安全关联更新,包括安全关联标识符和对应的通信加密密钥信息;
步骤S3,当为终端分发通信加密密钥时,基站接收到终端的通信加密密钥请求后,如果是第一次请求且在安全关联标识哈希表中没有搜索到相应通信加密密钥上下文节点,则构造通信加密密钥上下文节点并插入安全关联标识哈希表中,基站生成新通信加密密钥和旧通信加密密钥,将相关信息分别保存于通信加密密钥上下文节点的新通信加密密钥参数和旧通信加密密钥参数中;如果是密钥更新请求,则在安全关联标识哈希表中搜索出相应的通信加密密钥上下文节点,基站产生新的通信加密密钥,对通信加密密钥上下文节点中的信息进行更新;然后将生成的通信加密密钥进行加密后发送给终端;
步骤S4,当创建服务流时,基站为新增的服务流分配安全关联信息,包括安全关联标识符、安全关联类型和所支持的加解密算法;构造通信加密密钥上下文节点,将安全关联信息保存其中;在服务流成功增加之后,基站将此服 务流的信息和分配的安全关联信息建立映射关系,并通知终端添加安全关联信息;如果服务流没有成功增加,则删除已经构造的所述通信加密密钥上下文节点,并回收已经分配的所述安全关联标识符。
优选地,所述步骤S1具体包括如下步骤:
步骤S1.1:基站接收到终端的认证开始消息,根据消息中主管理连接标识符在连接标识哈希表中搜索授权密钥上下文节点;
步骤S1.2:如果授权密钥上下文节点不存在,进入步骤S1.3,否则,进入步骤S1.4;
步骤S1.3:构造并初始化授权密钥上下文节点,将消息中的主管理连接标识符保存于授权密钥上下文节点中的主管理连接标识符字段中;
步骤S1.4:根据消息内容判断是否为重认证;
步骤S1.5:如果不是重认证,进入步骤S1.6,如果是重认证,进入步骤S1.7;
步骤S1.6:将授权密钥上下文节点中重认证标识符设为不是重认证标识,进入步骤S1.11;
步骤S1.7:将授权密钥上下文节点中重认证标识符设为是重认证标识,进入步骤S1.8;
步骤S1.8:验证消息认证码是否有效,验证消息中授权密钥序列号和授权密钥上下文节点中的对应信息是否匹配;
步骤S1.9:如果验证成功,进入步骤S1.11,否则进入步骤S1.10;
步骤S1.10:出错结束;
步骤S1.11:基站向认证服务器发送认证开始消息,并在终端和认证服务器间传递消息;
步骤S1.12:认证成功,基站收到网络控制与管理系统发送的会话主密钥传输消息;
步骤S1.13:根据会话主密钥派生出授权密钥,并且将授权密钥保存在授权密钥上下文节点中,并对授权密钥上下文节点的字段进行设置;
步骤S1.14:认证过程成功结束。
优选地,步骤S2具体包括如下步骤:
步骤S2.1:基站生成随机数,保存于终端的授权密钥上下文节点中新授 权密钥参数的基站产生的随机数字段中;
步骤S2.2:根据安全关联-通信加密密钥握手流程进度字段判断使用新授权密钥或旧授权密钥;
步骤S2.3:构造安全关联-通信加密密钥挑战消息并发送,同时设置接收定时器;
步骤S2.4:如果接收定时器超时,没有收到终端的回复消息,进入步骤S2.5,否则进入步骤S2.8;
步骤S2.5:判断是否达到重发最大次数,如果没有达到重发最大次数,进入步骤S2.6,否则进入步骤S2.7;
步骤S2.6:重新发送安全关联-通信加密密钥挑战消息,重新设置接收定时器;
步骤S2.7:对终端进行完全重认证;
步骤S2.8:基站接收到终端发送的安全关联-通信加密密钥请求消息;
步骤S2.9:对安全关联-通信加密密钥请求消息进行解析;
步骤S2.10:验证消息认证码是否有效,验证消息中的基站产生的随机数字段、授权密钥标识符字段与授权密钥上下文节点中的对应信息是否匹配;
步骤S2.11:如果安全关联-通信加密密钥请求消息有效,进入步骤S2.13,否则,进入步骤S2.12;
步骤S2.12:出错结束;
步骤S2.13:根据授权密钥上下文节点中重认证标识符判断是否为重认证,如果是重认证,进入步骤S2.14,否则,进入步骤S2.16;
步骤S2.14:构造安全关联-通信加密密钥回复消息,进入步骤S2.15;
步骤S2.15:根据授权密钥上下文节点中的安全关联信息构造安全关联-通信加密密钥更新信息,填入安全关联-通信加密密钥回复消息中,构造完成后进入步骤S2.18;
步骤S2.16:构造安全关联-通信加密密钥回复消息,进入步骤S2.17;
步骤S2.17:用终端和基站共同支持的加解密算法,构造安全关联描述符信息,填入安全关联-通信加密密钥回复消息中,构造完成后进入步骤S2.18;
步骤S2.18:发送安全关联-通信加密密钥回复消息;
步骤S2.19:成功结束。
优选地,在所述步骤S2.2中所述安全关联-通信加密密钥握手进度字段的设置方法,包括如下步骤:
步骤S5.1:将安全关联-通信加密密钥握手进度字段初始化;
步骤S5.2:当基站获得会话主密钥并派生出授权密钥之后,将安全关联-通信加密密钥握手进度字段设为第一取值;
步骤S5.3:当基站发送安全关联-通信加密密钥挑战消息之后,将安全关联-通信加密密钥握手进度字段设为第二取值;
步骤S5.4:当基站发送安全关联-通信加密密钥回复消息之后,将安全关联-通信加密密钥握手进度字段设为第三取值。
优选地,在所述步骤S2.2中根据安全关联-通信加密密钥握手进度字段来判断使用新授权密钥或旧授权密钥的方法,具体包括如下步骤:
步骤S6.1:利用安全关联-通信加密密钥握手进度字段来判断使用新授权密钥或旧授权密钥;
步骤S6.2:如果安全关联-通信加密密钥握手进度字段为第一取值,进入步骤S6.3,否则进入步骤S6.4;
步骤S6.3:使用旧授权密钥;
步骤S6.4:如果安全关联-通信加密密钥握手进度字段为第二取值,进入步骤S6.5,否则进入步骤S6.6;
步骤S6.5:如果当前处于安全关联-通信加密密钥握手过程中,进入步骤S6.7,否则进入步骤S6.3;
步骤S6.6:如果安全关联-通信加密密钥握手进度字段为第三取值,进入步骤S6.7,否则进入步骤S6.8;
步骤S6.7:使用新授权密钥;
步骤S6.8:出错结束。
优选地,所述步骤S3具体包括如下步骤:
步骤S3.1:基站接收到终端的密钥请求消息,对消息进行解析;
步骤S3.2:根据主管理连接标识符在连接标识哈希表中搜索授权密钥上下文节点;
步骤S3.3:如果搜索到授权密钥上下文节点,进入步骤S3.4,否则进入步骤S3.11;
步骤S3.4:根据授权密钥上下文节点中认证结果标识判断是否认证成功,如果成功进入步骤S3.5,否则进入步骤S3.11;
步骤S3.5:验证消息中密钥序列号和授权密钥上下文节点中授权密钥参数中的序列号是否一致;
步骤S3.6:如果消息中密钥序列号和授权密钥上下文节点中授权密钥参数中的序列号一致,进入步骤S3.7,否则进入步骤S3.11;
步骤S3.7:验证授权密钥剩余生命周期是否有效;
步骤S3.8:如果生命周期有效,进入步骤S3.9,否则进入步骤S3.11;
步骤S3.9:验证消息认证码是否有效;
步骤S3.10:如果消息认证码通过验证,进入步骤S3.12,否则进入步骤S3.11;
步骤S3.11:构造并发送密钥拒绝消息,进入步骤S3.25;
步骤S3.12:根据消息中的安全关联标识符在安全关联标识哈希表中搜索通信加密密钥上下文节点;
步骤S3.13:如果找到通信加密密钥上下文节点,进入步骤S3.15,否则进入步骤S3.14;
步骤S3.14:构造并初始化一个通信加密密钥上下文节点,插入到安全关联标识哈希表中;
步骤S3.15:生成通信加密密钥、密钥加密密钥;
步骤S3.16:根据通信加密密钥上下文节点中安全关联描述符中的密钥加密算法对生成的通信加密密钥进行加密;
步骤S3.17:判断是否是第一次申请密钥;
步骤S3.18:如果是第一次申请密钥,进入步骤S3.21,否则进入步骤S3.19;
步骤S3.19:将通信加密密钥上下文节点中新通信加密密钥参数信息保存到旧通信加密密钥参数节点中,进入步骤S3.20;
步骤S3.20:将经过加密的通信加密密钥信息保持在通信加密密钥上下文节点的新通信加密密钥参数节点中,进入步骤S3.24;
步骤S3.21:再次生成通信加密密钥、密钥加密密钥,并对通信加密密钥进行加密,进入步骤S3.22;
步骤S3.22:将第一次分配的密钥信息保存于通信加密密钥上下文节点的旧通信加密密钥参数中,进入步骤S3.23;
步骤S3.23:将第二次分配的密钥信息保存于通信加密密钥上下文节点的新通信加密密钥参数中,进入步骤S3.24;
步骤S3.24:构造并发送密钥回复消息,进入步骤S3.25;
步骤S3.25:结束。
优选地,所述步骤S4具体包括如下步骤:
步骤S4.1:开始创建服务流,分配动态安全关联标识符;
步骤S4.2:如果成功分配,进入步骤S4.3,否则进入步骤S4.6;
步骤S4.3:构造通信加密密钥上下文节点插入到安全关联标识哈希表中,并将分配的动态安全关联标识符存储到通信加密密钥上下文节点的安全关联描述符中;
步骤S4.4:根据主管理连接标识符在连接标识哈希表中搜索授权密钥上下文节点;
步骤S4.5:如果找到对应的授权密钥上下文节点,则进入步骤S4.7,否则进入步骤S4.6;
步骤S4.6:出错结束;
步骤S4.7:将授权密钥上下文节点中加解密信息保存到通信加密密钥上下文节点的安全关联描述符中;
步骤S4.8:将此通信加密密钥上下文节点插入到同一个终端所对应的所有通信加密密钥上下文节点组成的队列中;
步骤S4.9:等待服务流创建确认信息,如果服务流创建成功,进入步骤S4.12,否则进入步骤S4.10;
步骤S4.10:将创建的通信加密密钥上下文节点从安全关联标识哈希表中删除;
步骤S4.11:将分配的动态安全关联标识符回收,进入步骤S4.6结束;
步骤S4.12:将服务流标识符保存到通信加密密钥上下文节点的服务流标识符字段中;
步骤S4.13:将分配的动态安全关联标识符保存到服务流信息的相关字段中;
步骤S4.14:构造并向终端发送安全关联增加消息;
步骤S4.15:成功结束。
与现有技术相比,本发明的有益技术效果是:
(1)现有技术中没有公开媒体接入控制系统中安全上下文的组织结构和维护方法,而本发明实现了安全上下文的组织和维护;
(2)本发明采用多级哈希队列的方式组织数据,能实现快速查找,相对于单一队列式存储方式,在终端较多时,可以提高索引效率;相对于数组式存储方式,在数据量较大时,可以很大程度提高数据的维护效率。
附图说明
图1是本发明实施例的基站对终端EAP认证过程中安全上下文的维护方法流程图。
图2是本发明实施例的基站和终端进行SA-TEK三次握手过程中对安全上下文的维护方法流程图。
图3是本发明实施例的基站为终端分发通信加密密钥过程中对安全上下文的维护方法流程图。
图4是本发明实施例的基站在服务流创建过程中对安全上下文的维护方法流程图。
图5是本发明实施例的授权密钥上下文中安全关联-通信加密密钥握手进度字段(imp_ack)的设置方法流程图以及使用安全关联-通信加密密钥握手进度字段来判断使用新或旧授权密钥(AK)的方法流程图。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细描述。
终端对应的安全上下文分为授权密钥(AK)上下文和通信加密密钥(TEK)上下文,密钥上下文包括密钥值,密钥序列号,密钥生命周期等信息。
作为一种可实施的方式,本发明的媒体接入控制系统中安全上下文的组织 结构包括:
用于管理授权密钥上下文的连接标识(CID)哈希表。
较佳地,所述连接标识(CID)哈希表由终端的主管理连接标识符作为索引,其表项指向授权密钥上下文节点(AkNode)组成的队列,所述授权密钥上下文节点(AkNode)中保存授权密钥上下文,包括以下信息:
Primary CID |
主管理连接标识符 |
Authentication result
|
认证结果 |
Implicit acknowledgement state
|
安全关联-通信加密密钥
(SA-TEK)三次握手流程进度 |
Re-authentication flag
|
重认证标识符 |
New AK parameters
|
新授权密钥参数 |
Old AK parameters
|
旧授权密钥参数 |
TekNode list pointer
|
指向同一个终端所对应的所有 TekNode组成的队列的索引 |
本发明在授权密钥上下文节点中包括指向同一个终端所对应的所有TekNode组成的队列的索引,这样可以使得同一个终端的通信加密密钥上下文节点(TekNode)组成的队列连接到对应的授权密钥上下文节点(AkNode),在两个哈希表中进行快速交叉索引,通过AkNode可以搜索到终端对应的所有TekNode,而通过终端的任意一个TekNode也可以搜索到终端的AkNode。
较佳地,所述授权密钥参数(AK parameters)包括以下信息:
AK |
授权密钥 |
AK ID |
授权密钥标识符 |
AK lifetime |
授权密钥生命周期 |
AK sequence number
|
授权密钥序列号 |
BS_Random |
基站产生的随机数 |
[0127] 用于管理通信加密密钥上下文的安全关联标识(SAID)哈希表。
较佳地,所述安全关联标识(SAID)哈希表的表项指向由通信加密密钥上下文节点(TekNode)组成的队列,所述通信加密密钥上下文节点中保存通信加密密钥上下文。
较佳地,每个终端对应一个授权密钥上下文节点,并至少对应一个通信加密密钥上下文节点;对应同一个终端的通信加密密钥组成的队列连接到该终端对应的授权密钥上下文节点。
较佳地,所述通信加密密钥上下文节点(TekNode)包括以下信息:
Primary CID
|
主管理连接标识符 |
SA_Descriptor
|
安全关联(SA)描述符 |
Service flow ID
|
服务流标识符 |
New TEK parameters
|
新TEK参数 |
Old TEK parameters
|
旧TEK参数 |
较佳地,所述通信加密密钥参数(TEK parameters)包括以下信息:
TEK |
通信加密密钥 |
TEK lifetime |
通信加密密钥生命周期 |
TEK sequence number
|
通信加密密钥序列号 |
较佳地,所述安全关联描述符(SA_Descriptor)包括如下信息:
SAID |
安全关联标识符 |
SA type
|
安全关联类型 |
Crypto suite
|
加解密算法 |
[0136] 所述安全关联标识(SAID)哈希表由通信加密密钥对应的安全关联标识符(SAID)作为索引,其表项指向由通信加密密钥上下文节点(TekNode)所组成的队列。
从上面的实施可以看出,本发明的媒体接入控制系统中安全上下文的组织结构采取多级哈希队列方式对安全上下文进行分类存储,构建授权密钥(AK)上下文节点(AkNode)保存授权密钥(AK)上下文,构建通信加密密钥(TEK)上下文节点(TekNode)保存通信加密密钥(TEK)上下文,构建连接标识(CID)哈希表和安全关联标识(SAID)哈希表,连接标识(CID)哈希表的表项指向授权密钥上下文节点组成的队列,安全关联标识(SAID)哈希表的表项指向通信加密密钥上下文节点组成的队列。每个终端拥有一个授权密钥上下文节点,可以拥有多个通信加密密钥上下文节点;同一个终端的通信加密密钥上下文节点组成的队列连接到对应的授权密钥上下文节点,在两个哈希表中进行快速交叉索引,通过授权密钥上下文节点可以搜索到终端对应的所有通信加密密钥上下文节点,而通过终端的任意一个通信加密密钥上下文节点也可以搜索到终端的授权密钥上下文节点。采用这样的方式组织数据,相对于单一队列式存储方式,在终端较多时,可以提高效率;相对于数组式存储方式,在数据量较大时,又可以很大程度提高数据的维护效率。。在对终端进行可扩展认证协议(EAP)认证、安全关联-通信加密密钥(SA-TEK)三次握手、为终端分发通信加密密钥的过程中,以及服务流创建过程中安全相关的操作中,在哈希表中搜索到相应的上下文节点,对节点中的相关字段进行操作,以对安全上下文进行维护。
作为一种可实施的方式,本发明的媒体接入控制系统中安全上下文的维护方法,包括如下步骤:
步骤S1,当对终端的可扩展认证协议(EAP)认证时,如果终端对应的授权密钥上下文节点尚未保存在连接标识哈希表中,则构造并初始化该授权密钥上下文节点插入到连接标识哈希表中,然后进行终端的身份合法性认证;如果在连接标识哈希表中搜索到对应的授权密钥上下文节点,则直接进行终端的身份合法性认证;认证完成后分配授权密钥(AK),保存于授权密钥上下文节点 (AkNode)中,同时设置(AK)的其他上下文信息,包括序列号、生命周期、标识符等。EAP认证过程需要外部认证服务器的协同工作。
较佳地,如图1所示,所述步骤S1具体包括如下步骤:
步骤S1.1:基站接收到终端的EAP认证开始消息(PKMv2 EAP-Start),开始认证过程,根据消息中主管理连接标识符在连接标识哈希表中搜索授权密钥上下文节点;
步骤S1.2:如果授权密钥上下文节点(AkNode)不存在,进入步骤S1.3,否则,进入步骤S1.4;
步骤S1.3:构造并初始化授权密钥上下文节点(AkNode),将消息中的主管理连接标识符(Primary CID)保存于授权密钥上下文节点(AkNode)中的主管理连接标识符(Primary CID)字段中;
步骤S1.4:根据消息体是否包含密钥序列号以及消息认证码来判断是否为重认证,如果包含密钥序列号以及消息认证码,则为重认证,否则为初始认证;
步骤S1.5:如果不是重认证,进入步骤S1.6,如果是重认证,进入步骤S1.7;
步骤S1.6:将授权密钥上下文节点(AkNode)中重认证标识符设为不是重认证标志,比如设为0,进入步骤S1.11;
步骤S1.7:将授权密钥上下文节点(AkNode)中重认证标识符设为是重认证标志,比如设为1,进入步骤S1.8;
步骤S1.8:验证消息认证码是否有效,验证消息中授权密钥(AK)序列号和授权密钥上下文节点(AkNode)中的对应信息是否匹配;
步骤S1.9:如果验证成功,进入步骤S1.11,否则进入步骤S1.10;
步骤S1.10:出错结束;
步骤S1.11:基站向认证服务器发送认证开始消息,在终端和认证服务器间传递消息。此步骤包含多次消息的交互,认证过程中,基站并不解析消息,只是在终端和认证服务器间传递认证相关信息。
步骤S1.12:认证成功,基站收到网络控制与管理系统(NCMS)发送的会话主密钥传输消息(MSK_Transfer),里面包括认证生成的会话主密钥(MSK);
步骤S1.13:根据会话主密钥(MSK)派生出授权密钥(AK),并且将授权密钥保存在授权密钥上下文节点中,并对授权密钥上下文节点的相关字段进行设置,比如密钥序列号,密钥的生命周期等;
步骤S1.14:认证过程成功结束。开始进行安全关联-通信加密密钥(SA-TEK)三次握手过程。
步骤S2,当进行安全关联-通信加密密钥(SA-TEK)三次握手过程,从而完成基站和终端安全能力的协商时,如果是初始认证,需要向终端发送授权访问的安全关联(SA)的信息,包括安全关联标识符(SAID)、安全关联类型、以及所支持的加解密算法;如果是重认证,则对终端原有的安全关联更新,包括安全关联标识符(SAID)和对应的通信加密密钥(TEK)信息。安全关联-通信加密密钥(SA-TEK)三次握手完成后,认证授权过程完成。
较佳地,如图2所示,步骤S2具体包括如下步骤:
步骤S2.1:基站生成随机数,保存于终端的授权密钥上下文节点(AkNode)中新授权密钥(AK)参数的基站产生的随机数(BS_Random)字段中;
步骤S2.2:根据授权密钥(AK)参数中安全关联-通信加密密钥三次握手流程进度(Implicit acknowledgement state)字段判断使用新授权密钥或旧授权密钥。
较佳地,授权密钥上下文节点(AkNode)中表征安全关联-通信加密密钥(SA-TEK)三次握手进度的安全关联-通信加密密钥握手进度字段(implicit acknowledgement state,以下简称imp_ack)的设置方法,如图5所示,包括如下步骤:
步骤S5.1:将安全关联-通信加密密钥握手进度字段初始化,比如初始值为-1;
步骤S5.2:当基站获得会话主密钥(MSK)并派生出授权密钥(AK) 之后,将安全关联-通信加密密钥握手进度字段设为第一取值,比如为0;
步骤S5.3:当基站发送安全关联-通信加密密钥挑战消息(PKMv2SA-TEK Challenge)之后,将安全关联-通信加密密钥握手进度字段设为第二取值,比如为1;
步骤S5.4:当基站发送安全关联-通信加密密钥回复消息(PKMv2SA-TEK Response)之后,将安全关联-通信加密密钥握手进度字段设为第三取值,比如为2。
较佳地,在所述步骤S1中成功认证之后,基站和终端间的管理消息需要经过消息认证码的验证,生成和验证消息认证码需要从授权密钥派生出消息认证码密钥,此时用安全关联-通信加密密钥握手进度字段(imp_ack)来判断使用新授权密钥或旧授权密钥派生消息认证码密钥。判断使用新授权密钥或旧授权密钥的方法,如图5所示,具体包括如下步骤:
步骤S6.1:利用安全关联-通信加密密钥握手进度字段(imp_ack)来判断使用新授权密钥或旧授权密钥;
步骤S6.2:如果安全关联-通信加密密钥握手进度字段(imp_ack)为第一取值,进入步骤S6.3,否则进入步骤S6.4;
步骤S6.3:使用旧授权密钥;
步骤S6.4:如果安全关联-通信加密密钥握手进度字段(imp_ack)为第二取值,进入步骤S6.5,否则进入步骤S6.6;
步骤S6.5:如果当前处于安全关联-通信加密密钥(SA-TEK)三次握手过程中,进入步骤S6.7,否则进入步骤S6.3;
步骤S6.6:如果安全关联-通信加密密钥握手进度字段(imp_ack)为第三取值,进入步骤S6.7,否则进入步骤S6.8;
步骤S6.7:使用新授权密钥;
步骤S6.8:出错结束。
步骤S2.3:构造安全关联-通信加密密钥挑战消息(PKMv2 SA-TEKChallenge)并发送,同时设置接收定时器;
步骤S2.4:如果接收定时器超时,没有收到终端的回复消息,进入步骤S2.5,否则进入步骤S2.8;
步骤S2.5:判断是否达到IEEE 802.16e规定的重发最大次数,如果没有达到重发最大次数,进入步骤S2.6,否则进入步骤S2.7;
步骤S2.6:重新发送安全关联-通信加密密钥挑战消息(PKMv2 SA-TEKChallenge),重新设置接收定时器;
步骤S2.7:对终端进行完全重认证;
步骤S2.8:基站接收到终端发送的安全关联-通信加密密钥请求消息(PKMv2 SA-TEK Request);
步骤S2.9:对安全关联-通信加密密钥请求消息(PKMv2 SA-TEK Request)进行解析;
步骤S2.10:验证消息认证码是否有效,验证消息中的基站产生的随机数(BS_Random)字段、授权密钥标识符(AK_ID)字段与授权密钥上下文节点(AkNode)中的对应信息是否匹配;
步骤S2.11:如果安全关联-通信加密密钥请求消息(PKMv2 SA-TEKRequest)有效,进入步骤S2.13,否则,进入步骤S2.12;
步骤S2.12:出错结束;
步骤S2.13:根据授权密钥上下文节点(AkNode)中重认证标识符判断是否为重认证,如果是重认证,进入步骤S2.14,否则,进入步骤S2.16;
步骤S2.14:构造安全关联-通信加密密钥回复消息(PKMv2 SA-TEKResponse),进入步骤S2.15;
步骤S2.15:根据授权密钥上下文节点(AkNode)中的安全关联信息构造安全关联-通信加密密钥更新信息(SA-TEK-Update TLV),填入安全关联-通信加密密钥回复消息(PKMv2 SA-TEK Response)中,构造完成后进入步骤S2.18;
步骤S2.16:构造安全关联-通信加密密钥回复消息(PKMv2 SA-TEKResponse),进入步骤S2.17;
步骤S2.17:选用终端和基站共同支持的加解密算法,构造安全关联描述 符信息(SA_Descriptor TLV),填入安全关联-通信加密密钥回复消息(PKMv2SA-TEK Response)中,构造完成后进入步骤S2.18;
步骤S2.18:发送安全关联-通信加密密钥回复消息(PKMv2 SA-TEKResponse);
步骤S2.19:成功结束。
步骤S3,当为终端分发通信加密密钥(TEK)时,基站接收到终端的通信加密密钥(TEK)请求后,如果该请求是第一次请求且在安全关联标识(SAID)哈希表中没有搜索到相应通信加密密钥上下文节点(TekNode),则构造通信加密密钥上下文节点并插入安全关联标识哈希表中,基站生成新通信加密密钥和旧通信加密密钥,将相关信息分别保存于通信加密密钥上下文节点的新通信加密密钥参数和旧通信加密密钥参数中;如果该请求是密钥更新请求,则在安全关联标识哈希表中搜索出相应的通信加密密钥上下文节点,基站产生新的通信加密密钥,对通信加密密钥上下文节点中的信息进行更新;然后将生成的通信加密密钥进行加密后发送给终端;
较佳地,如图3所示,所述步骤S3具体包括如下步骤:
步骤S3.1:基站接收到终端的密钥请求消息(PKMv2 Key Request),对消息进行解析;
步骤S3.2:根据主管理连接标识符(Primary CID)在连接标识哈希表中搜索授权密钥上下文节点(AkNode);
步骤S3.3:如果搜索到授权密钥上下文节点,进入步骤S3.4,否则进入步骤S3.11;
步骤S3.4:根据授权密钥上下文节点中认证结果标识判断是否认证成功(比如判断是否为1),如果成功进入步骤S3.5,否则进入步骤S3.11;
步骤S3.5:验证消息中密钥序列号和授权密钥上下文节点中授权密钥参数中的序列号是否一致;
步骤S3.6:如果消息中密钥序列号和授权密钥上下文节点中授权密钥参 数中的序列号是一致,进入步骤S3.7,否则进入步骤S3.11;
步骤S3.7:验证授权密钥(AK)剩余生命周期是否有效;
步骤S3.8:如果生命周期有效,进入步骤S3.9,否则进入步骤S3.11;
步骤S3.9:验证消息认证码是否有效;
步骤S3.10:如果消息认证码通过验证,进入步骤S3.12,否则进入步骤S3.11;
步骤S3.11:构造并发送密钥拒绝消息(PKMv2 Key Reject),进入步骤S3.25;
步骤S3.12:根据消息中的安全关联标识符(SAID)在安全关联标识哈希表中搜索通信加密密钥上下文节点(TekNode);
步骤S3.13:如果找到通信加密密钥上下文节点,进入步骤S3.15,否则进入步骤S3.14;
步骤S3.14:没有找到通信加密密钥上下文节点证明终端是第一次申请通信加密密钥,构造并初始化一个通信加密密钥上下文节点,插入到安全关联标识哈希表中;
步骤S3.15:生成通信加密密钥、密钥加密密钥;
步骤S3.16:根据通信加密密钥上下文节点中安全关联描述符(SA_Descriptor)中的密钥加密算法对生成的通信加密密钥进行加密;
步骤S3.17:判断是否是第一次申请密钥;这里的判断方法很多,是本领域技术人员熟知的技术,比如通信加密密钥信息是否仍然是初始化时的值,如果仍然是初始化时的值,则判断是第一次申请密钥。
步骤S3.18:如果是第一次申请密钥,进入步骤S3.21,否则进入步骤S3.19;
步骤S3.19:将通信加密密钥上下文节点中新通信加密密钥参数信息保存到旧通信加密密钥参数节点中,进入步骤S3.20;
步骤S3.20:将经过加密的通信加密密钥信息保持在通信加密密钥上下文节点的新通信加密密钥参数节点中,进入步骤S3.24;
步骤S3.21:再次生成通信加密密钥、密钥加密密钥,并对通信加密密钥进行加密,进入步骤S3.22;
步骤S3.22:将第一次分配的密钥信息保存于通信加密密钥上下文节点的旧通信加密密钥参数中,进入步骤S3.23;
步骤S3.23:将第二次分配的密钥信息保存于通信加密密钥上下文节点的新通信加密密钥参数中,进入步骤S3.24;
步骤S3.24:构造并发送密钥回复消息(PKMv2 Key Reply)消息,进入步骤S3.25;
步骤S3.25:结束。
步骤S4,当创建服务流时,基站为新增的服务流分配安全关联信息,包括安全关联标识符(SAID)、安全关联类型、以及所支持的加解密算法;构造一个通信加密密钥上下文节点,但并不分配通信加密密钥(TEK),只是将安全关联信息保存其中;在服务流成功增加之后,基站将此服务流的信息和分配的安全关联信息建立映射关系,并通知终端添加安全关联信息;如果服务流没有成功增加,则删除已经构造的所述通信加密密钥上下文节点,并回收已经分配的所述安全关联标识符。
较佳地,如图4所示,所述步骤S4具体包括如下步骤:
步骤S4.1:开始创建服务流,分配动态安全关联标识符(SAID);
步骤S4.2:如果成功分配,进入步骤S4.3,否则进入步骤S4.6;
步骤S4.3:构造通信加密密钥上下文节点插入到安全关联标识哈希表中,并将分配的动态安全关联标识符(SAID)存储到通信加密密钥上下文节点的安全关联描述符(SA_Descriptor)中;
步骤S4.4:根据主管理连接标识符(Primary CID)在连接标识(CID)哈希表中搜索授权密钥上下文节点;
步骤S4.5:如果找到对应的授权密钥上下文节点,则进入步骤S4.7,否则进入步骤S4.6;
步骤S4.6:出错结束;
步骤S4.7:将授权密钥上下文节点中加解密信息保存到通信加密密钥上下文节点的安全关联描述符(SA_Descriptor)中;
步骤S4.8:将此通信加密密钥上下文节点(TekNode)插入到授权密钥上下文节点(AkNode)中指向同一个终端所对应的所有通信加密密钥上下文节点(TekNode)组成的队列的索引(TekNode list pointer)所指向的属于同一个终端的所有通信加密密钥上下文节点(TekNode)组成的队列中;
步骤S4.9:等待服务流创建确认信息,如果服务流创建成功,进入步骤S4.12,否则进入步骤S4.10;
步骤S4.10:将创建的通信加密密钥上下文节点(TekNode)从安全关联标识哈希表中删除;
步骤S4.11:将分配的动态安全关联标识符(SAID)回收,进入步骤S4.6结束;
步骤S4.12:将服务流标识符保存到通信加密密钥上下文节点(TekNode)的服务流标识符(Service Flow ID)字段中;
步骤S4.13:将分配的动态安全关联标识符(SAID)保存到服务流信息的相关字段中;
步骤S4.14:构造并向终端发送安全关联增加消息(PKM SA-ADD);
步骤S4.15:成功结束。
现有技术中没有公开媒体接入控制系统中安全上下文的组织结构和维护方法,而本发明实现了安全上下文的组织和维护;本发明采用多级哈希队列的方式组织数据,能实现快速查找,相对于单一队列式存储方式,在终端较多时,可以提高效率;相对于数组式存储方式,在数据量较大时,可以很大程度提高数据的维护效率。
以上所述内容,仅为本发明具体的实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围内。