MILENAGE算法参数与烧卡信息不一致导致终端鉴权失败,上报原因值:Mac_failure

发布时间:  2013-01-14 浏览次数:  1701 下载次数:  0
问题描述
某新建局点完成数据配置后进行入网测试,发生终端鉴权失败,原因值为“Mac_failure”。
告警信息
处理过程
根据十六进制和十进制换算,修改MILENAGE算法,再次进行测试,终端鉴权通过正常入网。
根因
客户提供的测试卡信息如下:

信令跟踪结果:


1、通过信令跟踪消息我们分析,首先MME已经从HSS获得鉴权集,接下来就会通过取到的鉴权值下发给UE进行的鉴权值的比较。

2、怀疑问题出在鉴权参数上,而鉴权涉及到的参数有K4、KI、OP、OPC,客户提供的开卡信息中只有K、OPC的值,目前通常已经不使用K4值了,仔细检查开户时的K值和OPC值,与客户提供的开卡信息进行比较。执行LST KI,查询开户用到的OPC值和KI值,以及K4SNO是否为0, CARDTYPE是否为USIM,ALG是否为MILENAGE,与卡信息完全一致。

3、鉴权涉及参数设置和使用算法,参数设置没有问题,那么问题可能出在算法上。咨询开卡商当时烧卡时输入了那些信息,发现除了一些鉴权参数外,他们改动了MILENAGE算法的默认参数值。

4、MILENAGE算法涉及R值:以AES为核心算法的MILENAGE算法簇中对中间计算结果进行循环移位的bits位数;C值:在MILENAGE算法中参与中间计算结果异或运算的常量。开卡商的C值与我司相同,但R值分别为 32,19,47,73,91(十进制表示),与我司的默认值不同。至此,找到问题根源。


建议与总结
通常开卡商在烧制MILENAGE算法时会采用业界通用值,但不同的企业用户有不同的要求,这一点和运营商不同,也导致我们在分析问题是更要从这方面多想想。

END