銀行間交易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
英文地址,請注明出處:http://en.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…