唐鵬毅,李國(guó)春,余 剛,鐘 軍,張英華,薛 路,趙子巖, 閆龍川,陳智雨,盧昌斌,羅 斌,高 松,劉建宏,
(1.科大國(guó)盾量子技術(shù)股份有限公司,合肥 230088; 2.國(guó)網(wǎng)電力信息通信有限公司,北京 100761;3.北京國(guó)盾量子信息技術(shù)有限公司,北京 100193)
量子保密通信是基于量子密鑰分發(fā)(Quantum Key Distribution,QKD)的安全通信技術(shù),其以量子力學(xué)原理和信息論為基礎(chǔ),能夠從理論上嚴(yán)格證明安全性。目前,量子通信產(chǎn)業(yè)化主要分為2種實(shí)現(xiàn)方案:一種是嚴(yán)格按照一次一密綁定量子設(shè)備的點(diǎn)對(duì)點(diǎn)安全通信,該方案主要針對(duì)軍用方面;另一種是不需要通信方綁定量子設(shè)備的量子密鑰池方案,該方案解決密鑰使用者對(duì)量子設(shè)備的依賴問(wèn)題,結(jié)構(gòu)上支持向云量子安全遷移,是如今商用系統(tǒng)普遍采用的方式。隨著量子通信京滬干線的建成,量子安全通信已從模擬實(shí)驗(yàn)進(jìn)入工程化實(shí)現(xiàn)階段[1]。在頻繁受擾動(dòng)的復(fù)雜信道(如架空光纜、海底光纜)[2-3]中,如何保證量子通信的穩(wěn)定運(yùn)行,是目前量子通信工程領(lǐng)域的研究重點(diǎn)。
近年來(lái),烏克蘭電網(wǎng)大規(guī)模停電等重大安全事件頻發(fā),顯示電力工控網(wǎng)等國(guó)家信息基礎(chǔ)設(shè)施面臨著持續(xù)的安全威脅,亟待提升其安全等級(jí)。電力系統(tǒng)工控網(wǎng)絡(luò)的安全通信主要基于IPSec VPN實(shí)現(xiàn)。虛擬專用網(wǎng)絡(luò)(Virtual Private Network,VPN)通過(guò)數(shù)據(jù)包目標(biāo)地址的轉(zhuǎn)換和對(duì)數(shù)據(jù)包的加密,在公網(wǎng)上建立專用通道并進(jìn)行加密通信,是目前廣泛應(yīng)用的一種安全通信方式。另一方面,通信和網(wǎng)絡(luò)攻擊持續(xù)升級(jí),更嚴(yán)峻的情況是隨著量子信息技術(shù)的發(fā)展,人類即將進(jìn)入量子計(jì)算和量子安全時(shí)代。通用量子計(jì)算機(jī)加上量子算法,能夠顯著加快對(duì)經(jīng)典密碼學(xué)算法的攻擊效率。以公鑰體系為例,采用Shor算法可以將大數(shù)分解和離散對(duì)數(shù)問(wèn)題的算法復(fù)雜度從指數(shù)級(jí)降為多項(xiàng)式級(jí)[4],這會(huì)對(duì)如今通用的DH(Diffie-Hellman)與ECDH(Elliptic Curve Diffie-Hellman)密鑰交換算法的安全性造成嚴(yán)重威脅。以對(duì)稱密碼體系為例,Grover算法能將搜索復(fù)雜度從O(N)降為O(N1/2),等效于密碼長(zhǎng)度減半??梢钥闯?依賴于上述密碼學(xué)技術(shù)的常規(guī)VPN體系在量子安全時(shí)代將不可避免地面臨嚴(yán)峻威脅,為此,需要提前融合量子密碼技術(shù)以對(duì)抗未來(lái)的攻擊。
QS-KMS結(jié)構(gòu)如圖1所示。相比傳統(tǒng)系統(tǒng),QS-KMS擴(kuò)展了3種特有的密鑰模塊:QKD產(chǎn)生對(duì)稱密鑰,量子隨機(jī)數(shù)發(fā)生器(Quantum Random Number Generator,QRNG)產(chǎn)生量子隨機(jī)數(shù),使用格密碼等算法的后量子密碼技術(shù)(Post-Quantum Cryptography,PQC)對(duì)經(jīng)典密碼學(xué)實(shí)現(xiàn)的密碼增強(qiáng)模塊[5]。QS-KMS主要支持3類應(yīng)用:對(duì)稱密鑰的提取,云安全存儲(chǔ),安全簽名。系統(tǒng)安全等級(jí)分為2級(jí):量子安全(物理級(jí))及后量子安全(算法級(jí))。擁有QKD設(shè)備的客戶端可以實(shí)現(xiàn)量子安全性。擁有Ukey的客戶端,可以通過(guò)定期從QS-KMS服務(wù)域內(nèi)站點(diǎn)充注QRNG產(chǎn)生的量子隨機(jī)數(shù)與QKD組建的城際網(wǎng)絡(luò)建立安全連接,以實(shí)現(xiàn)后量子安全。在不具備QKD和Ukey或者量子網(wǎng)絡(luò)受到攻擊出現(xiàn)異常的情況下,仍可以通過(guò)PQC密碼增強(qiáng)方案,例如密鑰交換、簽名,實(shí)現(xiàn)合理水平的安全性增強(qiáng)。
圖1 QS-KMS結(jié)構(gòu)示意圖
經(jīng)典的IPSec采用IKE協(xié)議實(shí)現(xiàn)認(rèn)證和密鑰交換[6]。為保障VPN在量子計(jì)算下的安全性,通常對(duì)IKE協(xié)議進(jìn)行改造,使用QKD量子密鑰替換原有基于公鑰體系的認(rèn)證和密鑰交換,從而完成認(rèn)證與會(huì)話密鑰協(xié)商環(huán)節(jié)[7-9]。
區(qū)別于上述將VPN與QKD設(shè)備綁定的方案,本文方案采用QS-KMS實(shí)現(xiàn)量子設(shè)備與VPN等密鑰應(yīng)用者的解耦合,使應(yīng)用者可以更靈活地面向業(yè)務(wù)優(yōu)化結(jié)構(gòu)和接口。QS-KMS與VPN功能的結(jié)合過(guò)程如圖2所示。量子密鑰層QKD設(shè)備在兩地實(shí)時(shí)地分發(fā)對(duì)稱密鑰,KM服務(wù)器獲取并保存QKD產(chǎn)生的對(duì)稱密鑰,多個(gè)KM服務(wù)器協(xié)同工作組成QS-KMS,提供量子密鑰或后量子增強(qiáng)密鑰供應(yīng)用層VPN功能模塊申請(qǐng)使用。應(yīng)用層VPN通過(guò)通用層間接口(量子密鑰交互模塊)向KMS層申請(qǐng)、獲取對(duì)稱密鑰,并基于量子安全密鑰進(jìn)行認(rèn)證與加解密通信。QRNG模塊向QS-KMS提供量子隨機(jī)數(shù),作為QS-KMS的認(rèn)證密鑰通過(guò)Ukey傳遞給VPN,實(shí)現(xiàn)VPN與QS-KMS之間的安全通信。QS-KMS中分別保存QKD產(chǎn)生的待提取的會(huì)話密鑰、需長(zhǎng)期保存的QRNG產(chǎn)生的認(rèn)證密鑰,以及密鑰使用者(VPN等)在申請(qǐng)密鑰時(shí)要求KMS長(zhǎng)期保存的會(huì)話密鑰。綜上,QS-KMS繼承傳統(tǒng)KMS功能,應(yīng)用方式和接口協(xié)議完全兼容KMS,其創(chuàng)新點(diǎn)是擴(kuò)展集成了量子密鑰層的多種密鑰生成方式,包括不同量子編碼協(xié)議(偏振、相位、時(shí)間相位、MDI等)或不同廠商QKD設(shè)備,集成量子隨機(jī)數(shù)或抗量子密碼增強(qiáng)方案產(chǎn)生的密鑰,隨密鑰塊增加標(biāo)簽字段標(biāo)注密鑰來(lái)源方式,可以供經(jīng)典層根據(jù)不同的安全等級(jí)有選擇地申請(qǐng)使用。
圖2 基于量子密鑰的VPN系統(tǒng)結(jié)構(gòu)
本文方案將整個(gè)量子密鑰分發(fā)網(wǎng)絡(luò)抽象封裝到QS-KMS底層,經(jīng)典VPN網(wǎng)絡(luò)與量子密鑰的結(jié)合主要是IKE協(xié)議與KMS的結(jié)合,分為認(rèn)證和密鑰交換2個(gè)部分。VPN等經(jīng)典層應(yīng)用可以在附近的密鑰管理服務(wù)器注冊(cè)認(rèn)證后接入量子網(wǎng),通過(guò)密鑰管理服務(wù)完成與其他在量子網(wǎng)注冊(cè)的應(yīng)用之間的密鑰交換。
在KMS上注冊(cè)認(rèn)證時(shí),VPN之間建立安全信道的認(rèn)證均通過(guò)對(duì)稱密鑰實(shí)現(xiàn)。
KMS與VPN服務(wù)器之間可以通過(guò)設(shè)備信息與預(yù)置認(rèn)證密鑰(IDA,KA)進(jìn)行認(rèn)證。VPN服務(wù)器選擇所屬域密鑰管理服務(wù)站點(diǎn)接入,認(rèn)證密鑰通常采用UKey傳遞(IDA,KA)的方式定期更換。其中,(IDA,KA)是VPN_A連入量子網(wǎng)a節(jié)點(diǎn)的身份證明及安全獲取量子密鑰的保證,通過(guò)(IDA,KA),VPN_A可以申請(qǐng)量子網(wǎng)內(nèi)其他節(jié)點(diǎn)與a節(jié)點(diǎn)之間的對(duì)稱密鑰。
VPN服務(wù)器之間的認(rèn)證(替換IKE協(xié)議安全信道的建立階段)均采用預(yù)置對(duì)稱密鑰作為初始認(rèn)證密鑰,當(dāng)認(rèn)證密鑰耗盡需要更換時(shí),密鑰管理模塊KM會(huì)使用QKD產(chǎn)生的量子密鑰更新認(rèn)證密鑰。VPN服務(wù)器會(huì)向密鑰交換模塊請(qǐng)求從KM獲取新的認(rèn)證密鑰,該過(guò)程同第3.2節(jié)密鑰交換過(guò)程。
受訓(xùn)人員使用VR手套與場(chǎng)景交互,手套與按鈕、油門手柄發(fā)生碰撞,觸發(fā)交互對(duì)象的操作動(dòng)畫。VR手套與上述物體交互時(shí),操作對(duì)象的動(dòng)畫播放與VR手套的操作不一致;例如使用VR手套撥動(dòng)油門手柄時(shí),手柄穿透VR手套且未及時(shí)播放動(dòng)作動(dòng)畫。
VPN之間、KM之間的認(rèn)證過(guò)程相同,均采用雙向認(rèn)證方案,只有擁有認(rèn)證密鑰的雙方才能正確地進(jìn)行加解密,并通過(guò)挑戰(zhàn)應(yīng)答的方式判斷對(duì)方的身份。
將IPSec VPN中的D-H密鑰交換替換為從KMS申請(qǐng)量子密鑰[10],如圖3所示。在VPN的密鑰交換模塊中增添一個(gè)環(huán)形緩沖區(qū),將經(jīng)典VPN密鑰交換改為共同協(xié)商從緩沖區(qū)提取密鑰片段。作為量子密鑰分發(fā)網(wǎng)的節(jié)點(diǎn),KMS內(nèi)設(shè)置了密鑰池來(lái)緩存2個(gè)KM服務(wù)器之間的對(duì)稱密鑰,QKD設(shè)備向密鑰池中補(bǔ)充密鑰。當(dāng)VPN環(huán)形緩沖區(qū)內(nèi)密鑰消耗量超過(guò)預(yù)定義的一次密鑰提取申請(qǐng)的密鑰量時(shí),VPN便會(huì)向KM服務(wù)器發(fā)起密鑰提取請(qǐng)求,并用提取的密鑰覆蓋已使用的密鑰。
圖3 量子密鑰交換
當(dāng)VPN雙方相互認(rèn)證成功并且均獲得KMS認(rèn)證后,即可請(qǐng)求KM服務(wù)器為它們推送密鑰KA,B[11]。請(qǐng)求與推送過(guò)程如下(在以下協(xié)議設(shè)計(jì)中,KM服務(wù)器密鑰池包含由后量子算法增強(qiáng)經(jīng)典密碼算法、量子密鑰分發(fā)算法產(chǎn)生的對(duì)稱密鑰):
1)VPN_B->VPN_A:IDA‖IDB‖Ag。VPN服務(wù)器B向VPN服務(wù)器A提出補(bǔ)充密鑰請(qǐng)求,協(xié)商補(bǔ)充密鑰的生成算法Ag(選擇量子密鑰分發(fā)算法),并發(fā)送給服務(wù)器A。
2)VPN_A->KM_A:IDA‖IDB‖L‖Ag。VPN服務(wù)器A向KM_A提出需要和VPN服務(wù)器B協(xié)商密鑰,則向KM_A發(fā)送雙方VPN服務(wù)器的ID、需要的密鑰長(zhǎng)度L、密鑰生成算法Ag。
3)KM_A->KM_B:E(KKM,L‖IDA‖IDB‖Ag‖R‖Check)。KM_A生成密鑰塊標(biāo)識(shí)R,然后將IDA、IDB、密鑰長(zhǎng)度L、生成算法Ag、密鑰標(biāo)識(shí)R通過(guò)兩地KM之間的主密鑰加密發(fā)送給KM_B。KM_B根據(jù)KM_A所指定的長(zhǎng)度L、生成算法Ag鎖定對(duì)應(yīng)的密碼片段,驗(yàn)證校驗(yàn)值是否為Check,并將該片段標(biāo)記為IDA‖IDB‖R,然后將校驗(yàn)結(jié)果反饋給KM_A。
4)KM_A->VPN_A:E(KA,KA,B‖R)。收到校驗(yàn)正常的反饋后,KM_A使用VPN_A與KM_A之間的認(rèn)證密鑰KA加密的密鑰KA,B和密鑰塊標(biāo)識(shí)R,發(fā)送給VPN服務(wù)器A。
5)VPN_A->VPN_B:E(KCAB,R)。VPN服務(wù)器A解密得到密鑰,并將密鑰塊標(biāo)識(shí)R加密發(fā)送給VPN_B。
6)VPN_B->KM_B:E(KB,IDA‖IDB‖R)。VPN_B將IDA‖IDB‖R加密發(fā)送給KM_B,申請(qǐng)?zhí)崛?duì)應(yīng)的密鑰。
7)KM_B->VPN_B:E(KB,KA,B)。KM_B將VPN_B與KM_B之間的認(rèn)證密鑰KB加密的密鑰KA,B推送給VPN_B。
由于電網(wǎng)等工控網(wǎng)絡(luò)中往往需要對(duì)網(wǎng)絡(luò)傳遞的指令或者數(shù)據(jù)進(jìn)行備份與審核,在VPN服務(wù)器中保存明文指令或會(huì)話密鑰均需要提升服務(wù)器安全級(jí)別。在QS-KMS中可以使用云安全模塊的安全存儲(chǔ)功能解決這一問(wèn)題:使用KMS的VPN服務(wù)器可以在向QS-KMS申請(qǐng)會(huì)話密鑰時(shí),注明該段密鑰需要KMS備份。因此,VPN服務(wù)器可以將密文和密鑰片段的標(biāo)識(shí)符轉(zhuǎn)發(fā)給審核機(jī)構(gòu),審核機(jī)構(gòu)從KMS中獲取對(duì)應(yīng)密鑰后解密并進(jìn)行數(shù)據(jù)審核。審核機(jī)構(gòu)同樣需要Ukey獲取量子隨機(jī)數(shù)與KMS認(rèn)證,并加密傳輸?shù)膶徍嗣荑€。
外界環(huán)境干擾或攻擊會(huì)對(duì)量子網(wǎng)絡(luò)造成影響,導(dǎo)致量子密鑰分發(fā)成碼率產(chǎn)生波動(dòng),最終使其無(wú)法穩(wěn)定地輸出量子密鑰。一般采用密鑰池(密鑰緩存)的方法來(lái)解決該問(wèn)題。但實(shí)際中多數(shù)為長(zhǎng)距離架空光纜的電力通信網(wǎng)絡(luò),受環(huán)境影響劇烈,惡劣天氣等因素會(huì)導(dǎo)致其日均成碼率存在較大波動(dòng),普通的密鑰池策略難以為其提供穩(wěn)定的密鑰輸出條件。因此,為保證電網(wǎng)應(yīng)用中VPN的長(zhǎng)期穩(wěn)定工作,本文在KMS中加入動(dòng)態(tài)密鑰管理策略,以解決惡劣天氣等因素造成的部分鏈路量子密鑰不足問(wèn)題,在此基礎(chǔ)上,設(shè)計(jì)一種集成后量子密碼保密增強(qiáng)方案,作為QKD中斷后的應(yīng)急備用措施。
KMS中每個(gè)KM服務(wù)器代表一個(gè)區(qū)域性的密鑰供給站點(diǎn),可以接入多個(gè)QKD設(shè)備,分別為不同的密鑰池補(bǔ)充密鑰。一對(duì)QKD設(shè)備與兩地KM中的一對(duì)密鑰池對(duì)應(yīng),KM可以根據(jù)當(dāng)前密鑰需求量對(duì)密鑰生成鏈路進(jìn)行調(diào)節(jié)[12-13]。如圖4所示,A、B、C處3個(gè)KM下掛QKD組成兩兩相連的密鑰分發(fā)網(wǎng)。如果AB之間的密鑰不足,而AC、BC之間的密鑰池內(nèi)密鑰充足,則KM會(huì)通過(guò)AC、BC之間的密鑰中繼向AB之間的密鑰池補(bǔ)充對(duì)稱密鑰:KM_A直接將密鑰池AC的部分密鑰轉(zhuǎn)移到密鑰池AB并通知KM_C,KM_C將該部分密鑰通過(guò)從密鑰池BC中取出的密鑰一次一密加密發(fā)送給KM_B[14],KM_B從密鑰池BC中取出對(duì)應(yīng)密鑰并解密,然后將解密結(jié)果存入密鑰池AB。
圖4 KM中的密鑰池對(duì)應(yīng)關(guān)系
KM接收到提取密鑰請(qǐng)求時(shí)查詢當(dāng)前剩余的密鑰量,若KM密鑰池中的剩余密鑰不足40%,KM則向其他節(jié)點(diǎn)提出通過(guò)密鑰中繼補(bǔ)充密鑰的請(qǐng)求,根據(jù)各節(jié)點(diǎn)給出的密鑰量反饋選擇一條或多條密鑰池密鑰量均超過(guò)70%的鏈路,然后通過(guò)密鑰中繼補(bǔ)充密鑰。
對(duì)于一般VPN服務(wù)器之間的數(shù)據(jù)量而言,量子密鑰分發(fā)的效率難以滿足一次一密要求,因此,當(dāng)VPN與量子密鑰結(jié)合時(shí),仍沿用VPN原有的加解密和更換密鑰的策略。當(dāng)因特殊原因?qū)е翶M密鑰池中的密鑰消耗過(guò)快,KM無(wú)法通過(guò)量子網(wǎng)絡(luò)的調(diào)節(jié)補(bǔ)充充足的密鑰時(shí),會(huì)通知VPN量子密鑰不足,并切換到使用后量子密碼增強(qiáng)密鑰進(jìn)行加密通信的模式。
QS-KMS使用liboqs庫(kù)[5]實(shí)現(xiàn)多種效率高于經(jīng)典ECDH算法的后量子密碼算法。在密碼增強(qiáng)方案中,默認(rèn)采用Newhope算法[15]產(chǎn)生的密鑰與ECDH算法生成的密鑰進(jìn)行異或運(yùn)算,結(jié)果作為后量子安全密鑰供VPN提取使用。
將本文QS-KMS與VPN結(jié)合的方案應(yīng)用于電力通信中的抗干擾量子通信系統(tǒng)實(shí)驗(yàn)。量子層設(shè)備為40 MHz快速偏振反饋方案QKD,實(shí)驗(yàn)環(huán)境選擇的鏈路為合肥市肥東變電站至肥西變電站之間共68 km的架空光纜,測(cè)試周期為16 d,實(shí)驗(yàn)時(shí)以電網(wǎng)中QKD設(shè)備在強(qiáng)環(huán)境干擾下的真實(shí)成碼率支撐QS-KMS和VPN傳輸業(yè)務(wù)。經(jīng)過(guò)優(yōu)化與測(cè)試,該段鏈路偏振編碼QKD每小時(shí)平均成碼率的波動(dòng)范圍為1.1 Kb/s~3.8 Kb/s,每日平均成碼率大于2 Kb/s[16]。隨后,對(duì)1 GHz高速時(shí)間相位編碼的QKD進(jìn)行測(cè)試,選擇的鏈路為上海市北電力與災(zāi)備中心的架空光纜,全程75 km,其中,架空部分長(zhǎng)55.5 km,測(cè)試周期為28 d。測(cè)試結(jié)果為:1 h成碼率波動(dòng)范圍在1.82 Kb/s~5.63 Kb/s,總平均成碼率為4.238 Kb/s。在上述實(shí)地測(cè)試案例中,QKD性能為Kb/s量級(jí),以128 bit密鑰長(zhǎng)度為例,每分鐘更新10次作為目標(biāo),對(duì)應(yīng)于每分鐘1 000次以上的更新速度,量子密鑰能夠支撐100個(gè)VPN實(shí)例同時(shí)運(yùn)行。
在嵌入式模塊LS1043上測(cè)試PQC算法模塊的運(yùn)行效率。其中,經(jīng)典的ECDH算法密鑰產(chǎn)生速率為75 Kb/s,Newhope算法密鑰產(chǎn)生的速率為184 Kb/s,后者能夠?qū)崿F(xiàn)對(duì)經(jīng)典算法的密鑰增強(qiáng),增強(qiáng)后整體密鑰產(chǎn)生速率為75 Kb/s,單片卡足以滿足中等規(guī)模網(wǎng)絡(luò)的VPN應(yīng)用需求,且可以根據(jù)需要對(duì)多卡進(jìn)行并行擴(kuò)容。
基于QS-KMS的統(tǒng)一后臺(tái)服務(wù)能夠?yàn)閂PN提供靈活、可重配的密鑰來(lái)源與更新速率,面向電網(wǎng)實(shí)際業(yè)務(wù)進(jìn)行應(yīng)用實(shí)驗(yàn),針對(duì)不同業(yè)務(wù)安全性需求,按照業(yè)務(wù)安全等級(jí)配置相應(yīng)的VPN密鑰使用策略,然后將量子密碼和量子通信技術(shù)有效地融入到電力通信網(wǎng)絡(luò)中,從而提升網(wǎng)絡(luò)管理和信息傳輸?shù)陌踩燃?jí)[17-18]。
本文通過(guò)QS-KMS與IKE協(xié)議的融合,在量子密鑰管理中擴(kuò)展加入密鑰動(dòng)態(tài)調(diào)節(jié)和后量子密碼算法,實(shí)現(xiàn)了持續(xù)穩(wěn)定運(yùn)行的量子安全VPN。將該量子安全VPN的實(shí)現(xiàn)方案及實(shí)驗(yàn)設(shè)備在區(qū)域電網(wǎng)實(shí)地場(chǎng)景中進(jìn)行測(cè)試,結(jié)果表明,該方案能夠滿足電網(wǎng)控制通信的需求。今后將針對(duì)電網(wǎng)、工控網(wǎng)、大數(shù)據(jù)中心等實(shí)際運(yùn)營(yíng)環(huán)境,進(jìn)一步完善QS-KMS系統(tǒng)結(jié)構(gòu),設(shè)計(jì)并集成量子安全簽名和后量子安全簽名等諸多方案,以建立工控網(wǎng)絡(luò)中完善穩(wěn)定的量子安全通信體系。
備注作者唐鵬毅與劉建宏對(duì)本文成果作出同等貢獻(xiàn)。