劉明達(dá) , 拾以娟 , 陳左寧
1(江南計算技術(shù)研究所,江蘇 無錫 214083)
2(中國工程院,北京 100088)
為了解決傳統(tǒng)體系結(jié)構(gòu)存在的安全問題,可信計算[1,2]應(yīng)運而生.可信計算的目標(biāo)是在計算體系中引入信任根,進(jìn)而建立一條信任鏈[3],將信任關(guān)系從底層硬件擴(kuò)展到上層應(yīng)用,以增強計算系統(tǒng)的安全性.可信計算在保護(hù)終端安全方面發(fā)揮了重要的作用,目前已經(jīng)成為了標(biāo)準(zhǔn)化的技術(shù).
可信計算組織(TCG)于2015 年發(fā)布了TPM2.0 規(guī)范[4],成為ISO/IEC 標(biāo)準(zhǔn)[5].另外,以ARM Trustzone[6,7]和Intel SGX[8,9]為代表的可信執(zhí)行技術(shù)(trusted execution environment,簡稱TEE)近年來也得到了廣泛的關(guān)注.可信執(zhí)行技術(shù)的核心思想是:以CPU 作為信任根,建立從信任根直接到應(yīng)用程序的信任鏈.TEE 目前存在側(cè)信道攻擊等安全問題[10],并未實現(xiàn)預(yù)期的強安全性,但是其思想是可以借鑒和值得研究的.我國可信計算技術(shù)走在世界的前列,已經(jīng)進(jìn)入了可信3.0 的發(fā)展階段[11],核心思想是建立一套主動免疫的計算機(jī)安全體系.無論是理論還是工程實踐方面,都取得了可喜的成果.對于國家安全戰(zhàn)略,復(fù)雜的網(wǎng)絡(luò)安全環(huán)境中的關(guān)鍵信息基礎(chǔ)設(shè)施必須要實現(xiàn)自主可控.然而自主不等于可控,自主也不等于安全,必須加入更多的安全防控手段.可信計算是實現(xiàn)自主可控的關(guān)鍵技術(shù),尤其是在云計算大數(shù)據(jù)的背景之下,可信計算必須重點突破.
面對各種安全威脅和風(fēng)險,只有終端計算環(huán)境的可信是不夠的,還要把信任關(guān)系從終端計算環(huán)境傳遞到網(wǎng)絡(luò)環(huán)境,可信網(wǎng)絡(luò)連接技術(shù)應(yīng)運而生[12].以TCG 的可信網(wǎng)絡(luò)連接(TNC)為例[13],在終端接入網(wǎng)絡(luò)之前,TNC 對終端的身份狀態(tài)和可信狀態(tài)進(jìn)行度量,只有身份合法,并處于安全運行狀態(tài)的終端才可以接入網(wǎng)絡(luò)環(huán)境.TNC 本質(zhì)上是可信計算與網(wǎng)絡(luò)接入控制機(jī)制的結(jié)合.研究可信網(wǎng)絡(luò)連接,用可信計算的思想解決網(wǎng)絡(luò)空間安全問題,本身具有重要的意義.
隨著云計算大數(shù)據(jù)等新型計算模式的興起[14?16],網(wǎng)絡(luò)空間面臨著復(fù)雜棘手的安全威脅,最為嚴(yán)重的是基礎(chǔ)網(wǎng)絡(luò)設(shè)備和CPU 級的安全漏洞,典型漏洞見表1.
Table 1 Vulnerability and attack表1 漏洞和攻擊
無論多么高明的網(wǎng)絡(luò)安全防護(hù)手段,在部署的時候都要依托實際的軟硬件系統(tǒng),但是漏洞是客觀存在的.尤其基礎(chǔ)網(wǎng)絡(luò)設(shè)備、CPU 和安全芯片的漏洞,會對基本的安全假設(shè)帶來嚴(yán)重的挑戰(zhàn),使安全協(xié)議失效.與其他安全技術(shù)相比,可信計算更加偏向底層部件的安全,更接近安全的源頭,在保護(hù)系統(tǒng)結(jié)構(gòu)安全方面擁有不可替代的優(yōu)勢.周天明等人指出[17]:可信計算是一個保障體系,其目標(biāo)是實現(xiàn)網(wǎng)絡(luò)空間可信.廣義上講是解決如何將最基本的信任關(guān)系傳遞到整個網(wǎng)絡(luò)空間,這并不意味著只局限于信任鏈的技術(shù)路線.
TNC 和TCA 架構(gòu)[18]都在一定程度上實現(xiàn)了信任向網(wǎng)絡(luò)擴(kuò)展,相關(guān)研究者在此基礎(chǔ)之上展開了大量的研究工作,主要集中在遠(yuǎn)程證明、訪問控制、匿名性和可信虛擬化,但是鮮有可信網(wǎng)絡(luò)連接基礎(chǔ)架構(gòu)的研究.TNC 和TCA 架構(gòu)目前存在以下問題和挑戰(zhàn).
(1) 信任模型存在局限.網(wǎng)絡(luò)空間安全狀態(tài)復(fù)雜.安全是一個相對性的概念,單純用二值化的可信判斷標(biāo)準(zhǔn)無法準(zhǔn)確刻畫實際的安全狀態(tài),信任關(guān)系難以傳遞到網(wǎng)絡(luò)環(huán)境.因此,以信任鏈為基礎(chǔ)的信任模型存在局限,需要進(jìn)一步拓展.
(2) 訪問控制單點化.在有中心的網(wǎng)絡(luò)環(huán)境中,無論是實際的物理網(wǎng)絡(luò)還是虛擬網(wǎng)絡(luò),最終都是由訪問控制部件根據(jù)一定的訪問控制策略來決定計算節(jié)點之間是否可以通信.訪問控制部件可以是安全網(wǎng)關(guān)、單向隔離設(shè)備以及防火墻等.但是基礎(chǔ)網(wǎng)絡(luò)設(shè)備存在被攻破的風(fēng)險,一旦發(fā)生安全問題,網(wǎng)絡(luò)就會被操控.
(3) 策略決策中心化.在傳統(tǒng)的可信網(wǎng)絡(luò)架構(gòu)中,會維護(hù)一個策略決策的服務(wù)端用于策略判斷和生成訪問控制規(guī)則.TCA 架構(gòu)依托可信第三方進(jìn)行策略管理,比TNC 架構(gòu)具有更強的安全性.但是在部署的時候,策略管理器作為可信第三方,實際上就成了整個網(wǎng)絡(luò)的可信中心.策略管理器的實體必然是一個通用計算環(huán)境,也將面臨上述安全威脅.
針對上述問題,本文結(jié)合目前網(wǎng)絡(luò)環(huán)境的實際需求,提出了基于區(qū)塊鏈的分布式可信網(wǎng)絡(luò)連接架構(gòu).首先,本文對網(wǎng)絡(luò)安全世界的信任問題進(jìn)行深入的闡述,指出目前的信任模型存在的問題;然后提出可信網(wǎng)絡(luò)總體架構(gòu),對信任關(guān)系、基礎(chǔ)框架、區(qū)塊鏈結(jié)構(gòu)進(jìn)行詳細(xì)描述,并給出基本的安全假設(shè);接著對可信網(wǎng)絡(luò)的運行流程進(jìn)行介紹,并對核心問題展開描述,提出了一種基于委托股權(quán)證明(deligated proof of stake,簡稱DPoS)[19]的遠(yuǎn)程證明方法;最后,從正確性、安全性和效率等3 個方面對架構(gòu)進(jìn)行分析.本文的主要貢獻(xiàn)在于:
(1) 分析了網(wǎng)絡(luò)安全世界的信任問題,在總結(jié)現(xiàn)有可信網(wǎng)絡(luò)鏈接缺陷的基礎(chǔ)上,提出了“網(wǎng)絡(luò)環(huán)境依托信任契約,終端環(huán)境依賴可信計算”的信任擴(kuò)展方法;
(2) 提出了基于區(qū)塊鏈技術(shù)的可信網(wǎng)絡(luò)鏈接架構(gòu),充分發(fā)揮區(qū)塊鏈技術(shù)在分布式網(wǎng)絡(luò)中構(gòu)建可信契約的優(yōu)勢,解決了傳統(tǒng)可信網(wǎng)絡(luò)連接面臨的訪問控制單點化和策略決策中心化的問題;
(3) 提出了一種基于DPoS 共識的遠(yuǎn)程證明協(xié)議,在充分保護(hù)隱私的情況下,實現(xiàn)了平臺身份證明和完整性證明,將遠(yuǎn)程證明的決策從依托中心化的可信第三方變?yōu)橐劳行湃纹跫s.
本文第1 節(jié)對相關(guān)問題和技術(shù)進(jìn)行介紹.第2 節(jié)介紹B-TNC 總體架構(gòu)和建立模型.第3 節(jié)介紹B-TNC 運行流程,并且提出關(guān)鍵問題的解決思路.第4 節(jié)從正確性、安全性和效率這3 個方面對架構(gòu)進(jìn)行分析.第5 節(jié)總結(jié)全文并展望下一步工作.
為了對基于區(qū)塊鏈的分布式可信網(wǎng)絡(luò)鏈接進(jìn)行詳細(xì)的闡述,首先對可信網(wǎng)絡(luò)連接和區(qū)塊鏈的基本原理進(jìn)行描述,在此基礎(chǔ)上,對安全世界的信任問題進(jìn)行探討,指出用區(qū)塊鏈技術(shù)構(gòu)建可信任網(wǎng)絡(luò)的必要性和優(yōu)勢.
可信網(wǎng)絡(luò)連接是以TNC 和TCA 技術(shù)路線為代表.狹義上講,可信網(wǎng)絡(luò)連接是一種基于對平臺身份和平臺完整性狀態(tài)的證明,從而決定終端是否可以接入網(wǎng)絡(luò)環(huán)境的技術(shù).但是隨著云計算的發(fā)展,網(wǎng)絡(luò)環(huán)境不再是單純的終端連接的網(wǎng)絡(luò),有了更加豐富的組織形式.廣義上講,可信網(wǎng)絡(luò)連接是將可信計算的信任關(guān)系傳遞到網(wǎng)絡(luò)環(huán)境的過程.可信計算在云環(huán)境下的應(yīng)用同樣屬于這一范疇,其核心技術(shù)是信任根的虛擬化問題.
傳統(tǒng)的可信網(wǎng)絡(luò)架構(gòu)TNC 和TCA 的技術(shù)具有相似性,但是TCA 架構(gòu)克服了TNC 的不足,是中國對可信計算的重要創(chuàng)新.以TCA 架構(gòu)為例,可信網(wǎng)絡(luò)連接旨在構(gòu)建一個三元對等的安全架構(gòu),引入一個可信第三方對參與網(wǎng)絡(luò)連接的實體進(jìn)行身份認(rèn)證和平臺運行狀態(tài)的認(rèn)證.TCA 對實體鑒別、訪問控制以及各個部分之間的通信都制定了相應(yīng)的標(biāo)準(zhǔn),只有具備合法信任根的終端才能夠參與到網(wǎng)絡(luò)交互中,這就實現(xiàn)了信任關(guān)系傳遞到網(wǎng)絡(luò)環(huán)境.
可信計算目前已經(jīng)成為系統(tǒng)安全的重要技術(shù),尤其是在自主可控領(lǐng)域,發(fā)揮了無法替代的作用.原因在于:可信計算能夠接管CPU 對計算環(huán)境安全的控制權(quán),進(jìn)而將安全掌握在自己手中.如何實現(xiàn)信任根TPM 或TCM的虛擬化,將信任鏈從計算終端傳遞到虛擬網(wǎng)絡(luò)環(huán)境,是可信云計算的關(guān)鍵問題[20?22].我們曾面向高安全的虛擬計算環(huán)境,提出一種基于SR-IOV 技術(shù)構(gòu)建硬件虛擬化TCM 的方法[23],為每個虛擬節(jié)點提供硬件級的虛擬化TCM,實現(xiàn)了虛擬機(jī)獲取基于硬件的密鑰保護(hù)和密碼計算資源.但是這種信任擴(kuò)展方式和云環(huán)境下動態(tài)靈活的網(wǎng)絡(luò)特性互相矛盾,并不能展開大規(guī)模的部署和應(yīng)用.信任關(guān)系如何向云環(huán)境傳遞,仍需展開更加深入的研究.
區(qū)塊鏈[24,25]本質(zhì)上是一個狀態(tài)機(jī)副本協(xié)議,旨在建立一個去中心或弱中心化的數(shù)據(jù)庫系統(tǒng),實現(xiàn)分布式環(huán)境下安全高效的共識機(jī)制.除了在電子貨幣中取得的成果外,基于區(qū)塊鏈可實現(xiàn)更廣泛意義上的安全多方計算,因此,區(qū)塊鏈技術(shù)可應(yīng)用領(lǐng)域相對電子貨幣更加廣泛.在區(qū)塊鏈提出之前,類似的功能通?;诎踩喾絽f(xié)同計算實現(xiàn),例如通過著名的拜占庭協(xié)議[26]也可以實現(xiàn)多方參與者的共識.區(qū)塊鏈技術(shù)的獨特之處在于如下幾方面.
(1) 區(qū)塊鏈共識機(jī)制無需可信第三方參與.
無可信第三方參與意味著任何用戶均可自由參與區(qū)塊鏈系統(tǒng),因此,區(qū)塊鏈稱為無許可系統(tǒng).在傳統(tǒng)的安全多方計算環(huán)境中,攻擊者可注冊足夠數(shù)量的用戶,則可實施女巫攻擊(sybil attacks)[27].Barak 等人系統(tǒng)研究了無許可機(jī)制系統(tǒng)下的女巫攻擊問題,區(qū)塊鏈技術(shù)通過工作量證明機(jī)制有效抵抗了此類攻擊[28].隨著區(qū)塊鏈技術(shù)的演進(jìn),從業(yè)務(wù)驅(qū)動的角度出發(fā),又出現(xiàn)了有許可的區(qū)塊鏈系統(tǒng),即私有鏈或聯(lián)盟鏈.節(jié)點必須提供可信的身份證據(jù)才能夠參與到區(qū)塊鏈中.
(2) 區(qū)塊鏈共識機(jī)制運行效率極高.
傳統(tǒng)的安全多方計算協(xié)議均較為復(fù)雜[29],通信復(fù)雜性及計算復(fù)雜性限制了其在大規(guī)模環(huán)境中的使用.區(qū)塊鏈技術(shù)是第一種可在全球范圍分布式部署的共識協(xié)議.區(qū)塊鏈系統(tǒng)通過簡單的無認(rèn)證廣播信道以及區(qū)塊鏈長度競爭機(jī)制,實現(xiàn)了高效的共識.
典型的區(qū)塊鏈系統(tǒng)由網(wǎng)絡(luò)層、共識層、數(shù)據(jù)層、智能合約層和應(yīng)用層組成[30].其中,網(wǎng)絡(luò)層通常是基于P2P協(xié)議進(jìn)行節(jié)點之間的通信;共識層實現(xiàn)共識協(xié)議,協(xié)議可以是根據(jù)實際場景自由選擇,比如基于工作量證明PoW,和基于權(quán)益證明PoS;數(shù)據(jù)層是區(qū)塊鏈的數(shù)據(jù)結(jié)構(gòu),其結(jié)構(gòu)設(shè)計通常根據(jù)實際需要與應(yīng)用場景緊密耦合,每一個計算節(jié)點負(fù)責(zé)維護(hù)自己的存儲系統(tǒng);智能合約層能夠?qū)τ诓煌臄?shù)據(jù)輸入執(zhí)行不同的操作,這個過程依托代碼自動執(zhí)行,并在全網(wǎng)達(dá)成共識;應(yīng)用層是區(qū)塊鏈系統(tǒng)的各種基本業(yè)務(wù),比如金融服務(wù)、數(shù)據(jù)溯源等.為了便于描述,本文將區(qū)塊鏈系統(tǒng)進(jìn)行抽象表示,如圖1 所示.
Fig.1 Abstractdescription of blockchain system圖1 區(qū)塊鏈系統(tǒng)抽象描述
安全世界的信任問題源自于人類社會的信任關(guān)系,而人類社會信任關(guān)系擴(kuò)展模型與人類社會的組織關(guān)系是相對應(yīng)的.信任是多元的,發(fā)生在不同主體的交互過程,是一個網(wǎng)狀的拓?fù)浣Y(jié)構(gòu).也就是說,如果沒有信任的交互,即便每個人都相信自己,也無法形成信任社會.人類社會發(fā)展至今,已經(jīng)形成了比較完善的社會信任體系,根據(jù)信任體系參與者的數(shù)量不同,可以從兩個維度去區(qū)分.
經(jīng)過長時間的使用后,往復(fù)式真空泵氣閥中的彈簧性能就會逐漸下降,從而會發(fā)生漏氣、閉合不嚴(yán)等現(xiàn)象,增加其自身的溫度。結(jié)合實際情況能夠發(fā)現(xiàn),通常為氣閥所配備的彈簧件質(zhì)量不佳,而氣閥超溫基本上集中在中間位置,而該位置處沒有冷卻水,所以溫度就會居高不下,加之彈簧不具有耐高溫的性能,因此,影響整個氣閥的實際運行。
(1) 依托信任傳遞的“小團(tuán)體”信任模型.
這種信任模式通常發(fā)生在較少的個體之間,最典型的模式為:A信任B,B信任C,進(jìn)而A在某種程度上可以信任C,這個過程是單向的.依托這種信任傳遞關(guān)系,能夠?qū)崿F(xiàn)兩類信任場景:一種是家庭、家族甚至族群之間的互相信任,信任傳遞的路徑短,信任在傳遞過程中的損耗相對比較低,但是難以擴(kuò)展到更大的范圍;另一種是對權(quán)威的信任,人們通常愿意相信權(quán)威人士或?qū)<?類似于可信的第三方,但是這并不能解決普通成員之間的互信,并且權(quán)威并不是完全可信的.在小團(tuán)體信任中,個體的信任失效有可能引發(fā)整個信任關(guān)系的失效.
(2) 基于信任契約的“大團(tuán)體”信任模型.
隨著人類社會的進(jìn)步與發(fā)展,相互協(xié)作的團(tuán)體規(guī)模越來越大,形成了城邦、國家或者企業(yè)集團(tuán),規(guī)章制度、法律法規(guī)就成了維系其運行的關(guān)鍵因素,這就是信任契約.信任契約的形成需要參與的實體達(dá)成共識,并且保證大部分的參與者遵守這一契約.在人類社會中,不可能所有的個體都能夠嚴(yán)格遵守規(guī)章制度和道德法律,一定存在不遵守規(guī)則的個體,但是信任契約對此是可以容忍的.
可信計算以信任鏈技術(shù)為基礎(chǔ),將信任傳遞與體系結(jié)構(gòu)高度融合,能夠有效實現(xiàn)計算終端環(huán)境的可信.但是為了實現(xiàn)方便,可信計算在實際應(yīng)用時采用的是二值化的信任判斷模型,對于安全的刻畫局限于安全或不安全,這與復(fù)雜的網(wǎng)絡(luò)計算環(huán)境是不符合的.同樣的安全狀態(tài),對于不同的業(yè)務(wù)應(yīng)用場景是不同的,這涉及到復(fù)雜的等級保護(hù)問題,本文不再展開.
從最基本的原理而言,網(wǎng)絡(luò)計算環(huán)境和社會環(huán)境具有極高的相似性,都是由多個主體構(gòu)成,主體之間存在各種通信交互往來,存在惡意主體,都更強調(diào)整體性而弱化個體.可信計算在將信任關(guān)系傳遞到網(wǎng)絡(luò)環(huán)境時,基本思想是:通過保證每一個計算終端的安全,進(jìn)而保證網(wǎng)絡(luò)環(huán)境的整體可信.但是基于上述討論可知,個體安全并不能保證整體安全,并且保證所有的個體可信是困難的,一定存在一定比例的壞節(jié)點.本文認(rèn)為,信任模型缺陷是限制信任關(guān)系向網(wǎng)絡(luò)環(huán)境傳遞最大的制約因素,也是制約可信網(wǎng)絡(luò)連接發(fā)展的重要原因.
回到可信計算發(fā)展的出發(fā)點,以人類社會基本的信任關(guān)系作為基點去探索安全世界的信任關(guān)系,我們可以得到這樣的結(jié)論:信任鏈的信任傳遞模型能夠有效實現(xiàn)終端環(huán)境的可信,但與網(wǎng)絡(luò)環(huán)境不適應(yīng),需要建立信任契約來解決網(wǎng)絡(luò)環(huán)境下的信任傳遞問題.
Table 2 Centralized trust root and distributed trust root表2 集中式信任根和分散式信任根
綜上所述,以區(qū)塊鏈為基礎(chǔ)的分散式信任根在信任模型構(gòu)建、安全假設(shè)以及信任傳遞方面與實際網(wǎng)絡(luò)環(huán)境更加貼合.這能夠有效彌補傳統(tǒng)可信計算在構(gòu)建可信網(wǎng)絡(luò)時存在的不足,將信任關(guān)系有效傳遞到網(wǎng)絡(luò)環(huán)境中.為了實現(xiàn)這個目標(biāo),本文在對安全世界的信任問題的研究基礎(chǔ)之上,探索如何基于區(qū)塊鏈技術(shù)構(gòu)建分散式信任根的方法,以整體的網(wǎng)絡(luò)空間作為著眼點,實現(xiàn)網(wǎng)絡(luò)空間的可信.
基于區(qū)塊鏈的分布式可信網(wǎng)絡(luò)連接架構(gòu)B-TNC 本質(zhì)上是可信計算技術(shù)和區(qū)塊鏈的融合.本節(jié)首先描述B-TNC 中的信任傳遞關(guān)系,然后給出B-TNC 的基礎(chǔ)框架和總體架構(gòu).接著對其進(jìn)行抽象化的描述,提出最基本的理論模型.在此基礎(chǔ)之上,提出B-TNC 的區(qū)塊鏈結(jié)構(gòu)設(shè)計方法,最后給出安全假設(shè).
根據(jù)信任來源不同,B-TNC 架構(gòu)的信任關(guān)系從邏輯上可以分為網(wǎng)絡(luò)可信和終端可信,如圖2 所示.
(1) 終端可信.終端計算環(huán)境的可信由可信計算保障,采用信任鏈的信任傳遞方法.信任根的可信由硬件安全保證.通常認(rèn)為,基于硬件的安全防護(hù)強度要高于軟件.在硬件設(shè)計中,要充分考慮信任根的物理安全,并且能夠有效對抗常見的側(cè)信道攻擊,如能量分析[31].信任鏈的信任關(guān)系由密碼安全保證,而密碼體質(zhì)的安全源自于數(shù)學(xué)原理.具體來說,只要密碼學(xué)體制未被攻破,就能保證信任傳遞的真實性.
(2) 網(wǎng)絡(luò)可信.根據(jù)第1.3 節(jié)對安全世界信任問題的討論,本文提出基于區(qū)塊鏈實現(xiàn)網(wǎng)絡(luò)層的可信.以密碼安全和共識協(xié)議為基本手段,建立網(wǎng)絡(luò)環(huán)境下的信任契約,重點對計算節(jié)點在網(wǎng)絡(luò)環(huán)境中的連接行為進(jìn)行管控.基于區(qū)塊鏈的網(wǎng)絡(luò)可信有兩層含義:一方面是基于區(qū)塊鏈的可信連接,核心是遠(yuǎn)程證明、訪問控制和日志審計過程;另一方面是基于區(qū)塊鏈構(gòu)建可信第三方,提供CA 服務(wù),零知識證明以及可信驗證等服務(wù).
Fig.2 Trustrelationship in B-TNC圖2 B-TNC 中的信任關(guān)系
終端可信和網(wǎng)絡(luò)可信并不是完全獨立的.終端可信是網(wǎng)絡(luò)可信的基礎(chǔ),可信計算一方面能夠為安全系統(tǒng)提供最基礎(chǔ)的密碼支持,另一方面能夠增強終端計算環(huán)境的安全性,這對于區(qū)塊鏈系統(tǒng)非常重要.因為區(qū)塊鏈系統(tǒng)要滿足大多數(shù)節(jié)點誠實這一基本的假設(shè),終端可信恰好有助于此.同時,區(qū)塊鏈彌補了可信計算在解決網(wǎng)絡(luò)可信方面的不足,能夠?qū)⑿湃侮P(guān)系有效地傳遞到網(wǎng)絡(luò)環(huán)境當(dāng)中.這樣就構(gòu)建了一種雙層的信任關(guān)系.在這個基礎(chǔ)之上,可以提出B-TNC 的基礎(chǔ)框架和總體架構(gòu).
基于區(qū)塊鏈的分布式可信網(wǎng)絡(luò)連接架構(gòu)的基礎(chǔ)框架包含3 個實際網(wǎng)絡(luò)運行環(huán)境,分別是可信網(wǎng)絡(luò)環(huán)境、分布式的可信第三方以及外部網(wǎng)絡(luò)環(huán)境,如圖3 所示.
(1) 可信網(wǎng)絡(luò)環(huán)境.可信網(wǎng)絡(luò)環(huán)境是需要保護(hù)的網(wǎng)絡(luò)環(huán)境,在本文的假設(shè)中具有去中心的特點.與信任關(guān)系相對應(yīng),每一個被允許加入可信網(wǎng)絡(luò)環(huán)境的終端都必須具備合法的信任根TPM/TCM.信任根一方面可以對計算終端安全提供可信支撐,另一方面為計算節(jié)點提供強身份認(rèn)證.可信網(wǎng)絡(luò)環(huán)境是一個依托區(qū)塊鏈系統(tǒng)組成的邏輯環(huán)境,在網(wǎng)絡(luò)中維護(hù)一個面向可信網(wǎng)絡(luò)連接的區(qū)塊鏈系統(tǒng),提供訪問控制、日志審計以及遠(yuǎn)程證明的服務(wù)功能.可信網(wǎng)絡(luò)環(huán)境中存在兩種節(jié)點:可信計算節(jié)點(trusted node,簡稱TN),這是實際安全的節(jié)點,具有合法的TPM;非可信節(jié)點(non-trusted node,簡稱NTN),網(wǎng)絡(luò)中實際可能存在安全隱患的節(jié)點,但并不一定是惡意節(jié)點.
(2) 分布式的可信第三方.可信第三方是構(gòu)建實際密碼系統(tǒng)的基礎(chǔ),但是中心化的信任背書通常意味著更大的攻擊威脅.近年來出現(xiàn)了基于區(qū)塊鏈技術(shù)構(gòu)建可信第三方的研究,如 Conner 等人提出的Certcoin[32,33]、Chen 等人提出的CertChain[34],都是將區(qū)塊鏈技術(shù)用于實現(xiàn)一個更加安全高效的公鑰基礎(chǔ)設(shè)施(public key infrastructure,簡稱PKI).除PKI 外,可信網(wǎng)絡(luò)連接架構(gòu)需要可信驗證和零知識證明兩種第三方服務(wù),其中,可信驗證源自于基于屬性的遠(yuǎn)程證明[35],能夠根據(jù)完整性證據(jù)為通信雙方提供可信判斷服務(wù);零知識證明被用于直接匿名證明(direct anonymous attestation,簡稱DAA)[36],用于保護(hù)計算平臺在參與網(wǎng)絡(luò)通信過程中的匿名性.受到Certcoin,CertChain 啟發(fā),分布式的可信第三方的構(gòu)建具有可行性,但實現(xiàn)細(xì)節(jié)不作為本文的研究重點.
(3) 外部網(wǎng)絡(luò)環(huán)境.外部網(wǎng)絡(luò)環(huán)境從用戶角度分為誠實用戶和惡意用戶,從終端可信角度分為可信終端、惡意終端和未知終端.未知終端的含義是:不具有惡意終端的惡意行為,但是可能存在潛在的安全風(fēng)險.外部網(wǎng)絡(luò)環(huán)境和可信網(wǎng)絡(luò)環(huán)境與可信第三方的關(guān)系相同,都是獲取證書服務(wù)、可信驗證和零知識證明服務(wù).外部網(wǎng)絡(luò)和可信網(wǎng)絡(luò)環(huán)境之間是遠(yuǎn)程證明、可信連接和訪問控制.外部網(wǎng)絡(luò)存在惡意節(jié)點(malicious node,簡稱MN),是外部網(wǎng)絡(luò)試圖入網(wǎng)的惡意節(jié)點.
Fig.3 Basicframe of trusted network圖3 可信網(wǎng)絡(luò)基礎(chǔ)框架
B-TNC 的總體架構(gòu)如圖4 所示,包括4 個實體、3 個區(qū)塊鏈系統(tǒng)、5 個層次和若干接口組件.該架構(gòu)在傳統(tǒng)可信網(wǎng)絡(luò)連接層次上增加了區(qū)塊鏈系統(tǒng).B-TNC 將策略的執(zhí)行由中心轉(zhuǎn)移到各實體,將決策由分布式的可信第三方轉(zhuǎn)移到分布式的可信第三方,實現(xiàn)了一種新型的可信網(wǎng)絡(luò)連接架構(gòu).
Fig.4 Overall architecture of B-TNC圖4 B-TNC 總體架構(gòu)
· 實體
4 個實體分別是訪問請求者(access requestor,簡稱ARQ)、訪問接收者(access receiver,簡稱ARC)、策略決策點(policy decision point,簡稱PDP)和策略執(zhí)行點(policy enforcement point,簡稱PEP).其中,
· ARQ 位于外部網(wǎng)絡(luò),發(fā)出訪問請求,收集平臺完整性可信信息,申請與可信網(wǎng)絡(luò)環(huán)境中的計算節(jié)點建立網(wǎng)絡(luò)連接;
· ARC 位于可信網(wǎng)絡(luò)環(huán)境,是被訪問的計算節(jié)點,需要對訪問請求進(jìn)行處理,將ARQ 的平臺完整性信息轉(zhuǎn)發(fā)到區(qū)塊鏈系統(tǒng)進(jìn)行可信驗證;
· PDP 在組成結(jié)構(gòu)上與傳統(tǒng)可信網(wǎng)絡(luò)連接不同:B-TNC 中,PDP 是一個由全網(wǎng)共同組成的邏輯實體,通過區(qū)塊鏈數(shù)據(jù)庫系統(tǒng)和共識協(xié)議維系.PDP 根據(jù)各計算節(jié)點的安全策略對ARQ 的訪問請求進(jìn)行決策判定,判斷的依據(jù)是ARQ 的身份和完整性狀態(tài)信息,并將判斷結(jié)果寫入的區(qū)塊鏈系統(tǒng);
· PEP 部署在ARQ 和ARC,負(fù)責(zé)執(zhí)行訪問控制策略.
ARQ 包括4 個組件:網(wǎng)絡(luò)訪問請求者(network access requestor,簡稱NARQ)發(fā)出訪問請求,申請加入可信網(wǎng)絡(luò)環(huán)境,建立網(wǎng)絡(luò)連接.ARQ 的B-TNC 客戶端(B-TNC client,簡稱B-TNCC)收集完整性度量模塊(integrity measurement module,簡稱IMM)的完整性度量信息,并將完整性度量信息向遠(yuǎn)端平臺報告.完整性度量信息的內(nèi)容和組成由可信度量的具體模型決定.IMM 和TCM 協(xié)同度量ARQ 各個組件的完整性.區(qū)塊鏈高速引擎(blockchain high-speed engine,簡稱BHSE)是實體與區(qū)塊鏈系統(tǒng)之間的接口,一方面提供區(qū)塊鏈讀取寫入查詢等基本功能,另一方面對區(qū)塊鏈數(shù)據(jù)系統(tǒng)進(jìn)行實時解析,在本地維護(hù)一個支持高速查詢的區(qū)塊鏈數(shù)據(jù)庫.但是必須被可信網(wǎng)絡(luò)接受以后才能夠獲得區(qū)塊鏈上的數(shù)據(jù).
ARC 包括4 個組件:網(wǎng)絡(luò)訪問接收者(network access receiver,簡稱NARC)接收外部節(jié)點ARQ 的入網(wǎng)申請,發(fā)起對ARQ 的可信度量.ARC 的B-TNC 服務(wù)端(B-TNC server,簡稱B-TNCS)接收ARQ 發(fā)送的完整性度量報告,并提交到完整性驗證模塊(integrity verifier module,簡稱IVM)進(jìn)行驗證.IVM 發(fā)起對ARQ 的可信驗證,將可信度量信息廣播到可信網(wǎng)絡(luò)環(huán)境的計算節(jié)點,等待驗證.區(qū)塊鏈高速引擎與ARQ 中的作用相同,不再贅述.
PDP 包括兩個組件:基于共識協(xié)議的網(wǎng)絡(luò)訪問授權(quán)者(network access authority based on consensus protocol,簡稱CP-NAA)和區(qū)塊鏈高速引擎.與TNC 架構(gòu)中的NAA 不同,B-TNC 的CP-NAA 并不是單一的物理實體,而是由運行在可信網(wǎng)絡(luò)中的多個計算節(jié)點組成的邏輯實體.這些計算節(jié)點均產(chǎn)生ARQ 是否可以加入可信網(wǎng)絡(luò)的決策,并基于共識協(xié)議匯總決策,形成最終的共識.需要說明的是,共識協(xié)議多種多樣,必須根據(jù)具體的共識協(xié)議設(shè)計合理的決策節(jié)點數(shù)目.在CP-NAA 中,每次共識均選舉產(chǎn)生一個記賬節(jié)點(leader node,簡稱LN),由LN 作為區(qū)塊鏈中的“礦工”將最終的結(jié)果寫入?yún)^(qū)塊鏈系統(tǒng).本文提出了一種基于DPoS 共識的方法,以驗證其可行性,但并不僅局限于此.
· 區(qū)塊鏈系統(tǒng)
3 個區(qū)塊鏈系統(tǒng)分別是基于區(qū)塊鏈的訪問控制系統(tǒng)(access control blockchain,簡稱AccessChain)、基于區(qū)塊鏈的日志審計系統(tǒng)(log audit blockchain,簡稱LogChain)和分布式的可信第三方(distributed trusted third party,簡稱DTTP).在前期研究中,我們提出了基于區(qū)塊鏈的遠(yuǎn)程證明模型[37],給出了訪問控制和可信證據(jù)追溯的基本方法,兩類功能都在同一個區(qū)塊鏈上.但是訪問控制和日志審計的數(shù)據(jù)量并不同,不能很好地滿足實際需求.在此基礎(chǔ)之上,本文提出了用3 個區(qū)塊鏈系統(tǒng)支撐可信網(wǎng)絡(luò)連接的方法.AccessChain 用于記錄訪問控制策略,本質(zhì)上是一個訪問控制的決策賬本,參與到可信網(wǎng)絡(luò)環(huán)境的計算節(jié)點以身份密鑰(attestation identity key,簡稱AIK)作為標(biāo)識.計算節(jié)點的基本信息被寫入AccessChain,并設(shè)置加入網(wǎng)絡(luò)的時間和有效期.AccessChain 為PEP 提供決策支撐.LogChain 記錄可信網(wǎng)絡(luò)運行的日志數(shù)據(jù),為審計和追溯提供證據(jù),主要是利用了區(qū)塊鏈防篡改的特性.DTTP 是用區(qū)塊鏈技術(shù)構(gòu)建的可信第三方,提供3 種服務(wù):證書服務(wù)、完整性驗證和零知識證明.CertChain 的研究已經(jīng)證明,基于區(qū)塊鏈構(gòu)建分布式的可信第三方是可行的、高效的、安全的.如何具體實現(xiàn)不作為本文研究重點.
· 層次
5 個層次分別是訪問控制層、基礎(chǔ)網(wǎng)絡(luò)層、度量評估層、區(qū)塊鏈引擎和驗證審計層:訪問控制層運行AccessChain;基礎(chǔ)網(wǎng)絡(luò)層支持傳統(tǒng)的網(wǎng)絡(luò)連接通信技術(shù),如P2P、Gossip 協(xié)議、VPN 等機(jī)制;度量評估層進(jìn)行平臺的度量認(rèn)證,形成計算節(jié)點是否可以加入可信網(wǎng)絡(luò)的決策;區(qū)塊鏈引擎和其他部件交互,提供區(qū)塊鏈服務(wù);驗證審計層由LogChain 和DTTP 組成,為可信網(wǎng)絡(luò)提供驗證和審計的支撐.
· 接口
B-TNC 架構(gòu)存在多個實體,與TNC 架構(gòu)相同,實體之間同樣有通信和互操作的需求.但是由于引入了區(qū)塊鏈系統(tǒng),導(dǎo)致架構(gòu)中存在虛擬的邏輯實體,并且接口更加復(fù)雜.對其中比較重要的接口進(jìn)行定義,從底層到上層包括IF-AR,IF-CS,IF-PEP,IF-BHSE 和IF-BPEP.其中,IF-AR 是ARQ 和ARC 之間的接口,實現(xiàn)雙方的信息傳輸;IF-CS 維護(hù)B-TNCC 和B-TNCS 之間的通信,主要支持可信網(wǎng)絡(luò)節(jié)點加入時的網(wǎng)絡(luò)數(shù)據(jù)傳輸;IF-PEP 是PEP 之間的根據(jù)訪問控制策略形成的穩(wěn)定的安全信道;IF-BHSE 是各個實體調(diào)用區(qū)塊鏈系統(tǒng)的接口;IF-BPEP 是PEP獲取區(qū)塊鏈中存儲的策略的接口.但是具體協(xié)議實現(xiàn)不作為本文研究重點.
給出B-TNC 中各部件的定義,未定義的部分沿用第2.3 節(jié)的描述.
定義1.Pi={Pi_AIK,Pi_Nonce,Pi_Others},參與節(jié)點i的身份證據(jù)集合,其核心是Pi_AIK,是用戶的身份密鑰,在可信系統(tǒng)中用于標(biāo)識用戶的身份;Pi_Nonce是隨機(jī)數(shù),用于對抗重放攻擊.對身份合法性的可信驗證就是對Pi的驗證.
定義2.Si={Si_1,Si_2,Si_3,…,Si_n},參與節(jié)點i的完整性證據(jù)集合,其中,n為計算平臺組件的數(shù)目.計算平臺的組件主要包括信任根、BIOS、內(nèi)核、操作系統(tǒng)和應(yīng)用程序.
定義3.T={T1,T2,T3,…,Tn},可信網(wǎng)絡(luò)中計算節(jié)點的集合,n為可信網(wǎng)絡(luò)中計算節(jié)點的數(shù)目.外部節(jié)點集合定義為C={C1,C2,C3,…,Cn}.定義計算節(jié)點的決策集合Dm={D1_m,D2_m,D3_m,…,Dn_m},表示T中各節(jié)點對節(jié)點Cm的證明結(jié)果,1 代表可信,0 代表不可信.
定義4.AccessChain:(AC1→AC2→…→ACn→…).
定義5.LogChain:(LC1→LC2→…→LCn→…).
給出B-TNC 中各基本操作的定義:
定義6.FMeasure(Cm,Pm,Sm),完整性度量函數(shù).計算平臺Cm對自身的完整性進(jìn)行度量,得到身份證據(jù)集合Pm和完整性證據(jù)集Sm.
定義7.Verify_Identity(Tk,Pm,Id_Result),身份合法性驗證函數(shù).計算節(jié)點Tk根據(jù)Pm對平臺Tm進(jìn)行身份合法性校驗,得到證明結(jié)果Id_Result.
定義8.Verify_Integrity(Tk,Sm,Dk_m),完整性驗證函數(shù).計算節(jié)點Tk根據(jù)Sm對平臺Tm進(jìn)行完整性校驗,得到證明結(jié)果Dk_m.
定義9.Pick(T,LN),每個階段記賬節(jié)點的共識算法,在集合T中選取領(lǐng)導(dǎo)節(jié)點LN.
定義10.Decision(LN,Dm,Access,AC_newBlock),全網(wǎng)決策函數(shù).領(lǐng)導(dǎo)節(jié)點LN根據(jù)決策集合Dm產(chǎn)生最終決策Access,其中,1 代表可以入網(wǎng),0 代表不可入網(wǎng).進(jìn)而根據(jù)決策結(jié)果生成AccessChain 的新區(qū)塊AC_newBlock.
定義11.Re_Blockchain(LN,Blockchain,T,new_Block),區(qū)塊鏈更新函數(shù).領(lǐng)導(dǎo)節(jié)點LN將new_Block廣播到可信網(wǎng)絡(luò)中所有節(jié)點T.需要說明的是,根據(jù)實際需要,Blockchain有兩種:AccessChain 和LogChain.與之對應(yīng),new_Block包括AC_newBlock和LogChain 的新區(qū)塊Log_newBlock.
定義12.Refer_AC(AccessChain,Pi_AIK,AC_Result),查詢擁有身份Pi_AIK的計算節(jié)點在AccessChain 中是否合法,并得到查詢結(jié)果AC_Result.
定義13.Refer_Log(LogChain,Pi_AIK,Log_Result),查詢擁有身份Pi_AIK的計算節(jié)點在LogChain 中是否有記錄,并得到查詢結(jié)果Log_Result.
定義14.Refer_DTTP(DTTP,Pi_AIK,DTTP_Result),查詢擁有身份Pi_AIK的計算節(jié)點在DTTP中是否有記錄,并得到查詢結(jié)果DTTP_Result.
定義15.通信功能相關(guān)定義如下:
·Send(Message,P,Q),將內(nèi)容Message從P節(jié)點發(fā)送到Q節(jié)點;
·Connect(P,Q,time_begin,time_end),P和Q兩個節(jié)點建立正式通信,有效期從time_begin到time_end;
·Disconnect(P,Q,time),P和Q從時間time開始斷開連接.
B-TNC 中的3 個區(qū)塊鏈系統(tǒng)代表了區(qū)塊鏈技術(shù)在信息安全領(lǐng)域的3 個重要的應(yīng)用方向,即訪問控制、數(shù)據(jù)保護(hù)和身份認(rèn)證[38].本節(jié)描述3 種區(qū)塊鏈系統(tǒng)的基本結(jié)構(gòu),對區(qū)塊鏈系統(tǒng)的功能進(jìn)行梳理,重點是說明可行性.
· AccessChain
訪問控制是用戶權(quán)限管理的重要技術(shù)手段,能夠允許合法用戶訪問資源,并且拒絕非法用戶的越權(quán)訪問.區(qū)塊鏈和訪問控制的結(jié)合主要采用兩種技術(shù)路線:基于交易進(jìn)行策略/權(quán)限管理、基于智能合約進(jìn)行訪問控制.在B-TNC 的架構(gòu)下,AccessChain 屬于前者.基于交易進(jìn)行策略/權(quán)限管理的訪問控制系統(tǒng)主要有Damiano 機(jī)制[39]、Zyskind 機(jī)制[40]、FairAccess 機(jī)制[41?43]和Dorri[44,45].其中,Zyskind,FairAccess 和Dorri 面向的是移動應(yīng)用或物聯(lián)網(wǎng)環(huán)境,和B-TNC 的應(yīng)用場景不符.AccessChain 的可行性源自于Damiano 系統(tǒng).Damiano 面向泛化的應(yīng)用場景,探索了使用區(qū)塊鏈創(chuàng)建、管理、執(zhí)行訪問控制策略的可行性,對基于屬性的訪問控制模型ABAC 進(jìn)行了擴(kuò)展.AccessChain 的數(shù)據(jù)結(jié)構(gòu)如圖5 所示,是一個通用的區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu).每一條記錄就是一個節(jié)點的訪問控制信息,其中包括節(jié)點信息(AIK,IP,MAC 等信息)、入網(wǎng)時間、有效期、隨機(jī)數(shù)等.本文在第3 節(jié)參考Damiano 系統(tǒng)的設(shè)計方法,對AccessChain 的運行流程進(jìn)行描述.但是Damiano 面向的是公有鏈,和B-TNC 有一定的不同.
Fig.5 Data structure of AccessChain圖5 AccessChain 的數(shù)據(jù)結(jié)構(gòu)
· LogChain
區(qū)塊鏈?zhǔn)且环N分布式的共享數(shù)據(jù)總賬,記錄在區(qū)塊鏈上的數(shù)據(jù)只可以增加,不可以篡改.這個特性可以用于實現(xiàn)信息系統(tǒng)全流程的監(jiān)控,實現(xiàn)不可篡改的數(shù)據(jù)記錄,適合于日志審計系統(tǒng)的構(gòu)建,從數(shù)學(xué)原理上保證審計系統(tǒng)的安全性.Cucurull J 等人[46]使用區(qū)塊鏈來實現(xiàn)不可篡改的安全審計日志,將區(qū)塊鏈防篡改的特性與日志審計系統(tǒng)結(jié)合,實現(xiàn)了可信的日志審計系統(tǒng),也為LogChain 提供了理論和實踐的支撐.在B-TNC 架構(gòu)中,可信網(wǎng)絡(luò)中計算節(jié)點的日志信息由LogChain 記錄,網(wǎng)絡(luò)運行中的重要行為都會被記錄到鏈上.
在遠(yuǎn)程證明中,可信驗證通常依托于可信第三方.但是在B-TNC 中,LogChain 系統(tǒng)能夠為可信驗證的決策提供可靠的依據(jù),增強可信系統(tǒng)的安全性.本文僅對LogChain 基本功能進(jìn)行梳理,不再展開設(shè)計工作.需要說明的是,與AccessChain 相比,LogChain 對數(shù)據(jù)吞吐量的要求更高,記錄的數(shù)據(jù)更多,但是對于共識時效性要求較低.
· DTTP
身份認(rèn)證是可信第三方的一個重要功能,目前,相關(guān)研究者已經(jīng)展開了基于區(qū)塊鏈構(gòu)建PKI 的研究,為分布式可信第三方DTTP 的創(chuàng)建奠定了基礎(chǔ).目前,PKI 系統(tǒng)在分布式環(huán)境下面臨的最大的挑戰(zhàn)是證書授權(quán)中心(certificate authority,簡稱CA)不可信的問題.CA 不可信主要包括3 種情況:1) CA 被黑客攻擊,導(dǎo)致中間人攻擊的問題;2) 用戶無法驗證CA 簽證的過程,導(dǎo)致證書不透明的問題;3) 中心化CA 故障,導(dǎo)致所有證書不可用.為了解決上述問題,相關(guān)研究者展開了大量的研究.具有代表性的是麻省理工學(xué)者Conner 提出的Certcoin 系統(tǒng)和武漢大學(xué)學(xué)者Chen 提出了CertChain 系統(tǒng).上述研究一方面證實了基于區(qū)塊鏈構(gòu)建PKI 的可行性,另一方面證明了基于區(qū)塊鏈構(gòu)建PKI 在安全方面的優(yōu)勢.
可信網(wǎng)絡(luò)連接中涉及到3 種可信第三方,除PKI 系統(tǒng)外,還有DAA 中零知識證明證據(jù)發(fā)布者以及基于屬性的遠(yuǎn)程證明中可信驗證者.零知識證明證據(jù)發(fā)布者可以依托PKI 系統(tǒng)建立,在TPM/TCM 身份注冊或驗證時生成證據(jù),理論上不存在實現(xiàn)難度.但是分布式的可信驗證者目前并沒有可以參考的系統(tǒng),本文提出了一種基于區(qū)塊鏈的設(shè)計思路,具體描述見第3.2 節(jié).
1.敵手可以竊聽、截獲和篡改通信消息.
2.底層密碼算法是安全的,隨機(jī)數(shù)和私鑰均無法被分析攻破.
3.可信網(wǎng)絡(luò)在建立之初是可信的.
4.網(wǎng)絡(luò)中的節(jié)點在剛剛加入網(wǎng)絡(luò)時可信.
5.通信信道安全,可以通過加密保證.
6.敵手無法控制1/3 以上的節(jié)點,這個數(shù)字是由共識算法決定的.
本節(jié)對B-TNC 架構(gòu)最重要的問題進(jìn)行描述,包括B-TNC 的基本流程、分布式可信驗證者構(gòu)建的方法和基于DPoS 共識的遠(yuǎn)程證明機(jī)制.
3.1.1 系統(tǒng)初始化
B-TNC 在運行之前需要進(jìn)行基本的初始化操作,主要包括可信網(wǎng)絡(luò)環(huán)境初始化、區(qū)塊鏈系統(tǒng)初始化.
(1)T={T1,T2,T3,…,Tn}.初始節(jié)點建立可信網(wǎng)絡(luò)環(huán)境.
(2) AccessChain:(AC1→AC2→…).初始化AccessChain,創(chuàng)建初始節(jié)點.
(3) LogChain:(LC1→LC2→…).初始化LogChain,創(chuàng)建初始節(jié)點.
(4) 可信第三方DTTP 開始提供可信第三方服務(wù):證書服務(wù)、零知識證明和可信驗證.
3.1.2 基本運行流程
假設(shè)B-TNC 處于運行過程中,此時有外部計算節(jié)點Ci發(fā)起對可信網(wǎng)絡(luò)T內(nèi)部節(jié)點Tj網(wǎng)絡(luò)申請,該過程的基本運行流程如圖6 所示.
Fig.6 Work process of B-TNC圖6 B-TNC 的工作流程
0a.在進(jìn)行網(wǎng)絡(luò)連接和平臺完整性驗證之前,B-TNCC 需要對IMM 進(jìn)行初始化.同理,B-TNCS 要對IVM 進(jìn)行初始化.
0b.BHSE 對AccessChain 和LogChain 進(jìn)行實時解析,在本地存儲區(qū)塊鏈數(shù)據(jù)庫,實現(xiàn)高速查詢.
1.Send(Pi_AIK,NARQ,ARC.PEP).
當(dāng)有連接請求發(fā)生時,NARQ 向ARC 的PEP 發(fā)送連接請求,其節(jié)點身份用Pi_AIK進(jìn)行標(biāo)識.
2.ARC.PEP→Refer_AC(AccessChain,Pi_AIK,AC_Result).
如果驗證合法,Connect(ARQ,ARC,time_begin,time_end).
ARC 的PEP 向AccessChain 查詢,判斷Pi_AIK是否被認(rèn)可,并得到結(jié)果AC_Result.若驗證合法,則ARC 的PEP根據(jù)驗證后的策略執(zhí)行訪問控制操作,建立通信連接;若驗證不合法,則啟動可信網(wǎng)絡(luò)連接的身份驗證和完整性狀態(tài)驗證.
3a.B-TNCC 和B-TNCS 對平臺身份的合法性發(fā)起驗證.
3b.ARQ.IMM→FMeasure(Ci,Pi,Si) thenSend(Pi||Si,B-TNCC,B-TNCS).
ARQ 的IMM 對平臺進(jìn)行度量,得到身份證據(jù)集合Pi和完整性證據(jù)集合Si,然后把證據(jù)集發(fā)送到B-TNCS,等待驗證.
3c.Verify_Identify(ARC,Pi,Id_Result).
ARC 對身份證據(jù)集合進(jìn)行校驗,得到身份合法性的驗證結(jié)果.具體的過程是向使用可信第三方DTTP 的證書服務(wù)或零知識證明服務(wù),對Pi_AIK的合法性進(jìn)行校驗,以證明遠(yuǎn)端平臺具備合法的TPM/TCM.身份驗證的實施比較靈活,對于隱私要求高的場景可以使用直接匿名證明DAA協(xié)議.若身份驗證通過,則啟動完整性驗證過程.
4.B-TNCS 將完整性證據(jù)集發(fā)送到ARC 的IVM 進(jìn)行處理,準(zhǔn)備發(fā)起完整性證明.在這個過程中,若完整性信息不足,則要繼續(xù)進(jìn)行收集.
5a.Send(Pi||Si,ARC.IVM,CP-NAA).
ARC 的IVM 將身份證據(jù)Pi_AIK和完整性證據(jù)Si發(fā)送到CP-NAA 請求決策.需要說明的是,CP-NAA 是由多個計算節(jié)點組成的,需要合作產(chǎn)生對證據(jù)驗證結(jié)果.
5b.Verify_Integrity(CP-NAA,Si,D).
CP-NAA 調(diào)用DTTP 的可信驗證服務(wù),對完整性證據(jù)進(jìn)行驗證,得到驗證結(jié)果的決策集合D.可信驗證服務(wù)的實現(xiàn)方法在第3.3 節(jié)進(jìn)一步闡述.
5c.CP-NAA→Refer_Log(LogChain,Pi_AIK,Log_Result).
CP-NAA 向LogChain 查詢和Pi_AIK有關(guān)的審計日志,追溯該節(jié)點是否有惡意行為.
5d.Decision(LN,Dm,Access,AC_newBlock) thenRe_Blockchain(LN,AccessChain,T,AC_newBlock).
領(lǐng)導(dǎo)節(jié)點根據(jù)CP-NAA 得到的決策集合得出最終結(jié)論,并生成新的區(qū)塊.進(jìn)而將新區(qū)快廣播到可信網(wǎng)絡(luò)的所有節(jié)點,更新AccessChain.領(lǐng)導(dǎo)節(jié)點的選取過程將在第3.3 節(jié)詳細(xì)描述.
6.ARC.PEP此時可以在AccessChain 中檢測到可信證明的結(jié)果,執(zhí)行訪問控制策略.
7.Re_Blockchain(PEP,LogChain,T,Log_newBlock).
在可信網(wǎng)絡(luò)運行過程中,PEP 會將執(zhí)行訪問控制決策的日志信息記錄到LogChain.計算節(jié)點在網(wǎng)絡(luò)中的行為都會記錄下來,并且是不可抵賴的.
可信驗證方是基于屬性遠(yuǎn)程證明的重要部分,在傳統(tǒng)可信網(wǎng)絡(luò)的體系中,實際扮演了可信第三方的角色.但是在B-TNC 的架構(gòu)中,如果仍舊采用中心化的驗證方法,就會無法避免單點化和中心化的問題.本節(jié)提出一種建立分布式可信驗證者的方法,假設(shè)用5 臺驗證節(jié)點組成分布式的可信驗證者.驗證節(jié)點的數(shù)量可以根據(jù)實際需求靈活選擇,本文僅以5 為例.如圖7 所示.
5 個驗證點組成一個私有鏈,具有強身份標(biāo)識,無法被惡意節(jié)點偽裝.驗證者的主要任務(wù)是對平臺可信報告進(jìn)行分析和驗證,其中包括完整性證據(jù)和平臺屬性證據(jù).5 個節(jié)點共同維護(hù)一個區(qū)塊鏈賬本,存儲驗證策略和可信計算節(jié)點的完整性證據(jù)集合.在執(zhí)行驗證任務(wù)時,驗證發(fā)起方會隨機(jī)訪問不同的驗證節(jié)點,可以指定隨機(jī)策略使每個驗證節(jié)點被訪問的頻率大致相同.從分布式可信驗證者建立到運行的過程描述如下.
1.Setup:完成可信驗證方的初始化過程.
(1) 建立驗證策略,將策略寫入可信驗證者的區(qū)塊鏈系統(tǒng).若策略變更,5 個節(jié)點運行共識協(xié)議共同更新.
(2) 從CA 中心獲取合法TPM/TCM 注冊時的完整性狀態(tài)信息,寫入可信驗證者的區(qū)塊鏈系統(tǒng).
2.Verify:驗證證據(jù)合法性的過程.以Tm請求驗證Ck節(jié)點為例.
(1)Tm隨機(jī)選擇一個驗證點,與之建立通信.假設(shè)選擇驗證點2.
(2) 驗證點2 發(fā)布智能合約,迅速共識到整個區(qū)塊鏈系統(tǒng).
(3) 假設(shè)這一階段的記賬節(jié)點是驗證點3.
(4) 驗證點3 訪問區(qū)塊鏈上的驗證策略和Ck節(jié)點的完整性信息:若區(qū)塊鏈上沒有Ck節(jié)點的信息,則執(zhí)行第(5)步;若有,則執(zhí)行第(6)步.
(5) 驗證點向CA 中心請求更新數(shù)據(jù),查詢是否具有Ck節(jié)點的相關(guān)信息:若仍舊沒有,則返回Ck節(jié)點非法;若有,則更新區(qū)塊鏈,然后執(zhí)行第(6)步.
(6) 驗證節(jié)點將收到的完整性證據(jù)與區(qū)塊鏈上的完整性進(jìn)行比對,判斷是否被修改:若沒有被修改,執(zhí)行第(7)步;若被修改,則返回完整性證據(jù)驗證不通過.
(7) 根據(jù)驗證策略對安全屬性信息進(jìn)行決策,判斷待入網(wǎng)的節(jié)點安全配置是否符合要求,得出結(jié)論,并寫入?yún)^(qū)塊鏈系統(tǒng).
(8) 驗證點3 在得出結(jié)論之后執(zhí)行兩個操作:一是將驗證結(jié)論發(fā)送回驗證請求點;二是將驗證操作和結(jié)論寫入到驗證者的區(qū)塊鏈系統(tǒng),供其他驗證者進(jìn)行審計.
這種設(shè)計方法避免了可信證據(jù)只由單一的決策者的判斷,從概率學(xué)的角度提高了整個驗證判斷過程的安全性.CP-NAA 是由多個節(jié)點構(gòu)成的,在進(jìn)行完整性驗證的時候,這些節(jié)點會隨機(jī)選擇不同的驗證點去進(jìn)行驗證.若某一個驗證點被攻擊,得出錯誤的結(jié)論,也無法對整體驗證結(jié)論形成影響.并且驗證結(jié)果在驗證點之間是可查可審可追溯的,惡意的驗證點能夠迅速被發(fā)現(xiàn)清理.
Fig.7 Distributed trusted verifier圖7 分布式的可信驗證者
3.3.1 DPoS基本原理
股份授權(quán)證明DPoS 是EOS 項目最早發(fā)布的共識機(jī)制,旨在消除比特幣公式算法PoW 資源消耗過大、算力過于集中的問題.DPoS 的基本思想是:選舉出一定數(shù)量的節(jié)點,由這些節(jié)點作為代表協(xié)作輪流記賬.這個思路類似于政治活動中的議會制度,選舉出合適的代表,代替更多的節(jié)點行使權(quán)利.
以EOS 的DPoS 的部署為例,所有EOS 的持有者根據(jù)持有的數(shù)量按照1:1 獲得選票,選出21 個區(qū)塊產(chǎn)生者,也叫做見證人.由這21 個見證人相互協(xié)作,按照一定的順序輪流記賬,以3s 為間隔產(chǎn)生區(qū)塊.DPoS 有不可逆原則,一旦某個區(qū)塊后面跟隨了超過2/3 見證人數(shù)量的區(qū)塊,區(qū)塊就進(jìn)入了不可逆狀態(tài),也就是常說的該區(qū)塊被確認(rèn)了.在21 區(qū)塊產(chǎn)生節(jié)點的模型中,15 個區(qū)塊(15/21>2/3)進(jìn)入不可逆狀態(tài)的時間(即交易100%安全)為45s.在EOS 最新的版本中,引入了拜占庭容錯機(jī)制,實現(xiàn)了秒級的確認(rèn)性能.總之,EOS 的實踐證明了DPoS 的優(yōu)勢:解決了能耗的問題;共識節(jié)點少,共識效率高;不會產(chǎn)生硬分叉;安全性更強,只有控制超過2/3 數(shù)量的節(jié)點才能夠改變區(qū)塊鏈;確認(rèn)速度快.
從原理上分析,DPoS 本質(zhì)上是存在中心的,如果見證人節(jié)點存在惡意行為,或者未能履行職責(zé),就會在下一個投票階段被淘汰.本文借鑒了DPoS 的基本思想設(shè)計遠(yuǎn)程證明協(xié)議,描述了證明協(xié)議的基本過程.由于DPoS本身算法比較成熟,具體實現(xiàn)方法也不是本文重點,所以不對算法細(xì)節(jié)進(jìn)行展開.需要說明的是,B-TNC 并不要求一定采用DPoS 的共識機(jī)制實現(xiàn)CP-NAA,能夠?qū)崿F(xiàn)多個計算節(jié)點共識產(chǎn)生共同決策的共識算法都是可以的.
3.3.2 遠(yuǎn)程證明過程
遠(yuǎn)程證明是B-TNC 區(qū)別于傳統(tǒng)可信網(wǎng)絡(luò)連接最核心的部分,能夠以集體決策的方式產(chǎn)生訪問控制策略.在EOS 中,DPoS 是根據(jù)掌握數(shù)字貨幣的數(shù)量來分配選票的,貨幣是利益所在.但是B-TNC 中計算節(jié)點的利益在于能否被可信網(wǎng)絡(luò)環(huán)境認(rèn)可,并沒有掌握數(shù)字貨幣.為了減少對DPoS 算法的修改,本文提出可以選用節(jié)點在可信網(wǎng)絡(luò)中的活躍時間代替數(shù)字貨幣.比如某計算節(jié)點在可信網(wǎng)絡(luò)中的活躍時間為Tsum,單位時間為T,那么擁有選票的數(shù)目Ticket=Tsum/T.T的選擇要根據(jù)實際網(wǎng)絡(luò)運行狀況確定.假設(shè)B-TNC 的見證者同樣設(shè)置為21 個,這些節(jié)點共同組成了圖4 中的網(wǎng)絡(luò)授權(quán)者CP-NAA.基于DPoS 的遠(yuǎn)程證明過程核心是兩個部分:(1) 基于DPoS 選取驗證節(jié)點,組成CP-NAA;(2) 基于多方?jīng)Q策的平臺可信證明.證明過程如圖8 所示.為了便于描述,將圖中的節(jié)點數(shù)目進(jìn)行了縮減.
Fig.8 Remote attestation based on DPoS圖8 基于DPoS 的遠(yuǎn)程證明
1.Initialize:完成第3.2 節(jié)中分布式可信驗證者的初始化過程.
2.Select:選舉產(chǎn)生21 個DPoS 見證人.若網(wǎng)絡(luò)中節(jié)點不足21 個,則網(wǎng)絡(luò)中節(jié)點都作為見證人.
(1) 可信網(wǎng)絡(luò)中的每一個計算節(jié)點Ticket=Tsum/T,確定自己掌握的選票的數(shù)目.
(2) 假設(shè)以2 小時為時間間隔,運行投票算法,選出21 個超級節(jié)點作為見證人.在這個過程中,有可能存在節(jié)點落選、新節(jié)點補增的情況.
(3)Pick(T,LN).超級節(jié)點之間共識產(chǎn)生一個隨機(jī)數(shù),用于對節(jié)點進(jìn)行編號.然后按照編號的順序,輪流擔(dān)任領(lǐng)導(dǎo)節(jié)點LN.可以按照3 分鐘的時間間隔輪換,但具體間隔需要結(jié)合實際網(wǎng)絡(luò)規(guī)模進(jìn)行分析.
3.Verify:對身份和完整性證據(jù)進(jìn)行驗證.
(1) 21 個見證人隨機(jī)選擇完整性驗證節(jié)點,并將完整性信息和屬性信息發(fā)送到相應(yīng)的節(jié)點進(jìn)行驗證.驗證過程參照第3.2 節(jié).
(2) 見證人根據(jù)自己的判斷策略,靈活選擇是否查詢LogChain,追溯待驗證節(jié)點是否曾經(jīng)存在惡意行為.
(3) 見證人根據(jù)自己的判斷策略,靈活選擇是否對待驗證節(jié)點的身份進(jìn)行進(jìn)一步核驗.
(4) 21 個見證人將自己得出的判斷結(jié)論和判斷依據(jù)廣播給其他節(jié)點.需要說明的是,由于每個計算節(jié)點的判斷策略由自己掌握,如果結(jié)論的得出既包含了完整性驗證,也包含了惡意行為追溯和身份核驗,那么這個結(jié)論顯然是更加有說服力的.所以將判斷依據(jù)一起廣播出去,領(lǐng)導(dǎo)節(jié)點能夠?qū)ψ罱K結(jié)論進(jìn)行綜合考量.
(5) 領(lǐng)導(dǎo)節(jié)點對其他見證人的判斷進(jìn)行綜合,若超過2/3 見證人認(rèn)為待驗節(jié)點是可信的,那么就得出最終的結(jié)論,允許待驗節(jié)點加入可信網(wǎng)絡(luò).并將結(jié)論寫入到AccessChain.
可信遠(yuǎn)程證明的方法模型有多種,但是其基本流程是相似的,即“連接申請、證據(jù)提交、可信判決、決策執(zhí)行”.本文的遠(yuǎn)程證明和TNC 架構(gòu)相比,最本質(zhì)的區(qū)別在于:對中心化的可信判決和決策執(zhí)行進(jìn)行了分布式的改造,能夠提高分布式網(wǎng)絡(luò)系統(tǒng)抵抗安全威脅的能力,增強系統(tǒng)容錯性.其核心優(yōu)勢在于兩個方面:1) 將判決點分散,能夠有效抵抗單點故障或者中心被攻破的問題;2) 所有的決策產(chǎn)生過程在鏈上記錄,可信可查可追溯,讓惡意的判決點無所遁形.
激勵機(jī)制是區(qū)塊鏈技術(shù)領(lǐng)域的重要研究方向,合理的激勵機(jī)制能夠保證更多的節(jié)點參與到區(qū)塊鏈系統(tǒng)中,從而增強區(qū)塊鏈系統(tǒng)的安全性.區(qū)塊鏈分為公有鏈、私有鏈和聯(lián)盟鏈.公有鏈一般是通過發(fā)行代幣來解決激勵問題.一個節(jié)點在區(qū)塊鏈系統(tǒng)中越活躍,做出的貢獻(xiàn)越多,就能獲取更多的代幣,如以太幣、比特幣.代幣能夠在鏈下?lián)Q取更多的經(jīng)濟(jì)權(quán)益.而對于私有鏈或者聯(lián)盟鏈系統(tǒng),一般不會設(shè)計代幣機(jī)制.在無代幣區(qū)塊鏈系統(tǒng)中,比如政府的各個部門、銀行的各個機(jī)構(gòu),參與共識的節(jié)點本身通常是有利益協(xié)作的,所有合法節(jié)點都希望系統(tǒng)安全可靠高效運行,愿意參與到區(qū)塊鏈系統(tǒng)中.所以,私有鏈或聯(lián)盟鏈不需要鏈上經(jīng)濟(jì)的激勵,但可以采取鏈上權(quán)益、數(shù)據(jù)權(quán)益等激勵.
判斷區(qū)塊鏈系統(tǒng)類型的重要依據(jù)是,節(jié)點能否自由加入?yún)^(qū)塊鏈系統(tǒng).B-TNC 架構(gòu)引入了3 個區(qū)塊鏈系統(tǒng):訪問控制系統(tǒng)、日志審計系統(tǒng)和分布式的可信第三方,均屬于帶準(zhǔn)入控制的區(qū)塊鏈系統(tǒng),節(jié)點無法隨意加入.和傳統(tǒng)的可信網(wǎng)絡(luò)連接單點化的架構(gòu)相比,3 種區(qū)塊鏈的引入上會增加系統(tǒng)構(gòu)建的成本,帶來更多的計算和存儲開銷.為了保證系統(tǒng)的良好運行,必須建立合適的激勵機(jī)制.然而激勵機(jī)制通常和具體的業(yè)務(wù)應(yīng)用場景緊密相關(guān),設(shè)計通用的激勵機(jī)制是困難的.本文以一個具體的應(yīng)用場景為例,提出激勵機(jī)制的設(shè)計思路.
· 場景假設(shè)
應(yīng)用場景:某大型科研系統(tǒng),共有5 個研究所,研究所下屬總計50 個研究室,總共包含2 000 個科研人員.每一個研究所和研究室都有不同規(guī)模的數(shù)據(jù)中心,每一個科研人員擁有多個計算機(jī)終端.數(shù)據(jù)中心和計算終端之間互聯(lián)互通.
· 激勵措施
(1) 基于業(yè)務(wù)需求驅(qū)動,研究所和研究室必須按照網(wǎng)絡(luò)配置要求提供相關(guān)設(shè)備,組成各功能區(qū)塊鏈系統(tǒng).可作為業(yè)務(wù)考核的標(biāo)準(zhǔn).
(2) 根據(jù)參加區(qū)塊鏈業(yè)務(wù)的活躍程度,計算季度或年度的貢獻(xiàn)值,對貢獻(xiàn)大的單位進(jìn)行表彰或獎勵.
(3) 對于所有可信節(jié)點,網(wǎng)絡(luò)是否安全可信是他們的共同利益.在更加相信自己的基礎(chǔ)之上,他們愿意貢獻(xiàn)一部分計算和存儲能力.
(4) 惡意節(jié)點在網(wǎng)絡(luò)中的行為是完全可查可追溯的.惡意行為會降低其他節(jié)點對他的信任,很難被選為超級節(jié)點.
在Dolev-Yao 威脅模型下進(jìn)行安全分析,攻擊者可以竊聽、獲取和篡改協(xié)議消息,能夠偽裝成一個合法的主體參與協(xié)議的運行.底層密碼算法是安全的,隨機(jī)數(shù)和私鑰無法被攻破,這一點可以由信任根保證,但是系統(tǒng)對信任根仍舊保持一定的懷疑態(tài)度.假設(shè)2/3 以上的計算節(jié)點是誠實可信的,攻擊者無法控制1/3 以上的節(jié)點.誠實可信一方面是節(jié)點行為可信,另一方面是節(jié)點的信任根可信.B-TNC 繼承了可信計算和區(qū)塊鏈的安全特性,具有去中心化、可追溯、不可偽造、不可篡改并具備良好的匿名性.本文重點分析去中心化后最突出的安全特點.
1) 去中心化
B-TNC 架構(gòu)的去中心化體現(xiàn)在4 個方面.
(1) 訪問控制去中心.AccessChain 將訪問控制列表用區(qū)塊鏈數(shù)據(jù)庫的方式維護(hù)在每一個網(wǎng)絡(luò)參與者,將訪問控制決策執(zhí)行權(quán)限分散,能夠降低整個網(wǎng)絡(luò)由于網(wǎng)關(guān)被攻破而崩潰的風(fēng)險.
(2) 策略決策去中心.本文提出在DPoS 共識下,超級節(jié)點組成共同的網(wǎng)絡(luò)訪問授權(quán)者,進(jìn)而對節(jié)點的入網(wǎng)請求共同決策.少量非法節(jié)點即便參與到了決策中,也無法對最終結(jié)果產(chǎn)生實質(zhì)的影響.
(3) 審計追溯去中心.基于區(qū)塊鏈技術(shù)構(gòu)建計算機(jī)日志審計系統(tǒng)是可行的,這一點毋庸置疑.安全可信防篡改的日志系統(tǒng)是安全審計的基礎(chǔ),大量的安全服務(wù)都是基于行為日志展開.基于區(qū)塊鏈的日志審計系統(tǒng)不僅能夠提供更強的防篡改特性,更能夠提供一個全網(wǎng)視角下的日志審計視圖,以便于聯(lián)合審計挖掘.
(4) 可信第三方去中心.相關(guān)研究已證明,基于區(qū)塊鏈技術(shù)構(gòu)建分布式的PKI 系統(tǒng)是具有可行性的.和集中式相比,分布式架構(gòu)的PKI 能夠更加有效得解決單點信任中心存在的固有問題.本文也提出了分布式可信驗證者的設(shè)計思路,能夠提供更加安全的第三方驗證服務(wù).
總之,B-TNC 架構(gòu)從多個角度實現(xiàn)了去中心化的特性,解決了中心化網(wǎng)絡(luò)判決模型的固有問題.
威脅場景假設(shè):假設(shè)惡意節(jié)點MN試圖成為領(lǐng)導(dǎo)節(jié)點,將非法的訪問控制規(guī)則寫入AccessChain.共識機(jī)制是可信的,領(lǐng)導(dǎo)節(jié)點的選取具有隨機(jī)性,并且大概率屬于可信節(jié)點.MN必須能夠控制大多數(shù)節(jié)點,才能實現(xiàn)對訪問控制規(guī)則的任意修改,但這顯然是困難的.考慮3 種攻擊場景.
· 場景1:MN不屬于可信網(wǎng)絡(luò).此時,MN首先要完成可信驗證的整個流程,騙取可信網(wǎng)絡(luò)承認(rèn)自己的身份,將自己的信息寫入AccessChain.若MN不具備合法的TPM/TCM,或者沒有運行在可信狀態(tài),此時MN加入網(wǎng)絡(luò)必然是失敗的;若MN本身具備合法的TPM/TCM,并且也處于安全的運行狀態(tài),MN可以加入網(wǎng)絡(luò).但此時只是一個普通的節(jié)點,距離成為領(lǐng)導(dǎo)節(jié)點還有很大距離.
· 場景2:MN屬于可信網(wǎng)絡(luò).在區(qū)塊鏈系統(tǒng)中,MN是否可以成為可信節(jié)點仍然是小概率事件.首先要經(jīng)過投票機(jī)制被選舉為見證人之一,并且要在特定時間段才具有記賬權(quán)限.在基于權(quán)益的共識協(xié)議中,運行在可信網(wǎng)絡(luò)中的時間越長,當(dāng)選為見證人的可能性越大.因為審計機(jī)制的存在,所有節(jié)點的行為都被記錄在區(qū)塊鏈日志系統(tǒng)中,只有可信節(jié)點才有可能長期運行在可信網(wǎng)絡(luò)中.如果MN被選舉為見證人,并且成為某一時間段的領(lǐng)導(dǎo)節(jié)點,那么就會在第3.1.2 節(jié)的5D 步驟中,寫入與事實相悖的結(jié)論.這就會導(dǎo)致其他節(jié)點對MN的失信,使其下一階段難以當(dāng)選見證人.
· 場景3:MN對可信第三方展開攻擊,試圖成為可信第三方服務(wù)節(jié)點.可信第三方本身的安全防護(hù)強度高,攻克難度大.若MN發(fā)起對CA 的攻擊,并且成功,根據(jù)CertChain 的安全證明,攻擊能夠快速被檢測修復(fù).并且身份驗證過程會隨機(jī)選擇CA 節(jié)點,不一定會訪問到被攻擊的節(jié)點.若MN發(fā)起對可信驗證者的攻擊,成功控制一個驗證節(jié)點,那么這對于最終驗證結(jié)論同樣不會產(chǎn)生較大的影響:一方面,節(jié)點訪問驗證點具有隨機(jī)性,單個驗證節(jié)點的結(jié)論在最終結(jié)論中只占有1/5;另一方面,驗證節(jié)點之間能夠根據(jù)異常判定結(jié)果及時發(fā)現(xiàn)被攻擊的節(jié)點.
2) 可追溯
傳統(tǒng)可信網(wǎng)絡(luò)連接針對安全接入后的防護(hù)能力不足,此時,基于區(qū)塊鏈的分布式信任關(guān)系模型就能夠?qū)Υ诉M(jìn)行很好的補充.惡意節(jié)點往往伴隨惡意行為,可信的審計能夠暴露惡意行為,進(jìn)而發(fā)現(xiàn)惡意節(jié)點.區(qū)塊鏈?zhǔn)且环N以哈希為標(biāo)志的鏈?zhǔn)酱鎯Y(jié)構(gòu),數(shù)據(jù)一但寫入?yún)^(qū)塊鏈,就能夠沿著區(qū)塊鏈追溯到歷史記錄.可追溯具有兩個層面的含義:寫入?yún)^(qū)塊鏈的證據(jù)最終能夠被檢索到、檢索到的數(shù)據(jù)是可信的并且不可抵賴的.
本文認(rèn)為,信任根作為安全部件,在實際的設(shè)計與生產(chǎn)過程中,客觀上是有可能存在安全隱患的.所以在安全假設(shè)中,本文假設(shè)安全的信任根是完全可信的,但在實際網(wǎng)絡(luò)環(huán)境中,對信任根仍舊保持一定懷疑態(tài)度.區(qū)塊鏈可追溯的特性就是很好的補充.
威脅場景假設(shè),考慮3 種共計場景.
· 場景1:可信網(wǎng)絡(luò)T中的可信節(jié)點Tm受到網(wǎng)絡(luò)攻擊,變成惡意節(jié)點.如果惡意節(jié)點在網(wǎng)絡(luò)接入的有效期內(nèi)沒有惡意行為,那么對網(wǎng)絡(luò)的危害較小.有效期過了以后,需要重新運行可信連接的過程,對該節(jié)點的安全性進(jìn)行分析.此時,如果惡意節(jié)點的關(guān)鍵數(shù)據(jù)被修改,或安全配置不足,就無法通過可信驗證,被踢出可信網(wǎng)絡(luò).如果惡意節(jié)點在網(wǎng)絡(luò)接入的有效期內(nèi)有惡意行為,那么網(wǎng)絡(luò)訪問的日志信息會被寫入LogChain,其他節(jié)點能夠通過對日志的審計及時發(fā)現(xiàn)異常行為.這就通過節(jié)點行為可追溯保證了網(wǎng)絡(luò)的整體安全性.
· 場景2:可信網(wǎng)絡(luò)T中的Ta和Tb進(jìn)行安全通信,協(xié)同完成某項計算任務(wù).受到利益驅(qū)動,Ta存在惡意行為,并試圖刪除網(wǎng)絡(luò)日志文件,否認(rèn)網(wǎng)絡(luò)交互行為.但是由于日志審計系統(tǒng)是分布式的,LogChain 能夠被存儲于所有節(jié)點,所有的日志文件都是可以被你追溯的.單節(jié)點的日志刪除最終是無效的,Ta無法抵賴自己的行為.
· 場景3:可信芯片存在底層的高危漏洞,攻擊者能夠偽造了一個合法的TPM/TCM 參與到網(wǎng)絡(luò)中.需要說明的是,此類攻擊雖然客觀存在,但是發(fā)生的可能性低,攻擊難度很大.由于惡意節(jié)點的所有行為都是被記錄在區(qū)塊鏈系統(tǒng)中的,一旦有惡意行為,就會被迅速檢測到.去中心化部分已經(jīng)說明了單個節(jié)點的行為難以對整個系統(tǒng)安全產(chǎn)生決定性的影響.所以,在2/3 節(jié)點可信的安全假設(shè)之下,即便信任根也存在安全隱患,網(wǎng)絡(luò)整體的可信同樣是可以保證的.
3) 不可篡改
不可篡改是區(qū)塊鏈能夠用于構(gòu)建分布式信任根的重要安全特性.攻擊者如果想對區(qū)塊鏈數(shù)據(jù)庫進(jìn)行篡改,就必須控制網(wǎng)絡(luò)中的大多數(shù)節(jié)點,而這與本文的安全假設(shè)不符.假設(shè)敵手試圖對B-TNC 中涉及到的區(qū)塊鏈系統(tǒng)中的某一個區(qū)塊進(jìn)行修改,那么區(qū)塊的哈希值就會發(fā)生改變,就必須對該區(qū)塊后面的所有區(qū)塊均進(jìn)行改變.而區(qū)塊鏈?zhǔn)欠植际降臄?shù)據(jù)庫系統(tǒng),只有在大多數(shù)節(jié)點上都進(jìn)行相應(yīng)的修改,攻擊才能生效.因此,B-TNC 具有不可篡改的安全特性.
4) 抗合謀攻擊
合謀攻擊[47]指的是2 個或2 個以上的惡意節(jié)點相互串聯(lián),以破壞正常網(wǎng)絡(luò)行為的攻擊.合謀攻擊有幾個典型的特征:(1) 互相擔(dān)保,協(xié)助攻擊節(jié)點看似合法的節(jié)點;(2) 互相偽造,能夠建立一個非法的通信鏈路;(3) 做偽證陷害合法節(jié)點.B-TNC 的遠(yuǎn)程證明和訪問控制具有去中心化的特性,這將導(dǎo)致少量惡意節(jié)點的合謀難以對全局的安全決策產(chǎn)生決定性的影響,合謀攻擊難以展開.
女巫攻擊(sybil attack,簡稱SA)指的是在對等網(wǎng)絡(luò)中,單一節(jié)點具有多個身份標(biāo)識,通過控制系統(tǒng)的大部分節(jié)點來削弱冗余備份的作用,女巫攻擊是一種特殊的合謀攻擊.而在B-TNC 中,節(jié)點身份分布式的可信第三方授權(quán),節(jié)點身份密鑰由信任根保護(hù),偽造大量身份本身具有難度.而控制多數(shù)節(jié)點在區(qū)塊鏈的安全假設(shè)下是困難的,女巫攻擊難以展開.
區(qū)塊鏈系統(tǒng)的引入會增加系統(tǒng)開銷、增加網(wǎng)絡(luò)系統(tǒng)的運行成本.但是為了獲取更大的安全收益,一定開銷是必然的,也是值得的.本節(jié)對系統(tǒng)運行成本和效率進(jìn)行分析.為了更加直觀,本節(jié)采用第3.4 節(jié)的場景假設(shè),在一個實際的應(yīng)用場景中進(jìn)行分析.
· 應(yīng)用場景
某大型科研系統(tǒng),共有5 個研究所,研究所下屬總計50 個研究室,總共包含2 000 個科研人員.每一個研究所和研究室都有不同規(guī)模的數(shù)據(jù)中心,每一個科研人員擁有多個計算機(jī)終端,假設(shè)一共6 000 臺計算終端.數(shù)據(jù)中心和計算終端之間互聯(lián)互通.
· 網(wǎng)絡(luò)配置
(1) 5 個研究所各貢獻(xiàn)1 臺服務(wù)器,組成分布式的CA 系統(tǒng).
(2) 5 個研究所各貢獻(xiàn)1 臺服務(wù)器,組成分布式的可信驗證者.
(3) 5 研究所和50 個研究室各貢獻(xiàn)1 臺計算終端,用于組成分布式的日志審計系統(tǒng).科研人員也可根據(jù)實際需求,選擇是否加入日志系統(tǒng).
(4) 5 研究所和50 個研究室各貢獻(xiàn)1 臺計算終端,用于組成訪問控制系統(tǒng).科研人員也可選擇加入.
(5) 所有接入網(wǎng)絡(luò)的計算終端安裝區(qū)塊鏈客戶端軟件.
· 數(shù)據(jù)存儲
(1) 由研究所和研究室維護(hù)的服務(wù)器和終端,都要保存完整的區(qū)塊鏈數(shù)據(jù).
(2) 研究人員的計算終端可以選擇保存完整數(shù)據(jù),也可以選擇性保存部分?jǐn)?shù)據(jù),如區(qū)塊鏈的哈希根.
(3) 假設(shè)區(qū)塊大小為1MB.
· 運行頻率
(1) 假設(shè)入網(wǎng)的有效期為4 天,超過4 上天就要進(jìn)行可信證明,重新入網(wǎng).
(2) 平均每1 分鐘有1 臺終端需要進(jìn)行可信證明:6000÷(4 天×24 小時×60 分)≈1.
4.2.1 運行成本
區(qū)塊鏈系統(tǒng)的運行成本通常包括3 個部分:算力開銷、網(wǎng)絡(luò)開銷和存儲開銷.
· 算力開銷
區(qū)塊鏈起源于比特幣系統(tǒng),其共識機(jī)制采用的是工作量證明PoW,需要進(jìn)行大量的哈希運算,尋找滿足要求的隨機(jī)數(shù),俗稱挖礦.為了解決這一問題,基于權(quán)益證明機(jī)制PoS 被提出,從此規(guī)避了計算資源的浪費.而DPoS 是在這基礎(chǔ)上的升級,通過選舉合適的代表,組成共識機(jī)構(gòu),實現(xiàn)高速的共識協(xié)議.
因此,在B-TNC 并不會消耗過多的計算能力,僅需要通用的計算平臺即可完成目標(biāo).每個研究所數(shù)據(jù)中心貢獻(xiàn)2 個服務(wù)器、2 個計算終端、每個研究室貢獻(xiàn)2 個計算終端,就能夠?qū)崿F(xiàn).DPoS 協(xié)議是可擴(kuò)展的,增加計算平臺就能夠?qū)崿F(xiàn)網(wǎng)絡(luò)的擴(kuò)容.
· 網(wǎng)絡(luò)開銷
區(qū)塊鏈系統(tǒng)的網(wǎng)絡(luò)開銷主要取決于兩個方面:一是區(qū)塊數(shù)據(jù)的大小,二是交易規(guī)模和頻率.金融行業(yè)追求大吞吐量,要求每秒的交易能夠達(dá)到1 000TPS,甚至10 000TPS 以上.在區(qū)塊大小相對固定的情況下,網(wǎng)絡(luò)性能主要受到交易規(guī)模和頻率的制約.
但是B-TNC 中,大規(guī)模的共識和通信主要在研究所和研究室之間.其中,CA 系統(tǒng)、分布式的可信驗證者分別由5 臺服務(wù)器組成,訪問控制由21 個超級節(jié)點組成.根據(jù)運行頻率的假設(shè),每分鐘進(jìn)行1 個終端的可信驗證,區(qū)塊大小1MB.每分鐘的網(wǎng)絡(luò)開銷為:1MB×21×1=21MB/min=0.35MB/s.公式的含義是:區(qū)塊產(chǎn)生方把新區(qū)快傳播給所有的超級節(jié)點.科研內(nèi)網(wǎng)的網(wǎng)絡(luò)帶寬通常比較大,網(wǎng)絡(luò)開銷是可以容忍.
· 存儲開銷
根據(jù)網(wǎng)絡(luò)開銷部分的分析,訪問控制鏈每分鐘增加1MB,一年增加約513GB.存儲量是比較大的.但是對于一個研究所或者研究室的數(shù)據(jù)中心,每年擴(kuò)容一個約5 000GB 的硬盤用于存儲區(qū)塊鏈數(shù)據(jù),這本身的難度并不大.再加上日志審計系統(tǒng),以及分布式的可信第三方,數(shù)據(jù)量約為2TB.
4.2.2 效率分析
1) 共識機(jī)制
共識機(jī)制本身和應(yīng)用場景的關(guān)聯(lián)性很大,需要根據(jù)共識節(jié)點數(shù)目、鏈上數(shù)據(jù)量等要素來決定.
本文針對AccessChain 和CP-NAA 提出了基于DPoS 的共識方法.在EOS 項目實踐中,DPoS 能夠在公鏈上實現(xiàn)3s 出塊、45s 確認(rèn)的性能.如果部署在B-TNC 這種私有鏈架構(gòu)中,必將帶來更大的性能提升.這完全滿足訪問控制鏈中,1 分鐘進(jìn)行一次可信證明的要求.綜合考慮,DPoS 共識用于遠(yuǎn)程證明是能夠滿足效率要求的.需要說明的是,提升區(qū)塊鏈共識性能是一個重要的研究方向,相關(guān)研究者已經(jīng)做出了大量的工作.B-TNC 并不要求具體的共識機(jī)制,能夠滿足效率和安全性要求的共識機(jī)制都是可以的.對于可信第三方,以CertChian 為例的PKI系統(tǒng)使用的是基于PoS 的共識[48],并且其研究者已經(jīng)證明了用區(qū)塊鏈構(gòu)建CA 系統(tǒng)效率是足夠的,能夠提供毫米級的證書驗證服務(wù).本文提出的分布式可信驗證者在設(shè)計中只需要5 個節(jié)點,常見的PBFT 等共識協(xié)議在目前已經(jīng)主流的區(qū)塊鏈基礎(chǔ)平臺上都能夠?qū)崿F(xiàn)每秒1 000 筆級別的共識效率,完全可以適用.對于LogChain,日志更加追求的是不可篡改的特性,對于共識效率的要求相對較低.但是日志本身的數(shù)據(jù)量大,數(shù)據(jù)產(chǎn)生的參與方多,可以考慮基于有向無環(huán)圖DAG 的共識協(xié)議構(gòu)建大規(guī)模分布式網(wǎng)絡(luò)的日志系統(tǒng).但共識機(jī)制的選取和實際應(yīng)用場景密切相關(guān).
2) 遠(yuǎn)程證明
B-TNC 中的遠(yuǎn)程證明過程比傳統(tǒng)的可信網(wǎng)絡(luò)連接遠(yuǎn)程證明的過程更加復(fù)雜.遠(yuǎn)程證明的性能損失來自于兩個方面:一是共識協(xié)議本身的運行速度,二是DPoS 中的21 個見證者分別運行可信驗證的過程.上一節(jié)已經(jīng)說明了共識機(jī)制本身的性能是足夠的,能夠在秒級完成驗證確認(rèn).驗證過程的性能開銷主要來自于可信驗證者對完整性證據(jù)的確認(rèn)以及CA 對于身份的確認(rèn).21 個見證者可以執(zhí)行并行化的認(rèn)證,時間開銷并不是一個21 倍的關(guān)系.并且領(lǐng)導(dǎo)節(jié)點只要收到2/3 節(jié)點的通過驗證的消息就能夠認(rèn)定驗證通過,不需要等待所有節(jié)點結(jié)束.所以,即使有惡意節(jié)點故意拖延驗證時間,也無法同時控制2/3 的節(jié)點同時撒謊.所以和傳統(tǒng)可信網(wǎng)絡(luò)連接架構(gòu)相比,基于區(qū)塊鏈的遠(yuǎn)程證明帶來的效率損耗不大,主要取決于對于證據(jù)的驗證過程,這和TNC 架構(gòu)是相同的.假設(shè)完成證據(jù)驗證的時間是10s,那么遠(yuǎn)程證明過程的效率約為3s+10s=13s.由于共識效率是高于網(wǎng)絡(luò)通信頻率的,所以不會產(chǎn)生交易堆積的情況,只要有證明需要,就可以立即運行證明過程.
3) 訪問控制
區(qū)塊鏈作為分布式數(shù)據(jù)存儲,其數(shù)據(jù)量本身很大,可以達(dá)到TB 級.但是在數(shù)據(jù)查詢的時候,并不是直接面對整個數(shù)據(jù).區(qū)塊鏈數(shù)據(jù)庫的增長速度約為1MB/s,在B-TNC 中的每一個節(jié)點都維護(hù)一個區(qū)塊鏈高速引擎,能夠?qū)崟r解析區(qū)塊鏈數(shù)據(jù)庫,以結(jié)構(gòu)化的方式存儲在本地.區(qū)塊鏈數(shù)據(jù)更新后,系統(tǒng)會根據(jù)新區(qū)塊的內(nèi)容及時更新本地的訪問控制列表,以實現(xiàn)快速的數(shù)據(jù)查詢.在本文的設(shè)計中,一個平臺的最新狀態(tài)總會被保存在后面的區(qū)塊中,并且區(qū)塊是經(jīng)常更新的,那么這一過程在最新的一部分區(qū)塊中就能較快地完成.對于普通的計算終端,并不需要維護(hù)全部的區(qū)塊鏈數(shù)據(jù),只需要去超級節(jié)點申請數(shù)據(jù)更新訪問控制列表即可.所以當(dāng)計算節(jié)點之間進(jìn)行網(wǎng)絡(luò)通信時,能夠在秒級的時間開銷內(nèi)完成訪問控制決策過程.
本文在對安全實際信任問題的分析基礎(chǔ)之上,提出了基于區(qū)塊鏈構(gòu)建分布式信任根的思想,進(jìn)而提出了基于區(qū)塊鏈的分布式可信網(wǎng)絡(luò)連接架構(gòu).其核心思想是:用區(qū)塊鏈對可信網(wǎng)絡(luò)中的中心化認(rèn)證部件進(jìn)行分布式改造,主要包括可信第三方、訪問控制和日志審計.分析表明,B-TNC 能夠有效解決傳統(tǒng)架構(gòu)下面臨的訪問控制單點化、策略決策中心化的問題.基于區(qū)塊鏈的結(jié)構(gòu)能夠?qū)⒍祷男湃文P蛿U(kuò)展為網(wǎng)狀的整體信任模型,更加符合實際的網(wǎng)絡(luò)運行環(huán)境.本文在提出總體架構(gòu)設(shè)計、抽象描述和運行流程的基礎(chǔ)之上,對核心問題展開描述.最后進(jìn)行了正確性,安全性和效率分析.
下一步工作將從兩個方面展開:一是研究更加適合分布式環(huán)境下的可信驗證模型,進(jìn)一步弱化二值化信任判斷模型的約束;二是原型系統(tǒng)的設(shè)計與實現(xiàn),由于工作量較大,需要展開更廣泛的合作.