尤其用于无线电帧的计数器初始化 【发明领域】
本发明涉及计数器的初始化,该计数器作为时变输入参数用于安全功能,例如加密和/或完整性保护。本发明在一个无线电接入网可以连接到若干核心网的无线通信系统中特别有用。发明背景
无线通信系统通常是指能够在用户和网络之间进行无线通信的任何电信系统。在移动通信系统中,用户能够在网络的覆盖区内移动。典型的移动通信系统是公用陆地移动网(PLMN)。本发明可以在不同的移动通信系统中使用,例如通用移动通信系统(UMTS)和IMT-2000(国际移动电信2000)。在下文中,将通过例子参考UMTS,尤其是在第三代合作项目3GPP中指定的UMTS来描述本发明,但本发明并不限制于此。
在使用加密的系统中,基于无线电帧或协议PDU(分组数据单元)序列的编号通常被用作加密算法的不断变化的输入。在一些文献中,基于无线电帧的编号被称作连接帧编号(CFN)。然而,连接帧编号或PDU序列编号(用于重传目的等)本身对于可靠的加密来说太短。在许多无线电系统中,例如3GPP项目中的UTRAN(UMTS陆地无线电接入网),在终端和诸如无线电网络控制器RNC的网络节点之间地无线电接入网(RAN)中使用加密。除了CFN或PDU编号和实际的加密密钥之外,加密算法还可以使用其它输入,例如传输方向和/或在传输中使用的无线电载体。
通常引入一个帧扩展编号(“超帧编号”,HFN),它在短编号(CFN或PDU序列编号)完成一个周期时改变(通常是递增)。HFN和短编号一起构成加密算法的实际输入(称作计数参数)。计数参数的目的是确保不在太短的时间周期内生成相同的加密掩码。如果执行(重新)鉴权和密钥改变,计数参数(以及HFN)可以被重新设置为零。在两个连续的连接之间,终端将HFN存储在一个非易失性存储器中,例如第三代用户设备(MS)中的USIM(UMTS用户识别模块)。
在完整性保护算法中要求在3GPP规范中称作COUNT-I的类似输入参数,以防止一条连接过程中的重放(replay)。(重放是试图通过捕获并重新发送数据分组或无线电帧来中断通信的完整性)。COUNT-I参数也用HFN来初始化,并为每个所发送的完整性受保护的消息递增。
图1图示一个无线电接入网RAN被连接到两个(或更多)核心网CN的情况。有电路交换核心网CS-CN和分组交换核心网PS-CN。
如果RAN仅连接到一个核心网,则上述方法是足够的。具有多个核心网的网络结构可能涉及随后将要描述的难以检测的问题。例如,UTRAN无线电接入网可以连接到电路交换核心网CS-CN和分组交换核心网PS-CN。电路交换核心网CS-CN包括移动业务交换中心/访问者位置检测器MSC/VLR。分组交换核心网PS-CN包括服务GPRS支持节点SGSN。
下面的描述使用术语“用户平面”和“控制平面”。由移动站用户发送和接收的所有信息,例如因特网连接的语音呼叫或分组中的编码语音,在用户平面上传输。控制平面被用于所有UMTS专用控制信令,它们对于用户来说通常是不能直接看见的。可能存在一些例外,例如由用户生成的短消息可以在控制平面上被发送。在无线电接口中,来自用户平面和控制平面的数据可以被复用到同一条物理信道上。
我们首先假定USIM同时与CS和PS核心网域建立密钥。在用户平面上,朝向CS业务域的用户数据连接用加密密钥CKCS来加密,所述密钥在移动站(MS)用户和CS核心网业务域之间建立,并在UTRAN和移动站之间的安全模式设置程序中被识别。朝向PS业务域的用户数据连接用加密密钥CKPS来加密,所述密钥在用户和PS核心网业务域之间建立,并在UTRAN和MS之间的安全模式设置程序中被识别。加密过程在图2中被图示。在这个例子中,加密算法f8的输入参数是密钥CK、基于时间的计数参数C、载体标识B、传输方向D和所需要的密钥流长度L。根据这些输入参数(CK,C,B,D,L),该算法生成用于加密所输入的明文块PB的一个输出密钥流块。加密处理的结果是密文块CB。
如图3所示,除了密钥CK之外,在控制平面上需要另一个密钥。这个密钥被称作完整性密钥IK。该完整性密钥被用作完整性保护函数f9的输入,该函数计算将被添加给信令消息的消息鉴权码MAC-I。图3图示在发送者侧和在接收者侧上MAC-I编码的计算。除了完整性密钥IK之外,一些其它的参数也被用于计算消息鉴权码。COUNT-I是一个时变计数器,基本上类似于图2所示的计数参数C(将结合图4更详细地描述)。COUNT-I参数的最佳实现方式是与信令消息序列编号相结合的超帧编号HFN。已经结合图2描述了方向位D。UTRAN提供一个称作“fresh(新)”的随机值F。其它的输入是无线电载体ID和其完整性被保护的实际消息M。在图3所示的实施方式中,无线电载体ID被包括在其它输入参数之一中,例如在消息M中。用于完整性保护的超帧编号(HFN-I)可以与用于加密的超帧编号(HFN-C)相分离。需要一个计算出的消息鉴权编码MAC来验证信令消息的始发点。当执行UTRAN和MS之间的安全模式设置程序时,无论在该程序中指定何种核心网业务域,由这个程序设置的加密/完整性密钥均会被应用于控制平面。这可能要求改变一个(已经加密和/或受完整性保护的)出局信令连接(控制平面连接)的加密和/或完整性密钥。
一个需要注意的问题是计数参数C应当永不重复,除非该算法的一些其它参数已经变化。这对于加密来说特别关键,但对于完整性保护也是必要的。若HFN被用于初始化计数,在USIM中存储的HFN值应当永不减少,除非与该HFN一起使用的密钥变化。如果所存储的HFN公用于CS域和PS域,存在HFN值(因而计数参数)与相同的加密(和完整性)密钥一起使用的可能性。这个问题可以通过下面的例子来图示。
我们假设一个MS用户首先与电路交换(CS)业务域建立一条连接,并在鉴权程序中获得一个密钥组(加密和完整性密钥,CK+IK)。用户平面无线电载体使用CKCS,控制平面信令无线电载体使用CKCS和IKCS。三个HFN被初始化:
1)HFN-CUP1(用于第一加密用户平面载体的HFN);
2)HFN-CCP1(用于第一加密控制平面载体的HFN);
3)HFN-I(用于控制平面上完整性保护的HFN)。
实际上,在每个无线电载体中的上行链路和下行链路方向需要各自的超帧编号。换句话说,可能最多有六个独立的超帧编号,但是这与该问题的描述无关。可能存在多个HFN-CUP和HFN-CCP,但是在这个例子中仅假定一个用户平面和一个控制平面无线电载体。可以从USIM中读取用于HFN-C和HFN-I的相应初始化值。为了简化,在这个例子中我们假设所有的超帧编号从零开始。
随后,释放连接。一个HFN-C和一个HFN-I(在连接过程中被使用的最大值)被存储在USIM中。例如,我们为HFN-C和HFN-I假设一个值1000。而且,用于CS域的加密密钥CKCS和完整性密钥IKCS保存在MS的存储器中以便将来可能使用。
随后,建立一条到分组交换(PS)业务域的连接。用于加密的HFN-C和用于完整性保护的HFN-I被从USIM中读取并发送给UTRAN。一个潜在的遗留问题是在USIM中的超帧编号与CS域连接相关,但是现在被用于PS域中的连接。假设与PS域执行一个鉴权程序(和一个密钥改变),问题看起来被解决,因为超帧编号HFN-I和HFN-C在鉴权之后被重置为零。然而,让我们继续我们的例子并假设在这个PS连接过程中,在鉴权和密钥改变之后,HFN的值仅递增到500。当该PS连接被释放时,这个值被存储在USIM中。
最后,建立一条到CS域的新连接。假设这一次在连接开始时不执行鉴权,使用旧的加密密钥CKCS和完整性密钥IKCS以及从USIM中读取的HFN值。结果是重新使用501到1000的HFN值和CKCS,这可能损害数据的安全性。发明概述
本发明的目的是解决上述与超帧编号的可能重复使用相关的问题。这个目的通过一种方法和装置来实现,其特征在所附的独立权利要求中被公开。本发明的优选实施例在所附的从属权利要求中被公开。
本发明基于发现难以检测的问题并为其找到一种解决方案。该问题可以通过使超帧编号与核心网域(或者是与鉴权协议,实践中是与移动性管理)相关联来解决。根据这种解决方案,举UTRAN作为一个例子,指定两个HFN,HFN-CS和HFN-PS。如果使用两个以上具有独立鉴权协议的CN域,则还需要多个超帧编号,分别用于每个CN域。当执行与CS业务域的鉴权和密钥改变时,HFN-CS被重置为零。类似地,当执行与PS业务域的鉴权和密钥改变时,HFN-PS被重置为零。这还要求在每次释放连接时,将两个超帧编号(HFN-CS和HFN-PS)存储在USIM中(连同用于两个域的加密和完整性密钥)。通过比较属于该CN域(在其中释放连接的CN)的每个无线电载体中的计数参数C并选择最高的一个来选择将被存储的实际HFN值。如果用于信令载体的密码来自这个CN域,则在这个比较中也包括COUNT-I。当与CN域之一建立一条新连接时,相应的超帧编号被从USIM中读取,并在一条RACH信道或在一条专用信道上在一个RRC消息中被发送给UTRAN。也可以将两个超帧编号(HFN-CS和HFN-PS)都从USIM中读取,并同时发送给UTRAN。这可能是必须的,因为在这一阶段,移动站并不总是知道实际正在与哪一核心网建立连接。
用于一个新的无线电载体的超帧编号HFN将基于在用于所述CN域的连接过程中使用的最高HFN。新的HFN将被设置为所用的最高HFN(用于所述CN域)递增某个整数值,最好是递增一。
a)通过在加密算法的输入中包括一个载体专用或逻辑信道专用输入(例如一个载体ID号码)(如在共同转让的芬兰专利申请990500中所公开的);或b)通过将不同的CK或不同的加密算法用于每个并行无线电接入载体(如在共同转让的芬兰专利申请980209中所公开的),可以避免在过短的时间内生成相同的加密掩码。
根据本发明的优选实施例,用于每个CN域的最高的HFN值在RRC连接被释放之后被存储在移动站SIM卡中,所述CN域是在RRC连接过程中MS已经具有无线电载体连接的CN域。当下一条新的RRC连接被建立时,MS向服务无线电网络控制器SRNC发送一个初始化值,它使SRNC能够同等地初始化它的加密和/或完整性保护算法。该初始化值基于与CN域相关的HFN,所述CN域已经初始化该RRC连接建立。根据初始化值,SRNC将HFC初始化到高于所用的最高HFN的一个值。因为HFN具有一个有限的长度,“高于”应当被解释为以按模计算的方式。例如,我们假定HFN长度为25比特。通过仅存储和发送HFN的最高有效位,可以节省存储器并缩短连接建立消息。例如,MS可以仅存储最高的八个有效位。我们将这八个位称作HFN的MSB部分。在下一个连接建立中,最低的17个有效位(LSB部分)将是未知的。然而。如果MSB部分被递增1(在两个连续的RRC连接之间),新连接的第一个HFN将必然高于前一连接的最后一个HFN。如果将LSB部分中的所有位假设为1并将整个HFN(不仅是MSB部分)递增1,将获得相同的结果。附图的简要说明
将参考附图,通过优选实施例更详细地描述本发明,在附图中:
图1是一个方框图,图示包括一个无线电接入网和两个核心网或业务域的电信系统;
图2图示加密;
图3图示完整性保护;
图4图示用于加密和/或完整性保护的计数参数;和
图5图示在移动站中超帧编号的维护。本发明的详细描述
图1是一个概念方框图,图示在其中可以使用本发明的一个电信系统。该系统包括一个无线电接入网UTRAN,它又包括一个服务无线电网络控制器SRNC。图1还图示两个核心网(也称作业务域),即一个电路交换核心网CS-CN和一个分组交换核心网PS-CN。移动站MS为每个核心网维护各自的状态变量。类似地,归属位置寄存器HLR为移动站的两个业务域维护各自的权限和位置信息。
图2图示在UMTS系统中使用的加密处理CP。我们首先假设USIM同时与CS和PS核心网域建立加密密钥。在用户平面上,朝向CS业务域的用户数据连接被用加密密钥CKCS加密,所述密钥在移动站(MS)用户和CS核心网业务域之间建立,并在UTRAN和移动站之间的安全模式设置程序中被识别。朝向PS业务域的用户数据连接被用加密密钥CKPS加密,所述密钥在用户和PS核心网业务域之间建立,并在UTRAN和MS之间的安全模式设置程序中被识别。在这个例子中,加密算法f8使用五个输入参数,即CK、C、B、D和L。为每一会话建立加密密钥CK。C是基于时间的输入计数参数,将在图4中被更详细地图示。B是所述无线电载体的标识。D是传输方向(上行/下行)。L是所需密钥流的长度。根据这些输入参数,f8算法生成一个输出密钥流块,它被用于加密输入明文块PB。加密处理的结果是密文块CB。在图2和图3中,与现有技术的不同在于:用于加密和/或完整性保护的超帧编号,HFC-C和HFN-I,被独立地为每个核心网维护。
图4图示用于加密和/或完整性保护的计数(COUNT)参数C。最高有效位(MSB)在左侧。计数参数包括一个循环最低有效部分43,它可以是连接专用的帧编号CFN(如果在能够“跟踪”CFN的协议层,例如媒体访问控制(MAC)层上执行加密)或者PDU编号PDU#(如果在使用PDU编号的协议层上执行加密,例如无线电链路控制(RLC)层)。另外,计数参数包括一个超帧编号HFN,它在循环部分43完成一个循环时递增。在此,“循环”是指循环部分43在一个连接过程中完成多次循环,而整个计数参数C很长以致于在一个典型的连接过程中或者至少在一个加密/完整性密钥的生存期中不会生成重复数值。整个HFN(以及循环部分43)被用于加密和/或完整性保护,但是HFN被划分成MSB部分41和LSB部分42。如果在会话之间仅存储MSB部分,则节省了一些存储空间。
图5图示在移动站中超帧编号的维护。图5图示三个主要阶段:打开一个新会话、将一个新载体添加给一个现有会话和关闭一个会话。打开一个新会话包括步骤5-2到5-8。在步骤5-2中,移动站从其存储器(最好是它的SIM卡)中读取用于所述核心网(电路交换或分组交换)的超帧编号HFN的MSB部分41。在本发明的另一个实施例中,移动站在步骤5-2中读取所有超帧编号的MSB部分,即对于移动站能够连接的每个核心网。至少在移动站不知道在这一阶段正在建立到哪一核心网的连接时,这一步骤是必需的。在步骤5-4,MS递增HFN的MSB部分,并用零填充LSB部分。MSB部分的递增确保将不会重复计数参数的值(除非HFN溢出,这将需要很长的时间)。用零填充其余部分42和43使到HFN溢出的时间最大化,尽管在实践中可以使用任意值,只要两个端点使用相同的数值。在步骤5-6,MS将HFN发送给服务无线电网络控制器SRNC。在第二实施例中,MS在步骤5-6将所有的HFN(分别用于每个核心网)发送给SRNC。MS也可以仅发送MSB部分41,在这种情况下SRNC用与移动站所用的相同数值(例如1)初始化其余部分42和43。在步骤5-8,移动站和SRNC用计数参数初始化第一载体。它们也可以使用相同的初始化计数参数来同时建立多个载体。
步骤5-10至5-14涉及将一个新载体添加给一个现有会话。在步骤5-10,MS选择在这个会话中用于此种核心网(电路交换或分组交换)的最高超帧编号。在步骤5-12中,所选择的超帧编号被递增。在步骤5-14中,用这个HFN值初始化新载体。在步骤5-16中,MS将HFN发送到服务无线电网络控制器SRNC(类似于步骤5-6)。步骤5-18涉及关闭一个会话。移动站将在该会话中用于此种核心网的最高HFN的MSB部分41存储在它的存储器中。这个数值将在打开下一个会话时在步骤5-2中被使用。
尽管一般是递增计数参数C,如果递减计数参数将获得相同的结果,在这种情况下,类似于“较高/最高”的词必须用“较低/最低”等词来替换。因为HFN的长度是有限的,类似于“较高/最高”等词必须用模N的方式来解释,其中N是计数参数的比特长度。换句话说,一个非常小的值“大于”一个略微小于2N的值。还应当注意到术语“超帧编号”并不被严格解释为对(无线电)帧编号的扩展,它还可以是一个分组数据单元的扩展。
缩略词(一些是非正式的):
C:加密
CK:加密密钥
CN:核心网
CS:电路交换
GPRS:通用分组无线电业务
HFN:超帧编号
I:完整性(保护)
MS:移动站
MSC:移动业务交换中心
PDU:分组数据单元
PS:分组交换
RAN:无线电接入网
RNC:无线电网络控制器
SGSN:服务GPRS支持节点
SRNC:服务RNC
UMTS:通用移动电信系统VLR:访问者位置寄存器