CN113708933A - 支持国家商用密码算法的IPSec实现方法 - Google Patents
支持国家商用密码算法的IPSec实现方法 Download PDFInfo
- Publication number
- CN113708933A CN113708933A CN202010433067.XA CN202010433067A CN113708933A CN 113708933 A CN113708933 A CN 113708933A CN 202010433067 A CN202010433067 A CN 202010433067A CN 113708933 A CN113708933 A CN 113708933A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- ipsec
- cryptographic
- calling
- interface
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 14
- 238000004891 communication Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 description 12
- 238000012795 verification Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004224 protection Effects 0.000 description 2
- 230000004083 survival effect Effects 0.000 description 2
- 241001323321 Pluto Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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/0435—Network 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 symmetric encryption, i.e. same key used for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0869—Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种支持国家商用密码算法的IPSec实现方法,调用硬件密码卡,逻辑克服了IPsec的基础上不便新增密码算法的问题,实现非对称密码算法支持SM2椭圆曲线密码算法、对称密码算法支持SM4分组密码算法、密码杂凑算法支持SM3密码杂凑算法,增加了IPSec VPN算法的安全性。
Description
技术领域
本发明属于网络与信息安全技术领域,尤其是涉及一种能够支持中国国家商用密码算法的IPSec实现方法。
背景技术
VPN技术,即虚拟专用网技术,通过对网络数据的封包和加密传输,在一个公用网络建立一个临时的、安全的连接,从而实现在公网上传输私有数据,达到私有网络的安全级别。其中,IPSec协议广泛使用的VPN技术,提供特定的通信双方之间在IP层通过加密与数据源验证,保证数据包在网络中传输时的机密性、完整性与真实性,与其他隧道协议想配合完成VPN数据报文的加密与验证,IPSec的安全性能实质上主要是由密码算法的安全性来保证的。目前许多网络安全设备都是沿用3DES、SHA-1、RSA等国际通用的加密算法体系及相关标准。随着密码技术和计算技术的发展,许多国际通用密码算法屡屡被破解,导致各类安全漏洞及威胁事件。
为从根本上摆脱对国外加密技术和设备的过度依赖,从加密算法层面推动信息科技的“安全可控”,我国自主研发了具有自主知识产权的国产商密算法,具有较高安全性,由国家密码局公开并大力推广。我国公开的国产商用密码算法包括SM1、SM2、SM3、SM4、SM7、SM9及祖冲之算法,其中SM2、SM3、SM4最为常用,用于对应替代RSA、DES、3DES、SHA等国际通用密码算法体系。《IPSec VPN技术规范》也要求IPSec VPN产品的:非对称密码算法应当支持SM2椭圆曲线密码算法,对称密码算法应当支持SM4分组密码算法,密码杂凑算法应当支持SM3密码杂凑算法。因此,为了充分发挥IPSec的安全性能,达到安全可控,实现支持国内自有的密码算法,需要对现有的IPSec VPN技术进行改进。
发明内容
鉴于以上,本发明旨在提出一种优化IPSec的技术方案,基于OpenSwan、结合GMSSL与硬件加密卡,实现对国密算法的支持,而不需要完全推翻实践中的大量既有设备方案。
支持国家商用密码算法的IPSec实现方法,设置用于逻辑实现国密算法的硬件密码卡,
用户态:调用在GMSSL中定义的SM2算法接口,实现SM2证书认证;根据算法类型结构与属性,添加SM3与SM4算法声明,调用注册接口进行算法注册;在SM3算法结构中添加接口,用于调用国家标准的硬件加密卡,实现SM3算法;在SM4算法结构中添加接口,用于调用国家标准的硬件加密卡,实现SM4算法;
内核态:添加内核态散列算法结构,添加调用硬件加解密接口实现SM3算法;添加内核态加解密算法结构,添加调用硬件加密卡接口实现SM4算法。
所述硬件加密卡具有支持SM3、SM4算法的用户态库和内核态驱动,硬件密码卡加载所述用户态库与内核态驱动,实现相应的算法。
具体包括以下步骤:
在IPSec通信两端分别设置所述硬件加密卡,并且在用户态与内核态的算法结构中添加硬件加密卡的调用接口;
编辑安全策略配置文件,设置相应的国密算法,包括:非对称密码算法为SM2,密码杂凑算法为SM3,对称密码算法设为SM4;
执行IPSec安全协议的过程,包括:通过GMSSL加载SM2算法实现证书生成与认证;通过接口调用所述硬件加密卡,加载SM3算法实现IPSec的数据摘要的生成,加载SM4算法实现IPSec的对称加密与解密。
如上所述的技术方案,具有以下有益效果:基于开源程序,通过调用硬件密码卡,逻辑克服了IPsec的基础上不便新增密码算法的问题,实现非对称密码算法支持SM2椭圆曲线密码算法、对称密码算法支持SM4分组密码算法、密码杂凑算法支持SM3密码杂凑算法,增加了IPSec VPN算法的安全性。
附图说明
图1为支持国密算法的本发明实施例的IPSec,工作流程及数据流向图。
具体实施方式
下面对本发明的技术方案进行详细叙述。
首先是对IPSec与国家商用密码算法的相关术语进行说明。
IP VPN可以理解为,通过隧道技术在公众网络上仿真一条点对点的专线,隧道是利用一种协议来传输另一种协议的技术。
IPSec是一种工作在IP层的开放标准的框架结构,特定的通信双方之间在IP层经加密和数据摘要等手段,保证网上传输的私密性、完整性、真实性。具体的,IPSec使用对称加密算法加密数据保证私密性;通过对数据进行hash运算产生类似于指纹的数据摘要,防止被篡改,保证数据的完整性;通信双方使用数字签名的公钥与私钥进行身份认证,保证数据的真实性。
要成功建立IPSec VPN 两端必须采用相同的加密算法、hash算法和安全协议等,这就涉及IKE(Internet KeyExchange),第一阶段对通信双方进行身份认证,并在两端之间建立一条安全通道,建立通道的参数:加密算法、hash算法、DH算法、身份认证方法、存活时间等;第二阶段在前述安全通道上协商IPSec参数,按协商好的参数对数据流进行加密、hash等保护。
SM2椭圆曲线密码(非对称)算法和RSA算法都是公钥密码算法,SM2算法是一种更先进安全的算法,在国家商用密码体系中被用来替换RSA算法。随着密码技术和计算机技术的发展,目前常用的1024位RSA算法面临严重的安全威胁,国家密码管理部门经过研究,决定采用SM2椭圆曲线算法替换RSA算法。SM2算法比RSA性能更优更安全,密码复杂度高、处理速度快、机器性能消耗更小。
SM3密码杂凑(哈希、散列)算法是一种密码散列函数标准,在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法为公开,安全性及效率与SHA-256相当。密码散列函数是一种单向函数,也就是说极其难以由散列函数输出的结果,回推输入的数据是什么。这种散列函数的输入数据,通常被称为消息(message),而它的输出结果,经常被称为消息摘要(message digest)或摘要(digest)。在信息安全中,有许多重要的应用,都使用了密码散列函数来实现,例如数字签名,消息认证码。
SM4分组密码(对称)算法,在商用密码体系中主要用于数据加密,其算法公开,分组长度与密钥长度均为128bit。分组加密(英语:Block cipher),又称分块加密或块密码,是一种对称密钥算法,将明文分成多个等长的模块(block),使用确定的算法和对称密钥对每组分别加密解密。分组加密是极其重要的加密协议组成,其中典型的如DES和AES加密算法,应用领域从电子邮件加密到银行交易转帐,非常广泛。
如果要实现IPSec对国密算法的支持,就涉及到算法扩展的问题,算法扩展分两种情况:一是在用户态的算法扩展,即在软件代码中调用原有算法的地方替换成扩展的算法;二是内核态的算法扩展,即在内核中调用算法的地方替换成扩展的算法。
目前,在一些情况下,需要访问USB Key、PCI密码卡和密码机等密码硬件才能实现算法的扩展,例如:处于安全的目的,应用希望在密码硬件中存储私钥并完成私钥相关的计算;
私钥通过密码硬件分发且不能导出硬件,如国密标准中的签名私钥;密码算法仅通过硬件提供,如SM1和SSF33分组密码。另外,密码硬件具有密码算法加速能力,可以降低CPU的负载。
基于以上,本发明的实施例提出一种通过调用硬件加密卡的接口,实现支持国密算法的IPSec。
本发明的实施例采用的OpenSwan是一种开源的IPSec实现方案,支持AES、DES、MD5、SHA、RSA等国际通用加密算法,但尚未支持国家密码局发布的国密算法。
本发明实施例修改OpenSwan源码,在用户态和内核态均调用符合国家标准的硬件密码卡接口,通过硬件密码卡实现国密算法SM4、SM3;而在用户态结合GMSSL,调用在GMSSL中定义的SM2相关的算法接口,实现IPSec使用SM2证书认证进行隧道协商建立。
其中,GmSSL是支持国密算法和标准的OpenSSL分支,支持更多的密码算法,实现了算法与EVP API与命令行工具的集成。
而本实施例中,硬件加密卡的用户态库和内核态驱动由硬件加密卡厂商提供。所述的硬件加密卡可以是每一个加密卡只实现一种算法,不同算法需要调用不同加密卡,也可以是同一个加密卡上实现多种算法,通过接口进行区分,本实施例在此不做限定。
作为本发明的一种优选实施方式,实现支持国密算法的具体实现步骤,包括:
(1)修改用户态pluto程序源码,根据不同的算法类型对应结构以及国家标准的国密算法属性添加SM3、SM4算法声明,再调用算法注册接口ike_alg_add(struct ike_alg* a,bool quiet)注册算法。
(2)在SM3算法结构中的hash_init、hash_update、hash_final分别添加SM3算法的对应接口,调用国家标准的硬件加密卡相关接口SDF_HashInit、SDF_HashUpdate、SDF_HashFinal实现SM3散列算法;
在SM4算法结构中的do_crypt添加SM4算法加解密接口,调用国家标准的硬件加密卡相关接口SDF_ImportKey、SDF_Encrypt、SDF_Decrypt等实现SM4算法的秘钥生成及加解密。
(3)修改内核态源码(本实施例以KLIPS模式实现IPSec,修改的代码为openswan/linux/net/ipsec/目录下),Klips是openswan自带实现IPsec功能的模块,其主要实现数据加解密、安全关联、密钥管理、身份认证等功能,并以.ko模块插入到内核中运行;
添加内核态加解密算法结构ipsec_alg_enc,其中添加内核态散列算法结构auth_alg,其中添加调用硬件加解密接口Kel_SM3_Init、Kel_SM3_Update、Kel_SM3_Final实现SM3散列算法;添加调用硬件加密卡接口Kel_SM4CBCEnc、Kel_SM4CBCDec实现SM4加解密算法。
(4)修改IPSec协商流程中证书认证的部分,添加使用GMSSL中的接口解析SM2证书以及调用SM2_sign和SM2_verify等接口实现SM2证书签名验签功能。需要说明的是,SM2证书由GMSSL工具生成。
通过上述的源码修改后编译安装,配置IPSec隧道环境,使用SM2证书认证,SM4加解密算法、SM3散列算法,能够成功建立隧道并对保护子网的访问数据进行SM4加解密。具体说明如下。
如图1所示,假设每台主机都有处于激活状态的IPSec策略:
(1)本地子网的主机A向对端子网的主机发送消息。
(2)主机A上的IPSec驱动程序检查IP筛选器,查看消息数据包是否需要受保护以及需要受到何种保护;驱动程序通知IKE开始安全协商,对端主机上的IKE收到请求安全协商通知;两台主机进行IKE协商的第一阶段,各自生成共享主密钥(若两个主机在此前通信中已经建立起第一阶段SA,则可直接进行第二阶段SA协商);此处所述的安全协商包括协商IKE安全通道使用的参数,交换对称密钥,进行双方身份认证并建立IKE安全通道,所述交换对称密钥与身份认证通过调用硬件加密卡的相关算法接口(例如分别为SM4算法与SM2算法)实现。
协商第二阶段,包括协商IPSec安全参数、建立IPSec SA,所述的参数包括数据加密算法、摘要算法、封装模式、存活时间、安全协议、SPI等,所述的数据加密算法与摘要算法分别调用硬件加密卡的SM4与SM3实现。一个SA只记录单向的参数,即包括出站SA与入站SA。
(3)主机A上IPSec驱动程序使用出站SA,调用硬件加密卡的算法对数据包进行签名(完整性检查)和/或加密,驱动程序将数据包递交IP层,再由IP层将数据包通过网卡转发至对端主机
(4)对端主机的网卡驱动程序收到数据包并提交给IPSec驱动程序,IPSec驱动程序使用入站SA,调用硬件加密卡的相关算法检查完整性签名与/或对数据包进行解密,将解密后的数据包提交上层TCP/IP驱动程序,再由TCP/IP驱动程序将数据包提交对端主机的接收应用程序。
(5)对端主机发向主机A 的数据,处理方法与上述一致,只是方向相反,在此不再赘述。
通过上述的技术方案,本发明的实施例,实现了既有IPSec对国密算法的扩展支持,保证数据包传输的私密性、完整性与真实性,提高了IPSec建立的便捷和数据处理效率。
Claims (3)
1.支持国家商用密码算法的IPSec实现方法,设置用于逻辑实现国密算法的硬件密码卡,其特征在于,
用户态:调用在GMSSL中定义的SM2算法接口,实现SM2证书认证;根据算法类型结构与属性,添加SM3与SM4算法声明,调用注册接口进行算法注册;在SM3算法结构中添加接口,用于调用国家标准的硬件加密卡,实现SM3算法;在SM4算法结构中添加接口,用于调用国家标准的硬件加密卡,实现SM4算法;
内核态:添加内核态散列算法结构,添加调用硬件加解密接口实现SM3算法;添加内核态加解密算法结构,添加调用硬件加密卡接口实现SM4算法。
2.根据权利要求1所述的IPSec实现方法,其特征在于,所述硬件加密卡具有支持SM3、SM4算法的用户态库和内核态驱动,硬件密码卡加载所述用户态库与内核态驱动,实现相应的算法。
3.根据权利要求2所述的IPSec实现方法,其特征在于,具体包括以下步骤:
在IPSec通信两端分别设置所述硬件加密卡,并且在用户态与内核态的算法结构中添加硬件加密卡的调用接口;
编辑安全策略配置文件,设置相应的国密算法,包括:非对称密码算法为SM2,密码杂凑算法为SM3,对称密码算法设为SM4;
执行IPSec安全协议的过程,包括:通过GMSSL加载SM2算法实现证书生成与认证;通过接口调用所述硬件加密卡,加载SM3算法实现IPSec的数据摘要的生成,加载SM4算法实现IPSec的对称加密与解密。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010433067.XA CN113708933A (zh) | 2020-05-21 | 2020-05-21 | 支持国家商用密码算法的IPSec实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010433067.XA CN113708933A (zh) | 2020-05-21 | 2020-05-21 | 支持国家商用密码算法的IPSec实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113708933A true CN113708933A (zh) | 2021-11-26 |
Family
ID=78645757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010433067.XA Pending CN113708933A (zh) | 2020-05-21 | 2020-05-21 | 支持国家商用密码算法的IPSec实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113708933A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117650951A (zh) * | 2024-01-30 | 2024-03-05 | 北京格尔国信科技有限公司 | 一种基于标识密码算法进行ike认证与协商的方法 |
-
2020
- 2020-05-21 CN CN202010433067.XA patent/CN113708933A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117650951A (zh) * | 2024-01-30 | 2024-03-05 | 北京格尔国信科技有限公司 | 一种基于标识密码算法进行ike认证与协商的方法 |
CN117650951B (zh) * | 2024-01-30 | 2024-05-10 | 北京格尔国信科技有限公司 | 一种基于标识密码算法进行ike认证与协商的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11792169B2 (en) | Cloud storage using encryption gateway with certificate authority identification | |
CA2423636C (en) | Methods for authenticating potential members invited to join a group | |
CN101292233B (zh) | 安全通信协议的拆分式终止 | |
EP3613195B1 (en) | Cloud storage using encryption gateway with certificate authority identification | |
US20070250710A1 (en) | Versatile secure and non-secure messaging | |
US7266705B2 (en) | Secure transmission of data within a distributed computer system | |
US10630466B1 (en) | Apparatus and method for exchanging cryptographic information with reduced overhead and latency | |
WO2005057841A1 (fr) | Procede de production de cryptogramme dynamique dans une transmission de reseau et procede de transmission de donnees de reseau | |
CN116132025A (zh) | 一种基于预置密钥组的密钥协商方法、装置和通信系统 | |
CN115242392A (zh) | 基于安全传输协议实现工业信息安全传输的方法及系统 | |
CN113708933A (zh) | 支持国家商用密码算法的IPSec实现方法 | |
CN112187767A (zh) | 基于区块链的多方合同共识系统、方法及介质 | |
CN115189928B (zh) | 一种密码服务虚拟机动态安全迁移方法及系统 | |
Al-Humadi | Cryptography in Cloud Computing for Data Security and Network Security | |
US12095744B2 (en) | Mutual key management service system and method | |
Marrok et al. | PQH-WireGuard: Post-quantum Hybrid Cryptography-Based WireGuard VPN Protocol | |
CN115314198A (zh) | 一种量子安全网络权限管理系统及方法 | |
Khan et al. | In-Depth Analysis of Cryptographic Algorithms for Cloud-Database Security | |
Zhiyu et al. | Study on security strategy of wireless mobile office system | |
Rayapati et al. | Security in Cloud Technologies: A Brief Overview | |
CN115544583A (zh) | 一种服务器密码机的数据处理方法及装置 | |
CN117714185A (zh) | 一种基于国密算法的银行柜面数据处理方法及系统 | |
JP2004048336A (ja) | データの暗号化,復号機能有する入出力装置、記憶装置及びこれらを含むデータ管理システム | |
CN117675390A (zh) | 一种隐藏式通信控制加密方法、系统及储存介质 | |
CN116827538A (zh) | 一种基于量子密码云的Ukey加密系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20211126 |
|
WD01 | Invention patent application deemed withdrawn after publication |