UICC 之 USIM 详解全系列——USIM鉴权函数说明以及鉴权向量结构
Posted 从善若水
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UICC 之 USIM 详解全系列——USIM鉴权函数说明以及鉴权向量结构相关的知识,希望对你有一定的参考价值。
博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持!
博主链接
USIM鉴权函数说明以及鉴权向量结构
一、USIM鉴权函数说明
USIM鉴权算法分为两类:
- milenage
- Tuak
关于这两种算法,可以参考博主下面的文章:
《3GPP USIM milenage算法code》
《5G 3GPP USIM Tuak算法code》
不管是使用哪一种鉴权算法,都会涉及到下面几个函数:
- f1 : 用于网络鉴权的消息鉴权函数,用来计算XMAC;
- f1* :用于重同步生成 MAC-S 的消息鉴权函数,从f1* 的函数值中无法推算出关于 f1,…, f5, f5* 任何有用信息,反之亦然;
- f2 :用户鉴权中被用来计算 SRES的消息鉴权函数;
- f3 :计算加密密钥 CK 的密钥生成函数;
- f4 :计算完整性保护密钥 IK 的密钥生成函数;
- f5 :计算匿名密钥 AK 的密钥生成函数 (可选);
- f5* :在重同步流程中计算 AK 的密钥生成函数, 从f5* 的函数值中无法推算出关于 f1, f1* ,…, f5 任何有用信息,反之亦然;
f5函数也可能不存在
AK是一种匿名密钥,用于隐藏序列号,因为序列号可能会暴露用户的身份和位置。序列号的隐藏仅仅是为了防止被动攻击。如果不需要隐藏,则f5 ≡ 0 (AK = 0)
这些函数在USIM中可能是单独存在也可能是组合的方式存在 :
例如,如果是单独存在,则分别有名为 f1、f1*、f2、f3、 f4、 f5、 f5*的函数存在;
例如,如果是组合的方式存在,则可能有一个函数同时具有f2、f3、 f4、 f5的功能;
二、USIM鉴权向量结构
AUTN👇
- AUTN 参数长度为16 Bytes, 其中:
- SQN ^ AK 占 6 Bytes;
- AMF 占 2 Bytes;
- MAC 占 8 Bytes;
AMF👇
- AMF 字段长度为 2 Bytes;
- ①是 AMF separation bit。接入 5G网络时这个字段必须设置为 “1”;
- ②1~7 bit 是保留字段,目前没有使用,默认都是 “0”;
- ③8~15 bit是有专门用途的一个字段,协议中给出几个例子:
- 通过该字段运营商可以动态切换用于 鉴权和密钥协商的算法类型;
- 通过该字段可以改变 SQN校验参数。例如,USIM 能够对SEQMS(目前接收的最高SEQ)和当前接收到的SEQ之间的差异设置一个限制值 L,通过这个字段可以动态改变参数 L;
- 设置阈值以限制 加密和完整性保护密钥的生存期
SEQ 是 SQN的组成部分: SQN = SEQ || IND
AUTS👇
- AUTS 参数长度为14 Bytes, 其中:
- SQNMS ^ AK 占 6 Bytes;
- MAC-S 占 8 Bytes;
以上是关于UICC 之 USIM 详解全系列——USIM鉴权函数说明以及鉴权向量结构的主要内容,如果未能解决你的问题,请参考以下文章
UICC 之 USIM 详解全系列——UICC中的Apps与Files结构