随着移动通信技术的发展,通信中的安全问题受到人们越来越多的关注。由于空中接口的开放性,为确保用户访问网络资源的合法性,安全性及服务网络的真实性,各种移动通信系统普遍采用了相应的安全机制。下面我就来和大家一起分析一下Gsm系统如何鉴权与加密

一、鉴权加密过程的三参数组

客户的鉴权加密过程是通过系统提供的客户三参数组来完成的,客户三参数组的产生是在GSM系统的AUC鉴权中心中完成。每个客户在GSM网中注册登记时,就被分配一个客户电话号码(MSISDN)和客户身份识别码(IMSI)。IMSI通过SIM写卡机来写入客户的SIM卡中,同时在写卡机中又产生了一个对应此IMSI的唯一客户鉴权键Ki,它被分别存储在客户的SIM卡和AUC中,这是永久性的信息。在AUC中还有个伪随机码发生器,用于产生一个不可预测的伪随机数RAND。

在GSM规范中还定义了A3、A8和A5算法分别用于鉴权和加密过程。在AUC中RAND和Ki经过A3算法(鉴权算法)产生了一个响应数SRES同时经过A8加密算法产生了一个密钥。因而由该RAND、Kc、SERS一起组成了该客户的一个三参数组,传送给HLR并存储在该客户的客户资料库中。一般情况下,AUC一次产生5组三参数传送给HLR,HLR自动存储。HLR可存储10组三参数,当MSC/VLR向HLR请求传送三参数组时,HLR又一次性的向MSC/VLR传送5组三参数组。MSC/VLR一组一组的使用,当用到剩两组时,就回再向HLR请求传送三参数组。

二、Gsm鉴权过程

当MSC与BSS的SCCP层建立起来之后,就可以来决定是否触发鉴权加密过程。而判断是否进行鉴权过程的关键在于查看网络一端所存储的上一次业务处理所使用的该移动台的Kc值是否与本次接入中移动台所存储的Kc值是否一致,若一致则可越过鉴权过程直接利用该Kc值来参与加密过程,若不一致,则需通过鉴权过程来算出新的Kc值。由于需要保密的缘故,因而移动台不直接通过无线路径来向网络发送Kc值进行验证。所以在这里我们引入了一个Kc的序列号码的概念,在规范中被称为CKSN(密钥序列号码),该号码是移动台在上一次接入网络时,由MSC/VLR提供的,并通过鉴权请求报文发送给移动台的,并于计算出的Kc一同存储在SIM卡中,同时也存于MSC/VLR中。当MS初始接入时,通过SABM帧的初始化报文业务请求字段把CKSN的消息一起送到MSC/VLR中,MSC/VLR将它与上一次使用的CKSN号进行校验,如果不一致,则在加密之前要进行鉴权过程,若CKSN=0则表示没有分配KC。

MSC/VLR会向移动台发送一条鉴权请求(Authentication request)的报文来触发鉴权过程,这是一条DTAP信令消息。系统在鉴权请求消息中包含一个随机数(RAND)和CKSN号码,RAND共128bit,SIM卡上的用户密钥Ki与这个随机数经GSM规范的A3算法,产生一个32bit的应答数SRES (与此同时MS还要将Ki和RAND再通过A8算法得出一64bit的Kc,并将它保存在SIM卡内,以后按系统指令决定是否激活加密传输),MS再通过一条鉴权响应(Authentication response)报文将SERS送回系统。因Ki值作为用户数据存在VLR或HLR中,在系统一侧也会进行与MS相同的A3和A8算法,产生一个SRES数和Kc存在VLR中,系统则会将这两个SRES值相比较,若相同则鉴权成功允许接入网络,之后MSC将继续触发加密过程;若不同则鉴权失败,系统会拒绝MS的继续接入。此时鉴权过程结束。

一般在MSC/VLR和HLR/AUC都可执行A3和A8算法,但MSC/VLR算起来比较麻烦,而HLR/AUC存有Ki值算起来简单的多而且可以很好的解决保密性和漫游的的问题,但却增加了HLR至MSC的信令量,因而每次计算,HLR/AUC都会将这三个结果值送到MSC/VLR中,即RAND,SRES和KC,以被选用。

三、Gsm加密过程

当鉴权过程结束后,此时MSC会向BSC发一条加密命令(BSSMAP Ciphering Mode Command)的消息,在该消息中包含着密钥Kc,BSC接着会向MS发出加密命令(RR Ciphering Mode Command)来通知MS进入加密模式(这时基站也进入解密的模式下 ),MS收到该指令后就会转入加密模式的发送与接收,并向系统发出发出加密完成(RR Ciphering Mode COMPLETE)消息,此时该报文已经是加密的了。

是否采用加密由系统决定,产生加密码的算法称为A5算法,它是利用移动台和网络都同意的密钥(64比特)值和当前脉冲串的帧号码(22比特)进行计算的,以产生一个114比特的加密序列来和突发脉冲的114比特的信息位进行异或操作。网络在上行链路和下行链路使用两个相同的加密序列,对于每一个突发,一个序列用于移动台内的加密并作为BTS中的解密序列,一个序列用于BTS的加密并作为移动台的解密。

四、TMSI重新分配过程

在鉴权加密过程完毕之后,系统要向MS发出CM SERVICE ACCEPT消息 或TMSI 的重新分配命令(TMSI reallocation command)的报文.

当移动台在定位区内第一次注册时,就会将一个TMSI分配给移动台,当移动台离开这个定位区时释放这个TMSI。当MS收到TMSI 的重新分配 命令时,它将在存储器内存储收到的TMSI和LAI,并向网络发送TMSI再分配完成(TMSI reallocation complete)的报文。MSC对所收到的位置更新请 求(location update request)的答复即位置更新接受(location update accept) 的报文可以在TMSI再分配完成之后发送也可以同TMSI 的重新分配命令组 合在同一个报文中发送。

若在网络中由移动台提供的TMSI,无法被系统所识别(如此时数据库发生故障),则移动台需提供其IMSI。此时在TMSI再分配程序启动之前应先启动识别程序来向移动台请求提供其IMSI号。

识别程序是通过向移动台发起识别请求(identity request)消息,在收 到该消息后,移动台发起识别响应(identity response)消息来向网络提供 其IMSI号码。在此程序完成之后,系统再根据其需要来进行鉴权加密和TMSI再分配过程。

小知识之GSM

GSM,是当前应用最为广泛的移动电话标准。全球超过200个国家和地区超过10亿人正在使用GSM电话。GSM标准的无处不在使得在移动电话运营商之间签署"漫游协定"后用户的国际漫游变得很平常。 GSM 较之它以前的标准最大的不同是他的信令和语音信道都是数字式的,因此GSM被看作是第二代 (2G)移动电话系统。