发明内容
为解决以上现有技术的不足,本发明提供分离机制移动性管理系统实现接入认证的密钥分发方法,以解决接入认证协议与切换密钥协议相结合,在分离机制移动性管理系统中接入认证的密钥分发,且成功的接入认证之后,移动终端和接入网关(AGW)间部署IPSec机制能保护后续交互的数据流。
本发明的目的通过以下技术方案来实现:
分离机制移动性管理系统实现接入认证的密钥分发方法,其特征在于,该方法包括:
家乡域初始认证:MN初始接入家乡域的AGW1,AGW1发送广播的EAP-Initiate/Re-auth-Start(EAP初始/重认证开始消息)消息通告所在域名,MN根据配置文件判断此时为家乡域的初始过程,执行相应的操作,密钥根据相应场景逐级派生;
家乡域重认证:MN从AGW1切换到AGW2时,AGW2发送EAP-Initiate/Re-auth-Start消息通告所在域名,根据配置文件判断已在该域认证过,则MN根据绑定注册列表判断执行家乡域重认证过程;
外地域初始认证:当MN从家乡域切换到外地域的AGW3时,AGW3发送EAP-Initiate/Re-auth-Start消息通告所在域名,MN根据该消息对照配置文件和绑定注册列表判断执行外地域初始认证过程;
外地域重认证:MN从AGW3切换到AGW4,AGW4发送EAP-Initiate/Re-auth-Start消息通告所在域名,根据配置文件判断已在该域认证过,则MN根据绑定注册列表判断执行外地域重认证过程。
进一步,其特征在于,所述家乡域初始认证具体包括:
步骤1:MN接入家乡域的AGW1时,发送PANA-Client-Initiation(PCI,PANA客户端初始消息)消息,此消息用来探测网络中可以为其提供PANA认证的实体;
步骤2:AGW1收到PCI消息后,若支持PANA协议并提供接入认证服务则发送PANA-Auth-Request(S)(PAR(S),PANA认证请求开始消息)消息,否则将PCI消息丢弃;
步骤3:MN收到PAR(S)消息,若继续与AGW1执行PANA认证,则发送PANA-Auth-Answer(S)(PAA(S),PANA认证应答开始消息)以回复PAR(S)消息;
步骤4:AGW1收到PAA(S)消息表明可以继续PANA认证过程,发送广播消息EAP-Initiate/Re-auth-Start通告所在域的域名以提示MN执行该域初始认证或是重认证过程;MN收到该消息,对照自己的配置文件,将消息通告的域名与自己绑定的域名对比,查找是否存有HAAA域的注册列表,若没有则创建HAAA域注册列表,同时删除表中其它域的注册信息,初始Registration flag标识位置‘0’,表明是在HAAA域内的初始认证,MN无需对EAP-Initiate/Re-auth-Start消息作任何回复;待生存时间到期之后,AGW1在生存时间内没有收到MN的回复执行步骤5;
步骤5:EAP-Initiate/Re-auth-Start消息在生存时间内没有收到MN的回复,表明执行家乡域初始认证过程,AGW1发送EAP标识符请求消息EAP-Request/Identity消息请求MN的标识符,该消息承载在PANA协议中;
步骤6:MN将标识符通过EAP标识符应答消息EAP-Response/Identity消息传给AGW1,该消息承载在PANA协议中,此时将Registration flag标志位置‘1’;
步骤7:AGW1收到EAP-Response/Identity消息后将所需的MN身份标识符提取出来承载在Diameter协议中通过AAA(EAP-Response/Identity)消息传给HAAA;
步骤8:HAAA收到MN的标识符后开始完整的EAP-PSK初始认证过程,此时由HAAA端的PSK密钥派生AK和KDK密钥,HAAA发送第一条认证消息DEA+EAP_payload(req_psk#1)AVP(Diameter EAP应答消息),该消息包含如下参数:Flags、RAND_S、ID_S,Flags用来标识消息的序列号,RAND_S是HAAA端生成的随机数,ID_S是其HAAA的身份标识;
步骤9:AGW1收到HAAA发来的Flags值为1的认证消息,不对该消息做任何改动,将其承载在PANA协议中传给MN;
步骤10:MN收到AGW1发来的EAP/req_psk#1消息(EAP请求消息),同时由PSK派生AK和KDK密钥,通过获得的HAAA端的RAND_S和ID_S并已知自己的RAND_P、ID_P和AK经过AES-128算法计算得到MAC_P,MN发送Flags为2的认证消息EAP/res_psk#2(EAP应答消息),该消息包含如下参数:Flags,RAND_S,RAND_P,MAC_P和ID_P;
步骤11:HAAA接收到通过AGW1传来的承载在Diameter协议上的DER+EAP_payload(req-psk#2)AVP消息(Diameter EAP请求消息),对消息内容进行解析,获取RAND_P、ID_P和MAC_P值;
步骤12:HAAA在得知RAND_P和ID_P后,根据自己拥有的AK和RAND_S、ID_S经过与MN端生成MAC_P同样的过程重新计算MAC_P,若该值与MN端计算的值相等,则表明MN身份合法,此时由KDK派生TEK、MSK和EMSK,并将此认证结果result indication flag R作为PCHANNEL_S_0的一个属性连同HAAA端计算的MAC_S通过Flags为3的DEA+EAP_payload(req-psk#3)消息传给AGW1;
步骤13:MN收到由AGW1解析的承载在PANA上的EAP/req-psk#3消息并获得MAC_S,此时由KDK派生TEK、MSK和EMSK;
步骤14:由MN端具有的关于HAAA的信息重新计算MAC_S,若与HAAA端计算的相同,则认证HAAA身份合法,将认证结果作为PCHANNEL_P_1的一个属性通过Flags为4的EAP/req_psk#4消息传给HAAA,该消息包含如下参数:Flags,RAND_S,PCHANNEL_P_1,MN端由PCHANNEL_S_0得知自己通过了HAAA的认证,由MSK派生TSK密钥,用于保护后续的数据交互;
步骤15:HAAA收到DER+EAP_payload(req-psk#4)AVP消息,对数据进行解析得到PCHANNEL_P_1,此时MN和HAAA均已相互认证成功;
步骤16:HAAA将生成的MSK通过EAP success消息承载在Diameter协议上传给AGW1端,AGW1解析该消息提取并保留MSK,由MSK派生TSK用于保护后续与MN端交互的数据流,将EAP success承载在PANA协议上传给MN;
步骤17:MN收到携带EAP success属性值的PANA-Auth-Request(C)消息(PAR(C),PANA认证请求结束消息),至此MN和HAAA间的双向认证结束,MN和AGW1通过共享的TSK保护后续数据流;
步骤18:AGW1收到MN回复的PANA-Auth-Answer(C)(PAA(C),PANA认证应答结束消息)表明PANA认证过程结束。
进一步,其特征在于,家乡域重认证具体包括:
步骤1:MN接入到AGW2下发送PCI消息初始PANA会话进程,探测网络中可以为其提供PANA认证的实体;
步骤2:AGW2收到PCI消息后,若支持PANA协议并提供接入认证服务则发送PAR(S)消息,否则将PCI消息丢弃;
步骤3:MN回复PAA(S)消息,表明继续与AGW2执行PANA认证过程;
步骤4:AGW2广播EAP-Initiate/Re-auth-Start消息通告所在域的域名以提示MN执行该域初始认证或是重认证过程;
步骤5:MN收到AGW2发送的广播消息,根据通告的域名与配置文件绑定的域名对比,域名一致则查找域名下的Registration flag标识位,此时标识位为‘1’表明在该域执行过初始认证,MN发送EAP-Initiate/Re-auth消息开始重认证过程,此时由EMSK派生rRK密钥继而派生rMSK和rIK密钥,r IK密钥用于保护该消息的完整性,此时EAP-Initiate/Re-auth消息还将携带生成rIK所使用的序列数,该序列数将传给HAAA用于检验经过rIK保护的信令消息,若MN不能执行重认证则将此消息丢弃;
步骤6:HAAA收到EAP-Initiate/Re-auth消息表明执行重认证过程,则由存储在HAAA端的EMSK派生rRK密钥继而派生rIK和rMSK;
步骤7:HAAA将rMSK密钥通过EAP-Finish/Re-auth消息传给AGW2,AGW2收到该消息后提取rMSK并保存,同时由rMSK派生TSK密钥并写入sa.conf配置文件执行IPSec进程以保护与MN后续交互的数据流;
步骤8:MN收到AGW2发送的消息后,表明重认证过程成功,则由rRK派生重认证主会话密钥rMSK,同时由rMSK派生TSK和AGW2端建立安全关联,保护后续的数据流。
进一步,所述外地域初始认证具体包括:
步骤1:MN接入外地域的AGW3,发送PCI消息探测外地域网络中可以为其提供PANA认证的实体;
步骤2:AGW3收到PCI消息后,若支持PANA协议并提供接入认证服务则发送PAR(S)消息,否则将PCI消息丢弃;
步骤3:MN收到PAR(S)消息,回复PAA(S)消息继续与AGW3的PANA认证过程;
步骤4:AGW3发送广播消息EAP-Initiate/Re-auth-Start通告所在域的域名以提示MN执行该域初始认证或是重认证过程;MN收到该消息,对照自己的配置文件,将消息通告的域名与自己绑定的域名对比不一致,则表明此时接入外地域;查找是否有关FAAA域的注册列表,若没有则创建FAAA域注册列表,同时删除表中其它域的注册信息,初始Registration flag置‘0’,表明是在FAAA域内的初始认证,MN无需对EAP-Initiate/Re-auth-Start消息做任何回复,待生存时间到期之后,AGW3在生存时间内没有收到MN的回复执行步骤5;
步骤5:AGW3发送EAP-Request/Identity请求MN的标识符以对MN进行身份认证;
步骤6:MN将身份标识符承载在EAP-Response/Identity消息中发送给AGW3;
步骤7:AGW3将MN发来的EAP消息承载在AAA协议中传给FAAA,FAAA收到该消息后添加DSRK Request TLV和Domain name TLV,Domain name为FAAA的域名用于和EMSK一起来计算DSRK密钥值;
步骤8——步骤15:MN执行外地域的初始认证仍然要同享有PSK密钥的HAAA进行认证,在执行完整的认证算法之后,在MN端和HAAA端分别派生MSK,DSRK密钥,MSK通过信令消息传递并存储在AGW3上,用于派生TSK保护同MN间交互的数据流。DSRK密钥分发给FAAA,表明HAAA授权FAAA执行域内的重认证功能;
步骤16:EAP-PSK认证成功后,HAAA发送EAP success消息连同派生的DSRK和MSK密钥以及EMSKname TLV传给FAAA,EMSKname指定FAAA的域名;FAAA收到该消息后,提取并存储DSRK密钥作为FAAA域重认证过程的根密钥,将MSK密钥通过承载在AAA协议上的EAP消息连同EAP success消息传给AGW3,AGW3接收到消息后提取并存储MSK密钥,继而由MSK派生TSK密钥并写入sa.conf配置文件;
步骤17:MN收到携带EAP success属性值的PAR(C)消息,至此MN和HAAA间的双向认证结束,MN端和AGW3端触发setkey进程读取sa.conf文件建立IPSec机制保护后续交互的数据流;
步骤18:AGW3收到MN回复的PAA(C)消息表明PANA认证过程结束。
进一步,所述外地域重认证具体包括:
步骤1:MN接入到AGW4下发送PCI消息初始PANA会话进程,探测网络中可以为其提供PANA认证的实体;
步骤2:AGW4收到PCI消息后,若支持PANA协议并提供接入认证服务则发送PAR(S)消息,否则将PCI消息丢弃;
步骤3:MN回复PAA(S)消息,表明继续与AGW4执行PANA认证过程;步骤4:AGW4广播EAP-Initiate/Re-auth-Start消息通告所在域的域名以提示MN执行该域初始认证或是重认证过程;
步骤5:MN收到消息后,根据通告的域名与配置文件绑定的域名对比,不一致则继续查找是否创建了FAAA域注册信息,找到对应的FAAA域的注册信息并且Registration flag‘R’标识位置‘1’,表明已在FAAA域认证过了,遂执行重认证过程,MN发送EAP-Initiate/Re-auth消息开始重认证,此时由EMSK派生DS-rRK密钥,由DS-rRK继续派生rMSK和DS-rIK密钥,DS-rIK功能同rIK用来保护ERP信令;
步骤6:AGW4将MN发送的消息承载在Diameter协议中发送给FAAA,AGW4仅提取消息中所需内容,不对其进行添加或修改;
步骤7:FAAA收到MN发来的初始重认证消息执行FAAA域内的重认证过程,由DSRK派生DS-rRK密钥,随后继续派生DS-rIK和rMSK密钥,EAP-Initiate/Re-auth消息到达时,FAAA根据序列数查找对应的DS-rIK验证该消息的完整性,并将rMSK通过EAP-Finish/Re-auth消息传给AGW4以回复MN,重认证过程结束;
步骤8:AGW4提取并保存rMSK,并由rMSK派生TSK保护后续交互的数据流,将EAP-Finish/Re-auth消息承载在PANA协议中发送给MN,MN收到重认证结束消息,由rMSK派生TSK密钥同AGW4建立安全关联以保护后续交互的数据流。
本发明的优点在于:
本发明在分离机制移动性管理系统下,实现了接入认证的密钥分发,包括家乡域和外地域的初始认证以及重认证的密钥分发过程。密钥分发机制的部署使得接入网络中的移动节点必须经过严谨的认证过程获得网络授权服务。
复杂的密钥生成算法,严谨的密钥派生过程,逐级分发子密钥的唯一性以及不可逆性,同时结合基于EAP-PSK算法的PANA接入认证协议实现了移动终端和认证服务器的双向认证功能。
在移动终端和接入网关之间部署IPSec机制,将认证过程派生的TSK密钥作为IPSec的加密密钥,有效的保护了认证之后的数据流,增强了网络的安全性能。
具体实施方式
本发明分离机制移动性管理系统实现接入认证的密钥分发方法,描述了一种该系统下实现接入认证的密钥分发方法。移动节点和认证服务器之间唯一共享一对预共享密钥PSK,由PSK派生并分发域内或域间切换以及重认证过程各级子密钥,并携带在信令中传输以执行认证功能。在移动终端和认证端(分离机制拓扑中的AGW实体)间部署IPSec机制,将认证结束后派生的TSK密钥作为加密密钥保护认证结束后的数据流。
本发明涉及到4种场景,即家乡域的初始认证和重认证过程以及外地域的初始认证和重认证过程,定义Registration flag‘R’标志位用来标识移动终端在域内首次接入的初始认证和多次切换的重认证过程。
密钥分发的严谨性以及两个实体间唯一共享一对密钥的不可伪造性,保证了认证的安全性以及认证信令的完整性,防止因攻击者窃取篡改密码而造成的认证中断或失败。本专利中密钥派生使用指定算法,并且在两个认证实体间协商使用相同的算法,保证派生密钥的一致性。
如图1所示为本发明的分离机制移动性管理接入认证的密钥分发拓扑图。移动节点初始接入家乡域时,如虚线所示,接入网内的AGW广播EAP-Initiate/Re-auth-Start(EAP初始/重认证开始消息)通告所在域的域名,表明此AGW支持重认证功能。MN根据收到的域名通告消息判断所接入的域为家乡域还是外地域,并查找指定域下的绑定注册列表判断初始认证还是重认证过程。家乡域初始认证过程由共享在MN和HAAA端的PSK预共享密钥派生各级子密钥携带在相应信令中传输。外地域初始认证过程中,如实线所示,MN也要和享有PSK密钥的HAAA进行完整的认证交互过程,但不同于家乡域的认证,MN要通过FAAA向HAAA申请DSRK密钥,以授权FAAA代替HAAA执行外地域的重认证过程。
移动节点执行域内切换时,接入网的AGW广播EAP-Initiate/Re-auth-Start通告所在域的域名,MN根据收到的域名通告消息判断此时为重认证过程。家乡域重认证由初始认证生成的扩展主会话密钥EMSK派生重认证过程各级子密钥并通过重认证信令携带。外地域重认证在MN和FAAA间执行,由初始认证从HAAA处获得的DSRK逐级派生子密钥来实现。
经过成功的初始认证或重认证之后,MN和AGW间共享一对临时会话密钥TSK,TSK被自动写入到安全策略配置文件sa.conf中,通过在MN和AGW间部署IPSec机制来加密保护认证之后的数据流。
密钥定义
本文涉及到的密钥包括初始认证过程,域内重认证过程以及域间切换过程的密钥。
PSK--Pre-Shared Key,16bytes,预共享密钥,由MN和HAAA共享,一个指定的移动节点和指定的认证服务器之间共享唯一的PSK。
AK——Authentication Key,16bytes,存储于MN和HAAA端,AK是由PSK派生的静态长期密钥,作为认证参数参与EAP-PSK算法执行过程。
KDK--Key-Derivation Key,16bytes,存储于MN和HAAA端,由PSK分发的长期静态密钥,KDK作为密钥分发密钥派生初始和重认证所需密钥(如TEK,MSK和EMSK)。
TEK——Transient EAP Key,16bytes,存储于MN和HAAA端,用于生成Tag,在EAP-PSK算法执行过程中建立Protected Channel(PCHANNEL)。
MSK--Master Session Key,64bytes,分别由MN和HAAA端各自的KDK生成并存储,在成功的认证过程结束后由服务器端传给认证端(authenticator,分离机制移动性管理系统中由AGW充当)。
rMSK--re-authentication Master Session Key,64bytes,由EMSK或DS-rRK生成,在重认证过程结束后由HAAA或FAAA传给所在域内的认证端(authenticator,分离机制移动性管理系统中由AGW充当)。
EMSK--Extended Master Session Key,64bytes,分别由MN和HAAA端各自的KDK生成并存储,用于重认证过程分发重认证根密钥(rRK)。
TSK--Transient Session Key,64bytes,分别由MN和AGW端各自的MSK或rMSK派生并存储,用于保护认证过程结束后的数据流。
rRK(DS-rRK)--re-authentication Root Key(Domain-Specific RootKey),64bytes,由HAAA端的EMSK派生并存储(由FAAA端的DSRK派生并存储),作为HAAA域内的重认证根密钥(作为FAAA域内的重认证根密钥),继续派生重认证过程所需密钥。
rIK(DS-rIK)--re-authentication Integrity Key(Domain-SpecificIntegrity Key),64bytes,由HAAA端的rRK(由FAAA端的DS-rRK派生)派生并存储,用于保护重认证信令(EAP-Initiate/Re-auth和EAP-Finish/Re-auth)的完整性。
DSRK--Domain-Specific Root Key,64bytes,作为外地域内初始认证的根密钥,由EMSK派生并由HAAA传给FAAA。
密钥分发层次
如图2所示为本发明所述的密钥分发方法包括家乡域的初始认证和重认证,如图3所示为外地域的初始认证和重认证过程。
家乡域认证过程中,在认证过程开始时由KDK派生MSK和EMSK(保留用作重认证使用),为了保证认证的安全性和密钥的有效性,每次重认证的密钥都由KDK重新计算派生。
外地域认证过程中,不同于家乡域认证过程,在外地域执行重认证过程时,FAAA需向HAAA请求DSRK密钥以获得授权代替HAAA执行域内切换密钥分发。
家乡域密钥分发层次
如图2所示,详细描绘了家乡域初始认证和重认证密钥分发流程,左侧区域为初始认证的密钥派生;右侧区域为重认证过程涉及的密钥,在每个密钥上方分别标注了密钥持有者实体。
外地域密钥分发层次
图3所示为外地域初始认证和重认证密钥派生结构图,左侧区域的初始认证仍然是MN同HAAA执行认证交互;右侧区域与图2中不同的是,FAAA并没有关于MN的密钥材料,需同MN所在的HAAA请求DSRK,在MN同HAAA执行成功的初始认证过程后,在HAAA端由PSK派生EMSK并继续派生DSRK分发给FAAA,此后FAAA域内的重认证过程由MN和FAAA操作执行。
信令格式
根据本专利的密钥分发流程定义了重认证信令消息携带的TLV(TV)属性值,具体定义如下。
当MN接入AGW所在域时,AGW发送EAP-Initiate/Re-auth-Start消息给MN通告所在域的域名。EAP-Initiate/Re-auth-Start广播消息是根据RFC5296协议规范并结合草案[8]和草案[9]定义的,对EAP信令格式进行了扩展,并支持Hokey重认证。EAP-Initiate/Re-auth-Start信令格式具体见表1:
表1:EAP-Initiate/Re-auth-Start信令格式
EAP-Initiate/Re-auth-Start消息字段的含义及作用如下:
命令码:5,表示ERP初始消息;
类型:1,表示ERP初始消息Start类型;
保留位:保留作扩展使用,该字段由发送端初始化为0,接收端忽略;
TLV和TV属性值
类型=4:Domain name TLV属性值,通告所在域的域名;
值:表示所在域的域名,如bjtu.net为家乡域,iplab.net为外地域;
当MN收到AGW广播的EAP-Initiate/Re-auth-Start消息时,MN对照存储的绑定注册列表判断初始认证还是重认证,执行相应的认证过程。绑定注册列表如表2所示:
表2:绑定注册列表
Domain name:bjtu.net |
Registration flag:0(1) |
Domain name:iplab.net |
Registration flag:0(1) |
每个MN维护一个家乡域域名,根据接收的域名广播消息匹配存储的域名,若一致则执行家乡域的认证,继续检查该域名下的注册标识位‘R’,若为0则执行家乡域初始认证;若为1则执行家乡域重认证。匹配域名不一致则执行外地域认证,根据R标识位判断初始认证还是重认证过程。
MN在域内切换时,需要执行重认证过程,为了简化繁杂的认证信令交互,减少网络时延,需要重新定义两条消息信令EAP-Initiate/Re-auth(EAP初始/重认证消息)和EAP-Finish/Re-auth(EAP结束/重认证消息)以取代完整认证过程复杂的往返交互。EAP-Initiate/Re-auth信令格式具体见表3,EAP-Finish/Re-auth信令格式具体见表4。
表3:EAP-Initiate/Re-auth信令格式
EAP-Initiate/Re-auth消息各字段的含义及作用如下:
命令码:5,表示ERP重认证初始消息;
标识符:表示消息序号,一对应答回复消息享有同样的序列号;
R(e-authentication):重认证结果标识位,0表示成功,1表示失败;
B(ootstrap):引导标识位,置位表示为引导消息;
L(ifetime):生存时间标识位;
序列号:用于抗重播保护;
长度:包含后面所有字段的长度,以字节为单位;
类型:2,表示ERP重认证消息;
TLV和TV属性值:
类型=1:KeyName-NAI TLV,表示指定域的重认证执行。Value字段分为username part和realm part两部分,username部分填充EMSKname,rIK由EMSK分发则realm part部分为家乡域域名bjtu.net),若rIK由DSRK分发则realm part部分为外地域域名(如iplab.net)。
类型=4:Domain name TLV属性值,通告所在域的域名,并在值部分填充。
类型=2(3):TTL TV属性值,表示rRK(rMSK)密钥的生存时间,值字段置‘0’则用于向服务器请求TTL。
算法类型:表示用于ERP的完整性算法,指定的加密方式有:
0 RESERVED
1 HMAC-SHA256-64
2 HMAC-SHA256-128
3 HMAC-SHA256-256
认证标识:表明ERP数据包的完整性校验,完整性校验需要使用重认证完整性密钥rIK。
表4:EAP-Finish/Re-auth信令格式
命令码:6,表示ERP重认证结束消息;
TLV和TV属性值:
类型=5:算法类型TLV,Value字段包含一个算法类型列表,每个类型占一个字节,同时在算法类型字段填入所选的算法;
类型=6,认证标识TLV,若HAAA服务器验证了FAAA服务器的授权并将DSRK密钥分发给FAAA服务器,此时将FAAA服务器的域名包含在Domain nameTLV中返回,值字段以‘0’填充。
分离机制移动性管理接入认证的密钥分发包括域内域间初始认证和重认证过程。
移动节点在家乡域执行初始认证和重认证时的密钥分发。移动节点MN和其家乡认证服务器HAAA间唯一共享一对预共享密钥PSK,并且在接入认证过程执行前存储于两个实体上。AK和KDK在执行PANA接入认证协议时由PSK生成存储在MN和HAAA服务器端,AK用于EAP-PSK算法进行MN和HAAA的双向认证过程,KDK生成MSK用于域内切换密钥派生,生成EMSK用于Hokey重认证密钥的派生。执行家乡域内切换需要进行重认证过程,此时由存储在MN和HAAA服务器端的EMSK生成rRK密钥作为重认证根密钥,rRK继续派生rIK密钥用于保护重认证消息的完整性,派生的rMSK存储在MN和AGW端,作为重认证主会话密钥同MSK作用相同,rMSK(MSK)派生TSK临时会话密钥作为IPSec机制加密密钥保护认证过程结束后的数据流。
MN接入外地域,FAAA在初始认证过程中需向HAAA申请DSRK密钥,用于外地域的重认证过程。外地域的初始认证同家乡域初始认证相同仍在MN和HAAA间交互信令消息获取相应密钥。初始认证结束后,分别在MN和HAAA端派生DSRK密钥,携带在认证成功消息EAP success消息中由HAAA传给FAAA。FAAA持有DSRK密钥即为获得了HAAA在指定域的授权,则在该域的重认证过程由FAAA代替HAAA来实现。重认证过程中由DSRK派生DS-rRK密钥,作用同rRK作为指定域重认证根密钥派生DS-rIK密钥保护重认证信令完整性(同rIK)和rMSK。由rMSK派生的TSK作为IPSec加密密钥保护后续交互的数据流信息。
家乡域初始认证
MN初始接入家乡域的AGW1,AGW1发送广播的EAP-Initiate/Re-auth-Start消息通告所在域的域名,MN根据配置文件判断此时为家乡域的初始过程,执行相应的操作,密钥根据相应场景逐级派生。家乡域的初始认证过程由共享在MN和HAAA上的PSK派生各级子密钥。在HAAA端派生的MSK通过认证成功消息发送到AGW端,与MN端共享,由MSK派生的下一级TSK密钥用于保护认证过程结束后的数据流。在MN和HAAA端,与MSK同时派生的EMSK用于重认证过程。如图4所示,详细步骤如下:
步骤1:MN接入家乡域的AGW1时,发送PCI消息,此消息用来探测网络中可以为其提供PANA认证的实体;
步骤2:AGW1收到PCI消息后,若支持PANA协议并提供接入认证服务则发送PAR(S)消息,否则将PCI消息丢弃;
步骤3:MN收到PAR(S)消息,若继续与AGW1执行PANA认证,则发送PAA(S)消息以回复PAR(S)消息;
步骤4:AGW1收到PAA(S)消息表明可以继续PANA认证过程,发送广播消息EAP-Initiate/Re-auth-Start通告所在域的域名(例如可以是bjtu.net)以提示MN执行该域初始认证或是重认证过程。MN收到该消息,对照自己的配置文件,将消息通告的域名与自己绑定的域名对比,查找是否存有HAAA域的注册列表,若没有则创建HAAA域注册列表(同时删除表中其它域的注册信息),初始Registration flag标识位置‘0’,表明是在HAAA域内的初始认证,MN无需对EAP-Initiate/Re-auth-Start消息作任何回复。待生存时间到期之后,AGW1在生存时间内没有收到MN的回复执行步骤5;
步骤5:EAP-Initiate/Re-auth-Start消息在生存时间内没有收到MN的回复,表明执行家乡域初始认证过程,AGW1发送EAP-Request/Identity消息请求MN的标识符,该消息承载在PANA协议中;
步骤6:MN将标识符(例如是user1.bjtu.net)通过EAP-Response/Identity消息传给AGW1,该消息承载在PANA协议中。此时将Registration flag标志位置‘1’;
步骤7:AGW1收到EAP-Response/Identity消息后将所需的MN身份标识符提取出来承载在Diameter协议中通过AAA(EAP-Response/Identity)消息传给HAAA;
步骤8:HAAA收到MN的标识符后开始完整的EAP-PSK初始认证过程。此时由HAAA端的PSK密钥派生AK和KDK密钥。HAAA发送第一条认证消息DEA+EAP_payload(req_psk#1)AVP,该消息包含如下参数:Flags、RAND_S、ID_S,Flags用来标识消息的序列号,RAND_S是HAAA端生成的随机数,ID_S是其HAAA的身份标识;
步骤9:AGW1收到HAAA发来的Flags值为1的认证消息,不对该消息做任何改动,将其承载在PANA协议中传给MN;
步骤10:MN收到AGW1发来的EAP/req_psk#1消息,同时由PSK派生AK和KDK密钥。通过获得的HAAA端的RAND_S和ID_S并已知自己的RAND_P、ID_P和AK经过AES-128算法计算得到MAC_P,MN发送Flags为2的认证消息EAP/res_psk#2,该消息包含如下参数:Flags,RAND_S,RAND_P,MAC_P和ID_P;
步骤11:HAAA接收到通过AGW1传来的承载在Diameter协议上的DER+EAP_payload(req-psk#2)AVP消息,对消息内容进行解析,获取RAND_P、ID_P和MAC_P值;
步骤12:HAAA在得知RAND_P和ID_P后,根据自己拥有的AK和RAND_S、ID_S经过与MN端生成MAC_P同样的过程重新计算MAC_P,若该值与MN端计算的值相等,则表明MN身份合法(此时由KDK派生TEK、MSK和EMSK)并将此认证结果(result indication flag R)作为PCHANNEL_S_0的一个属性连同HAAA端计算的MAC_S通过Flags为3的DEA+EAP_payload(req-psk#3)消息传给AGW1。该消息携带如下参数:Flags、RAND_S、MAC_S、PCHANNEL_S_0,其中PCHANNEL_S_0包含如下属性值:
4 byte Nonce N
16 byte Tag
2 bit result indication flag R
1 bit extension flag E ‘0’
5 bit Reserved field ‘0’
PCHANNEL参数有两个作用,一方面由2bit的result indication flag‘R’携带认证结果,另一方面由16bytes Tag来保护认证结果,Tag值的生成与TEK密钥有关。
步骤13:MN收到由AGW1解析的承载在PANA上的EAP/req-psk#3消息并获得MAC_S,此时由KDK派生TEK、MSK和EMSK;
步骤14:由MN端具有的关于HAAA的信息重新计算MAC_S,若与HAAA端计算的相同,则认证HAAA身份合法,将认证结果作为PCHANNEL_P_1的一个属性通过Flags为4的EAP/req_psk#4消息传给HAAA。该消息包含如下参数:Flags,RAND_S,PCHANNEL_P_1。MN端由PCHANNEL_S_0得知自己通过了HAAA的认证,由MSK派生TSK密钥,用于保护后续的数据交互;
步骤15:HAAA收到DER+EAP_payload(req-psk#4)AVP消息,对数据进行解析得到PCHANNEL_P_1,此时MN和HAAA均已相互认证成功;
步骤16:HAAA将生成的MSK通过EAP success消息承载在Diameter协议上传给AGW1端,AGW1解析该消息提取并保留MSK,由MSK派生TSK用于保护后续与MN端交互的数据流,将EAP success承载在PANA协议上传给MN;
步骤17:MN收到携带EAP success属性值的PAR(C)消息,至此MN和HAAA间的双向认证结束。MN和AGW1通过共享的TSK保护后续数据流;
步骤18:AGW1收到MN回复的PAA(C)消息表明PANA认证过程结束。
家乡域重认证
MN从AGW1切换到AGW2时,AGW发送EAP-Initiate/Re-auth-Start消息通告所在域名,MN根据该消息对照配置文件和绑定注册列表判断执行家乡域重认证过程。重认证过程由初始认证派生的EMSK逐级派生子密钥,rRK作为重认证根密钥派生rIK和rMSK,rIK用于保护信令完整性,rMSK的作用同MSK派生TSK密钥保护后续交互的数据流。家乡域重认证如图5,详细步骤如下:
步骤1:MN接入到AGW2下发送PCI消息初始PANA会话进程,探测网络中可以为其提供PANA认证的实体;
步骤2:AGW2收到PCI消息后,若支持PANA协议并提供接入认证服务则发送PAR(S)消息,否则将PCI消息丢弃;
步骤3:MN回复PAA(S)消息,表明继续与AGW2执行PANA认证过程;
步骤4:AGW2广播EAP-Initiate/Re-auth-Start消息通告所在域的域名(如bjtu.net)以提示MN执行该域初始认证或是重认证过程;
步骤5:MN收到AGW2发送的广播消息,根据通告的域名与配置文件绑定的域名对比,域名一致则查找域名下的Registration flag标识位,此时标识位为‘1’表明在该域执行过初始认证,MN发送EAP-Initiate/Re-auth消息开始重认证过程,此时由EMSK派生rRK密钥继而派生rMSK和rIK密钥,r IK密钥用于保护该消息的完整性,此时EAP-Initiate/Re-auth消息还将携带生成rIK所使用的序列数(此序列数由MN和HAAA经指定算法生成,一对请求应答消息享有相同的序列数值),该序列数将传给HAAA用于检验经过rIK保护的信令消息,若MN不能执行重认证则将此消息丢弃;
步骤6:HAAA收到EAP-Initiate/Re-auth消息表明执行重认证过程,则由存储在HAAA端的EMSK派生rRK密钥继而派生rIK和rMSK;
步骤7:HAAA将rMSK密钥通过EAP-Finish/Re-auth消息传给AGW2,AGW2收到该消息后提取rMSK并保存,同时由rMSK派生TSK密钥并写入sa.conf配置文件执行IPSec进程以保护与MN后续交互的数据流;
步骤8:MN收到AGW2发送的消息后,表明重认证过程成功,则由rRK派生重认证主会话密钥rMSK,同时由rMSK派生TSK和AGW2端建立安全关联,保护后续的数据流。
外地域初始认证
当MN从家乡域切换到外地域的AGW3时,AGW发送EAP-Initiate/Re-auth-Start消息通告所在域名,MN根据该消息对照配置文件和绑定注册列表判断执行外地域初始认证过程。此时MN仍然要同享有PSK的HAAA执行初始认证,由PSK在MN和HAAA端派生初始认证过程各级子密钥,同时派生DSRK密钥用于授权FAAA执行外地域重认证过程。外地域初始认证同家乡域初始认证相似,最后派生MSK密钥并通过EAP succ es s消息传给AGW并继续派生TSK密钥以保护同MN间交互的数据流。外地域初始认证如图6,详细步骤如下:
步骤1:MN接入外地域的AGW3,发送PCI消息探测外地域网络中可以为其提供PANA认证的实体;
步骤2:AGW3收到PCI消息后,若支持PANA协议并提供接入认证服务则发送PAR(S)消息,否则将PCI消息丢弃;
步骤3:MN收到PAR(S)消息,回复PAA(S)消息继续与AGW3的PANA认证过程;
步骤4:AGW3发送广播消息EAP-Initiate/Re-auth-Start通告所在域的域名(如iplab.net)以提示MN执行该域初始认证或是重认证过程。MN收到该消息,对照自己的配置文件,将消息通告的域名与自己绑定的域名(如bjtu.net)对比不一致,则表明此时接入外地域。查找是否有关FAAA域的注册列表,若没有则创建FAAA域注册列表(同时删除表中其它域的注册信息),初始Registration flag置‘0’,表明是在FAAA域内的初始认证,MN无需对EAP-Initiate/Re-auth-Start消息做任何回复,待生存时间到期之后,AGW3在生存时间内没有收到MN的回复执行步骤5;
步骤5:AGW3发送EAP-Request/Identity请求MN的标识符以对MN进行身份认证;
步骤6:MN将身份标识符(如user1.bjtu.net)承载在EAP-Response/Identity消息中发送给AGW3;
步骤7:AGW3将MN发来的EAP消息承载在AAA协议中传给FAAA,FAAA收到该消息后添加DSRK Request TLV和Domain name TLV,Domain name为FAAA的域名用于和EMSK一起来计算DSRK密钥值;
步骤8--步骤15:MN执行外地域的初始认证仍然要同享有PSK密钥的HAAA进行认证,在执行完整的认证算法之后,在MN端和HAAA端分别派生MSK,DSRK密钥。MSK通过信令消息传递并存储在AGW3上,用于派生TSK保护同MN间交互的数据流。DSRK密钥分发给FAAA,表明HAAA授权FAAA执行域内的重认证功能。
步骤16:EAP-PSK认证成功后,HAAA发送EAP success消息连同派生的DSRK和MSK密钥以及EMSKname TLV传给FAAA,EMSKname指定FAAA的域名。FAAA收到该消息后,提取并存储DSRK密钥(作为FAAA域重认证过程的根密钥),将MSK密钥通过承载在AAA协议上的EAP消息连同EAP success消息传给AGW3。AGW3接收到消息后提取并存储MSK密钥,继而由MSK派生TSK密钥并写入sa.conf配置文件;
步骤17:MN收到携带EAP success属性值的PAR(C)消息,至此MN和HAAA间的双向认证结束,MN端和AGW3端触发setkey进程读取sa.conf文件建立IPSec机制保护后续交互的数据流;
步骤18:AGW3收到MN回复的PAA(C)消息表明PANA认证过程结束。
外地域重认证
MN从AGW3切换到AGW4,AGW发送EAP-Initiate/Re-auth-Start消息通告所在域名,MN根据该消息对照配置文件和绑定注册列表判断执行外地域重认证过程。通过初始认证过程,FAAA获得了HAAA派生的DSRK密钥,可以代替HAAA执行该域内的重认证。MN和FAAA端由DSRK密钥派生DS-rRK作为外地域重认证根密钥,DS-rRK继续派生DS-rIK密钥保护重认证信令完整性,派生rMSK密钥并传给AGW,享有rMSK的MN和AGW通过派生的TSK密钥保护后续交互的数据流。重认证信令流程如图7,详细步骤如下:
步骤1:MN接入家乡域的AGW4时,发送PCI消息,此消息用来探测网络中可以为其提供PANA认证的实体;
步骤2:AGW4收到PCI消息后,若支持PANA协议并提供接入认证服务则发送PAR(S)消息,否则将PCI消息丢弃;
步骤3:MN收到PAR(S)消息,若继续与AGW4执行PANA认证,则发送PAA(S)消息以回复PAR(S)消息;
步骤4:AGW4广播EAP-Initiate/Re-auth-Start消息通告所在域的域名(如iplab.net)以提示MN执行该域初始认证或是重认证过程;
步骤5:MN收到消息后,根据通告的域名与配置文件绑定的域名对比,不一致则继续查找是否创建了FAAA域注册信息,找到对应的FAAA域的注册信息并且Registration flag‘R’标识位置‘1’,表明已在FAAA域认证过了,遂执行重认证过程,MN发送EAP-Initiate/Re-auth消息开始重认证,此时由EMSK派生DS-rRK密钥,由DS-rRK继续派生rMSK和DS-rIK密钥,DS-rIK功能同rIK用来保护ERP信令;
步骤6:AGW4将MN发送的消息承载在Diameter协议中发送给FAAA,AGW4仅提取消息中所需内容,不对其进行添加或修改;
步骤7:FAAA收到MN发来的初始重认证消息执行FAAA域内的重认证过程,由DSRK派生DS-rRK密钥,随后继续派生DS-rIK和rMSK密钥,EAP-Initiate/Re-auth消息到达时,FAAA根据序列数查找对应的DS-rIK验证该消息的完整性,并将rMSK通过EAP-Finish/Re-auth消息传给AGW4以回复MN,重认证过程结束;
步骤8:AGW4提取并保存rMSK,并由rMSK派生TSK保护后续交互的数据流。将EAP-Finish/Re-auth消息承载在PANA协议中发送给MN。MN收到重认证结束消息,由rMSK派生TSK密钥同AGW4建立安全关联以保护后续交互的数据流。
IPSec部署
为实现移动终端和接入网关之间的IPSec数据流保护,需要在两个实体间安装IPsec-tools工具包,键入setkey执行加密进程,此时setkey需要读取sa.conf配置文件,由认证过程派生的TSK密钥会自动写入sa.conf文件中,每次执行切换过程会派生新的TSK密钥,因此sa.conf文件也是随着每次切换的执行而更新。sa.conf配置文件如下所示:
flush;
spdflush;
add IP(MN)IP(AGW)esp 2000 -E 3des-cbc"123456789012123456789012";
add IP(AGW)IP(MN)esp 2000 -E 3des-cbc"123456789012123456789012";
spdaddIP(MN)IP(AGW)any-P out ipsec esp/transport//require;
spdaddIP(AGW)IP(MN)any-P in ipsec esp/transport//require;
IP(MN)和IP(AGW)分别表示MN和AGW间的地址,“123456789012123456789012”为TSK密钥,由于sa.conf配置文件对于密钥的长度是有限制的,必须为24字节,但是TSK密钥为64字节,因此需要对TSK密钥进行24字节截短再写入sa.conf配置文件中。如上的配置策略即为对所有由MN发往AGW的数据包和从AGW发往MN的数据包进行IPSec保护,加密密钥为24字节长度的TSK密钥。经过IPSec保护的数据包经过封装,掩盖了原始信息内容,只有享有同样密钥的实体才能对其解密恢复原始信息。
应当理解,以上借助优选实施例对本发明的技术方案进行的详细说明是示意性的而非限制性的。本领域的普通技术人员在阅读本发明说明书的基础上可以对各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。