CDMA鉴权
WCDMA和GSM安全机制比较
GSM的缺陷分以下几点
首先,认证是单向的,只有网络对用户的认证、而没有用户对网络的认证、因此存在安全漏洞。非法设备可以伪装成合法的网络成瘾,欺骗用户,窃取用户信息。
其次,移动台和网络间的大多数信令是非常敏感的,需要得到完整性的保护。在GSM中,没有考虑数据完整性保护的问题,在传输过程中被改也很难发现。
再次,加密不是端到端的、只有在无线信道部分加密,在固定网中没有加密,采用明文传输,给攻击者机会。
3G时代到来,针对GSM安全漏洞,UTMS的安全机制相对完善。WCDMA以五元组鉴权:RAND、期望响应(XRES)、加密密钥(CK)、完整性密钥(IK)、鉴权令牌(AUTN)。
网络和用户的双向鉴权过程
- 当用户购机入网时,运营商会将IMSI和用户鉴权键Ki一起分配给用户,同时将用户的IMSI和Ki存入AUC(Authentication Center 鉴权中心)。
- VLR(Vistor Location Register 拜访位置寄存器)从AUC获得用户鉴权数据,MSC(Mobile Switching Center 移动交换中心)/VLR从鉴权中心选取一组未使用过的鉴权参数。MSC/VLR向手机发起鉴权请求。请求消息中携带所选取的鉴权参数中的RAND、AUTN和CKSN参数
- 手机中的USIM根据收到的RAND和自己保存的IMSI、Ki一起计算出XMAC,与从网络侧收到的AUTN中的MAC值进行比较。如果相同,继续验证收到的AUTN中的序列号SQN是否在有效范围内。序列号SQN是为了防止他人冒充网络,利用截获的、旧的鉴权AUTN欺骗用户。
- MSC/VLR将自己用RAND、IMSI和Ki算出的XRES与手机返回的RES进行比较。如果相同,则认为用户合法。
3G鉴权算法
3G鉴权采用MILENAGE算法
USIM鉴权包括两部分功能:
(1)网络的双向鉴权:包括USIM卡对网络侧的认证已经网络侧对USIM卡的认证。
(2)产生用于加密及数据完整性校验的对话密钥-CK及IK
MILENAGE算法如图
图示的每一列代表一种特殊的安全函数,用fx表示,其中x指一种函数。这些函数不同功能函数和他们用户如下
f1:网络鉴权函数MAC
f1*:再-同步信息鉴权函数MAC_S
f2:用户鉴权函数RES
f3:加密密钥离散函数CK
f4:完整性密钥离散函数IK
f5:匿名密钥离散函数
f5*:用于再-同步信息的匿名密钥离散函数
采用序列号SQN机制是为了保证在鉴权之后所生成的密钥CK及IK的新鲜,在AUC/HLR中具备新鲜的SQN的机制,而在USIM卡中具备验证SQN是否新鲜的机制。USIM卡通过判断所接收到的SQN的值是否在一个正确的范围(由IND、L、Delta所确定)内,之后采用已生成的CK、IK进行保密性和完整性的加密运算。
K、OPc、L、c1-c5、r1-r5等参数的内容由运营商确定,并且由运营商统一维护,从而保证算法的安全性。