黃逸翔,王亞威,陳文軒,張子蛟
(1.鄭州大學 軟件學院,河南 鄭州 450000;2. 鄭州大學 網絡管理中心,河南 鄭州 450000)
由于計算機只能通過識別用戶的數字身份來進行身份驗證,所有對用戶的授權操作都依賴于針對用戶數字身份的授權[1]。身份認證技術就起到了決定性作用。公鑰基礎設施(public key infrastructure,PKI)作為互聯網安全基礎設施,從多個方面為身份驗證提供安全服務。文獻[2]闡明了PKI提供安全保障服務的完整過程。對數字證書的集中管理,進行在證書頒發機構(certificate authority,CA)上。CA是證書的簽發機構,它是PKI的核心,是信任的起點。認證中心CA進行證書簽發、證書更新、證書撤銷等操作,并負責定期將過期證書發布到證書廢除列表CRL中[3]。它為每個使用公開密鑰的用戶發放一個數字證書,該證書是不能偽造和篡改的。信任某CA所頒發的數字證書的前提是信任該CA。
但是,由于傳統PKI體系結構是樹形結構的,在特定應用中PKI技術存在一些缺陷。處于核心地位的CA顯得十分薄弱,一旦遭受攻擊,CA根證書以及該CA已經簽發的證書都不能再作為信任錨點,各種單點故障問題暴露無遺。同時用戶配置證書和安裝證書到目標設備過程極其復雜,在需要批量配置時效率極低,要求極高的成本和管理開銷。當用戶涉及到多個CA的時候,不同CA之間的無法驗證的問題又使得用戶操作變得十分繁瑣,存在多CA互信難的問題。
文獻[4,5]闡述了區塊鏈技術優勢和應用前景。研究表明區塊鏈有利于在人工智能和人類增強領域得到應用。隨著區塊鏈技術在身份認證領域的應用研究,區塊鏈技術將會解決傳統PKI體系中遇到的問題。
本文設計了一種基于區塊鏈的PKI系統,并對系統進行了架構和網絡拓撲的設計,同時使用一套鏈上證書管理方案,將證書及證書操作記錄存儲到區塊鏈上。通過標準驗證和區塊鏈驗證相結合的方式來實現證書驗證。在查詢證書時,可以向區塊鏈中的任意一個節點查詢,從而避免單點故障問題。采用聯盟鏈作為模型結構,通過對X.509數字證書進行改進,使用實體雙向認證來實現跨域認證,同時從證書鏈入手,簡化證書路徑,降低跨域認證的復雜度,減少簽名次數,提高跨域認證效率,解決上述問題。并在最后進行模擬實驗對模型進行分析。
文獻[6,7]分析了比特幣的信任機制和數字貨幣功能,使用區塊鏈技術保證交易和操作的正確性成為了可能。區塊鏈協議固有的特性限制了交易的吞吐量和延遲,文獻[8]提出了基于Bitcoin的可擴展協議,使用比特幣的共享信任模型,提高了交易實時性,并且具有容錯性和魯棒性。當合同發生違約或中止時,去中心化區塊鏈能夠確保實施相應的賠償政策,然而現有的交易系統缺乏對用戶的隱私保護,所有的交易信息可通過區塊鏈進行查詢,文獻[9]提出了一種去中心化智能合約系統,間接存儲區塊鏈交易數據,達到了保護用戶隱私的目的。因此區塊鏈技術具有不可比擬的獨特優勢,把區塊鏈技術運用到公鑰基礎設施中正好可以解決上述問題。所以本文設計基于區塊鏈技術的PKI系統,利用區塊鏈的特性解決PKI的單點故障問題,同時把不同域的根CA加入到聯盟鏈中,使得各個CA中心之間無障礙互信,解決了多CA互信難的問題,并提高證書部署的實際效率。
伴隨著區塊鏈技術在各行各業的應用研究,在身份認證領域,區塊鏈的引入對PKI體系的發展也起到了積極作用。2014年,美國學者Conner提出了第一個將區塊鏈技術與PKI相結合的例子Certcoin,使用區塊鏈的分布式賬本來記錄域名和公鑰,通過區塊鏈的交易來實現證書管理,使用Merkle樹記錄的Hash值來實現身份的驗證。但由于區塊鏈中的信息都是公開透明的,所以在Certcoin中,用戶的隱私不受到保護。隨后,文 獻[10,11]提出了新的PB-PKI(privacy-awareness in blockchain-based PKI)模型,該模型使用不同密鑰的方式對用戶隱私進行了保護,同時設置多種用戶隱私等級,減少了用戶隱私被泄露的風險。文獻[12,13]提出了一種及時響應的PKI框架IKP(instant karma PKI),通過利用智能合約和基于區塊鏈的共識機制,對IKP的權力進行分散,利用自動激勵措施,針對檢測器進行獎勵和對違法CA的懲罰來保證體系安全??缬蛘J證是通過不同域之間建立信任關系,來實現一個域請求另一個域中的資源。
Kerberos系統是最早出現的跨域認證案例,使用非對稱密碼技術建立,但該技術僅適用于特定的Kerbers域中。文獻[14]提出了一種基于公鑰的分布式身份認證模型,該模型具有良好的可擴展性,為后續的拓展研究提供了基礎。文獻[15]以基于身份的密碼體制為基礎,提出了一種基于身份的多信任域認證模型,但因其用戶需要多次完成雙線性對運算,導致計算開銷過大。在跨域認證方面,文獻[16]提出了一種基于PKI域和IBC域之間的異構跨域認證密鑰協商方案,該方案可以保證較高的安全性和效率,但該方案只針對EIM環境下的異構企業之間。文獻[17]提出一種基于區塊鏈的跨異構域認證方案,采用將IBC域中的區塊鏈域代理服務器和PKI域區塊鏈證書服務器加入到聯盟鏈中方法,實現了IBC域和PKI域之間的跨異構域認證,并且降低用戶終端的計算量,但因為區塊鏈系統中數據只增不刪,引起存儲數據而帶來的系統的開銷浪費。
根據區塊鏈的開放對象的不同,參與者和權限的差異,區塊鏈的應用模式被分為以下3種類型:公有區塊鏈(public blockchain)、行業區塊鏈(consortium blockchain)、私有區塊鏈(private blockchain)。這里考慮到一方面要符合用戶、CA中心等多域間跨域認證需要,另一方面由于區塊鏈公式算法不同,聯盟鏈效率較高,系統可擴展性強的特點,選用其為原型。
出于對未來實用化時方便拓展和改進的準備,本文使用模塊化思想進行PKI系統的概念設計,基于區塊鏈的PKI系統的架構設計如圖1所示。

圖1 基于區塊鏈的PKI系統架構
架構中基本要素包括:
證書用戶:指PKI系統中證書的實際擁有者。
PKI系統:用于完成傳統PKI體系中RA中心功能的注冊中心RA,負責審核用戶的數字證書申請,并將用戶申請轉交給證書頒發機構CA;負責證書發放和證書生命周期管理的證書頒發機構CA;包括共識機制策略管理、節點管理和智能合約管理的區塊鏈管理部分,負責將PKI系統產生的數字證書和證書操作過程寫入到區塊鏈中。
區塊鏈平臺:結合以太坊(ethereum,ETH)設計靈活、適應性強、對智能合約支持能力強大等特點。它支持任何人在上面創建和使用通過區塊鏈技術運行的去中心化應用(decentralized application,DApp)。
針對基于區塊鏈的PKI系統網絡拓撲結構設計,區塊鏈網絡中主要部署了背書節點、記賬節點、主節點和排序服務節點。設計背書交易、成塊交易、提交與確認等交易流程來實現PKI證書在區塊鏈上進行存儲。將所有有關證書的操作,都視為區塊鏈平臺中的一筆交易進行處理,來實現基于區塊鏈的PKI系統的證書管理。
在證書使用者和證書依賴方之間建立信任關系,采用將數字證書和證書操作記錄存儲到區塊鏈中的方式,使得用戶在查詢證書時,可以向區塊鏈中的任意一個節點查詢,從而避免單點故障問題。實際驗證過程在保證標準的CA證書驗證過程的基礎上,當中間證書服務器或根證書服務器發生故障的情況下,才使用區塊鏈上的驗證過程。其核心操作是,對證書進行哈希運算,得到一個哈希值并以此為關鍵參數,將對證書的驗證轉換為對交易的驗證,用戶到區塊鏈平臺上查詢證書的合法性。驗證過程如圖2所示。

圖2 基于區塊鏈改進后的CA證書驗證過程
通過分析信任列表信任模型、交叉認證信任模型、根CA信任模型和橋CA信任模型等多個模型的安全屬性,確定出基于聯盟鏈的跨域認證模型,如圖3所示。由根CA、CA、用戶、聯盟鏈平臺等組成,把每個域內的根CA加入到聯盟鏈網絡中,共同構建多中心的聯盟鏈平臺。

圖3 本文聯盟鏈跨域認證模型
認證思路如下:PKI使用的信任模型是基于CA域來描述的,獨立的CA認證中心及其所管理的范圍構成一個CA信任域,并以其為單位進行跨域通信。將A域用戶和B域用戶的鏈證書的哈希值存儲到區塊鏈中,當A域用戶請求訪問B域的資源時,A域的用戶將自己的簽名、區塊鏈證書和隨機數發送給B域的認證服務器,B域認證服務器對收到的信息進行驗證,驗證A域用戶的根CA區塊鏈證書的哈希值,如果驗證通過,則A域用戶被允許跨域訪問B域服務器資源。
CA對傳輸數據的加密、解密、數字簽名和身份驗證等操作都是依賴數字證書,PKI體系就是依據數字證書實現的。本文通過以X.509證書為基礎進行改進,來設計一種區塊鏈證書,并將其存儲于聯盟鏈中,作為跨域認證模型的信任憑證。區塊鏈證書結構如圖4所示。

圖4 本文設計的區塊鏈證書
設計方案如下:
(1)去除頒布者標識和主體標識
傳統X.509數字證書中,證書頒布者和證書擁有者的唯一標識屬于可選項,一句具體應用需要來確定是否使用。在區塊鏈上信任域中的實體對象有效,頒布節點和持有節點可以驗證證書的唯一性,所以直接去掉這兩項以簡化證書數據。
(2)去除CA簽名項
由于區塊鏈天然的具有不可篡改性,證書相關數據一旦上傳至區塊鏈就得到了保護,同時在通過交易的方式產生證書時,證書的頒布者已經被進行了記錄,所以頒布者再用自己的私鑰對證書進行簽名和驗證顯得重復。
(3)更改有效期標識為有效時長
區塊鏈數據結構中包含有時間戳項,每產生一個新的區塊都會被打上時間標志,通過記錄有效時長與時間戳項相結合可以直觀得到S證書有效期。
(4)去除證書撤銷檢查服務的UPL項
區塊鏈上的數據是隨時可查的,查詢存儲在其中的證書狀態也變得十分簡單。
對證書寫入區塊鏈的接口定義
write(station,Hash(Cert))
(1)
其中,write、station、Hash(Cert)分別表示寫入、證書的狀態、對證書進行哈希計算;證書的狀態包括發布和撤銷。
針對存儲在區塊鏈上的區塊鏈證書,通過索引技術和大數據技術設計了一種查詢證書狀態的方案,實現對區塊鏈證書狀態的查詢。
對證書查詢的查詢接口定義
query(Hash(Cert))
(2)
其中,query表示證書查詢操作,證書狀態station有3種:publish、revocation、null(為該證書不存在或被篡改)。需要驗證某一證書時,節點首先將所查證書進行哈希運算,再將哈希結果值在區塊鏈上進行查詢,通過區塊鏈返回該證書的最新Station結果和該存儲區塊的時間戳來進行合法性驗證。
驗證CA證書的合法性,主要通過:①該證書是否在有效期內;②發行方CA是否可靠;③驗證公鑰是否正確,通過能否解開證書發行者簽名確定;④證書名稱是否對應擁有者真實名稱;⑤證書是否在證書吊銷列表(CRL)中。其中第①、②、④項包含在證書內部,不需要進行線上驗證;③、⑤兩項需要線上訪問發行證書的CA來進行確認。一旦證書服務器故障,則無法進行③和⑤的過程,證書驗證失敗。
3.3.1 執行的前提
加入區塊鏈中的節點必須是可信任的,之后對需要跨域認證的兩個實體的根CA區塊鏈證書取哈希值并存儲到區塊鏈中,作為跨域認證的信任憑證。
協議的主體包括A域用戶(UA)和B域用戶(UB)、用戶證書服務器(CAA、CAB)、認證服務器(ASA、ASB)。用戶證書服務器用來查詢證書的當前狀態,認證服務器用來對證書信息進行驗證。
本模型的區塊鏈只存儲根CA的哈希值,在每個獨立的信任域內部,仍然保持傳統的認證方式實現用戶和認證服務器的認證,保證臨節點認證效率。進行多域間的跨域認證時,本域的認證服務器先請求目標域的區塊鏈根證書,正在對得到的證書進行哈希運算得到唯一的哈希值,將其與區塊鏈上數據進行對比,驗證通過則可以建立信任。通過兩個步驟來實現兩個域間用戶與用戶的雙向實體認證:首先依靠本域用戶和對方域服務器的建立認證信任,然后對方域服務器與對方域用戶建立認證信任。
3.3.2 認證過程
協議流程執行的具體過程分為傳統CA認證階段和區塊鏈CA認證階段,大致如圖5所示。步驟(1)、步驟(2)代表了傳統域內用戶認證階段;使用步驟(1)~步驟(10)實現B域對A域的跨域認證,同理重復步驟(1)~步驟(10)實現A域對B域的跨域認證,從而達到A、B兩域的雙向認證。其中跨域初次認證區塊鏈CA認證階段步驟(8)、步驟(9)如下:

圖5 協議流程
(1)ASB→BC
B域CA認證服務器查詢聯盟鏈節點,驗證A域CA認證服務器證書BCertAA的有效性,結合區塊鏈時間戳和有效時長解析其有效性,并檢查隨機數N2是否正確。
(2)BC→ASB
聯盟鏈節點將驗證結果返回給B域CA認證服務器。若A域的CA認證服務器證書可信且有效,生成跨域證書。
(3)ASB→UA
B域認證服務器ASB將跨域證書發送給A用戶。
初次認證結束,再進行跨域通信時,A域內用戶UA只需直接把跨域區塊鏈證書BCertAA發送給B域認證服務器ABS。B域認證服務器ABS收到區塊鏈證書BCertAA后,計算該證書的哈希值,并查詢區塊鏈,進行有效性確認(步驟(8)、步驟(9))。
通過對比分析發現,公有鏈中節點可以自由加入,當節點數量變多時,交易速度就會變慢,如若應用到PKI體系中,會影響認證效率;私有鏈又存在數據共享性差的問題;聯盟鏈的多中心結構,適合于將PKI域中的根CA加入到聯盟鏈中,使得每個信任域內保持原有的邏輯關系不變,綜合考慮選用聯盟鏈作為模型結構。
跨域認證模型的系統架構主要包括聯盟鏈平臺部分和PKI信任域部分,各個PKI信任域包含非驗證節點(non-validating peer,NVP)、PKI系統和人員系統3個部分,聯盟鏈通過多個驗證節點(validating peer,VP)構成。基于聯盟鏈的跨域認證系統架構如圖6所示。

圖6 系統架構
3.4.1 PKI信任域
非驗證節點(NVP)是那些在區塊鏈中只參與記賬的節點,不參與共識驗證操作,只包含驗證節點的部分功能,需要鏈接驗證節點,為驗證節點分擔部分工作。本文中非驗證節點承擔用戶注冊、認證等操作。非驗證節點驗證本域發起交易的簽名的正確性,并將交易按照時間戳的先后順序廣播給驗證節點。非驗證節點由認證服務器擔任。
PKI系統和人員系統的其它部分與現存PKI體系完全相同。
3.4.2 聯名鏈平臺
驗證節點(VP)是參與共識驗證的節點。驗證節點中包含鏈碼執行環境,可以獨立處理接收到的交易信息,并可以通過共識機制,將新區塊存儲到鏈上。同時由于區塊鏈的特性,每個節點又同時存儲著當前完整的賬本記錄。驗證節點由每個PKI信任域的根CA服務器承擔。
驗證節點將根CA生成自簽名的區塊鏈證書的哈希值存儲到區塊鏈中。非驗證節點通過查詢區塊鏈中區塊鏈證書的哈希值,完成跨域認證。
(1)基礎系統環境
本文模擬實驗通過Hyper-V 2.0虛擬機來完成,模擬3臺主機簡稱:nodeA、nodeB、nodeC成為3個實驗節點。并修改c:Windowssystem32driversetchosts文件,完成主機名到IP地址的解析。
(2)安裝部署以太坊系統
先安裝以太坊客戶端,在實驗節點上分別使用geth account new命令,然后創建區塊鏈測試賬戶。
(3)通信配置
1)查看集群節點
>admin.peers
結果顯示:[]。表明未與其它節點進行通訊。
2)獲取節點信息
分別在節點的console上執行admin.nodeInfo.enode得到3個節點的公鑰信息。
3)組建聯盟鏈
在nodeA上執行admin.addPeer命令,將nodeB加入nodeA。同理,把nodeC加入nodeA,分別對nodeB、nodeC執行相同操作。至此聯盟鏈已經組建完成。
安裝配置OpenSSL,在nodeA、nodeC上安裝一套CA服務軟件。通過OpenSSL中rand語句創建隨機數文件,使用隱私增強郵件(privacy enbanced mail,PEM)格式保存私鑰,使用genrsa命令,以AES256加密方式生成2048 bits的私鑰。接著創建根證書簽發申請文件,得到簽發根證書rootca.cer。出于OpenSSL產生的數字證書不能在java等語言環境中直接使用的原因,將其轉換為PKCS#12編碼格式,PKCS#12為個人信息交換文件格式,可以作為密鑰庫或信任庫使用,可使用keytool查看該密鑰庫的詳細信息。此時,根證書rootca.car的創建已完成,后續可使用其簽發證書,本模擬實驗以簽發服務器證書和客戶端證書為例。
步驟與創建根證書相似,首先創建私鑰,接著申請簽發服務器證書,通過命令簽發服務器證書servera.car,并對其進行格式轉化,最后驗證證書可使用性,表明該證書沒有問題。
接著創建一個客戶端證書用于驗證準備。至此單個節點的CA中心已搭建完畢,并簽發了服務器證書和客戶端證書,依次在其它節點上按照相同步驟搭建CA證書中心。
出于本文對CA證書的驗證等操作超出了現有CA標準體系和流程考慮,無法使用現有的標準CA證書驗證軟件進行,本實驗編制了專用的CA證書驗證程序。
CA證書驗證程序使用Delphi 2007編程實現,其核心函數或進程包括:獲取文件簽名、獲取證書接口、執行文件簽名、對文件簽名進行驗證、對簽名信息進行分解、附加簽名信息等。
基于先前“基于區塊鏈的PKI系統架構”所設計,調用智能合約實現證書簽發、證書更新和證書撤銷等操作。核心內容包括標準的聯盟鏈和證書智能合約的實現。其中智能合約調用在專用證書驗證程序中也有體現。
在nodeA上配置IIS服務器,提供根證書下載和證書吊銷列表(CRL)下載服務。吊銷列表失效時間設置為10 min。把noseA的服務器證書servera.cer復制到一臺client機器上安裝,斷開nodeA網卡服務10 min,在client機器上再次打開servera.cer,由于無法獲取有效的證書吊銷列表,所以無法訪問該網站。通過調用智能合約對證書servera.cer進行驗證,結果顯示可以獲得證書吊銷列表,同時確認該證書的有效性,表明本實驗完成了基于區塊鏈的KPI身份認證功能。
以節點nodeB為中心做CA跨域認證實驗,實驗配置見表1。

表1 CA跨域認證的實驗配置
在nodeA上安裝rootca.cer,并允許訪問nodeA的證書吊銷列表,可以完成對證書serverb.car的證書簽名校驗。不在nodeA上安裝nodeC 頒發的根證書PKI-BlockChainC-CA.cer,并不允許訪問nodeC的證書吊銷列表,不能對證書cert_b.cer的數字簽名校驗。驗證結果表明,不能依據nodeA的根證書rootca.cer驗證nodeC頒發的證書cert_b.cer。也就是說,在標準的PKI體系和框架下,不能實現CA證書的跨域認證。
當調用智能合約對證書cert_b.car進行驗證時,可以成功完成證書簽名校驗,實驗結果如圖7 所示。表明本文提出的基于聯盟鏈的跨域認證模型合理,達到期望目標。

圖7 調用智能合約后對證書cert_b.cer的驗證結果
4.7.1 安全性分析
(1)證書安全性
本文對區塊鏈數字證書的關鍵操作步驟是將數值證書文件進行哈希運算得到哈希值,并將其作為區塊鏈資產以交易的方式將哈希值存儲到區塊鏈中。關于哈希運算的兩個特性:
單向性:哈希運算是一個從明文到密文的不可逆的映射,只有加密過程,沒有解密過程。對于給定的Hash值m,通過其運算過程Hash(n)=m,來推導出被運算信息n是不可能的。
抗碰撞性:一是對于給定Hash函數,給出一條消息,找出一條消息y使Hash(x)=Hash(y)是計算上不可行的(弱抗沖突),二是找出任意兩條消息x、y,使Hash(x)=Hash(y)也是計算上不可行的(強抗沖突)。
由此可見基于單向性和抗碰撞性,將PKI中各個信任域的根CA的數字證書進行哈希運算,可以得到唯一的哈希值。將其存儲到不可篡改的區塊鏈中,具有極高的安全性。
(2)認證安全性
本模型中只將各域的根CA證書信息哈希值體現在區塊鏈中。通過將原有認證方式和雙向實體認證方式聯合使用,利用區塊鏈的高安全等級和哈希存儲的唯一性等特性,提高認證雙方安全性的同時,也提升了跨域認證的效率。
(3)體系安全性
區塊鏈技術作為一個分布式數據庫,各個節點是對等存在的,每個節點都參與鏈上數據維護的同時也存儲了相關信息,即使單個節點被攻擊導致失效,也不影響其它節點,可以有效克服多種單點故障導致的安全問題。
傳統的PKI體系通過區塊鏈中共識機制達成分布式場景下的一致性,使得一些常見的身份攻擊變得不再可行,區塊鏈的可追溯性杜絕了中間人攻擊的可能,同時也對各域CA認證中心進行了側面監管。
4.7.2 效率分析
通過模擬實驗結果,分析協議的計算開銷,并與文獻[18]方案作比較。本文模擬實驗過程與文獻[18]方案的聯盟數類似,其聯盟數為2,本實驗聯盟數為3。進行效率對比結果見表2,單位為運算次數,表中記錄分步次數合計值。

表2 開銷對比
與文獻[18,19]方案相比,本文方案減少了公鑰的加解密操作。在聯盟數量相似的情況下,本文使用哈希算法次數也少于二者;基于聯盟鏈的特殊優勢,不受盟員的增加而導致跨域認證時使用公鑰算法次數的增加,實際結果只會更好于模擬實驗對比分析結果;隨著多個域間認證工作量的大量增加,本文總體哈希次數也會隨之增長,但本方案使用的SHA-256單次計算耗時僅為RSA-1023的1/10,在哈希計算步驟效率遠高于公鑰加密,本文方案的實際效率與負載能力在多域聯盟環境下也是值得肯定的。文獻[18]通過將公鑰證書的發放過程轉換為區塊鏈網絡中的智能合約的交易過程,在一定程度上解決了安全的通信信道和抵抗DDos攻擊的問題,但其選用的合約方式需要節點過去參與操作,帶來了不小的時延,并沒有發展為公共機制的能力,僅適合一定范圍或私有機構內部使用。
文獻[19]采用的添加獨立于CA的信任中間人的方式無疑是安全性極高的,可以檢測到PKI攻擊并區分攻擊和錯誤,達到異常的精確管理。但其信任中間人的建議方式也帶來了極高的開銷支出,等同于多一個進行雙重CA驗證,同時該模型建立于Hyperledger fabric上,節點子集30個時達到最優配置更限制了其模型智能應用在私有領域。綜上所述,本文設計的哈希存儲與區塊鏈數據結合方案,使用部分現有技術和以太坊相結合,提高安全性的同時又不帶來過多的負載壓力,對于參與對象與數量沒有限制,也不存在節點數量對系統性能影響的可能性,并且伴隨著區塊鏈的特性,參與用戶越多會促使體系的安全性越高。是一種比較適合現有網絡模式下的安全PKI體系應用方案。
本文提出一種基于區塊鏈的PKI跨域認證模型。利用區塊鏈的去中心化、去信任、不可篡改等特征,在證書使用者和證書依賴者之間建立信任關系,將數字證書和證書管理的一系列操作都記錄在區塊鏈中,使得查詢變得簡單高效,同時解決了傳統PKI體系高度中心化帶來的單點故障問題,提高了PKI體系的魯棒性。通過區塊鏈交易方式將證書管理一系列操作變得十分簡單高效。對X.509證書的改進實現了將PKI體系中每個信任域內信任錨的區塊鏈證書哈希值存儲在鏈上,保證了每個信任域中原有信任結構不變,并實現了CA的跨域認證。本文針對傳統PKI體系存在的問題,選用比較新興的區塊鏈技術來解決PKI問題,工作具有現實意義和研究價值。
作為一門新興技術,區塊鏈技術仍有改進空間,在針對本文研究的問題上,本文仍有進步空間。目前所有基于區塊鏈的設計原理都是基于現有的區塊鏈平臺,區塊鏈系統在特定共識機制下無休止地自動成塊,導致嚴重的資源浪費,如何讓其按需成塊值得深究。由于區塊鏈中的數據公開透明,下一步可以從隱私保護入手,可以考慮隱藏用戶和用戶公鑰的對應關系,提高用戶隱私的安全性。同時,區塊鏈的核心是在共識機制,是否可以尋找一套針對PKI體系的特有共識機制,成為今后研究方向。如何進一步完善本文提出的一種基于聯盟鏈的PKI跨域認證模型,使之適用于國內PKI認證體系現狀,值得進一步研究。如何用區塊鏈全面替換PKI體系,使其全面承載PKI的功能,值得進一步探討。