林雨生,昌 燕,陳天肅,喻世鵬,張仕斌
1.成都信息工程大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,四川 成都 610225
2.先進(jìn)密碼技術(shù)與系統(tǒng)安全四川省重點(diǎn)實(shí)驗(yàn)室,四川 成都 610225
隨著信息化技術(shù)的發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)成為信息傳輸?shù)闹饕d體。由于傳統(tǒng)計(jì)算機(jī)網(wǎng)絡(luò)保密通信的一切安全寓于密鑰中,因此有必要對(duì)傳統(tǒng)通信系統(tǒng)中密鑰的安全性進(jìn)行研究。目前,關(guān)于密鑰安全性的研究主要分為以下兩類:1)密鑰的安全生成與分發(fā);2)密鑰使用過(guò)程的安全管理。相應(yīng)地,傳統(tǒng)通信系統(tǒng)中密鑰的安全性也主要存在以下兩個(gè)問(wèn)題:1)密鑰生成與分發(fā)過(guò)程的安全性面對(duì)挑戰(zhàn)。在傳統(tǒng)通信模型中,公鑰體系承擔(dān)著保護(hù)通信密鑰與驗(yàn)證通信用戶身份的任務(wù),但隨著計(jì)算能力的提升與新型計(jì)算方法的提出,公鑰體系的安全性受到挑戰(zhàn),通信密鑰泄露的可能性隨著時(shí)間的增加而變大。2)在密鑰使用過(guò)程中的安全管理存在隱患。在傳統(tǒng)通信系統(tǒng)中,密鑰的使用記錄與安全事件的追溯追責(zé)都是由通信系統(tǒng)管理員完成的,存在記錄易于篡改和刪除的問(wèn)題,故對(duì)安全事件進(jìn)行追溯追責(zé)時(shí)無(wú)法保證可信性。
量子通信和區(qū)塊鏈技術(shù)的發(fā)展為傳統(tǒng)通信系統(tǒng)中存在的密鑰安全問(wèn)題提供了解決思路。量子通信是指將通信內(nèi)容以光子為載體,通過(guò)量子密鑰分發(fā)(quantum key distribution,QKD)網(wǎng)絡(luò)中的量子信道傳輸信息。文獻(xiàn)[1-3]闡述了量子密鑰傳輸過(guò)程中的無(wú)條件安全性由量子力學(xué)特性來(lái)保證;而文獻(xiàn)[4-5]正是利用量子通信技術(shù)解決了傳統(tǒng)通信系統(tǒng)中密鑰傳輸?shù)陌踩詥?wèn)題;文獻(xiàn)[6]認(rèn)為量子通信技術(shù)在保密通信中應(yīng)用廣泛;文獻(xiàn)[7]將量子信道管理機(jī)制應(yīng)用在大規(guī)模通信之中,實(shí)現(xiàn)了多節(jié)點(diǎn)的路由功能。在量子密鑰的管理方面,文獻(xiàn)[8]根據(jù)量子密鑰管理業(yè)務(wù)性能仿真的結(jié)果,提供了量子密鑰管理在通信中的應(yīng)用情況;文獻(xiàn)[9]利用基于量子密鑰虛擬專用網(wǎng)絡(luò)(virtual private network,VPN)的量子密鑰分發(fā)技術(shù),實(shí)現(xiàn)了量子密鑰在VPN 網(wǎng)絡(luò)中的傳輸。在量子密鑰的應(yīng)用研究方面,文獻(xiàn)[10]設(shè)計(jì)了融合量子密鑰的文件加密系統(tǒng),將量子密鑰結(jié)合一次一密的思想來(lái)保護(hù)系統(tǒng)的安全性;文獻(xiàn)[11]將量子密鑰應(yīng)用于移動(dòng)辦公以保護(hù)辦公的安全性;文獻(xiàn)[12]提出了基于量子通信技術(shù)的區(qū)塊鏈網(wǎng)絡(luò)匿名投票選舉協(xié)議,保證了投票結(jié)果在傳輸時(shí)的安全性。以上研究雖然有效解決了密鑰在分發(fā)、協(xié)商階段的安全性問(wèn)題,但是并沒(méi)有妥善解決量子密鑰使用過(guò)程中存在的管理問(wèn)題。此外,量子密鑰分發(fā)網(wǎng)絡(luò)的物理特性雖然保證了密鑰的安全生成與分發(fā),但在實(shí)現(xiàn)一次一密通信時(shí)存在量子密鑰生成率較低的問(wèn)題。在通信系統(tǒng)中傳輸?shù)臄?shù)據(jù)量越來(lái)越大的情況下,該問(wèn)題還沒(méi)有完善的解決方案。
區(qū)塊鏈?zhǔn)且环N具有去中心化、分布式計(jì)算、不可篡改等特點(diǎn)的技術(shù),可用來(lái)解決傳統(tǒng)通信中密鑰管理存在的信任問(wèn)題,因此與量子通信技術(shù)一樣在保密通信中得到了廣泛應(yīng)用。文獻(xiàn)[13]用區(qū)塊鏈實(shí)現(xiàn)去中心化的身份認(rèn)證及密鑰管理方案,為物聯(lián)網(wǎng)應(yīng)用場(chǎng)景下的身份認(rèn)證以及密鑰管理提供了可行的解決方案;文獻(xiàn)[14]提出了基于區(qū)塊鏈的醫(yī)療數(shù)據(jù)管理模型,利用區(qū)塊鏈記錄數(shù)據(jù)并進(jìn)行安全事件的追溯。文獻(xiàn)[15-16]使用區(qū)塊鏈解決物聯(lián)網(wǎng)中密鑰分發(fā)困難的問(wèn)題,并引入量子隨機(jī)數(shù)來(lái)保證密鑰的安全性,實(shí)現(xiàn)了不同物聯(lián)網(wǎng)底層傳感設(shè)備間的安全通信。以上研究借助區(qū)塊鏈的特性完成對(duì)業(yè)務(wù)數(shù)據(jù)的可信記錄與追溯,但存在以下問(wèn)題:1)密鑰在傳輸過(guò)程中存在被竊取的可能性;2)現(xiàn)有的管理方案是基于公有鏈實(shí)現(xiàn)的,故開(kāi)銷較大,不能實(shí)時(shí)更新;3)公有鏈的隱私保障與監(jiān)管控制存在隱患,因此其數(shù)據(jù)的隱私性不如私有鏈與聯(lián)盟鏈;4)基于區(qū)塊鏈的密鑰管理研究大部分關(guān)注于密鑰生成及分發(fā)階段的管理與記錄,而沒(méi)有對(duì)密鑰的全生命周期進(jìn)行管理。
針對(duì)以上研究存在的問(wèn)題,本文提出一種基于區(qū)塊鏈的量子密鑰全生命周期管理方案。首先,量子設(shè)備通過(guò)量子密鑰分發(fā)網(wǎng)絡(luò)生成量子協(xié)商密鑰池;然后,通信參與者向量子設(shè)備管理員請(qǐng)求量子密鑰,結(jié)合安全隨機(jī)數(shù)產(chǎn)生會(huì)話密鑰用于通信,同時(shí)將量子密鑰全生命周期管理過(guò)程中的日志信息上傳至區(qū)塊鏈;最后,區(qū)塊鏈管理員通過(guò)查詢鏈中的信息完成對(duì)量子密鑰全生命周期的管理與追溯。本方案使用量子密鑰分發(fā)技術(shù)實(shí)現(xiàn)量子密鑰的安全生成與分發(fā),結(jié)合區(qū)塊鏈技術(shù)解決了量子密鑰在使用過(guò)程中無(wú)法有效管理的問(wèn)題,并且以聯(lián)盟鏈替代公有鏈進(jìn)行管理,克服了現(xiàn)有的區(qū)塊鏈管理量子密鑰方案的缺點(diǎn)。
基于區(qū)塊鏈的量子密鑰全生命周期管理方案包含兩部分:1)保密通信模型。有保密通信需求的兩方機(jī)構(gòu)用戶利用量子密鑰的真隨機(jī)性與安全性進(jìn)行保密通信。量子密鑰在通信過(guò)程中經(jīng)歷了生成、分發(fā)、存儲(chǔ)、備份、使用、銷毀、更新的全生命周期,而各個(gè)節(jié)點(diǎn)用戶則將通信過(guò)程中的量子密鑰操作日志信息上鏈。2)區(qū)塊鏈管理員對(duì)量子密鑰全生命周期的管理模型。區(qū)塊鏈接收到各個(gè)節(jié)點(diǎn)用戶上傳的量子密鑰操作日志信息后,由區(qū)塊鏈管理員對(duì)各個(gè)節(jié)點(diǎn)產(chǎn)生的量子密鑰操作日志信息進(jìn)行管理。整體方案模型如圖1所示。
圖1 整體方案模型示意圖Figure 1 Schematic diagram of overall model
基于區(qū)塊鏈的量子密鑰管理的通信模型主要包括用戶身份模塊、量子密鑰初始化模塊、量子密鑰請(qǐng)求分發(fā)模塊、量子密鑰加密通信模塊、量子密鑰更新銷毀模塊。
1.1.1 用戶身份模塊
有保密需求的兩方機(jī)構(gòu)用戶進(jìn)行通信前,需要在通信系統(tǒng)和區(qū)塊鏈中獲取身份并認(rèn)證。
1)用戶注冊(cè)信息包含用戶名、密碼、所屬機(jī)構(gòu)ID 等。用戶完成注冊(cè)操作后,先由中心服務(wù)器將該用戶信息發(fā)送到區(qū)塊鏈,再由區(qū)塊鏈管理員根據(jù)當(dāng)前用戶信息生成該用戶在區(qū)塊鏈中的成員服務(wù)提供者(membership service provider,MSP)身份信息,并將MSP 信息返回給中心服務(wù)器進(jìn)行用戶名與MSP 信息的綁定操作。在此過(guò)程中,用戶雖然獲取了在通信系統(tǒng)和區(qū)塊鏈的身份,但還未在通信系統(tǒng)中進(jìn)行身份認(rèn)證。注冊(cè)綁定區(qū)塊鏈MSP 過(guò)程如圖2所示。
圖2 注冊(cè)綁定區(qū)塊鏈身份模塊示意圖Figure 2 Schematic diagram of registration and binding blockchain identity module
2)用戶CA 證書請(qǐng)求用戶完成注冊(cè)操作,雖然可以保證自己在上傳量子密鑰操作日志文件到區(qū)塊鏈時(shí)身份的合法性,但還不能保證在通信系統(tǒng)中身份的合法性。因此,用戶登錄后還應(yīng)向CA 證書服務(wù)器請(qǐng)求證書,并用公鑰基礎(chǔ)設(shè)施(public key infrastructure,PKI)體系保障通信時(shí)兩方機(jī)構(gòu)用戶身份的合法性。證書發(fā)放模塊如圖3所示。
圖3 CA 證書發(fā)放模塊示意圖Figure 3 Schematic diagram of CA certificate issuance module
1.1.2 量子密鑰初始化模塊
兩方機(jī)構(gòu)通過(guò)量子密鑰分發(fā)設(shè)備產(chǎn)生真隨機(jī)的對(duì)稱量子協(xié)商密鑰池,并分別存儲(chǔ)在兩方量子設(shè)備的管理員處,隨后兩方量子設(shè)備管理員通過(guò)協(xié)商量子密鑰編號(hào)規(guī)則生成量子密鑰文件,完成量子密鑰的初始化操作。量子密鑰初始化過(guò)程如圖4所示。
圖4 量子密鑰初始化示意圖Figure 4 Schematic diagram of quantum key initialization
1.1.3 量子密鑰請(qǐng)求分發(fā)模塊
兩方機(jī)構(gòu)用戶進(jìn)行保密通信前,需要向用戶所在機(jī)構(gòu)的量子設(shè)備管理員申請(qǐng)量子密鑰。當(dāng)用戶提交量子密鑰的請(qǐng)求操作到中心服務(wù)器時(shí),中心服務(wù)器首先根據(jù)用戶注冊(cè)時(shí)選擇的機(jī)構(gòu)ID 尋找該用戶的量子設(shè)備管理員,然后由量子設(shè)備管理員進(jìn)行分發(fā)量子密鑰操作。分發(fā)時(shí),量子設(shè)備管理員使用用戶CA 證書中的公鑰將量子密鑰ID(由兩方量子設(shè)備管理員協(xié)商的量子密鑰編號(hào)規(guī)則)、量子密鑰有效期以及該ID 對(duì)應(yīng)的量子密鑰進(jìn)行加密傳輸。用戶接收到量子設(shè)備管理員發(fā)送的數(shù)據(jù)包時(shí),先以自身私鑰進(jìn)行解密獲取內(nèi)容,再將量子密鑰、量子密鑰ID、量子密鑰有效期保存到本地量子密鑰文件中。量子密鑰分發(fā)過(guò)程如圖5所示。
圖5 量子密鑰分發(fā)示意圖Figure 5 Schematic diagram of quantum key distribution
1.1.4 量子密鑰加密通信模塊
一方用戶A登錄通信系統(tǒng)并獲取量子密鑰以及量子密鑰ID 后,可以選擇另一機(jī)構(gòu)成員B進(jìn)行保密通信。為了實(shí)現(xiàn)一次一密并減少量子密鑰的消耗,在每次通信時(shí)不是直接以量子密鑰作為會(huì)話密鑰,而是用量子密鑰加密每次通信產(chǎn)生的隨機(jī)數(shù)R形成會(huì)話密鑰。當(dāng)量子密鑰超過(guò)量子設(shè)備管理員設(shè)定的有效期后,用戶再次向量子設(shè)備管理員申請(qǐng)量子密鑰,其加密通信過(guò)程如圖6所示。
圖6 量子密鑰加密通信示意圖Figure 6 Schematic diagram of quantum key encryption communication
1.1.5 量子密鑰更新銷毀模塊
當(dāng)用戶申請(qǐng)的量子密鑰到期后,該用戶的量子設(shè)備管理員發(fā)送量子密鑰銷毀指令給用戶,同時(shí)自動(dòng)刪除本地量子密鑰文件中該量子密鑰的相關(guān)信息。用戶接收到量子密鑰銷毀指令后,自動(dòng)刪除本地量子密鑰文件中對(duì)應(yīng)的失效量子密鑰信息,再次向量子設(shè)備管理員請(qǐng)求量子密鑰用于保密通信。
量子密鑰的全生命周期可以通過(guò)量子密鑰在通信過(guò)程中經(jīng)歷的各種狀態(tài)來(lái)描述,這些狀態(tài)是兩方機(jī)構(gòu)成員在進(jìn)行保密通信時(shí)對(duì)量子密鑰的操作?;趨^(qū)塊鏈的量子密鑰全生命周期管理是對(duì)各個(gè)用戶節(jié)點(diǎn)上傳的量子密鑰操作日志文件的管理,因此在保密通信過(guò)程中,若涉及到對(duì)量子密鑰的操作都會(huì)以日志文件的形式保存到本地。對(duì)量子密鑰操作完成后,操作者使用在區(qū)塊鏈中的MSP 身份實(shí)時(shí)將量子密鑰操作日志文件上傳到區(qū)塊鏈。區(qū)塊鏈管理員接收到用戶上傳的量子密鑰操作日志文件后,利用智能合約將用戶上傳的信息加密存儲(chǔ)在區(qū)塊鏈上,并將區(qū)塊鏈網(wǎng)絡(luò)中的歷史信息形成分布式賬本,存儲(chǔ)并維護(hù)在所有網(wǎng)絡(luò)節(jié)點(diǎn)中實(shí)現(xiàn)去中心化管理,使量子密鑰的管理過(guò)程對(duì)每個(gè)用戶節(jié)點(diǎn)透明可信。其中,區(qū)塊鏈管理過(guò)程如圖7所示。
圖7 區(qū)塊鏈管理過(guò)程Figure 7 Blockchain management process
本方案中上傳的日志文件由1.1 節(jié)中的通信模型動(dòng)態(tài)產(chǎn)生。以管理員生成量子密鑰文件時(shí)產(chǎn)生記錄的日志文件為例,將產(chǎn)生該日志文件的偽代碼表示如下:
JsonData jsonData=new jsonData()
Map
map.put("index",index)
map.put("rule","k1++")
map.put("status","Create")
map.put("summary",summary)
map.put("createDate",createDate)
map.put("username",user.getUsername())
map.put("targetname",targetname)
管理員生成量子密鑰產(chǎn)生的日志文件之后,使用Google 遠(yuǎn)程過(guò)程調(diào)用(Google remote procedure call,GRPC)訪問(wèn)區(qū)塊鏈的上傳日志文件方法,并在上傳時(shí)用管理員MSP 信息進(jìn)行驗(yàn)證。管理員上傳至區(qū)塊鏈進(jìn)行上鏈操作的偽代碼和區(qū)塊鏈管理上傳日志文件的偽代碼如下:
grpcClient.request(user.getMspId(),"Org"+user.getGroupId(),json,"CREATE",null);
func (*SmartContract) createInfo(APIstub shim.ChaincodeStubInterface,args []string)sc.Response{}
在保密通信模型中,量子密鑰操作者在不同量子密鑰階段產(chǎn)生的日志文件以及將其上鏈管理的方式與此處一致,故不再贅述。下面介紹量子密鑰全生命周期中各個(gè)階段產(chǎn)生的日志信息需要包含的字段信息。
1.2.1 量子密鑰初始化日志信息
在兩方機(jī)構(gòu)成員進(jìn)行保密通信前,兩方量子設(shè)備管理員通過(guò)協(xié)商量子密鑰編號(hào)規(guī)則生成量子密鑰文件,完成量子密鑰的初始化操作。此過(guò)程產(chǎn)生的量子密鑰操作日志信息通過(guò)區(qū)塊鏈接口上傳到區(qū)塊鏈,由區(qū)塊鏈管理員進(jìn)行管理。其中,上傳的量子密鑰操作日志信息如表1所示。
表1 管理員初始化的量子密鑰日志表Table 1 Quantum key log table initialized by administrators
1.2.2 量子密鑰分發(fā)、存儲(chǔ)日志信息
當(dāng)量子設(shè)備管理員接收到本機(jī)構(gòu)成員的量子密鑰請(qǐng)求操作時(shí),依次將初始化密鑰文件中的量子密鑰以及對(duì)應(yīng)的ID 發(fā)放給提出請(qǐng)求的成員。量子設(shè)備管理員完成量子密鑰的分發(fā)操作后,需要記錄和上傳到區(qū)塊鏈中的量子密鑰操作日志信息如表2和3 所示。
表2 管理員分發(fā)的量子密鑰日志表Table 2 Quantum key log table distributed by administrators
表3 用戶接收的量子密鑰日志表Table 3 Quantum key log table received by users
1.2.3 量子密鑰使用日志信息
保密通信發(fā)起方用戶接收到量子密鑰后,在使用量子密鑰進(jìn)行通信時(shí)需要將量子密鑰操作的日志信息記錄并上傳到區(qū)塊鏈;保密通信接收方用戶在使用量子密鑰對(duì)消息內(nèi)容進(jìn)行解密時(shí)也需要將量子密鑰操作的日志信息記錄并上傳到區(qū)塊鏈。日志信息包含內(nèi)容如表4所示。
表4 用戶使用的量子密鑰日志表Table 4 Quantum key log table used by users
1.2.4 量子密鑰銷毀更新日志信息
當(dāng)預(yù)設(shè)的量子密鑰過(guò)期后,量子設(shè)備管理員會(huì)發(fā)放銷毀指令給已分發(fā)的用戶,用戶接收到該消息時(shí)自動(dòng)刪除本地密鑰文件中過(guò)期量子密鑰的信息。在這個(gè)過(guò)程中,量子設(shè)備管理員與用戶需要記錄和上傳的日志信息如表5和6 所示。
表5 管理員銷毀的量子密鑰日志表Table 5 Quantum key log table destroyed by administrators
表6 用戶銷毀的量子密鑰日志表Table 6 Quantum key log table destroyed by users
當(dāng)保密通信系統(tǒng)中發(fā)生安全事件時(shí),區(qū)塊鏈管理員可以根據(jù)用戶對(duì)量子密鑰全生命周期操作的日志文件信息進(jìn)行查看追溯,判定本次安全事件是在量子密鑰全生命周期中哪個(gè)階段由哪個(gè)操作者引起的。由于各個(gè)用戶節(jié)點(diǎn)都存有量子密鑰操作日志信息的賬本,因此各個(gè)用戶節(jié)點(diǎn)對(duì)于區(qū)塊鏈管理員的追溯結(jié)果都可查證?;趨^(qū)塊鏈的量子密鑰全生命周期追溯利用了區(qū)塊鏈不可否認(rèn)、去中心化等特點(diǎn),因此對(duì)量子密鑰的管理更加透明而可信。
以保密通信系統(tǒng)中發(fā)生的安全事件是用戶使用已銷毀的密鑰進(jìn)行保密通信為例,區(qū)塊鏈管理員需要根據(jù)量子密鑰全生命周期產(chǎn)生的量子密鑰操作日志信息對(duì)所有用戶節(jié)點(diǎn)進(jìn)行追溯,最終判定安全事件的責(zé)任方以及量子密鑰操作的出錯(cuò)階段。
當(dāng)安全事件發(fā)生時(shí),區(qū)塊鏈管理員首先獲取發(fā)生安全事件的密鑰、安全事件的提出者身份、安全事件提出者所在組織號(hào),然后使用以下的偽代碼查詢區(qū)塊鏈存儲(chǔ)的相關(guān)信息。
public void query(String user,String org,String txtId){
TxIdRequest request=TxIdRequest.newBuilder().setUser(user).setOrg(org).setTxid(txtId).build();
Response response;
try{
response=this.blockingStub.queryInfoByTxId(request);
} catch(StatusRuntimeException e) {
System.out.println(e.getMessage());
return;
}
String texId=response.getTxid();
}
func(s*SmartContract)queryInfo(APIstub shim.ChaincodeStubInterface,args[]string)sc.Response {
secretAsBytes :=APIstub.GetState(args[0])
return shim.Success(secretAsBytes)
}
區(qū)塊鏈接收到請(qǐng)求之后,生成響應(yīng)并返回查詢結(jié)果,最后展示在追溯界面中。
下面介紹區(qū)塊鏈管理員在安全事件發(fā)生時(shí)如何對(duì)量子密鑰全生命周期過(guò)程進(jìn)行追溯追責(zé)。
區(qū)塊鏈管理員首先查看并展示量子設(shè)備管理員上傳的日志文件,然后根據(jù)日志文件中的量子密鑰狀態(tài)、量子密鑰編號(hào)規(guī)則、量子密鑰文件摘要信息判斷量子密鑰生成過(guò)程是否有誤。若有誤,則說(shuō)明使用已銷毀的密鑰進(jìn)行保密通信這個(gè)安全事件是此過(guò)程發(fā)生的,于是區(qū)塊鏈管理員要求量子設(shè)備管理員提供量子密鑰文件進(jìn)行追溯,判定此次安全事件的責(zé)任方。區(qū)塊鏈管理員追溯追責(zé)過(guò)程如圖8所示。
圖8 量子密鑰生成的追溯流程示意圖Figure 8 Schematic diagram of traceability process of quantum key generation
區(qū)塊鏈管理員在確認(rèn)量子密鑰生成階段無(wú)誤后,將對(duì)量子密鑰分發(fā)階段進(jìn)行管理。區(qū)塊鏈管理員需要查看量子設(shè)備管理員和用戶上傳的日志文件,并對(duì)比兩個(gè)日志文件中的量子密鑰ID、量子密鑰狀態(tài)信息。若用戶日志文件中的量子密鑰ID 與量子設(shè)備管理員日志文件中的量子密鑰ID 一致,并且用戶日志文件中量子密鑰狀態(tài)為已收到但未使用,量子設(shè)備管理員日志文件中量子密鑰狀態(tài)為已分發(fā),則說(shuō)明量子密鑰分發(fā)過(guò)程無(wú)誤;反之則說(shuō)明該安全事件是量子密鑰分發(fā)階段產(chǎn)生的,此時(shí)區(qū)塊鏈管理員應(yīng)要求用戶提供存儲(chǔ)量子密鑰的文件,然后比較量子密鑰文件的摘要信息等來(lái)判定錯(cuò)誤的責(zé)任方。量子密鑰生成和分發(fā)的追溯追責(zé)過(guò)程如圖9所示。
圖9 量子密鑰分發(fā)的追溯流程示意圖Figure 9 Schematic diagram of traceability process of quantum key distribution
對(duì)量子密鑰存儲(chǔ)過(guò)程進(jìn)行追溯時(shí),區(qū)塊鏈管理員需要查看量子設(shè)備管理員上傳的量子密鑰備份文件摘要、量子密鑰編號(hào)規(guī)則。若兩方機(jī)構(gòu)量子設(shè)備管理員上傳的量子密鑰文件摘要一致,則認(rèn)為量子密鑰備份操作無(wú)誤;若不一致,則要求雙方管理員提供量子密鑰備份文件來(lái)判定錯(cuò)誤的責(zé)任方,并說(shuō)明該安全事件是在量子密鑰備份階段產(chǎn)生的。
對(duì)量子密鑰的使用進(jìn)行追溯時(shí),區(qū)塊鏈管理員只需查看通信雙方對(duì)量子密鑰操作的日志文件。若雙方日志文件中量子密鑰狀態(tài)不一致,則說(shuō)明量子密鑰使用過(guò)程有誤,此時(shí)區(qū)塊鏈管理員應(yīng)要求通信雙方和量子設(shè)備管理員提供相應(yīng)的日志文件,查看用戶日志文件中量子密鑰ID 對(duì)應(yīng)的量子密鑰狀態(tài),驗(yàn)證日志文件的摘要信息是否正確,再通過(guò)綜合判斷來(lái)確定錯(cuò)誤的責(zé)任方。量子密鑰存儲(chǔ)和使用的追溯流程如圖10所示。
圖10 量子密鑰使用的追溯流程示意圖Figure 10 Schematic diagram of traceability process for use of quantum keys
對(duì)量子密鑰更新和銷毀進(jìn)行追溯時(shí),區(qū)塊鏈管理員需要查看并展示通信雙方以及各自對(duì)應(yīng)的量子設(shè)備管理員的日志文件,并對(duì)比4 個(gè)日志文件中相應(yīng)的量子密鑰ID、量子密鑰狀態(tài)是否一致。若不一致,則說(shuō)明安全事件是由有誤的日志文件上傳方所引起的,并且安全事件是在量子密鑰銷毀階段產(chǎn)生的。量子密鑰更新和銷毀的追溯流程如圖11所示。
圖11 量子密鑰更新銷毀管理流程示意圖Figure 11 Schematic diagram of quantum key update and destruction management process
本文提出一種基于區(qū)塊鏈的量子密鑰全生命周期管理方案,結(jié)合量子通信技術(shù)和一次一密的思想,保證了兩方機(jī)構(gòu)用戶在通信過(guò)程中的安全性;利用區(qū)塊鏈的特性對(duì)量子密鑰的全生命周期進(jìn)行管理與追溯,實(shí)現(xiàn)對(duì)量子密鑰更加透明的監(jiān)管。當(dāng)安全事件發(fā)生時(shí),區(qū)塊鏈可以根據(jù)各個(gè)用戶節(jié)點(diǎn)的量子密鑰操作日志文件進(jìn)行追溯追責(zé),從而確保量子密鑰在生成、分發(fā)、存儲(chǔ)、使用、備份、更新和銷毀過(guò)程中的安全性。