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.mzph.cn/pingmian/7691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言:卡方检验

χ2检验(Chi-Square Test)是一种用于检验分类变量之间是否存在相关性的统计方法。χ2检验的原理基于观察到的频数与期望频数之间的偏差来判断分类变量之间是否存在显著的关联。 χ2检验的原理可以概括为以下几个步骤: 建立假…

Web实操(6),基础知识学习(24~)

1.[ZJCTF 2019]NiZhuanSiWei1 (1)进入环境后看到一篇php代码,开始我简单的以为是一题常规的php伪协议,多次试错后发现它并没有那么简单,它包含了基础的文件包含,伪协议还有反序列化 (2&#x…

sudo netstat -tlnp返回结果解析及协议

sudo netstat -tlnp 是一个在Unix和类Unix系统中(如Linux)常用的命令,用于显示网络连接、路由表、接口统计等网络相关信息。该命令的各个选项含义如下: sudo: 这是一个命令,用于允许授权用户执行通常作为超级用户&a…

streamlit通过子目录访问

运行命令: streamlit hello 系统默认使用8501端口启动服务: 如果想通过子目录访问服务,可以这么启动服务 streamlit hello --server.baseUrlPath "app" 也可以通过以下命令换端口 streamlit hello --server.port 9999 参考&…

Python - pyplot 画一个漂亮的饼图 Pie charts

目录 一.引言 二.颜色选择 三.绘制饼图 四.总结 一.引言 因工作需求,需要绘制一些数据的饼图,使用默认的颜色绘制不够美观,下面我们找一些好看的颜色美化一些饼图。 二.颜色选择 我们根据 plt 给出的一些好看颜色对应的编码即可为每一个…

java设计模式 桥接

桥接模式(Bridge Pattern)是软件工程中的一种设计模式,它将抽象部分与它的实现部分分离,使它们可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦…

HackMyVM-Animetronic

目录 信息收集 arp nmap nikto whatweb WEB web信息收集 feroxbuster steghide exiftool hydra ssh连接 提权 系统信息收集 socat提权 信息收集 arp ┌──(root㉿0x00)-[~/HackMyVM] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 08:00:27:9d:6d:7…

【无标题】程序设计和c语言-谭浩强配套(适合专升本)

一晃大半年没更新了,一直在备考,想着这几天把前段时间学的c语言给大家分享一下,在此做了一个专栏,有需要的小伙伴可私信获取。 说明:本专栏所有内容皆适合专升本复习资料,本人手上也有日常刷题整理的错题以…

KAN: Kolmogorov–Arnold Networks

KAN: Kolmogorov–Arnold Networks 论文链接:https://arxiv.org/abs/2404.19756 代码链接:https://github.com/KindXiaoming/pyKAN 项目链接:https://kindxiaoming.github.io/pyKAN/intro.html Abstract 受Kolmogorov-Arnold表示定理的启…

数据结构——链表(精简易懂版)

文章目录 链表概述链表的实现链表的节点(单个积木)链表的构建直接构建尾插法构建头插法构建 链表的插入 总结 链表概述 1,链表(Linked List)是一种常见的数据结构,用于存储一系列元素。它由一系列节点&…

Bookends for Mac v15.0.2 文献书籍下载管理

Bookends Mac版可以轻松地将其导入参考 ,并直接搜索和进口从数以百计的线上资料来源。Bookends Mac版使用内置在浏览器中下载参考与PDF格式的文件,或和/或网页的点击。 Bookends for Mac v15.0.2注册激活版下载 本文由 mdnice 多平台发布

深度学习模型训练套路与验证套路以及如何使用GPU进行模型训练

完整的模型训练套路:代码模板 数据集以经典的 CIFAR10 为例。 这个例子是很简单的,可能不太实用,但重点是通过这个例子掌握一种模型训练的写法套路,因此很有必要学习。 import torch.optim import torchvision from torch impo…

java-串口通讯-连接硬件

串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很…

经典面试题之滑动窗口专题

class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {// 长度最小的子数组 // 大于等于 targetint min_len INT32_MAX;// 总和int sum 0;int start 0; // 起点for(int i 0; i< nums.size(); i) {sum nums[i];while(sum > targe…

leetcode 547.省份数量

思路&#xff1a;dfs 或者这道题用bfs也是可以的。 这道题有点迷惑性&#xff0c;这里的数组给的是无向图的数组&#xff0c;而并不是地图&#xff0c;这里需要着重注意一下。 而后&#xff0c;这里的状态数组st没必要是二维的&#xff0c;我们并不会去遍历所给的数组&#…

拥抱新质生产力,助力新型工业化!CMM电子展暨IARS机器人展5月东莞盛大起航

2024年5月15-17日&#xff0c;东浩兰生会展集团旗下CMM电子展&#xff06;IARS机器人展将在广东现代国际展览中心&#xff08;东莞厚街&#xff09;举办。展会面积达50000平方米&#xff0c;展示品牌700余个&#xff0c;同期论坛峰会30余场&#xff0c;预计专业观众超50000人次…

代码随想录训练营Day25:贪心算法:加油站、分发糖果和K次取反的最大数组和

1.1005K次取反后最大化的数组和 贪心策略&#xff1a;先按照绝对值的大小进行排序&#xff0c;绝对值大的排在前面&#xff0c;然后按照顺序&#xff0c;如果存在负值就翻转直到用完k次&#xff0c;或者遍历完之后&#xff0c;将最小的那个进行翻转即可。 class Solution { p…

a表存在b表不存在的数据

第二种&#xff1a;在卡法中最常见的left join 方法&#xff0c;实现数据的过滤。 SELECT * FROM A LEFT JOIN B ON A.IdB.Id WHERE 11 AND B.Id IS NULL;

error: pathspec ‘XXX‘ did not match any file(s) known to git

使用vscode&#xff0c;在本地开发切换分支时&#xff0c;报以下错误&#xff1a; error: pathspec XXX did not match any file(s) known to git 该问题是由于没有对应分支的原因。 首先使用一下命令&#xff0c;查看本地及远程的所有分支。 git branch -a 若没有对应的分…

【第12章】spring-mvc自定义类型转换器

文章目录 前言一、请求对象二、自定义转换器三、注册转换器四、控制器五、执行顺序六、执行结果总结 前言 【第6章】spring类型转换器 在spring系列已经介绍了类型转换器、接下来我们通过案例了解下转换器在SpringMvc中的应用。 场景模拟&#xff1a;我们接收到客户端请求,解析…