银行间交易IMIX协议加密相关

加密流程

  1. 字段筛选与序列化
    提取业务报文中标记为敏感的字段,生成待加密的数据块
<!-- 示例:原始交易指令 -->
<Order><Symbol>ABC123</Symbol>          <!-- 非敏感 --><Price>100.50</Price>            <!-- 敏感 --><Volume>1000000</Volume>         <!-- 敏感 --><Direction>Buy</Direction>       <!-- 非敏感 -->
</Order>
  1. 加密算法选择
    国密算法优先,如SM4(密钥长度为128位)对称加密
  2. 密钥管理
    如会话密钥(Session Key):登录阶段动态生成,每个会话独立
  3. 加密与封装
  • 对序列化后的数据块进行加密
SecureData = SM4_Encrypt(SessionKey, PlainTextData, IV)
  • 将加密结果、初始向量(IV)、算法标识等封装到如SecureData 结构中
<!-- 示例:加密后的SecureData -->
<SecureData><Algorithm>SM4-CBC</Algorithm>  <!-- 加密算法标识 --><IV>Base64Encoded(InitialVector)</IV>  <!-- 初始向量 --><CipherText>Base64Encoded(SecureData)</CipherText>  <!-- 密文 -->
</SecureData>
  • 原始报文中的敏感字段被替换为 SecureData 节点
<Order><Symbol>ABC123</Symbol><SecureData>...</SecureData>  <!-- 替代Price/Volume --><Direction>Buy</Direction>
</Order>
  1. 解密流程
  • 提取会话密钥:根据会话ID从本地缓存获取SM4会话密钥。
  • 解密数据:
PlainText = SM4_Decrypt(SessionKey, CipherText, IV)
  • 反序列化:PlainText = SM4_Decrypt(SessionKey, CipherText, IV)

配置文件调整

# client.cfg文件
[default] #全局默认配置模块中,添加配置项:
IsSignNeed=Y #是否需要数字签名,如SM2算法。要求所有报文福袋SM2签名,确保报文的完整性和不可抵赖性,防止篡改
CAEnable=Y #是否启用证书颁发机构CA验证,强制校验对方证书是否由可信CA签发
SocketUseSSL=Y #通信链路是否使用SSL/TLS加密,启用国密SSL或国际标准TLS(N明文传输),保护传输层数据安全# 配置商用密码证书的路径和密码:
UserCert=cert/encryCert.SM2 #声明本机构身份证书文件路径(通常为SM2格式的商用证书)
UserCertPwd=password #用户证书密码/解密证书私钥的密码(

调用逻辑:

  1. 系统读取encryCert.SM2证书获取公钥和身份信息
  2. 当需要签名或解密时,用UserCertPwd解密对应的私钥文件
  3. 使用私钥完成SM2签名或密钥协商
解密
生成签名/解密
验证签名/加密
证书密码
私钥文件
证书公钥

证书

证书相关概念

CA

(Certificate Authority,证书颁发机构) 是网络安全中负责 签发、管理和验证数字证书 的权威第三方机构,其核心作用是确保网络通信中实体的身份真实性和数据安全性。

数字证书

包含用户/机构的公钥、身份信息(如机构代码)、颁发者(CA)信息,由CA数字签名。包含实体USBkey(如金融U盾)、电子证书。

USBKEY证书

USBKEY证书代码是USBKEY唯一的编码。USBKEY是一种USB接口的硬件设备,内置单片机或智能卡芯片,有一定的存储空间,可存储用户的私钥以及数字证书,利用USBKEY内置的公钥算法实现对用户身份的认证。

私钥

与证书中的公钥配对的密钥,必须严格保密,用于签名或解密数据。

证书密码

用于保护私钥文件的密码(防止私钥被直接读取),在调用私钥时需输入。

签名(89Signature)

通过密码学算法生成一段唯一数据,用于验证消息来源、确保数据完整,防止抵赖(发送方无法否认自己签署过的消息)。

证书生成过程

  1. 生成密钥对:使用密码机(HSM)或软件工具生成SM2非对称密钥对,私钥private_key保密储存,需要密码加密;公钥public_key嵌入证书中。
  2. 申请证书:将公钥和机构信息提交给CA(如CFETS或央行CA),CA验证身份后签发数字证书
  3. 密钥绑定:私钥文件通常通过密码加密存储(如PKCS#8格式),使用时需输入证书密码解密。

加密算法

国密/商密算法

SM2:身份认证和数字签名。
SM3:生成报文哈希(防篡改)。
SM4:加密敏感字段(如)。

SM2国密算法

  • 概念:SM2 是中国国家密码管理局(GM/T)发布的 椭圆曲线公钥密码算法,属于商用密码体系的核心组成部分,广泛应用于金融(如IMIX协议)、政务、物联网等领域。
  • 类型:非对称加密算法(基于椭圆曲线密码学,ECC)。
    • 加密和解密使用不同密钥,私钥无法从公钥推导;公钥加密的数据只能由私钥解密,私钥签名的数据只能由公钥验证(银行间机构使用私钥对登录请求签名,CFETS通过银行证书中的公钥验证签名,确认身份)
    • 解决密钥分发问题,无需提前共享密钥
  • 标准号:GM/T 0003-2012。
  • 算法原理:椭圆曲线基础;密钥对生成,私钥随机选取一个256位证书,公钥通过私钥计算而成;根据原消息SM3算法得哈希值和随机数生成签名

加密 & 加签

  • 加密Encryption:公钥加密,私钥解密,保护数据及密性,防泄露。
  • 加签Signature:私钥签名,公钥验签,验证数据完整性和来源真实性,防篡改。
  • 关系:先根据原始明文数据,用私钥生成签名;将敏感字段加密,生成密文;签名值通常不加密,随报文一起传输先签名->再加密->传输->接收方先验签->再解密

Reference

  • 《金融数据安全分级指南》(JR/T 0197-2020)对敏感数据的保护要求。
  • GM/T 0009-2012(SM4密码算法使用规范)

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

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

相关文章

ABM和强化学习-2015年全国大学生数学建模竞赛B题

多智能体系统&#xff08;Agent-Based Model, ABM&#xff09;和强化学习&#xff08;Reinforcement Learning, RL&#xff09;是两个不同但可结合的概念&#xff0c;尤其在复杂系统建模和人工智能领域有重要应用。下面分别解释它们&#xff0c;并说明二者的关联&#xff1a; …

ALBEF/BLIP/BLIP2/Instruct BLIP/X Instruct BLIP

ALBEF 研究动机 ALBEF之前的一些方式&#xff0c; 视觉分支基本都是基于 dector的方式&#xff08;检出目标框&#xff09;&#xff0c;如下图所示&#xff0c;由于大量的数据没有标框&#xff0c;因此视觉预训练的受限于dector的检测方式。创新点 能不能不再采用dector的方式训…

数据结构——排序算法(简单篇:冒泡排序、选择排序、插入排序)

1️⃣ 冒泡排序&#xff08;Bubble Sort&#xff09; 基本思想 重复地比较相邻的两个元素&#xff0c;如果顺序错误就交换它们。一趟冒泡结束后&#xff0c;最大&#xff08;或最小&#xff09;的元素会“浮”到末尾。下一趟时可以少比较一次&#xff0c;因为最后的元素已经排好…

配置 Docker 镜像加速,解决 docker pull 拉取镜像失败、docker search 查询镜像失败等问题

一、概述 记录时间 [2025-08-16] 在 Docker 学习中&#xff0c;可能会遇到诸如 docker 远程仓库无法访问、docker pull 拉取镜像失败、docker search 查询镜像失败等问题。 这是由于国内网络对 docker 远程仓库的访问受到限制。 那么在国内如何获取 docker 镜像呢&#xff1f…

【Python】Python 面向对象编程详解​

Python 面向对象编程详解​ 文章目录Python 面向对象编程详解​前言一、面向对象的基本概念​1.1 类&#xff08;Class&#xff09;​1.2 对象&#xff08;Object&#xff09;​1.3 属性&#xff08;Attribute&#xff09;​1.4 方法&#xff08;Method&#xff09;​二、类的定…

Redis 缓存和 Redis 分布式锁

目录 Redis 缓存 (Caching) 目的 核心逻辑 存储形式总结 典型场景 Redis 分布式锁 (Distributed Lock) 目的 核心作用 核心逻辑 典型场景 核心区别总结 Redis 缓存 (Caching) 在Redis中&#xff0c;数据是以键值对的形式存储的&#xff0c;其中键总是字符串类型&…

[ java 基础 ] 了解编程语言的第一步

目录 一. IDE (1). 使用IDE的原因: (2). 创建和使用: (3). 常用快捷方式与设置 (4). 注释 (5). 关键字 (6). 标识符 (7). 变量 (8). 数据类型 1) 整数类型 2) 浮点类型 3) 布尔类型(boolean) 4) 字符类型(char) 5) 字符串 6) 基本数据类之间的转换 (9). 运算符…

JavaScript 闭包与递归深度解析:从理论到实战

本文将系统梳理 JavaScript 中闭包与递归的核心概念、实战应用及面试要点,涵盖课堂知识点、作业实现、面试题解析等内容,帮助你全面掌握这两大重要概念。 一、闭包:函数与变量的绑定艺术 1.1 闭包的定义与核心特性 闭包是 JavaScript 中一种特殊的语言现象,其核心定义可…

牛 CDR3 单抗:抗病毒领域的 “纳米级精准导弹”

一、病毒防御的天然克星病毒感染的核心难题在于其表面的 “糖衣炮弹”—— 以 HIV 为例&#xff0c;其 Env 蛋白表面密集的糖链形成物理屏障&#xff0c;传统抗体难以穿透。而牛 CDR3 单抗的超长 CDR H3 结构&#xff08;50-60 个氨基酸&#xff09;如同 “纳米探针”&#xff…

鸿蒙应用开发和Vue网页开发中生命周期的区别

因为下节课就可以写讲解两者生命周期代码的实战了&#xff0c;写介绍一下理论方面的区别&#xff1a;鸿蒙应用开发&#xff08;ArkUI范式&#xff09;与Vue网页开发在生命周期管理上的核心区别&#xff0c;这直接反映了原生OS应用与Web应用在架构哲学和运行环境上的根本差异⚙️…

基于SpringBoot+Vue的轻手工创意分享平台(WebSocket即时通讯、协同过滤算法、Echarts图形化分析)

&#x1f388;系统亮点&#xff1a;WebSocket即时通讯、协同过滤算法、Echarts图形化分析&#xff1b;一.系统开发工具与环境搭建1.系统设计开发工具后端使用Java编程语言的Spring boot框架 项目架构&#xff1a;B/S架构 运行环境&#xff1a;win10/win11、jdk17前端&#xff1…

Java应届生求职八股(5)---并发编程篇

线程基础线程与进程的区别进程是程序的一次执行过程。它资源分配的单位。线程是程序执行的单位。并行和并发的区别单核CPU下&#xff0c;线程串行。&#xff08;并发&#xff1a;多线程轮流使用一个或多个CPU&#xff09;多核CPU下&#xff0c;每个核都可调度线程。&#xff08…

WSL 配置文件 wsl.conf 设置

WSL .wslconfig 小技巧 要在 WSL&#xff08;Windows Subsystem for Linux&#xff09;中增加内存&#xff0c;你需要编辑 WSL 配置文件 wsl.conf 或者直接调整虚拟机的资源限制。 文章目录WSL .wslconfig 小技巧以下是步骤&#xff1a; 找到或创建 .wslconfig 文件&#xff1…

9.从零开始写LINUX内核——设置中断描述符表

Linux 0.12 内核中断描述符表&#xff08;IDT&#xff09;完整实现代码以下是基于 setup 程序扩展的完整代码&#xff0c;包含中断描述符表&#xff08;IDT&#xff09;的定义、初始化及中断处理程序&#xff0c;可直接用于实验验证&#xff1a;asm/* setup.s —— 4 扇区&…

手机实时提取SIM卡打电话的信令声音-当前现状与思考

手机实时提取SIM卡打电话的信令声音-当前现状与思考 --纯手机-无外置配件的方案规划 上一篇&#xff1a;手机实时提取SIM卡打电话的信令声音-新的篇章(篇外小结与思考) 下一篇&#xff1a;手机实时提取SIM卡打电话的信令声音-整体解决方案规划 一、前言 我们在2024年09月的…

【车联网kafka】常用参数及其命令总结(第八篇)

目录 1、kafka参数 1.1 、消费者消息批次发送 1.2 、消息大小的配置(环环相扣的消息大小&#xff0c;调整时需要一起调整) 1.3 、消息重试发送幂等 1.4、消息提交 1.5、分区分配策略&#xff08;自己看的设置&#xff09; 1.6、文件存储 2、kafka命令 2.1 常用命令一览…

基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统

&#x1f525;作者&#xff1a;it毕设实战小研&#x1f525; &#x1f496;简介&#xff1a;java、微信小程序、安卓&#xff1b;定制开发&#xff0c;远程调试 代码讲解&#xff0c;文档指导&#xff0c;ppt制作&#x1f496; 精彩专栏推荐订阅&#xff1a;在下方专栏&#x1…

17.4 合并购物车

分析 用户登录后&#xff0c;将Cookie中的购物车商品合并到redis数据库中。如果此时redis中已经有相同id的商品&#xff0c;则使用Cookie中的数据覆盖redis中的数据。 合并功能需要在用户登录后实现&#xff0c;但登录视图中应避免过多与登录逻辑无关的逻辑&#xff0c;所以考虑…

RK3588消费级8K VR一体机 是否有坑?

​​芯片平台​​​​定位场景​​​​核心优势​​​​消费级功能性短板​​全志H8/RK3288入门级VR低成本、基础性能稳定算力弱&#xff08;4*A55&#xff09;、无NPU、显示分辨率仅1080P高通XR1中端VR/AR均衡性能&#xff08;Adreno 615 GPU&#xff09;仅WiFi5、续航≤4小时…

基于Spring Boot校园二手交易平台系统设计与实现 二手交易系统 交易平台小程序

&#x1f525;作者&#xff1a;it毕设实战小研&#x1f525; &#x1f496;简介&#xff1a;java、微信小程序、安卓&#xff1b;定制开发&#xff0c;远程调试 代码讲解&#xff0c;文档指导&#xff0c;ppt制作&#x1f496; 精彩专栏推荐订阅&#xff1a;在下方专栏&#x1…