SGP.22-V.3.1-安全1

有任何关于GSMA\IOT\eSIM\RSP\业务应用场景相关的问题,欢迎+W:  xiangcunge59  一起讨论, 共同进步 (加的时候请注明:  来自CSDN-iot).

2.6.4.4 Command TLV MACing and Encryption
 

在提供的文件 "RSP Technical Specification Version 3.1 Final" 中,第 2.6.4.4 节 "Command TLV MACing and Encryption" 描述了如何通过 BSP(BPP Security Protocol)对命令 TLV(Tag-Length-Value)进行 MAC(Message Authentication Code)计算和加密。以下是该部分的概要:

### 2.6.4.4 Command TLV MACing and Encryption (命令 TLV MAC计算和加密)

**数据加密和MAC计算的步骤**:

1. **数据填充(Padding)**:根据使用的加密算法和模式,对数据字段进行填充。例如,如果使用 AES-CBC-128 或 SM4-CBC,需要在数据块的右侧添加一个值为 '80' 的字节,然后添加 0 到 15 字节的 '00',使得填充后的数据块长度为 16 字节的倍数。

2. **加密(Encryption)**:对填充后的数据进行加密。数据块将根据所使用的算法和模式进行加密。数据块将从 1 开始编号,并使用会话加密密钥(S-ENC)加密,以产生命令加密的 ICV(Integrity Check Value)。

3. **MAC链值(MAC Chaining Value)**:输入数据用于 C-MAC 计算,包括 MAC 链值、标签、长度和加密后的数据。

4. **MAC值计算(MAC Value Computation)**:使用定义的 MAC 算法计算完整的 MAC 值。输出数据通过连接标签、最终长度、加密后的数据和 C-MAC 值来计算。

如果使用的算法是 AES-CMAC-128 或 SM4-CMAC,C-MAC 值是步骤 4 结果的 8 个最高有效字节。

**关键点**:

- BSP 定义了两种保护命令 TLV 的方式:MAC 和加密,以及仅 MAC。
- 命令 TLV 不产生响应 TLVs,这意味着它们是单向的命令,不期待有返回值。
- 通过使用 MAC 和加密,可以确保数据的完整性和保密性。
- MAC 计算确保了数据在传输过程中未被篡改,而加密则提供了数据的安全性。

这部分内容是 RSP 架构中保护数据传输的关键环节,确保了在远程 SIM 配置过程中数据的安全性和完整性。通过这些机制,可以防止未授权的篡改和保证数据的机密性。

SGP.02-v4.2  

4.1.3.3 Download and Installation of a Profile

P238 - Description of the SCP03t security protocol
 

eUICC接收到 Replace session key command 命令时的行为:
密钥长度验证:eUICC将验证新密钥与旧密钥的长度是否相同。如果长度不同,eUICC将返回错误代码'01',并中止加载配置文件。

替换会话密钥:如果新密钥的长度验证通过,eUICC将用新密钥集替换当前的会话密钥。

使用新密钥集:一旦命令成功执行,eUICC将使用这组新密钥对后续的SCP03t数据块进行解密和MAC(消息认证码)验证,以及对响应进行加密和MAC生成。新密钥集的类型与它们替换的会话密钥类型相同。

命令成功执行后的响应
如果命令消息被接受,eUICC将返回一个带有标记'87'和长度为零的响应TLV(标记-长度-值)。这个TLV不返回R-MAC(响应消息认证码)。

命令目的
“Replace session key”命令用于在下载受保护的配置文件时,用一组新的会话密钥替换现有的SCP03t会话密钥(S-ENC、S-MAC和S-RMAC)。通常,新的会话密钥是PPK-ENC、PPK-MAC和PPK-RMAC,它们用于保护命令和响应的TLVs(标记-长度-值)。

密钥替换规则
全部替换:命令要求同时替换所有会话密钥(S-ENC、S-MAC和S-RMAC),不允许只替换部分会话密钥。
响应加密和MAC:命令的响应必须使用PPK-ENC加密,并使用PPK-RMAC进行MAC操作。
PPK-RMAC的特殊要求
每次下载尝试不同:对于同一配置文件的每次下载尝试,PPK-RMAC都应该是不同的,以增强安全性。
数据封装
BER-TLV:命令中的数据应该封装在带有标记'87'的基本编码规则(BER)TLV中。
总结
这个命令是确保在配置文件下载过程中密钥安全性的关键步骤。通过替换会话密钥,可以为传输的数据提供额外的安全层,特别是当使用随机密钥模式时。
这种机制有助于防止重放攻击,因为每次尝试下载配置文件时都会使用不同的响应消息认证码(R-MAC)。

SGP22.V3.1 - 5.5.1 Function: InitialiseSecureChannel

### 功能:InitialiseSecureChannel(初始化安全通道)
- **相关流程**:配置文件的下载和安装。
- **功能提供实体**:ISD-R(集成安全域-远程)。

### 功能描述
- SM-DP+(订阅管理数据准备服务器)使用此功能初始化与目标eUICC的安全通道。
- 此功能携带远程操作类型标识符,以及与eUICC进行具有完美前向保密性(PFS)的密钥协商所需的材料,从而允许SM-DP+和eUICC之间安全的端到端通信。

### 所需材料
- **事务ID**(Transaction ID)
- **密钥生成描述**(Description of the keys to generate)
- **SM-DP+生成的一次性公钥**(One-time public key for key agreement generated by SM-DP+,otPK.DP.KA)
- **材料签名**(Signature upon material),包括之前生成的otPK.EUICC.KA(也作为eUICC的挑战),以确保其完整性和真实性。

### 安全级别
- 安全级别隐式地从要执行的远程操作类型中推导出来。

### eUICC接收命令时的行为
1. **验证SM-DP+签名**:使用PK.DPpb.SIG验证签名,如果签名无效,将拒绝命令,并在配置文件安装结果中返回invalidSignature错误,中止配置文件安装,并丢弃与其配置文件安装相关的所有上下文数据(如SM-DP+证书)。
2. **验证远程操作类型**:确保请求的远程操作类型是已定义的类型之一,否则在配置文件安装结果中返回unsupportedRemoteOperationType错误。
3. **验证事务ID**:确保接收到的事务ID与正在进行的RSP会话的事务ID匹配,否则在配置文件安装结果中返回invalidTransactionId错误。
4. **验证控制参考模板**:确保描述密钥生成的控制参考模板与此处下(命令消息部分)定义的值匹配,否则在配置文件安装结果中返回unsupportedCrtValues错误。
5. **生成会话密钥**:使用接收到的otPK.DP.KA和之前生成的otSK.EUICC.KA,根据2.6.5节确定的密钥协商算法生成会话密钥(S-ENC和S-MAC)和初始MAC链值。

### SCP标识符和参数
- 此规范不使用标记'90'(SCP标识符和参数),只使用一个根据GlobalPlatform卡规范修正案F [13]中定义的SCP11a派生的SCP类型。

### 密钥使用限定符
- 此规范不使用标记'95'(Key Usage Qualifier),由'远程操作类型标识符'(见下文)确定。

### 密钥类型和长度验证
- 当SM-DP+选择AES-128时,keyType应包含值'88',keyLen应包含'10'。
- 当SM-DP+选择SM4时,keyType应包含值'89',keyLen应包含'10'。

### SM-DP+签名计算
- SM-DP+签名(smdpSign)如2.6.9节所述,使用SM-DP+私钥SK.DPpb.SIG计算,跨越以下连接的数据对象:
  - remoteOpId
  - transactionId
  - controlRefTemplate
  - smdpOtpk
  - euiccOtpk,如在“ES9+.GetBoundProfilePackage”功能中接收到的prepareDownloadResponse数据对象中提供的。

### 签名包含otPK.EUICC.KA
- 由于签名包含otPK.EUICC.KA,eUICC可以认证SM-DP+。

### 远程操作类型为installBoundProfilePackage时
- 隐式的密钥使用限定符应设置为MAC和加密。

### 总结
这段文本详细说明了在eUICC中初始化安全通道的过程,包括密钥协商、签名验证和事务管理。这个过程对于确保配置文件的安全下载和安装至关重要,因为它提供了一个安全的通信通道,并且可以防止未授权的访问和篡改。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/600772.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

突然断电,瀚高数据库启动失败

服务器临时断电后,数据库启动不起来 ps -ef|grep postgres 进到数据库的data目录下看下ls 看下 查看临时文件: ls -la /tmp 把这两个5866的文件改个名字张老师 加个bak就行 改完了pg_ctl start起一下

618挑选家用洗地机,需要注意哪些事项?有哪些家用洗地机值得买?

近年来,智能清洁家电越来越受到消费者的欢迎,洗地机作为清洁家电的新宠,凭借其集扫地、拖地、杀菌清洗于一体的强大功能,成为市场上的热销产品。那么,这类洗地机真的好用吗?怎么挑选到好用的家用的洗地机呢…

风电厂数字孪生3D数据可视化交互展示构筑智慧化电厂管理体系

随着智慧电厂成为未来电力企业发展的必然趋势,深圳华锐视点紧跟时代步伐,引领技术革新,推出了能源3D可视化智慧管理系统。该系统以企业现有的数字化、信息化建设为基础,融合云平台、大数据、物联网、移动互联、机器人、VR虚拟现实…

BUUCTF [极客大挑战 2019]EasySQL 1

BUUCTF:https://buuoj.cn/challenges 题目描述: [极客大挑战 2019]EasySQL 1 密文: 解题思路: 1、根据题目提示,并且网站也存在输入框,尝试进行SQL注入。 首先,判断提交方式,随机输入数据…

EtherCAT开发_4_分布时钟知识点摘抄笔记1

分布时钟 (DC,Distributed Cl ock) 可以使所有EtherCAT设备使用相同的系统时间,从而控制各设备任务的同步执行。从站设备可以根据同步的系统时间产生同步信号,用于中断控制或触发数字量输入输出。支持分布式时钟的从站称为 DC 从站。分布时钟…

常见的容器技术有哪些

容器技术是一种轻量级的软件封装方式,它将软件代码及其依赖项打包在一起,这样应用可以在任何支持容器的系统上无缝运行。它允许应用程序及其依赖项在一个隔离的环境中运行,这个环境被称为容器。容器技术有助于提高应用程序的可移植性、一致性…

算法提高之能量项链

算法提高之能量项链 核心思想&#xff1a;区间dp 通过观察发现可以将n个珠子最后的n1个数看作石子 合并石子 在l~r的范围内 找k作隔断 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 110,M N<<…

景源畅信:个人抖音小店怎么开通?

在数字时代的浪潮中&#xff0c;个体创业已不再是遥不可及的梦想。特别是随着短视频平台的崛起&#xff0c;抖音不仅成为人们娱乐消遣的新宠&#xff0c;更是众多创业者眼中的“新大陆”。你是否也曾憧憬过在抖音上开一家属于自己的小店?那么&#xff0c;如何开通个人抖音小店…

[微信小程序] 入门笔记2-自定义一个显示组件

[微信小程序] 入门笔记2-自定义一个显示组件 0. 准备工程 新建一个工程,删除清空app的内容和其余文件夹.然后自己新建pages和components创建1个空组件和1个空页面. 设定 view 组件的默认样式,使其自动居中靠上,符合习惯.在app.wxss内定义,作用做个工程. /**app.wxss**/ /* 所…

【强训笔记】day12

NO.1 思路&#xff1a;哈希表&#xff0c;建立bool数组&#xff0c;将要删除的字符串存入哈希表&#xff0c;并标为true&#xff0c;再遍历要做处理的字符串&#xff0c;如果在哈希表中为false&#xff0c;就输出。 代码实现&#xff1a; #include <iostream> #includ…

大数据技术原理与技术简答

1、HDFS中名称节点的启动过程 名称节点在启动时&#xff0c;会将FsImage 的内容加载到内存当中&#xff0c;此时fsimage是上上次关机时的状态。然后执行 EditLog 文件中的各项操作&#xff0c;使内存中的元数据保持最新。接着创建一个新的FsImage 文件和一个空的 Editlog 文件…

Python深度学习基于Tensorflow(4)Tensorflow 数据处理和数据可视化

文章目录 构建Tensorflow.data数据集TFRecord数据底层生成TFRecord文件数据读取TFRecord文件数据图像增强 数据可视化 构建Tensorflow.data数据集 tf.data.Dataset表示一串元素&#xff08;element&#xff09;&#xff0c;其中每个元素包含一个或多个Tensor对象。例如&#xf…

Mac虚拟机软件哪个好用 mac虚拟机parallels desktop有什么用 Mac装虚拟机的利与弊 mac装虚拟机对电脑有损害吗

随着多系统使用需求的升温&#xff0c;虚拟机的使用也变得越来越普遍。虚拟机可以用于创建各种不同的系统&#xff0c;并按照要求设定所需的系统环境。另外&#xff0c;虚拟机在Mac电脑的跨系统使用以及测试软件系统兼容性等领域应用也越来越广泛。 一、Mac系统和虚拟机的区别 …

windows 双网卡同时接入内外网

在公司使用wifi接入使用桌面云&#xff0c;但是公司wifi不能上外网&#xff0c;查资料不方便&#xff0c;通过手机同时接入外网。 同一台电脑设置同时连接内外网&#xff08;wifi或共享的网络&#xff09;_win7电脑同时使用手机和usb网卡使用wifi-CSDN博客 route print查看当前…

2024年CSC公派联合培养博士项目申报即将开始~

一、选派计划 联合培养博士研究生面向全国各博士学位授予单位选拔。 联合培养博士研究生的留学期限、资助期限为6-24个月。留学期限应根据拟留学单位学制、外方录取通知&#xff08;或正式邀请信&#xff09;中列明的留学时间确定。个人申报的资助期限应不超过留学期限&#…

静态分配IP,解决本地连接不上Linux虚拟机的问题

在Window环境下&#xff0c;使用远程终端工具连接不了VMware搭建的Linux虚拟机&#xff08;CentOS 7&#xff09;&#xff0c;并且在命令行ping不通该Linux虚拟机的IP地址。下面通过配置网关解决本地与Linux虚拟机连接问题&#xff1a; 1 查看虚拟机网关地址 在VMware虚拟机上…

代码随想录第52天|300.最长递增子序列 718. 最长重复子数组

300.最长递增子序列 300. 最长递增子序列 - 力扣&#xff08;LeetCode&#xff09; 代码随想录 (programmercarl.com) 动态规划之子序列问题&#xff0c;元素不连续&#xff01;| LeetCode&#xff1a;300.最长递增子序列_哔哩哔哩_bilibili 给你一个整数数组 nums &#xff0…

SQL查询语句(一)简单查询和简单条件查询

MySQL的所有语句中&#xff0c;我们日常用的最多的其实就是查询语句。因此这篇文章主要介绍查询语句中的一些基础语法。 目录 简单查询 简单条件查询 简单查询 最简单的查询语句的语法如下所示&#xff1a; SELECT * FROM student; 它的语法解析如下&#xff1a; SELECT关…

【busybox记录】【shell指令】sort

目录 内容来源&#xff1a; 【GUN】【sort】指令介绍 【busybox】【sort】指令介绍 【linux】【sort】指令介绍 使用示例&#xff1a; 排序 - 默认排序 排序 - 检查所给文件是否已经排序 排序 - 输出已经排序过的文件&#xff0c;不会重新排序 排序 - 忽略每行前面的空…

鸿蒙OpenHarmony【基于Hi3516DV300开发板(时钟应用开发)】

概述 本文将介绍如何快速搭建基于OpenHarmony标准系统&#xff08;Hi3516DV300开发板&#xff09;的应用开发环境&#xff0c;并基于一个时钟APP示例逐步展示应用的创建、开发、调试和安装等流程。示例代码可以通过本链接获取。 时钟App是一款显示实时时间的应用&#xff0c;…
最新文章