• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于GMSSL公共庫(kù)應(yīng)用的測(cè)試研究

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

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

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

      0 引言

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

      1 TLS通信實(shí)現(xiàn)機(jī)制

      1.1 TLS簡(jiǎn)介

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

      圖1 TLS通信層

      1.2 通信機(jī)制

      TLS通信機(jī)制可以分為兩步[11]:服務(wù)器端和客戶端進(jìn)行“握手”,身份驗(yàn)證通過(guò)后分別生成對(duì)稱密鑰;客戶端使用對(duì)稱密鑰加密,服務(wù)端使用對(duì)稱密鑰解密,雙方通過(guò)“對(duì)稱密鑰”進(jìn)行加密通信。可以細(xì)分為四步:

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

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

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

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

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

      1.3 本文工作

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

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

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

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

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

      2.2 動(dòng)態(tài)測(cè)試環(huán)境

      如圖2所示,TLS通信軟件測(cè)試框架主要包括客戶端測(cè)試驅(qū)動(dòng)和服務(wù)器端測(cè)試驅(qū)動(dòng)2個(gè)大模塊。通過(guò)設(shè)計(jì)客戶端和服務(wù)端測(cè)試驅(qū)動(dòng),調(diào)用GMSSL庫(kù)中相關(guān)接口實(shí)現(xiàn)通信。

      圖2 測(cè)試驅(qū)動(dòng)軟件框架

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

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

      (a) 服務(wù)器端

      3 功能測(cè)試及效果

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

      表1 TLS通信測(cè)試項(xiàng)目

      表2 讀證書(shū)接口測(cè)試項(xiàng)目

      表3 SM2/SM3/SM4測(cè)試項(xiàng)目

      3.1 TLS通信測(cè)試

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

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

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

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

      3.2 讀證書(shū)接口的測(cè)試

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

      3.3 加密算法的測(cè)試

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

      4 性能測(cè)試及效果

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

      表4 SM2簽名/驗(yàn)簽速度

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

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

      表6為SM4對(duì)于不同長(zhǎng)度的消息進(jìn)行加解密速度測(cè)試結(jié)果,可以看出,隨著數(shù)據(jù)長(zhǎng)度的增大,加解密的耗時(shí)也逐漸增多,當(dāng)數(shù)據(jù)長(zhǎng)度為1024 Byte時(shí),耗時(shí)達(dá)到了26 μs,說(shuō)明消息長(zhǎng)度對(duì)于算法的影響較大。

      表6 SM4加解密計(jì)算速度

      5 總結(jié)

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

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

      猜你喜歡
      國(guó)密加解密私鑰
      比特幣的安全性到底有多高
      國(guó)密技術(shù)在智能燃?xì)獗硐到y(tǒng)的應(yīng)用與分析
      煤氣與熱力(2021年7期)2021-08-23 01:11:14
      基于改進(jìn)ECC 算法的網(wǎng)絡(luò)信息私鑰變換優(yōu)化方法
      Hyperledger Fabric平臺(tái)的國(guó)密算法嵌入研究
      自助終端設(shè)備國(guó)密改造方法探究
      基于國(guó)密算法的銀行移動(dòng)營(yíng)銷終端安全系統(tǒng)研究
      一種基于虛擬私鑰的OpenSSL與CSP交互方案
      PDF中隱私數(shù)據(jù)的保護(hù)方法
      電子取證中常見(jiàn)數(shù)據(jù)加解密理論與方法研究
      基于FPGA的LFSR異步加解密系統(tǒng)
      墨江| 霍林郭勒市| 禄劝| 永定县| 吴忠市| 拉孜县| 吉安县| 湘阴县| 渑池县| 同仁县| 嘉黎县| 资阳市| 宜昌市| 新余市| 交口县| 湘潭市| 北票市| 毕节市| 慈溪市| 永寿县| 南江县| 湖州市| 阜新市| 崇明县| 武安市| 油尖旺区| 金塔县| 青海省| 高州市| 富源县| 重庆市| 仲巴县| 高唐县| 兖州市| 连州市| 建瓯市| 余庆县| 如东县| 泸州市| 逊克县| 简阳市|