具体实施方式
实施例1:
移动节点在家乡域的初始安全接入过程如图1所示,步骤如下:
步骤1、MN附着在ATR1;
步骤2、ATR1向MN发送身份请求和挑战值CV(Challenge Value);
步骤3、MN生成随机数R1,使用MN与HAAA预共享的密钥P加密CV和R1,计算EP(CV||R1),计算消息哈希值H(EID2||CV||EP(CV||R1)),然后向ATR1发送接入认证请求,消息包括:MN的终端标识EID2,挑战值CV,加密信息EP(CV||R1)和哈希值H(EID2||CV||EP(CV||R1))。其中Ek(m)表示使用密钥k加密信息m后的密文,H()是哈希函数,“||”是字符串连接符;
步骤4、ATR1将接入认证请求消息发送到HAAA;
步骤5、HAAA首先检查哈希值H(EID2||CV||EP(CV||R1)),确认消息的完整性。然后使用MN与HAAA预共享的密钥P解密得到CV,并与消息中未加密的CV比较。若哈希值或CV匹配错误,则拒绝MN接入,终止初始接入过程。若两个值匹配成功,则可以确认MN身份。然后,HAAA使用哈希函数计算域间切换密钥值GK=H(S||EID2)和域内切换密钥值LK=H(G||EID2),其中S是HAAA与其他VAAA的预共享密钥,G是HAAA与区域内ATR共享的组密钥。然后HAAA使用预共享密钥P加密GK,LK和R1,计算EP(GK||LK||R1)和哈希值H(Au||EID2||EP(GK||LK||R1)),其中Au是MN的认证成功标志;
步骤6、HAAA将接入确认消息发送给ATR1,内容包括认证成功标志Au,MN的终端标识EID2,加密信息EP(GK||LK||R1)和哈希值H(Au||EID2||EP(GK||LK||R1));
步骤7、ATR1根据认证成功标志Au,确认MN认证成功,允许MN接入;
步骤8、ATR1向TR2发送位置注册(Location-Register)消息,注册MN的位置信息EID2-LLOC1;
步骤9、TR2向映射服务器MS发送映射注册消息(Map-Register),注册MN的映射信息EID2-to-LOC2;
步骤10、MS返回映射通知(Map-Notify)消息,确认MN映射信息注册完成;
步骤11、TR2向ATR1返回位置确认(Location-Acknowledgement)消息,确认MN的位置信息注册完成;
步骤12、ATR1将接入确认消息发送给MN,内容包括认证成功标志Au,MN的终端标识EID2,加密信息EP(GK||LK||R1)和哈希值H(Au||EID2||EP(GK||LK||R1));
步骤13、MN检查哈希值H(Au||EID2||EP(GK||LK||R1)),核对解密得到的R1与先前发出的R1是否相同,检查Au确认网络的真实性,解密得到GK和LK并存储,完成双向认证;
步骤14、CN向TR1发送普通数据包,数据包源和目的地址分别为EID1和EID2;
步骤15、TR1向MS发送映射查询(Map-Request)消息,查询MN的映射信息;
步骤16、MS向TR1返回映射应答(Map-Reply)消息,包含MN的映射信息EID2-to-LOC2;
步骤17、TR1根据MN的映射信息封装数据包,为原始数据包加入新的外部包头,该包头源和目的地址分别为LOC1和LOC2。核心网根据隧道数据包的路由标识对其进行寻路转发;
步骤18、TR2解封装隧道数据包,去掉TR1封装的外部包头,然后TR2根据MN的位置信息EID2-LLOC1将数据包通过隧道发送给ATR1,具体操作是TR2为原始数据包增加新的外部包头,该包头目的地址为LLOC1;
步骤19、ATR1收到隧道数据包后,去掉外部包头,将原始数据包转发给MN。
实施例2:
移动节点在区域内切换时,不需要AAA服务器参与,如图2所示。移动节点在域内的安全切换步骤如下:
步骤1、MN与ATR1断开连接,附着在ATR2;
步骤2、ATR2向MN发送身份请求和挑战值CV(Challenge Value);
步骤3、MN生成随机数R1,使用接入时获得的域内切换密钥LK、加密CV和R1,计算ELK(CV||R1),计算哈希值H(EID2||CV||ELK(CV||R1)),然后向ATR2发送切换接入请求消息,内容包括:MN的终端标识EID2,挑战值CV,加密信息ELK(CV||R1)和哈希值H(EID2||CV||ELK(CV||R1));
步骤4、ATR2检查H(EID2||CV||ELK(CV||R1)),使用与HAAA预共享的组密钥G 计算MN的域内切换密钥LK=H(G||EID2)。解密ELK(CV||R1)得到CV,并与消息中未加密的CV比较,若匹配成功,则ATR2允许MN接入网络,然后计算H(Au||EID2||R1);
步骤5、ATR2向ATR1发送隧道建立请求(AR-Tunne1-REQ)消息,更新ATR1中MN的位置信息为EID2-LLOC2;
步骤6、ATR1向ATR2返回隧道建立应答(AR-Tunne1-Reply)消息,完成与ATR2的隧道建立,此后,ATR1向ATR2通过隧道转发目的地为EID2的数据;
步骤7、ATR2向MN发送切换确认消息,内容包括:认证成功标志Au,MN的终端标识EID2和哈希值H(Au||EID2||R1);
步骤8、MN检查哈希值H(Au||EID2||R1),核对解密得到的随机数R1与先前生成的随机数R1是否相同,确认完成切换过程;
步骤9、CN向TR1发送普通数据包,数据包源和目的地址分别为EID1和EID2;
步骤10、TR1根据映射信息EID2-to-LOC2为数据包封装外部包头,外部包头源地址和目的地址分别为LOC1和LOC2;核心网根据隧道数据包的路由标识对其进行寻路转发;
步骤11、TR2解封装隧道数据包,去掉TR1封装的外部包头,然后TR2根据MN的位置信息EID2-LLOC1将数据包通过隧道发送给ATR1,具体操作是TR2为原始数据包增加新的外部包头,该包头目的地址为LLOC1;
步骤12、ATR1收到隧道数据包后,去掉其外部包头,并通过隧道将目的地为MN的原始数据包转发给ATR2,具体操作是ATR1为原始数据包增加新的外部包头,该包头目的地址为LLOC2;
步骤13、ATR2收到隧道数据包后,去掉外部包头,将原始数据包转发给MN;
步骤14、ATR2发送位置更新(Location Update)消息,更新TR2中MN的位置信息EID2-LLOC2;
步骤15、TR2返回位置确认(Location Acknowledgement)消息,确认MN的位置更新完成;
步骤16、CN向TR1发送普通数据包,数据包源和目的地址分别为EID1和EID2;
步骤17、TR1根据映射信息EID2-to-LOC2为数据包封装外部包头,外部包头源 地址和目的地址分别为LOC1和LOC2;核心网根据隧道数据包的路由标识对其进行寻路转发;
步骤18、TR2解封装隧道数据包,去掉TR1封装的外部包头,然后TR2根据MN的位置信息EID2-LLOC2将数据包通过隧道发送给ATR2,具体操作是TR2为原始数据包增加新的外部包头,该包头目的地址为LLOC2;
步骤19、发往MN的数据不再经过ATR1,直接到达ATR2,ATR2收到隧道数据包后,去掉其外部包头,将原始数据包转发给MN。
实施例3:
移动节点在区域间的安全切换过程中,移动节点身份认证不需要VAAA与HAAA交互,如图3所示。移动节点在区域间的安全切换步骤如下:
步骤1、MN与ATR2断开,附着在ATR3;
步骤2、ATR3向MN发送身份请求和挑战值CV(Challenge Value);
步骤3、MN生成随机数R1,使用接入时获得的域间切换密钥GK、加密CV和R1,计算EGK(CV||R1),计算消息哈希值H(EID2||CV||EGK(CV||R1)),然后向ATR3发送移动切换接入请求消息,内容包括:MN的终端标识EID2,挑战值CV,加密信息EGK(CV||R1)和哈希值H(EID2||CV||EGK(CV||R1));
步骤4、ATR3将移动切换接入请求消息转发到VAAA;
步骤5、VAAA检查哈希值H(EID2||CV||EGK(CV||R1)),确认消息的完整性。使用VAAA与HAAA的预共享密钥S计算GK=H(S||EID2),将解密得到的CV与消息中未加密的CV进行核对,若核对成功,则MN身份得到确认,否则拒绝MN接入网络。VAAA使用与区域内ATR预共享的组密钥G计算MN的域内切换密钥值LK=H(G||EID2),使用GK计算EGK(LK||R1),加密LK和R1,计算哈希值H(Au||EID2||EGK(LK||R1));
步骤6、VAAA将切换确认消息发送给ATR3,内容包括:认证成功标志Au,MN的终端标识EID2,加密信息EGK(LK||R1)和哈希值H(Au||EID2||EGK(LK||R1));
步骤7、ATR3根据Au确认MN认证成功,允许MN接入网络;
步骤8、ATR3向TR3发送位置注册(Location Register)消息,注册MN的位置信息EID2-LLOC3;
步骤9、TR3向TR2发送隧道建立请求(TR-Tunne1-REQ)消息,内容包括MN新的位置信息TR3(LOC3)等,告知其MN新的映射信息EID2-to-LOC3;
步骤10、TR2向TR3返回隧道建立应答(TR-Tunne1-Reply)消息,完成与TR3的隧道建立,并向TR3传输发往MN的数据;
步骤11、TR3向ATR3返回位置确认(Location Acknowledgement)消息,确认MN的位置注册完成;
步骤12、TR3向MN发送切换确认消息,消息内容包括:认证成功标志Au、MN的终端标识EID2、加密信息EGK(LK||R1)和哈希值H(Au||EID2||EGK(LK||R1));
步骤13、MN检查哈希值H(Au||EID2||EGK(LK||R1)),核对解密得到的R1与先前生成的随机数R1是否相同,核对确认完成切换过程,并存储域内切换密钥值LK;
步骤14、CN向TR1发送普通数据包,数据包源和目的地址分别为EID1和EID2;
步骤15、TR1根据MN的映射信息封装数据包,为原始数据包加入新的外部包头,该包头源和目的地址分别为LOC1和LOC2;
步骤16、TR2收到隧道包后,去掉其外部包头得到原始数据包。由于通过第九步骤TR2已经知道MN移动到新的区域,因此TR2将原始数据包通过隧道传输到TR3,具体操作是TR2为原始数据包中加入新的外部包头,其源和目的地址分别是LOC2和LOC3;
步骤17、TR3去掉隧道数据包的外部包头得到原始数据包。TR3根据MN的位置信息将数据包发送到ATR3,具体操作是TR3为原始数据包增加新的数据外部包头,其目的地址为LLOC3;
步骤18、ATR3去掉隧道数据包的外部包头,将原始数据包转发给MN;
步骤19、TR3向MS发送MN的映射更新(Map-Update)消息,更新MN的映射信息EID2-to-LOC3;
步骤20、MS向TR3返回映射通告(Map-Notifiy)消息,确认完成映射信息更新;
步骤21、TR3向通信对端TR1发送MN的映射更新(MN-Map-Update)消息,向TR1通告MN的映射信息更新为EID2-to-RLOC3;
步骤22、TR1向TR3返回映射更新答复(MN-Map-Reply)消息,确认完成MN的映射信息更新,完成发往MN数据的传输路径优化;
步骤23、CN向TR1发送普通数据包,数据包源和目的地址分别为EID1和EID2;
步骤24、TR1根据映射信息EID2-to-LOC3为数据包封装外部包头,外部包头源地址和目的地址分别为LOC1和LOC3;核心网根据隧道数据包的路由标识对其进行寻路转发;
步骤25、TR3解封装隧道数据包,去掉TR1封装的外部包头,然后TR3根据MN的位置信息EID2-LLOC3将数据包通过隧道发送给ATR3,具体操作是TR3为原始数据包增加新的外部包头,该包头目的地址为LLOC3;
步骤26、ATR3收到隧道数据包后,去掉其外部包头,将原始数据包转发给MN。
实施例4:
移动节点的区域内切换密钥和区域间切换密钥生成方法。本发明使用移动节点的身份信息和AAA服务器的共享密钥,此外AAA服务器生成移动节点的切换密钥时,还可以增加额外的信息,如接入网编码信息或AAA服务器标识等。
如图4,接入网内至少有一个AAA服务器,CN在接入网AN1中,MN从接入网AN2移动到AN3。MN在ATR1完成初始接入,然后移动附着到ATR2,再移动到AN3附着在ATR3。MN在ATR1初始接入过程,在AN2中切换到ATR2的过程,和从AN2移动到AN3附着到ATR3的切换过程分别与本发明中的移动节点初始安全接入过程,域内移动安全切换过程和域间移动安全切换过程对应。
缩略语和关键术语定义
Internet Engineering Task Force(IETF) 互联网工程任务组
Locator/Identifier Separation 身份与位置分离
Proxy Mobile IPv6(PMIPv6) 代理移动IPv6
Endpoint Identifier(EID) 终端标识
Locator(LOC) 位置标识
Local Locator(LLOC) 本地位置标识
Mobile Access Gateway(MAG) 移动接入网关
Local Mobility Anchor(LMA) 本地移动代理
Mobile Node(MN) 移动节点
Map Server(MS) 映射服务器
Tunnel Router(TR) 隧道路由器
Access Tunnel Router(ATR) 接入隧道路由器
Authentication,Authorization and Accounting(AAA) AAA服务器
Home AAA(HAAA) 家乡域AAA服务器
Visited AAA(VAAA) 访问域AAA服务器
Security Association(SA) 安全联盟
Access Network(AN) 接入网
Mobile Domain(MD) 移动管理区域 。