謝國濤,王首媛,陳禮波(中訊郵電咨詢設(shè)計院有限公司,北京 100048)
隨著信息化的深入發(fā)展和“中國制造2025”計劃的提出,物聯(lián)網(wǎng)迎來了快速發(fā)展階段,但要實現(xiàn)資源共享和協(xié)同,還面臨細(xì)粒度的權(quán)限控制和安全問題。
本文基于區(qū)塊鏈實現(xiàn)的細(xì)粒度訪問控制體系[1]以及無證書密鑰體制[2]的結(jié)合,針對物聯(lián)網(wǎng)訪問控制,提出技術(shù)解決方案。重點解決物聯(lián)網(wǎng)細(xì)粒度訪問控制的效率問題,包括CA 體系存在的效率問題和區(qū)塊鏈細(xì)粒度訪問控制的效率問題。
本方案利用無證書密碼技術(shù)提供可信執(zhí)行環(huán)境,通過區(qū)塊鏈統(tǒng)一管理設(shè)備生命周期內(nèi)的所有者關(guān)系和訪問權(quán)限,構(gòu)建物聯(lián)網(wǎng)設(shè)備細(xì)粒度訪問控制系統(tǒng)。利用高效的無證書密碼體制實現(xiàn)區(qū)塊鏈節(jié)點身份管理,通過區(qū)塊鏈維護(hù)節(jié)點關(guān)系和訪問權(quán)限,通過基于智能合約的訪問驗證體系實現(xiàn)訪問管控,形成安全高效的物聯(lián)網(wǎng)訪問控制。
區(qū)塊鏈?zhǔn)且环N去中心化的分布式技術(shù),是一種以密碼學(xué)算法為基礎(chǔ)的點對點分布式賬本技術(shù),是一種互聯(lián)網(wǎng)上的共享數(shù)據(jù)庫技術(shù)。區(qū)塊鏈從技術(shù)上解決了基于信任的中心化模型帶來的安全問題,它基于密碼學(xué)算法保證價值的安全轉(zhuǎn)移,基于哈希鏈及時間戳機制保證數(shù)據(jù)的可追溯、不可篡改特性,基于共識算法保證節(jié)點間區(qū)塊數(shù)據(jù)的一致性,基于自動化的腳本代碼和圖靈完備的虛擬機保證可編程的智能合約。技術(shù)架構(gòu)如圖1所示,其主要特征為:智能合約、DAPP和虛擬機。[3]
圖1 區(qū)塊鏈技術(shù)架構(gòu)
物聯(lián)網(wǎng)已經(jīng)可以實現(xiàn)物與物、物與人、人與人之間在任何時候、任何地點的有效連接;物聯(lián)網(wǎng)中會產(chǎn)生海量的數(shù)據(jù),其中具有大量的個人隱私,這些隱私信息一旦泄漏,會給用戶帶來巨大的損失。作為數(shù)據(jù)保護(hù)的基礎(chǔ)技術(shù)之一,訪問控制可保障數(shù)據(jù)僅能被擁有相應(yīng)權(quán)限的用戶訪問。因此,物聯(lián)網(wǎng)的訪問控制機制也就成為了物聯(lián)網(wǎng)安全和隱私保護(hù)的重要研究內(nèi)容之一[3]。
當(dāng)將區(qū)塊鏈技術(shù)與物聯(lián)網(wǎng)相結(jié)合時,訪問控制作為物聯(lián)網(wǎng)數(shù)據(jù)保護(hù)的關(guān)鍵技術(shù)之一,成為了主要的結(jié)合領(lǐng)域。目前有2 種結(jié)合方式:一種是區(qū)塊鏈技術(shù)與現(xiàn)有的物聯(lián)網(wǎng)訪問控制模型結(jié)合,區(qū)塊鏈充當(dāng)現(xiàn)有訪問控制模型的可信實體,目前主要包括區(qū)塊鏈與基于角色的訪問控制(role-based access control,RBAC)模型結(jié)合、區(qū)塊鏈與基于屬性的訪問控制(attributes based access control,ABAC)模型結(jié)合和區(qū)塊鏈與基于權(quán)能的訪問控制(capability-based access control,Cap-BAC)結(jié)合以及其他物聯(lián)網(wǎng)場景下模型的結(jié)合;另一種是提出一種新的完全基于區(qū)塊鏈的物聯(lián)網(wǎng)訪問控制模型,區(qū)塊鏈作為可信實體的同時,基于區(qū)塊鏈的特性設(shè)計了基于交易或者智能合約的訪問控制方法,按照區(qū)塊鏈架構(gòu)的不同可以分為基于比特幣區(qū)塊鏈改進(jìn)的訪問控制模型和基于以太坊區(qū)塊鏈的具有智能合約的訪問控制模型?;谝蕴坏膮^(qū)塊鏈具有圖靈完備的以太坊虛擬機,可以執(zhí)行任意復(fù)雜算法的智能合約,因此,利用智能合約來實現(xiàn)物聯(lián)網(wǎng)訪問控制將是未來的研究方向[3]。
物聯(lián)網(wǎng)的發(fā)展,將導(dǎo)致接入節(jié)點數(shù)量的增大,也將伴隨歸屬權(quán)和訪問的動態(tài)化、訪問量的增大,如何在兼顧效率和安全的同時,實現(xiàn)訪問控制的動態(tài)化,是對物聯(lián)網(wǎng)訪問控制提出的一大挑戰(zhàn)。
對于基于區(qū)塊鏈構(gòu)建的物聯(lián)網(wǎng)訪問控制體系,當(dāng)前的主要研究點為智能合約的設(shè)計、節(jié)點數(shù)據(jù)的壓縮以及應(yīng)對物聯(lián)網(wǎng)場景接入節(jié)點量級較大的挑戰(zhàn),對物聯(lián)網(wǎng)中的身份認(rèn)證涉及較少,通常采用PKI/CA 實現(xiàn)。雖然理論可行,但實際應(yīng)用存在下列問題。
a)CA 效率低下,對網(wǎng)絡(luò)傳輸要求高,不適合物聯(lián)網(wǎng)場景下終端計算、密鑰管理的高效要求。
b)CA管理的中心化與區(qū)塊鏈去中心化不契合。
c)基于區(qū)塊鏈的訪問控制體系在效率、安全、細(xì)粒度、動態(tài)性、系統(tǒng)擴(kuò)展性和伸縮性方面不能全面兼顧。
d)缺乏適應(yīng)物聯(lián)網(wǎng)場景,融合身份認(rèn)證體系和去中心化區(qū)塊鏈的訪問控制體系。
本文在此基礎(chǔ)上提出無證書密碼體制和區(qū)塊鏈結(jié)合的方案可以解決以上技術(shù)應(yīng)用的問題,為物聯(lián)網(wǎng)訪問控制提供高效、安全、細(xì)粒度的訪問控制實現(xiàn)。
無證書密碼體制介于傳統(tǒng)PKI和標(biāo)識密碼技術(shù)之間,這種機制中用戶私鑰由2個秘密因素決定:一個是從密鑰生成中心中提取的與用戶身份相關(guān)的密鑰,另一個是由用戶自己生成的密鑰。從一個秘密元素不能計算另一個,即密鑰生成中心不能算出用戶的部分密鑰,用戶也算不出密鑰生成中心生成的部分密鑰。因此,無證書密碼系統(tǒng)沒有密鑰托管的功能。無證書密碼系統(tǒng)保證即使是攻擊人成功地用自己的公鑰代替了受害者的公鑰,攻擊人仍然無法偽造一個受害者的簽名,或者解密一段加密給受害者的密文信息。將增加惡意攻擊者的攻擊難度。這種密碼機制在加密過程中仍然提前需要獲取接收方公鑰(實際為公鑰還原數(shù)據(jù)),然后使用接收方標(biāo)識和系統(tǒng)參數(shù)計算接收方完整公鑰。因此這類密碼系統(tǒng)在加密應(yīng)用中面臨傳統(tǒng)PKI 類似的挑戰(zhàn),即需要預(yù)先獲得接收方的公鑰還原數(shù)據(jù)。對于簽名過程,簽名方可以將其公鑰還原數(shù)據(jù)作為簽名的一部分一起傳遞,驗簽方從簽名結(jié)果中提取簽名人的公鑰還原數(shù)據(jù),然后使用簽名方標(biāo)識和系統(tǒng)參數(shù)計算簽名方的完整公鑰,驗證簽名的正確性。因此這類系統(tǒng)在簽名應(yīng)用中具有無證書管理、系統(tǒng)輕量、通信開銷低、具有強不可抵賴性等眾多優(yōu)點,非常適合物聯(lián)網(wǎng)等領(lǐng)域的身份認(rèn)證應(yīng)用[5]。
物聯(lián)網(wǎng)設(shè)備訪問控制中,利用無證書密碼體制為物聯(lián)網(wǎng)系統(tǒng)所有接入節(jié)點提供身份認(rèn)證,在此基礎(chǔ)上,利用區(qū)塊鏈技術(shù)維護(hù)設(shè)備整個生命周期內(nèi)任意時刻的擁有者關(guān)系和訪問權(quán)限信息。
在訪問控制區(qū)塊鏈中,對區(qū)塊鏈中目標(biāo)訪問設(shè)備而言,包括4種角色:被訪問者(終端、或者代理終端訪問的網(wǎng)關(guān))、訪問者、被訪問資源的所有者、區(qū)塊鏈中間節(jié)點,如圖2 所示。當(dāng)然角色劃分是相對于目標(biāo)訪問設(shè)備而言,如果沒有指定目標(biāo)訪問設(shè)備(被訪問者),訪問者、資源所有者、中間節(jié)點是等同的。同時被訪問者作為一種訪問資源,并不一定以獨立節(jié)點的形式存在。
圖2 區(qū)塊鏈涉及節(jié)點
利用無證書密碼體制為物聯(lián)網(wǎng)訪問控制中的各種節(jié)點提供身份憑證,借此身份憑證,物聯(lián)網(wǎng)訪問控制中涉及的各種節(jié)點,能夠?qū)φ埱蠛突貜?fù)中的角色進(jìn)行身份認(rèn)證,同時無證書密碼體制為物聯(lián)網(wǎng)訪問控制中各種節(jié)點提供部分密鑰對,在節(jié)點合成完整密鑰對,并公布于區(qū)塊鏈中,用于對信息的加解密處理等;同時區(qū)塊鏈各節(jié)點通過共識機制和智能合約,實現(xiàn)資源所有權(quán)的發(fā)布與更新、訪問權(quán)限的發(fā)布與更新、訪問控制的驗證與路由等,整體方案如圖3所示。
圖3 基于無證書密碼體制和區(qū)塊鏈結(jié)合實現(xiàn)的訪問控制總體方案
利用無證書密碼體制身份中心,為物聯(lián)網(wǎng)系統(tǒng)所有接入節(jié)點提供身份,使訪問者、所有者、被訪問者、區(qū)塊鏈中間節(jié)點之間能夠雙向認(rèn)證,搭建可信執(zhí)行環(huán)境,如圖4所示。
圖4 無證書密碼體制身份中心為區(qū)塊鏈所有節(jié)點提供身份
訪問者、所有者、被訪問者、區(qū)塊鏈中間節(jié)點均利用CLA 身份中心通過系統(tǒng)唯一身份ID 獲取部分密鑰對;訪問者、所有者、被訪問者、區(qū)塊鏈中間節(jié)點應(yīng)當(dāng)具有密鑰存儲、密鑰對合成、簽名驗簽、加密解密等能力,能夠?qū)臒o證書密碼體制身份中心獲取的部分密鑰對與自身生成的部分密鑰對合成,生成完整密鑰對;當(dāng)密鑰對需要重置或超過有效期,可以利用無證書密碼體制身份中心通過系統(tǒng)唯一身份ID 獲取部分密鑰對。圖4中①表示節(jié)點向無證書密碼體制身份中心申請取得或更新密鑰對;圖4 中②表示無證書密碼體制身份中心發(fā)放部分密鑰對,或發(fā)送因申請出錯而導(dǎo)致的錯誤消息。
其中訪問者、所有者、被訪問者、區(qū)塊鏈中間節(jié)點的“系統(tǒng)唯一身份ID”,可基于物聯(lián)網(wǎng)訪問控制區(qū)塊鏈中的智能合約所制定規(guī)則生成,保證整個系統(tǒng)唯一性。
因無證書密碼體制的密鑰分發(fā)或更新,與基于無證書密碼體制的雙向認(rèn)證可以獨立,所以無證書密碼體制身份中心不必處于區(qū)塊鏈所在網(wǎng)絡(luò)中,甚至無證書密碼體制密鑰分發(fā)或更新可離線進(jìn)行。
訪問控制區(qū)塊鏈,主要基于圖靈完備的智能合約,制定規(guī)則,實現(xiàn)節(jié)點注冊、設(shè)備注冊、歸屬數(shù)據(jù)、權(quán)限數(shù)據(jù),維護(hù)訪問控制基礎(chǔ)數(shù)據(jù),在此基礎(chǔ)之上,通過身份認(rèn)證、檢索機制、路由策略、統(tǒng)計分析,達(dá)到訪問控制業(yè)務(wù)的驗證、快速處理、統(tǒng)計分析,如圖5所示。
圖5 訪問控制區(qū)塊鏈基礎(chǔ)架構(gòu)
訪問控制區(qū)塊鏈中,主要涉及如下業(yè)務(wù)流程。
a)節(jié)點注冊。包括訪問者、資源所有者、區(qū)塊鏈中間節(jié)點的注冊,在符合約定規(guī)則的情況下,任何接入系統(tǒng)的服務(wù),都能夠成為區(qū)塊鏈節(jié)點;節(jié)點通過注冊獲取系統(tǒng)唯一身份ID。
b)設(shè)備注冊?;蚍Q被訪問者注冊,設(shè)備作為區(qū)塊鏈中的資源,需要通過資源所有者進(jìn)行注冊,并獲取系統(tǒng)唯一身份ID。設(shè)備只有通過注冊,才能被資源所有者節(jié)點轉(zhuǎn)移所有權(quán)、發(fā)布資源訪問權(quán)限,繼而能夠被訪問者所訪問。
c)歸屬數(shù)據(jù)。已注冊的資源所有者,將設(shè)備在區(qū)塊鏈注冊成功,意味著區(qū)塊鏈中的設(shè)備資源具有歸屬權(quán),形如“資源-歸屬于-資源所有者”;歸屬定義在注冊成功后上鏈;資源所有者能夠轉(zhuǎn)移所有權(quán),區(qū)塊鏈中記錄資源生命周期內(nèi)的所有權(quán)變更,形成不可篡改的資源歸屬關(guān)系。同時歸屬權(quán)變更將導(dǎo)致所有前資源所有者發(fā)布的關(guān)于資源的訪問權(quán)限,需要根據(jù)基于智能合約定義的權(quán)限變更協(xié)議進(jìn)行更新。
d)權(quán)限數(shù)據(jù)。即對資源的訪問權(quán)限;資源所有者能夠定義,訪問者以何種方式、時機等訪問(或不允許訪問)資源,形如“訪問者-允許(不允許)-訪問機制-資源”;權(quán)限定義在遵守合約的情況下上鏈;并在訪問者對資源進(jìn)行訪問時,通過基于智能合約的規(guī)則強制執(zhí)行驗證,驗證符合的情況下,執(zhí)行訪問控制權(quán)限的結(jié)果,即在允許的情況下路由訪問,或在不允許的情況下告知訪問者結(jié)果,采用如下流程。
(a)訪問者簽名訪問申請,通過被訪問者公鑰加密訪問申請,并發(fā)送訪問申請。
(b)區(qū)塊鏈中間節(jié)點通過無證書密碼體制對訪問者身份進(jìn)行認(rèn)證,認(rèn)證符合繼續(xù),否則返回給訪問者身份認(rèn)證失敗信息。
(c)區(qū)塊鏈中間節(jié)點驗證訪問權(quán)限符合情況,符合訪問權(quán)限的訪問繼續(xù),否則返回給訪問者權(quán)限驗證不符合信息。
(d)區(qū)塊鏈中間節(jié)點通過路由策略配置,將訪問請求快速路由到下一個區(qū)塊鏈節(jié)點,或直接路由到資源節(jié)點,并記錄訪問請求到區(qū)塊中(或僅記錄訪問請求摘要信息到區(qū)塊中)。
(e)區(qū)塊鏈中間路由節(jié)點均可通過無證書密碼體制對訪問者身份進(jìn)行認(rèn)證、或?qū)υL問信息進(jìn)行權(quán)限符合性判斷,通過共識機制達(dá)成一致。
(f)被訪問者(資源)通過無證書密碼體制對訪問者身份進(jìn)行認(rèn)證,并通過被訪問者私鑰解密請求。
(g)被訪問者(資源)根據(jù)自身情況答復(fù)訪問請求,并通過訪問者公鑰加密請求答復(fù)。
(h)區(qū)塊鏈中間節(jié)點通過無證書密碼體制對資源身份進(jìn)行認(rèn)證,認(rèn)證符合,記錄訪問答復(fù)到區(qū)塊中(或僅記錄訪問答復(fù)摘要到區(qū)塊中),并將訪問答復(fù)路由給訪問者。
(i)訪問者通過無證書密碼體制對資源身份進(jìn)行認(rèn)證,并通過訪問者私鑰解密請求答復(fù)。
(j)歸屬權(quán)變更將導(dǎo)致所有前資源所有者發(fā)布的關(guān)于資源的訪問權(quán)限,需要根據(jù)基于智能合約定義的權(quán)限變更協(xié)議進(jìn)行更新;通過共識機制達(dá)成一致后,新訪問權(quán)限立即生效。
e)身份認(rèn)證。即基于無證書密碼體制的身份認(rèn)證,在節(jié)點注冊、設(shè)備注冊、歸屬權(quán)變更、權(quán)限更新等過程中,均需要驗證信息變動發(fā)生的來源身份,及其權(quán)限是否符合合約規(guī)定。
f)檢索機制。訪問控制中的權(quán)限判斷涉及大量數(shù)據(jù)檢索和計算,通過檢索機制的合理配置,實現(xiàn)數(shù)據(jù)高效檢索、避免重復(fù)計算。
g)路由策略。隨著區(qū)塊鏈網(wǎng)絡(luò)接入量的增大,為提高訪問效率,需要配置路由策略,減少訪問節(jié)點,降低損耗。
h)統(tǒng)計分析。通過對主要業(yè)務(wù)(如節(jié)點注冊、設(shè)備注冊、歸屬權(quán)變更、權(quán)限更新、資源訪問請求與結(jié)構(gòu)等)的統(tǒng)計分析,發(fā)現(xiàn)系統(tǒng)異常、預(yù)期業(yè)務(wù)發(fā)展,提高系統(tǒng)表現(xiàn)。
基于無證書密碼體制和區(qū)塊鏈技術(shù)相結(jié)合的方法,借助無證書密碼體制提供可信執(zhí)行環(huán)境,通過區(qū)塊鏈統(tǒng)一管理設(shè)備生命周期內(nèi)的所有者關(guān)系和訪問權(quán)限,構(gòu)建物聯(lián)網(wǎng)設(shè)備訪問控制系統(tǒng)。一方面,區(qū)塊鏈非常適合解決工業(yè)互聯(lián)網(wǎng)的訪問安全問題[1],同時,通過在區(qū)塊鏈應(yīng)用層中,數(shù)據(jù)層和業(yè)務(wù)層的設(shè)計,安全高效地解決應(yīng)用過程中的問題;另一方面無證書密碼體制的去中心化、離線認(rèn)證特性非常契合區(qū)塊鏈技術(shù)的應(yīng)用,其輕量級靈活性強、低成本易部署、無證書體系的特點,將大大降低密鑰管理和傳輸成本,支持海量設(shè)備的接入認(rèn)證和密鑰管理。
利用無證書密碼體制的優(yōu)勢,通過區(qū)塊鏈構(gòu)建的物聯(lián)網(wǎng)訪問控制體系,在物聯(lián)網(wǎng)可信執(zhí)行環(huán)境的基礎(chǔ)上,提供更加細(xì)粒度的訪問控制機制;在提供安全的細(xì)粒度訪問控制中,提高訪問效率、動態(tài)性、系統(tǒng)擴(kuò)展性和伸縮性,降低部署成本。