茍 英 魏 星
(重慶商務職業(yè)學院出版?zhèn)髅较?重慶 401331) 2(重慶工程學院計算機學院 重慶 400056)
物聯(lián)網(wǎng)(Internet of Things,IoT)允許數(shù)十億甚至數(shù)萬億個對象通過互聯(lián)網(wǎng)進行互連,并且以驚人的速度增長[1-2]。IoT代表由傳感器和執(zhí)行器組成的物理對象或設備的網(wǎng)絡,通過彼此之間以及與最終用戶交換數(shù)據(jù)來實現(xiàn)多種應用程序和服務。IoT已經應用到多種行業(yè),如醫(yī)療保健。醫(yī)療保健已成為人類生活中必不可少的部分之一,從而導致醫(yī)療大數(shù)據(jù)的急劇增加。為了簡化診斷和治療過程,醫(yī)療保健專業(yè)人員現(xiàn)在正在采用基于IoT的可穿戴技術。但是大量的數(shù)據(jù)需要計算密集型操作、巨大的存儲需求和實時通信,而云服務提供商并不能始終以最有效的方式保證這些效率[3-4]。因此,引入了邊緣計算,從而大大減少了應用程序的延遲。
5G具備更加強的帶寬能力,能夠滿足IoT應用高速穩(wěn)定、多設備和覆蓋面廣等需求,是IoT發(fā)展必不可少的通信技術,多接入邊緣計算(Multi-Access Edge Computing,MEC)可以滿足5G的超延時和千兆體驗的需求,5G和MEC被認為是未來遠程和智能系統(tǒng)的必要技術。5G網(wǎng)絡生態(tài)系統(tǒng)通過超高速和廣泛的帶寬為IoT傳感器、執(zhí)行器和云之間提供無縫連接,另外,MEC通過將一些資源密集型計算卸載到MEC節(jié)點上,從而提高了所連接的IoT節(jié)點的服務能力[5-6]。文獻[7]提出了一種啟用MEC的5G IoT架構中的在線網(wǎng)絡功能虛擬化生命周期管理方法,實現(xiàn)減少的延遲并增加網(wǎng)絡邊緣的容量,以滿足IoT生態(tài)系統(tǒng)的需求。但是,隨著物聯(lián)網(wǎng)的發(fā)展,大量部署在傳統(tǒng)數(shù)據(jù)中心、云內的基礎設施重新部署在邊緣和終端設備上,就導致大量邊緣設備缺少物理屏障,面臨嚴重的安全挑戰(zhàn),物聯(lián)網(wǎng)的安全問題、隱私問題和可擴展問題已經得到越來越多的重視[8]。
具有分布式去中心化特性的區(qū)塊鏈通過哈希鏈及共識算法,為IoT提供了數(shù)據(jù)永久保存及防篡改特性,能夠有效解決物聯(lián)網(wǎng)面臨的安全問題。另外,分布式性質區(qū)塊鏈的實現(xiàn)和智能合約的自主準確執(zhí)行開啟了更廣泛的創(chuàng)新范圍,區(qū)塊鏈中的分布式分類賬是一種通用應用程序,可消除數(shù)據(jù)存儲的集中化以及保證的數(shù)據(jù)存儲完整性,為物聯(lián)網(wǎng)的發(fā)展提供有效支撐[9]。文獻[10]設計和開發(fā)了具有區(qū)塊鏈和AI的物聯(lián)網(wǎng)架構,以支持有效的大數(shù)據(jù)分析。文獻[11]提出一種高效隱私的區(qū)塊鏈認知物聯(lián)網(wǎng)框架,提高物聯(lián)網(wǎng)推薦系統(tǒng)的效率。文獻[12]提出一種基于區(qū)塊鏈的物聯(lián)網(wǎng)去中心化隱私保護醫(yī)療保健框架,通過使用區(qū)塊鏈來提供對醫(yī)療大數(shù)據(jù)的安全管理和分析。文獻[13]提出一種基于信用的IoT共識機制的區(qū)塊鏈系統(tǒng),可以同時保證系統(tǒng)安全和交易效率。
在現(xiàn)有對區(qū)塊鏈和物聯(lián)網(wǎng)研究的基礎上,提出一種基于區(qū)塊鏈的多維度物聯(lián)網(wǎng)健康數(shù)據(jù)服務框架,解決物聯(lián)網(wǎng)上健康數(shù)據(jù)的隱私性、可擴展性和安全性等問題。該框架在物聯(lián)網(wǎng)中引入ECQV隱式證書,提高智能數(shù)據(jù)安全性,并通過區(qū)塊鏈分布式賬本來該證書的有效性,然后使用區(qū)塊鏈的智能合約來處理與證書相關的操作,最后使用多接入邊緣計算提高物聯(lián)網(wǎng)框架的可擴展性,通過多維度的保護,為物聯(lián)網(wǎng)智能數(shù)據(jù)提供安全、隱私可擴展的服務。
密碼術學中,隱式證書是公鑰證書的變體,從隱式證書中的數(shù)據(jù)重建對象公鑰,然后稱其為隱式驗證。篡改證書將導致重構的公鑰無效,這意味著無法找到匹配的私鑰值。ECQV是一種隱式證書方案,是基于橢圓曲線密碼(Elliptic Curve Cryptography,ECC),比ECC占用內存少,認證效率高。
證書頒發(fā)機構(Certificate Authority,CA)負責ECQV認證過程,被認為是受信任的實體。身份IDCA和相應的公共密鑰PuCA應該是公開可用的。在本研究上下文中,將對應于兩個參數(shù)在區(qū)塊鏈分布式分類賬上發(fā)布,相應的私鑰PrCA在CA保密。對于具有標識IDn的實體,密鑰對(Prn,Pun)的派生步驟如下。首先,設備需要發(fā)送其身份和橢圓曲線(Elliptic Curve,EC)點Rn=rnG,其中rn是隨機選擇。根據(jù)此信息,CA將執(zhí)行以下操作。
1) CA選擇自己的隨機值rCA∈Fp,其中p表示素數(shù),計算RCA=rCAP,證書certn由certn=RCA+Rn定義。
2) 計算出值r=H(certn‖IDn)rCA+PrCA,H表示默認模式SHAKE128具有256位長度和128位總體安全性的哈希函數(shù)。
3) 將元組(certn,r)發(fā)送給用戶。
然后,設備可以通過Prn=H(certn‖IDn)rCA+r導出其私鑰,并且相應的公鑰可以由Pun=H(certn‖IDn)certn+PuCA得出。
對于物聯(lián)網(wǎng)和MEC設備之間的通信,存在許多完善的身份驗證和密鑰協(xié)商算法。當MEC接收到通過ECQV機制建立的身份和證書,并且能夠導出設備的相應公鑰,在區(qū)塊鏈分布式賬本上驗證公鑰或證書的有效性,同時考慮到服務器已將潛在的吊銷添加到了賬本中。包括以下幾個部分:區(qū)塊鏈服務層、CA和證書訪問節(jié)點、區(qū)塊鏈智能合約。
區(qū)塊鏈服務層。區(qū)塊鏈服務層充當服務提供者,能夠提供證書請求的驗證以及威脅評分和撤銷操作的準確性,同時部署智能合約,對證書生命周期的不同活動進行操作。區(qū)塊鏈是分開工作的,其主要目標采用區(qū)塊鏈即服務(Blockchain as a Service,BaaS)架構。
CA和證書訪問節(jié)點。在所提隱私證書安全驗證的方案中,身份IDCA和相應的公鑰PuCA公開可用。相應的私鑰PrCA在CA保密。此外,CA還會發(fā)布(Certificate Revocation List,CRL),其中包括已撤銷的證書。CA僅在對智能合約的屬性進行基本驗證后才接收證書生成請求,通過智能合約進行基本驗證后,智能合約將證書生成請求提交給CA。從公鑰基礎設施(Public Key Infrastructure,PKI)生態(tài)系統(tǒng)的角度來考慮,IoT設備生態(tài)系統(tǒng)中證書訪問節(jié)點可分為三大類:證書訂閱節(jié)點、證書狀態(tài)查詢節(jié)點和威脅確認節(jié)點。
訂閱節(jié)點選擇EC點Rn=rnG,并與身份信息一起提交給區(qū)塊鏈服務,CA提取身份信息并繼續(xù)進行證書生成。作為元組(certn,r)生成的證書值r可在分類賬中使用,從而使訂戶能夠導出其相應的私鑰并完成證書生成過程。生態(tài)系統(tǒng)中的節(jié)點需要在特定操作之前檢查證書狀態(tài),本文框架中區(qū)塊鏈服務層提供了一種基于智能合約的威脅評分機制,另外,智能合約適用于根據(jù)節(jié)點類別建立訪問證書的粒度。然后對于脅確認節(jié)點,威脅警報智能合約根據(jù)通過入侵檢測系統(tǒng)等服務接收的警報信息來更新威脅評分。
智能合約是部署在PKI生態(tài)系統(tǒng)節(jié)點中的不變程序,可以在滿足某些條件時執(zhí)行,智能合約利用訂戶注冊和攻擊通知,可確保每個操作的準確和自主的有條件執(zhí)行。重要的是要確保威脅評分機制的不變性,以確保評分的準確性和變更。證書頒發(fā)智能合約:當新的IoT設備請求證書時,將調用證書頒發(fā)智能合約,智能合約在將請求發(fā)送到CA之前執(zhí)行一次主要驗證以消除sybil攻擊。證書發(fā)行智能合約通過調用鏈下CA服務來調用證書發(fā)行請求,同時更新包括相應信息的分類賬。
威脅評分和吊銷智能合約:威脅評分智能合約使用評分算法進行編碼,在更具體的實現(xiàn)中,可以在智能合約中定義攻擊的類型和相應的分數(shù)。例如,對于ICMP流量,威脅分數(shù)為score1,而對于portcan,威脅分數(shù)為score2。每個攻擊信息都由系統(tǒng)的集成入侵檢測系統(tǒng)確認。
吊銷證書的閾值也可以在智能合約中定義,該機制的主要優(yōu)點是以透明的方式準確執(zhí)行預定義的條件,從而導致威脅評分增加并最終吊銷證書。智能合約為每個事件檢索證書對象,并更新與證書關聯(lián)的設備的威脅評分。當威脅評分超過威脅評分的閾值級別以撤銷證書時,該證書將被標記為已撤銷證書并確認分類賬。與證書吊銷相對應的事件將記錄在分類賬中,并且可用于事后調查。
提出一種基于ECQV證書、區(qū)塊鏈和MEC的多維度物聯(lián)網(wǎng)健康數(shù)據(jù)服務架構,如圖1所示,該架構鏈接到區(qū)塊鏈和星際文件系統(tǒng)(InterPlanetary File System,IPFS),在資源受限的情況下實現(xiàn)端到端的安全性、可擴展的數(shù)據(jù)存儲,高吞吐量和高效的操作能力計算基礎架構。框架中使用第1節(jié)中ECQV證書的輕量級機制來確保操作中的輕量級加密開銷。所提框架中具有6個參與方:智能數(shù)據(jù)用戶、設備、MEC節(jié)點、區(qū)塊鏈服務層(Blockchain Service Layer,BSL)、云服務器和可信第三方(Trusted Third Party,TTP)。BSL可以看作是一個受信任的安全實用程序應用程序,將某些服務與鏈下調用分開。

圖1 所提多維度IoT健康數(shù)據(jù)服務框架
其中IoT通過消息隊列遙測傳輸(Message Queuing Telemetry Transport,MQTT)協(xié)議和約束應用協(xié)議(Constrained Application Protocol,CoAP)和MEC進行連接,所提框架通過多個步驟為健康數(shù)據(jù)提供安全、隱私的服務。假設存在一個TTP,它決定EC、生成器G、哈希函數(shù)H(·)、具有對稱密鑰K的對稱密鑰加密函數(shù)EK(·),并選擇一個隨機值PrTTP作為私鑰,公鑰PuTTP可由PuTTP=PrTTPG得到。身份為IDm的MEC節(jié)點通過ECQV從TTP獲得私鑰和公鑰對(Prm,Pum),其中,Pum=H(certm‖IDm)+PuTTP。
1) 注冊階段。在此階段,首先通過TTP的ECQV分別獲得患者和醫(yī)院的私鑰-公鑰對(IDp,Pup)和(IDh,Puh)。醫(yī)院在區(qū)塊鏈(Blockchain,BC)上發(fā)布其身份、公鑰、注冊時間和證書(Dh,Puh,Th,Certh),其中Puh=H(IDh,Puh,Certh)Certh+PuTTP,通過區(qū)塊鏈API調用智能合約。患者在BC上發(fā)布其身份,患者信任其數(shù)據(jù),公鑰、注冊時間以及證書ID的人的醫(yī)院身份IDp、IDh、Pup、Td、Certp,其中Pup=H(IDp,IDh,Tp,Certp)Certp+PuTTP。
之后構建用于患者和醫(yī)院的聯(lián)合公共密鑰對(Prj,Puj),使用基于公鑰的機制建立秘密通道,分別安全地共享由患者和醫(yī)院選擇的隨機數(shù)r1、r2,以得出新的私鑰Prj,和對應的公鑰Puj=PrjG。該聯(lián)合公共密鑰被添加到患者的BC相關信息。同樣,用于監(jiān)視患者的設備也將在時間Td由醫(yī)院在BC注冊,因此,設備會通過TTP的ECQV接收帶有證書Certd的私鑰-公鑰對(IDd,Pud),其中Pud=H(IDd,IDh,Puj,Td,Certd)Certd+PuTTP。
2) 物聯(lián)網(wǎng)與MEC節(jié)點之間的Key建立。IoT設備發(fā)送一個請求消息,其中包含其標識IDd和隨機值Rd=rdG的簽名消息{IDd,Rd}Prd。在該消息到達時,MEC節(jié)點驗證BC上IDd的存在,并查找其相應的公鑰Pud和標識符IDp、IDh、Puj,還會在BC上驗證患者的ID是否為其首選醫(yī)院和相應的聯(lián)合公共密鑰Puj。如果簽名也正確,那么將在其本地數(shù)據(jù)庫中驗證是否已經在對IDp進行分析。隨后,將使用標識符IDa將當前請求添加到該分析中。如果不正確,將創(chuàng)建一個新的分析標識符IDa。接下來,將包含(IDm,Certm,Rm,H(K))的響應發(fā)送到IoT節(jié)點,其中K=(rm+PrmH(Rd,Rm))·(Rd+H(Rm,Rd)Pud),并將IDd、K、Puj安全地存儲在數(shù)據(jù)庫中,其中包含與IDa相關的信息。基于接收到的響應,IoT設備可以首先通過ECQV計算公鑰Pum,計算秘密會話密鑰K=(rd+PrdH(Rm,Rd))(Rm+H(Rd,Rm)Pum)。兩者相互認證并共享相同的會話密鑰K,這對于前向保密性和會話信息泄漏攻擊是安全的。
使用會話密鑰K,可以將來自IoT節(jié)點的所有數(shù)據(jù)M作為(IDd,EK(M))安全地發(fā)送到MEC節(jié)點,MEC節(jié)點首先檢查其數(shù)據(jù)庫中IDd的存在,以找到會話密鑰及其所屬的相應分析IDa,根據(jù)該信息,可以解密消息并將其用于患者的完整分析配置文件。
3) 患者區(qū)塊鏈-云更新及檢索。在固定時間段之后,將所有IDa的不同匯總分析發(fā)送到BSL,發(fā)布在BC上。對于每個分析,會使用聯(lián)合公鑰計算隨機點Ra=raG和Diffie Hellman密鑰Ka=raPuj,該密鑰用于對分析數(shù)據(jù)Ma進行加密,以獲得Ca=EK(Ma)。消息由sa=ra-H(IDm,IDp,Ra,Ca)Prm簽名,消息IDm,(IDp,Ca,Ra,sa)a已發(fā)送到BSL。

4) 數(shù)據(jù)共享。當患者與醫(yī)院之間的關系斷開時,通過撤銷系統(tǒng)中以前的聯(lián)合密鑰對,可以將患者數(shù)據(jù)轉換為可共享狀態(tài)。患者數(shù)據(jù)將使用新隨機生成的會話密鑰進行解密、重新加密。通過使用患者的公共密鑰對會話密鑰進行加密,可以將其與患者共享。當?shù)谌叫枰@取患者數(shù)據(jù)時,與醫(yī)院聯(lián)系并由醫(yī)院觸發(fā)患者的請求,當患者接受共享請求時,患者共享會話密鑰,并且可以解密數(shù)據(jù),數(shù)據(jù)共享給第三方,但不會向第三方透露患者的身份。密鑰回收策略是在智能合約中建立的,例如,通過在1個月后使會話密鑰過期或在單個數(shù)據(jù)共享操作之后回收密鑰,每個密鑰到期都需要重新生成的會話密鑰中加密數(shù)據(jù)。
5) 訪問撤銷。如果患者想要更改其首選醫(yī)院,然后再次向TTP注冊,并接收新的私鑰-公鑰對,在計算公鑰時包含新的醫(yī)院標識符,需要創(chuàng)建一個新的聯(lián)合鑰匙,并且患者使用的所有設備都需要更新其證書。通過智能合約,使MEC節(jié)點知道醫(yī)院的更新和所有涉及IDp正在進行的分析,都將更改患者鏈接到存儲的聯(lián)合公鑰。最后,調用智能合約以標記對數(shù)據(jù)的訪問撤銷。
用于實現(xiàn)的計算基礎架構由幾個虛擬機(VM)和一個主機組成,64位虛擬機運行具有12 GB RAM,Ubuntu 18.10系統(tǒng),主機由具有4個內核和8個邏輯處理器的Intel Core i7 CPU組成。所提出的架構將MEC計算模塊集成為中介,以建立IoT節(jié)點與云之間的連接。IoT-MEC連接性是通過消息隊列遙測傳輸(Message Queuing Telemetry Transport,MQTT)協(xié)議和約束應用協(xié)議(Constrained Application Protocol,CoAP)建立的,這些協(xié)議在IoT上下文中被廣泛使用。
本文使用Raspberry Pi作為IoT節(jié)點,在實驗評估中代表傳感器和執(zhí)行器。證書頒發(fā)機構:CA模擬PKI生態(tài)系統(tǒng)中最先進的CA,使用Java編程語言來實現(xiàn),該語言使用諸如BouncyCastle密碼庫之類的密碼庫。CA與表述性狀態(tài)傳遞應用程序接口(Representational State Transfer Application Programming Interface,REST API)一起部署,接收來自智能合約的證書生成請求。在區(qū)塊鏈服務層使用Hyperledger Fabric私有區(qū)塊鏈,智能合約使用Javascript進行編碼,并能夠在CA的鏈下調用生成證書。區(qū)塊鏈服務層由重要服務組成,包括作為Docker容器部署的訂單、存儲、對等和Hyperledger CA服務,當前的實現(xiàn)利用Hyperledger Fabric作為區(qū)塊鏈平臺,通過REST API連接到MEC節(jié)點和云服務,提供提交和檢索交易,智能合約部署在Hyperledger區(qū)塊鏈中,通過REST API與IPFS連接。
首先對所提框架中證書訪問操作驗證,證書訪問操作是PKI生態(tài)系統(tǒng)上最重要且最常見的操作之一,在與持有證書的節(jié)點連接或交互之前,節(jié)點可能需要檢查證書狀態(tài)。事務遵循泊松到達,具有對應于每秒事務的定義平均值,為每秒生成的事務定義速率參數(shù)λ。IoT設備是通過仿真中的多線程軟件代碼執(zhí)行的,進行測試時,rate參數(shù)是可配置的。事務生成遵循速率參數(shù)為λ的Poisson分布,并且在時間段內觀察到z個事件的概率表示為P(X=z)=e-λ/z!,運行時內存消耗和事務處理時間(例如,到函數(shù)調用往返的經過時間)是評估中測量的主要參數(shù)。圖2和圖3給出了所提框架訪問查詢性能與常規(guī)證書的ElasticSearch性能對比。

圖2 CA和區(qū)塊鏈的ECQV隱式證書訪問時間

圖3 CA和區(qū)塊鏈的ECQV隱式證書內存開銷
可以看出,就內存和時間效率而言,區(qū)塊鏈的性能優(yōu)于基于ElasticSearch的CA模擬器的證書訪問查詢,這是因為從區(qū)塊鏈訪問證書類似于直接訪問數(shù)據(jù)庫。盡管ElasticSearch是用于搜索的最佳數(shù)據(jù)存儲,但是由于安全原因,無法將其連接為訪問節(jié)點的接口。ElasticSearch使用特定于需求的API與節(jié)點連接,以限制數(shù)據(jù)訂戶的訪問范圍。相比之下,區(qū)塊鏈可直接作為數(shù)據(jù)庫訪問,并具有內置的共識機制和完整性機制,可防止數(shù)據(jù)更改和DoS攻擊等攻擊。ECQV隱式證書的輕量性質利用了以最小的存儲開銷和更快的查詢能力存儲在區(qū)塊鏈上的優(yōu)勢。該模擬每秒可擴展至500個事務,并且在區(qū)塊鏈上進行查詢以訪問證書時具有更大的可擴展性。
與現(xiàn)有的框架從不同特征方面進行比較,現(xiàn)有方法有:文獻[14]中基于聯(lián)盟區(qū)塊鏈的醫(yī)療健康數(shù)據(jù)安全模型,文獻[15]中基于邊緣認知計算的智能醫(yī)療系統(tǒng),文獻[16]中基于區(qū)塊鏈和物聯(lián)網(wǎng)的認知邊緣框架,文獻[17]中基于區(qū)塊鏈的安全戶外健康監(jiān)控方案。對比結果如表1所示。

表1 不同物聯(lián)網(wǎng)服務框架的性能特征對比
可以看出,本文物聯(lián)網(wǎng)服務框架具有ECQV證書、匿名性、數(shù)據(jù)共享和訪問撤銷等8個特征方面,比現(xiàn)有其他物聯(lián)網(wǎng)服務框架的特征更全面,這是因為本文框架中引入多維度的方法,首先ECQV隱式證書保證了物聯(lián)網(wǎng)數(shù)據(jù)的安全,并通過區(qū)塊鏈的智能合約進行了驗證。另外,該框架鏈接到區(qū)塊鏈和IPFS,在資源受限的情況下實現(xiàn)端到端的安全性、可擴展的數(shù)據(jù)存儲,高吞吐量和高效的操作能力計算基礎架構;多接入邊緣計算聯(lián)合區(qū)塊鏈,能夠實現(xiàn)去中心化的智能數(shù)據(jù)的實時更新和檢索。ECQV證書結合智能合約,為數(shù)據(jù)共享和訪問撤銷提供了通道。
本文提出了一種基于ECQV隱式證書、MEC和區(qū)塊鏈的物聯(lián)網(wǎng)多維度安全服務架構,該架構可提供數(shù)據(jù)隱私、安全的智能數(shù)據(jù)服務。首先提出了使用分布式分類賬技術管理ECQV隱式證書生命周期的解決方案,分布式分類賬充當防篡改數(shù)據(jù)庫,并為不同目的提供更快的證書檢索,為調查提供了吊銷歷史記錄的透明記錄;在內存方面,ECQV證書的輕量級性質在相關操作中產生最佳結果。通過MEC卸載到可擴展的IPFS存儲來優(yōu)化區(qū)塊鏈存儲,以確保將大量已連接的設備連接到云的可擴展性。最后通過注冊階段、患者區(qū)塊鏈-云更新及檢索、數(shù)據(jù)共享和訪問撤銷等多個階段來實現(xiàn)健康數(shù)據(jù)的安全服務。與現(xiàn)有其他物聯(lián)網(wǎng)框架的性能比較驗證了所提框架的有效性。