国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于區(qū)塊鏈技術(shù)的密鑰生命周期演示設(shè)計*

2020-07-03 03:23:44劉天野張艷碩朱倩倩
密碼學報 2020年3期

劉天野, 張艷碩,2, 石 鈺, 朱倩倩

1. 北京電子科技學院 密碼科學與技術(shù)系, 北京100070

2. 密碼科學技術(shù)國家重點實驗室, 北京100878

1 引言

公鑰密碼體制自1976 年由Diffie 和Hellman 兩位學者提出[1]后, 40 余年來得到了長足的發(fā)展與改進. 作為組成這一體制重要一環(huán)的密鑰生命周期在傳統(tǒng)PKI 架構(gòu)、基于身份的密碼體制和無證書公鑰密碼系統(tǒng)中均扮演著特殊角色. 然而在現(xiàn)如今的主流應(yīng)用中, 密鑰生命周期并沒有引起高度重視, 也沒有對密鑰生命周期進行專業(yè)性、模塊化的設(shè)計與管理, 以至于在密鑰生成、更新、注銷和歸檔等方面產(chǎn)生了諸多問題.

現(xiàn)階段, 密鑰生命周期主要是指公私鑰對以及相關(guān)證書的創(chuàng)建、頒發(fā)及取消等過程. 在傳統(tǒng)的PKI 架構(gòu)中, 密鑰的生命周期主要以LDAP (Lightweight Directory Access Protocol) 服務(wù)器進行管理維護, 其安全性已經(jīng)受到了李瀾等[2]業(yè)界專業(yè)人士的質(zhì)疑. 針對LDAP 目錄服務(wù)的威脅主要有針對認證信息的攻擊、針對數(shù)據(jù)通信的攻擊和針對訪問權(quán)限的攻擊等[3]. 如何應(yīng)用新技術(shù)破解密鑰生命周期的管理與維護難題已成為一項亟待解決的重要工作.

區(qū)塊鏈技術(shù)也被稱為分布式賬簿技術(shù)[4](Distributed Ledger Technology), 用于在分布式的網(wǎng)絡(luò)中構(gòu)建起節(jié)點之間的共識. 區(qū)塊鏈技術(shù)具有去中心化、時序數(shù)據(jù)、集體維護、準匿名性、安全可信和可編程性等特點. 通過運用區(qū)塊鏈技術(shù), 能夠有效解決中心節(jié)點易受攻擊、數(shù)據(jù)庫易篡改等現(xiàn)實問題.

應(yīng)用區(qū)塊鏈技術(shù), 針對密鑰生命周期這一應(yīng)用場景, 對傳統(tǒng)密鑰生命周期進行重新設(shè)計, 解決了現(xiàn)存的實際問題, 同時有諸多益處: 利用區(qū)塊鏈的不可更改的特性來解決公鑰密碼體制中的公鑰認證問題; 通過將系統(tǒng)中的運算和存儲能力分散到網(wǎng)絡(luò)中的眾多節(jié)點中去, 實現(xiàn)在各個節(jié)點達成共識; 利用分布式系統(tǒng)的優(yōu)勢提供對查詢請求的快速響應(yīng); 當部分節(jié)點被惡意節(jié)點攻擊, 由于節(jié)點中存有的信息多數(shù)為公開信息,所以不會影響系統(tǒng)的正常運作.

2 密鑰生命周期

2.1 密鑰生命周期概述

密鑰生命周期[5]是指一組密鑰從產(chǎn)生到銷毀所經(jīng)歷的一系列狀態(tài), 決定著密碼系統(tǒng)的安全可靠, 具有重要意義. 典型的密鑰生命周期如圖1 所示[6].

以傳統(tǒng)的PKI 架構(gòu)為例, 密鑰的生命周期包含以下12 個環(huán)節(jié)[7]:

(1) 用戶登記: 一個用戶通過申請成為保密域里的一個授權(quán)成員, 主要過程包括獲取、創(chuàng)建或交換口令、PIN 等身份認證信息;

(2) 用戶初始化: 用戶初始它的保密系統(tǒng)(硬件或軟件), 使其在密鑰安裝后能夠立即投入使用, 且符合安全標準;

(3) 密鑰產(chǎn)生: 采用適當?shù)乃惴óa(chǎn)生密鑰, 或從可信的地方獲取密鑰, 此過程要保證密鑰的隨機性, 可通過真隨機數(shù)發(fā)生器采集物理噪聲進行隨機密鑰的生成;

(4) 密鑰安裝: 將密鑰安裝在保密系統(tǒng)的軟件或硬件中, 常見的安裝方法有輸入口令或PIN, 讀取磁盤、只讀存儲器、芯片卡等;

(5) 密鑰登記: 在安裝密鑰時, 賦予密鑰一個特定的名稱并將其記錄下來. 例如, 對于公開密鑰, 公開密鑰授權(quán)機構(gòu)產(chǎn)生一個密鑰, 然后放到一個公共目錄上, 以便他人使用. 通常采用證書的形式來對公鑰和身份實體信息進行綁定;

圖1 密鑰的生命周期Figure 1 Key life cycle

(6) 密鑰的正常使用: 密鑰被用戶系統(tǒng)使用, 直到使用期滿為止;

(7) 密鑰備份: 將密鑰存貯在一個獨立的、安全的存儲介質(zhì)上, 以便日后恢復使用, 在雙證書體制中,加密證書的私鑰通常在KMC (Key Management Center) 進行備份;

(8) 密鑰更新: 密鑰使用一段時間后, 泄漏的風險就會加大, 需要產(chǎn)生新的密鑰來代替舊的密鑰;

(9) 密鑰歸檔: 一組密鑰長時間不再被用戶使用, 但該密鑰日后仍有使用的需求, 可以將其存儲在安全的檔案文件中以保證其機密性和完整性;

(10) 密鑰注銷和銷毀: 用戶確定未來不再會需要使用該組密鑰, 或由于一些特殊原因?qū)е旅荑€泄露,就可從系統(tǒng)中注銷該組密鑰, 同時消除與之有關(guān)的一切記錄;

(11) 密鑰恢復: 當密鑰以安全的方式被丟失(如設(shè)備故障、忘記口令), 可以從密鑰備份中找回該密鑰,此項功能通常由KMC 提供;

(12) 密鑰撤回: 如果感覺使用中的密鑰有危險, 就可以把密鑰撤回, 從系統(tǒng)中暫時刪除該密鑰, 并將它先歸檔.

針對現(xiàn)實中的不同場景, 選用了上述12 個環(huán)節(jié)的密鑰生命周期, 并基于此進行演示設(shè)計.

2.2 密鑰生命周期發(fā)展現(xiàn)狀

本節(jié)詳細說明密碼生命周期在傳統(tǒng)PKI 架構(gòu)、基于身份的密碼體制和無證書公鑰密碼系統(tǒng)中面臨的安全問題.

(1)PKI 架構(gòu)下的密鑰生命周期

在PKI 體制下用戶自己生成公私鑰對, 由認證機構(gòu)頒發(fā)證書以實現(xiàn)用戶與公鑰信息的綁定. PKI 架構(gòu)采用的層級結(jié)構(gòu)構(gòu)建, 由上層認證機構(gòu)為下層認證機構(gòu)頒發(fā)證書, 系統(tǒng)的安全性基于用戶對上層認證機構(gòu)的信任[8]. 林璟鏘、荊繼武等人[9]明確指出, 雖然PKI 技術(shù)已經(jīng)較為成熟、進入大規(guī)模應(yīng)用的階段,但是隨著在實際應(yīng)用系統(tǒng)中的大量部署、各種重要應(yīng)用領(lǐng)域采納PKI 技術(shù), 近年來陸續(xù)出現(xiàn)了大量應(yīng)用推廣部署中的種種難題. 在PKI 體制中, CA (Certificate Authority) 作為證書頒發(fā)機構(gòu), 管理著密鑰從產(chǎn)生到注銷的全生命周期, 屬于體制中的核心角色. 荊繼武[10]針對入侵容忍的CA 方案提出了6 點假設(shè), 充分證明了PKI 架構(gòu)中CA 是一個薄弱環(huán)節(jié), 一旦CA 被入侵后, 可能存在一系列針對密鑰生命周期的安全問題:

a. 被入侵的認證機構(gòu)濫發(fā)證書或該認證機構(gòu)被注銷, 從而導致該機構(gòu)下層的所有認證機構(gòu)均不被信任;

b. 其頒發(fā)的證書也無法正常使用, 使正常用戶對系統(tǒng)產(chǎn)生信任危機.

(2) 基于身份的密碼體制中的密鑰生命周期

基于身份的密碼體制是一種將用戶信息作為公鑰, 以實現(xiàn)用戶和公鑰信息綁定的方案[11]. 但由于用戶私鑰由PKG (Private Key Generator) 產(chǎn)生這一特點, 引發(fā)了一些新的問題[12], 密鑰生命周期的安全也會受到威脅:

a. 在PKG 向用戶傳輸私鑰的過程中, 攻擊者可以通過竊聽獲取用戶的私鑰, 甚至還可以利用中間人攻擊, 偽造用戶私鑰;

b. 所有用戶的私鑰均由PKG 生成, 這就不可避免的產(chǎn)生密鑰托管的問題, 用戶必須絕對地無條件信任PKG, 且要承擔PKG 閱讀用戶的秘密通信或偽造簽名的風險.

c. 由于PKG 掌握所有用戶的私鑰信息, 一旦攻擊者成功入侵PKG 的中心數(shù)據(jù)庫, 攻擊者就能破解所有用戶的私鑰;

d. 由于沒有公鑰管理設(shè)施, 基于身份的密碼體制中的密鑰生命周期管理成為一項短板. 當用戶私鑰泄露或被攻擊者以某種方式獲得時, 用戶無法及時對公私鑰對進行及時的注銷. 即使在公鑰中預設(shè)了密鑰有效期, 但在攻擊成功后到密鑰自動注銷這一期間內(nèi)攻擊者的攻擊行為是不受任何約束的.

(3) 無證書公鑰密碼體制中的密鑰生命周期

無證書公鑰密碼體制是在充分吸收基于身份的密碼體制和PKI 的優(yōu)點后提出的一種解決方案[13].無證書公鑰系統(tǒng)中存在一個中心節(jié)點, 稱為KGC (Key Generation Center), KGC 利用主密鑰和節(jié)點的信息生成部分私鑰發(fā)送給用戶, 用戶利用接收到的部分密鑰和自己的秘密數(shù)在本地生成私鑰, 再利用秘密數(shù)和KGC 選取的系統(tǒng)參數(shù)生成對應(yīng)的公鑰. KGC 不再掌握用戶的私鑰信息, 證書管理問題和密鑰托管問題也因此得以解決. 但與此同時也帶來了一些關(guān)于密鑰生命周期的安全問題[14]:

a. 用戶的公鑰由用戶生成, 需要通過其他方法來解決公鑰認證的問題;

b. 密鑰對的生成方式復雜, 需要較多的信息, 要求密鑰生成算法存在多個可分離的運算步驟;

c. 較為復雜的加密算法存在設(shè)計缺陷的概率也較高, 使得加密效果無法達到預定目標.

綜上所述, 在現(xiàn)行的三種系統(tǒng)中, 密鑰生命周期都沒有得到安全有效的保護. 本文結(jié)合區(qū)塊鏈技術(shù), 設(shè)計提出了基于區(qū)塊鏈技術(shù)的密鑰生命周期演示設(shè)計, 利用其去中心化、集體維護、安全可信、可編程和防篡改等特點, 有效解決了密鑰生命周期的安全問題. 方案主要對密鑰生命周期的存儲安全和認證安全進行設(shè)計, 可應(yīng)用于上述三種密碼體制中, 有效解決其中的密鑰生命周期的管理問題, 為密碼系統(tǒng)的安全提供保障.

3 基于區(qū)塊鏈技術(shù)的密鑰生命周期

3.1 區(qū)塊鏈技術(shù)

區(qū)塊鏈起源于化名為中本聰[15](Satoshi Nakamoto) 的學者在2008 年發(fā)表的奠基性論文: “比特幣:一種點對點電子現(xiàn)金系統(tǒng)”. 狹義來講, 區(qū)塊鏈是一種按照時間順序?qū)?shù)據(jù)區(qū)塊以順序相連的方式組合成一種鏈式數(shù)據(jù)結(jié)構(gòu), 并以密碼學方式保證不可篡改和不可偽造的分布式賬本. 廣義來講, 區(qū)塊鏈是利用塊鏈式數(shù)據(jù)結(jié)構(gòu)來驗證與存儲數(shù)據(jù), 利用分布式節(jié)點共識算法來生成和更新數(shù)據(jù), 利用密碼學方式保證數(shù)據(jù)傳輸和訪問的安全, 利用由自動化腳本代碼組成的智能合約來編程和操作數(shù)據(jù)的一種全新的分布式基礎(chǔ)架構(gòu)與計算范式[16].

區(qū)塊鏈技術(shù)具有去中心化等特點,可根據(jù)應(yīng)用場景和設(shè)計體系不同分為: 公有鏈(Public Blockchain)、聯(lián)盟鏈(Consortium Blockchain) 和私有鏈(Private Blockchain). 公有鏈的各個節(jié)點可以自由加入和退出網(wǎng)絡(luò), 并參加鏈上數(shù)據(jù)的讀寫, 運行時以扁平的拓撲結(jié)構(gòu)互聯(lián)互通, 網(wǎng)絡(luò)中不存在任何中心化的服務(wù)端節(jié)點. 聯(lián)盟鏈的各個節(jié)點通常有與之對應(yīng)的實體機構(gòu)組織, 通過授權(quán)后才能加入與退出網(wǎng)絡(luò), 各機構(gòu)組織組成利益相關(guān)的聯(lián)盟, 共同維護區(qū)塊鏈的健康運轉(zhuǎn). 私有鏈各個節(jié)點的寫入權(quán)限收歸內(nèi)部控制, 而讀取權(quán)限可視需求選擇性地對外開放, 同時私有鏈仍然具備區(qū)塊鏈多節(jié)點運行的通用結(jié)構(gòu), 適用于特定機構(gòu)的內(nèi)部數(shù)據(jù)管理與審計.

區(qū)塊鏈科學研究所創(chuàng)始人Melanie Swan[17]按照應(yīng)用范圍和發(fā)展階段將區(qū)塊鏈應(yīng)用分為1.0、2.0 和3.0 三個階段. 區(qū)塊鏈1.0 支撐虛擬貨幣應(yīng)用, 一般用于支付, 其典型特征[17]有: 鏈狀數(shù)據(jù)塊結(jié)構(gòu)、全網(wǎng)共享賬本、非對稱加密和源代碼開源.

區(qū)塊鏈2.0 支撐智能合約應(yīng)用, 并考慮使用區(qū)塊鏈將其他類型的資產(chǎn)轉(zhuǎn)移到貨幣之外, 典型特征有:智能合約、分布式應(yīng)用、虛擬機. 其核心理念是把區(qū)塊鏈作為一個可編程的分布式信用基礎(chǔ)設(shè)施, 支持智能合約應(yīng)用. 當前主流區(qū)塊鏈應(yīng)用仍處于1.0 和2.0 階段, 區(qū)塊鏈3.0 的定義和代表應(yīng)用在業(yè)界仍有爭議.故在構(gòu)建區(qū)塊鏈應(yīng)用時采用經(jīng)典的區(qū)塊鏈2.0 架構(gòu), 區(qū)塊鏈2.0 技術(shù)架構(gòu)如圖2 所示. 在應(yīng)用層以下的底層架構(gòu)主要分為數(shù)據(jù)層、網(wǎng)絡(luò)層、共識層、激勵層和智能合約層. 本文在設(shè)計構(gòu)建時采用了標準的區(qū)塊鏈2.0 層級架構(gòu), 在網(wǎng)絡(luò)層采用的是Kademlia 協(xié)議進行P2P 網(wǎng)絡(luò)的構(gòu)建, 共識層采用的是PoW+PBFT 的混合共識機制.

圖2 區(qū)塊鏈2.0 技術(shù)架構(gòu)Figure 2 Blockchain 2.0 technology architecture

3.2 基于區(qū)塊鏈的密鑰生命周期優(yōu)勢

區(qū)塊鏈技術(shù)具有去中心化、安全透明、智能合約和可追溯等特點[18]. 其分布式特性保證了每個節(jié)點擁有均等的權(quán)利和義務(wù), 單個節(jié)點對整體影響會非常小, 從而形成去中心化的可信任的系統(tǒng). 而且滿足安全性和所有權(quán)驗證.

去中心化. 傳統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)通常有中心數(shù)據(jù)庫, 區(qū)塊鏈技術(shù)的最大創(chuàng)新就是將數(shù)據(jù)庫去中心化[19], 無需任何第三方機構(gòu)的介入, 在本系統(tǒng)中只要密鑰申請方和密鑰簽發(fā)方雙方達成共識, 就可以產(chǎn)生信用體系,以最小的成本獲得信任. 正是因為這個特質(zhì), 所有的簽發(fā)均可以在雙方達成共識后瞬間完成, 而雙方的賬本信息同樣也可以實現(xiàn)即時更新, 達到了歸檔的目的.

信息透明化. 區(qū)塊鏈數(shù)據(jù)庫是去中心化的數(shù)據(jù)庫, 是向所有用戶開放. 任何人均可以通過相關(guān)節(jié)點來查詢或獲取相關(guān)數(shù)據(jù)信息, 并依照這些信息開發(fā)新的應(yīng)用程序. 換言之, 本系統(tǒng)雖然基于聯(lián)盟鏈框架, 普通用戶不能直接參與區(qū)塊共識的過程, 但仍然能夠查詢聯(lián)盟區(qū)塊鏈中的所有數(shù)據(jù), 透明度是比較高的.

安全性強. 在去中心化網(wǎng)絡(luò)下, 單個節(jié)點的安全防護能力與中心化網(wǎng)絡(luò)相比較而言相對較差, 容易受到攻擊[20]. 然而在本系統(tǒng)中, 基于聯(lián)盟鏈的準入標準, 節(jié)點的安全防護能力相對較強, 并且篡改其中任何一個節(jié)點的數(shù)據(jù)均是無效的, 除非人為的能夠控制全網(wǎng)51% 的算力, 但這幾乎不可能實現(xiàn). 同時, 在區(qū)塊鏈網(wǎng)絡(luò)節(jié)點是點對點相連, 沒有中心服務(wù)器, 也不存在中心接口, 對任何單一接口攻擊是無效的, 安全系數(shù)比較高.

合約智能化. 智能合約是執(zhí)行合約條款的程序代碼, 用智能合約替代傳統(tǒng)紙質(zhì)合約可以大大地減少在合約制定、控制協(xié)議和執(zhí)行效能上的人工花費與計算成本[21]. 當一個預先編好的條件被觸發(fā)時, 智能合約執(zhí)行相應(yīng)的合同條款. 數(shù)據(jù)擁有者設(shè)定數(shù)據(jù)共享的范圍、時限等約束條件, 使用計算機語言代替法律條款來規(guī)范數(shù)據(jù)訪問者行為. 這些約束條件通過計算機腳本語言在加入聯(lián)盟鏈的節(jié)點上自動執(zhí)行, 保證數(shù)據(jù)共享的合法性和公平性. 在本系統(tǒng)中, 密鑰的生命周期被預先寫入智能合約中, 當條件觸發(fā)時, 合約自動執(zhí)行, 提高了系統(tǒng)的自動化程度.

可追溯性. 區(qū)塊鏈中的每一個區(qū)塊都包含上一個區(qū)塊的Hash 值, 以Hash 值為索引將每一個區(qū)塊都依次順序相連. 在本系統(tǒng)中, 每一個證書區(qū)塊均包含一段時間內(nèi)的證書信息, 任何證書信息的改動都將使Hash 值發(fā)生改變, 從而改變之后的所有區(qū)塊. 這種設(shè)計從底層上保障了數(shù)據(jù)的可追溯性和不可篡改性[22].

4 基于區(qū)塊鏈的密鑰生命周期演示設(shè)計方案

4.1 區(qū)塊鏈網(wǎng)絡(luò)設(shè)計

完整的區(qū)塊鏈網(wǎng)絡(luò)分為數(shù)據(jù)層、網(wǎng)絡(luò)層、共識層、激勵層、合約層和應(yīng)用層. 方案在設(shè)計時考慮到密鑰生命周期的現(xiàn)實應(yīng)用場景, 其對于數(shù)據(jù)的安全性和可靠性有著特殊的需求, 所以在數(shù)據(jù)層和共識層進行了創(chuàng)新設(shè)計.

(1) 混合共識機制

比特幣電子現(xiàn)金系統(tǒng)采用了PoW(工作量證明機制) 來保證節(jié)點間的共識. 其安全性已經(jīng)得到了公認,但其交易的高延遲和對計算資源、電力資源的浪費也一直受到業(yè)界的批評. 為此以太坊初期應(yīng)用PoW 機制, 同時將出塊速度控制在15 s 左右, 但由此引發(fā)了區(qū)塊鏈分叉概率高、區(qū)塊廣播時間大于出塊時間等問題, 因此不得不引入GHOST (Greedy Heaviest Observed Subtree) 協(xié)議激勵礦工來解決這些問題. 在IBM 主導的Hyperledger Fabric 項目中使用了PBFT(實用拜占庭容錯機制) 來作為共識機制, 但由于PBFT 共識機制中的主節(jié)點的存在, 使得其偽去中心化的特點一直受到質(zhì)疑.

結(jié)合密鑰生命周期的現(xiàn)實應(yīng)用場景,需要同時滿足其安全性、可靠性和高效性,故設(shè)計了PoW+PBFT的混合共識機制來應(yīng)對現(xiàn)實需要,同時將應(yīng)用場景設(shè)定在聯(lián)盟鏈的環(huán)境中,規(guī)定聯(lián)盟鏈的節(jié)點準入機制,并提供對外的公鑰查詢接口. 這樣既保證了公鑰信息的公開, 又避免了區(qū)塊鏈網(wǎng)絡(luò)受到女巫攻擊的安全隱患.

首先進行主節(jié)點的選取, 最快計算出有效工作量證明的節(jié)點將成為當前共識過程的主節(jié)點, 其余為從節(jié)點, 關(guān)于此過程構(gòu)造的區(qū)塊將在下一節(jié)進行詳細解釋. 接下來采用PBFT 機制進行公鑰信息的接收、驗證和上鏈. PBFT 機制的流程如圖3 所示[23].

圖3 PBFT 共識流程Figure 3 Consensus process of PBFT

其中C 為客戶端, N0-N3表示服務(wù)節(jié)點, 特別的, N0為主節(jié)點, N3為故障節(jié)點. 假設(shè)故障節(jié)點數(shù)為f 個, 整個服務(wù)節(jié)點數(shù)為|R|=3f +1 個, 整個協(xié)議的基本過程如下:

a. 客戶端發(fā)送請求, 激活主節(jié)點的服務(wù)操作;

b. 當主節(jié)點接收請求后, 啟動三階段的協(xié)議以向各從節(jié)點廣播請求;

c. 序號分配階段, 主節(jié)點給請求賦值一個序列號n, 廣播序號分配消息和客戶端的請求消息m, 并將構(gòu)造PRE-PREPARE 消息給各從節(jié)點;

d. 交互階段, 從節(jié)點接收PRE-PREPARE 消息, 向其他服務(wù)節(jié)點廣播PREPARE 消息;

e. 序號確認階段, 各節(jié)點對視圖內(nèi)的請求和次序進行驗證后, 廣播COMMIT 消息, 執(zhí)行收到的客戶端的請求并給客戶端以響應(yīng);

f. 客戶端等待來自不同節(jié)點的響應(yīng), 以f +1 個相同的響應(yīng)結(jié)果作為請求的處理結(jié)果.

(2) 區(qū)塊結(jié)構(gòu)

由于采用了PoW+PBFT 的混合共識機制, 故區(qū)塊結(jié)構(gòu)也應(yīng)進行相應(yīng)的創(chuàng)新設(shè)計. 使用了PoW 鏈和PBFT 鏈來記錄區(qū)塊鏈網(wǎng)絡(luò)中的數(shù)據(jù). PoW 鏈記錄競爭區(qū)塊, PBFT 鏈記錄證書區(qū)塊, 區(qū)塊內(nèi)容如圖4 所示. 值得注意的是兩條鏈中的Hash 值進行了相互引用, 實現(xiàn)了雙重確認, 進一步提高了數(shù)據(jù)的安全性和完整性. 由于競爭區(qū)塊中會引用證書區(qū)塊的Hash 值, 而且競爭區(qū)塊和證書區(qū)塊之間的生成是異步操作,因此創(chuàng)世競爭區(qū)塊和id = 1 的競爭區(qū)塊中的證書區(qū)塊Hash 值為預設(shè)的空值, 創(chuàng)世證書區(qū)塊的Hash 值會被id=2 的競爭區(qū)塊引用.

圖4 區(qū)塊結(jié)構(gòu)Figure 4 Structure of block

4.2 方案設(shè)計

針對現(xiàn)實應(yīng)用場景, 對密鑰生成、公鑰查詢、密鑰更新、密鑰注銷和密鑰歸檔5 個核心功能進行了方案設(shè)計, 有效地完成了基于區(qū)塊鏈的密鑰生命周期演示設(shè)計. 對于諸如用戶登記等其他7 個環(huán)節(jié), 使用區(qū)塊鏈技術(shù)的必要性不強, 這里不做贅述. 本方案設(shè)計流程如圖5 所示.

(1) 密鑰生成

用戶在本地客戶端產(chǎn)生公私鑰對, 其中公鑰信息包含用戶ID、用戶公鑰、時間戳和公鑰的有效起止時間[24]. 系統(tǒng)將根據(jù)相關(guān)信息構(gòu)建X509_REQ 證書請求消息, 同時將請求消息轉(zhuǎn)為DER 編碼的格式發(fā)送給CA 請求生成證書, CA 確認用戶信息后進行密鑰簽名生成證書, 并將該證書發(fā)送到區(qū)塊鏈主節(jié)點.主節(jié)點將該證書進行編號轉(zhuǎn)發(fā)給其他節(jié)點, 節(jié)點間對該證書進行廣播, 校驗完成后廣播COMMIT 消息,證書上鏈并向CA 回復SUCCESS 消息. CA 在接收到f +1 個SUCCESS 信息后, 確認將證書發(fā)送給客戶端.

(2) 公鑰查詢

圖5 方案流程圖Figure 5 Flowchart of scheme

公鑰查詢模塊我們利用區(qū)塊鏈的快速查找技術(shù), 構(gòu)建區(qū)塊鏈應(yīng)用查詢優(yōu)化流程模型[25], 建立證書索引樹, 以證書的關(guān)鍵信息作為結(jié)點建立層級樹形索引, 葉子節(jié)點存儲證書在底層區(qū)塊鏈的Merkle 樹路徑,最大程度上滿足在大數(shù)據(jù)量下數(shù)據(jù)的查詢、訪問需求. 當用戶向節(jié)點請求公鑰信息時, 節(jié)點先在本地證書索引樹中尋找是否存在用戶請求的公鑰. 若在索引樹中未查到信息則節(jié)點從區(qū)塊鏈主鏈的末端開始向前查詢, 遇到有效的信息就結(jié)束查詢. 如果本地存在相應(yīng)用戶的信息, 直接將公鑰信息返回給用戶, 并更新索引樹. 當本地不存在對應(yīng)用戶的信息時, 節(jié)點在區(qū)塊鏈網(wǎng)絡(luò)中請求公鑰信息. 收到請求的區(qū)塊鏈節(jié)點檢查本地存儲的公鑰信息. 若存儲有相應(yīng)公鑰信息, 節(jié)點會返回對應(yīng)的公鑰信息以及包含公鑰信息的區(qū)塊和Merkle 樹分支信息. 發(fā)起請求的節(jié)點在收到公鑰信息后, 通過多個節(jié)點返回的公鑰信息和Merkle 樹分支之間交叉驗證來確認公鑰信息正確性.

(3) 密鑰更新

密鑰使用一段時間后, 泄漏的風險就加大, 需要產(chǎn)生新的密鑰來代替舊的密鑰. 這里考慮到一些安全風險, 如密鑰泄露后竊密者將舊密鑰更新為自己控制的新密鑰從而進行身份偽造攻擊, 故在此模塊設(shè)計兩種密鑰更新方式.

方式一: 由于用戶已經(jīng)擁有一個可用的公鑰, 更新密鑰可以不經(jīng)過CA 的簽名. 當用戶需要更新密鑰時, 在本地客戶端生成新的密鑰對, 用舊的私鑰對新證書進行簽名, 并發(fā)布到區(qū)塊鏈網(wǎng)絡(luò), 網(wǎng)絡(luò)確認后將SUCCESS 信息發(fā)給客戶端, 同時轉(zhuǎn)發(fā)新證書給CA, CA 進行證書更新. 然而以此方式進行密鑰更新存在一定的安全風險, 故設(shè)置更新等待時間, 區(qū)塊鏈網(wǎng)絡(luò)運行智能合約, 等待期結(jié)束后進行密鑰更新, 等待期內(nèi)用戶可對更新操作進行撤銷, 合約終止. 由于密鑰更新并非緊急操作, 而且密鑰更新期舊密鑰可以繼續(xù)使用, 所以必要的等待期是可以容忍的, 不會降低用戶的體驗.

方式二: 如果用戶需要緊急對密鑰進行更新, 可以采用上述的密鑰生成過程, 由CA 進行實體身份認證后更新操作立即生效.

在進行證書查詢時, 系統(tǒng)將從最新的區(qū)塊向前遍歷, 并反饋給用戶最新的有效密鑰, 舊密鑰在新密鑰生效后將自動失效, 成為無效公鑰. 即使一個區(qū)塊體內(nèi)的所有公鑰均被確認為無效公鑰后, 為保證歷史信息的可溯源, 以及密鑰歸檔的需要, 區(qū)塊鏈系統(tǒng)也不會將其拋棄.

(4) 密鑰注銷

當用戶確定未來不會再需要自己的密鑰, 或用戶私鑰被竊取, 這時需要從系統(tǒng)中注銷該組密鑰. 證書注銷的流程為: 客戶端使用私鑰簽署一個空消息, 發(fā)布到區(qū)塊鏈網(wǎng)絡(luò), 經(jīng)區(qū)塊確認后區(qū)塊鏈網(wǎng)絡(luò)將DELETE 信息發(fā)給客戶端, 該密鑰作廢. 同時轉(zhuǎn)發(fā)消息給CA, CA 更新CRL 列表. 此模塊設(shè)計無需考慮攻擊情況, 因為如果密鑰泄露, 惡意實體的意圖是利用竊取的私鑰進行非法操作, 而非對已竊取的密鑰進行注銷, 這樣做對惡意實體而言沒有實際意義.

(5) 密鑰歸檔

密鑰注銷后, 如果不對密鑰進行有效歸檔, 那么對于已經(jīng)被該密鑰加密過的數(shù)據(jù)將面臨著無法解密的風險, 密鑰歸檔的重要性不言而喻. 密鑰注銷時, 用戶需將私鑰通過保密專線網(wǎng)絡(luò)傳遞至CA, CA 將以密文的方式將私鑰發(fā)布至私有區(qū)塊鏈網(wǎng)絡(luò)中進行確認. 各節(jié)點間均存有一份密態(tài)的完整賬本, 且各節(jié)點間密鑰互不相同, 采用BLS12-381 加密算法[26]進行數(shù)據(jù)加密. 節(jié)點間會定期進行輪詢, 采用時空證明的方式驗證各節(jié)點數(shù)據(jù)的完整.

時空證明(Proof of Space Time), 證明該時間段內(nèi)節(jié)點存儲了相應(yīng)的賬本數(shù)據(jù)[27]. PoST 證明是驗證者V 向證明者P 提供獨特的數(shù)據(jù)證明, 以說服P 自己在一段時間t 內(nèi)存儲了數(shù)據(jù)的一個備份R, 這一證明是專門為P 提起的挑戰(zhàn)的應(yīng)答C.

PoST 協(xié)議可以通過多項式復雜度算法元組實現(xiàn):

a. 初始化

初始化函數(shù)使用可驗證時延加密方法. 其中, λ 是安全參數(shù), 通過它我們可以調(diào)整時延加密的安全參數(shù), λ 越大, 時延越長. 調(diào)整它, 系統(tǒng)可以控制加密算法在效率和安全性能之間找到平衡. SP和SV是驗證時需要的參數(shù), R 是生成的副本.

b. 生成證明函數(shù)其中, c 是隨機挑戰(zhàn)矢量, 包含N 個隨機挑戰(zhàn), t 是時間戳矢量, 對應(yīng)每一個隨機挑戰(zhàn)的時間戳. 證明者P為驗證者V 生成c 的應(yīng)答πc, 它是與c 和t 對應(yīng)的應(yīng)答.

c. 驗證

用來檢測證明是否正確. PoST.Verify 由驗證者V 運行并使得V 相信P 在t 時段內(nèi)存儲了R.

4.3 方案分析

基于區(qū)塊鏈技術(shù)的密鑰生命周期演示設(shè)計方案, 通過利用區(qū)塊鏈的安全性來保障運行于區(qū)塊鏈上公鑰的安全. 對于區(qū)塊鏈系統(tǒng)潛在的威脅和系統(tǒng)運行效率均進行了比較深入的分析, 特別是在哈希碰撞, 篡改公鑰信息方面進行了詳細的理論分析證明, 同時分析了聯(lián)盟鏈技術(shù)框架下系統(tǒng)的安全性和運行效率.

(1) 哈希碰撞

區(qū)塊鏈系統(tǒng)的安全性主要由哈希函數(shù)的安全性作為保障, 利用哈希函數(shù)的抗碰撞性來避免攻擊者尋找到一個和攻擊目標具有相同哈希值的數(shù)據(jù)來篡改信息. 在本文提出的設(shè)計方案中, 使用哈希函數(shù)主要從3個方面保護系統(tǒng)的安全穩(wěn)定: 驗證競爭區(qū)塊是否合法、尋找前驅(qū)區(qū)塊、驗證Merkle 樹分支的合法性. 其中驗證區(qū)塊合法要求計算得到的哈希值小于目標值. 后兩個功能要求目標哈希和計算得到的哈希保持一致, 即需要攻擊者構(gòu)建一個哈希碰撞. 目前根據(jù)王小云院士的理論研究, 攻擊者已經(jīng)能夠?qū)^弱的哈希函數(shù)(如MD5[28]和SHA-1[29]) 構(gòu)建碰撞攻擊. 使用改進后的Shattered 算法構(gòu)建一個SHA-1 的哈希碰撞需進行263次SHA-1 運算, 需要耗費單一GPU 一年的運算量[30]. 目前對于SHA-2 等較強哈希函數(shù)并沒有提出可行的碰撞算法, 可以認為只能通過暴力猜測進行破解, 因此在現(xiàn)有條件下可以認為構(gòu)建一個較強哈希函數(shù)的哈希碰撞是不可行的. 攻擊者即便可通過第二原像攻擊[31]等方式降低攻擊難度, 但攻擊成本對于攻擊者而言仍然較高. 基于上述理論與實踐基礎(chǔ), 可以認為方案中, 在競爭主節(jié)點的過程中, 攻擊者無法通過任何方式來簡化構(gòu)造小于目標難度區(qū)塊的過程, 在構(gòu)造證書區(qū)塊時, 攻擊者也無法構(gòu)造一個哈希值相同, 且有實際意義的區(qū)塊.

(2) 篡改公鑰信息

攻擊者篡改的成功率與攻擊者控制的運算力之間的關(guān)系如圖6 所示. 當q >0.5 時, 由于攻擊者獲得新的區(qū)塊的速度大于正常節(jié)點, 攻擊者一定能夠篡改成功, 因此圖中不包含q >0.5 的部分. 可以看出攻擊成功率和攻擊者控制的運算力成正相關(guān)的關(guān)系, 和區(qū)塊在區(qū)塊鏈系統(tǒng)中延遲確認的時間成負相關(guān)關(guān)系.即使當攻擊者控制了系統(tǒng)中25% 的算力時, 選擇適當?shù)难訒r區(qū)塊延遲確認時間(如延遲10 個區(qū)塊確認信息) 仍能夠?qū)⒐舻某晒β式档偷捷^低的范圍(1%). 當攻擊者控制運算能力比例較低時, 攻擊的成功率會極大下降.

(3) 聯(lián)盟鏈

黃欣沂等[32]研究了區(qū)塊鏈應(yīng)用的安全隱私問題后指出, 區(qū)塊鏈技術(shù)不依賴于某個特定的中心節(jié)點,系統(tǒng)中的每個區(qū)塊鏈節(jié)點分別獨立存儲數(shù)據(jù)和處理數(shù)據(jù), 有效避免了單點失敗的問題. 然而, 為了達到公開驗證, 區(qū)塊鏈中所有數(shù)據(jù)必須公開, 這將導致隱私泄露問題. 因此方案中利用了聯(lián)盟鏈的優(yōu)勢, 即針對某個特定群體的成員和有限第三方, 其內(nèi)部指定多個預選節(jié)點為記賬人, 每個區(qū)塊數(shù)據(jù)的生成由所有的預選節(jié)點共同決定, 其他節(jié)點可以參與交易, 但不過問記賬過程. 對于公有鏈, 任何人都可以隨時進入和記賬,而在聯(lián)盟鏈中, 外部方只可通過授權(quán)開放的API 進行數(shù)據(jù)查詢.

圖6 P 與q 的關(guān)系Figure 6 Relationship between P and q

在聯(lián)盟鏈中, 新區(qū)塊上鏈只需要幾個權(quán)重較高的節(jié)點確定. 同時, 聯(lián)盟鏈中的每個節(jié)點都有屬于自己的私鑰, 每個節(jié)點的自產(chǎn)數(shù)據(jù)信息相互獨立, 節(jié)點間數(shù)據(jù)只讀共享, 如若需要數(shù)據(jù)交換, 則需要通過對方節(jié)點的私鑰進行. 此外, 聯(lián)盟鏈能夠在確保在信息流通過程中避免節(jié)點隱私泄露. 由于聯(lián)盟鏈的節(jié)點數(shù)量通常不多, 所以相比公有鏈而言, 聯(lián)盟鏈的維護成本也相對較低. 因此, 在聯(lián)盟鏈框架中進行攻擊, 其攻擊成功的難度將更加巨大, 同時也可以有效地避免隱私數(shù)據(jù)泄露問題.

4.4 方案對比

(1) 與基于LDAP 的方案對比

傳統(tǒng)的PKI 系統(tǒng)普遍采用基于LDAP 的方案進行證書管理, LDAP 目錄是以樹狀結(jié)構(gòu)存放和管理數(shù)據(jù), 支持層次結(jié)構(gòu), 可以建立快速查詢體系. 然而就底層數(shù)據(jù)而言, LDAP 并沒有特殊的完整性保護措施. 于此對比本方案在底層數(shù)據(jù)方面采用了區(qū)塊鏈的方式來保障數(shù)據(jù)的完整性, 但由于區(qū)塊鏈是以鏈式結(jié)構(gòu)進行存儲, 在信息檢索速度方面存在一定問題. 但在本方案中, 可以建立證書索引樹, 以證書的關(guān)鍵信息作為結(jié)點建立層級樹形索引, 葉子節(jié)點存儲證書在底層區(qū)塊鏈的Merkle 樹路徑, 以滿足快速檢索的需要.因此本方案在數(shù)據(jù)安全性和快速檢索方面表現(xiàn)更加優(yōu)異.

(2) 與其他基于區(qū)塊鏈的密鑰管理方案對比

劉敬浩等[24]提出了一種基于區(qū)塊鏈的分布式公鑰管理方案, 并對密鑰生成、公鑰查詢、密鑰更新和密鑰注銷4 個功能進行了設(shè)計. 在充分分析了這一方案的安全性后, 提出了一種新型的密鑰生命周期管理方案. 原方案在密鑰更新階段存在一定的安全風險, 由于密鑰更新操作需要由用戶自主發(fā)布區(qū)塊鏈信息進行更新, 存在著惡意實體使用泄露私鑰發(fā)布證書進行更新的問題, 對此本方案設(shè)計了兩條密鑰更新途徑, 有效降低了此類安全風險. 原方案沒有涉及密鑰歸檔的環(huán)節(jié), 本文提出了一種在私鏈上使用時空證明的方法來保證密鑰的安全歸檔. 原方案使用了PoW 共識機制, 公鑰確認時間較長, 本文提出了一種PoW+PBFT 的混合共識機制, 在保證安全性的同時大大提高了證書的確認速度.

4.5 方案實現(xiàn)

本演示設(shè)計方案思路清晰, 邏輯縝密, 易于進行軟件實現(xiàn). 作者根據(jù)設(shè)計方案, 結(jié)合當下主流的區(qū)塊鏈開發(fā)技術(shù)棧實現(xiàn)了基于區(qū)塊鏈技術(shù)的密鑰生命周期演示設(shè)計原型系統(tǒng), 可實現(xiàn)局域網(wǎng)下的密鑰生成、證書頒發(fā)、證書更新、證書注銷、密鑰管理、公鑰查詢和密鑰歸檔等功能, 系統(tǒng)功能完善, 操作便捷高效, 用戶體驗良好.

4.5.1 實現(xiàn)技術(shù)

(1) QT

本系統(tǒng)在實現(xiàn)技術(shù)上應(yīng)用了Qt 應(yīng)用程序開發(fā)框架. 具有良好的跨平臺特性,系統(tǒng)可部署到Windows、Linux 等主流操作系統(tǒng), 提高了系統(tǒng)的可移植性. 應(yīng)用signals/slots 的安全類型來替代callback, 使得各個元件之間的協(xié)同工作變得簡單, 且邏輯清晰、安全可靠.

(2) Golang

在區(qū)塊鏈節(jié)點系統(tǒng), 我們采用Golang 進行技術(shù)實現(xiàn). 能有效的提高系統(tǒng)運行的高效性和可維護性.Go 語言是Google 公司于2009 發(fā)布的開源編程語言. Go 語言有以下特點:

a. 高效性. Go 語言專門針對多處理器系統(tǒng)應(yīng)用程序的編程進行了優(yōu)化, 使用Go 編譯的程序可以媲美C/C++ 代碼的速度. 在我們的使用中, Go 一般比Python 要快30 倍, 同時與Java 相比也有很大程度的提升.

b. 并發(fā)性. Go 語言最大的特色就是在語言層面支持并發(fā), 天生支持并發(fā)編程, 可以充分利用CPU 的多核心架構(gòu), 開發(fā)并發(fā)應(yīng)用程序. 協(xié)程機制使得編寫高并發(fā)的服務(wù)端軟件變得相當容易, 且創(chuàng)建協(xié)程的成本很低, 只需幾千個字節(jié)的額外內(nèi)存, 正因如此, 才使得同時運行數(shù)百個甚至數(shù)千個協(xié)程成為可能.

c. 基于消息傳遞的通信方式. Channel 是Go 語言在語言級別提供給進程內(nèi)協(xié)程間的通信方式, 簡單易用且線程安全. 在異步的并發(fā)編程過程中, 協(xié)程之間的消息通信可以使各個協(xié)程之間協(xié)同配合, 可以輕松實現(xiàn)TCP 連接池和限流等功能.

(3) GMSSL

本系統(tǒng)整體采用GMSSL 進行數(shù)據(jù)加解密和網(wǎng)絡(luò)通信, 系統(tǒng)安全可靠, 符合國家標準. 同時, 由于GmSSL 項目是OpenSSL 項目的分支, 并與OpenSSL 保持接口兼容. 因此GmSSL 可以替代應(yīng)用中的OpenSSL 組件, 并使應(yīng)用自動具備基于國密的安全能力. 針對當前現(xiàn)實應(yīng)用環(huán)境, 可以快捷的進行接口的更新與替換, 大幅減輕了系統(tǒng)開發(fā)人員的工作負擔.

4.5.2 架構(gòu)設(shè)計

方案在實現(xiàn)時采用了分層結(jié)構(gòu)和模塊化設(shè)計, 并參照以太坊的架構(gòu)進行系統(tǒng)實現(xiàn). 從底層到上層分為網(wǎng)絡(luò)層、服務(wù)層和應(yīng)用層, 基本架構(gòu)如圖7 所示. 區(qū)塊鏈節(jié)點啟動P2P 網(wǎng)絡(luò), 將各種服務(wù)注冊到P2P 網(wǎng)絡(luò)中以進行實例化. 如此設(shè)計的優(yōu)勢在于可以動態(tài)調(diào)整服務(wù), 系統(tǒng)的可拓展性較強.

圖7 系統(tǒng)架構(gòu)Figure 7 System architecture

4.5.3 效果演示

參考當下主流的區(qū)塊鏈應(yīng)用開發(fā)技術(shù), 方案使用QT+Golang+GMSSL 進行了原型系統(tǒng)的設(shè)計與開發(fā). 系統(tǒng)效果展示如圖8、圖9 和圖10 所示:

5 方案應(yīng)用

圖8 CA 服務(wù)器主界面Figure 8 Main interface of CA server

圖9 證書申請界面Figure 9 Interface of certificate application

基于區(qū)塊鏈技術(shù)的密鑰生命周期演示設(shè)計方案合理、高效, 可快速部署在現(xiàn)實應(yīng)用場合. 目前許多專家、學者針對不同場景提出了多種基于區(qū)塊鏈的身份認證方案. 崔志華等針對物聯(lián)網(wǎng)環(huán)境提出了一種基于混合區(qū)塊鏈的多WSN (Wireless Sensor Networks) 身份認證方案[33]. 本文提出的密鑰生命周期演示設(shè)計方案可應(yīng)用到上述身份認證方案中, 為身份認證過程中的密鑰提供更好的管理. 本文中的CA 節(jié)點可以對應(yīng)到文獻[33] 中的Base Station, 為各節(jié)點簽發(fā)身份證書, 本文的聯(lián)盟區(qū)塊鏈網(wǎng)絡(luò)可對應(yīng)為Cluster Head Node, 本文的用戶可以對應(yīng)為Ordinary Node. 文獻[33] 中提出的集群私有區(qū)塊鏈, 在本文中可以理解為聯(lián)盟鏈中的輕節(jié)點, 其存儲了區(qū)塊頭和與其集群相關(guān)的區(qū)塊體, 節(jié)約存儲資源的同時也能提高集群內(nèi)部用戶間的身份認證的效率. 綜上所述, 本文設(shè)計的密鑰生命周期管理方案擴展性良好, 可以應(yīng)用到物聯(lián)網(wǎng)環(huán)境下的身份認證方案. 同時為進一步滿足現(xiàn)實環(huán)境的需要, 我們在方案設(shè)計之初便在可熱插拔的共識機制、云部署和優(yōu)化空間緩存等方面進行了底層設(shè)計, 使得市場應(yīng)用范圍更加廣闊.

圖10 區(qū)塊鏈網(wǎng)絡(luò)確認區(qū)塊Figure 10 Blockchain network confirm block

5.1 可熱插拔的共識機制

隨著區(qū)塊鏈技術(shù)的發(fā)展, 適用于不同場景的共識機制相繼被提出, 劉建偉[34]等研究總結(jié)了當下區(qū)塊鏈的主流共識機制, 如: PoW、PBFT 等. 雖然共識機制種類繁多, 但傳統(tǒng)區(qū)塊鏈應(yīng)用的共識機制一旦確定則不可更改, 無法適應(yīng)現(xiàn)代社會的發(fā)展. 本系統(tǒng)參照IBM 公司主導的Hyperledger Fabric 項目[35], 提出了可熱插拔的共識機制, 構(gòu)造共識機制接口, 只要按照接口的定義實現(xiàn)相關(guān)函數(shù), 即可將新共識機制引入系統(tǒng). 定義共識機制更新協(xié)議, 實現(xiàn)區(qū)塊鏈網(wǎng)絡(luò)各節(jié)點協(xié)商共識機制的更新時機, 同時在區(qū)塊頭中預留共識機制數(shù)據(jù)塊, 即可實現(xiàn)系統(tǒng)的不停機更新.

5.2 實現(xiàn)云部署

云計算作為一項分布式計算, 通過網(wǎng)絡(luò)“云” 將巨大的數(shù)據(jù)計算處理程序分解成無數(shù)個小程序, 然后,通過多部服務(wù)器組成的系統(tǒng)進行處理和分析這些小程序得到結(jié)果并返回給用戶. 云計算正在成為信息技術(shù)產(chǎn)業(yè)發(fā)展的戰(zhàn)略重點. 依托云計算技術(shù), 將本系統(tǒng)遷移至云平臺, 實現(xiàn)云部署, 可以極大程度上解決機器宕機而帶來的系統(tǒng)運行不穩(wěn)定的問題, 保障系統(tǒng)的穩(wěn)定性, 同時也可以減輕系統(tǒng)設(shè)計者的負擔, 區(qū)塊鏈設(shè)計者只要設(shè)計業(yè)務(wù)邏輯機制, 服務(wù)器架構(gòu)、硬件設(shè)施、配置實現(xiàn)資源則交由云平臺服務(wù)商進行統(tǒng)一管理,這樣對于促進整個區(qū)塊鏈行業(yè)的創(chuàng)新也會更有利. 區(qū)塊鏈部署在云上必將成為區(qū)塊鏈的未來發(fā)展趨勢.

根據(jù)郭靜[36]提出的私有云業(yè)務(wù)遷移部署方案, 系統(tǒng)可快速進行云端遷移, 解決一系列不確定因素所造成的系統(tǒng)運行不穩(wěn)定問題.

5.3 優(yōu)化空間緩存

隨著時間的推移, 區(qū)塊鏈系統(tǒng)將會出現(xiàn)數(shù)據(jù)高度冗余的情況, 如目前比特幣的主鏈的區(qū)塊數(shù)據(jù)高達200G. 為緩解此現(xiàn)象, 降低區(qū)塊鏈系統(tǒng)的運行成本以及準入門檻, 本系統(tǒng)設(shè)置了區(qū)塊鏈全節(jié)點和輕節(jié)點[37], 以應(yīng)對現(xiàn)實場景中的各種應(yīng)用環(huán)境, 優(yōu)化了全網(wǎng)絡(luò)的運行負載. 全節(jié)點負載存儲所有的區(qū)塊頭和區(qū)塊體, 可以對外提供完整的公鑰查詢功能. 輕節(jié)點可以只存儲區(qū)塊頭, 也可以存儲區(qū)塊頭和部分區(qū)塊體. 能夠參與主節(jié)點的競爭和證書的確認和轉(zhuǎn)發(fā), 也可對外提供部分公鑰查詢, 滿足了證書的分層管理的設(shè)計理念.

6 總結(jié)

本文設(shè)計了一種基于區(qū)塊鏈技術(shù)的密鑰生命周期演示設(shè)計方案. 探索了區(qū)塊鏈技術(shù)在PKI 等領(lǐng)域中的應(yīng)用, 針對現(xiàn)實應(yīng)用場景, 對密鑰生成、公鑰查詢、密鑰更新、密鑰注銷和密鑰歸檔五個核心功能進行了方案設(shè)計. 利用區(qū)塊鏈的去中心化的特性, 構(gòu)建去中心化的網(wǎng)絡(luò)對并發(fā)的請求能夠有更高的響應(yīng)效率, 具有去中心化、集體維護、安全可信、可溯源和防篡改等突出優(yōu)勢. 有效解決了傳統(tǒng)的密鑰生命周期管理中的癥結(jié)與痛點.

目前本系統(tǒng)在現(xiàn)有條件下可應(yīng)用于局域網(wǎng)中的密鑰生成、證書頒發(fā)、證書更新、證書注銷和密鑰管理, 數(shù)據(jù)在區(qū)塊鏈網(wǎng)絡(luò)和CA 端, 極大程度的降低了客戶端的負荷數(shù)據(jù)量, 客戶端雖然有緩存, 但是可以通過清除緩存, 來釋放占用的磁盤, 清除后想再次獲取數(shù)據(jù)可以通過動態(tài)請求. 私鑰以PEM 格式加密在客戶端進行存儲. 若區(qū)塊鏈網(wǎng)絡(luò)利用公網(wǎng)IP, 則可以在互聯(lián)網(wǎng)環(huán)境下使用該系統(tǒng), 兼容性、可移植性強, 不限定特殊環(huán)境, 可以為很多用戶提供可靠安全的密鑰生命周期管理服務(wù).

漠河县| 嘉定区| 横峰县| 九江县| 长阳| 金塔县| 和政县| 桃江县| 甘德县| 乾安县| 长垣县| 财经| 凤城市| 兖州市| 平塘县| 麦盖提县| 新密市| 娄底市| 广水市| 兴义市| 遂溪县| 长寿区| 新化县| 唐河县| 清水河县| 达拉特旗| 班戈县| 郓城县| 云林县| 灵山县| 旌德县| 景泰县| 南岸区| 都兰县| 乌兰察布市| 平谷区| 黄梅县| 大关县| 赤水市| 西青区| 朝阳区|