3GPP的接入安全规范已经成熟,加密算法和完整性算法已经实现标准化。
基于IP的网络域的安全也已制定出相应的规范。
3GPP的终端安全、网络安全管理规范还有待进一步完善。
3GPP制定的3G安全逻辑结构针对不同的攻击类型,分为五类,即网络接入安全(Ⅰ)、核心网安全(Ⅱ)、用户安全(Ⅲ)、应用安全(Ⅳ)、安全特性可见性及可配置能力(Ⅴ)。
3GPP网络接入安全机制有三种:根据临时身份(IMSI)识别,使用永久身份(IMSI)识别,认证和密钥协商(AKA)。
AKA机制完成移动台(MS)和网络的相互认证,并建立新的加密密钥和完整性密钥。
AKA机制的执行分为两个阶段:第一阶段是认证向量(AV)从归属环境(HE)到服务网络(SN)的传送;第二阶段是SGSN/VLR和MS执行询问应答程序取得相互认证。
HE包括HLR和鉴权中心(AuC)。
认证向量含有与认证和密钥分配有关的敏感信息,在网络域的传送使用基于七号信令的MAPsec协议,该协议提供了数据来源认证、数据完整性、抗重放和机密性保护等功能。
3GPP为3G系统定义了10种安全算法:f0、f1、f2、f3、f4、f5、f6、f7、f8、f9、f1*、f5*,应用于不同的安全服务。
身份认证与密钥分配方案中移动用户登记和认证参数的调用过程与GSM网络基本相同,不同之处在于3GPP认证向量是5元组,并实现了用户对网络的认证。
AKA利用f0至f5*算法,这些算法仅在鉴权中心和用户的用户身份识别模块(USIM)中执行。
其中,f0算法仅在鉴权中心中执行,用于产生随机数RAND;f1算法用于产生消息认证码(鉴权中心中为MAC-A,用户身份识别模块中为XMAC-A);f1*是重同步消息认证算法,用于产生MAC-S;f2算法用于产生期望的认证应答(鉴权中心中为XRES,用户身份识别模块中为RES);f3算法用于产生加密密钥CK;f4算法用于产生消息完整性密钥IK;f5算法用于产生匿名密钥AK和对序列号SQN加解密,以防止被位置跟踪;f5*是重同步时的匿名密钥生成算法。
AKA由SGSN/VLR发起,在鉴权中心中产生认证向量AV=(RAND,XRES,CK,IK,AUTN)和认证令牌AUTN=SQN [AAK]‖AMF‖MAC-A。
VLR发送RAND和AUTN至用户身份识别模块。
用户身份识别模块计算XMAC-A=f1K(SQN‖RAND‖AMF),若等于AUTN中的MAC-A,并且SQN在有效范围,则认为对网络鉴权成功,计算RES、CK、IK,发送RES至VLR。
VLR 验证RES,若与XRES相符,则认为对MS鉴权成功;否则,拒绝MS接入。
当SQN不在有效范围时,用户身份识别模块和鉴权中心利用f1*算法进入重新同步程序,SGSN/VLR向HLR/AuC 请求新的认证向量。
3GPP的数据加密机制将加密保护延长至无线接入控制器(RNC)。
数据加密使用f8算法,生成密钥流块KEYSTREAM。
对于MS和网络间发送的控制信令信息,使用算法f9来验证信令消息的完整性。
对于用户数据和话音不给予完整性保护。
MS和网络相互认证成功后,用户身份识别模块和VLR分别将CK和IK传给移动设备和无线网络控制器,在移动设备和无线网络控制器之间建立起保密链路。
f8和f9算法都是以分组密码算法KASUMI构造的,KASUMI算法的输入和输出都是64 bit,密钥是128 bit。
KASUMI算法在设计上具有对抗差分和线性密码分析的可证明的安全性。