• 
    

    
    

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

      PQVPN: 抗量子計(jì)算攻擊的軟件VPN 設(shè)計(jì)

      2022-10-10 16:21:28楊亞濤趙若巖
      信息安全學(xué)報(bào) 2022年5期
      關(guān)鍵詞:公鑰密文密鑰

      楊亞濤 ,趙若巖 ,常 鑫 ,郭 超 ,肖 嵩

      1 北京電子科技學(xué)院電子與通信工程系,北京 中國(guó) 100070

      2 西安電子科技大學(xué)通信工程學(xué)院,西安 中國(guó) 710071

      1 前言

      抗量子密碼又稱后量子密碼(Post Quantum Cryptography)。2015 年8 月,美國(guó)國(guó)家安全局公開(kāi)提出美國(guó)國(guó)家安全系統(tǒng)目前使用的NSA Suite B 將逐步向后量子密碼算法升級(jí)。2016 年,美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(National Institute of Standards and Technology,NIST)向全球范圍內(nèi)征集后量子公鑰密碼算法標(biāo)準(zhǔn),共有25 個(gè)國(guó)家和地區(qū)的密碼學(xué)家參加了此次征集活動(dòng)。截至2018 年,共收到82 份方案。2019年初,NIST 宣布26 個(gè)方案進(jìn)入第二輪評(píng)估。2020 年7 月,NIST 公布了第三輪的7 種候選算法和8 種備選算法。如表1 和表2 所示。

      表1 第三輪候選算法Table 1 Candidate algorithms for the third round

      Open Quantum Safe 項(xiàng)目是美國(guó)一個(gè)研究后量子密碼學(xué)的開(kāi)源項(xiàng)目。該項(xiàng)目的主要工作路線為liboqs算法庫(kù)的開(kāi)發(fā)并將后量子算法集成到協(xié)議和應(yīng)用程序之中,其中包括廣泛使用的OpenSSL 庫(kù)。

      2019年,微軟研究員Douglas Stebila等人研究了把后量子密碼算法融合到TLS(Transport Layer Security)協(xié)議和SSL(Secure Sockets Layer)協(xié)議中的幾種實(shí)現(xiàn)方案[1]。同年微軟研究員Christian Paquin 開(kāi)發(fā)了包含后量子密碼的TLS 框架,并測(cè)試了幾種后量子密碼算法對(duì)TLS 連接建立的性能影響[2]。

      2020 年,Sebastian Paul 等人針對(duì)工業(yè)網(wǎng)絡(luò)物理系統(tǒng)(Cyber-Physical Systems,CPS)的后量子安全問(wèn)題提出了將后量子密碼集成到工業(yè)協(xié)議開(kāi)放平臺(tái)統(tǒng)一架構(gòu)中,并進(jìn)行了方案實(shí)現(xiàn)和性能評(píng)估[3]。Lo?s Huguenin-Dumittan 等人則對(duì)進(jìn)入NIST 第二輪競(jìng)賽中的幾種算法提出了明文檢查攻擊(PCA,Plaintext Check Attack)和針對(duì)基于秩的RQC 的KR-PCA 攻擊[4]。同年,在研究硬件平臺(tái)方面,Lukas Malina 等人評(píng)估了NIST后量子密碼候選算法在特殊硬件平臺(tái)上實(shí)施的適用性,主要關(guān)注了在受限平臺(tái)和快速硬件加速平臺(tái)上的性能[5]。Brian Koziel 等人則研究了NIST 第三輪中密碼算法的關(guān)鍵運(yùn)算如何在硬件中實(shí)施有效加速[6]。

      2021 年,潘彥斌等人提出兩種純密文攻擊思路,并證明在推薦參數(shù)下,NIST 競(jìng)賽中的候選算法Compact-LWE 是不安全的[7]。Manohar Raavi 等人則針對(duì)入圍的公鑰簽名算法比較了其安全性和相應(yīng)性能,提供了后量子密碼設(shè)計(jì)的安全比較規(guī)則、性能分析以及綜合分析參考標(biāo)準(zhǔn)[8]。Ward Beullens 針對(duì)UOV 和Rainbow 簽名方案提出了適用于UOV 和Rainbow 的相交攻擊以及僅適用于 Rainbow 的矩形MinRank 攻擊,證明了這兩種簽名方案存在安全缺陷[9]。Thomas Prest 等人則對(duì)后量子密碼學(xué)的知識(shí)狀態(tài)系統(tǒng)化,將經(jīng)典和后量子密碼方案轉(zhuǎn)化為若干個(gè)范式[10]。楊亞濤等人在文獻(xiàn)[11]和[12]中分別提出了一種基于RLWE 困難問(wèn)題的后量子攻擊密鑰協(xié)商協(xié)議和雙向認(rèn)證密鑰協(xié)商方案INAKA。李子臣等人基于格理論環(huán)上誤差學(xué)習(xí)(Ring Learning with Errors,RLWE)問(wèn)題使用Peikert 式誤差協(xié)調(diào)機(jī)制構(gòu)造了一個(gè)C/S 模式下的口令認(rèn)證密鑰交換協(xié)議(PAKE),并使用Java 在Eclipse 平臺(tái)上進(jìn)行了此協(xié)議的模擬實(shí)現(xiàn)[13]。

      虛擬專用網(wǎng)(Virtual Private Network,VPN)于1990 年代中期首次創(chuàng)建和部署,旨在遠(yuǎn)程節(jié)點(diǎn)之間建立一個(gè)加密的網(wǎng)絡(luò)隧道,允許應(yīng)用程序流量通過(guò)該隧道跨越不安全的中介網(wǎng)絡(luò)傳輸[14]。

      量子計(jì)算將在未來(lái)成為現(xiàn)實(shí)。文獻(xiàn)[15]中指出,目前主流SSL VPN 的安全性依賴于SSL 協(xié)議中身份認(rèn)證算法、密鑰協(xié)商算法、信息加密算法的復(fù)雜度。隨著量子計(jì)算的出現(xiàn),現(xiàn)在所使用的傳統(tǒng)密碼算法正面臨被破解的風(fēng)險(xiǎn)。此外,Sultan Almuhammadi 等人揭示了現(xiàn)有VPN 系統(tǒng)正面臨Web 指紋攻擊的威脅[16]。

      2015 年,Aymen Ghilen 等人建議在隧道兩端的OpenVPN 部署用于密鑰交換和身份驗(yàn)證的量子協(xié)議,以實(shí)現(xiàn)VPN 隧道通信安全性能的提升[17]。

      2018 年,國(guó)盾量子與國(guó)網(wǎng)電力信息通信提出了一種通信方案[18],該方案針對(duì)IPSec VPN,在實(shí)際電力通信網(wǎng)絡(luò)中進(jìn)行了測(cè)試,測(cè)試結(jié)果表明,該方法能夠滿足密文通信的需求,也為公共網(wǎng)絡(luò)環(huán)境下的抗量子VPN 的研究提供了參考方向。

      2020 年,Quentin M.Kniep 等人提出了對(duì)VPN 軟件WireGuard 握手協(xié)議的三個(gè)改進(jìn)方式以增強(qiáng)其后量子安全性能,并驗(yàn)證這些改進(jìn)對(duì)系統(tǒng)性能的影響不大[19]。

      2021 年,Joo Yeon Cho 和Andrew Sergeev 對(duì)VXLAN 上的MAC Sec 協(xié)議進(jìn)行改進(jìn),使用了后量子的臨時(shí)密鑰交換協(xié)議和端到端身份驗(yàn)證方案,并驗(yàn)證了對(duì)延遲和吞吐量的影響是最小的[20]。改進(jìn)后進(jìn)行的實(shí)驗(yàn)證實(shí),量子安全虛擬化鏈接已經(jīng)可以遠(yuǎn)距離建立,而無(wú)需更改其基礎(chǔ)設(shè)施。

      本文貢獻(xiàn)如下:

      (1) 實(shí)現(xiàn)了一種抗量子計(jì)算攻擊的VPN 設(shè)計(jì)框架?;诂F(xiàn)有SSL VPN 框架,對(duì)OpenSSL 庫(kù)及內(nèi)部通信協(xié)議進(jìn)行改造,在VPN 通信連接過(guò)程中的身份認(rèn)證和密鑰協(xié)商環(huán)節(jié)使用了后量子簽名算法Picnic和密鑰協(xié)商算法CRYSTALS-KYBER,實(shí)現(xiàn)了抗量子計(jì)算安全特性。實(shí)現(xiàn)了公網(wǎng)環(huán)境下的安全隧道通信及內(nèi)網(wǎng)訪問(wèn),能滿足現(xiàn)階段和量子時(shí)代的通信安全需求,也為今后實(shí)現(xiàn)后量子安全通信提出了架構(gòu)案例。

      (2) 測(cè)試了PQVPN 系統(tǒng)證書(shū)生成及驗(yàn)證、VPN建立連接及連接后的隧道安全通信功能,系統(tǒng)完整建立連接消耗時(shí)間為4.93s,VPN 連接后最高上傳速度可達(dá)206Kb/s,下載速度可達(dá)2495Kb/s,相同帶寬下與公網(wǎng)正常傳輸速度幾乎相近,與傳統(tǒng)VPN 性能相差較小,與其他后量子VPN 系統(tǒng)相比性能占優(yōu),實(shí)現(xiàn)了較高性能的PQVPN 系統(tǒng)。

      2 關(guān)鍵算法

      2.1 Picnic 算法

      Picnic 算法使用Fiat-shamir 變換與Unruh 變換創(chuàng)建了非交互式零知識(shí)證明的簽名系統(tǒng)。為了實(shí)現(xiàn)簽名,簽名者創(chuàng)建一個(gè)非交互的知識(shí)證明,并將該證明與待簽名消息綁定[21-22]。

      簽名過(guò)程:

      輸入: 簽名者的密鑰對(duì)(sk,pk),待簽名的消息字節(jié)組為

      輸出:M的簽名以字節(jié)組形式輸出。

      (1)初始化以下值。C[0…T-1] [0…N-1]、Ch[0…T-1]和Cv[0…T-1],其中每個(gè)值的長(zhǎng)度為lH字節(jié)。maked_key[0…T-1]的輸入隊(duì)列T,每個(gè)長(zhǎng)度為n位。隨機(jī)隊(duì)列tapes[0 …T-1] [0…N-1],每次并行迭代,每個(gè)長(zhǎng)度為6rs+n位。輔助信息比特串隊(duì)列aux[0…T-1],每個(gè)長(zhǎng)度為3rs比特。拓展消息隊(duì)列msgs[0…T-1] [0…N-1],長(zhǎng)度為n+3rs的比特串。

      (2) 生成長(zhǎng)度為S位的根seed和長(zhǎng)度為256 位的salt。用KDF 方法推導(dǎo):

      sk‖M‖p k‖S其中,S編碼方式為16 位小端整數(shù),要求字節(jié)長(zhǎng)度為2(S/8)(一個(gè)salt和一個(gè)seed,每個(gè)長(zhǎng)度為S位)。

      (3) 使用種子將根seed和salt擴(kuò)展成T個(gè)初始seed,表示為iSeed[0…T-1]。

      (4) 從0 到T-1的t重復(fù)以下操作:

      (a) 使用iSeed[t]、salt和整數(shù)t,用種子樹(shù)方法,導(dǎo)出N個(gè)種子。這些種子表示為seeds[0…T-1]。

      (b) 使用KDF 導(dǎo)出N個(gè)tapes[t][N-1]:

      每個(gè)位數(shù)至少為6rs。輸入的t和i被編碼為16位小端整數(shù)。

      (c)運(yùn)行 Compute_aux 算法,返回字符串mpcInputs,將在下面使用。

      (d) 計(jì)算N個(gè)C[t][0…N-1]如下:

      其中,i從0 到N-2 且

      (e) 創(chuàng)建并存儲(chǔ)私鑰。

      (f) 輸 入maskedKey[t]、tapes[t]和pk,運(yùn)行mpc_simulate 算法,輸出為msgs[t][0…N-1]。

      (g) 計(jì)算Ch[t] 如下:

      (h) 計(jì)算Cv[t] 如下:

      (5) 創(chuàng)建T列表的Merkle 樹(shù),Cv[0…T-1]作為葉,讓Cv_root作為根節(jié)點(diǎn)。

      (6) 使用函數(shù)HCP 進(jìn)行計(jì)算,輸出為一個(gè)摘要h和兩個(gè)長(zhǎng)度為u的16 位整數(shù)列表LC和LP。

      LC中的整數(shù)是唯一的且在[0,T-1]范圍內(nèi),LP中的值在[0,N-1]范圍內(nèi)。

      (7) 計(jì)算Merkle 樹(shù)Cv公開(kāi)信息,公開(kāi)信息表示為cvInfo。

      (8) 計(jì)算初始種子所需的信息t?LC,此信息表示為iSeedInfo。

      (9) 收集簽名 。簽名是(h,salt,iSeedInfo,cvInfo,Z),其中Z是5 元u組的列表。定義(ti,Pi)=(LC[i],LP[i])其中i從0 到u-1。

      (10) 序列化(h,salt,iSeedInfo,cvInfo,Z),并將其作為簽名輸出。

      2.2 CRYSTALS-KYBER 算法

      Kyber 是由Roberto Avanzi 等人設(shè)計(jì)的一種滿足IND-CCA2 安全的密鑰封裝機(jī)制,其安全性依賴于解決格上的模誤差學(xué)習(xí)(Module Learning with Errors,MLWE)問(wèn)題的難度。參數(shù)n,k,q,η1,η2,du和dv中n為256,q是3329。表3、表4 和表5 為Kyber.CPAPKE公鑰加密方案中密鑰生成、加密和解密的定義。

      表3 CRYSTALS-KYBER 算法的密鑰生成過(guò)程Table 3 Key generation in CRYSTALS-KYBER algorithm

      表4 CRYSTALS-KYBER 算法的加密過(guò)程Table 4 Encryption in CRYSTALS-KYBER algorithm

      表5 CRYSTALS-KYBER 算法解密過(guò)程Table 5 Decryption in CRYSTALS-KYBER algorithm

      圖1 描述了單向認(rèn)證密鑰交換協(xié)議Kyber.UAKE,單向認(rèn)證密鑰交換協(xié)議增加了靜態(tài)密鑰部分,其中設(shè)定Alice 知道Bob 的靜態(tài)密鑰。

      圖1 Kyber 的單向認(rèn)證密鑰交換協(xié)議Figure 1 Kyber′s unidirectional authenticated key exchange protocol

      其協(xié)商過(guò)程為:

      設(shè)H: { 0,1}*→ { 0,1}256為哈希函數(shù)。

      第一步: Alice通過(guò)Kyber 的密鑰生成算法生成臨時(shí)公私鑰(pk,sk),使用Bob 的靜態(tài)公鑰pk2對(duì)預(yù)設(shè)密鑰K2用Kyber 加密算法加密后得到密文c2,之后將臨時(shí)公鑰pk和密文c2發(fā)給Bob。

      第二步: Bob 獲得Alice 的臨時(shí)公鑰pk和密文c2后,先用臨時(shí)公鑰pk對(duì)預(yù)設(shè)密鑰K加密后得到密文c,然后將密文c發(fā)給Alice;同時(shí)使用自己的靜態(tài)私鑰sk2對(duì)密文2c解密以獲得預(yù)設(shè)密鑰K2'。

      第三步: Alice 收到Bob 發(fā)來(lái)的密文c后,用臨時(shí)私鑰sk解密密文c以獲得預(yù)設(shè)密鑰K'。

      第四步: Alice、Bob 分別對(duì)K'和K2、K和K2'進(jìn)行Hash 運(yùn)算,并將得到的Hash 值作為會(huì)話密鑰。

      圖2描述了雙向認(rèn)證密鑰交換協(xié)議Kyber.AKE,其中設(shè)定雙方都知道對(duì)方的靜態(tài)密鑰,其協(xié)商過(guò)程為:

      圖2 Kyber 的雙向認(rèn)證密鑰交換協(xié)議Figure 2 Kyber′s bi-directional authenticated key exchange protocol

      設(shè)H: {0,1}*→ { 0,1}256為哈希函數(shù)。

      第一步: Alice 通過(guò)Kyber 的密鑰生成算法生成臨時(shí)公私鑰(pk,sk),使用Bob 的靜態(tài)公鑰pk2對(duì)預(yù)設(shè)密鑰K2用Kyber 加密算法加密生成密文c2,之后將公鑰pk和密文c2發(fā)給Bob。

      第二步: Bob 收到Alice 發(fā)來(lái)的臨時(shí)公鑰pk和密文c2后,先用公鑰pk對(duì)預(yù)設(shè)密鑰K加密生成密文c,再用Alice 的靜態(tài)公鑰p1k和Kyber 加密算法對(duì)預(yù)設(shè)密鑰1K加密生成密文1c,然后將密文c和1c發(fā)給Alice,同時(shí)使用自己的靜態(tài)私鑰sk2對(duì)密文c2解密以獲得預(yù)設(shè)密鑰。

      第三步: Alice 收到來(lái)自Bob 的密文c和1c后,用臨時(shí)私鑰sk和靜態(tài)私鑰s1k分別解密密文c和1c,可得到預(yù)設(shè)密鑰K'和

      上述協(xié)議最后導(dǎo)出的共享密鑰不僅依賴臨時(shí)密鑰和密文(pk,c),而且還依賴靜態(tài)密鑰pki(i=2)和相關(guān)的臨時(shí)密文ci(i=1,2)。

      3 系統(tǒng)設(shè)計(jì)

      3.1 算法選擇

      NIST 公布了經(jīng)篩選后進(jìn)入第三輪評(píng)測(cè)的數(shù)字簽名和密鑰協(xié)商算法,這些算法均經(jīng)過(guò)了多方面的安全測(cè)試,能夠抵抗多種攻擊,且滿足可證明安全性,未來(lái)的抗量子密碼算法標(biāo)準(zhǔn)大概率也將在其中產(chǎn)生,因此考慮對(duì)這幾種方案進(jìn)行分析比較。在NIST 看來(lái),這些密鑰協(xié)商和數(shù)字簽名算法是很有前途的具備抗量子攻擊屬性的潛在標(biāo)準(zhǔn)方案。

      針對(duì)數(shù)字簽名算法,入選的有 CRYSTALSDILITHIUM[23]、FALCON[24]、Rainbow[25],其中CRYSTALS-DILITHIUM、FALCON 均是基于格的后量子簽名方案,Rainbow 是基于多變量的多項(xiàng)式Oil-Vinegar 公鑰簽名方案的推廣。這三種算法的公鑰長(zhǎng)度都比較長(zhǎng),CRYSTALS-DILITHIUM 的公鑰長(zhǎng)度在 864-3232Kb 之間,FALCON 的公鑰長(zhǎng)度在157.8-1885.4Kb 之間,Rainbow 的公鑰長(zhǎng)度在897-1793Kb 之間,在實(shí)際應(yīng)用中均高于TLS 協(xié)議所能承載的長(zhǎng)度,因此,我們考慮采用同樣基于格理論困難問(wèn)題且滿足TLS 協(xié)議包長(zhǎng)度限制需求的Picnic 算法,Picnic 算法也是進(jìn)入NIST 第三輪的候選算法之一。

      針對(duì)密鑰協(xié)商算法,入選的有 Classic McEliece[26]、CRYSTALS-KYBER[27]、NTRU[28]、SABER[29]四種。Classic McEliece 是一種基于Goppa 糾錯(cuò)碼的非對(duì)稱密碼算法;CRYSTALS-KYBER、NTRU 和SABER 均為基于格困難問(wèn)題的公鑰密碼體制中相較完善的密碼體制,區(qū)別在于CRYSTALS-KYBER 是基于環(huán)上LWE(Learning With Errors)問(wèn)題,NTRU 基于大維數(shù)格中尋找最短向量的數(shù)學(xué)難題,SABER 是基于MLWR(Module Learning With Rounding)問(wèn)題而構(gòu)造。在表6 中我們對(duì)這些算法的性能進(jìn)行了對(duì)比分析。

      表6 四種密鑰協(xié)商算法的性能對(duì)比(所有時(shí)間都以CPU 周期表示)Table 6 Comparison of working performance of four key exchange algorithms(The computing time is presented in CPU cycles)

      綜上對(duì)比,我們選擇安全性較高、綜合性能表現(xiàn)較好的CRYSTALS-KYBER 算法作為PQVPN 系統(tǒng)中的密鑰協(xié)商算法。

      3.2 PQCrypto-VPN 分析

      PQCrypto-VPN 基于開(kāi)源的OpenSSL 庫(kù)和傳統(tǒng)OpenVPN 的分支搭建而成。其設(shè)計(jì)基本思想為在現(xiàn)有OpenVPN 的框架下,修改其所使用的OpenSSL 模塊,使其在SSL 握手階段中的證書(shū)簽名和密鑰協(xié)商部分調(diào)用抗量子OpenSSL 分支中所支持的后量子簽名算法和密鑰協(xié)商算法,而后量子算法的實(shí)現(xiàn)位于liboqs 庫(kù)中,該庫(kù)由所使用的OpenSSL 分支調(diào)用。在當(dāng)前版本中,僅當(dāng)流量通過(guò)客戶端和服務(wù)器之間的VPN 隧道時(shí),流量才受到量子計(jì)算機(jī)的保護(hù)。

      OpenSSL 是一套由三個(gè)功能模塊構(gòu)成的SSL 協(xié)議的開(kāi)源實(shí)現(xiàn): 密碼算法庫(kù)(Crypto Library)、SSL 協(xié)議框架以及相關(guān)工具。其中密碼算法庫(kù)和SSL 協(xié)議框架是核心模塊,用于配合實(shí)現(xiàn)基于SSL 協(xié)議的加密數(shù)據(jù)傳輸,圖3 為OpenSSL 整體結(jié)構(gòu)。

      圖3 OpenSSL 整體結(jié)構(gòu)Figure 3 Overall structure of OpenSSL

      密碼算法庫(kù)集成了SSL 協(xié)議所必須的各種密碼算法,其主要包含以下三類算法:

      (1) 公鑰密碼算法

      OpenSSL 主要支持4 種主流的傳統(tǒng)公鑰密碼算法: Diffie-Hellman、RSA、DSA 以及ECC,這幾種公鑰密碼算法主要用于實(shí)現(xiàn)SSL 握手協(xié)議的密鑰協(xié)商部分。

      (2) 分組密碼算法

      OpenSSL 主要支持7 種分組加密算法: AES、DES、Blowfish、CAST、IDEA、RC2、RC5,同時(shí)也支持這幾種算法的四種常用加密模式: ECB、CBC、CFB、OFB 模式。

      (3) 雜湊密碼算法

      OpenSSL 的信息摘要計(jì)算中支持以下5 種算法:MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。此外,OpenSSL 還實(shí)現(xiàn)了DSS 標(biāo)準(zhǔn)中規(guī)定的兩種信息摘要算法DSS 和DSS1。

      OpenSSL 的信息傳輸功能實(shí)現(xiàn)主要依賴于SSL協(xié)議框架和密碼算法庫(kù)的支持。在運(yùn)行中,OpenSSL會(huì)調(diào)用密碼算法庫(kù)來(lái)完成待傳輸信息的加解密,SSL協(xié)議框架會(huì)按照協(xié)議規(guī)定對(duì)信息執(zhí)行封裝或解包,進(jìn)而實(shí)現(xiàn)數(shù)據(jù)的安全傳遞。

      本系統(tǒng)設(shè)計(jì)參考 2017 年 Microsoft 提出的OpenSSL 的Open Quantum Safe 項(xiàng)目分支。主要使用OpenSSL 的Crypto Library 密碼算法庫(kù)中基于liboqs quantum-resistant 的算法和密碼套件。

      OpenVPN 工作于數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層,允許點(diǎn)對(duì)點(diǎn)通信模式下的終端使用靜態(tài)私鑰、第三方證書(shū)或者用戶名/口令來(lái)完成身份驗(yàn)證,并允許虛擬接口用戶執(zhí)行訪問(wèn)控制策略或制定防火墻策略。為了保證用戶數(shù)據(jù)傳輸?shù)陌踩院涂煽啃?OpenVPN 所有的數(shù)據(jù)加密與身份驗(yàn)證操作都通過(guò)OpenSSL 庫(kù)來(lái)處理。

      3.3 抗量子攻擊軟件VPN 系統(tǒng)設(shè)計(jì)方案

      本系統(tǒng)的設(shè)計(jì)思路是在調(diào)用 Microsoft PQCrypto-VPN 項(xiàng)目框架的基礎(chǔ)上,借助其依賴的OpenSSL的Open Quantum Safe項(xiàng)目分支對(duì)系統(tǒng)原有的OpenSSL 庫(kù)進(jìn)行擴(kuò)充,進(jìn)而搭建PKI(Public Key Infrastructure)系統(tǒng),并使用后量子簽名算法Picnic 為服務(wù)器和每個(gè)客戶端頒發(fā)證書(shū),同時(shí)修改VPN 啟動(dòng)配置文件實(shí)現(xiàn)VPN 連接,握手過(guò)程中密鑰協(xié)商部分采用CRYSTALS-KYBER 后量子密碼算法,在盡量不影響性能的基礎(chǔ)上,以實(shí)現(xiàn)該P(yáng)QVPN 系統(tǒng)的抗量子計(jì)算攻擊安全性。

      圖4 為抗量子計(jì)算的軟件VPN 實(shí)現(xiàn)框圖,為簡(jiǎn)化實(shí)現(xiàn)復(fù)雜度,在測(cè)試中將PKI 系統(tǒng)中的CA(Certificate Authority)與服務(wù)器集成為一體。服務(wù)器和客戶端分別生成證書(shū)請(qǐng)求文件,然后向CA 提出證書(shū)申請(qǐng)。CA 處理請(qǐng)求后分別向服務(wù)器和客戶端頒發(fā)證書(shū)。每個(gè)客戶端都可以和服務(wù)器端直接連接,在完成隧道搭建前執(zhí)行完身份認(rèn)證、加密套件選擇和密鑰協(xié)商環(huán)節(jié)。與此同時(shí),客戶端會(huì)接收到從服務(wù)端的地址池中分配來(lái)的虛擬網(wǎng)絡(luò)地址信息,所有地址都位于同一虛擬網(wǎng)段,可實(shí)現(xiàn)虛擬局域網(wǎng)間的隧道通信。

      圖4 抗量子計(jì)算的軟件VPN 實(shí)現(xiàn)框架Figure 4 VPN implementation framework of post quantum computing software

      4 運(yùn)行結(jié)果與測(cè)試

      本系統(tǒng)進(jìn)行了局域網(wǎng)下不同網(wǎng)段之間的連接測(cè)試和公網(wǎng)下的連接測(cè)試,局域網(wǎng)下的測(cè)試使用兩臺(tái)虛擬機(jī)來(lái)實(shí)現(xiàn),分別搭載Ubuntu 18.04 系統(tǒng),公網(wǎng)下的測(cè)試使用阿里云遠(yuǎn)程服務(wù)器和PC 機(jī)實(shí)現(xiàn),服務(wù)器采用Ubuntu 18.04 Server 系統(tǒng),PC 機(jī)為Ubuntu 18.04系統(tǒng),內(nèi)存需要8G 以上。

      4.1 功能測(cè)試

      (1) 證書(shū)驗(yàn)證測(cè)試

      為了形成用于驗(yàn)證的證書(shū)鏈,系統(tǒng)需要使用后量子簽名算法Picnic來(lái)生成CA端的私鑰和自簽名證書(shū),也分別生成服務(wù)器端與客戶端的私鑰及證書(shū)。

      如圖5 所示,服務(wù)器端證書(shū)的簽名算法為Picnic,簽署方為 PQ-OpenVPN-Demo-CA,證書(shū)署名為PQ-OpenVPN-Demo-Server,證書(shū)內(nèi)包含公鑰信息,同時(shí)通過(guò)CA 證書(shū)來(lái)證明服務(wù)器端證書(shū)的有效性。

      圖5 Server 端證書(shū)驗(yàn)證Figure 5 Server’s certificate verification

      如圖6 所示,證書(shū)指紋的輸入為證書(shū)內(nèi)容,使用SHA-512 和MD5 算法來(lái)確保證書(shū)的完整性;密鑰指紋的輸入為公鑰,使用SHA-512 算法確保內(nèi)部公鑰的完整性。

      圖6 Client 端證書(shū)驗(yàn)證Figure 6 Client’s certificate verification

      另外,我們自主設(shè)計(jì)了客戶端的圖形界面,集成了客戶端私鑰與證書(shū)申請(qǐng)文件的生成及連接功能。

      (2) 服務(wù)器與客戶端連接測(cè)試

      服務(wù)器正常啟動(dòng)后,可以在連接提示的信息流中獲知系統(tǒng)生成的虛擬地址池及連接歷史中客戶端曾被分配的地址。當(dāng)有客戶端申請(qǐng)連接時(shí),雙方會(huì)進(jìn)入SSL 握手協(xié)議過(guò)程,在信息反饋中可以看到通過(guò)SSL 握手協(xié)議雙方進(jìn)行密鑰協(xié)商的過(guò)程,如下所示:

      第一部分: 建立安全能力??蛻舳税l(fā)出Clienthello 信息,其中包括客戶端可以支持的SSL 協(xié)議最高版本號(hào),所使用的后量子密鑰協(xié)商算法,客戶端可以支持的密碼套件列表,客戶端可以支持的壓縮方法列表等。之后,服務(wù)端發(fā)回Server-hello 信息,來(lái)確定SSL 版本、密碼套件和壓縮方法。

      第二部分: 服務(wù)端驗(yàn)證和客戶端驗(yàn)證。服務(wù)端向客戶端提供自身數(shù)字證書(shū)及完整證書(shū)鏈,同時(shí)請(qǐng)求客戶端的證書(shū)信息;客戶端驗(yàn)證服務(wù)端的身份信息后,向服務(wù)端提供自身數(shù)字證書(shū),服務(wù)器端驗(yàn)證客戶端身份,進(jìn)而完成彼此身份認(rèn)證。

      第三部分: 建立連接與客戶端接受分配地址。當(dāng)握手協(xié)商結(jié)束后,客戶端與服務(wù)端建立連接,同時(shí)服務(wù)端在自身地址虛擬池內(nèi)分配虛擬地址給客戶端來(lái)完成通信建立。另外,通過(guò)Wireshark 對(duì)虛擬機(jī)進(jìn)行抓包分析,可以看到握手過(guò)程中TLS 協(xié)議數(shù)據(jù)包、TCP 數(shù)據(jù)傳輸、OpenVPN 協(xié)議數(shù)據(jù)報(bào)。

      (3) 客戶端圖形界面運(yùn)行情況

      用戶填寫(xiě)申請(qǐng)證書(shū)所需的信息,如用戶、國(guó)家等,即可自主選擇生成目錄、生成用戶私鑰.key 與證書(shū)請(qǐng)求文件.csr。之后,用戶可將文件上傳至CA 服務(wù)器,待CA 完成證書(shū)簽署后頒發(fā)給用戶。

      (4) 客戶端虛擬地址

      當(dāng)服務(wù)器端和客戶端建立連接后,通過(guò)查看客戶端的IP 信息,可發(fā)現(xiàn)客戶端的tun0 端口開(kāi)啟,端口的對(duì)應(yīng)地址是由服務(wù)器從虛擬地址池內(nèi)分配給客戶端的10.8.0.6,從而說(shuō)明通信連接及虛擬地址分配成功。

      (5) ICMP 協(xié)議通信

      客戶端與服務(wù)器端進(jìn)行ICMP(Internet Control Message Protocol)通信,命令中所用地址為10.8.0.1,是虛擬地址池內(nèi)的首位地址,其分配給服務(wù)器端,公網(wǎng)上不可訪問(wèn)。通信時(shí)可以捕獲到發(fā)送至服務(wù)器上的數(shù)據(jù)包,來(lái)往的ICMP 通信數(shù)據(jù)全由OpenVPN協(xié)議進(jìn)行封裝。

      (6) FTP 文件傳輸

      客戶端和服務(wù)器端建立連接后即可進(jìn)行通信,可以利用FTP(File Transfer Protocol)文件傳輸來(lái)測(cè)試其可行性。10.8.0.1 為服務(wù)器端虛擬地址池內(nèi)的首位地址,公網(wǎng)上不可訪問(wèn);客戶端通過(guò)FTP 訪問(wèn)此地址時(shí),可直接訪問(wèn)服務(wù)器上的FTP 文件列表并支持文件的上傳與下載。通過(guò)對(duì)數(shù)據(jù)流抓包分析,發(fā)現(xiàn)通向服務(wù)器的數(shù)據(jù)流皆以TCP 傳輸并且內(nèi)容不可見(jiàn),說(shuō)明該P(yáng)QVPN 可以實(shí)現(xiàn)數(shù)據(jù)的安全通信。

      經(jīng)測(cè)試,證書(shū)生成及驗(yàn)證、VPN 連接建立及連接后的隧道安全通信等功能模塊都能正常工作,可以完成VPN 系統(tǒng)下的數(shù)據(jù)安全通信。

      4.2 性能測(cè)試

      (1) 服務(wù)器與客戶端連接

      測(cè)試時(shí)間為客戶端請(qǐng)求連接開(kāi)始到握手過(guò)程結(jié)束后建立連接為止,以Wireshark 捕獲數(shù)據(jù)包的時(shí)間差為準(zhǔn),測(cè)試得到的連接時(shí)間為4.93s。

      (2) FTP 文件傳輸時(shí)間

      在相同的網(wǎng)絡(luò)環(huán)境下,來(lái)傳輸不同類型、不同大小的文件,測(cè)試時(shí)間從FTP 連接開(kāi)始到文件傳輸結(jié)束的整個(gè)過(guò)程。

      性能對(duì)比結(jié)果如圖7 所示:

      圖7 公網(wǎng)傳輸和VPN 傳輸對(duì)比Figure 7 Transmission comparison between public network and VPN

      經(jīng)測(cè)試,排除網(wǎng)絡(luò)流量波動(dòng)的影響,與正常的公網(wǎng)傳輸相比,PQVPN 系統(tǒng)犧牲了部分帶寬,但換來(lái)了直接點(diǎn)對(duì)點(diǎn)通信的優(yōu)勢(shì),同時(shí)增強(qiáng)了數(shù)據(jù)傳輸安全性。

      表7 公網(wǎng)正常傳輸Table 7 Normal transmission in public network

      表8 VPN 隧道傳輸Table 8 VPN tunnel transmission

      4.3 對(duì)比測(cè)試

      在表9 中,本文選取目前已提出的三種抗量子VPN 系統(tǒng)和兩種常規(guī)VPN 系統(tǒng)進(jìn)行對(duì)比分析。文獻(xiàn)[18]將量子安全密鑰管理服務(wù)與傳統(tǒng)IPSec VPN結(jié)合來(lái)實(shí)現(xiàn)抗量子安全隧道通信,系統(tǒng)需要額外的硬件支持。文獻(xiàn)[19]將WG VPN 內(nèi)部協(xié)議中的KEM環(huán)節(jié)進(jìn)行后量子改造后來(lái)實(shí)現(xiàn)抗量子安全通信,我們的PQVPN 系統(tǒng)相比文獻(xiàn)[19]在通信延遲方面減少了79.3%。文獻(xiàn)[20]對(duì)MACsec 協(xié)議進(jìn)行改進(jìn),使用后量子臨時(shí)密鑰交換協(xié)議和端到端身份驗(yàn)證方案,本文的PQVPN 系統(tǒng)相比文獻(xiàn)[20]在通信延遲方面減少了71.4%。文獻(xiàn)[30]為傳統(tǒng)IPSec VPN,不具有抗量子計(jì)算攻擊安全性。本文的PQVPN 系統(tǒng)除了握手時(shí)長(zhǎng)不具備優(yōu)勢(shì)外,其最大吞吐量與傳統(tǒng)OpenVPN性能相當(dāng),最大并發(fā)連接數(shù)與其他VPN 性能一致。通過(guò)綜合對(duì)比分析可以看到,本PQVPN 系統(tǒng)具有較好的綜合性能。

      表9 后量子VPN 隧道通信性能對(duì)比Table 9 Performance comparison of tunnel communication in post quantum VPN system

      5 小結(jié)

      本文介紹了抗量子計(jì)算攻擊的軟件VPN 的設(shè)計(jì)與實(shí)現(xiàn)過(guò)程。系統(tǒng)使用Microsoft PQCrypto-VPN 項(xiàng)目框架,依賴OpenSSL 的Open Quantum Safe 項(xiàng)目分支,完成了基于后量子簽名算法Picnic 和密鑰協(xié)商算法CRYSTALS-KYBER 的抗量子計(jì)算攻擊的軟件VPN 系統(tǒng)設(shè)計(jì),實(shí)現(xiàn)了VPN 隧道通信中對(duì)數(shù)據(jù)安全的后量子安全保護(hù)。使用QT 下的C++實(shí)現(xiàn)了客戶端的用戶操作圖形界面。

      基于現(xiàn)有互聯(lián)網(wǎng)協(xié)議和普通計(jì)算機(jī)終端,本系統(tǒng)實(shí)現(xiàn)了公網(wǎng)環(huán)境下的抗量子計(jì)算攻擊的安全隧道通信。本系統(tǒng)基于開(kāi)源的Open Quantum Safe 項(xiàng)目,具有良好的二次拓展和可開(kāi)發(fā)性。通過(guò)測(cè)試,在25M帶寬下,PQVPN 系統(tǒng)連接后最高上傳速度可達(dá)206Kb/s,下載速度可達(dá)2495Kb/s,與公網(wǎng)正常傳輸和傳統(tǒng)OpenVPN 的傳輸速度幾乎相近,在通信延遲方面相比目前已提出的三種后量子VPN 系統(tǒng)均有明顯降低,在犧牲少量帶寬情況下實(shí)現(xiàn)了更安全的數(shù)據(jù)通信。

      猜你喜歡
      公鑰密文密鑰
      探索企業(yè)創(chuàng)新密鑰
      一種針對(duì)格基后量子密碼的能量側(cè)信道分析框架
      一種支持動(dòng)態(tài)更新的可排名密文搜索方案
      基于模糊數(shù)學(xué)的通信網(wǎng)絡(luò)密文信息差錯(cuò)恢復(fù)
      密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
      一種基于混沌的公鑰加密方案
      一種對(duì)稱密鑰的密鑰管理方法及系統(tǒng)
      基于ECC的智能家居密鑰管理機(jī)制的實(shí)現(xiàn)
      HES:一種更小公鑰的同態(tài)加密算法
      SM2橢圓曲線公鑰密碼算法綜述
      汕尾市| 鄄城县| 北海市| 和平县| 集贤县| 上犹县| 凤阳县| 益阳市| 扬中市| 余姚市| 阆中市| 达尔| 张家港市| 荥阳市| 岫岩| 赤峰市| 万全县| 西乡县| 章丘市| 油尖旺区| 裕民县| 兴文县| 阳泉市| 延安市| 清河县| 枞阳县| 永川市| 当雄县| 湛江市| 洱源县| 宝坻区| 斗六市| 白河县| 休宁县| 柏乡县| 剑阁县| 改则县| 绥中县| 吴桥县| 柞水县| 高安市|