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