林雨生 昌 燕 侯麒煜 謝汶廷 王 瑋 陳天肅
(成都信息工程大學網絡空間安全學院,四川 成都 610225)
傳統通信系統中,保證密鑰的安全性是用戶進行保密通信的前提。密鑰的安全性問題主要分為兩個方面:(1)密鑰生成時不是真隨機的序列,并且在密鑰分發時,由于計算能力的提高,密鑰泄露的可能性越來越大;(2)密鑰管理缺乏可信度,當發生安全事件時,管理員無法進行有效及可信賴的追溯追責。
量子通信[1-3]利用量子力學特征,使量子密鑰分發時具有無條件安全性,并且產生的量子密鑰是真隨機的序列。因此,量子通信能夠有效解決傳統通信系統中密鑰生成與分發的安全性問題。目前,量子通信在保密通信中應用越來越廣泛,賴俊森等[4]分析了量子保密通信的發展前景,并提出了相應的策略;曹原等[5]分析了目前量子通信網絡的研究進展,提出量子通信網絡體系架構;鄭煒能[6]將量子通信應用于實現多節點的路由功能;查振興等[7]則將量子通信應用于VPN網絡中密鑰的傳輸;吳佳楠等[8]將量子密鑰應用于文件加密系統中;熊英等[9]將量子通信應用于保護移動辦公的安全中。以上研究保證了量子密鑰生成、分發的安全性,但沒有解決量子密鑰使用及管理時存在的安全性問題。
聯盟鏈[10]是區塊鏈的一種,由多個私有鏈組成,只有聯盟內部的機構及其用戶才能訪問數據,達成共識容易。目前,聯盟鏈應用于保密通信中量子密鑰管理的研究較少,已有的研究中,姚英英等[11]提出使用區塊鏈應用于物聯網場景下的身份認證以及密鑰管理方案;石潤華等[12]利用區塊鏈技術解決了物聯網中密鑰分發困難的問題,并且使用量子隨機數提高密鑰的安全性。以上研究使用公有鏈進行密鑰管理,不能進行實時更新,并且公有鏈的數據隱私性較弱。
針對目前研究中存在的問題,本文結合區塊鏈技術與量子通信技術,提出一個基于國密化區塊鏈平臺的量子密鑰全生命周期管理系統,具有以下特點:將量子密鑰應用于傳統保密通信中,并使用一次一密的思想,保證量子密鑰生成、分發、使用時的安全性;將國密化算法替換國際通用密碼算法,構建國密化Fabric聯盟鏈管理系統用于量子密鑰的全生命周期管理;聯盟鏈管理員可以對量子密鑰的全生命周期中發生的安全事件進行追溯追責。本文提出的系統,可以實現對量子密鑰的可信、有效監管,并能對保密通信時發生的安全事件進行追溯追責,解決了經典通信系統中密鑰存在的安全性問題。
系統的業務包括兩個機構成員間的保密通信、國密化Fabric聯盟鏈平臺搭建與管理、量子密鑰操作日志信息上鏈、聯盟鏈管理員對安全事件的追溯追責。具體開發邏輯如下。
(1)兩個機構間的保密通信業務。根據兩個機構間的保密通信需求,構建C/S模式的保密通信網絡。該業務包含3個方面:兩個機構量子設備管理員首先通過量子密鑰分發產生對稱密鑰池,然后進一步協商量子密鑰編號規則以及選取量子密鑰的長度;兩個機構成員向各自管理員申請量子密鑰用于保密通信;在保密通信時使用CA證書、公鑰體系和對稱密碼技術保證安全性。
(2)國密化Fabric聯盟鏈開發業務。將現有Fabric聯盟鏈進行國密化改造,建立Fabric平臺。以兩個機構中兩個成員進行保密通信為例,配置有兩個機構的組織,并且在每個組織的節點上寫入鏈碼。
(3)量子密鑰操作日志信息上鏈。在兩個機構成員間進行保密通信的整個過程中,有關量子密鑰全生命周期的操作日志文件由兩個機構的管理員或用戶上傳到Fabric平臺中,最后由聯盟鏈管理員進行管理。
(4)安全事件的追溯追責。當兩個機構成員進行保密通信時或保密通信后,若發生安全事件,則由聯盟鏈管理員根據發生安全事件時的量子密鑰ID進行追溯追責。
系統的架構主要包括國密化Fabric聯盟鏈平臺、基于C/S模式的保密通信網絡、Web服務器端的管理與追溯追責,見圖1。
其中客戶端為兩個機構中的成員及管理員。該客戶端保密通信網絡采取C/S模式,當兩個機構成員或管理員操作量子密鑰時,實時記錄并上傳相關量子密鑰操作日志文件到聯盟鏈中。
Web管理端使用Vue框架進行編寫,為聯盟鏈管理員對安全事件進行管理與追溯追責,是系統的核心。當聯盟鏈管理員登錄Web后端后,可以查詢客戶端用戶上傳時的交易ID,并以量子密鑰的全生命周期過程進行分類,查詢所有交易ID的交易信息進行分類展示。若對安全事件進行追溯追責時,則查詢發生安全事件的量子密鑰ID,展示該量子密鑰ID對應量子密鑰的全生命周期過程中的交易信息,再由管理員進行逐一排查,最終確定安全事件的責任方。
國密化Fabric聯盟鏈平臺包括數據層、網絡層等,其功能是對機構用戶或管理員上傳的量子密鑰操作日志信息進行存儲。其中數據層是聯盟鏈的核心部分,能將機構用戶或管理員的量子密鑰日志操作文件上傳到聯盟鏈中;網絡層保證了Fabric聯盟鏈中的信息傳輸,主要有共識機制和數據驗證機制等;合約層含有Fabric聯盟鏈的智能合約,也稱為鏈碼,是在Fabric聯盟鏈上進行存儲等操作的一段代碼,并且能與Fabric網絡進行交互;最外層是應用層,包含了Fabric SDK模塊,能實現Fabric聯盟鏈與后端服務的連接。
為實現聯盟鏈平臺算法的自主可控,則需用國密算法替換BCCSP模塊[13]中的哈希算法、對稱密碼算法以及非對稱密碼算法。目前,曹琪等[14]已經對如何嵌入國密化算法到聯盟鏈平臺中有一定研究,本文構建的國密化區塊鏈平臺則借鑒其思想將國密SM2、SM3、SM4算法替換 SHA算法、AES算法、RSA算法等,并根據使用量子密鑰的保密通信機構設置節點等信息,以便用于量子密鑰全生命周期的管理與安全事件的追溯。
2.1.1 國密化聯盟鏈環境搭建
系統將聯盟鏈搭建在Ubuntu環境下,使用Goland編輯器運行代碼,然后安裝聯盟鏈環境的依賴程序以及Fabric的系統文件,再運行Fabric文件中的bootstrap腳本完成其余文件的配置,隨后將國密化算法接口嵌入到上層應用中,實現對國密算法調用的支持,最后根據保密通信中含有的機構數量創建組織節點,構建證書、數據文件和通道,同時打開orderer和peer節點,當通道創建后,將節點逐個加入,則完成國密化聯盟鏈環境部署。本系統創建的兩個組織的相關信息見表1。

表1 組織信息
當完成通道創建后,添加節點和對所構建的節點進行測試見圖2~3。
2.1.2 國密化聯盟鏈鏈碼開發
在保密通信過程中,為實現兩方機構管理員和用戶的量子密鑰日志文件進行實時上傳,Fabric聯盟鏈需要進行相應鏈碼的開發及封裝,主要方法見表2。

表2 鏈碼方法
本系統以經典通信為基礎,使用java語言進行編程,采取C/S通信模式,將量子密鑰融入到經典通信網絡中,保證通信密鑰的真隨機性及不可竊取。保密通信網絡包含:兩個機構管理員進行量子密鑰傳輸及協商量子密碼本;兩個機構成員使用量子密鑰進行保密通信;兩個機構管理員及成員上傳量子密鑰日志文件到區塊鏈中。
2.2.1 協商量子密碼本
兩個機構間需要進行保密通信時,首先需要兩方機構管理員間使用量子設備產生對稱量子密鑰池,借助DH密鑰協商的思想,兩個機構管理員利用公私鑰體系保護協商內容及CA證書進行身份認證,再確定所取量子密鑰長度以及每個量子密鑰的編號規則,最終產生對稱的量子密碼本保存在本地。本系統以兩個機構管理員協商的編號規則為k+遞增,選取的量子密鑰長度為128位,則兩方機構管理員最終形成的量子密碼本見圖4。
2.2.2 保密通信
當兩個機構成員需要進行保密通信時需要如下步驟:
(1)各個機構成員需向各自管理員申請量子密鑰,由管理員使用公私鑰體系將量子密鑰進行內網傳輸到指定成員,并記錄此次操作保包含的日志信息,以便后續上傳至區塊鏈中,其管理員分發量子密鑰后展示界面見圖5。
(2)機構成員接收到量子密鑰后首先存儲在本地密碼本中,并在成員界面展示密鑰相關信息,然后將其作為AES-128算法的密鑰種子產生一級密鑰,再將該一級密鑰加密隨機數R產生會話密鑰,最后用于加密通信內容,并使用公私鑰體系將加密通信內容、量子密鑰ID、隨機數R等發送至另一機構接收方,同時記錄此次量子密鑰相關日志信息,其發送方用戶界面展示見圖6。
(3)接收方利用公私鑰體系進行解密數據包,首先查詢是否含有量子密鑰ID對應的量子密鑰,若沒有則與步驟(2)申請量子密鑰操作一致,然后還原出會話密鑰解密通信內容,并記錄此次量子密鑰相關日志信息。以上步驟則稱為完成兩個機構間的保密通信。
2.2.3 上傳量子密鑰日志文件
為實現對量子密鑰全生命周期的管理與發生安全事件時的追溯追責,兩方機構管理員與成員在對量子密鑰進行相關操作時,都需要將量子密鑰日志文件以json格式實時上傳至區塊鏈中。在量子密鑰全生命周期中,兩方機構管理員或用戶對量子密鑰的操作信息見表3。

表3 量子密鑰日志信息字段
當兩方機構管理員或用戶操作量子密鑰并形成日志文件時,管理員或用戶只需使用GRPC遠程調用區塊鏈封裝的方法即可,其主要的調用方法見表4。

表4 上鏈調用方法
當保密通信過程中或通信后發生安全事件時,區塊鏈管理員可登錄管理后臺,查詢相關量子密鑰ID全生命周期過程中所記錄的日志信息,并根據量子密鑰全生命周期的不同階段逐步追溯安全事件的責任人以及時間段。其中量子密鑰管理及追溯平臺采用Vue框架,并與區塊鏈平臺進行實時查詢交易信息并展示。
2.3.1 量子密鑰全生命周期管理
量子密鑰的全生命周期包括密鑰生成、分發、使用、銷毀階段,根據保密通信過程中兩方機構管理員或用戶上傳的量子密鑰日志信息進行分類,使得區塊鏈管理員可以實時查看每個階段的量子密鑰相關信息,以便及時發現安全事件。以量子密鑰生成階段為例,區塊鏈管理員查看的信息展示見圖7。
2.3.2 安全事件追溯追責
當區塊鏈管理員或保密通信用戶發現安全事件時,則由區塊鏈管理員首先排查安全事件發生的階段以及責任方。區塊鏈管理員根據發生安全事件時使用的量子密鑰ID查詢其所有的日志信息,并以量子密鑰全生命周期不同階段進行展示;然后由管理員對比每個階段參與者的日志信息是否不一致,若發現有問題的階段則點擊錯誤按鈕,再進入下一個階段,直到判別完該量子密鑰的全生命周期所有階段的日志信息則結束;最后則完成追溯,并展示出錯的階段以及該階段的參與者,隨后再聯合相關參與者判定此次安全事件的責任人。安全事件追溯及追溯結果展示見圖8、圖9。
本文針對經典保密通信中存在的密鑰易泄露、密鑰不真隨機等問題,將量子密鑰用于經典保密通信中,并構建國密化區塊鏈平臺對量子密鑰的全生命周期進行管理與追溯,實現量子通信與區塊鏈的結合應用。當發生安全事件時,由于區塊鏈具有去中心化、數據不可篡改等特點,區塊鏈管理員可以對安全事件進行可靠、可信的追溯追責,保證了保密通信過程中量子密鑰全生命周期的安全性,并能對量子密鑰使用者進行一定程度上的威懾,使之不能隨意進行破壞。
致謝:感謝成都市科技項目(2019-YF05-02028-GX)對本文的資助