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中初始化安全通道的过程,包括密钥协商、签名验证和事务管理。这个过程对于确保配置文件的安全下载和安装至关重要,因为它提供了一个安全的通信通道,并且可以防止未授权的访问和篡改。
相关文章:
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" 中&a…...
STM32单片机ADC功能详解
文章目录 1. ADC概述 2. ADC结构图 3. 引脚定义 4. 转换模式 5. 数据对齐 6. 转换时间 7. 硬件电路 8. STM32使用ADC单/多通道检测数据 1. ADC概述 功能:ADC是一个将模拟信号(如电压)转换为数字信号的设备。在微控制器中,…...
47.Redis学习笔记
小林coding -> 图解redis的学习笔记 文章目录 Rediswindwos安装docker安装redis启动redis使用RDM访问虚拟机中的redispython连接redis缓存穿透、击穿、雪崩基本数据类型高级数据类型高并发指标布隆过滤器分布式锁Redis 的有序集合底层为什么要用跳表,而不用平衡…...
数控六面钻适用场景-不止家具制造
在快节奏的现代生活中,家具作为我们生活的重要组成部分,其美观度和实用性日益受到人们的关注。而在这背后,一个不可或缺的“工匠”正默默地发挥着它的作用——那就是数控六面钻。 数控六面钻,顾名思义,是一种高度自动…...
【力扣】86. 分隔链表
86. 分隔链表 题目描述 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 示例 1: 输入:head […...
海云安受邀参加诸子云 4.27南京「金融互联网」私董会
4月27日,“安在新媒体网安用户行业活动”第四期私董会在南京顺利举办。活动以“金融&互联网”为主题,邀请十余位业内资深的甲方用户以及典型厂商代表。摒弃传统的议题分享,采取“随时问答,自由讨论”的形式,提问题…...
docker操作使用注意事项
文章目录 一、运行docker二、拉取的镜像存放位置1、查询所有拉取的镜像2、查询所有安装的镜像3、查询docker应用的所有信息 一、运行docker 该命令执行后是在窗口下运行的,关闭或退出后docker应用会停止运行 -p:设置绑定端口映射,10022对应…...
Leetcode—163. 缺失的区间【简单】Plus
2024每日刷题(126) Leetcode—163. 缺失的区间 实现代码 class Solution { public:vector<vector<int>> findMissingRanges(vector<int>& nums, int lower, int upper) {int n nums.size();vector<vector<int>> an…...
Ansible自动化运维工具 - playbook 剧本编写
一. inventory 主机清单 Inventory 支持对主机进行分组,每个组内可以定义多个主机,每个主机都可以定义在任何一个或多个主机组内。 1.1 inventory 中的变量含义 Inventory 变量名 含义ansible_hostansible连接节点时的IP地址ansible_port连接对方…...
Web前端一套全部清晰 ⑥ day4 CSS.2 复合选择器、CSS特性、背景属性、标签的显示模式
别人的议论,那是别人的,你的人生,才是你的 —— 24.5.7 一、复合选择器 定义:由两个或多个基础选择器,通过不同的方式组合而成 作用:更准确、更高效的选择目标元素(标签) 1.后代选择…...
Linux 认识与学习Bash——3
在Linux bash中,数据流重定向是指将命令的输出从默认的标准输出(通常是终端)重定向到其他位置,如文件或另一个命令的输入。这是通过使用特定的符号来实现的。例如,>用于将输出重定向到文件,而<用于将…...
匠心精神与创新力量:构筑网络安全的新防线
一、匠心精神在网络安全中的重要性 匠心精神代表着对工作的专注和对质量的极致追求。在网络安全领域,这意味着对每一个安全漏洞的深入挖掘,对每一项安全技术的精心打磨。亿林网络李璐昆的提名,正是对其在网络安全领域匠心精神的认可。 二、…...
接口信息解析
目录 一、通讯流程 二、如何获取接口信息--抓包 1、抓包步骤: 2、抓包工具 接口文档:又称为API文档,是由后端开发编写,用来描述接口信息的文档 一、通讯流程 功能(比如:登录)请求(请求路径、请求方式、…...
scikit-learn实现单因子线性回归模型
1.是什么: 针对机器学习提供了数据预处理,分类,回归等常见算法的框架 2.基于scikit-learn求解线性回归的问题: 2.1.求解a,b对新数据进行预测: 2.2评估模型表现(y和y’的方差MSE)…...
【笔记】Anaconda命令提示符(Anaconda Prompt)操作
通过anaconda配置python环境有时需要conda安装一些包或者文件,这里作为一个笔记记录如何打开Anaconda命令提示符(Anaconda Prompt),并用conda操作 1.打开Anaconda命令提示符(Anaconda Prompt) 可直接在搜…...
Unity射击游戏开发教程:(12)使用后处理
后处理 后期处理是向您的游戏场景添加一个或多个滤镜,确实可以为您的游戏提供精美的外观。在本文中,我们将讨论如何在 Unity 中设置后处理系统,从那里您可以探索和试验 Unity 提供的所有过滤器。 首先,我们需要从包管理器添加后处理器堆栈。包管理器是 Unity 产品的集合,…...
python:机器学习特征优选
作者:CSDN _养乐多_ 在Python中进行机器学习特征选择的方法有很多种。以下是一些常用的方法: 过滤法(Filter Methods):通过统计方法或者相关性分析来评估每个特征的重要性,然后选择最相关的特征。常用的…...
花一个月时间为 vue3 重制了 vue-styled-components
花一个月时间为 vue3 重制了 vue-styled-components 前言 styled-components 在 React 是一个超级热门的 css in js 工具库。其实 styled-components 也有 Vue 版本(vue-styled-components),可惜的是只支持 Vue2,并且该项目已有…...
API接口调用|京东API接口|淘宝API接口
什么是电商API接口: 电商API接口是电商服务平台对外提供的一种接口服务,允许第三方开发者通过编程方式与电商系统进行数据交互和功能调用。 这些接口提供了一种标准化的方法来获取、更新或处理电商平台上的商品信息、订单状态、用户数据、支付信息、物流…...
pgsql和mysql比较
pgsql相对于mysql的优势主要体现在以下几个方面: 稳定性和可靠性:PostgreSQL的稳定性极强,即使在崩溃、断电等灾难场景下也能表现出很好的抗打击能力。相比之下,很多MySQL用户都遇到过Server级的数据库丢失的情况。此外ÿ…...
LSPosed-Irena深度解析:Android运行时Hook框架的终极指南
LSPosed-Irena深度解析:Android运行时Hook框架的终极指南 【免费下载链接】LSPosed-Irena Useless LSPosed Framework Fork 项目地址: https://gitcode.com/gh_mirrors/ls/LSPosed-Irena 你是否曾想过,在不修改APK源代码的情况下,深度…...
告别COLMAP预处理:3D高斯溅射的零配置新体验
告别COLMAP预处理:3D高斯溅射的零配置新体验 【免费下载链接】CF-3DGS 项目地址: https://gitcode.com/gh_mirrors/cf/CF-3DGS 想象一下,你刚刚拍摄了一组精美的场景照片,想要快速生成3D模型,却发现需要先运行复杂的COLMA…...
如何利用系统提示词革新开源项目的AI功能实现
如何利用系统提示词革新开源项目的AI功能实现 【免费下载链接】system_prompts_leaks 项目地址: https://gitcode.com/GitHub_Trending/sy/system_prompts_leaks 在人工智能技术快速发展的今天,系统提示词已成为解锁AI潜能的关键钥匙。对于开源项目而言&…...
【图灵完备(Turing Complete)】五、从逻辑门到LEG:指令集与条件跳转的构建
1. 从逻辑门到处理器:LEG架构的诞生之路 记得我第一次用面包板搭建简单逻辑电路时,连个LED灯闪烁都要折腾半天。而现在我们要做的,是把这些基础逻辑门像乐高积木一样拼接成真正的处理器核心。LEG架构的设计初衷就是要解决原始图灵机指令宽度受…...
开源串流新选择:用Sunshine打造跨设备游戏共享系统
开源串流新选择:用Sunshine打造跨设备游戏共享系统 【免费下载链接】Sunshine Sunshine: Sunshine是一个自托管的游戏流媒体服务器,支持通过Moonlight在各种设备上进行低延迟的游戏串流。 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine …...
旧设备优化指南:iPhone 6s系统降级与性能提升全攻略
旧设备优化指南:iPhone 6s系统降级与性能提升全攻略 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to downgrade/restore, save SHSH blobs, and jailbreak legacy iOS devices 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit 当你的iP…...
手动侧开门款屏蔽箱 适用蓝牙 WIFI测试 无线测试屏蔽箱GX-5950A
GX-5950A屏蔽箱品名:屏蔽箱型号:GX-5950A一、主要功能及适用范围:1 该屏蔽箱适用于无线通讯测试、1 EMI测试、1 耦合测试、1 RF功能测试。适用于手机,平板计算机,蓝牙,wi-fi,天线等测试&#…...
InstructPix2Pix在.NET平台的应用开发实战
InstructPix2Pix在.NET平台的应用开发实战 1. 引言:当AI修图遇上.NET开发 想象一下这样的场景:电商平台的商品图片需要批量调整风格,摄影工作室想要快速实现创意效果,或者内容创作者需要即时编辑社交媒体图片。传统图像处理方式…...
Blender3mfFormat全链路应用指南:从基础操作到专业级工作流构建
Blender3mfFormat全链路应用指南:从基础操作到专业级工作流构建 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 基础认知:3MF格式与Blender插件体…...
Windows 11/10扩展属性冲突:输入法与UAC的隐藏关联
1. Windows扩展属性冲突的典型表现 最近在帮同事调试一个自动化脚本时,遇到了一个奇怪的问题。每次运行那个bat文件,系统就会弹出"扩展属性不一致"的错误提示。这个bat脚本本身很简单,就是用来启动一个内部工具的可执行文件。但无…...
