那些参数参与鉴权?
AUTHENTICATION REQUEST信令中都有哪些参数,如何进行的鉴权?
TD的,想学习学习AUTHENTICATION REQUEST信令
二、 鉴权过程
正如上一节所讲到的,当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,以被选用。