一种确保收发双方完整性参数一致的方法转让专利
申请号 : CN200610072267.7
文献号 : CN100581288C
文献日 : 2010-01-13
发明人 : 赵军 , 钟纾
申请人 : 大唐移动通信设备有限公司 , 上海大唐移动通信设备有限公司
摘要 :
权利要求 :
1、一种确保收发双方完整性参数一致的方法,发送方向接收方发送消息,其特征在于:该方法包括以下步骤: A.在接收方为连续两轮消息设置标志量,用以标志是否接收到两轮中的每个消息,每个消息对应一个标志位; B.接收方每收到一消息,将该消息所对应的标志位置位,当一轮中所有消息对应的标志位全部置位后,将超帧号HFN的值增加1; 如果接收方在没有收完第一轮消息时收到第二轮的消息,则不对HFN的值作加1处理,利用HFN加上1的值对该消息进行完整性验证。
2、 根据权利要求1所述的方法,其特征在于,所述发送方为用户终端,接 收方为无线网络控制器;或所述发送方为无线网络控制器,接收方为用户终端。
3、 根据权利要求1所述的方法,其特征在于,所述消息中含有消息序列号 MSN字段,并且MSN为每轮消息周期使用;每轮中一个消息的MSN对应一 个标识位,则步骤B中将该消息所对应的标志位置位的步骤包括:判断该消息的MSN对应的第 一轮消息的标志位是否被置位,如果没有被置 位,则将该MSN对应的第一轮消息中标志位置位,否则,将该消息对应的第 二轮消息中的标志位置位。
4、 根据权利要求3所述的方法,其特征在于,步骤B中接收方在没有收完 第 一轮消息时收到第二轮的消息是根据如下步骤确定:判断收到该消息的MSN所对应的第一轮消息的标志位是否被置位,并且, 判断第一轮标志位中是否还存在没有被置位的,如果该消息的MSN所对应的 第一轮消息的标志位已经被置位,并且第一轮标志位还存在没有被置位的,则 确认接收方在没有收全第 一轮消息时收到第二轮的消息。
5、 根据权利要求1所述的方法,其特征在于,当发送方发送消息失败时, 该方法进一步包括:发送方通知接收方进行HFN的回退,接收方根据未成功发送消息的个数,计算需要回退的HFN值。
6、根据权利要求1~5中任意一项所述的方法,其特征在于,所迷消息为 无线资源控制消息。
说明书 :
一种确保收发双方完整性参数一致的方法
技术领域
背景技术
完整性保护在无线资源控制(Radio Resource Control, RRC )子层执行, 同加密一样,在无线网络控制器(RNC)和终端之间使用。完整性密钥(IK) 和加密密钥(CK)在鉴权和密钥协商过程中产生。
完整性保护是指:通用移动通信系统(UMTS)陆地无线接入网络 (U丁RAN)向用户终端(UE )发送安全模式命令(Security Mode Command) 消息。UE收到该消息后,按照消息中携带的完整性保护的参数以及先前的 筌权过程产生的密钥,对此后的信令消息进行完整性保护。
完整性保护的参数包括随机数(FRESH) 、 IK、方向位(DIRECTION)、 完整性序列号(COUNT-I)和报文(MESSAGE)。其中,FRESH包括32 比特,来自网络側,由Security Mode Command携带,是UTRAN为每一个 用户随机产生的,并在一次信令的连接过程中有效;IK包括128比特,来 自用户身份标识(SIM)卡,IK在协商鉴权时在归属位置寄存器(HLR) / 认证中心(AuC)中产生并发送到拜访位置寄存器(VLR) /GPRS业务支持节点(SGSN),作为五元组的一部分存储在VLR/SGSN中,然后由VLR/SGSN 发送到RNC; DIRECTION为1比特,0表示UE到UTRAN, 1表示UTRAN 到UE; MESSAGE为被保护的信令消息;COUNT-I包括32比特,COUNT-I 不是来自于网络侧,但要根据网络側的信息来设定。
结合图l所示,完整性保护的具体过程是这样的:发送方向接收方发送 信令报文,其中携带接收方利用IK以及COUNT-I、 MESSAGE、 DIRECTION 和FRESH经过f9算法产生的消息鉴权码(MAC );接收方收到该信令报文 后,用与发送方同样的算法计算得到期望消息鉴权码(XMAC),并将MAC 和XMAC进行比较,如果两者相等,则说明收到的信令报文是完整的,在 传输过程中没有被修改,否则,则认为该信令报文在传输过程中被修改。另 外,发送方为UE时,接收方为認C,反之亦可。
需要说明的是,对于每个信令无线承载(SRB)来说,上、下行链路分 别存在一个COUNT-I值,如图2所示,COUNT-I包括RRC超帧号(HFN) 和RRC序列号MSN。 HFN为28比特,MSN为4比特。MSN初始为0, HFN的初始值由IK状态确定,如果IK首次使用,则HFN为0,否则HFN 的高20位为UE计算出的START值,其余为0。MSN从0到0xF递增使用, 当循环一轮后,HFN增1。上下行的完整性保护独立进行。
目前,3GPP完整性保护协议中有如下说明:当接收到消息的MSN小 于上次成功收到消息中的MSN,则HFN要增1。但是由于RLC层的重传或 者数据包的丢弃,可能会导致MSN序号较大的消息先到,MSN序号较小的 消息后到,这样,接收方接收到MSN序号较小的消息后,、換收方中的HFN 增l,结果收发双方的HFN失去一致,进而导致对MSN序号较小的消息进 行的完整性验证失败。
例如:UTRAN和UE的完整性保护已经启用,UTRAN组织并发送了 3 条测量控制消息,MSN号依次为3, 4, 5。 UTRAN发送的MSN为3, 4, 5 的消息被UTRAN无线链路控制(RLC )封装在不同的协议数据单元(PDU) 中传给UERLC。其中,PDU序列号(SN)小的包封装了 MSN为3的服务数据单元(SDU) , PDU SN大的包封装了 MSN为5的SDU。结果PDU SN小的数据包丢失,只有PDU SN大的封装了 MSN为5的SDU的RLC PDU到达了 UE RLC, UE RLC将MSN为5的SDU重组成功交给上层,并 用STATUS PDU通知UTRAN, PDU SN小的数据包丢失。UTRAN RLC 收到UE RLC发送的这条STATUS PDU后,重传PDU SN小的包含了 MSN 为3, 4 SDU的RLC PDU, UERLC收到后,再重组MSN为3, 4的SDU 给RRC。这样UE RRC接收SDU顺序就是5, 3, 4,依据现有协议,UE 在收到MSN为3的消息时,判断小于上一条消息的MSN为5,就认为已经 是一次新的轮回,HFN需要增l,就会导致对于MSN为3的消息完整性检 查失败,于是该消息^皮丟弃。MSN为4的消息也同样被丢弃。
当然,在上行链路上,对于UE发送给UTRAN的AM消息也存在同样 的情况。
综上所述,按照3GPP现有的协议规定,由于底层无线信号质量不好, RLC层需要重传或者数据包丟弃,将导致RRC消息的MSN反序到达时, Uu 口消息的完整性参数失去一致性,无法通过完整性验证。
发明内容
为了达到上述目的,本发明提供了 一种确保收发双方完整性参数一致的 方法,发送方向接收方发送消息,该方法包括:
A.在接收方为连续两轮消息设置标志量,用以标志是否接收到两轮中的 每个消息,每个消息对应一个标志位;
B-接收方每收到一消息,将该消息所对应的标志位置位,当一轮中所有消 息对应的标志位全部置位后,将HFN的值增加1;
如果接收方在没有收完第一轮消息时收到第二轮的消息,则不对HFN的值作加1处理,利用HFN加上1的值对该消息进行完整性验证。
所述发送方为用户终端,接收方为无线网络控制器;或所述发送方为无线 网络控制器,接收方为用户终端。
所述无线资源控制消息含有MSN字段,并且MSN为每轮消息周期使用; 每轮中 一个消息的MSN对应 一个标识位,
则步骤B中将该消息所对应的标志位置位的步骤包括:
判断该消息的MSN对应的第一轮消息的标志位是否被置位,如果没有被置 位,则将该MSN对应的第一轮消息中标志位置位,否则,将该消息对应的第 二轮消息中的标志位置位。
步骤B中接收方在没有收完第一轮消息时收到第二轮的消息是根据如下步 骤确定:
判断收到该消息的MSN所对应的第一轮消息的标志位是否被置位,并且, 判断第一轮标志位中是否还存在没有被置位的,如果该消息的MSN所对应的 第一轮消息的标志位已经被置位,并且第一轮标志位还存在没有被置位的,则 确认接收方在没有收全第 一轮消息时收到第二轮的消息。
当发送方发送消息失败时,该方法进一步包^r:
发送方通知接收方进行HFN的回退,接收方根据未成功发送消息的个数, 计算需要回退的HFN值。
所述消息为无线资源控制消息。
根据本发明提出的 一种确保收发双发完整性参数一致的方法,可以解决 RRC消息反序到达时,完整性参数不一致的问题。本发明的方法,对于网 络侧是否将RRC消息配置成按序递交,都可以正确处理。
附图说明
具体实施方式
在本发明中,在接收方为连续两轮消息设置标志量,用以标志是否接收 到两轮中对应MSN的消息,并且,每个消息对应一个标志位;接收方每收 到一条消息,在该消息的MSN所对应的标志位上置上接收标志,当一轮中 的所有消息都收到时,即第一轮消息对应的标志位都#:置位时,才将HFN 增1,这样,不论是否反序到达,都不会导致接收方的HFN误判。如果一 轮还没有收齐,而已经收到下一轮的某些消息,那么对这些消息用(HFN+1) 来进行完整性检查,HFN本身并不增加。所述发送方为用户终端,接收方 为无线网络控制器;或所迷发送方为无线网络控制器,接收方为用户终端。 上述消息可以为RRC消息。
参见图3所示,实现本发明的方法包括以下步骤:
步骤301:在接收方为连续两轮消息设置标志量,用以标志是否接收到两 轮中的每个消息,每个消息对应一个标志位;
步骤302:接收方每收到一消息,将该消息的MSN所对应的标志位置位, 当一轮中所有消息全部置位后,将HFN的值增加1;如果接收方在没有收完第 一轮消息时收到第二轮的消息,则不对HFN的值作加1处理,利用HFN加上 1的值对该消息进行完整性IM正。
由于在实际应用过程中,RRC消息含有MSN, MSN为每轮消息周期使用 因此,本发明可以为一轮中每个消息的MSN设置一个标识位,但是由于对于 连续两轮的MSN可能对应两个标志位的情况,需要判断每收到一消息所对应 的标志位,因此,对于上述步骤302中将该消息所对应的标志位置位的步骤可 以通过如下步骤进行:判断该消息的MSN对应的第一4仑消息的标志4立是否一皮置4立,如杲没有^皮置 位,则将该MSN对应的第一轮消息中标志位置位,否则,将该消息对应的第 二轮消息中的标志位置位。
步骤302中接收方在没有收完第一轮消息时收到第二轮的消息也可以根据 如下步骤确定:判断收到该消息的MSN所对应的第一轮消息的标志位是否被 置位,并且,判断第一轮标志位中是否还存在没有被置位的,如果已经被置位, 并且第一轮标志位还存在没有被置位的,则确认接收方在没有收全第一轮消息 时收到第二轮的消息。
当发生某些消息的丢失,由于是AM模式,RLC将检测到这种情况, 对发送方而言,RRC根据未成功发送的RRC消息个数,计算需要回退的HFN 值,并重置MSN。相应的,接收方应重置所有接收标志。
下面结合图4举具体实例详细描述接收方在收到消息后的处理过程。 为了描述方便,本实施例将作如下约定:
(1 )本实施例将MSN的最大值MAX—MSN设置为15 (当前协议也为
15);
(2 ) RLC BUFFER MSG NUM,表示某RB上还没有成功发送出去的 RRC消息总数,包括没有发送过和发送过但没有应答的;
(3) MSN—ROUND[2*(MAX—MSN+1)],接收方的标志,表明某MSN 是否成功接收;
(4 ) MSN—ROUND[y]为TRUE表示对应的消息成功接收, MSN一ROUND[y]为FALSE表示对应的消息还没有接收到,其中,y表示该 消息是本轮中第几个消息,y-l表示第一个,y-2表示第二个。
表1为MSN—ROUND[2*(MAX—MSN+1)]标志位。参见表1。在重置的 时候,MSN—ROUND[0]置TRUE,其余置FALSE。在实际的网络中,连续 到达的MSN跨越两轮以上的可能性几乎不存在,因此设置 MSN—ROUND[2*(MAX—MSN+1)]就可以完成接收标志作用,同时本文后面 还给出了发生消息丟失时的回退机制,确保本方法在极端情况下的处理。P—MSC—ROUND—SKIP,取值范围为0..2* MAX—MSN+1,接收方指示 已经连续收到的最后 一 个MSN , 该指示的下 一 个标志 MSN—ROUND(P—MSC—ROUND—SKIP+1 )—定是FALSE 。当新的 一轮开始的 时候,P—MSC—ROUND—SKIP指示的位可能是FALSE。重置的时候, PMSC—ROUND—SKIP = 0。
P头见则移动,P指针右移一位,同时遵循P—MSC—ROUND—SKIP= (P—MSC—ROUND—SKIP + 1) mode (2 * MAX—MSN),如果指示位为TRUE并 且下一位也是TRUE,则持续右移,直至下一位为FALSE。如杲移动到最右 端,将循环至左端。如果指示位为FALSE,则不移动。