通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  新兵

注册:2017-12-20
跳转到指定楼层
1#
发表于 2021-10-9 17:28:47 |只看该作者 |倒序浏览
博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持!
博主链接:https ://blog.csdn.net/qq_31985307?spm=1001.2101.3001.5343

文章目录
NAS层安全密钥衍生——USIM相关密钥的衍生
一、K → CK、IK的触发条件
二、K → CK、IK衍生的入参
三、USIM内部具体衍生流程
四、K → CK、IK衍生失败场景
4.1 MAC失败场景(MAC failure)
4.2 同步失败(Synchronization failure)
4.2.1 USIM 如何生成 AUTS参数
本人就职于国际知名终端厂商,负责modem芯片研发。
在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。


博客内容主要围绕:
       5G协议讲解
       算力网络讲解(云计算,边缘计算,端计算)
       高级C语言讲解
       Rust语言讲解

NAS层安全密钥衍生——USIM相关密钥的衍生
今天我们要讲解的过程就是下图中,红色方框标记的密钥衍生流程。博文会介绍

什么情况下会发起 K → CK、IK的衍生;
K如何衍生出CK、IK;
什么情况下会出现 K→ CK、IK衍生失败;
USIM相关的知识,可以关注我的专栏 《UICC之USIM》



一、K → CK、IK的触发条件
        AMF通过发送 初始Authentication request Message消息给终端发起初始鉴权流程,在此流程中会触发 K → CK、IK的衍生过程。以 5G AKA鉴权流程为例,消息流程图如下:




二、K → CK、IK衍生的入参
K :USIM中存储的密钥,可以是128 bits 也可以是 256 bits;
RAND :【Random challenge】鉴权随机值由 Authentication request Message 提供 , 128 bits
AUTN : 【Authentication Token】鉴权码由 Authentication request Message 提供 , 128 bits

三、USIM内部具体衍生流程


AMF: Authentication management field

当USIM收到 RAND 和 AUTN参数时 ,USIM首先使用 f5K(RAND)函数计算出 匿名密钥 AK,使用匿名密钥 AK与AUTN前六个Bytes(SQN XOR AK)做异或运算来提取SQN参数(SQN = (SQN ^ AK) ^ AK);
SQN 【Sequence number 】:可以将SQN理解为银行的U盾,早期我们在使用网上银行时需要输入U盾显示的一串数,银行内部会检查这串数是否匹配或者是否在一个合理的范围内,如果符合要求则验证通过,否则验证失败。
同理,USIM卡中的SQN也是这个作用,会增强USIM的安全性,且运营商可以自定义SQN维护算法。

接着USIM会使用 f1K(SQN||RAND||AMF)计算 XMAC,并于AUTN中的MAC比较。如果比较结果不一致,则K → CK、IK衍生流程失败,UE将回复核心网 Authentication Failure message;如果比较结果一致,则继续下面的流程👇;
USIM 校验收到的 SQN与自己本地维护的SQN是否一致 或者 是否在合理的范围内。如果校验失败,则K → CK、IK衍生流程失败,UE将回复核心网 Synchronisation Failure message;如果校验成功,则继续下面的流程👇;
USIM
使用 f2K(RAND)函数计算 RES 参数 ;
使用 f3K(RAND)函数计算 CK参数 ;
使用 f4K(RAND)函数计算 IK 参数;
USIM存储 计算出的 CK 、 IK参数,直到下一次成功的AKA验证才会更新存储的 CK、IK参数;

四、K → CK、IK衍生失败场景

4.1 MAC失败场景(MAC failure)
       这种场景,UE会直接回复 Authentication Failure message,UE认为这是一个恶意的鉴权请求。


4.2 同步失败(Synchronization failure)
       这种场景,UE会回复核心网 Synchronisation Failure message,同时携带USIM返回的AUTS参数。核心网收到 Synchronisation Failure message 后,

如果是本次鉴权流程中第一次收到 Synchronisation Failure message则,核心网在更新AUTN和RAND参数后,重新发起 Authentication Request message;
如果是本次鉴权流程中第二次收到 Synchronisation Failure message,协议给出(非强制实现)的建议是结束本次鉴权流程,认为鉴权失败。
4.2.1 USIM 如何生成 AUTS参数
AUTS的组成见下图:


SQNMS : 是终端USIM中记录的 SQN范围中的最大值。核心网根据这个值,重新生成一个合适的SQN值。

SQNMS^AK = SQNMS ^ f5*K(RAND)
MAC-S = f1*K(SQNMS || RAND || AMF)
AUTS中没有出现AMF 参数,原因是协议规定在 Synchronisation Failure message 中 AMF参数全是零。也就是核心网在校验MAC-S参数的时候使用的 AMF 参数值是 “0x00”。这种情况下既然AMF参数已经明确定义了,那也就没有必要再占用资源传输了。

关于本博文涉及到的 USIM中的函数,可以查看博主的这篇博文进一步了解
《UICC 之 USIM 详解全系列——USIM鉴权函数说明以及鉴权向量结构》
《3GPP USIM milenage算法code》
《5G 3GPP USIM Tuak算法code》


————————————————
版权声明:本文为CSDN博主「从善若水」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https ://blog.csdn.net/qq_31985307/article/details/120468154

举报本楼

您需要登录后才可以回帖 登录 | 注册 |

版规|手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2025-8-26 03:40 , Processed in 0.136124 second(s), 17 queries , Gzip On.

Copyright © 1999-2025 C114 All Rights Reserved

Discuz Licensed

回顶部