一种确保收发双方完整性参数一致的方法转让专利

申请号 : CN200610072267.7

文献号 : CN100581288C

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵军钟纾

申请人 : 大唐移动通信设备有限公司上海大唐移动通信设备有限公司

摘要 :

本发明公开了一种确保收发双方完整性参数一致的方法,一种确保收发双方完整性参数一致的方法,发送方向接收方发送消息,该方法包括:A.在接收方为连续两轮消息设置标志量,用以标志是否接收到两轮中的每个消息,每个消息对应一个标志位;B.接收方每收到一消息,将该消息所对应的标志位置位,当一轮中所有消息对应的标志位全部置位后,将超帧号(HFN)的值增加1;如果接收方在没有收完第一轮消息时收到第二轮的消息,则不对HFN的值作加1处理,利用HFN加上1的值对该消息进行完整性验证。该方法可以在消息反序到达时,解决完整性参数不一致的问题。该方法对于网络侧是否将消息配置成按序递交,都可以正确处理。

权利要求 :

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 口消息的完整性参数失去一致性,无法通过完整性验证。

发明内容

有筌于此,本发明的目的在于提供一种确保收发双发完.整性参数一致的 方法,使其在消息的MSN反序到达时,接收方与发送方的完整性参数不一 致的问题。
为了达到上述目的,本发明提供了 一种确保收发双方完整性参数一致的 方法,发送方向接收方发送消息,该方法包括:
A.在接收方为连续两轮消息设置标志量,用以标志是否接收到两轮中的 每个消息,每个消息对应一个标志位;
B-接收方每收到一消息,将该消息所对应的标志位置位,当一轮中所有消 息对应的标志位全部置位后,将HFN的值增加1;
如果接收方在没有收完第一轮消息时收到第二轮的消息,则不对HFN的值作加1处理,利用HFN加上1的值对该消息进行完整性验证。
所述发送方为用户终端,接收方为无线网络控制器;或所述发送方为无线 网络控制器,接收方为用户终端。
所述无线资源控制消息含有MSN字段,并且MSN为每轮消息周期使用; 每轮中 一个消息的MSN对应 一个标识位,
则步骤B中将该消息所对应的标志位置位的步骤包括:
判断该消息的MSN对应的第一轮消息的标志位是否被置位,如果没有被置 位,则将该MSN对应的第一轮消息中标志位置位,否则,将该消息对应的第 二轮消息中的标志位置位。
步骤B中接收方在没有收完第一轮消息时收到第二轮的消息是根据如下步 骤确定:
判断收到该消息的MSN所对应的第一轮消息的标志位是否被置位,并且, 判断第一轮标志位中是否还存在没有被置位的,如果该消息的MSN所对应的 第一轮消息的标志位已经被置位,并且第一轮标志位还存在没有被置位的,则 确认接收方在没有收全第 一轮消息时收到第二轮的消息。
当发送方发送消息失败时,该方法进一步包^r:
发送方通知接收方进行HFN的回退,接收方根据未成功发送消息的个数, 计算需要回退的HFN值。
所述消息为无线资源控制消息。
根据本发明提出的 一种确保收发双发完整性参数一致的方法,可以解决 RRC消息反序到达时,完整性参数不一致的问题。本发明的方法,对于网 络侧是否将RRC消息配置成按序递交,都可以正确处理。

附图说明

图1示出了进行完整性保护的示意图; 图2示出了 COUNT-I的结构示意图; 图3示出了本发明方法的流程示意图;图4包括图4a、 4b和4c三部分,示出了实现本发明方法的具体实施例 的流程示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明 作进一步的详细描述。
在本发明中,在接收方为连续两轮消息设置标志量,用以标志是否接收 到两轮中对应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,则不移动。
table see original document page 10

表1
参见图4所示,本实施例的具体流程如下:
步骤401:接收方RRC接收到 一个消息,该消息的MSN等于y。 步骤402:检测MSN—ROUND[O ... MAX—MSN]和MSN—ROUND [MAX一MSN + 1…2*MAX—MSN+1 ]是否所有标志均为TRUE,如果 MSN—ROUND[O ... MAX—MSN]均为TRUE,表示MSN已经完成一轮,则 执行步骤403;如果MSN—ROUND [ MAX—MSN + 1 ... 2*MAX_MSN+1 ]均 为TRUE,表示MSN已经完成一轮,执行步骤407;如果所有标志均不是 TRUE,表示尚未完成一轮,执行步骤411。
步骤403:设置该轮的所有标志为FALSE, HFN应增l。 步骤404:判断MSN—ROUND[y+MAX—MSN+i]是否已经是TRUE,如 果是,执行步骤405,否则,执行步骤406。
步骤邻5:丢弃该消息,恢复到没有收到该消息的状态,结束本流程。 步骤406:设置MSN—ROUND[y + MAX—MSN + 1 ] = TRUE,强制移动一次P—MSC—ROUND—SKIP,按P规则移动P—MSC—ROUND—SKIP。然后对 收到的消息进^f亍完整性检查,结束本流程。
步骤407:设置该轮的所有标志为FALSE, HFN应增l。
步骤408:判断MSN—ROUND[y]是否已经是TRUE,如果是,则执行 步骤409,否则,执行步骤410。
步骤409:丟弃该消息,恢复到没有收到该消息的状态,结束。
步骤410 : i殳置MSN—ROUND[y] = TRUE 。 强制移动 一 次 P—MSC—ROUND—SKIP,按P规则移动P—MSC一ROUND—SKIP。对收到的消 息进行完整性检查,结束本流程。
步骤411:判断P—MSC—ROUND—SKIP是否大于等于MAX—MSN,如 杲是,则执行步骤412,否则,执行步骤423。
步骤412:判断P—MSC—ROUND—SKIP是否小于等于y+ MAX—MSN+1, 如果是,则执行步骤413,否则,执行步骤416。
步骤413:判断MSN—ROUND[y]是否已经是TRUE,如果是,则执行 步骤414,否则,执行步骤415。
步骤414:丢弃该消息,恢复到没有收到该消息的状态,结束本流程。
步骤415:设置MSN—ROUND[y+MAX—MSN+1] = TRUE。按P规则移 动P—MSC—ROUND—SKIP。对收到的消息进行完整性检查,结束本流程。
步骤416:判断P—MSC—ROUND—SKIP是否大于y+MAX—MSN+1 ,如 果大于,则执行步骤417,否则,执行步骤420。
步骤417:判断MSN—ROUND[y]是否已经是TRUE,如果是,则执行步 骤418,否则执行步骤419。
步骤418:丢弃该消息,恢复到没有收到该消息的状态,结束。
步骤419:设置MSN—ROUND[y] = TRUE。按(HFN+1 )对该消息进行 完整性检查;按P规则移动P—MSC一ROUND一SKIP。
步骤420:判断MSN—ROUND[y]是否已经是TRUE,如果是,则执行 步骤421,否则执行步骤422。步骤421:丢弃该消息,恢复到没有收到该消息的状态,结束。
步骤422:设置MSN—ROUND[y] = TRUE。按(HFN+1 )对该消息进行 完整性检查;按P规则移动P_MSC—ROUND_SKIP,结束本流程。
步骤423:判断P—MSC—ROUND—SKIP是否小于等于y,如果是,则执 行步骤424,否则执行步骤427 。
步骤424:判断MSN—ROUND[y]是否已经是TRUE,如果是,则执行 步骤425,否则,执行步骤426。
步骤425:丢弃该消息,恢复到没有收到该消息的状态。
步骤426 : 设置MSN一ROUND[y] = TRUE 。 按P规贝'J移动 P—MSC—ROUND—SKIP。对收到的消息进行完整性4企查,结束本流程。
步骤427:判断MSN—ROUND[y+MAX—MSN+1]是否已经是TRUE,如 果是,则执行步骤428,否则,执行步骤429。
步骤428:丢弃该消息,恢复到没有收到该消息的状态。
步骤429:设置MSN—ROUND[y+MAX—MSN+1] = TRUE。按(HFN+1 ) 对该消息进行完整性检查;按P规则移动P—MSC—ROUND—SKIP。
在实际的网络信号环境中,可能还会发生消息丟失的情况,出现RLC RESET或RLC不可恢复错误,此时发送方采用HFN回退的方法。对于接收 方,RLC也应通知RRC这一事件,RRC重置标志,MSN—ROUND[O]置TRUE, 其余置FALSE, P—MSC—ROUND—SKIP重置到初始位置。
下面进 一 步以实例说明上述方法。
UTRANRRC已经成功发送了 MSN为0、 1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 11、 12的消息到达UE RRC,由于RLC层数据的重传,导致随后的消 息到达发生了反序,假设发送方继续发送MSN为13、 14、 15、 0、 1、 2、 3, 而到达的顺序是13、 15、 0、 2、 1、 14、 3。
下面的表格显示接收方每 一 次收到消息后,接收标志量的情况。 UE RRC收到13后接收标志如表2。
table see original document page 13

表2
UE RRC收到15后接收标志如表3。
table see original document page 13

表3
UE RRC收到0后接收标志如表4。
table see original document page 13

表4
UE RRC收到2后接收标志如表5。
table see original document page 13

表5
UE RRC收到1后接收标志如表6。
table see original document page 13

表6
UERRC收到14后接收标志如表7。
table see original document page 14

这样,接收方就可以正确处理所有到达的消息,不论它们的到达顺序如何。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的 保护范围。