CN118101208A - 一种支持国密算法的FastDDS安全机制增强方法 - Google Patents

一种支持国密算法的FastDDS安全机制增强方法 Download PDF

Info

Publication number
CN118101208A
CN118101208A CN202410047377.6A CN202410047377A CN118101208A CN 118101208 A CN118101208 A CN 118101208A CN 202410047377 A CN202410047377 A CN 202410047377A CN 118101208 A CN118101208 A CN 118101208A
Authority
CN
China
Prior art keywords
algorithm
openssl
cryptographic algorithm
cryptographic
key
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
CN202410047377.6A
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.)
716th Research Institute of CSIC
Original Assignee
716th Research Institute of CSIC
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 716th Research Institute of CSIC filed Critical 716th Research Institute of CSIC
Priority to CN202410047377.6A priority Critical patent/CN118101208A/zh
Publication of CN118101208A publication Critical patent/CN118101208A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及一种支持国密算法的FastDDS安全机制增强方法,包括:将公钥密码算法SM2向OpenSSL密码库移植,将杂凑密码算法SM3和对称分组密码算法SM4向OpenSSL密码库移植并封装;扩展SSL密钥协商机制,使SSL密码库兼容公钥密码算法SM2;扩展SSL算法转换机制,在OpenSSL的基础上增加对于杂凑密码算法SM3和对称分组密码算法SM4的设定分支;进行身份认证、访问控制和加/解密时,通过OpenSSL生成基于国密算法的密钥及相关证书文件。本发明实现在DDS网络安全通信中完整应用国密算法套件应用层数据提供保密性保障,能够满足当前国产自主化背景下DDS应用对网络安全领域的特殊需求。

Description

一种支持国密算法的FastDDS安全机制增强方法
技术领域
本发明涉及无人集群DDS应用网络通信安全领域,具体涉及一种支持国密算法的FastDDS安全机制增强方法。
背景技术
国密算法是国家商用密码算法的简称。自2012年以来,国家密码管理局以《中华人民共和国密码行业标准》的方式,陆续公布了SM2/SM3/SM4等密码算法标准及其应用规范。
FastDDS提供身份认证、访问控制和加密的安全机制,其过程中通过OpenSSL加密算法生成CA证书、CA签名的身份认证证书、CRL证书吊销凭证和身份认证密钥对本身不支持国密算法。对于某国产JT无人集群下的DDS应用,基于常规密码学的OpenSSL安全性亟待升级,希望引入高强度国密算法对DDS数据进行安全性、完整性保护。SM2公钥密码算法是一种基于ECC椭圆曲线的非对称密码算法,相较于目前应用广泛的RSA非对称密码算法,SM2具有复杂性高、计算量大以及密钥长度短等特点。SM3密码杂凑算法适用于数字签名和验证、消息认证码的生成与验证以及随机数的生成,可以满足多种密码应用的安全需求。SM4分组密码算法,是一种对称加密算法,用于加密保护静态存储和传输信道中的数据,采用加法掩码的方式,以更好抵抗一阶差分功耗分析攻击。
目前,针对国密算法的应用性研究,多数讨论基于国密算法的硬件加密设备的实现及优化,该类设备面向对安全有特殊要求的专业领域。在国产自主可控的背景下,要求进一步保证无人集群网络通信实时安全,克服OpenSSL在SSL协议实现过程中存在的设计漏洞,为国产军备应用营造安全完整高效的网络信息环境。
发明内容
本发明的目的在于提供一种支持国密算法的FastDDS安全机制增强方法,在不影响其本身功能的条件下,兼容国密算法,保证无人集群下DDS应用网络通信安全可靠。
实现本发明目的的技术解决方案为:
一种支持国密算法的FastDDS安全机制增强方法,面对当前国产自主可控背景的要求,为有效应对国产JT无人集群DDS应用在网络安全方面面临的风险,基于国密算法对OpenSSL进行改进优化,为无人集群下DDS应用提供更加有力的安全机制,通过该增强方法,DDS应用可生成基于国密算法的密钥对、权限令牌和证书等,安全性得到进一步增强,具体步骤为:
将公钥密码算法SM2向OpenSSL密码库移植,将杂凑密码算法SM3和对称分组密码算法SM4向OpenSSL密码库移植并封装;
OpenSSL密钥协商机制扩展,使OpenSSL密码库兼容SM2公钥密码算法;
OpenSSL算法转换机制扩展,在OpenSSL原有结构的基础上增加对于SM3杂凑算法以及SM4分组密码算法的设定分支
FastDDS自身安全机制在进行身份认证、访问控制和加/解密时,调用改进后的OpenSSL,生成基于国密算法的CA证书、X509证书和CRL,安全机制得到增强。
进一步地,公钥密码算法SM2向OpenSSL密码库移植具体包括:根据OpenSSL公钥密码算法源码文件结构,定义具有特定结构的接口函数作为导出函数,导出函数在SSL握手协议执行过程中被调用,用于通信双方进行身份认证以及密钥协商;
所述的SM2算法向OpenSSL移植时遵循OpenSSL统一代码标准,提供在命名格式、函数功能方面符合标准的接口。
进一步地,将杂凑密码算法SM3向OpenSSL密码库移植并封装,具体包括:根据OpenSSL杂凑密码算法源码文件结构,定义具有特定结构的接口函数作为导出函数,导出函数在SSL记录层协议执行过程中被调用,用于对通讯数据进行MAC校验;
所述的SM3算法向OpenSSL移植时遵循OpenSSL统一代码标准,提供在命名格式、函数功能方面符合标准的接口;
对于所述SM3算法所涉及的某一具体杂凑密码算法,例如MD2、MD4、SHA1等,使用标准化的EVP接口函数替换原有接口,达到简化密码算法使用方式的目的,实现相关杂凑计算。
进一步地,将对称分组密码算法SM4向OpenSSL密码库移植并封装,具体包括:根据OpenSSL分组密码算法源码文件结构,定义具有特定结构的接口函数作为导出函数,导出函数在记录层协议执行过程被调用,用于对通讯数据进行加/解密操作;
所述的SM4算法向OpenSSL移植时遵循OpenSSL统一代码标准,提供在命名格式、函数功能方面符合标准的接口;
对于所述SM4算法所设计的某一具体分组密码算法,例如AES、DES、3DES等,通过接口映射技术,使用标准化的EVP接口函数替换原有接口,进行加/解密计算。
进一步地,对OpenSSL握手协议框架中密钥协商进行功能扩展优化,满足SM2椭圆密码算法在密钥协商过程中的数据通信需求,具体包括:对OpenSSL原有框架服务器端接口函数进行功能扩展,增加SM2密钥协商算法分支结构,在该分支下生成客户端所需的SM2密钥协商材料;对客户端接口函数进行扩展优化,提取SM2密钥协商材料。
进一步地,对密码算法转换接口进行功能扩展,使客户端/服务器在执行密码算法转换机制时,达到在SSL记录层通信时兼容国密算法的目的;具体包括,在原有结构的基础上增加对于SM3杂凑算法的设定分支,在算法协商期间,通信双方约定使用SM3算法作为后续通信中的数据杂凑算法;
在原有的基础上增加对于SM4分组密码算法的设定分支,通信双方约定使用SM4算法作为后续通信中的分组密码算法。
与现有技术相比,本发明的有益效果为:
1.可移植性强,对称分组密码算法SM4和杂凑密码算法SM3以独立编译模块形式存在,可被独立编译运行,公钥密码算法SM2以独立编译模块形式存在,可独立编译,但运行时需其他运算库支持;合理修改编译选项或相关编译文件,可以按照OpenSSL密码算法编程标准进行相应实现,即可完成国密算法向OpenSSL密码算法库的移植;
2.兼容性好,在不影响FastDDS原有功能的情况下,OpenSSL密码算法库兼容国密算法,DDS应用可生成基于SM2算法的密钥对及相关证书,并在数据传输中通过SM4算法进行加/解密。
附图说明
图1为国密算法移植OpenSSL密码库方法步骤示意图。
图2为SM2密钥协商执行示意图。
图3为OpenSSL密码算法转换流程示意图。
具体实施方案
下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
面对当前国产自主可控背景的要求,为有效应对国产JT无人集群DDS应用在网络安全方面面临的风险,本实施例基于国密算法对OpenSSL进行改进优化,为无人集群下DDS应用提供更加有力的安全机制,通过该增强方法,DDS应用可生成基于国密算法的密钥对、权限令牌和证书等,安全性得到进一步增强,本实施例改进的一种支持国密算法的FastDDS安全机制增强方法,包括如下步骤:
步骤S101:SM3杂凑算法的实现和EVP封装,所述步骤实现过程如下:
依照OpenSSL源码结构和命名规则,可以将SM3算法按照不同的算法名进行相应的替换,并在.h文件中声明接口函数作为导出接口。在计算过程中,根据输入数据的长度,会多次调用压缩函数分段计算输入数据的杂凑值,定义sm3.h用于保存上下文情境的数据结构SM3_CTX,并声明导出接口函数;在sm3_dgst.c和sm3_locl.h中定义非导出函数,为导出函数提供底层运算支持。OpenSSL通过接口映射技术,实现标准化的EVP接口函数替换某一具体杂凑算法原有接口,进行相关杂凑计算的目的。EVP_MD_CTX数据结构用于替换SM3_CTX作为EVP标准杂凑计算上下文结构,定义于evp.h文件中;EVP_MD数据结构用于向EVP标准化框架提供某一密码的算法底层数据及相关函数的访问接口,定义于evp.h文件中;SM3杂凑算法各个可导出接口函数EVP封装实现如下:SM3_Init实现向EVP接口函数EVP_DigestInit的映射;SM3_Update实现向EVP接口函数EVP_DigestUpdate的映射;SM3_Final实现向EVP接口函数EVP_DigestFinal的映射。
步骤S102:SM4对称分组密码算法的实现和EVP封装,所述步骤实现过程如下:
对于SM4分组密码算法,将SM4算法按照不同的算法名进行相应的替换,并在.h文件中声明接口函数作为导出接口。定义结构体SM4_KEY,用于在SM4分组密码算法在计算过程中保存当前的轮密钥,定义于sm4.h文件中。在sm.h文件中声明可导出接口函数,SM4 setencrypt_key利用密钥派生函数派生加密轮密钥,SM4 set decrypt_key派生解密轮密钥;SM4_ecb_encrypt采用电子密码本加/解密模式对输入数据进行加/解密操作,运算结束后输出加/解密结果;SM4_cbcencrypt采用密码分组链接模式对输入数据进行加/解密操作。非导出函数定义于sm4_locl.h文件中,为可导出函数提供底层运算支持。对于对称分组密码算法,OpenSSL同样使用EVP标准化接口替代原有接口,进行数据加/解密计算。EVP_CIPHER_CTX数据结构用于保存当前对称分组密码的相关数据,如算法密钥、轮密钥、算法加密模式、块掩码以及初始向量等,定义于evp.h文件中;EVP_CIPHER使上层EVP框架访问任意指定分组密码算法底层数据及相关函数接口。
步骤S103:SM2椭圆密码算法(公钥密码算法)移植,所述步骤实现过程如下:
OpenSSL中公钥密码算法在实现过程中并未遵循一个标准,但依旧可以依照不同的算法名进行替换,并在.h文件中声明接口函数作为导出接口,在SSL握手协议执行过程中被调用,用于通信双方进行身份认证以及密钥协商等操作。在SM2实现过程中,选择OpenSSL本身提供的大数运算库和椭圆曲线运算库作为运算支持。EC_KEY数据结构用于保存通信方的椭圆曲线密钥数据,SM2_SIG数据结构用于保存目标消息的数字签名数据。SM2椭圆曲线算法在SSL握手协议执行过程中,主要作为密钥协商算法辅助C/S进行共享密钥计算,也提供数字签名/验证相关功能,其可导出接口函数包括:SM2_sign用于计算给定长的的数据杂凑值的数字签名,完成计算后输出相应的数字签名;SM2_verify用于验证给定的数字签名的正确性;SM2_Exc_key用于计算共享密钥,完成密钥协商。非导出函数定义于sm2_locl.h文件中,为可导出函数提供底层运算支持。
步骤S104:SSL密钥协商机制扩展,S104所述步骤实现过程如下:
对OpenSSL握手协议框架中密钥协商进行功能扩展优化,SM2椭圆曲线算法在密钥协商过程中,通信双方需要交换的信息有服务器公钥PS,服务器随机密钥RB,客户端公钥PC,客户端随机密钥RA。OpenSSL原有框架可满足服务器/客户端对数字证书的收/发任务,对于服务器公钥PS,仍以数字证书的形式进行通信;对于服务器随机密钥RB,按照OpenSSL设计规范以及SM2密钥协商协议规定,客户端需在服务器之前完成共享密钥的计算,因此对服务器端接口函数ssl3_send_serverkey_exchange进行功能扩展,即增加SM2密钥协商算法分支结构,在该分支下服务器可生成客户端所需的SM2密钥协商材料,并通过相应消息将之发送给客户端。除此之外,在具体实现技术方面,利用switch.case结构替换原有if-else分支结构,以此减少分支匹配计算次数,提高接口匹配效率;对客户端接口函数ssl3_get_key_exchange进行扩展优化,使之可以从server KeyExchange消息中提取SM2密钥协商材料;对于客户端公钥PC,OpenSSL原有框架即可满足客户端公钥Pc的发送任务;对于客户端随机密钥RA,对客户端接口函数ssl3_send_client_key_exchange以及服务器接口函数ssl3_get_client_key_exchange采取类似服务器随机密钥RB的方法,故不再赘述。至此,通过上述接口扩展,使SSL握手协议框架满足SM2密钥协商算法中数据通信需求,OpenSSL兼容SM2算法。
步骤S105:SSL算法转换机制扩展,S105所述步骤实现过程如下:
在OpenSSL原有结构的基础上增加对于SM3杂凑算法以及SM4分组密码算法的设定分支,使通信双方在后续通信过程中使用SM3算法作为数据杂凑算法,使用SM4算法作为分组密码算法,为通信双方设定指定的密码算法以及相关密码算法的读写密钥。在对原机制进行功能扩展的同时,使用switch-case结构代替原接口中的if-else分支结构,是指具有更好的分支匹配性能。至此,OpenSSL可以实现在SSL网络安全通信中兼容SM3杂凑算法和SM4分组密码算法。
步骤S106:FastDDS通过改进OpenSSL生成基于国密算法的密钥和相关证书文件,所述步骤实现过程如下:
FastDDS中实现身份验证的插件为“DDS:Auth:PKI-DH”,通过CA和ECDSA执行相互身份验证的数字签名算法,同时还使用椭圆曲线算法密钥协议建立共享密钥;实现访问控制的插件为“DDS:Access:Permissions”,该插件需要三个由OpenSSL创建的文档进行配置。因此,FastDDS通过改进OpenSSL会生成基于国密算法的密钥及相关证书文件,保证数据传输更加安全可靠。
一种计算机装置,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现所述方法的步骤。
本发明通过对国密算法向OpenSSL密码库的移植以及基于OpenSSL的SSL协议框架源码改进协议握手、记录等阶段的机制,对原有的框架进行扩展优化,在不影响其本身功能的条件下,兼容国密算法。通过上述手段,FastDDS的安全机制方面,在进行身份验证、访问控制和加密过程中,通过OpenSSL生成基于国密算法的密钥对及相关证书文件,进一步保证无人集群下DDS应用网络通信安全可靠。
本发明从密码学算法的角度提高OpenSSL安全性能,具体表现为FastDDS可调用改进OpenSSL生成基于国密算法的密钥对及相关证书文件,可实现在DDS网络安全通信中完整应用国密算法套件应用层数据提供保密性保障,能够满足当前国产自主化背景下DDS应用对网络安全领域的特殊需求。

Claims (10)

1.一种支持国密算法的FastDDS安全机制增强方法,其特征在于,包括:
将公钥密码算法SM2向OpenSSL密码库移植,将杂凑密码算法SM3和对称分组密码算法SM4向OpenSSL密码库移植并封装;
扩展OpenSSL密钥协商机制,使OpenSSL密码库兼容公钥密码算法SM2;
扩展OpenSSL算法转换机制,在OpenSSL的基础上增加对于杂凑密码算法SM3和对称分组密码算法SM4的设定分支;
进行身份认证、访问控制和加/解密时,通过OpenSSL生成基于国密算法的密钥及相关证书文件。
2.根据权利要求1所述的一种支持国密算法的FastDDS安全机制增强方法,其特征在于,将公钥密码算法SM2向OpenSSL密码库移植具体包括:根据OpenSSL公钥密码算法源码文件结构,定义满足OpenSSL标准的接口函数作为导出函数,导出函数在OpenSSL握手协议执行过程中被调用,用于通信双方进行身份认证以及密钥协商。
3.根据权利要求1所述的一种支持国密算法的FastDDS安全机制增强方法,其特征在于,将杂凑密码算法SM3向OpenSSL密码库移植并封装具体包括:根据OpenSSL杂凑密码算法源码文件结构,定义满足OpenSSL标准的接口函数作为导出函数,导出函数在OpenSSL记录层协议执行过程中被调用,用于对通讯数据进行MAC校验;通过接口映射,使用标准化的EVP接口函数替换OpenSSL中某一杂凑算法的原有接口。
4.根据权利要求1所述的一种支持国密算法的FastDDS安全机制增强方法,其特征在于,将对称分组密码算法SM4向OpenSSL密码库移植并封装具体包括:根据OpenSSL对称分组密码算法源码文件结构,定义满足OpenSSL标准的接口函数作为导出函数,导出函数在OpenSSL记录层协议执行过程被调用,用于对通讯数据进行加/解密操作;通过接口映射,使用标准化的EVP接口函数替换OpenSSL中某一对称分组密码算法的原有接口,进行加/解密计算。
5.根据权利要求1所述的一种支持国密算法的FastDDS安全机制增强方法,其特征在于,扩展OpenSSL密钥协商机制,使OpenSSL密码库兼容公钥密码算法SM2具体包括:对OpenSSL框架服务器端接口函数进行功能扩展,增加公钥密码算法SM2分支结构,在该分支下生成客户端所需的SM2密钥协商材料;对客户端接口函数进行扩展,提取公钥密码算法SM2密钥协商材料。
6.根据权利要求1所述的一种支持国密算法的FastDDS安全机制增强方法,其特征在于,扩展OpenSSL算法转换机制,在OpenSSL的基础上增加对于杂凑密码算法SM3和对称分组密码算法SM4的设定分支,具体包括:在OpenSSL的基础上增加对于SM3杂凑算法的设定分支,在算法协商期间,通信双方约定使用SM3算法作为后续通信中的数据杂凑算法;在OpenSSL的基础上增加对于SM4分组密码算法的设定分支,通信双方约定使用SM4算法作为后续通信中的分组密码算法。
7.根据权利要求5或6所述的一种支持国密算法的FastDDS安全机制增强方法,所述分支采用switch分支结构。
8.根据权利要求1所述的一种支持国密算法的FastDDS安全机制增强方法,其特征在于,所述证书文件包括CA证书、X509证书和CRL。
9.一种计算机装置,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-8任一所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-8任一所述方法的步骤。
CN202410047377.6A 2024-01-11 2024-01-11 一种支持国密算法的FastDDS安全机制增强方法 Pending CN118101208A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410047377.6A CN118101208A (zh) 2024-01-11 2024-01-11 一种支持国密算法的FastDDS安全机制增强方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410047377.6A CN118101208A (zh) 2024-01-11 2024-01-11 一种支持国密算法的FastDDS安全机制增强方法

Publications (1)

Publication Number Publication Date
CN118101208A true CN118101208A (zh) 2024-05-28

Family

ID=91162158

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410047377.6A Pending CN118101208A (zh) 2024-01-11 2024-01-11 一种支持国密算法的FastDDS安全机制增强方法

Country Status (1)

Country Link
CN (1) CN118101208A (zh)

Similar Documents

Publication Publication Date Title
CN110933108B (zh) 基于区块链网络的数据处理方法、装置、电子设备及存储介质
CN110784491B (zh) 一种物联网安全管理***
CN109510708B (zh) 一种基于Intel SGX机制的公钥密码计算方法和***
CN105812141B (zh) 一种面向外包加密数据的可验证交集运算方法及***
EP2095288B1 (en) Method for the secure storing of program state data in an electronic device
CN109274503A (zh) 分布式协同签名方法及分布式协同签名装置、软盾***
US10880100B2 (en) Apparatus and method for certificate enrollment
CN104580189A (zh) 一种安全通信***
CN110889696A (zh) 一种基于sgx技术的联盟区块链秘钥存储方法、装置、设备及介质
CN110050437A (zh) 分布式证书注册的装置和方法
CN109547208B (zh) 金融电子设备主密钥在线分发方法及***
CN111181723B (zh) 物联网设备间离线安全认证的方法和装置
CN114697040B (zh) 一种基于对称密钥的电子签章方法和***
CN116132043B (zh) 会话密钥协商方法、装置及设备
CN103457742A (zh) 一种基于usb key的安全套件库***
CN108718233A (zh) 一种加密方法、计算机设备及存储介质
CN109450620A (zh) 一种移动终端中共享安全应用的方法及移动终端
CN117081736A (zh) 密钥分发方法、密钥分发装置、通信方法及通信装置
CN116886356B (zh) 一种芯片级透明文件加密存储***、方法及设备
CN114205082B (zh) 一种读写器与电子标签的双向身份认证方法及设备
CN118101208A (zh) 一种支持国密算法的FastDDS安全机制增强方法
CN113422753B (zh) 数据处理方法、装置、电子设备及计算机存储介质
CN114124403A (zh) 实现设备远程控制的方法、装置和***
CN111651788B (zh) 一种基于格密码的终端访问控制***及方法
CN114244509A (zh) 使用移动终端进行sm2一次一密双向认证开锁的方法

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