GPC-SCP03安全通道协议

概述:

规范全称: GlobalPlatform Technology Secure Channel Protocol '03' Card Specification V2.3 - Amendment D Version 1.1.2

安全通道的建立的标志即通讯双方都形成三个安全通道共享密钥(Derived Session Key),它们是Kmac, Krmac, Kenc(即标准中的S-MAC,S-RMAC,S-ENC)。

SCP03还是分成两大部分:

  • 第一部分,对S-MAC,S-RMAC,S-ENC的生成和通讯双方双向认证的过程做出一种规范并说明;
  • 第二部分,说明了安全通道建立后如何利用这三个密钥进行安全通道通信的框架和流程。

用例与要求:

安全通道用于在发行和发行后进行个性化卡片。使用伪随机卡挑战数(pseudo-random card chanllenges)的安全通道协议的模式允许在卡不存在的情况下离线准备个性化脚本,并在不在线连接到准备脚本的实体的情况下在卡上处理这些脚本。

当个性化涉及加载密码密钥(cyptographic key)时,确保传输的传输密钥(transport key)必须至少与正在传输的密钥一样

为了帮助确定合适的传输密钥(transport),美国国家标准与技术研究所(NIST)发布了一份名为“密钥管理建议”(Recommendation for key Management)的文件。本文件可在NIST网站上免费获得,参考文献NIST 800-57第1部分([NIST 800-57])也可免费获得,是美国联邦政府使用的强制性标准,也得到了世界上许多其他政府的认可。[NIST 800-57]根据其算法和大小提供了密钥的加密强度。结果表明,2TDEA密钥可以作为传输密钥加密其他2TDEA密钥、RSA 1024密钥或具有f = 160-223的ECC密钥,但不能用于加密以下密钥:

  • 3TDEA Length Keys
  • RSA above 1024
  • AES-128
  • AES-192
  • AES-256
  • ECC (f = 224 and above)

此外,作为传输密钥的3TDEA密钥只能加密另一个3TDEA密钥、RSA 2048或具有f = 224-255的ECC密钥,但不能用于加密:

  • RSA above 2048
  • AES-128
  • AES-192
  • AES-256
  • ECC (f = 256 and above)

由于上述类型的密钥开始在最新一代的JavaCards™中可用,因此GP平台提供一种机制,通过该机制可以将这些密钥加载到卡中就变得很重要了。

根据上述标准,AES密钥更适合于传输密钥

  • AES-128密钥可用于加密3个TDEA密钥,RSA高达3072,AES-128和ECC,f up to383。
  • AES-192密钥还可用于加密RSA和f = 384-511的RSA高达7680、AES-192和ECC。
  • 一个AES-256密钥可用于加密RSA高达15360,AES-256和ECC的f = 512+。

从加密分析的角度来看,这将确保基于AES的安全通道的持久性。

安全通道使用

加密: 加密采用S-ENC,加密的过程如下图所示:

MAC: MAC生成过程如下图所示:

R-MAC: MAC生成过程,如下图所示:

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

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

相关文章

Feign代替RestTemplate发起http请求

RestTemplate代码: // public Order queryOrderById(Long orderId) {// // 1.查询订单// Order order orderMapper.findById(orderId);// //String url "http://localhost:8081/user/" order.getUserId();// String url "htt…

Redis hash表源码解析

整体数据结构:链式hash解决hash冲突、采用渐进式hash来完成扩容过程。 /** 哈希表节点*/ typedef struct dictEntry {// 键void *key;// 值union {void *val;uint64_t u64;int64_t s64;} v;// 指向下个哈希表节点,形成链表struct dictEntry *next;} dict…

生成带依赖Jar 包的两种常用方式:IDEA打包工具:Artifacts 和 maven-shade-plugin

文章目录 前言1、IDEA打包工具:Artifacts1.1 创建Artifacts1.2 选择第三方jar文件1.3 打包Artifacts1.4 测试jar包 2、maven-shade-plugin2.1、pom文件添加2.2、打包2.3、测试jar包 总结 前言 当我们编写完Java程序后,为了提高执行效率通常会将应用程序…

浅析 TLS(ECDHE)协议的握手流程(图解)

浅析 TLS(ECDHE)协议的握手流程(图解) 通过 wireshark 抓取 HTTPS 包,理解 TLS 1.2 安全通信协议的握手流程。 重点理解几个点: TLS 握手流程:通过 wireshark 抓取 HTTPS 包理解。协商加密&a…

经典文献阅读之--Traversability Analysis for Autonomous Driving...(Lidar复杂环境中的可通行分析)

0. 简介 对于自动驾驶来说,复杂环境的可通行是最需要关注的任务。《Traversability Analysis for Autonomous Driving in Complex Environment: A LiDAR-based Terrain Modeling Approach》一文提出了用激光雷达完成建图的工作,其可以输出稳定、完整和精…

RHEL8更新安全补丁,删除旧内核

# 查看高危漏洞公告 dnf updateinfo list# 对高危漏洞公告的某一项进行单独升级 dnf update --advisoryFEDORA-EPEL-2022-3c43a57d41# 检查安全更新 dnf --security check-update# 只安装最安全的安全更新,忽略所有可能包含不安全新功能的包 dnf --security update-…

大文件分片上传、分片进度、断点续传的原理(一)

大文件分片上传 效果展示 前端 思路 前端的思路&#xff1a;将大文件切分成多个小文件&#xff0c;然后并发给后端。 页面构建 先在页面上写几个组件用来获取文件。 <body><input type"file" id"file" /><button id"uploadButton…

古琴零基础自学考级入门,从初级到高级古琴教学全集

一、教程描述 本套教程是古琴的组合教程&#xff0c;内容是超级齐全的&#xff0c;包括了很多套完整的古琴教程&#xff0c;来自国内知名的古琴教师、专家&#xff0c;教授等&#xff0c;都是从零基础开始讲起的&#xff0c;而且理论与实践相结合&#xff0c;对于刚学古琴入门…

【WPF.NET开发】WPF.NET桌面应用开发概述

本文内容 为何从 .NET Framework 升级使用 WPF 进行编程标记和代码隐藏输入和命令控件布局数据绑定图形和动画文本和版式自定义 WPF 应用 Windows Presentation Foundation (WPF) 是一个与分辨率无关的 UI 框架&#xff0c;使用基于矢量的呈现引擎&#xff0c;构建用于利用现…

SHAP(六):使用 XGBoost 和 HyperOpt 进行信用卡欺诈检测

SHAP&#xff08;六&#xff09;&#xff1a;使用 XGBoost 和 HyperOpt 进行信用卡欺诈检测 本笔记本介绍了 XGBoost Classifier 在金融行业中的实现&#xff0c;特别是在信用卡欺诈检测方面。 构建 XGBoost 分类器后&#xff0c;它将使用 HyperOpt 库&#xff08;sklearn 的 …

26. 深度学习进阶 - 深度学习的优化方法

Hi, 你好。我是茶桁。 上一节课中我们预告了&#xff0c;本节课是一个难点&#xff0c;同时也是一个重点&#xff0c;大家要理解清楚。 我们在做机器学习的时候&#xff0c;会用不同的优化方法。 SGD 上图中左边就是Batch Gradient Descent&#xff0c;中间是Mini-Batch Gra…

【Linux】Ubuntu添加root用户

在Ubuntu中&#xff0c;默认情况下是禁用了root用户的登录。如果仍然想要启用root用户&#xff0c;并设置root用户的密码&#xff0c;应按照以下步骤进行操作&#xff1a; 一、输入sudo passwd root设置root用户密码 二、切换root用户 sudo -i su root 这两条命令均可却换至…

python+pytest接口自动化(6)-请求参数格式的确定

我们在做接口测试之前&#xff0c;先需要根据接口文档或抓包接口数据&#xff0c;搞清楚被测接口的详细内容&#xff0c;其中就包含请求参数的编码格式&#xff0c;从而使用对应的参数格式发送请求。例如某个接口规定的请求主体的编码方式为 application/json&#xff0c;那么在…

在linux服上部署vue+springboot+nginx项目

一、环境准备 1、安装winscp便于可视化操作linux&#xff1a;winscp安装及关联putty使用_putty.exe没有找到_cherishSpring的博客-CSDN博客 2、安装jdk&#xff1a;linux系统安装jdk-CSDN博客 3、安装mysql&#xff1a;Linux7安装mysql数据库以及navicat远程连接mysql-CSDN博…

K8S客户端二 使用Rancher部署服务

Rancher容器云管理平台 本博客中使用了四台服务器&#xff0c;如下 rancher服务器k8s-masterk8s-worker01k8s-worker02 一、主机硬件说明 序号硬件操作及内核1CPU 4 Memory 4G Disk 100GCentOS72CPU 4 Memory 4G Disk 100GCentOS73CPU 4 Memory 4G Disk 100GCentOS74CPU 4 …

剑指 Offer(第2版)面试题 15:二进制中1的个数

剑指 Offer&#xff08;第2版&#xff09;面试题 15&#xff1a;二进制中1的个数 剑指 Offer&#xff08;第2版&#xff09;面试题 15&#xff1a;二进制中1的个数解法1&#xff1a;位运算解法2&#xff1a;n & (n - 1)相关题目 剑指 Offer&#xff08;第2版&#xff09;面…

Java数据结构之《希尔排序》题目

一、前言&#xff1a; 这是怀化学院的&#xff1a;Java数据结构中的一道难度中等的一道编程题(此方法为博主自己研究&#xff0c;问题基本解决&#xff0c;若有bug欢迎下方评论提出意见&#xff0c;我会第一时间改进代码&#xff0c;谢谢&#xff01;) 后面其他编程题只要我写完…

最小生成树算法

文章目录 最小生成树概述 P r i m Prim Prim 算法 - 稠密图 - O ( n 2 ) O(n^2) O(n2)思路概述时间复杂度分析AcWing 858. Prim算法求最小生成树CODE K r u s k a l Kruskal Kruskal 算法 - 稀疏图 - O ( m l o g m ) O(mlogm) O(mlogm)思路解析时间复杂度分析AcWing 859. Kr…

Raft 算法

Raft 算法 1 背景 当今的数据中心和应用程序在高度动态的环境中运行&#xff0c;为了应对高度动态的环境&#xff0c;它们通过额外的服务器进行横向扩展&#xff0c;并且根据需求进行扩展和收缩。同时&#xff0c;服务器和网络故障也很常见。 因此&#xff0c;系统必须在正常…

Flask使用线程异步执行耗时任务

1 问题说明 1.1 任务简述 在开发Flask应用中一定会遇到执行耗时任务&#xff0c;但是Flask是轻量级的同步框架&#xff0c;即在单个请求时服务会阻被塞&#xff0c;直到任务完成&#xff08;注意&#xff1a;当前请求被阻塞不会影响到其他请求&#xff09;。 解决异步问题有…