【5G核心网】 5G安全之AKA验证流程

2023-05-16

   在 5G 网络的安全类型:

UE 访问网络服务所需的“网络访问安全性”。 此安全性主要涵盖信令和数据的身份验证,完整性和加密。

域安全性主要涵盖不同网络节点之间的安全通信。 

应用程序域安全性涵盖对等应用程序之间的安全性机制。

有两种不同的身份验证

  服务操作“身份验证”通过向 AUSF 提供以下信息,允许请求者 NF 发起 UE 的身份验证:

- UE id (i.e. SUPI or SUCI)

- Serving Network Name

    AUSF 从 UDM 检索 UE 的签约身份验证方法,并根据 UDM 提供的信息,AUSF 进入以下过程之一: 

- 5G-AKA

- EAP-based authentication'

 

1. 5G AKA

    在此过程中,NF 服务使用者(AMF)通过向 NF 服务生产者(AUSF)提供与 UE 相关的信息和 Serving Network Name 来请求 UE 的身份验证,AUSF 从 UDM 检索与 UE 有关的数据和身份验证方法。在这种情况下,检索到的身份验证方法是 5G AKA。 然后,NF 服务消费者(AMF)应将从 UE 收到的结果返回给 AUSF:

Figure 5.2.2.2.2-1: 5G AKA
  •  NF 服务使用者(AMF)向 AUSF 发送 POST 请求。 请求 body 应至少包含 UE ID 和服务网络名称。
  •  成功后,将返回“ 201 Created”。 response body 应包含所创建资源的表示,而“ Location” header 应包含所创建资源的 URI(例如... / v1 / ue_authentications / {authCtxId})。 AUSF 生成子资源“ 5g-aka-confirmation”。 每个 UE 的每个服务网络应只有一个子资源“ 5g-aka-confirmation”,由 AuthenticationInfo 中的 supiOrSuci 和 serveNetworkName标 识。 AUSF 必须在 responnse body 中提供指向该子资源的超媒体链接,以指示 AMF在 哪里发送 PUT 进行确认。 
  •  如果失败,则应返回表 6.1.7.3-1 中列出的 HTTP 状态代码之一,并在消息正文中包含一个 ProblemDetails结 构,并将“ cause”属性设置为表6.1.7.3-1中列出的应用程序错误之一。如果服务网络未被授权,则 AUSF 应使用 SERVING_NETWORK_NOT_AUTHORIZED “原因”。
  •  NF 服务消费者(AMF)推论它应将包含 UE 提供的“ RES *” 的 PUT 请求发送到 AUSF。 NF服务使用者(AMF)还应在RES *中发送包含空值的PUT,以在以下情况下向AUSF指示失败:
    - 如果 UE 不可达,并且 NF 服务消费者(AMF)从未收到 RES *;
    - 在 NF 服务使用者(AMF)中无法比较 HRES * 和 HXRES *;
    - 从 UE 接收到认证失败,例如 synchronization failure 或 MAC failure;

 

5G AKA Authentication Procedure
  • AFM收到注册请求,如果AMF不存在UE安全上下文,则发起验证流程
  • AMF向AUSF发起Nausf_UEAuthentications流程,包括SUCI/SUPI或者服务网络名
  • 根据服务网络名,AUSF决定是否AMF有权发送此消息
  • AUSF调用Nudm_UEAuthentication_Get,向UDM发送请求,携带SUPI/SUCI
  • UDM计算5G HE AV,UDM使用Milenage算法推导 MAC,XRES,CK,IK以及AK

 

2. 认证和密钥协议

    这里描述的机制通过用户和网络之间的相互认证,密钥 K 在用户 HE 中的 USIM 和 AuC 之间共享并且仅对 USIM 和 AuC 可用。 此外,USIM 和 HE 分别跟踪计数器 SQNMS 和 SQNHE 以支持网络身份验证。 序列号 SQNHE 是每个用户的单独计数器,序列号 SQNMS 表示 USIM 接受的最高序列号。

Figure 7: Generation of authentication vectors
  •      MAC = f1K(SQN || RAND || AMF) 
  •      XRES = f2K (RAND)
  •      CK = f3K (RAND)
  •      IK = f4K (RAND)
  •      AK = f5K (RAND)     
  •      AUTN = SQN Å AK || AMF || MAC
Figure 9: User authentication function in the USIM
  •     接收到 RAND 和 AUTN, USIM 首先计算匿名密钥 AK = f5K (RAND),以及检索 SQN = SQN = (SQN Å AK) Å AK
  •     USIM 计算 f1K (SQN || RAND || AMF),比较 MAC 和 在 AUTN 的 MAC,如果不相同,UE 将验证失败消息发送回 VLR / SGSN,并说明原因,然后用户放弃该过程。
  •     接下来,USIM 验证接收到的序列号 SQN 在正确范围内。
  •     如果 USIM 认为序列号不在正确的范围内,则会将同步失败(包括适当的参数)发送回VLR / SGSN,并放弃该过程。
ParameterSize(bits)Comment
SQN48Sequence Number,序列号
AK48Anonymity Key,匿名密钥
CK128Cipher Key,加密密钥
IK128Integrity Key,完整性密钥
AMF16Authentication management field,鉴权管理字段
MAC64Message authentication code,消息鉴权码
MAC-A64Network authentication code,网络鉴权码,一般鉴权作为MAC值
MAC-S64Resynchronisation authentication code,重同步鉴权码,重同步鉴权时作为MAC值
RES64Authentication response parameter,鉴权响应
XRES64Expected Response,期望响应,HSS期望UE回复的RES值和HSS自己产生的XRES相同
   
   

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【5G核心网】 5G安全之AKA验证流程 的相关文章

  • linux操作系统:线程,令复杂的项目并行执行

    为什么要有线程 其实 xff0c 对于任何一个进程来讲 xff0c 即使我们没有主动去创建线程 xff0c 进程也是默认会有一个主线程的 线程是负责执行二进制指令的 xff0c 它会根据项目执行计划书 xff08 二进制文件 xff09 一
  • 存储创建及openstack对接——LVM

    说明 本方案是在每一个计算节点 上安装cinder volumes组件来完成对本地存储的管理 若无特殊说明 xff0c 以下步骤仅在计算节点执行 1 前期准备 检查计算节点是否安装 lvm xff0c iscsi 磁盘分区和格式化 裸盘不能
  • clion:输出中文乱码终极解决方案

    临时解决方案 如果在windows时发现clion乱码 xff0c 可以在cmakelist txt中 xff1a c 43 43 在cmakelist txt添加set CMAKE CXX FLAGS 34 CMAKE CXX FLAGS
  • ROS:节点

    节点 ROS xff1a 节点是什么 机器人是各种功能的综合体 xff0c 每一项功能就像机器人的一个工作细胞 xff0c 众多细胞通过一些机制连接到一起 xff0c 成为了一个机器人整体 在ROS中 xff0c 我们给这些 细胞 取了一个
  • VSCode:配置C/C++开发环境

    准备 区分编辑器 编译器 IDE xff1a 作者 xff1a C语言教学 编辑器就是处理文本 xff08 源码 xff09 的程序 xff0c 写代码写的就是文本 xff0c 编辑器可能提供智能提示 代码高亮等辅助功能 xff0c 但不负
  • NXP MIMXRT1052CVL5B + 正点原子 + MCUXpresso IDE 开发环境搭建

    NXP MIMXRT1052CVL5B 43 正点原子 43 MCUXpresso IDE 开发环境搭建 说明资料准备一切就绪 xff0c 搞他安装 IDE 及生成基本工程安装 J Link 及配置开始调试下载点击 运行 按钮 xff0c
  • c语言学习笔记(1) C语言库函数

    1 xff1a ASLL可现实字符 2 xff1a c文件 span class token macro property span class token directive hash span span class token dire
  • 查看ROS的版本

    查看ROS的版本 启动ROS核心 xff1a roscore获取ROS参数 xff1a rosparam get rosdistro
  • ROS 版本选择和安装

    文章目录 声明 xff1a ROS 的版本选择ROS 的安装ROS 的安装方式软件源安装步骤 声明 xff1a 本文中的内容参考了市面上绝大多数畅销的ROS书籍 xff0c 本文只作个人学习记录和学习分享使用 xff0c 不作任何商业用途
  • 数据结构(考研&面试)

    数据结构和算法 xff08 持续更新 xff09 参考清华大学严蔚敏数据结构与算法 适用于考研 amp 求职 数据结构与算法JAVA落地版 Java 数据结构与算法 xff08 代码实现 下载链接 xff09 本教程全部采用C语言实现 1
  • Sphinx入门

    文章目录 Sphinx画流程图和时序图 最近在使用sphinx的时候遇到了一点问题 xff0c 首先是不支持中文检索 xff0c 为此进行了一些配置 xff0c 参考链接 首先安装jieba库 xff0c python3的安装命令是 xff
  • Linux系统信息查看命令大全

    系统 QUOTE uname a 查看内核 操作系统 CPU信息 head n 1 etc issue 查看操作系统版本 cat proc cpuinfo 查看CPU信息 hostname 查看计算机名 lspci tv 列出所有PCI设备
  • linux系统触摸板用不了(解决)

    安装好linux系统可能出现用不了触摸板的情况 xff0c 只可以单击 xff0c 不可以滑动 解决方式一 sudo modprobe psmouse sudo modprobe r psmouse 解决方式二 sudo modprobe
  • 百度移动软件开发面试题(20131018)

    1 new与malloc的区别 xff1f 分析 xff1a 一 new和malloc都是用于申请动态内存 new使用delete释放空间 xff0c malloc使用free释放 new和delete是C 43 43 中的运算符 xff0
  • Ubuntu 中apt update和upgrade 的区别

    转自https blog csdn net csdn duomaomao article details 77802673 简要说明 xff1a apt update xff1a 只检查 xff0c 不更新 xff08 已安装的软件包是否有
  • ubuntu下域名解析出问题的解决办法

    内网服务器配置了固定ip xff0c 未配置dns xff0c 临时需要接入外网时 xff0c 域名解析失败 xff0c 需要临时添加域名解析 操作如下 xff1a sudo vim etc resolv conf 然后底下插入你的好用的d
  • Git clone wiringPi出现Connection reset by peer的解决办法

    Git clone wiringPi出现Connection reset by peer的解决办法 小伙伴们按照正常的方法来安装强大的GPIO库wiringPi一般为如下几步 xff1a git span class hljs keywor
  • Linux内存占用过高?非也

    前言 今天在我的RPi2上测试GPIO程序 xff0c 忽然发现机器超卡 xff0c 重启之后依然如此 于是我top了一下发现了一个问题就是内存爆满 xff01 xff01 可我还啥都没干呢这是咋了 xff1f 于是我呵呵地开始查资料 xf
  • MPC控制笔记(一)

    转自 我的博客 笔记参考1 xff1a Understanding Model Predictive Control Youtube 带自动生成字幕 笔记参考2 xff1a Understanding Model Predictive Co
  • [强化学习笔记专题(二)]Nature DQN

    转自 我的博客 DQN Nature 一 算法流程 xff1a 定义可配置参数 episode 数量 M最大仿真时间 T xff0c g r

随机推荐