CN101359990A - 时分同步码分多址与自组织网络融合的认证方法 - Google Patents
时分同步码分多址与自组织网络融合的认证方法 Download PDFInfo
- Publication number
- CN101359990A CN101359990A CNA2008101561192A CN200810156119A CN101359990A CN 101359990 A CN101359990 A CN 101359990A CN A2008101561192 A CNA2008101561192 A CN A2008101561192A CN 200810156119 A CN200810156119 A CN 200810156119A CN 101359990 A CN101359990 A CN 101359990A
- Authority
- CN
- China
- Prior art keywords
- message
- user
- gateway
- hlr
- mac
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及移动通信领域,给出了一种时分同步码分多址与自组织网络融合的认证方法,使得处于基站覆盖区外的用户可以单跳或多跳的方式实现与蜂窝网的双向认证。当用户邻近网关时,可以单跳的方式通过网关、基站实现对VLR和HLR的认证,同时也实现VLR对用户的认证,另外还通过随机数和加密的方式保证用户的IMSI不会以明文的方式在无线链路中传送,防止伪用户的存在和重传攻击等。当用户离网关较远时,可以多跳的方式通过中间用户、网关和基站实现与蜂窝网的双向认证,并且利用迭代消息认证码的方式,保证消息的长度不变,节省带宽。
Description
技术领域
本发明涉及一种TD-SCDMA(时分同步码分多址)与自组织网络融合的用户认证方法。
背景技术
TD-SCDMA作为由中国主导提出的第三代移动通信标准,使用了时分双工、上行同步、联合检测、接力切换和智能天线等技术。使用TD-SCDMA空中接口构建自组织网络,既可以利用其时分双工的特点,无需对接口作大的修改,又可以扩大TD-SCDMA蜂窝小区的覆盖范围,提高系统容量。
安全通信需求在移动通信系统,尤其是第三代移动通信系统中显得越来越重要,而身份认证是实现正常安全通信,保护用户与运营商利益的重要保证。在TD-SCDMA中,网络和用户间采用相互鉴权的方法实现了用户对归属位置寄存器(HLR,Home Location Register)的认证和访问位置寄存器(VLR,VisitorLocation Register)对用户的认证,同时得到了加密密钥CK和完整性密钥IK。但是该认证方法仍然存在一定的缺陷,如它没能实现用户对VLR的认证,可能遭受伪VLR的攻击;而且在初始认证过程中,用户的国际移动用户标识(IMSI,International Mobile Subscriber Identity)是以明文的方式在无线链路中传送,可能被窃取,从而导致伪用户的产生。
因此在对TD-SCDMA与自组织网络融合中的用户进行认证时,必须尽量避免IMSI以明文方式在无线链路中传送,同时也要实现用户对VLR的认证。
在现有研究中,蜂窝网中的认证和自组织网络中的认证一般是分开进行的。蜂窝网的认证方法是基于可信任的认证中心的,而且假设用户在基站覆盖范围内;自组织网络是一个分布式的无中心网络,无法保证单个用户能够固定的作为可信中心。在TD-SCDMA与自组织网络融合中,对用户的认证可以基于蜂窝网的认证中心,但是用户可能不在基站覆盖范围内,必须通过多跳才能到达基站。因此,如何在TD-SCDMA与自组织网络融合中设计一种既能利用蜂窝网的认证中心,又能对位于基站覆盖区之外的用户进行安全认证的方法成为一个亟待解决的问题。
发明内容
技术问题:本发明的目的是给出一种对TD-SCDMA与自组织网络融合中的用户进行认证的方法,能够实现位于基站覆盖区外的用户与蜂窝网的双向认证,避免用户的IMSI在无线链路中以明文方式传送,从而防止伪用户的存在。
技术方案:本发明能够利用蜂窝网中的认证中心对位于基站覆盖区外的用户进行安全认证,实现用户对VLR和HLR的认证,VLR对用户的认证,保证用户的IMSI不以明文的方式在无线链路中传送,防止重传攻击等。
本发明中的自组织网络是基于TD-SCDMA空中接口形成的。在该自组织网络中,有一个网关用户位于基站覆盖区内,工作在网关模式下,它既可以与基站直接通信,也可以与自组织网络中的其他用户进行通信。其余的用户都位于基站覆盖区外,工作在自组织模式下,可以通过网关接入基站。假设网关与基站间的传输速率在144kbps/s下,此时网关的TS1至TS6时隙中,至少存在两个空闲时隙,假设为TS3和TS4,则网关可以在这两个时隙中与自组织网络中的用户进行通信。工作在自组织模式的用户可以在TS1至TS6这6个时隙中的任何一个时隙内发送消息,但为了减少冲突,用户在发送消息前需要预约一个时隙,预约成功后就可以发送消息了。
对系统作如下假设:
1.基于TD-SCDMA空中接口的自组织网络已经完成全网同步,并存在公共广播信道;
2.自组织网络中的用户已经成功预约了时隙;
3.用户与HLR共享主密钥K,HLR与VLR共享密钥KHV;
4.基站与VLR之间的通信是安全的;
5.基站有一对公私钥,分别为KBS/K-1 BS;
6.自组织网络中用户的移动速度较低。
本发明的时分同步码分多址与自组织网络融合的认证方法有单跳认证:即邻近网关的用户以单跳的方式通过网关、基站实现与蜂窝网的双向认证;多跳认证:即远离网关的用户以多跳的方式通过中间用户、网关和基站实现与蜂窝网的双向认证,
其中,单跳认证的具体实现包括以下步骤:
步骤一:位于蜂窝网中的用户切换到网关模式后,周期性的在广播信道上发送消息,该消息格式为[SEQGW‖IDcell‖IDGW‖KBS‖Tlife‖Hop‖NGW]。其中,SEQGW是消息序列号,用于区分消息;IDcell是网关所在的小区ID;IDGW是网关的ID,KBS是基站的公钥;Tlife是网关的生存时间,当用户收到一个新的广播消息后,都要刷新该时间;Hop是跳数门限;该消息每经过一跳,其跳数门限值减1,当该值为0时,用户不再转发该消息;该门限的值可以根据网关的中转能力设定;NGW是网关产生的只使用一次的随机数,用于防止重传攻击;符号“‖”表示字符串的串联,下文中的该符号都表示这个含义;
步骤二:自组织网络中未通过认证的用户收到网关的广播消息后,通过判断Tlife是否在有效范围内来确定该消息是否有效,无效则丢弃,否则根据NGW判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,在预约的时隙内向网关发送认证请求的消息[SEQ‖IDGW‖{N1}KBS‖TID‖{N2}K‖NMS];其中,SEQ是消息序列号,用于区分消息;IDGW是网关ID;N1是用户产生的随机数;{N1}KBS表示用基站的公钥对N1进行加密;TID=N1⊕IMSI,表示N1与用户的IMSI异或,从而防止IMSI在无线链路上以明文传送,IMSI是用户的国际移动用户标识;N2是用户产生的另一随机数,作为与VLR(访问位置寄存器)共享的密钥;K是用户与HLR(归属位置寄存器)共享的密钥;{N2}K表示以用户与HLR共享的密钥对N2进行加密,这是为了实现用户对VLR的认证;NMS是用户产生的只使用一次的随机数,用于防止重传攻击;
步骤三:网关收到用户的认证请求消息后,首先根据NMS判断消息是否是最
新收到的,如果不是,则视为重传消息,丢弃;否则,向基站发送消息 其中CKGW表示网关的加密密钥,表示用网关的加密密钥CKGW对TID加密,进一步保护IMSI,防止其在无线链路中以明文传送,MACGWS是消息认证码,且 其中IKGW是网关的完整性密钥。
步骤四:基站收到网关的消息后,首先根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,利用网关的完整性密钥对消息进行认证码计算,将最后计算出的消息认证码MACBS,与MACGWS比较,如果两者不相等,说明消息被篡改或者存在伪网关,丢弃;否则,说明消息是完整的,网关是合法的;此时,基站用自己的私钥KBS对{N1}KBS进行解密,得到N1;再用网关的加密密钥CKGW对解密,得到TID=N1⊕IMSI;再将TID与N1进行异或,得到IMSI=TID⊕N1=(N1⊕IMSI)⊕N1,最后向VLR发送如下的消息[IMSI‖{N2}K‖NMS];
步骤五:VLR收到基站的消息后,根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,再根据IMSI找到用户的HLR,向HLR发送如下的消息[{IMSI‖{N2}K}KHV‖NMS],其中KHV是HLR与VLR的共享密钥。
步骤六:HLR收到VLR的消息后,根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,用KHV对{IMSI‖{N2}K}KHV进行解密,根据得到的IMSI,找到对应用户的密钥K,再对{N2}K进行解密,得到N2,然后生成用户的认证向量AV,AV=RAND‖XRES‖CK‖IK‖AUTN,最后向VLR发送消息[{AV‖N2}KHV‖NHLR],其中,RAND是HLR产生的随机数,XRES是期望收到的用户的回复,CK是用户的加密密钥,IK是用户的完整性密钥,AUTN是认证令牌环,NHLR是HLR产生的随机数,用于防止重传攻击;
步骤七:VLR收到HLR的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用KHV对{AV‖N2}KHV进行解密,得到AV和N2,然后VLR向基站发送消息[{RAND‖AUTN}N2‖NHLR];
步骤八:基站收到VLR的消息后,首先根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用网关的完整性密钥对消息计算认证码,得到MACGWS′=<{RAND‖AUTN}N2‖NHLR>IKGW,然后向网关发送消息[{RAND‖AUTN}N2‖NHLR‖MACGWS′];
步骤九:网关收到基站的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用自己的完整性密钥对消息计算认证码,即MACGW″=<{RAND‖AUTN}N2‖NHLR>IKGW,再判断MACGW″与MACGWS′是否相等,如果不相等,说明消息被篡改,丢弃;否则,向用户发送消息[{RAND‖AUTN}N2‖NHLR];
步骤十:未通过认证的用户收到返回的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用N2对{RAND‖AUTN}N2进行解密,得到RAND和AUTN,然后根据AUTN计算出序列号SQN,判断SQN是否在正确的范围内,如果不在,则认证失败;否则,再计算出消息认证码XMAC,与AUTN中的消息认证码MAC进行比较,如果不相等,则认证失败;否则表示VLR使用的密钥就是用户发送的N2,从而说明VLR是合法的,实现对VLR的认证;而XMAC=MAC,也说明了MAC就是HLR用主密钥K计算得到的,从而实现了用户对HLR的认证,进一步计算出参数RES,并用N2对其进行加密并添加另一随机数,通过网关和基站发送到VLR;
步骤十一:VLR收到用户的消息后,判断消息是否是最新的,如果不是,则丢弃,否则,将收到的RES与XRES进行比较,如果不相等,则认证失败,否则就认证成功,证实了用户的合法性,即实现了VLR对用户的认证;
步骤十二:用户计算出加密密钥CK和完整性密钥IK,完成认证过程;
多跳认证的具体实现包括以下步骤:
步骤十三:位于蜂窝网中的用户切换到网关模式后,周期性的在广播信道上发送消息,该消息格式为[SEQGW‖IDcell‖IDGW‖KBS‖Tlife‖Hop‖NGW];其中,SEQGW是消息序列号,用于区分消息;IDcell是网关所在的小区ID;IDGW是网关的ID;KBS是基站的公钥;Tlife是网关的生存时间,当用户收到一个新的广播消息后,都要刷新该时间;Hop是跳数门限;该消息每经过一跳,其跳数门限值减1,当该值为0时,用户不再转发该消息;该门限的值可以根据网关的中转能力设定;NGW是网关产生的只使用一次的随机数,用于防止重传攻击;
步骤十四:通过认证的中间用户收到网关的广播消息后,通过判断Tlife是否在有效范围内来确定该消息是否有效,无效则丢弃,否则根据NGW判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,读取跳数Hop,并将其减1,再判断结果是否大于0,如果不大于0,说明消息传播的跳数已经达到门限,用户将不再广播;否则,说明消息传播的跳数还没有到达门限,可以继续广播,此时,用户在已经预约的时隙上转发广播消息,格式为[SEQGW‖IDcell‖IDGW‖IDinter1‖KBS‖Tlife‖Hop-1‖NGW],其中,IDinter1表示中间用户的ID,Hop-1表示将收到的消息中的跳数减1;
步骤十五:每一个用户收到广播消息后,都进行如同步骤二的判断,并将自己的ID加入到消息中,且修改跳数;假设消息的格式为[SEQGW‖IDcell‖IDGW‖IDinter1‖...‖IDinteri‖KBS‖Tlife‖Hop-i‖NGW],其中,IDinteri表示第i个用户的ID;
步骤十六:未通过认证的用户收到广播消息后,通过判断Tlife是否在有效范围内来确定该消息是否有效,无效则丢弃,否则根据NGW判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,沿着广播消息路径的逆方向,在预约的时隙内向网关发送认证请求的消息[SEQ‖IDGW‖IDinter1‖...‖IDinteri‖{N1}KBS‖TID‖{N2}K‖NMS];其中,SEQ是消息序列号,用于区分消息,IDGW是网关ID。IDinter1和IDinteri是中间用户的ID,N1是用户产生的随机数,{N1}KBS表示用基站的公钥对N1进行加密,TID=N1⊕IMSI,表示N1与用户的IMSI异或,从而防止IMSI在无线链路上以明文传送,N2是用户产生的另一随机数,作为与VLR共享的密钥,{N2}K表示以用户与HLR共享的密钥对N2进行加密,这是为了实现用户对VLR的认证,NMS是用户产生的只使用一次的随机数,用于防止重传攻击;
步骤十七:邻近未通过认证的用户的第一个中间用户收到认证请求消息后,根据NMS判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,向下一中间用户转发如下的消息 其中,表示用中间用户IDinteri的加密密钥CKinteri对TID加密,进一步保护IMSI,防止其在无线链路上以明文传送,MACi是消息认证码,且 表示用中间用户IDinteri的完整性密钥IKinteri对消息计算认证码,保证消息的完整性;
步骤十八:其余的中间节点收到认证请求消息后,首先根据NMS判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,用自己的完整性密钥对收到的消息计算消息认证码MACj,并将其叠加在消息的后面,即 表示中间用户IDinterj的消息认证码,IKinterj是中间用户IDinterj的完整性密钥,节点转发的消息格式为 通过对消息认证码进行迭代,可以保证每个消息的后部只含有一个消息认证码,使得消息在传递过程中,并不会增加长度,从而可以节省带宽;
步骤十九:网关收到用户的认证请求消息后,首先根据NMS判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,向基站发送消息,消息格式为 其中表示用网关的加密密钥CKGW对TID加密,进一步保护IMSI,防止其在无线链路中以明文传送,其中 IKGW是网关的完整性密钥;
步骤二十:基站收到网关的消息后,首先根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,获取从未认证用户到基站的路径上的所有节点的ID,然后依次使用这些用户的完整性密钥对消息进行认证码计算,将最后计算出的消息认证码MACBS,与MACGWM比较,如果两者不相等,说明消息被篡改或者存在伪用户,丢弃;否则,说明消息是完整的,而且中间用户都是合法的,此时,基站用自己的私钥对{N1}KBS进行解密,得到N1;然后用IDinteri的加密密钥CKinteri对进行解密,得到TID=N1⊕IMSI;再将TID与N1进行异或,得到IMSI=TID⊕N1=(N1⊕IMSI)⊕N1;最后向VLR发送如下的消息[IMSI‖{N2}K‖NMS];
步骤二十一:VLR收到基站的消息后,根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,再根据IMSI找到用户的HLR,向HLR发送如下的消息[{IMSI‖{N2}K}KHV‖NMS],KHV是HLR与VLR的共享密钥;
步骤二十二:HLR收到VLR的消息后,根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,用KHV对{IMSI‖{N2}K}KHV进行解密,根据得到的IMSI,找到对应用户的密钥K,再对{N2}K进行解密,得到N2,然后生成用户的认证向量AV,AV=RAND‖XRES‖CK‖IK‖AUTN,最后向VLR发送消息[{AV‖N2}KHV‖NHLR],其中,RAND是HLR产生的随机数,XRES是期望收到的用户的回复,CK是用户的加密密钥,IK是用户的完整性密钥,AUTN是认证令牌环,NHLR是HLR产生的随机数,用于防止重传攻击;
步骤二十三:VLR收到HLR的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用KHV对{AV‖N2}KHV进行解密,得到AV和N2,然后VLR向基站发送消息[{RAND‖AUTN}N2‖NHLR];
步骤二十四:基站收到VLR的消息后,首先根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,基站依次用网关、IDinter1...IDinteri的完整性密钥对收到的消息计算认证码,依次得到MACGWM′、MAC1′、...、MACi′,即MACGWM′=<{RAND‖AUTN}N2‖NHLR>IKGW,MACi′=<{RAND‖AUTN}N2‖NHLR>IKinteri,然后向网关发送消息[{RAND‖AUTN}N2‖NHLR‖MACGWM′‖MAC1′‖...‖MACi′],IKinteri是中间用户IDinteri的完整性密钥。
步骤二十五:网关收到基站的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用自己的完整性密钥对消息计算认证码,即MACGW″=<{RAND‖AUTN}N2‖NHLR>IKGW,再判断MACGW″与MACGWM′是否相等,如果不相等,则说明消息被篡改,丢弃;否则,向IDinter1发送消息[{RAND‖AUTN}N2‖NHLR‖MAC1′‖...‖MACi′];
步骤二十六:中间用户收到返回的消息后,进行如同步骤十三的操作,即用自己的完整性密钥对消息计算认证码,判断和收到的认证码是否相等,如果不相等,说明消息被篡改,丢弃;否则,往下一用户发送消息,如果消息都是完整的,则最后,用户IDinteri向未通过认证用户发送消息[{RAND‖AUTN}N2‖NHLR];
步骤二十七:未通过认证的用户收到返回的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用N2对{RAND‖AUTN}N2进行解密,得到RAND和AUTN,然后根据AUTN计算出序列号SQN,判断SQN是否在正确的范围内,如果不在,则认证失败;否则,再计算出消息认证码XMAC,与AUTN中的消息认证码MAC进行比较,如果不相等,则认证失败;否则表示VLR使用的密钥就是用户发送的N2,从而说明VLR是合法的,实现对VLR的认证;而XMAC=MAC,也说明了MAC就是HLR用主密钥K计算得到的,从而实现了用户对HLR的认证,进一步计算出RES,并用N2对其进行加密并添加另一随机数,通过中间用户、网关和基站发送到VLR;
步骤二十八:VLR收到用户的消息后,判断消息是否是最新的,如果不是,则丢弃,否则,将收到的RES与XRES进行比较,如果不相等,则认证失败,否则就认证成功,证实了用户的合法性,即实现了VLR对用户的认证;
步骤二十九:用户计算出加密密钥CK和完整性密钥IK,完成认证过程。
有益效果:本发明设计了融合TD-SCDMA与自组织网络的认证方法,具有如下优点:
①能够对位于基站覆盖区外的用户通过单跳或多跳的方式进行安全认证,使他们能够享受蜂窝网的安全服务;
②通过采用随机数和加密的方式对用户的国际移动标识IMSI进行保护,避免了IMSI在无线链路中以明文的方式传送,防止用户身份被窃取;
③实现了用户对VLR的认证,克服了蜂窝网中用户不能对VLR认证的缺陷,同时防止了伪VLR攻击和中间人攻击;
④通过引入随机数,防止重传攻击;
⑤在多跳认证过程中,通过引入迭代消息认证码,保持消息的长度不变,节省了带宽。
附图说明
图1是用户认证流程图;
图2是认证的应用场景之一;
图3是单跳认证的信令流程图;
图4是两跳认证的信令流程图。
具体实施方式
该认证方法有单跳认证:即邻近网关的用户以单跳的方式通过网关、基站实现与蜂窝网的双向认证;多跳认证:即远离网关的用户以多跳的方式通过中间用户、网关和基站实现与蜂窝网的双向认证,
其中,单跳认证的具体实现包括以下步骤:
步骤一:位于蜂窝网中的用户切换到网关模式后,周期性的在广播信道上发送消息,该消息格式为[SEQGW‖IDcell‖IDGW‖KBS‖Tlife‖Hop‖NGW]。其中,SEQGW是消息序列号,用于区分消息;IDcell是网关所在的小区ID;IDGW是网关的ID,KBS是基站的公钥;Tlife是网关的生存时间,当用户收到一个新的广播消息后,都要刷新该时间;Hop是跳数门限;该消息每经过一跳,其跳数门限值减1,当该值为0时,用户不再转发该消息;该门限的值可以根据网关的中转能力设定;NGW是网关产生的只使用一次的随机数,用于防止重传攻击;符号“‖”表示字符串的串联,下文中的该符号都表示这个含义;
步骤二:自组织网络中未通过认证的用户收到网关的广播消息后,通过判断Tlife是否在有效范围内来确定该消息是否有效,无效则丢弃,否则根据NGW判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,在预约的时隙内向网关发送认证请求的消息[SEQ‖IDGW‖{N1}KBS‖TID‖{N2}K‖NMS];其中,SEQ是消息序列号,用于区分消息;IDGW是网关ID;N1是用户产生的随机数;{N1}KBS表示用基站的公钥对N1进行加密;TID=N1⊕IMSI,表示N1与用户的IMSI异或,从而防止IMSI在无线链路上以明文传送,IMSI是用户的国际移动用户标识;N2是用户产生的另一随机数,作为与VLR(访问位置寄存器)共享的密钥;K是用户与HLR(归属位置寄存器)共享的密钥;{N2}K表示以用户与HLR共享的密钥对N2进行加密,这是为了实现用户对VLR的认证;NMS是用户产生的只使用一次的随机数,用于防止重传攻击;
步骤三:网关收到用户的认证请求消息后,首先根据NMS判断消息是否是最
新收到的,如果不是,则视为重传消息,丢弃;否则,向基站发送消息 其中CKGW表示网关的加密密钥,表示用网关的加密密钥CKGW对TID加密,进一步保护IMSI,防止其在无线链路中以明文传送,MACGWS是消息认证码,且 其中IKGW是网关的完整性密钥。
步骤四:基站收到网关的消息后,首先根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,利用网关的完整性密钥对消息进行认证码计算,将最后计算出的消息认证码MACBS,与MACGWS比较,如果两者不相等,说明消息被篡改或者存在伪网关,丢弃;否则,说明消息是完整的,网关是合法的;此时,基站用自己的私钥KBS对{N1}KBS进行解密,得到N1;再用网关的加密密钥CKGW对解密,得到TID=N1⊕IMSI;再将TID与N1进行异或,得到IMSI=TID⊕N1=(N1⊕IMSI)⊕N1,最后向VLR发送如下的消息[IMSI‖{N2}K‖NMS];
步骤五:VLR收到基站的消息后,根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,再根据IMSI找到用户的HLR,向HLR发送如下的消息[{IMSI‖{N2}K}KHV‖NMS],其中KHV是HLR与VLR的共享密钥。
步骤六:HLR收到VLR的消息后,根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,用KHV对{IMSI‖{N2}K}KHV进行解密,根据得到的IMSI,找到对应用户的密钥K,再对{N2}K进行解密,得到N2,然后生成用户的认证向量AV,AV=RAND‖XRES‖CK‖IK‖AUTN,最后向VLR发送消息[{AV‖N2}KHV‖NHLR],其中,RAND是HLR产生的随机数,XRES是期望收到的用户的回复,CK是用户的加密密钥,IK是用户的完整性密钥,AUTN是认证令牌环,NHLR是HLR产生的随机数,用于防止重传攻击;
步骤七:VLR收到HLR的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用KHV对{AV‖N2}KHV进行解密,得到AV和N2,然后VLR向基站发送消息[{RAND‖AUTN}N2‖NHLR];
步骤八:基站收到VLR的消息后,首先根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用网关的完整性密钥对消息计算认证码,得到MACGWS′=<{RAND‖AUTN}N2‖NHLR>IKGW,然后向网关发送消息[{RAND‖AUTN}N2‖NHLR‖MACGWS′];
步骤九:网关收到基站的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用自己的完整性密钥对消息计算认证码,即MACGW″=<{RAND‖AUTN}N2‖NHLR>IKGW,再判断MACGW″与MACGWS′是否相等,如果不相等,说明消息被篡改,丢弃;否则,向用户发送消息[{RAND‖AUTN}N2‖NHLR];
步骤十:未通过认证的用户收到返回的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用N2对{RAND‖AUTN}N2进行解密,得到RAND和AUTN,然后根据AUTN计算出序列号SQN,判断SQN是否在正确的范围内,如果不在,则认证失败;否则,再计算出消息认证码XMAC,与AUTN中的消息认证码MAC进行比较,如果不相等,则认证失败;否则表示VLR使用的密钥就是用户发送的N2,从而说明VLR是合法的,实现对VLR的认证;而XMAC=MAC,也说明了MAC就是HLR用主密钥K计算得到的,从而实现了用户对HLR的认证,进一步计算出参数RES,并用N2对其进行加密并添加另一随机数,通过网关和基站发送到VLR;
步骤十一:VLR收到用户的消息后,判断消息是否是最新的,如果不是,则丢弃,否则,将收到的RES与XRES进行比较,如果不相等,则认证失败,否则就认证成功,证实了用户的合法性,即实现了VLR对用户的认证;
步骤十二:用户计算出加密密钥CK和完整性密钥IK,完成认证过程;
多跳认证的具体实现包括以下步骤:
步骤十三:位于蜂窝网中的用户切换到网关模式后,周期性的在广播信道上发送消息,该消息格式为[SEQGW‖IDcell‖IDGW‖KBS‖Tlife‖Hop‖NGW];其中,SEQGW是消息序列号,用于区分消息;IDcell是网关所在的小区ID;IDGW是网关的ID;KBS是基站的公钥;Tlife是网关的生存时间,当用户收到一个新的广播消息后,都要刷新该时间;Hop是跳数门限;该消息每经过一跳,其跳数门限值减1,当该值为0时,用户不再转发该消息;该门限的值可以根据网关的中转能力设定;NGW是网关产生的只使用一次的随机数,用于防止重传攻击;
步骤十四:通过认证的中间用户收到网关的广播消息后,通过判断Tlife是否在有效范围内来确定该消息是否有效,无效则丢弃,否则根据NGW判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,读取跳数Hop,并将其减1,再判断结果是否大于0,如果不大于0,说明消息传播的跳数已经达到门限,用户将不再广播;否则,说明消息传播的跳数还没有到达门限,可以继续广播,此时,用户在已经预约的时隙上转发广播消息,格式为[SEQGW‖IDcell‖IDGW‖IDinter1‖KBS‖Tlife‖Hop-1‖NGW],其中,IDinter1表示中间用户的ID,Hop-1表示将收到的消息中的跳数减1;
步骤十五:每一个用户收到广播消息后,都进行如同步骤二的判断,并将自己的ID加入到消息中,且修改跳数;假设消息的格式为[SEQGW‖IDcell‖IDGW‖IDinter1‖...‖IDinteri‖KBS‖Tlife‖Hop-i‖NGW],其中,IDinteri表示第i个用户的ID;
步骤十六:未通过认证的用户收到广播消息后,通过判断Tlife是否在有效范围内来确定该消息是否有效,无效则丢弃,否则根据NGW判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,沿着广播消息路径的逆方向,在预约的时隙内向网关发送认证请求的消息[SEQ‖IDGW‖IDinter1‖...‖IDinteri‖{N1}KBS‖TID‖{N2}‖NMS];其中,SEQ是消息序列号,用于区分消息,IDGW是网关ID。IDinter1和IDinteri是中间用户的ID,N1是用户产生的随机数,{N1}KBS表示用基站的公钥对N1进行加密,TID=N1⊕IMSI,表示N1与用户的IMSI异或,从而防止IMSI在无线链路上以明文传送,N2是用户产生的另一随机数,作为与VLR共享的密钥,{N2}K表示以用户与HLR共享的密钥对N2进行加密,这是为了实现用户对VLR的认证,NMS是用户产生的只使用一次的随机数,用于防止重传攻击;
步骤十七:邻近未通过认证的用户的第一个中间用户收到认证请求消息后,根据NMS判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,向下一中间用户转发如下的消息 其中,表示用中间用户IDinteri的加密密钥CKinteri对TID加密,进一步保护IMSI,防止其在无线链路上以明文传送,MACi是消息认证码,且 表示用中间用户IDinteri的完整性密钥IKinteri对消息计算认证码,保证消息的完整性;
步骤十八:其余的中间节点收到认证请求消息后,首先根据NMS判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,用自己的完整性密钥对收到的消息计算消息认证码MACj,并将其叠加在消息的后面,即 表示中间用户IDinterj的消息认证码,IKinterj是中间用户IDinterj的完整性密钥,节点转发的消息格式为 通过对消息认证码进行迭代,可以保证每个消息的后部只含有一个消息认证码,使得消息在传递过程中,并不会增加长度,从而可以节省带宽;
步骤十九:网关收到用户的认证请求消息后,首先根据NMS判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,向基站发送消息,消息格式为 其中表示用网关的加密密钥CKGW对TID加密,进一步保护IMSI,防止其在无线链路中以明文传送,其中 IKGW是网关的完整性密钥;
步骤二十:基站收到网关的消息后,首先根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,获取从未认证用户到基站的路径上的所有节点的ID,然后依次使用这些用户的完整性密钥对消息进行认证码计算,将最后计算出的消息认证码MACBS,与MACGWM比较,如果两者不相等,说明消息被篡改或者存在伪用户,丢弃;否则,说明消息是完整的,而且中间用户都是合法的,此时,基站用自己的私钥对{N1}KBS进行解密,得到N1;然后用IDinteri的加密密钥CKinteri对进行解密,得到TID=N1⊕IMSI;再将TID与N1进行异或,得到IMSI=TID⊕N1=(N1⊕IMSI)⊕N1;最后向VLR发送如下的消息[IMSI‖{N2}K‖NMS];
步骤二十一:VLR收到基站的消息后,根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,再根据IMSI找到用户的HLR,向HLR发送如下的消息[{IMSI‖{N2}K}KHV‖NMS],KHV是HLR与VLR的共享密钥;
步骤二十二:HLR收到VLR的消息后,根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,用KHV对{IMSI‖{N2}K}KHV进行解密,根据得到的IMSI,找到对应用户的密钥K,再对{N2}K进行解密,得到N2,然后生成用户的认证向量AV,AV=RAND‖XRES‖CK‖IK‖AUTN,最后向VLR发送消息[{AV‖N2}KHV‖NHLR],其中,RAND是HLR产生的随机数,XRES是期望收到的用户的回复,CK是用户的加密密钥,IK是用户的完整性密钥,AUTN是认证令牌环,NHLR是HLR产生的随机数,用于防止重传攻击;
步骤二十三:VLR收到HLR的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用KHV对{AV‖N2}KHV进行解密,得到AV和N2,然后VLR向基站发送消息[{RAND‖AUTN}N2‖NHLR];
步骤二十四:基站收到VLR的消息后,首先根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,基站依次用网关、IDinter1...IDinteri的完整性密钥对收到的消息计算认证码,依次得到MACGWM′、MAC1′、...、MACi′,即MACGWM′=<{RAND‖AUTN}N2‖NHLR>IKGW,MACi′=<{RAND‖AUTN}N2‖NHLR>IKinteri,然后向网关发送消息[{RAND‖AUTN}N2‖NHLR‖MACGWM′‖MAC1′‖...‖MACi′],IKinteri是中间用户IDinteri的完整性密钥。
步骤二十五:网关收到基站的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用自己的完整性密钥对消息计算认证码,即MACGW″=<{RAND‖AUTN}N2‖NHLR>IKGW,再判断MACGW″与MACGWM′是否相等,如果不相等,则说明消息被篡改,丢弃;否则,向IDinter1发送消息[{RAND‖AUTN}N2‖NHLR‖MAC1′‖...‖MACi′];
步骤二十六:中间用户收到返回的消息后,进行如同步骤十三的操作,即用自己的完整性密钥对消息计算认证码,判断和收到的认证码是否相等,如果不相等,说明消息被篡改,丢弃;否则,往下一用户发送消息,如果消息都是完整的,则最后,用户IDinteri向未通过认证用户发送消息[{RAND‖AUTN}N2‖NHLR];
步骤二十七:未通过认证的用户收到返回的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用N2对{RAND‖AUTN}N2进行解密,得到RAND和AUTN,然后根据AUTN计算出序列号SQN,判断SQN是否在正确的范围内,如果不在,则认证失败;否则,再计算出消息认证码XMAC,与AUTN中的消息认证码MAC进行比较,如果不相等,则认证失败;否则表示VLR使用的密钥就是用户发送的N2,从而说明VLR是合法的,实现对VLR的认证;而XMAC=MAC,也说明了MAC就是HLR用主密钥K计算得到的,从而实现了用户对HLR的认证,进一步计算出RES,并用N2对其进行加密并添加另一随机数,通过中间用户、网关和基站发送到VLR;
步骤二十八:VLR收到用户的消息后,判断消息是否是最新的,如果不是,则丢弃,否则,将收到的RES与XRES进行比较,如果不相等,则认证失败,否则就认证成功,证实了用户的合法性,即实现了VLR对用户的认证;
步骤二十九:用户计算出加密密钥CK和完整性密钥IK,完成认证过程。
完成认证过程。整个认证过程的流程图如图1所示。
本发明的目的是为了实现TD-SCDMA与自组织网络融合中的用户通过单跳或多跳的方式与蜂窝网进行双向安全认证。图1是应用场景之一。下面分别给出单跳和两跳的认证实例。
本发明的实例一是位于基站覆盖区外的用户以单跳的方式通过网关、基站向蜂窝网请求认证,从而实现双向认证的过程,如图2中的链路1。整个认证过程的信令流程如图3所示。
首先网关(GW)已经通过了网络的认证,并且获得了基站的公钥KBS和自身的加密密钥CK和完整性密钥IK,切换到网关模式并周期性的在广播信道上发送消息,消息格式为[SEQGW‖IDcell‖IDGW‖KBS‖Tlife‖Hop‖NGW]。其中,SEQGW是消息序列号,用于区分消息。IDcell是网关所在的小区ID。IDGW是网关的ID。KBS是基站的公钥。Tlife是网关的生存时间,当用户收到一个新的广播消息后,都要刷新该时间。Hop是跳数门限,这里取Hop=2,该消息每经过一跳,其跳数门限值减1,当该值为0时,用户不再转发该消息。NGW是网关产生的只使用一次的随机数,用于防止重传攻击。
未通过认证的用户(MS)收到网关的广播消息后,通过Tlife判断该消息是否有效,无效则丢弃,否则再根据NGW判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,在预约的时隙内向网关发送认证请求的消息[SEQ‖IDGW‖{N1}KBS‖TID‖{N2}K‖NMS]。其中,SEQ是消息序列号,用于区分消息。IDGW是网关ID。N1是用户产生的随机数,{N1}KBS表示用基站的公钥对N1进行加密。TID=N1⊕IMSI,表示N1与用户的IMSI异或,从而防止IMSI在无线链路上以明文传送。N2是用户产生的另一随机数,作为与VLR共享的密钥,{N2}K表示以用户与HLR共享的密钥对N2进行加密,这是为了实现用户对VLR的认证。NMS是用户产生的只使用一次的随机数,用于防止重传攻击。
网关收到用户的认证请求后,根据NMS判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,向基站转发消息 其中,TID=N1⊕IMSI,表示N1与用户的IMSI异或,表示用网关的加密密钥CKGW对TID加密,进一步对IMSI进行保护,防止其在无线链路上以明文传送。MAC1是消息认证码,且 表示用网关的完整性密钥IK对消息进行加密,保证消息的完整性。
基站(BS)收到网关的消息后,判断消息是否是最新的,如果不是,则丢弃;否则,用网关的完整性密钥IK对收到的消息进行计算,如果计算出来的值不等于MAC1,表示消息已被篡改,丢弃;否则继续判断NMS是否是最新收到的,如果不是,则视为重传消息,丢弃;否则用自己的私钥对{N1}KBS进行解密,得到N1;然后用网关的加密密钥CKGW对进行解密,得到TID=N1⊕IMSI;再将TID与N1进行异或,得到IMSI=TID⊕N1=(N1⊕IMSI)⊕N1。通过利用网关的加密密钥CK和完整性密钥IK来计算,也可以验证网关的合法性,从而防止伪网关攻击。最后向VLR发送如下的消息[IMSI‖{N2}K‖NMS]。
VLR收到基站的消息后,判断消息是否是最新的,如果不是,则丢弃;否则,根据IMSI找到用户的HLR,向HLR发送如下的消息[{IMSI‖{N2}K}KHV‖NMS]。
HLR收到VLR的消息后,判断消息是否是最新的,如果不是则丢弃,否则,用KHV对{IMSI‖{N2}K}KHV进行解密,得到IMSI,再用与用户的共享密钥K对{N2}K进行解密,得到N2。然后生成用户的认证向量AV,AV=RAND‖XRES‖CK‖IK‖AUTN,最后向VLR发送消息[{AV‖N2}KHV‖NHLR],NHLR是HLR产生的随机数,用于防止重传攻击。
VLR收到HLR的消息后,根据NHLR判断消息是否是最新的,如果不是则丢弃,否则,用KHV对{AV‖N2}KHV进行解密,得到AV和N2,然后VLR向基站发送消息[{RAND‖AUTN}N2‖NHLR]。
基站判断消息是否是最新的,如果不是则丢弃;否则,用网关的完整性密钥IK对收到的消息进行计算,得到MAC2=<{RAND‖AUTN}N2‖NHLR>IK,再向网关发送消息[{RAND‖AUTN}N2‖NHLR‖MAC2]。
网关收到基站的消息后,判断消息是否是最新的,如果不是则丢弃;否则,用自己的完整性密钥IK对消息进行计算,如果计算结果不等于MAC2,表示消息已被篡改,丢弃;否则向用户发送消息[{RAND‖AUTN}N2‖NHLR]。
用户收到网关的消息后,判断消息是否是最新的,如果不是则丢弃;否则,用N2对{RAND‖AUTN}N2进行解密,得到RAND和AUTN,接着根据AUTN计算出SQN,判断其是否在正确的范围内,如果不在正确范围内,则认证失败,否则再计算出XMAC,与AUTN中的MAC进行比较,如果不相等,则认证失败;否则表示VLR使用的密钥就是用户发送的N2,从而说明VLR是合法的,实现了对VLR的认证,而XMAC=MAC,也说明了MAC就是HLR用主密钥K计算得到的,从而实现了用户对HLR的认证。进一步计算出RES,并用N2对其进行加密,然后添加另一随机数,通过网关、基站发送到VLR。
VLR收到用户的消息后,判断消息是否是最新的,如果不是,则丢弃;否则,将收到的RES与XRES进行比较,如果不等,则认证失败,否则就认证成功,证实了用户的合法性,实现了对用户的认证。用户计算出加密密钥CK和完整性密钥IK,完成认证过程。从该过程可以看出,它实现了用户对VLR和HLR的认证以及VLR对用户的认证。
本发明的实例二是位于基站覆盖区外的用户以两跳的方式通过中间用户、网关、基站向蜂窝网请求认证,从而实现双向认证的过程,如图2中的链路2。整个认证过程的信令流程如图4所示。
首先网关(GW)和中间用户(MS1)都通过了认证过程,并且得到了各自的加密密钥和完整性密钥。网络中存在公共广播信道,各用户都预约了自己的发送时隙。网关在广播信道上周期性的发送消息,该消息格式为[SEQGW‖IDcell‖IDGW‖KBS‖Tlife‖Hop‖NGW]。这里取Hop=2。
中间用户收到网关的消息后,通过Tlife判断该消息是否有效,无效则丢弃;否则再根据NGW判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,再读取跳数Hop,并将其减1,此时结果为1,大于0,说明消息传播的跳数还没有到达门限,可以继续广播,用户在广播信道上发送如下的消息[SEQGW‖IDcell‖IDGW‖IDinter1‖KBS‖Tlife‖Hop-1‖NGW]。其中IDinter1是中间用户的ID。
未通过认证的用户(MS)收到中间用户的消息后,通过Tlife判断该消息是否有效,无效则丢弃;否则再根据NGW判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,在预约的时隙内向中间用户发送认证请求消息[SEQ‖IDGW‖IDinter1‖{N3}KBS‖TID‖{N4}K‖NMS]。其中,N3是用户产生的随机数,{N3}KBS表示用基站的公钥对N3进行加密。TID=N3⊕IMSI,表示N3与用户的IMSI异或,从而防止IMSI在无线链路上以明文传送。N4是用户产生的另一随机数,作为与VLR共享的密钥,{N4}K表示以用户与HLR共享的密钥对N4进行加密,这是为了实现用户对VLR的认证。NMS是用户产生的只使用一次的随机数,用于防止重传攻击。
中间用户收到未通过认证的用户的认证请求消息后,根据NMS判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,向网关发送消 其中,表示用中间用户的加密密钥CKinter1对TID加密,从而防止IMSI在无线链路上以明文传送。MACinter1是消息认证码,且 表示用中间用户IDinter1的完整性密钥IKinter1对消息进行加密,保证消息的完整性。
网关收到中间用户的消息后,首先根据NMS判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,用自己的完整性密钥对收到的消息计算消息认证码MACGW,并将其叠加在消息的后面,即 网关向基站发送的消息为
基站(BS)收到网关的消息后,根据NMS判断消息是否是最新收到的,如果不是则丢弃;否则,依次用中间用户和网关的完整性密钥对消息计算认证码,即先计算 再计算 最后判断MACGW与MACGW *是否相等,如果不相等,说明消息被篡改,或者中间节点与网关存在伪节点,基站丢弃该消息;如果相等,说明消息是完整的,而且中间用户都是合法的,此时,基站用自己的私钥对{N3}KBS进行解密,得到N3;然后用IDinter1的加密密钥CKinter对进行解密,得到TID=N3⊕IMSI;再将TID与N3进行异或,得到IMSI=TID⊕N3=(N3⊕IMSI)⊕N3。最后向VLR发送如下的消息[IMSI‖{N4}K‖NMS]。
VLR收到基站的消息后,根据NMS判断消息是否是最新的,如果不是则丢弃;否则,根据IMSI找到用户的HLR,向HLR发送如下的消息[{IMSI‖{N4}K}KHV‖NMS]。
HLR收到VLR的消息后,根据NMS判断消息是否是最新的,如果不是则丢弃;否则,用KHV对{IMSI‖{N4}K}KHV进行解密,得到IMSI,再用与用户共享的密钥K对{N4}K进行解密,得到N4。然后生成用户的认证向量AV,AV=RAND‖XRES‖CK‖IK‖AUTN,最后向VLR发送消息[{AV‖N4}KHV‖NHLR],其中,NHLR是HLR产生的随机数,用于防止重传攻击。
VLR收到HLR的消息后,根据NHLR判断消息是否是最新的,如果不是则丢弃;否则,用KHV对{AV‖N4}KHV进行解密,得到AV和N4,然后VLR向基站发送消息[{RAND‖AUTN}N4‖NHLR]。
基站收到消息后,根据NHLR判断消息是否是最新的,如果不是则丢弃;否则,依次用网关和中间用户的完整性密钥对收到的消息计算认证码,依次得到MACGW′、MACinter1′,即MACGW′=<{RAND‖AUTN}N4‖NHLR>IKGW,MACinter1′=<{RAND‖AUTN}N4‖NHLR>IKinter1。然后基站向网关发送消息[{RAND‖AUTN}N4‖NHLR‖MACGW′‖MACinter1′]。
网关收到基站的消息后,根据NHLR判断消息是否是最新的,如果不是则丢弃;否则,用自己的完整性密钥对消息计算认证码,即MACGW **=<{RAND‖AUTN}N4‖NHLR>IKGW,如果MACGW **≠MACGW′,则说明消息被篡改,丢弃;否则,向IDinter1发送消息[{RAND‖AUTN}N4‖NHLR‖MACinter1′]。
中间用户收到返回的消息后,根据NHLR判断消息是否是最新的,如果不是则丢弃;否则,也用自己的完整性密钥对消息计算认证码,即MACinter1 **=<{RAND‖AUTN}N4‖NHLR>IKinter1,如果MACinter1 **≠MACinter1′,则说明消息被篡改,丢弃;否则,向未通过认证的用户发送消息[{RAND‖AUTN}N4‖NHLR]。
未通过认证的用户收到返回的消息后,根据NHLR判断消息是否是最新的,如果不是则丢弃;否则,用N4对{RAND‖AUTN}N4进行解密,得到RAND和AUTN,根据AUTN计算出SQN,判断其是否在正确范围内,如果不在正确范围内,则认证失败;否则计算出XMAC,与AUTN中的MAC进行比较,如果不相等,则认证失败;否则表示VLR使用的密钥就是用户发送的N4,从而说明VLR是合法的,实现了对VLR的认证,而XMAC=MAC,也说明了MAC就是HLR用主密钥K计算得到的,从而实现了用户对HLR的认证。进一步计算出RES,并用N4对其进行加密,添加另一个随机数,通过中间用户、网关和基站发送到VLR。
VLR收到用户的消息后,判断消息是否是最新的,如果不是则丢弃;否则,将收到的RES与XRES进行比较,如果不等,则认证失败,否则就认证成功,证实了用户的合法性,实现了对用户的认证。用户计算出加密密钥CK和完整性密钥IK,完成认证过程。从该过程可以看出,它实现了用户对VLR和HLR的认证以及VLR对用户的认证。
综上所述仅为本发明的两个实施例而已,并非用来限制本发明的实施范围。即凡依本发明申请专利范围的内容所做的等效变化与修饰,都应为本发明的技术范畴。
Claims (1)
1.一种时分同步码分多址与自组织网络融合的认证方法,其特征在于该认证方法有单跳认证:即邻近网关的用户以单跳的方式通过网关、基站实现与蜂窝网的双向认证;多跳认证:即远离网关的用户以多跳的方式通过中间用户、网关和基站实现与蜂窝网的双向认证,
其中,单跳认证的具体实现包括以下步骤:
步骤一:位于蜂窝网中的用户切换到网关模式后,周期性的在广播信道上发送消息,该消息格式为[SEQGW||IDcell||IDGW||KBS||Tlife||Hop||NGW]。其中,SEQGW是消息序列号,用于区分消息;IDcell是网关所在的小区ID;IDGW是网关的ID,KBS是基站的公钥;Tlife是网关的生存时间,当用户收到一个新的广播消息后,都要刷新该时间;Hop是跳数门限;该消息每经过一跳,其跳数门限值减1,当该值为0时,用户不再转发该消息;该门限的值可以根据网关的中转能力设定;NGW是网关产生的只使用一次的随机数,用于防止重传攻击;符号“||”表示字符串的串联,下文中的该符号都表示这个含义;
步骤二:自组织网络中未通过认证的用户收到网关的广播消息后,通过判断Tlife是否在有效范围内来确定该消息是否有效,无效则丢弃,否则根据NGW判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,在预约的时隙内向网关发送认证请求的消息[SEQ||IDGW||{N1}KBS||TID||{N2}K||NMS];其中,SEQ是消息序列号,用于区分消息;IDGW是网关ID;N1是用户产生的随机数;{N1}KBS表示用基站的公钥对N1进行加密; ,表示N1与用户的IMSI异或,从而防止IMSI在无线链路上以明文传送,IMSI是用户的国际移动用户标识;N2是用户产生的另一随机数,作为与VLR(访问位置寄存器)共享的密钥;K是用户与HLR(归属位置寄存器)共享的密钥;{N2}K表示以用户与HLR共享的密钥对N2进行加密,这是为了实现用户对VLR的认证;NMS是用户产生的只使用一次的随机数,用于防止重传攻击;
步骤三:网关收到用户的认证请求消息后,首先根据NMS判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,向基站发送消息 。其中CKGW表示网关的加密密钥,表示用网关的加密密钥CKGW对TID加密,进一步保护IMSI,防止其在无线链路中以明文传送,MACGWS是消息认证码,且 其中IKGW是网关的完整性密钥。
步骤四:基站收到网关的消息后,首先根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,利用网关的完整性密钥对消息进行认证码计算,将最后计算出的消息认证码MACBS,与MACGWS比较,如果两者不相等,说明消息被篡改或者存在伪网关,丢弃;否则,说明消息是完整的,网关是合法的;此时,基站用自己的私钥KBS对{N1}KBS进行解密,得到N1;再用网关的加密密钥CKGW对解密,得到 ;再将TID与N1进行异或,得到 ,最后向VLR发送如下的消息[IMSI||{N2}K||NMS];
步骤五:VLR收到基站的消息后,根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,再根据IMSI找到用户的HLR,向HLR发送如下的消息[{IMSI||{N2}K}KHV||NMS],其中KHV是HLR与VLR的共享密钥。
步骤六:HLR收到VLR的消息后,根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,用KHV对{IMSI||{N2}K}KHV进行解密,根据得到的IMSI,找到对应用户的密钥K,再对{N2}K进行解密,得到N2,然后生成用户的认证向量AV,AV=RAND||XRES||CK||IK||AUTN,最后向VLR发送消息[{AV||N2}KHV||NHLR],其中,RAND是HLR产生的随机数,XRES是期望收到的用户的回复,CK是用户的加密密钥,IK是用户的完整性密钥,AUTN是认证令牌环,NHLR是HLR产生的随机数,用于防止重传攻击;
步骤七:VLR收到HLR的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用KHV对{AV||N2}KHV进行解密,得到AV和N2,然后VLR向基站发送消息[{RAND||AUTN}N2||NHLR];
步骤八:基站收到VLR的消息后,首先根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用网关的完整性密钥对消息计算认证码,得到MACGWS′=<{RAND||AUTN}N2||NHLR>IKGW,然后向网关发送消息[{RAND||AUTN}N2||NHLR||MACGWS′];
步骤九:网关收到基站的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用自己的完整性密钥对消息计算认证码,即MACGW″=<{RAND||AUTN}N2||NHLR>IKGW,再判断MACGW″与MACGWS′是否相等,如果不相等,说明消息被篡改,丢弃;否则,向用户发送消息[{RAND||AUTN}N2||NHLR];
步骤十:未通过认证的用户收到返回的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用N2对{RAND||AUTN}N2进行解密,得到RAND和AUTN,然后根据AUTN计算出序列号SQN,判断SQN是否在正确的范围内,如果不在,则认证失败;否则,再计算出消息认证码XMAC,与AUTN中的消息认证码MAC进行比较,如果不相等,则认证失败;否则表示VLR使用的密钥就是用户发送的N2,从而说明VLR是合法的,实现对VLR的认证;而XMAC=MAC,也说明了MAC就是HLR用主密钥K计算得到的,从而实现了用户对HLR的认证,进一步计算出参数RES,并用N2对其进行加密并添加另一随机数,通过网关和基站发送到VLR;
步骤十一:VLR收到用户的消息后,判断消息是否是最新的,如果不是,则丢弃,否则,将收到的RES与XRES进行比较,如果不相等,则认证失败,否则就认证成功,证实了用户的合法性,即实现了VLR对用户的认证;
步骤十二:用户计算出加密密钥CK和完整性密钥IK,完成认证过程;
多跳认证的具体实现包括以下步骤:
步骤十三:位于蜂窝网中的用户切换到网关模式后,周期性的在广播信道上发送消息,该消息格式为[SEQGW||IDcell||IDGW||KBS||Tlife||Hop||NGW];其中,SEQGW是消息序列号,用于区分消息;IDcell是网关所在的小区ID;IDGW是网关的ID;KBS是基站的公钥;Tlife是网关的生存时间,当用户收到一个新的广播消息后,都要刷新该时间;Hop是跳数门限;该消息每经过一跳,其跳数门限值减1,当该值为0时,用户不再转发该消息;该门限的值可以根据网关的中转能力设定;NGW是网关产生的只使用一次的随机数,用于防止重传攻击;
步骤十四:通过认证的中间用户收到网关的广播消息后,通过判断Tlife是否在有效范围内来确定该消息是否有效,无效则丢弃,否则根据NGW判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,读取跳数Hop,并将其减1,再判断结果是否大于0,如果不大于0,说明消息传播的跳数已经达到门限,用户将不再广播;否则,说明消息传播的跳数还没有到达门限,可以继续广播,此时,用户在已经预约的时隙上转发广播消息,格式为[SEQGW||IDcell||IDGW||IDinter1||KBS||Tlife||Hop-1||NGW],其中,IDinter1表示中间用户的ID,Hop-1表示将收到的消息中的跳数减1;
步骤十五:每一个用户收到广播消息后,都进行如同步骤二的判断,并将自己的ID加入到消息中,且修改跳数;假设消息的格式为[SEQGW||IDcell||IDGW||IDinter1||...||IDinteri||KBS||Tlife||Hop-i||NGW],其中,IDinteri表示第i个用户的ID;
步骤十六:未通过认证的用户收到广播消息后,通过判断Tlife是否在有效范围内来确定该消息是否有效,无效则丢弃,否则根据NGW判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,沿着广播消息路径的逆方向,在预约的时隙内向网关发送认证请求的消息[SEQ||IDGW||IDinter1||...||IDinteri||{N1}KBS||TID||{N2}K||NMS];其中,SEQ是消息序列号,用于区分消息,IDGW是网关ID。IDinter1和IDinteri是中间用户的ID,N1是用户产生的随机数,{N1}KBS表示用基站的公钥对N1进行加密, 表示N1与用户的IMSI异或,从而防止IMSI在无线链路上以明文传送,N2是用户产生的另一随机数,作为与VLR共享的密钥,{N2}K表示以用户与HLR共享的密钥对N2进行加密,这是为了实现用户对VLR的认证,NMS是用户产生的只使用一次的随机数,用于防止重传攻击;
步骤十七:邻近未通过认证的用户的第一个中间用户收到认证请求消息后,根据NMS判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,向下一中间用户转发如下的消息 ;其中,表示用中间用户IDinteri的加密密钥CKinteri对TID加密,进一步保护IMSI,防止其在无线链路上以明文传送,MACi是消息认证码,且 表示用中间用户IDinteri的完整性密钥IKinteri对消息计算认证码,保证消息的完整性;
步骤十八:其余的中间节点收到认证请求消息后,首先根据NMS判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,用自己的完整性密钥对收到的消息计算消息认证码MACj,并将其叠加在消息的后面,即 表示中间用户IDinterj的消息认证码,IKinterj是中间用户IDinterj的完整性密钥,节点转发的消息格式为 通过对消息认证码进行迭代,可以保证每个消息的后部只含有一个消息认证码,使得消息在传递过程中,并不会增加长度,从而可以节省带宽;
步骤十九:网关收到用户的认证请求消息后,首先根据NMS判断消息是否是最新收到的,如果不是,则视为重传消息,丢弃;否则,向基站发送消息,消息格式为 其中表示用网关的加密密钥CKGW对TID加密,进一步保护IMSI,防止其在无线链路中以明文传送,其中 IKGW是网关的完整性密钥;
步骤二十:基站收到网关的消息后,首先根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,获取从未认证用户到基站的路径上的所有节点的ID,然后依次使用这些用户的完整性密钥对消息进行认证码计算,将最后计算出的消息认证码MACBS,与MACGWM比较,如果两者不相等,说明消息被篡改或者存在伪用户,丢弃;否则,说明消息是完整的,而且中间用户都是合法的,此时,基站用自己的私钥对{N1}KBS进行解密,得到N1;然后用IDinteri的加密密钥CKinteri对进行解密,得到 再将TID与N1进行异或,得到 最后向VLR发送如下的消息[IMSI||{N2}K||NMS];
步骤二十一:VLR收到基站的消息后,根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,再根据IMSI找到用户的HLR,向HLR发送如下的消息[{IMSI||{N2}K}KHV||NMS],KHV是HLR与VLR的共享密钥;
步骤二十二:HLR收到VLR的消息后,根据NMS判断消息是否是最新的,如果不是,则丢弃;否则,用KHV对{IMSI||{N2}K}KHV进行解密,根据得到的IMSI,找到对应用户的密钥K,再对{N2}K进行解密,得到N2,然后生成用户的认证向量AV,AV=RAND||XRES||CK||IK||AUTN,最后向VLR发送消息[{AV||N2}KHV||NHLR],其中,RAND是HLR产生的随机数,XRES是期望收到的用户的回复,CK是用户的加密密钥,IK是用户的完整性密钥,AUTN是认证令牌环,NHLR是HLR产生的随机数,用于防止重传攻击;
步骤二十三:VLR收到HLR的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用KHV对{AV||N2}KHV进行解密,得到AV和N2,然后VLR向基站发送消息[{RAND||AUTN}N2||NHLR];
步骤二十四:基站收到VLR的消息后,首先根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,基站依次用网关、IDinter1...IDinteri的完整性密钥对收到的消息计算认证码,依次得到MACGWM′、MAC1′、...、MACi′,即MACGWM′=<{RAND||AUTN}N2||NHLR>IKGW,MACi′=<{RAND||AUTN}N2||NHLR>IKinteri,然后向网关发送消息[{RAND||AUTN}N2||NHLR||MACGWM′||MAC1′||...||MACi′],IKinteri是中间用户IDinteri的完整性密钥。
步骤二十五:网关收到基站的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用自己的完整性密钥对消息计算认证码,即MACGW″=<{RAND||AUTN}N2||NHLR>IKGW,再判断MACGW″与MACGWM′是否相等,如果不相等,则说明消息被篡改,丢弃;否则,向IDinter1发送消息[{RAND||AUTN}N2||NHLR||MAC1′||...||MACi′];
步骤二十六:中间用户收到返回的消息后,进行如同步骤十三的操作,即用自己的完整性密钥对消息计算认证码,判断和收到的认证码是否相等,如果不相等,说明消息被篡改,丢弃;否则,往下一用户发送消息,如果消息都是完整的,则最后,用户IDinteri向未通过认证用户发送消息[{RAND||AUTN}N2||NHLR];
步骤二十七:未通过认证的用户收到返回的消息后,根据NHLR判断消息是否是最新的,如果不是,则丢弃;否则,用N2对{RAND||AUTN}N2进行解密,得到RAND和AUTN,然后根据AUTN计算出序列号SQN,判断SQN是否在正确的范围内,如果不在,则认证失败;否则,再计算出消息认证码XMAC,与AUTN中的消息认证码MAC进行比较,如果不相等,则认证失败;否则表示VLR使用的密钥就是用户发送的N2,从而说明VLR是合法的,实现对VLR的认证;而XMAC=MAC,也说明了MAC就是HLR用主密钥K计算得到的,从而实现了用户对HLR的认证,进一步计算出RES,并用N2对其进行加密并添加另一随机数,通过中间用户、网关和基站发送到VLR;
步骤二十八:VLR收到用户的消息后,判断消息是否是最新的,如果不是,则丢弃,否则,将收到的RES与XRES进行比较,如果不相等,则认证失败,否则就认证成功,证实了用户的合法性,即实现了VLR对用户的认证;
步骤二十九:用户计算出加密密钥CK和完整性密钥IK,完成认证过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101561192A CN101359990A (zh) | 2008-09-28 | 2008-09-28 | 时分同步码分多址与自组织网络融合的认证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101561192A CN101359990A (zh) | 2008-09-28 | 2008-09-28 | 时分同步码分多址与自组织网络融合的认证方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101359990A true CN101359990A (zh) | 2009-02-04 |
Family
ID=40332340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101561192A Pending CN101359990A (zh) | 2008-09-28 | 2008-09-28 | 时分同步码分多址与自组织网络融合的认证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101359990A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101784013A (zh) * | 2010-03-16 | 2010-07-21 | 西安西电捷通无线网络通信股份有限公司 | 一种基于业务的安全组播方法及系统 |
CN101959183A (zh) * | 2010-09-21 | 2011-01-26 | 中国科学院软件研究所 | 一种基于假名的移动用户标识码imsi保护方法 |
CN105577699B (zh) * | 2016-03-03 | 2018-08-24 | 山东航天电子技术研究所 | 一种双向动态无中心鉴权的安全接入认证方法 |
-
2008
- 2008-09-28 CN CNA2008101561192A patent/CN101359990A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101784013A (zh) * | 2010-03-16 | 2010-07-21 | 西安西电捷通无线网络通信股份有限公司 | 一种基于业务的安全组播方法及系统 |
CN101959183A (zh) * | 2010-09-21 | 2011-01-26 | 中国科学院软件研究所 | 一种基于假名的移动用户标识码imsi保护方法 |
CN101959183B (zh) * | 2010-09-21 | 2013-01-23 | 中国科学院软件研究所 | 一种基于假名的移动用户标识码imsi保护方法 |
CN105577699B (zh) * | 2016-03-03 | 2018-08-24 | 山东航天电子技术研究所 | 一种双向动态无中心鉴权的安全接入认证方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10382206B2 (en) | Authentication mechanism for 5G technologies | |
CN101931955B (zh) | 认证方法、装置及系统 | |
US8385550B2 (en) | System and method for secure wireless multi-hop network formation | |
US10887295B2 (en) | System and method for massive IoT group authentication | |
KR100625503B1 (ko) | 무선 통신 시스템에서 비밀 공유 데이터를 갱신하는 방법 | |
JP3553428B2 (ja) | セッションキーを確立する方法 | |
US8259942B2 (en) | Arranging data ciphering in a wireless telecommunication system | |
CA2277761C (en) | Method for two party authentication and key agreement | |
CN101951590B (zh) | 认证方法、装置及系统 | |
CN101945387B (zh) | 一种接入层密钥与设备的绑定方法和系统 | |
WO2008021855A2 (en) | Ad-hoc network key management | |
CN101945386A (zh) | 一种实现安全密钥同步绑定的方法及系统 | |
US20090307483A1 (en) | Method and system for providing a mesh key | |
Elouafiq | Authentication and Encryption in GSM and 3GUMTS: An Emphasis on Protocols and Algorithms | |
Cao et al. | G2RHA: Group-to-route handover authentication scheme for mobile relays in LTE-A high-speed rail networks | |
CN101926122A (zh) | 建立安全关联的方法和通信系统 | |
EP3231151B1 (en) | Commissioning of devices in a network | |
US20100023752A1 (en) | Method and device for transmitting groupcast data in a wireless mesh communication network | |
JP2016501488A (ja) | Ueのmtcグループに対するブロードキャストにおけるグループ認証 | |
CN101977378B (zh) | 信息传输方法、网络侧及中继节点 | |
Othmen et al. | Anonymous and secure on-demand routing protocol for multi-hop cellular networks | |
CN101359990A (zh) | 时分同步码分多址与自组织网络融合的认证方法 | |
Conceicao et al. | Security establishment for IoT environments in 5G: Direct MTC-UE communications | |
US8412939B2 (en) | System and method for mutual authentication between node and sink in sensor network | |
Chow et al. | A lightweight D2D authentication scheme against free-riding attacks in 5G cellular network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090204 |