收藏 分销(赏)

基于GMSSL公共库应用的测试研究.pdf

上传人:自信****多点 文档编号:2083456 上传时间:2024-05-15 格式:PDF 页数:5 大小:2.46MB
下载 相关 举报
基于GMSSL公共库应用的测试研究.pdf_第1页
第1页 / 共5页
基于GMSSL公共库应用的测试研究.pdf_第2页
第2页 / 共5页
基于GMSSL公共库应用的测试研究.pdf_第3页
第3页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、Microcomputer Applications Vol.39,No.10,2023文章编号:10 0 7-7 57 X(2 0 2 3)10-0 17 6-0 5开发应用基于GMSSL公共库应用的测试研究微型电脑应用2 0 2 3年第39 卷第10 期常卫1,浮明军1,徐亚超,黄显果1,刘静静1(1.许继电气股份有限公司,河南,许昌46 10 0 0;2.许继电源有限公司,河南,许昌46 10 0 0)摘要:国家电网公司新一代变电站二次系统系列技术规范DL/T860通信报文技术规范中要求具备国密TLS协议通信功能,加解密算法和数据安全传输为该通信装置的核心。因此,文章首先阐述了TLS通信

2、机制及国密SM2、SM 3、SM 4算法;其次,从功能封装实现的角度对源代码进行了测试环境搭建,按照自主可控新一代变电站二次系统技术规范通用类系列规范6二次设备安全防护对数据安全、通信安全的要求设计了测试项目及测试方法。结果表明,GMSSL库函数的调用漏洞,将会导致TLS通信初始化时证书与私钥匹配错误、不加密的私钥文件与P12文件对密码的错误使用,库函数输入参数的异常传入将导致加解密与预期不符等问题。对不同长度数据加解密速度研究也为GMSSL库在Windows平台上的时间消耗提供了一定的参考。关键词:GMSSL库;国密算法;TLS通信;加解密中图分类号:TP391Testing Researc

3、h Based on Application of GMSSL Public LibraryCHANG Weil,FU Mingjun,XU Yachao,HUANG Xianguo,LIU Jingjing(1.XJ Electricity Co.,Ltd.,Xuchang 461000,China;2.XJ Power Co.,Ltd.,Xuchang 461000,China)Abstract:In accordance with the technical specification DL/T860 of new generation substation secondary syst

4、em for communi-cation,device must have national secret algorithm and TLS communication.Secret algorithms and secure data transmission arethe core of the device.Firstly,we expound the TLS communication mechanism and SM2,SM3 and SM4 algorithms.Secondly,a test environment is built based on the perspect

5、ive of function encapsulation.According to General Series Specification 6 andSecondary Equipment Security Protection of Technical Specification,test items and test methods for the requirements of datasecurity and communication security are designed.The results show that the call vulnerability of the

6、 GMSSL library functionmay lead to the incorrect matching of the certificate and the private key during the initialization of TLS communication,thewrong use of the password between the unencrypted private key file and the P12 file.The abnormal input for input parametersof the library function may ca

7、use problems such as encryption and decryption that are not as expected.The research on thespeed of data encryption and decryption with different lengths also provides a certain reference for the time consumption of theGMSSL library on the Windows platform.Key words:GMSSL database;national secret al

8、gorithm;TLS communication;encryption and decryption0引言随着电力行业安全性标准的提高,基于GMSSL库的应用已经成为基础设施的一部分。SSL/TLS协议可以有效保证通信I的机密性。鉴于SSL/TLS安全协议的通信重要性及广泛性,针对TLS协议实现及国密算法的安全审查漏洞检测及应用研究已成为了热点。目前研究的已知漏洞,包括BEAST攻击、BREACH攻击、CRIME攻击等,相关研究发现开源工具testssl.sh能够检测出这些漏洞2-3;基于图像密文重构与卷积神经网络-5等手段的分析方法,对主流密码作者简介:常卫(198 4一),女,硕士,高级

9、工程师,研究方向为系统软件的白盒测试技术;浮明军(198 2 一),男,本科,高级工程师,研究方向为智能变电站保护产品测试技术;徐亚超(198 3一),男,硕士,工程师,研究方向为电动汽车换电技术;黄显果(198 1一),男,本科,高级工程师,研究方向为系统软件的白盒测试技术;刘静静(198 7 一),女,硕士,工程师,研究方向为系统软件的白盒测试技术。文献标志码:A算法的密文随机性进行了分析,这也为TLS密码套件选择与加密流量的深层分析提供了参考;对SM2加密算法的核心加密流程6 进行优化,在不影响算法安全性的前提下,提出基于优化的SM2国密算法替换ECDSA公钥签名算法的区块链设计;区块链

10、技术结合签名密钥算法7 提高电子存证数据的安全性。以上都是对TLS协议实现库存在的安全漏洞、国密算法优化等方面进行的相关研究,但GMSSL库中的接口实现只是对核心功能进行了设计,目前业界对公用接口的封装使用漏洞缺乏相关研究分析,因此本文的研究很有必要性。.176.Microcomputer Applications Vol.39,No.10,20231TLS通信实现机制1.1 TLS 简介TLS(安全传输层),TLS8101是建立在传输层TCP协议之上的协议,服务于应用层,它的前身是SSL(安全套接字层),实现了将应用层的报文进行加密后再交由TCP进行传输的功能。应用层TCP层图1TLS通信层

11、1.2通信机制TLS通信机制可以分为两步11I:服务器端和客户端进行“握手”,身份验证通过后分别生成对称密钥;客户端使用对称密钥加密,服务端使用对称密钥解密,双方通过“对称密钥”进行加密通信。可以细分为四步:1)客户端向服务器发送TLS协议的版本号、一个随机数A、以及所支持的加密算法(如RSA)。2)服务器确认是否支持客户端发送的TLS协议版本,同时给出数字证书(包含服务器的公钥)以及一个随机数B。3)客户端验证数字证书有效后,生成一个新随机数C,并且使用证书中的公钥加密此随机数,最后将加密后的随机数发送到服务器。4)服务器使用自已的私钥解密被加密后的随机数C,使用加密算法对随机数A、B、C

12、进行加密,生成对称密钥。客户端使用同样的加密算法生成与服务器相同的对称密钥。SSL/TLS协议本身的复杂性为应用者增加了负担,为了减轻开发者的负担及防范由代码缺陷导致的安全风险,SSL/TLS协议实现细节通常被封装在 OpenSSL,NSS等开源软件库中。而国密算法12-13是国家密码局制定标准的一系列算法,其中包括SM2椭圆曲线非对称加密算法SM3杂凑算法、SM4L14-15对称加密算法。1.3本文工作GMSSL是支持国密算法和标准的OpenSSL分支,增加了对国密SM2/SM3/SM4算法和ECIES、C PK、ZU C 算法的支持。GMSSL库对TLS协议通信、国密算法的核心功能进行了封

13、装,应用者只需要调用提供的接口即可实现所需的功能。本文首先介绍了TLS通信机制及被测软件功能,重点阐述了基于被测软件设计的软件测试框架,最后对GMSSL库提供的SM2、SM 3、SM 4国密算法及常规的数字证书操作接口、TLS通信接口进行的二次封装软件进行了测试,发现对GMSSL库函数的调用漏洞,将会导致TLS通信初始化错误、加解密错误等问题。本文的研究对于正确实现TLS加密通信具有重要的参考意义。2测试环境搭建二次封装完毕后,需要确认功能、性能、效率及内存等是否满足要求。此时,测试就是重要的保障环节。功能测试用于确保接口实现的全面性及功能正确性;性能测试用于考核开发应用加解密速度能力;内存测

14、试主要考核最大资源消耗情况。应设计测试驱动测试上述项目符合相关标准或要求。2.1静态测试环境测试环境搭建要从静态测试和动态测试两方面考虑。静态测试主要通过checkmarx、C o Bo t 和fortify、p o ly s p a c e 等工具按照源代码编译环境、工具配置要求及选择编码规则对静态测试环境进行搭建。测试工具通过扫描源代码分析程应用层序的系统结构、数据结构、数据接口、内部控制逻辑等内部结TLS层构并形成扫描结果报告文件,测试员阅读报告文件检查代码中那些违反编码规则的地方是否存在潜在的风险。此次测TCP层试是对于接口的静态扫描,对于公共库的源码部分未能检测到,所以静态测试结果只

15、是表明在接口二次封装源代码中的一些变量定义未使用、变量未初始化等编码规范问题,其他安全性问题本次不进行研究。2.2动态测试环境如图2 所示,TLS通信软件测试框架主要包括客户端测试驱动和服务器端测试驱动2 个大模块。通过设计客户端和服务端测试驱动,调用GMSSL库中相关接口实现通信。客户端驱动实现包括通信初始化(初始化socket、读取CA证书、客户端证书、客户端私钥、网络初始化)、连接服务器、发送/接收数据、通信反初始化(释放资源)。服务器客户端7初始化初始化启动初始化初始化网络socketTLS环境监听socketTLS环境初始化接受客户端TCP连接与服务器建立TCP连接创建TLS连接创建

16、TLS连接TCP套接字与TCP套接字与TLS套接字连接TLS套接字连接接受TLS连接发起TLS连接交换数据,秘钥重协商关闭连接,释放资源关闭连接,释放资源图2 测试驱动软件框架服务器端驱动实现包括初始化服务器网络(初始化网络环境、初始化TLS环境)、启动监听、接收tcp连接-创建tls连接-接受tls连接、接收客户端数据、定时发送数据。通信效果如图3所示。GITLSDEBUGset sm2 signing privatekeyICITLS DEBU set sm2 signing certificateaccept a client TCPconnectLSaccepttsuccess,len

17、:9111111111111111111111111er11111enlen(a)服务器端图3TLS通信效果图.177.微型电脑应用2 0 2 3年第39 卷第10 期CMTLS_DEBUc setsm2 signing privatekeyserverip.:127.0.0.1GMTLS_DEBUGset sm2 signing certificateindex:0TCP connect serverClose_Server_Connect.tis_ssl is UL,not shutdowm and freeIcPconnectserverTCPconnect success!connec

18、t success!N11111111N11111111111111111111111ENDLenRECVLen1111(b)客户端Microcomputer Applications Vol.39,No.10,20233功能测试及效果基于上述软件测试框架的动态测试主要对接口的功能实现正确性、功能实现的完备性、是否存在内存泄漏等进行测试。各类功能的测试项目如表1表3所示。表1TLS通信测试项目接口测试项1、加载证书的正确性TLS客户2、读取私钥文件(加密/不加密)的正确性端、服务端3、证书与私钥不匹配时初始化初始化4、私钥不正确时初始化5、证书不存在或错误时初始化1、采用ca签名的证书连接TL

19、S连接2、采用不是ca签名的证书连接3、无效的SSL_LINK连接1、不同数据长度数据发送TLS发送、2、不同数据长度数据接收接收3、异常输人接口函数的处理TLS重1、客户端设置重协商条件时进行重协商协商2、服务端设置重协商条件时进行重协商TLS多端1、一个客户端连接多个服务端通信正确性通信2、一个服务端接收多个客户端连接时通信正确性表2 读证书接口测试项目接口测试项1、读PEM格式文件(带密码和不带密码)读私钥2、输人为空指针或数据为0 时程序的处理文件3、不带密码文件输人密码程序能否异常处理4、其他格式的私钥文件能否读取1、读取其他格式证书文件读证书文2、读取PEM/der格式证书文件件公

20、钥3、异常输人接口函数的处理1、异常输人接口函数的处理读P12证2、读取不带/带密码的P12证书书文件3、不带密码文件输人密码程序能否异常处理1、验证错误的证书链验证证2、验证正确的证书链书链3、异常输人接口函数的处理3.1TLS通信测试通过场景测试法设计测试用例对TLS通信进行接口功能验证。TLS通信初始化阶段,需要进行客户端或服务端的证书验证、证书是否与私钥匹配、私钥是否正确等操作。当加载经CA签发但不匹配的证书与私钥文件时,先加载证书进行证书验证,然后加载私钥检查私钥正确性,最后进行证书与私钥匹配性检查,预期实现功能是证书与私钥不匹配。通过测试发现,若按如上步骤操作,匹配性检查的结果是私

21、钥不正确,没有正确实现匹配性检查的功能。开发应用接口SM2签名2、正确的密钥对对数据签名3、异常输人接口函数的处理1、对错误的签名验签SM2验签2、对正确的签名验签3、异常输入接口函数的处理1、大数据量杂凑值分次计算SM3摘要2、小数据量杂凑值计算计算3、异常输入接口函数的处理SM4加密、1、异常输人接口函数的处理解密2、各模式下加密、解密修改接口调用先后顺序如下。先检查私钥正确性,在保证私钥文件正确的前提下进行证书与私钥的匹配性检查,此操作的表现能够正确实现匹配性检查的功能要求。3.2读证书接口的测试通过设计测试用例对读证书接口进行调用,测试项目覆盖了表2 中的内容,通过测试发现很有价值的问

22、题。对于加密的P12证书文件和加密的私钥文件,在解析这两种文件时,库函数的处理方式是不一样的。读私钥文件,文件解析之前就可以知道是否需要密码,如果不需要就直接丢弃输入的密码;读P12文件时,无法区分该类文件是否需要密码,所以在给一个不加密的P12文件输入密码时密码就使用了。对不加密的P12证书接口进行封装时,务必采取相应措施确保密码为空,否则当用户调用该接口输入密码会引起功能的错误实现。3.3加密算法的测试通过设计测试用例对SM2、SM 3、SM 4算法进行测试,通过测试发现,对于 SM4加密,当加密模式为CFB和OFB时,若在调用 ssl库函数EVP_sms4_cfb()和EVP_sm4_o

23、fb()时数据长度传人为0(异常调用),库函数仍能成功加密。若封装该库函数时没有考虑此情况,将会实现错误的功能。4性能测试及效果基于测试框架,设计多次调用加密算法接口并自动统计平均耗时。加解密算法在不同的应用平台,计算能力差别较大,没有统一标准,以下记录均在Win1064位操作系统,i7-9700CPU,3.0 G H z 处理器上进行测试,针对SM2、SM3、SM4加解密接口,分别统计调用10 0 0 0 次、10 0 0 0 0 次的平均耗时,结果如表4表6 所示。测试结果表明:SM2签名、SM2验签在调用10 0 0 0 次和调用10 0 0 0 0 次时的平均耗时均比较稳定,说明SM2

24、算法在对消息进行签名和验签时不受次数的影响,同时被签名的消息长度对签名和验签速度的影响也是不存在的。但从上述结果中可以看出,SM2签名平均耗时几乎是SM2验签的2倍,原因在于SM2签名和SM2验签的算法复杂度的不同,.178.微型电脑应用2 0 2 3年第39 卷第10 期表3SM2/SM3/SM4测试项目测试项1、不匹配的密钥对对数据签名Microcomputer Applications Vol.39,No.10,2023测试点数据长度810000/1000006410000/100.000签名5121024864验签5121024.8签名十64验签5121024在签名过程中,R、S值和椭

25、圆曲线点计算占用了大量的时间资源。表5是不同长度消息SM3摘要计算的平均耗时测试结果,从该结果可以看出,随着消息长度的增大,消息摘要计算平均耗时逐渐增多;对于同一消息,单次计算和分次计算杂凑值的时间开销存在着很大的差别,如当消息长度为10 2 4Byte时,分512 次计算和单次计算的耗时差达到了10 us,而对于同一消息相同长度的杂凑值分次计算,调用10.0 0 0 次和调用100000次的平均耗时却几乎无差别,也同时验证了该算法比较稳定。表5不同长度数据SM3分次计算速度测试点数据长度分次次数调用次数8184886416432SM364摘要512512512102410241024表6 为

26、SM4对于不同长度的消息进行加解密速度测试结果,可以看出,随着数据长度的增大,加解密的耗时也逐渐增多,当数据长度为10 2 4Byte时,耗时达到了2 6 s,说明消息长度对于算法的影响较大。5总结随着配电信息数据规模的逐渐增大,对数据安全性的要开发应用表4SM2签名/验签速度次数10000/10000010000/10000010000/100.00010000/10000010000/10000010000/100.00010000010000010000010000010000/10000010.000/10000010000/10000010000/10000010000/100000

27、6410000/100000110000/10000025610000/10000051210000/100000110.000/10000051210.000/100000102410000/100000微型电脑应用2 0 2 3年第39 卷第10 期表6 SM4加解密计算速度平均耗时单位7.092/7.302ms7.285/7.315ms7.289/7.374ms7.414/7.383ms3.237/3.444ms3.389/3.348ms3.423/3.478ms3.415/3.449ms10.769ms10.793ms10.677ms10.840ms平均耗时单位3/23/33/35/4

28、6/56/617/1622/2227/2731/3142/4151/51平均耗时测试点数据长度次数(加密/解密)810000064100000ECB5121024864CBC512SM41024加密864CFB5121024864OFB5121024求越来越高,安全通信的正确实现及数据加解密速度是电网数据交互的重要指标。本文通过对GMSSL库的二次封装程序进行测试,发现对 GMSSL库中公用接口不能够正确调用时,可能会造成功能实现的不正确;通过对加解密速度进行分析,为国密算法对不同数据长度的加密通信提供了资源消耗的参考。本文对GMSSL库中的部分接口在实现加密通信过程us中的封装使用方法提出了

29、建议,设计的测试环境和测试用例只能覆盖一些基本功能的测试,仍需继续深化开发研究测试方法,进一步拓展测试深度。usuSuS179.单位3/2uS4/410000014/1410000021/251000003/31000005/410000014/1410000023/241000003/31000004/410000014/1410000023/231000003/21000004/410000014/1410000024/26参考文献1张博.TLS/SSL漏洞分析与检测JJ.河南科技,2 0 2 0,39(26):23-25.2 何博远,逻辑漏洞检测与软件行为分析关键技术研究D.杭州:浙江大

30、学,2 0 18.3陈兴蜀,蒋超,王伟,等.针对虚拟可信平台模块的国密算法扩展技术研究J.工程科学与技术,2 0 2 0,52(3):141-149.C4郭帅,程光.TLS密码套件的流量数据随机性分析J.北京航空航天大学学报,2 0 2 2,48(2):2 91-30 0.5王旭,陈永乐,王庆生,等.结合特征选择与集成学习的密码体制识别方案J.计算机工程,2 0 2 1,47(1):139-145.6 杨宏志,袁凌云,王舒.基于SM2国密算法优化的区块链设计J.计算机工程与设计,2 0 2 1,42(3):uSususuSusuSSuSMicrocomputer Applications Vo

31、l.39,No.10,2023622-627.7徐单恒,龚建新.基于区块链技术的第三方电子数据存证方法研究J.微型电脑应用,2 0 2 1,37(10):9-12.8 毕兴,唐朝京.基于模型检测的TLS协议实现库安全性分析J.系统工程与电子技术,2 0 2 143(3):839-846.9吴永强,国密SSL安全通信协议的研究与实现D.西安:西安电子科技大学,2 0 14.10蔡成杭.支持国产密码算法的OpenSSL设计实现及应用J.信息安全研究,2 0 18,4(2):115-132.11TIAN C,CHEN C,DUAN Z H,et al.DifferentialTesting of C

32、ertificate Validation in SSL/TLS Imple-mentationsJJ.ACM Transactions on Software Engi-neering and Methodology,2019,28(4):1-37.(上接第16 3页)看出融合检测方法将CBs、D W T、RBF的故障结果组合在一起作为系统的输出,从而有效的提高了故障识别能力,以及故障定位的可靠性。4总结本文提出了一种用于电力智能电网的新融合方法。该方法利用OWA运算器将CBs、D W T 和RBF3个诊断单元的信息结合起来,从而得到一个融合的框架来识别故障。通过实验证明,基于OWA的融合方

33、法不仅可以识别故障的确切位置,而且与RBF诊断单元相比,它的检测延迟更低。1下陈艳丽,周群,滕欢.配电网故障定位容错算法.电力系统保护与控制,2 0 11,39(13):91-95.2陈亮,毕天姝,薛安成,等.基于断路器零阻抗特性的PMU量测状态估计方法J.电力自动化设备,2 0 14,34(5):105-110.3徐浩,苗世洪,姜臻,等.基于有限相量测量单元测量故障分量信息的故障定位算法J.电力系统自动化,2013,37(2):43-48.开发应用12曹琪,阮树骅,陈兴蜀,等.Hyperledger Fabric平台的国密算法嵌入研究J.网络与信息安全学报,2 0 2 1,7(1):65-7

34、5.13金先涛.商用密码算法在PLC固件完整性校验中的应用J.计算机科学与技术,2 0 2 1,39(2:2 1-2 5.14纪文桃,李媛媛,秦宝东.基于决策树的SM4分组密码工作模式识别J.计算机工程,2 0 2 1,47(8):157-161.15YAU A K L,PATERSON K G,MITCHELL C J.Padding Oracle Attacks on CBC-mode Encryptionwith Secret and Random IVsC/Proceedings of the12th International conference on Fast Software

35、En-cryption.New York:ACM,2005:299-319.(收稿日期:2 0 2 2-0 1-2 7)4 W ILK INSO N W A,CO X M D.D i s c r e t e W a v e l e t A-nalysis of Power System TransientsJJ.IEEE Trans-actions on Power Systems,1996,11(4):2038-2044.5关书怀,沈艳霞.基于粒子群优化径向基函数神经网络的电力负荷预测J.传感器与微系统,2 0 2 1,40(5):128-131.6吴吴微.神经网络计算M.北京:高等教育出版

36、社,2 0 0 3.75张晓慧,冯源.计算OWA算子权重的最小最大不一致方法及讨论J.浙江大学学报(理学版),2 0 2 0,47(4):455-459.8王奕.基于集对分析OWA算子信息决策排序方法参考文献J.自动化与仪器仪表,2 0 15(1):17 4-17 59杨建国.小波分析及其工程应用M.北京:机械工业出版社,2 0 0 5.10邵塗,吴昊,姚朔晔.基于CNN卷积神经网络的电力通信网故障诊断J.微型电脑应用,2 0 2 2,38(5):111-115.11薛东博.智能电网中虚假数据注入攻击检测研究D.重庆:重庆邮电大学,2 0 19.微型电脑应用2 0 2 3年第39 卷第10 期(收稿日期:2 0 2 3-0 1-16).180.

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服