1 重定位用户数据加密功能描述
1.1约定
重定位时加密功能描述的是服务RNC(SRNC)进行加密,伴随着SRNC重定位的硬切换:用户设备(UE)的测量报告表明硬切换的目标小区属于另外一个RNC,这时无线接入网络(UTRAN)决定执行硬切换,进行SRNC重定位,将UE移交给目标RNC。
由于不支持Iur接口,所以采用UEinvolved的重定位,通过Iu接口RANAP信令和Uu接口RRC信令来实现。
基于先考虑简单的基本过程,再逐步完善各种复杂情况的思路,约定如下:
暂不考虑组合域重定位时的加密实现,对于组合域重定位时加密,视为重定位失败。
在重定位前,源RNC已经配置加密,如果重定位时尚未配置加密信息,视为不需要进行加密。
源RNC在重定位发起后,忽略CN发来的SecurityModeCommand消息。
目标RNC应该接受源RNC指定的加密配置信息,不应该在发往源RNC的Containner中指定新的加密配置。如果目标RNC不支持源RNC侧加密配置,视为重定位失败。
1.2源RNC的处理策略
重定位的时候,UTRAN的网络节点之间传递RRC信息的典型方式是RRC信息容器(RRCinformationcontainer)。RelocationRequired消息中IE'Source RNC to Target RNC Transparent Container'内容包括UE当前在空中接口上的所有相关信息。向目标RNC传递这些信息目的是作为目标RNC分配资源的参考。
源RNC侧SMC模块的主要任务是正确填写Containner中和完整性保护、加密相关的信息。重定位时加密功能主要考虑此容器中的CipheringrelatedinformationIE,以及Integrityprotection related information IE。Ciphering related information说明见表1。
加密使用Integrityprotectionrelatedinformation IE中的binstring(Implementation specific parameters)来携带源侧与加密相关的信息。
Implementationspecificparameters共51 2 b,完整性保护占用216 b,加密从217 b开始规划,具体如图1所示。
加密算法采用16b存放(UEA0~UEAl5),每次有且仅有一个算法启用,该算法其相应位置1,其余算法相应位都置0。加密占用178b,那么Bitstrm。g占用395b。
由于源RNC上SRB2还要发送RadioBearerReconfiguration消息,对于源侧SRB2的下行HFN在填充透明容器时进行保护,判断SN+1是否发生翻转,如果发生翻转,则将SRB2的下行HFN+1填入透明容器中。
1.3目标RNC的处理策略
对于加密功能目标RNC的处理,主要完成如下两步:
(1)接收Container
RelocationRequest消息中IESourceRNC to Target RNC Transparent Container带给目标RNC UE的RRC信息。
在系统内重定位的情况下,如果SourceRNC-to-TargetRNCtransparent container IE里面提供了Ciphering Key IE,目标RNC会选择使用一种加密算法,并利用此加密密钥去加密信令数据(无论选择了哪一种算法)。而此时Relocation Request消息中Encryption InformationIE里面的Encryption Key IE将一直不会被视为加密信令数据之用。
忽略RelocationRequest消息中EncryptionInformationIE和Integrity Protection Information IE信息的配置。
如果源RNC侧没有启用加密,则SourceRNCtoTarget RNC Transparent Container IE中不会包含Ciphering related information信息,目标RNC将不会启动加密操作。如果源RNC侧启用加密,在IE Source RNC to Target RNC Transparent Container中还需要包含Integrity protection related information信息。
目标RNC负责将接收到的Container中和加密相关信息保存到本地的SMC_CTX中,并发送消息将源侧加密相关信息带给TPSS。如果目标RNC不支持该配置,则重定位资源分配失败。
(2)发送Container到SRNC
RelocationRequest消息中的SourceRNCto Target RNC Transparent Container IE给目标RNC带来了UE的RRC信息,基于这些信息,目标RNC会准备硬切换消息(如Radio Bearer Reconfiguration)。然后,目标RNC会把准备好的硬切换消息传回源RNC,由源RNC向UE发送。这条硬切换消息将被填人Relocation Request Acknowledge消息中的Target RNC to Source RNC Transparent Container IE中。
目标RNC使用Container中的信息组RadioBearerReconfiguration消息,然后发往源RNC,源RNC在收到这条消息后,不做处理,并对RadioBearer Reconfiguration消息进行加密,直接透传给UE。
在没有完成重定位前,如果源RNC侧或者目标RNC侧出现任何异常,都会导致重定位失败,直接发起RRC连接释放过程。
1.4重定位加密过程
重定位过程中的用户数据加密过程如图2所示。
重定位加密过程处理步骤如下:
(1)源侧RNC根据测量报告,发起重定位过程;
(2)源侧MM模块调用SMC模块提供函数,发送CountC_Req消息,向TPSS查询AM/UM/TMCountc,并启定时器。
如果不需要进行加密,则发送一条RLCCOUNTCREQ消息给DSDU。如果CS域加密,则发送一条RLCCOUNTC_REQ消息,一条MAC_COUNTC_REQ消息给DSDU。如果PS域加密,则发送一条RLCCOUNTCREQ消息给DSDU,一条RLC_COUNTC_REQ消息给
PSDU。如果定时器超时,则视为重定位失败,调用MM模
块函数返回RELOCATIONFAILURE。
(3)源侧收到CountC_Rsp消息后,SMC模块先检查此次重定位过程加密情况是否支持。
如果不支持该情况,视为重定位失败,调用MM模块函数返回RELOCATIONFAILURE(失败情况:组合域重定位)。否则,填充本地SMC容器信息,调用MM模块函数,填充透明容器信息并发送RelocationRequired消息。
对于源侧SRB2的下行HFN在填充透明容器时进行保j户,判断SN+1是否发生翻转,如果发生翻转,则将SRB2的下行HFN+1填入透明容器中。
(4)目标侧RNC收到RelocationRequest消息,检查目标RNC是否支持源侧的加密配置,如果不支持,视为重定位失败。否则,更新SMC_CTX中加密/完整性保护相关信息。
如果进行加密,向TPSS发送CIPHER_IND消息。对于CS域,发送一条RLC_CIPHER_IND消息,一条MAC_CIPHER_IND消息给DSDU。如果PS域加密,则发送一条RLC_CIPHER_IND消息给DSDU,一条RLC_CIPHER_IND消息给PSDU。
目标侧对于AM/UM/TM模式的RB,均立即启用加密配置。
对于目标侧SRB2,采用源侧SRB2的上下行HF较大者加1作为其上下行HFN。
(5)目标侧发送RELOCATION_REQUEST_ACKNOWLEDGE消息。(6)源侧收到RELOCATIONCOMMAND消息,组织RB重配置消息,进行加密/完整性保护,发送RBRECONFIGURATION消息给UE。
(7)目标侧收到RB重配置完成消息,发送RLCSTART_IND消息给TPSS,使用RBRECONFIGURA_TIONCOMPLETE消息携带的START值更新新建RB
的HFN(SRB2除外)。
(8)目标侧发送RELOCATIONCOMPLETE消息。
(9)源侧收到Iu_RELEASE_COMMAND消息,发起用户释放过程。
2 结语
安全模式控制过程(SMC)一般在通话过程中和重定位中出现。目前,在通话过程中的安全模式控制过程(SMC)已经被制造厂商广泛使用并趋成熟,而重定位过程中的安全模式控制过程(SMC)却一直处于探索阶段,这也造成了不同厂家设备之间互连互通出现问题。希望通过上面的讨论为该技术的最终标准化实现提供帮助。
评论
查看更多