[密碼學實戰]GMT 0136-2024《密碼應用HTTP接口規范》解析

[密碼學實戰]GM/T 0136-2024《密碼應用HTTP接口規范》解析

國家密碼管理局于2025年7月1日正式實施GM/T 0136-2024標準,該規范首次統一了密碼服務的HTTP接口設計,為國產密碼技術的規模化應用鋪平道路。本文結合標準原文,深入剖析其技術細節并給出實戰示例。

一、核心設計原則

1. RESTful架構規范
  • URL前綴強制要求:所有接口路徑必須以/shf/v1/開頭(shf表示密碼HTTP接口,v1為版本號)
  • HTTP方法映射
    • GET:查詢操作(如獲取算法列表)
    • POST:寫操作(如加密、簽名)
  • 無狀態設計:服務端不保存客戶端上下文,每次請求需攜帶完整信息
2. NTV數據結構

為解決二進制數據傳輸問題,規范獨創名稱-類型-值(NTV) 結構:

{"Data": [{"Name": "PlainText",  // 參數名"Type": "Base64",     // 數據類型(Raw/Base64/Hex/DateTime)"Value": "SGVsbG8gV29ybGQ="  // 編碼后的值}]
}
3. 安全傳輸強制要求
  • 必須使用TLCP協議(GB/T 38636)或等效安全傳輸層
  • 錯誤響應禁止返回堆棧信息(防信息泄露)
  • 支持證書雙向認證

二、關鍵接口詳解

1. 密碼運算類接口

在這里插入圖片描述
在這里插入圖片描述

接口功能請求路徑方法核心參數示例
內部私鑰簽名/shf/v1/SignPOSTKeyId, PlainText
外部公鑰加密/shf/v1/EncryptByExternalPublicKeyPOSTPublicKey, PlainText
對稱密鑰解密/shf/v1/DecryptPOSTKeyId, CipherText, IV

文件操作特殊處理

  • 使用FileUri代替直接上傳文件(如"FileUri": "file:///data/test.txt"
  • 響應返回CallbackUri獲取處理結果文件
2. 證書解析接口
POST /shf/v1/ParseCertificate HTTP/1.1
Content-Type: application/json{"Data": [{"Name": "Certificate","Type": "Raw","Value": "-----BEGIN CERTIFICATE-----..."},{"Name": "Tags","Type": "Raw","Value": ["SGD_CERT_ISSUER", "SGD_CERT_SUBJECT"]}]
}

響應返回指定證書字段,符合GM/T 0006標簽規范。

三、安全設計精要

1. 狀態碼雙重機制
層級示例說明
HTTP狀態碼401身份認證失敗
業務狀態碼0x0E000005請求參數錯誤(十六進制)

完整錯誤碼見標準附錄B,如:

  • 0x0E00000F:簽名驗證失敗
  • 0x0E000015:證書解析失敗
2. 算法標識規范
算法類型標準標識示例
SM2簽名1.2.156.10197.1.501
SM4-CBCSGD_SM4_CBC
SM3哈希SGD_SM3

四、實戰示例:內部私鑰簽名

請求
POST /shf/v1/Sign HTTP/1.1
Content-Type: application/json{"Data": [{"Name": "KeyId", "Type": "Raw", "Value": "9bcf0c91-f9f1-406d-ab69-d7bbc157cc06"},{"Name": "PlainText", "Type": "Raw", "Value": "Hello World"}]
}
響應
{"Status": {"Code": "0", "Msg": "success"},"Data": [{"Name": "Signature","Type": "Base64","Value": "MEQCID0G9Qh91XfhqOfv4kXuIZvm45U+Y7BFbufFZDNJvJHZAiBgkdtAxzrB3J5nJD3wmiFOyVzudEt6cYl6ZLXE//4dSQ=="}]
}

五、開發注意事項

  1. 版本控制:自定義擴展接口需使用/shf/ext/前綴
  2. 編碼規范
    • 默認UTF-8編碼
    • 二進制數據必須使用Base64/Hex編碼

結語

GM/T 0136-2024通過標準化HTTP接口,解決了三大核心問題:

  1. 互操作性:不同廠商密碼服務無縫對接
  2. 開發效率:減少70%以上的集成成本

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/913099.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/913099.shtml
英文地址,請注明出處:http://en.pswp.cn/news/913099.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Docker 國內鏡像列表(免費長期)

Docker 可用鏡像源列表(7月1日更新-長期維護)_dockerhub國內鏡像源列表-CSDN博客

BlenderFBXExporter 導出fbx被修改問題

1) 解決增加A節點的問題 https://github.com/A-Ribeiro/CustomBlenderFBXExporter 2)找出blendshape 不一致,生成blendshape key name映射map 文件compare.txt C:\Users\49938\Documents\DazToUnreal\zhang01\UpdatedFBX\zhang01_fix7.fbx…

AI時代下的IT服務管理轉型:趨勢、挑戰與破局之道

近年來,人工智能(AI)與自動化技術的迅猛發展,正以前所未有的速度重塑企業運營的各個層面。特別是在IT服務管理(ITSM)領域,AI的介入不僅提高了問題響應效率,也推動了組織從“被動響應…

三體融合實戰:Django+訊飛星火+Colossal-AI的企業級AI系統架構

目錄 技術棧關鍵詞:Django 5.0 訊飛星火4.0Ultra Colossal-AI 1.2 WebSocket 聯邦學習 ? 核心架構設計 🛠? 一、Django深度集成訊飛星火API(免費版) 1. 獲取API憑證 2. 流式通信改造(解決高并發阻塞&#xff09…

多模態數據融合預警:從IoT傳感器到衛星監測的可視化方案升級

你有沒有想過,為什么有些城市在暴雨來臨時能提前數小時發布內澇預警,而有些地方卻只能“等水來了才反應”? 背后的關鍵,就是多模態數據融合預警系統——它把來自IoT傳感器、無人機、地面雷達、氣象站、甚至衛星的數據整合在一起&a…

面試八股---css

2、css 2.1 說說你對盒子模型的理解 是什么 當對一個文檔進行布局(layout)的時候,瀏覽器的渲染引擎會根據標準之一的 CSS 基礎框盒模型(CSS basic box model),將所有元素表示為一個個矩形的盒子&#xf…

day52-硬件學習之RTC及ADC

一、RTCRTC(實時時鐘):非易失性在IMX6ULL內部SNVS(安全的非易失性存儲器)提供RTC功能;原理圖:二、ADC 2.1 基本概念ADC(模擬數字轉換器):用于將連續變化的模擬信號轉換為離散的數字信…

Web 項目如何自動化測試?

Web 項目的自動化測試可以通過 UI自動化 和 接口自動化 結合實現,提高測試效率和覆蓋率。以下是關鍵方法和工具: 【自動化測試】從基礎到實戰基于Pytest自動化/python自動化的詳細教程!1. UI自動化測試(前端交互) 適用…

Java連接阿里云MaxCompute例

要使用Java連接阿里云MaxCompute(原名ODPS)數據庫,您可以遵循以下步驟進行配置和編程: 1. 添加依賴 確保您的項目中包含了MaxCompute JDBC驅動的依賴。如果您使用Maven,可以在pom.xml中添加如下依賴: &l…

【網絡與系統安全】強制訪問控制——BLP模型

一、模型背景與定義 BLP(Bell-LaPadula)模型是由David Bell和Len Adula在1973年提出的強制訪問控制(MAC)模型,是最早的計算機安全模型之一,主要用于解決多用戶系統中的信息機密性保護問題,尤其…

HTTPS詳解:原理 + 加解密過程 + 面試問答

一、HTTP 與 HTTPS 的區別 項目HTTPHTTPS全稱HyperText Transfer ProtocolHyperText Transfer Protocol Secure端口80443協議層應用層應用層 TLS(安全層)加密方式明文傳輸加密傳輸(TLS)安全性易被劫持、中間人攻擊可加密、防篡改…

Python-GUI-wxPython-控件

1 需求 2 接口 3.* 控件:wx.StaticText import wxclass MainFrame(wx.Frame):def __init__(self, *args, **kwargs):super(MainFrame, self).__init__(*args, **kwargs)self.init_ui()self.Center()self.Maximize()def init_ui(self):static_text wx.StaticText(pa…

3-1 PID算法改進(積分部分)

目錄 1、積分限幅 2、積分分離 3、變速積分 在位置式PID的基礎上進行改進 定速用PI控制,定位置用PD控制 1、積分限幅 在定速控制上體現 第一種方法確定上下限方法:Out最大時,除以Ki,得到一個值,上限不能超過這個…

Linux探秘坊-------13.進程間通信

1.進程間通信?的 2.管道 2.1 匿名管道 -----通常用來實現 父子通信 創建子進程時,需要把父進程的進程內容全部拷貝一份,但文件管理是不需要拷貝的 但是我們把父進程的文件描述符表給拷貝下來了,文件描述符表里是一堆指針,他們仍…

深入理解Vapnik-Chervonenkis(VC)維度:機器學習泛化能力的理論基礎

引言 通過本篇閱讀,從理論上去理解為什么: 要選擇復雜度低的模型 過擬合的時候,增加樣本量有用 以及如何根據樣本量選擇特征個數 PAC機器學習框架, VC 維是機器學習最重要的基礎理論之一 在機器學習領域,模型泛化能力是衡量算法性能的核心指標…

redis持久化-純緩存模式

redis持久化-純緩存模式 文檔 redis單機安裝redis常用的五種數據類型redis數據類型-位圖bitmapredis數據類型-基數統計HyperLogLogredis數據類型-地理空間GEOredis數據類型-流Streamredis數據類型-位域bitfieldredis持久化-RDBredis持久化-AOFredis持久化-RDBAOF混合模式 官…

HTML DOM 訪問

HTML DOM 訪問 引言 HTML DOM(文檔對象模型)是現代Web開發中不可或缺的一部分。它允許開發者通過JavaScript操作HTML文檔中的元素,從而實現豐富的交互效果。本文將詳細介紹HTML DOM的訪問方法,包括如何獲取元素、如何修改元素屬…

雙系統如何做接口認證-V1

現有A系統,B系統,A系統啟動的時候調用B系統的注冊接口API1(把A系統配置信息注冊到B系統),A系統定時向B系統接口AP2發送心跳信息,B系統根據業務情況,調用A系統的業務接口AP3,請設計兩…

Wireshark TS | 詭異的光貓網絡問題

前言 來自于朋友分享的一個案例,最后定位的原因是光貓問題,而類似這類的設備所產生的網絡問題,也曾碰到過兩三次,但這一次的數據包現象挺特別,分析思路和過程也有所不同,故記錄分享一下。 問題背景 用戶所反…

mac mini m4安裝node.js@16以下版本方法

設備:mac mini m4 目的:使用nvm 安裝 node.js14.x 版本 結果:安裝不上 原因:Node.js 14 發布時,Apple Silicon(M1/M2)尚未普及,因此 沒有官方預編譯的 macOS ARM64 版本 處理方案&am…