5G安全-SUCI加密及公钥私钥_lezhiyong的博客-程序员秘密

技术标签: 5G安全  通信  SUCI加密  公钥与私钥  

一、 概要

5G Release15增加了公钥IMSI加密是最大的亮点。

手机首次入网或手机移动到其它MME覆盖范围后,MME中无法从网络中查询到手机的GUTI/TMSI,需要手机上报自己的真实身份。

伪基站通过高信号强度不停向手机发送身份验证请求消息——“Identity Request”,手机就会上报真实身份。这种获取工具称为IMSI Catcher。IMSI Catcher可以获取IMSI,TMSI,IMEI。

  5G引入公钥机制实现用户IMSI传输中的身份隐藏和认证。公钥公开,用来加密。私钥保留,用来解密。将公钥存放在手机端,私钥存放在运营商手里。只有运营商可以解密手机的真正的身份信息,攻击者只能拿到加密后的信息,没有私钥而无法解出IMSI。

  手机的真实身份在5G里称为SUPI(SUbscription Permanent Identifier,签约永久标识符)(类似IMSI),通过公钥加密后的密文称为SUCI(SUbscription Concealed Identifier)。SUCI传送给基站后,基站直接上传至核心网。

 二、终端的SUCI加密

  终端的Eph.key pair generation,产生终端的公钥和私钥对。这两对秘钥均采用椭圆曲线加密算法ECC生成。私钥可以衍生出唯一的公钥,但是从公钥不能反推出私钥。终端存储运营商网络的公钥。

  终端生成的私钥与网络提供的公钥结合,生成一对共享加密秘钥(用来加密的原始秘钥),派生出加密的主密钥master key。

 取主密钥的高有效位,对SUPI进行对称加密,得到SUCI。

 取主密钥的低有效位,对终端参数等信息,进行完整性保护。

 终端发出的消息包括:终端生成的公钥、SUCI和终端参数等。

三、网络侧对终端身份进行SUCI验证

网络侧采用私钥与终端所发送的公钥,组合成共享秘钥;

由共享秘钥派生出主密钥master key。

网络侧先通过主密钥master key的低有效位校验消息的完整性与否。如果消息经过篡改,则该步骤的验证无法通过。

  只有验证通过,才会进一步将信令转发至UDM中执行SIDF(Subscription identifier de-concealing function,签约标识符去隐藏功能)的过程,解密得到SUPI。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lezhiyong/article/details/118490508

智能推荐

SpringBoot异步、自定义参数、多环境区分、修改端口号_知 行 合 一的博客-程序员秘密

一.SpringBoot实现异步调用。代码如下:service:controller:运行控制台打印结果:如图,1234顺序执行。这样效率比较低,如果使用异步可以提高效率。只要在启动类上加上@EnableAsync,方法上加上@Async注解即可,运行结果如下:注:根据多线程原理,该项目会先跑主线程的代码,然后去跑子线程代码,所以运行结果为1423。...

监听鼠标和键盘_deargua的博客-程序员秘密

如果想监听鼠标和键盘,当然要用到win32的APIpython封装的库为pywin32用这个库可以进行类似点击,敲击键盘的监听,然后记录结果进行分析。当然也可以用来监听其他人的密码哦其中pyHook是专门用来监听的一个库http://sourceforge.net/apps/mediawiki/pyhook/index.php?title=Main_Page

日拱一卒(四十四)_西西弗斯 日拱一卒_西西弗斯丶的博客-程序员秘密

职责链模式(Chain of Responsibility):使多个对象都有机会处理要求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。  白话:待续

解决 iOS 11 webview 顶部空白条的问题_ios webview富文本顶部有空白_sysprogram的博客-程序员秘密

在 iOS 11 使用 webview 发现顶部会有一个空白条,怎么也去不掉,通过设置 contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever 就可以解决了,具体的代码如下://// ViewController.m// webView//// Created by exchen on 1...

数据结构 算法与应用 c++语言描述 练习答案,《数据结构、算法与应用(C++语言描述)》的习题集参考答案doc.doc..._weixin_39687189的博客-程序员秘密

第1章 概 论1.数据、数据元素、数据结构、数据类型的含义分别是什么?数据:对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并由计算机程序处理的符号的总称。数据元素:数据的基本单位,在计算机程序中通常作为一个整体考虑。数据结构:数据元素之间的关系+运算,是以数据为成员的结构,是带结构的数据元素的集合,数据元素之间存在着一种或多种特定的关系。数据类型:数据类型是用来区分不同的数据;由于...

【Python 数据科学】apply函数基础_Mercy92的博客-程序员秘密

import pandas as pd position=pd.read_csv('DataAnalyst.csv',encoding='gbk')company=pd.read_csv('company_sql.csv',encoding='gbk')position.head() city companyFullName ...

随便推点

Mac FFmpeg编译和解决nasm/yasm not found or too old错误_错误:没有任何匹配: yasm_厚德.的博客-程序员秘密

FFmpeg编译下载代码:git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg然后输入命令进行编译:找到下载的目录下,然后用命令进入这个文件夹下cd ffmpeg,然后输入./configure。竟然没有编译过出现错误是nasm/yasm not found or too old. Use --disable-x86asm for a c...

查看固态硬盘写入量 CrystalDiskInfo 查看机械盘信息_机械硬盘写入总量查看_nongcunqq的博客-程序员秘密

参考https://www.upantool.com/jiaocheng/ssd/2016/9250.html下载地址http://www.pc6.com/softview/SoftView_16918.html

陶瓷工厂的进销存管理系统的设计与实现_云炬学长的博客-程序员秘密

毕业设计(论文)论文题目XXX陶瓷工厂的进销存管理系统的设计与实现Thesis TopicThe Design and Implementation of the XXX Ceramic Factory Inventory Management System毕业设计(论文)任务书第1页毕业设计(论文)题目:XXX陶瓷工厂的进销存管理系统的设计与实现毕业设计(论文)要求及原始数据(资料):1.综述国内外进销存管理技术研究现状;2.深入了解基于java的XXX陶瓷工厂进销存管理系统的相关技术;3.熟练掌握XXX

Java集合之HashMap和TreeMap_程序_熊的博客-程序员秘密

HashMap:底层是哈希算法,针对键* LinkedHashMap:底层是链表,针对键* TreeMap:底层是链表,针对键* 实际开发HashMap多

Java ASCLL编码表_java编码表查询_是点点呐的博客-程序员秘密

ASCLL码表记住三个关键ASCLL码 0–>48 A–>65 a–>97/*数字和字符对照关系表(编码表):ASCLL码表:American Standard Code for Information Interchange, 美国信息交换标准代码Unicode码表:万国码。也就是数字和符号的对照关系,开头0-127部分和ASCLL完全一样,但是从128开始包含更多字符*/public class Demo03DateTypeChar{ public stati

springboot依赖注入的三种方式(非autowired)_springboot不用autowired_tanglihai的博客-程序员秘密

Springboot会自动加载resources文件下面的application.yml或者application.properties配置文件,因为yml格式可以替代xml格式,功能properties更强大,所以一般都使用yml格式进行书写。1.对于yml中加载了的bean,可以使用 @value(${对象}) 进行注入。2.也可以在需要加入到spring容器中的类上加@Compone...