博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持!
博主链接

文章目录

  • 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维护算法。