一、 概要
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。
一.SpringBoot实现异步调用。代码如下:service:controller:运行控制台打印结果:如图,1234顺序执行。这样效率比较低,如果使用异步可以提高效率。只要在启动类上加上@EnableAsync,方法上加上@Async注解即可,运行结果如下:注:根据多线程原理,该项目会先跑主线程的代码,然后去跑子线程代码,所以运行结果为1423。...
如果想监听鼠标和键盘,当然要用到win32的APIpython封装的库为pywin32用这个库可以进行类似点击,敲击键盘的监听,然后记录结果进行分析。当然也可以用来监听其他人的密码哦其中pyHook是专门用来监听的一个库http://sourceforge.net/apps/mediawiki/pyhook/index.php?title=Main_Page
职责链模式(Chain of Responsibility):使多个对象都有机会处理要求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 白话:待续
在 iOS 11 使用 webview 发现顶部会有一个空白条,怎么也去不掉,通过设置 contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever 就可以解决了,具体的代码如下://// ViewController.m// webView//// Created by exchen on 1...
第1章 概 论1.数据、数据元素、数据结构、数据类型的含义分别是什么?数据:对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并由计算机程序处理的符号的总称。数据元素:数据的基本单位,在计算机程序中通常作为一个整体考虑。数据结构:数据元素之间的关系+运算,是以数据为成员的结构,是带结构的数据元素的集合,数据元素之间存在着一种或多种特定的关系。数据类型:数据类型是用来区分不同的数据;由于...
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 ...
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...
参考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
HashMap:底层是哈希算法,针对键* LinkedHashMap:底层是链表,针对键* TreeMap:底层是链表,针对键* 实际开发HashMap多
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会自动加载resources文件下面的application.yml或者application.properties配置文件,因为yml格式可以替代xml格式,功能properties更强大,所以一般都使用yml格式进行书写。1.对于yml中加载了的bean,可以使用 @value(${对象}) 进行注入。2.也可以在需要加入到spring容器中的类上加@Compone...