CN114401102A - 一种基于国密算法的http请求参数加密方案 - Google Patents

一种基于国密算法的http请求参数加密方案 Download PDF

Info

Publication number
CN114401102A
CN114401102A CN202111436107.7A CN202111436107A CN114401102A CN 114401102 A CN114401102 A CN 114401102A CN 202111436107 A CN202111436107 A CN 202111436107A CN 114401102 A CN114401102 A CN 114401102A
Authority
CN
China
Prior art keywords
platform
ciphertext
terminal
key
algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111436107.7A
Other languages
English (en)
Inventor
吴志雄
祁荣军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Linewell Software Co Ltd
Original Assignee
Linewell Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Linewell Software Co Ltd filed Critical Linewell Software Co Ltd
Priority to CN202111436107.7A priority Critical patent/CN114401102A/zh
Publication of CN114401102A publication Critical patent/CN114401102A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提出一种基于国密算法的http请求参数加密方案,为用于终端与平台之间的加密通讯方法,所述加密方案中,平台生成基于非对称加密算法的平台公私钥对,并把平台公私钥对中的公钥A分发至终端,终端生成基于对称加密算法的终端密钥,并在向平台发起http服务请求时,以终端密钥加密http服务请求参数形成第一密文,以公钥A加密终端密钥形成第二密文,终端把第一密文、第二密文组合后提交至平台,平台以平台公私钥对中的私钥A解密第二密文获得终端密钥后,以终端密钥解密第一密文以获得终端提交的http服务请求参数;本发明采用国家密码局认定的国产密码算法,并组合使用其中的SM2算法和SM4算法对请求参数进行加密,能保证请求参数在网络传输中的安全性。

Description

一种基于国密算法的http请求参数加密方案
技术领域
本发明涉及网络安全技术领域,尤其是一种基于国密算法的http请求参数加密方案。
背景技术
目前,网络越来越发达,每日的http请求数以亿计,请求的参数可能涉及电话、身份证号、家庭住址等。在请求参数传输的过程中,它的安全性是非常重要的,但是目前大多数参数传输采用的是明文或者简单加密后的参数,没有采用国家认定的国产密码算法进行加密,这样的请求参数在公共的网络上极易被网络黑客窃取、篡改,从而导致不安全的事情发生。
发明内容
本发明提出一种基于国密算法的http请求参数加密方案,采用国家密码局认定的国产密码算法,并组合使用其中的SM2算法和SM4算法对请求参数进行加密,能保证请求参数在网络传输中的安全性。
本发明采用以下技术方案。
一种基于国密算法的http请求参数加密方案,为用于终端与平台之间的加密通讯方法,所述加密方案中,平台生成基于非对称加密算法的平台公私钥对,并把平台公私钥对中的公钥A分发至终端,终端生成基于对称加密算法的终端密钥,并在向平台发起http服务请求时,以终端密钥加密http服务请求参数形成第一密文,以公钥A加密终端密钥形成第二密文,终端把第一密文、第二密文组合后提交至平台,平台以平台公私钥对中的私钥A解密第二密文获得终端密钥后,以终端密钥解密第一密文以获得终端提交的http服务请求参数。
所述平台公私钥对基于的非对称加密算法为SM2算法;所述终端密钥基于的对称加密算法为SM4算法。
终端在向平台发起http服务请求时,随机生成基于SM4算法的终端密钥,即SM4密钥;所述平台公私钥对中的公钥A为SM2公钥,私钥A为SM2私钥。
所述加密通讯方法包括以下步骤;
步骤一、终端事先向平台发起获取SM2公钥请求,由平台生成SM2公私钥对,与该终端关联后保存在平台上,同时返回SM2公钥,终端保存该SM2公钥;
步骤二、终端向平台发起服务请求前,先随机生成SM4密钥,通过SM4算法使用该密钥加密http服务请求的参数形成第一密文;使用从步骤一获得的SM2公钥,通过SM2算法加密此次请求的SM4密钥形成第二密文并把第二密文放在预先约定名称的头参数中;
步骤三、终端向平台发起http服务请求并把第一密文、第二密文发送给平台,平台收到请求后,通过本地保存的SM2私钥解密头参数中的第二密文,得到SM4密钥,再以SM4密钥解密第一密文,得到此次http服务请求的参数数据;
步骤四、平台响应http服务请求,按步骤三得到的参数数据处理业务,以所得到的处理结果生成body数据,再以SM4密钥对body数据加密形成第三密文,把第三密文回复给终端;
步骤五、终端收到第三密文后,以SM4密钥对其解密,得到平台响应http服务请求后的处理结果。
步骤二中,http服务请求的参数包括query参数、header参数和body参数,头参数的约定名称为X-Secret。
在步骤三中,所述终端向平台发起http请求过程中,对第一密文、第二密文进行URL安全的Base64编码处理。
所述SM2算法和SM4算法均采用国密算法。
本发明的优点在于:
1、在http请求的过程中,对请求参数组合使用了国密算法SM2和SM4加密,没有暴露SM2公私钥和SM4密钥,使http请求更具有安全性。
2、SM2算法为非对称加密算法,解密过程较慢,适合加密数据较为简单的数据;SM4算法为对称加密算法,解密过程较快,适合加密较为复杂的业务数据。根据两种算法的特性,使用SM2算法来加密SM4的密钥,使用SM4算法来加密请求参数,使加解密过程耗时更少,用户体验更好。
附图说明
下面结合附图和具体实施方式对本发明进一步详细的说明:
附图1是本发明的原理示意图。
具体实施方式
如图所示,一种基于国密算法的http请求参数加密方案,为用于终端与平台之间的加密通讯方法,所述加密方案中,平台生成基于非对称加密算法的平台公私钥对,并把平台公私钥对中的公钥A分发至终端,终端生成基于对称加密算法的终端密钥,并在向平台发起http服务请求时,以终端密钥加密http服务请求参数形成第一密文,以公钥A加密终端密钥形成第二密文,终端把第一密文、第二密文组合后提交至平台,平台以平台公私钥对中的私钥A解密第二密文获得终端密钥后,以终端密钥解密第一密文以获得终端提交的http服务请求参数。
所述平台公私钥对基于的非对称加密算法为SM2算法;所述终端密钥基于的对称加密算法为SM4算法。
终端在向平台发起http服务请求时,随机生成基于SM4算法的终端密钥,即SM4密钥(sm4key);所述平台公私钥对中的公钥A为SM2公钥(sm2PublicKey),私钥A为SM2私钥。
所述加密通讯方法包括以下步骤;
步骤一、终端事先向平台发起获取SM2公钥请求,由平台生成SM2公私钥对,与该终端关联后保存在平台上,同时返回SM2公钥,终端保存该SM2公钥;
步骤二、终端向平台发起服务请求前,先随机生成SM4密钥,通过SM4算法使用该密钥加密http服务请求的参数形成第一密文;使用从步骤一获得的SM2公钥,通过SM2算法加密此次请求的SM4密钥形成第二密文并把第二密文放在预先约定名称的头参数中;
步骤三、终端向平台发起http服务请求并把第一密文、第二密文发送给平台,平台收到请求后,通过本地保存的SM2私钥解密头参数中的第二密文,得到SM4密钥,再以SM4密钥解密第一密文,得到此次http服务请求的参数数据;
步骤四、平台响应http服务请求,按步骤三得到的参数数据处理业务,以所得到的处理结果生成body数据,再以SM4密钥对body数据加密形成第三密文,把第三密文回复给终端;
步骤五、终端收到第三密文后,以SM4密钥对其解密,得到平台响应http服务请求后的处理结果。
步骤二中,http服务请求的参数包括query参数、header参数和body参数,头参数的约定名称为X-Secret。
在步骤三中,所述终端向平台发起http请求过程中,对第一密文、第二密文进行URL安全的Base64编码处理。
所述SM2算法和SM4算法均采用国密算法。
实施例:
在步骤二、步骤三中,本例有以下实例方式,
1、获取X-Secret
为防止加解密过程中出现特殊字符破坏原参数值的正确性,故http请求过程中用户传递请求时应先对加密后内容进行编码处理
首先,终端随机生成SM4密钥(sm4key),须为32位16进制数。
假设步骤二中,生成的SM4密钥为:
f1d87abb2841a60469e7e3053401b6b7
其次,需要先获取到SM2公钥(sm2PublicKey),
假设步骤一中,获取到的SM2公钥为:
Figure BDA0003381764410000041
然后,通过SM2加密算法,将SM4密钥加密为X-Secret头,再进行Base64(URL安全的Base64)编码处理防止出现特殊字符串破坏原参数值,公式为:
Base64(SM2Public(sm4key,sm2PublicKey))
则生成的X-Secret头为:
Figure BDA0003381764410000042
2、获取加密的query参数
因SM4加密后的结果可能带有特殊符号,故需要进行Base64(URL安全的Base64)编码处理防止出现特殊字符串破坏原参数值,完整加密公式为:
Base64(SM4Encrypt(value,sm4Key))
原请求
POST/user?id=79d4490e2b2e4ce68aeae3c9816382a7 HTTP/1.1
则加密部分为Base64(SM4Encrypt(‘79d4490e2b2e4ce68aeae3c9816382a7’,‘f1d87abb2841a60469e7e3053401b6b7’))
加密后请求:
Figure BDA0003381764410000051
3、获取加密的header参数
因SM4加密后的结果可能带有特殊符号,故需要进行Base64(URL安全的Base64)编码处理防止出现特殊字符串破坏原参数值,完整加密公式为:
Base64(SM4Encrypt(value,sm4Key))
原请求
Figure BDA0003381764410000052
则加密部分为Base64(SM4Encrypt(‘79d4490e2b2e4ce68aeae3c9816382a7’,‘f1d87abb2841a60469e7e3053401b6b7’))
加密后请求
Figure BDA0003381764410000053
4、获取整个Body的加密值(其中请求格式为form-data格式时只加密值)
加密公式为:
Base64(SM4Encrypt(body,sm4Key))
原请求
Figure BDA0003381764410000054
则加密部分为
Base64(SM4Encrypt(‘{"userId":"79d4490e2b2e4ce68aeae3c9816382a7"}’,‘f1d87abb2841a60469e7e3053401b6b7’))
加密后请求
Figure BDA0003381764410000055
综上,完整的请求示例为:
原请求
Figure BDA0003381764410000061
加密后请求
Figure BDA0003381764410000062
原响应
Figure BDA0003381764410000063
加密后响应
Figure BDA0003381764410000064
本例中,SM2算法和SM4算法均为国密算法。
SM2算法为非对称加密算法,需要初始化一对公私钥,SM2算法可以通过公钥加密数据,通过私钥解密数据。
SM4算法为对称加密算法,需要初始化一个密钥,SM4算法可以通过该密钥加密、解密数据。

Claims (7)

1.一种基于国密算法的http请求参数加密方案,为用于终端与平台之间的加密通讯方法,其特征在于:所述加密方案中,平台生成基于非对称加密算法的平台公私钥对,并把平台公私钥对中的公钥A分发至终端,终端生成基于对称加密算法的终端密钥,并在向平台发起http服务请求时,以终端密钥加密http服务请求参数形成第一密文,以公钥A加密终端密钥形成第二密文,终端把第一密文、第二密文组合后提交至平台,平台以平台公私钥对中的私钥A解密第二密文获得终端密钥后,以终端密钥解密第一密文以获得终端提交的http服务请求参数。
2.根据权利要求1所述的一种基于国密算法的http请求参数加密方案,其特征在于:所述平台公私钥对基于的非对称加密算法为SM2算法;所述终端密钥基于的对称加密算法为SM4算法。
3.根据权利要求2所述的一种基于国密算法的http请求参数加密方案,其特征在于:终端在向平台发起http服务请求时,随机生成基于SM4算法的终端密钥,即SM4密钥;所述平台公私钥对中的公钥A为SM2公钥,私钥A为SM2私钥。
4.根据权利要求3所述的一种基于国密算法的http请求参数加密方案,其特征在于:所述加密通讯方法包括以下步骤;
步骤一、终端事先向平台发起获取SM2公钥请求,由平台生成SM2公私钥对,与该终端关联后保存在平台上,同时返回SM2公钥,终端保存该SM2公钥;
步骤二、终端向平台发起服务请求前,先随机生成SM4密钥,通过SM4算法使用该密钥加密http服务请求的参数形成第一密文;使用从步骤一获得的SM2公钥,通过SM2算法加密此次请求的SM4密钥形成第二密文并把第二密文放在预先约定名称的头参数中;
步骤三、终端向平台发起http服务请求并把第一密文、第二密文发送给平台,平台收到请求后,通过本地保存的SM2私钥解密头参数中的第二密文,得到SM4密钥,再以SM4密钥解密第一密文,得到此次http服务请求的参数数据;
步骤四、平台响应http服务请求,按步骤三得到的参数数据处理业务,以所得到的处理结果生成body数据,再以SM4密钥对body数据加密形成第三密文,把第三密文回复给终端;
步骤五、终端收到第三密文后,以SM4密钥对其解密,得到平台响应http服务请求后的处理结果。
5.根据权利要求4所述的一种基于国密算法的http请求参数加密方案,其特征在于:步骤二中,http服务请求的参数包括query参数、header参数和body参数,头参数的约定名称为X-Secret。
6.根据权利要求4所述的一种基于国密算法的http请求参数加密方案,其特征在于:在步骤三中,所述终端向平台发起http请求过程中,对第一密文、第二密文进行URL安全的Base64编码处理。
7.根据权利要求3所述的一种基于国密算法的http请求参数加密方案,其特征在于:所述SM2算法和SM4算法均采用国密算法。
CN202111436107.7A 2021-11-29 2021-11-29 一种基于国密算法的http请求参数加密方案 Pending CN114401102A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111436107.7A CN114401102A (zh) 2021-11-29 2021-11-29 一种基于国密算法的http请求参数加密方案

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111436107.7A CN114401102A (zh) 2021-11-29 2021-11-29 一种基于国密算法的http请求参数加密方案

Publications (1)

Publication Number Publication Date
CN114401102A true CN114401102A (zh) 2022-04-26

Family

ID=81225164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111436107.7A Pending CN114401102A (zh) 2021-11-29 2021-11-29 一种基于国密算法的http请求参数加密方案

Country Status (1)

Country Link
CN (1) CN114401102A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117201022A (zh) * 2023-09-12 2023-12-08 联通(广东)产业互联网有限公司 基于WireGuard的加密通信网络系统的搭建方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106712932A (zh) * 2016-07-20 2017-05-24 腾讯科技(深圳)有限公司 密钥管理方法、装置及系统
CN108540486A (zh) * 2018-04-23 2018-09-14 湖南东方华龙信息科技有限公司 云密钥的生成和使用方法
CN109922084A (zh) * 2019-04-10 2019-06-21 北京阿尔山区块链联盟科技有限公司 密钥管理方法、装置以及电子设备
US20190394019A1 (en) * 2018-06-20 2019-12-26 Clemson University System And Method For Homomorphic Encryption
CN112822016A (zh) * 2021-01-25 2021-05-18 厦门市易联众易惠科技有限公司 在区块链上进行数据授权的方法及区块链网络
CN113382001A (zh) * 2021-06-09 2021-09-10 湖南快乐阳光互动娱乐传媒有限公司 一种通信加密方法及相关装置
CN113438086A (zh) * 2021-06-24 2021-09-24 深圳前海微众银行股份有限公司 一种数据安全防护方法和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106712932A (zh) * 2016-07-20 2017-05-24 腾讯科技(深圳)有限公司 密钥管理方法、装置及系统
CN108540486A (zh) * 2018-04-23 2018-09-14 湖南东方华龙信息科技有限公司 云密钥的生成和使用方法
US20190394019A1 (en) * 2018-06-20 2019-12-26 Clemson University System And Method For Homomorphic Encryption
CN109922084A (zh) * 2019-04-10 2019-06-21 北京阿尔山区块链联盟科技有限公司 密钥管理方法、装置以及电子设备
CN112822016A (zh) * 2021-01-25 2021-05-18 厦门市易联众易惠科技有限公司 在区块链上进行数据授权的方法及区块链网络
CN113382001A (zh) * 2021-06-09 2021-09-10 湖南快乐阳光互动娱乐传媒有限公司 一种通信加密方法及相关装置
CN113438086A (zh) * 2021-06-24 2021-09-24 深圳前海微众银行股份有限公司 一种数据安全防护方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117201022A (zh) * 2023-09-12 2023-12-08 联通(广东)产业互联网有限公司 基于WireGuard的加密通信网络系统的搭建方法
CN117201022B (zh) * 2023-09-12 2024-03-19 联通(广东)产业互联网有限公司 基于WireGuard的加密通信网络系统的搭建方法

Similar Documents

Publication Publication Date Title
US6959394B1 (en) Splitting knowledge of a password
US7424615B1 (en) Mutually authenticated secure key exchange (MASKE)
CN110059458B (zh) 一种用户口令加密认证方法、装置及系统
JP2006514478A5 (zh)
CN108809633B (zh) 一种身份认证的方法、装置及系统
Hwang et al. Two attacks on Neuman—Stubblebine authentication protocols
CN107682152B (zh) 一种基于对称密码的群组密钥协商方法
WO2005088892A1 (en) A method of virtual challenge response authentication
EP3476078A1 (en) Systems and methods for authenticating communications using a single message exchange and symmetric key
CN113612797A (zh) 一种基于国密算法的Kerberos身份认证协议改进方法
CN115632880B (zh) 一种基于国密算法的可靠数据传输及存储的方法及系统
CN110999202A (zh) 用于对数据进行高度安全、高速加密和传输的计算机实现的系统和方法
CN110572370A (zh) 一种抗量子攻击的代理重加密系统及方法
CN111817850B (zh) 一种基于工业物联网的匿名群组认证方法
CN111988299A (zh) 一种客户端和服务器可信链接的建立方式
CN116709325B (zh) 一种基于高速加密算法的移动设备安全认证方法
CN114401102A (zh) 一种基于国密算法的http请求参数加密方案
CN111740965B (zh) 一种基于物理不可克隆方程的物联网设备认证方法
CN116055136A (zh) 一种基于秘密共享的多目标认证方法
CN115632797A (zh) 一种基于零知识证明的安全身份验证方法
Mishra et al. Authenticated content distribution framework for digital rights management systems with smart card revocation
Ramtri et al. Secure banking transactions using RSA and two fish algorithms
CN111431721A (zh) 一种智能医疗环境下基于ibe的物联网设备加密方法
CN114070549A (zh) 一种密钥生成方法、装置、设备和存储介质
CN116996234B (zh) 一种终端接入认证网关的方法、终端及认证网关

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination