转载自孤醉的blog。地址:http://blog.sina.com.cn/s/blog_4de621320100dip0.html。 同GSM网络鉴权相比,3G除了网络对USIM的认证外,还增加了USIM对网络的认证。3G鉴权过程见下图: 过程如下: 一、用户归属域(HE)到服务网(SN)认证向量的发送过程:认证中心(AUC)为每个用户生成基于序列号的认证向量组(RAND,XRES,CK,IK,AUTN),并且按照序列号排序。 二、当AUC收到VLR/SGSN的认证请求时,发送N个认证向量组给VLR/SGSN。在VLR/SGSN中,每个用户的N个认证向量组,按照“先入先出”(FIFO)的规则发送给移动台,用于鉴权认证。 三、VLR/SGSN初始化一个认证过程,选择一个认证向量组,发送其中的RAND和AUTN给用户。ME收到后RAND∣∣AUTN后传送给USIM卡,在USIM卡中进行下列操作: 1) USIM计算出XMAC,将它与AUTN中的MAC值进行比较。如果不同,发送一个“用户认证拒绝”信息给VLR/SGSN,放弃该认证过程。在这种情况下,VLR/SGSN向HLR发起一个“认证失败报告”过程,然后由VLR/SGSN决定是否重新向用户发起一个认证过程。 2) USIM比较收到的SQN是否在正确范围内(为了保证通信的同步,同时防止重传攻击,SQN应该是目前使用的最大的一个序列号,由于可能发生延迟等情况,定义了一个较小的“窗口”,只要SQN收到的在该范围内,就认为是同步的)。 3) 如果SQN在正确范围内,USIM计算出RES(用户响应) = f2K (RAND),CK(加密密钥) = f3K (RAND)和IK(完整密钥) = f4K (RAND) ,并将其发送给ME。 4)ME将RES发送给VLR/SGSN,比较RES是否等于XRES。如果相等,网络就认证了用户的身份,鉴权通过。 附上规范中提到的AUTN鉴权网络过程图示: 生成AUTN的过程: |