亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于GMSSL公共庫應用的測試研究

        2023-11-09 10:50:40常衛(wèi)浮明軍徐亞超黃顯果劉靜靜
        微型電腦應用 2023年10期
        關鍵詞:國密加解密私鑰

        常衛(wèi), 浮明軍, 徐亞超, 黃顯果, 劉靜靜

        (1.許繼電氣股份有限公司,河南,許昌 461000; 2.許繼電源有限公司,河南,許昌 461000)

        0 引言

        隨著電力行業(yè)安全性標準的提高,基于GMSSL庫的應用已經(jīng)成為基礎設施的一部分。SSL/TLS協(xié)議可以有效保證通信[1]的機密性。鑒于SSL/TLS安全協(xié)議的通信重要性及廣泛性,針對TLS協(xié)議實現(xiàn)及國密算法的安全審查漏洞檢測及應用研究已成為了熱點。目前研究的已知漏洞,包括BEAST攻擊、BREACH攻擊、CRIME攻擊等,相關研究發(fā)現(xiàn)開源工具testssl.sh能夠檢測出這些漏洞[2-3];基于圖像密文重構與卷積神經(jīng)網(wǎng)絡[4-5]等手段的分析方法,對主流密碼算法的密文隨機性進行了分析,這也為TLS密碼套件選擇與加密流量的深層分析提供了參考;對SM2加密算法的核心加密流程[6]進行優(yōu)化,在不影響算法安全性的前提下,提出基于優(yōu)化的SM2國密算法替換ECDSA公鑰簽名算法的區(qū)塊鏈設計;區(qū)塊鏈技術結合簽名密鑰算法[7]提高電子存證數(shù)據(jù)的安全性。以上都是對TLS協(xié)議實現(xiàn)庫存在的安全漏洞、國密算法優(yōu)化等方面進行的相關研究,但GMSSL庫中的接口實現(xiàn)只是對核心功能進行了設計,目前業(yè)界對公用接口的封裝使用漏洞缺乏相關研究分析,因此本文的研究很有必要性。

        1 TLS通信實現(xiàn)機制

        1.1 TLS簡介

        TLS(安全傳輸層),TLS[8-10]是建立在傳輸層TCP協(xié)議之上的協(xié)議,服務于應用層,它的前身是SSL(安全套接字層),實現(xiàn)了將應用層的報文進行加密后再交由TCP進行傳輸?shù)墓δ堋?/p>

        圖1 TLS通信層

        1.2 通信機制

        TLS通信機制可以分為兩步[11]:服務器端和客戶端進行“握手”,身份驗證通過后分別生成對稱密鑰;客戶端使用對稱密鑰加密,服務端使用對稱密鑰解密,雙方通過“對稱密鑰”進行加密通信??梢约毞譃樗牟?

        1) 客戶端向服務器發(fā)送TLS協(xié)議的版本號、一個隨機數(shù)A、以及所支持的加密算法(如RSA)。

        2) 服務器確認是否支持客戶端發(fā)送的TLS協(xié)議版本,同時給出數(shù)字證書(包含服務器的公鑰)以及一個隨機數(shù)B。

        3) 客戶端驗證數(shù)字證書有效后,生成一個新隨機數(shù)C,并且使用證書中的公鑰加密此隨機數(shù),最后將加密后的隨機數(shù)發(fā)送到服務器。

        4) 服務器使用自己的私鑰解密被加密后的隨機數(shù)C,使用加密算法對隨機數(shù)A、B、C進行加密,生成對稱密鑰??蛻舳耸褂猛瑯拥募用芩惴ㄉ膳c服務器相同的對稱密鑰。

        SSL/TLS協(xié)議本身的復雜性為應用者增加了負擔,為了減輕開發(fā)者的負擔及防范由代碼缺陷導致的安全風險,SSL/TLS協(xié)議實現(xiàn)細節(jié)通常被封裝在OpenSSL,NSS等開源軟件庫中。而國密算法[12-13]是國家密碼局制定標準的一系列算法,其中包括SM2橢圓曲線非對稱加密算法、SM3雜湊算法、SM4[14-15]對稱加密算法。

        1.3 本文工作

        GMSSL是支持國密算法和標準的OpenSSL分支,增加了對國密SM2/SM3/SM4算法和ECIES、CPK、ZUC算法的支持。GMSSL庫對TLS協(xié)議通信、國密算法的核心功能進行了封裝,應用者只需要調(diào)用提供的接口即可實現(xiàn)所需的功能。本文首先介紹了TLS通信機制及被測軟件功能,重點闡述了基于被測軟件設計的軟件測試框架,最后對GMSSL庫提供的SM2、SM3、SM4國密算法及常規(guī)的數(shù)字證書操作接口、TLS通信接口進行的二次封裝軟件進行了測試,發(fā)現(xiàn)對GMSSL庫函數(shù)的調(diào)用漏洞,將會導致TLS通信初始化錯誤、加解密錯誤等問題。本文的研究對于正確實現(xiàn)TLS加密通信具有重要的參考意義。

        2 測試環(huán)境搭建

        二次封裝完畢后,需要確認功能、性能、效率及內(nèi)存等是否滿足要求。此時,測試就是重要的保障環(huán)節(jié)。功能測試用于確保接口實現(xiàn)的全面性及功能正確性;性能測試用于考核加解密速度能力;內(nèi)存測試主要考核最大資源消耗情況。應設計測試驅(qū)動測試上述項目符合相關標準或要求。

        2.1 靜態(tài)測試環(huán)境

        測試環(huán)境搭建要從靜態(tài)測試和動態(tài)測試兩方面考慮。靜態(tài)測試主要通過checkmarx、CoBot和fortify、polyspace等工具按照源代碼編譯環(huán)境、工具配置要求及選擇編碼規(guī)則對靜態(tài)測試環(huán)境進行搭建。測試工具通過掃描源代碼分析程序的系統(tǒng)結構、數(shù)據(jù)結構、數(shù)據(jù)接口、內(nèi)部控制邏輯等內(nèi)部結構并形成掃描結果報告文件,測試員閱讀報告文件檢查代碼中那些違反編碼規(guī)則的地方是否存在潛在的風險。此次測試是對于接口的靜態(tài)掃描,對于公共庫的源碼部分未能檢測到,所以靜態(tài)測試結果只是表明在接口二次封裝源代碼中的一些變量定義未使用、變量未初始化等編碼規(guī)范問題,其他安全性問題本次不進行研究。

        2.2 動態(tài)測試環(huán)境

        如圖2所示,TLS通信軟件測試框架主要包括客戶端測試驅(qū)動和服務器端測試驅(qū)動2個大模塊。通過設計客戶端和服務端測試驅(qū)動,調(diào)用GMSSL庫中相關接口實現(xiàn)通信。

        圖2 測試驅(qū)動軟件框架

        客戶端驅(qū)動實現(xiàn)包括通信初始化(初始化socket、讀取CA證書、客戶端證書、客戶端私鑰、網(wǎng)絡初始化)、連接服務器、發(fā)送/接收數(shù)據(jù)、通信反初始化(釋放資源)。

        服務器端驅(qū)動實現(xiàn)包括初始化服務器網(wǎng)絡(初始化網(wǎng)絡環(huán)境、初始化TLS環(huán)境)、啟動監(jiān)聽、接收tcp連接-創(chuàng)建tls連接-接受tls連接、接收客戶端數(shù)據(jù)、定時發(fā)送數(shù)據(jù)。通信效果如圖3所示。

        (a) 服務器端

        3 功能測試及效果

        基于上述軟件測試框架的動態(tài)測試主要對接口的功能實現(xiàn)正確性、功能實現(xiàn)的完備性、是否存在內(nèi)存泄漏等進行測試。各類功能的測試項目如表1~表3所示。

        表1 TLS通信測試項目

        表2 讀證書接口測試項目

        表3 SM2/SM3/SM4測試項目

        3.1 TLS通信測試

        通過場景測試法設計測試用例對TLS通信進行接口功能驗證。TLS通信初始化階段,需要進行客戶端或服務端的證書驗證、證書是否與私鑰匹配、私鑰是否正確等操作。當加載經(jīng)CA簽發(fā)但不匹配的證書與私鑰文件時,先加載證書進行證書驗證,然后加載私鑰檢查私鑰正確性,最后進行證書與私鑰匹配性檢查,預期實現(xiàn)功能是證書與私鑰不匹配。

        通過測試發(fā)現(xiàn),若按如上步驟操作,匹配性檢查的結果是私鑰不正確,沒有正確實現(xiàn)匹配性檢查的功能。

        修改接口調(diào)用先后順序如下。

        先檢查私鑰正確性,在保證私鑰文件正確的前提下進行證書與私鑰的匹配性檢查,此操作的表現(xiàn)能夠正確實現(xiàn)匹配性檢查的功能要求。

        3.2 讀證書接口的測試

        通過設計測試用例對讀證書接口進行調(diào)用,測試項目覆蓋了表2中的內(nèi)容,通過測試發(fā)現(xiàn)很有價值的問題。對于加密的P12證書文件和加密的私鑰文件,在解析這兩種文件時,庫函數(shù)的處理方式是不一樣的。讀私鑰文件,文件解析之前就可以知道是否需要密碼,如果不需要就直接丟棄輸入的密碼;讀P12文件時,無法區(qū)分該類文件是否需要密碼,所以在給一個不加密的P12文件輸入密碼時密碼就使用了。對不加密的P12證書接口進行封裝時,務必采取相應措施確保密碼為空,否則當用戶調(diào)用該接口輸入密碼會引起功能的錯誤實現(xiàn)。

        3.3 加密算法的測試

        通過設計測試用例對SM2、SM3、SM4算法進行測試,通過測試發(fā)現(xiàn),對于SM4加密,當加密模式為CFB和OFB時,若在調(diào)用ssl庫函數(shù)EVP_sms4_cfb()和EVP_sm4_ofb()時數(shù)據(jù)長度傳入為0(異常調(diào)用),庫函數(shù)仍能成功加密。若封裝該庫函數(shù)時沒有考慮此情況,將會實現(xiàn)錯誤的功能。

        4 性能測試及效果

        基于測試框架,設計多次調(diào)用加密算法接口并自動統(tǒng)計平均耗時。加解密算法在不同的應用平臺,計算能力差別較大,沒有統(tǒng)一標準,以下記錄均在Win 10,64位操作系統(tǒng),i7-9700 CPU,3.0 GHz處理器上進行測試,針對SM2、SM3、SM4加解密接口,分別統(tǒng)計調(diào)用10 000次、100 000次的平均耗時,結果如表4~表6所示。

        表4 SM2簽名/驗簽速度

        測試結果表明:SM2簽名、SM2驗簽在調(diào)用10 000次和調(diào)用100 000次時的平均耗時均比較穩(wěn)定,說明SM2算法在對消息進行簽名和驗簽時不受次數(shù)的影響,同時被簽名的消息長度對簽名和驗簽速度的影響也是不存在的。但從上述結果中可以看出,SM2簽名平均耗時幾乎是SM2驗簽的2倍,原因在于SM2簽名和SM2驗簽的算法復雜度的不同,在簽名過程中,R、S值和橢圓曲線點計算占用了大量的時間資源。

        表5是不同長度消息SM3摘要計算的平均耗時測試結果,從該結果可以看出,隨著消息長度的增大,消息摘要計算平均耗時逐漸增多;對于同一消息,單次計算和分次計算雜湊值的時間開銷存在著很大的差別,如當消息長度為1024 Byte時,分512次計算和單次計算的耗時差達到了10 μs,而對于同一消息相同長度的雜湊值分次計算,調(diào)用10 000次和調(diào)用100 000次的平均耗時卻幾乎無差別,也同時驗證了該算法比較穩(wěn)定。

        表6為SM4對于不同長度的消息進行加解密速度測試結果,可以看出,隨著數(shù)據(jù)長度的增大,加解密的耗時也逐漸增多,當數(shù)據(jù)長度為1024 Byte時,耗時達到了26 μs,說明消息長度對于算法的影響較大。

        表6 SM4加解密計算速度

        5 總結

        隨著配電信息數(shù)據(jù)規(guī)模的逐漸增大,對數(shù)據(jù)安全性的要求越來越高,安全通信的正確實現(xiàn)及數(shù)據(jù)加解密速度是電網(wǎng)數(shù)據(jù)交互的重要指標。本文通過對GMSSL庫的二次封裝程序進行測試,發(fā)現(xiàn)對GMSSL庫中公用接口不能夠正確調(diào)用時,可能會造成功能實現(xiàn)的不正確;通過對加解密速度進行分析,為國密算法對不同數(shù)據(jù)長度的加密通信提供了資源消耗的參考。

        本文對GMSSL庫中的部分接口在實現(xiàn)加密通信過程中的封裝使用方法提出了建議,設計的測試環(huán)境和測試用例只能覆蓋一些基本功能的測試,仍需繼續(xù)深化開發(fā)研究測試方法,進一步拓展測試深度。

        猜你喜歡
        國密加解密私鑰
        比特幣的安全性到底有多高
        國密技術在智能燃氣表系統(tǒng)的應用與分析
        煤氣與熱力(2021年7期)2021-08-23 01:11:14
        基于改進ECC 算法的網(wǎng)絡信息私鑰變換優(yōu)化方法
        Hyperledger Fabric平臺的國密算法嵌入研究
        自助終端設備國密改造方法探究
        基于國密算法的銀行移動營銷終端安全系統(tǒng)研究
        電子測試(2018年9期)2018-06-26 06:45:40
        一種基于虛擬私鑰的OpenSSL與CSP交互方案
        PDF中隱私數(shù)據(jù)的保護方法
        軟件導刊(2017年4期)2017-06-20 20:35:24
        電子取證中常見數(shù)據(jù)加解密理論與方法研究
        基于FPGA的LFSR異步加解密系統(tǒng)
        激情综合五月| 国产毛片A啊久久久久| 在线精品亚洲一区二区三区| 日本五十路人妻在线一区二区| 日本二区三区视频在线观看| av无码特黄一级| 99热婷婷一区二区三区| 亚洲综合网国产精品一区| 亚洲日韩精品无码专区网站| 国产精品亚洲专区无码web| 亚洲影院在线观看av| 青青草免费手机视频在线观看| 美女把尿囗扒开让男人添| 欧美日韩中文制服有码| 亚洲天堂av社区久久| 精品亚洲一区二区三区四区五| 人人色在线视频播放| 国产鲁鲁视频在线播放| 中文少妇一区二区三区| 在线日本看片免费人成视久网| 人人爽人人澡人人人妻| 成人午夜免费无码视频在线观看| 精品蜜臀国产av一区二区| 欧美高清视频手机在在线| 精品人妻人人做人人爽| 亚洲日本在线va中文字幕| 色视频不卡一区二区三区| 三级做a全过程在线观看| 国产香蕉一区二区三区在线视频| 挑战亚洲美女视频网站| 色婷婷久久精品一区二区| 超清精品丝袜国产自在线拍| 亚洲AV一二三四区四色婷婷 | 色欲av永久无码精品无码蜜桃| 国产免费av片在线观看播放| 亚州毛色毛片免费观看| 中文字幕一区二区综合| 美女把尿囗扒开让男人添| 国产精品18久久久久久不卡中国 | 亚洲av一宅男色影视| 国产成年无码久久久久下载|