您的位置:系统应用>>无线通讯>>手机通信>>基础知识>>正文

CDMA实体认证机制分析

推荐给好友
打印
加入收藏
更新于2008-09-25 12:24:58

1、引言

随着移动通信技术的发展,通信中的安全问题正受到人们越来越多的关注。它关系到用户、制造商和运营商的切身利益。人们在使用移动通信得到便利的同时,也对通信中的信息安全提出了更高的要求。

由于空中接口的开放性,为确保用户访问网络资源的合法性、安全性以及服务网络的真实性,各种移动通信系统普遍采用了相应的安全机制,这些安全机制主要分为认证和加密,其中认证机制又包括实体认证和消息认证。前者是移动台(Mobile Station,MS)和基站(Base Station,BS)之间为了验证MS或BS的身份真实性而进行的信息交换过程,而后者适用于接收方验证通信内容的真实性和完整性。本文重点研究基于IS-95的cdma2000 1x系统的实体认证机制。

2、CDMA的安全机制

(1)移动通信系统的安全体系结构

移动通信系统的安全体系结构可以分为四个层次和五个安全域,如图1所示。

图1 移动通信系统安全体系结构

四个层次分别为传输层、归属层/服务层、应用层和系统安全管理配置层。五个安全域分别为:(Ⅰ)网络接入安全;(Ⅱ)网络域安全;(Ⅲ)用户域安全;(IV)应用域安全;(V)安全特性的可视性及可配置能力。

(2)CDMA网络安全

CDMA无线链路采用伪随机码(Pseudo_random Noise code,PN)对信号进行扩频,使得信号很难被拦截和窃听,此外,还规定了一系列接入安全机制,如图2所示。由于终端处理能力和空中带宽受限,CDMA安全基于私钥技术,安全协议依赖于一个64 bit认证密钥(A_Key)和终端的电子序列号(ESN),提供以下安全特征;

图2 CDMA网络无线接入安全机制

●匿名性,为终端分配TMSI;

●基于查询/应答的单向认证

●语音/用户数据/用户信令保密。

其中,采用了四种安全算法:蜂窝认证和语音加密算法(Cellular Authentication and Voice Encryption,CAVE),用于查询/应答(Challenge/Response)认证协议和密钥生成;专用长码掩码(Private Long Code Mask,PLCM),控制扩频序列,然后扩频序列与语音数据异或实现语音保密;ORYX,是基于LSFR的流密码,用于无线用户数据加密服务;增强的分组加密算法(Enhanced Cellular Message Encryption Algorithm,E_CMEA),是一个分组密码,用于加密控制信道。

(3)认证

一般在以下场合均需要认证:MS发起呼叫(不含紧急呼叫)、MS接收呼叫、MS位置登记、MS进行补充业务操作、切换(包括在MSC-A内从一个BS切换到另一个BS,从MSC-A切换到MSC-B以及在MSC-B中又发生了内部BS之间的切换等情形)。除此以外,由于受认证技术本身特点的影响,CDMA在更新共享秘密数据(Shared Secret Data,SSD)时还需要特殊的认证,它主要是保证SSD的安全性。认证过程几乎涉及网络中的所有实体,包括MSC、拜访位置寄存器(VLR)、归属位置寄存器(HLR)、鉴权中心(AUC)以及基站子系统BSS和MS。

在目前的2G和2.5G CDMA系统接入网中的认证过程只对接入CDMA系统的终端进行认证,而终端并不对网络进行认证。这种认证过程能够防止非法终端接入网络、使用网络资源,但无法防止伪基站的攻击。

cdma2000实体认证涉及到的内容有根密钥A_Key和SSD、SSD的更新以及网络对终端认证过程等。

3、cdma 2000 1x的接入安全机制

(1)密钥和相关参数管理

无线接入涉及的安全参数主要有ESN、A_Key、SSD、RAND和呼叫历史参数COUNT,cdma2000 1x主要管理A_Key和SSD的分配和更新。其中,ESN长32bit,是MS的惟一标识,由厂家设定;A_Key是主密钥,用于产生SSD,SSD则用于认证和产生子密钥;RAND是一个32bit的值,与SSD_A和其他参数结合起来对MS在发起/终止呼叫和注册时进行认证;COUNT定义了一个保存在基站中的模64的事件计数。当MS接收到一个参数更新指令后,它将更新COUNT。

在任何时候,每个MS总是拥有一个当前的SSD值,并且整个网络共享一个32 bit的随机值RAND。RAND由服务网络进行周期性地更新。

A_Key长64 bit,存储在MS永久性安全标识存储器中,仅对MS和HLR/AC可知,且不在空中传输。A_Key不直接参与认证和保密,只是用于产生子密钥,而子密钥是用来进行语音、信令及用户数据保密工作的。因此,保证A_Key的安全至关重要。A_Key可以重新设置,终端和网络认证中心AC的A_Key必须同步更新。其设置方法有以下几种:

●由制造商设置,并分发给服务提供商。制造商必须产生和存储密钥,制造商和服务提供商需要建立安全的分发通道,因此对制造商和服务提供商而言,这种方法不太可行,但对用户来说非常方便。

●由服务提供商产生,在销售点由机器分配或由用户手动设置。这种方法的前提是信任经销商,如果是机器分配则要求所有终端具有标准接口,手动设置对用户来说不方便,密钥分配和管理机制也很复杂。

●通过空中服务提供功能(Over The Air Service Provisioning,OTASP)在用户和服务提供商之间实现密钥的产生和分配。终端的A_Key通过OTASP更新,可以切断克隆终端的服务或为合法用户提供新服务,实现简单,是一种受欢迎的A_Key分发机制,也是目前3GPP2建议采用的方法。同时,3GPP2建议用基于Diffie_Hellman密钥交换协议协商A_Key。

SSD长128 bit,存储在MS中,分为两个64 bit的子集:SSD_A和SSD_B。SSD_A用于支持认证过程;SSD_B用于支持语音、信令和数据加密。

新的SSD由CAVE生成,SSD更新成功后,通常BS会发起一个独特查询/响应子过程(为了完成双向认证)。CAVE算法用于SSD更新过程如图3所示。该过程包含了MS对BS的认证,图中的MIN是IMSI的后10位数字。

图3 SSD更新流程

在第一次CAVE算法中以A_Key、ESN及从网络收到的随机数作为CAVE算法的输入,计算出新的SSD。在第二次CAVE算法中使用新生成的SSD,UIM选择的随机数RANDBS及IMSI作为CAVE算法的输入参数,输出一个用于验证的结果值。

文章出处:C114(中国通信网)