周天祺/ZHOU Tianqi
桂梓原/GUI Ziyuan
(南京信息工程大學(xué),江蘇南京210044)
近年來,隨著新一輪經(jīng)濟科技的不斷發(fā)展,物聯(lián)網(wǎng)(IoT)平臺已被世界發(fā)達國家列為重大發(fā)展戰(zhàn)略。中國也在《“十三五”規(guī)劃綱要》里明確指出:將物聯(lián)網(wǎng)作為戰(zhàn)略性新興產(chǎn)業(yè)上升為國家發(fā)展重點[1]?,F(xiàn)如今IoT技術(shù)被廣泛應(yīng)用在智能城市、智能家居、智能醫(yī)療、車聯(lián)網(wǎng)、環(huán)境監(jiān)測等實際應(yīng)用環(huán)境中,人們的實際生產(chǎn)生活已經(jīng)與物聯(lián)網(wǎng)技術(shù)緊密相連,不可分割[2-5]。為實現(xiàn)實時感知環(huán)境信息或傳輸數(shù)據(jù)給用戶,開發(fā)人員會將不同種類的傳感器嵌入到智能設(shè)備或具體物體中,例如:可穿戴設(shè)備、傳感器和專業(yè)工具等智能設(shè)備在網(wǎng)絡(luò)中相互連通,并在網(wǎng)絡(luò)中完成數(shù)據(jù)加密、數(shù)據(jù)傳輸和數(shù)據(jù)分析等,協(xié)助人們完成IoT平臺數(shù)據(jù)采集和數(shù)據(jù)分析等工作[6-8]。在上述過程中,無論哪種實際應(yīng)用場景都需要智能設(shè)備能夠及時完成對數(shù)據(jù)的響應(yīng)或傳輸,即使數(shù)據(jù)是在公開信道中傳輸,也要保證數(shù)據(jù)傳輸是不可泄漏的。一旦數(shù)據(jù)傳輸速度降低或者數(shù)據(jù)丟失,將會影響用戶的使用效果;一旦數(shù)據(jù)在傳輸過程中被惡意敵手篡改或攻擊,整個處理數(shù)據(jù)的過程都會被視為不安全。因此,提高在IoT平臺下的數(shù)據(jù)傳輸性能和數(shù)據(jù)安全性,是當前亟待解決的問題。
經(jīng)過上述的分析,不難發(fā)現(xiàn):傳統(tǒng)的IoT技術(shù)和中心化的系統(tǒng)框架已經(jīng)很難滿足未來的發(fā)展需求。針對IoT平臺的特點,區(qū)塊鏈技術(shù)能解決大量的智能設(shè)備數(shù)據(jù)在中心化的系統(tǒng)框架中會出現(xiàn)的安全和管理問題。區(qū)塊鏈是一種集成分布式數(shù)據(jù)庫、共識機制、點對點(P2P)傳輸和非對稱加密算法等新型應(yīng)用模式,具有去中心化、開放性、自治性、匿名性和信息不可篡改的特點。本文主要對IoT平臺之一的體域網(wǎng)展開了詳細研究,結(jié)合新興的區(qū)塊鏈技術(shù),針對傳輸?shù)陌踩阅芎蛿?shù)據(jù)傳輸性能差的特點,研究分析了適用于體域網(wǎng)的身份認證技術(shù),利用區(qū)塊鏈技術(shù)在體域網(wǎng)平臺下設(shè)計一個新興的系統(tǒng)框架,主要解決以下問題:
(1)數(shù)據(jù)的安全問題。由于體域網(wǎng)處于一個公共信道中,因此存在惡意敵手對數(shù)據(jù)進行攻擊、篡改或重放等,造成數(shù)據(jù)丟失或被竊取的安全性問題。在體域網(wǎng)中,數(shù)據(jù)一旦受到篡改,則可能釀成醫(yī)療事故。
(2)數(shù)據(jù)的傳輸問題。在不同網(wǎng)絡(luò)中傳輸數(shù)據(jù)時,需要使用不同的通信協(xié)議,導(dǎo)致不同協(xié)議之間需要相互轉(zhuǎn)換格式,產(chǎn)生了大量的通信開銷,并降低了通信效率。
(3)設(shè)備的成本問題。在體域網(wǎng)中需要使用大量的傳感器和路由器,保證數(shù)據(jù)的采集和傳輸。在無形中,增加了通信的成本和能源消耗。
無線體域網(wǎng)中收集的都是與人體相關(guān)的生理隱私數(shù)據(jù),這些數(shù)據(jù)可被用于醫(yī)療、體育、軍事和商務(wù)社交等方面,并產(chǎn)生各種社會價值。為了保護這些與個人隱私相關(guān)的生理數(shù)據(jù),首先要進行各個實體間的身份認證,許多研究學(xué)者對此展開了研究。這些研究成果大體上可以分為2類:一種是采用人體獨特的生物信息進行認證,另一種是利用傳統(tǒng)的密碼學(xué)方式進行認證。
在2003年,CHERUKURI S等人[9]首次利用人體的生物特征信息進行身份認證研究,并提出了可行的Biosec方案。在該方案中,結(jié)合糾錯碼技術(shù)以及生物識別技術(shù)解決生物特征測量誤差和隨機性問題,可用于安全通信無線生物傳感網(wǎng)絡(luò)的身份認證。但是其中的生物特征測量方法并不完善,存在缺陷。隨后,文獻[10-12]對模糊金庫算法進行研究并應(yīng)用于節(jié)點間身份認證。模糊金庫算法主要利用人體獨特的生物特征數(shù)據(jù)構(gòu)造一個數(shù)據(jù)集合,并在數(shù)據(jù)集合中加入大量的噪聲點,用處理后的數(shù)據(jù)集合對密鑰信息進行加密,然后將此加密后的數(shù)據(jù)用來進行身份認證。如果其他節(jié)點想進行解密操作,其自身得擁有與密文中的生物特征數(shù)據(jù)集合相似的數(shù)據(jù)集合。但是在模糊金庫算法中,網(wǎng)絡(luò)中通信開銷消耗和金庫大小有關(guān)聯(lián),這會導(dǎo)致節(jié)點能耗過大的問題。針對此問題,ZAGHOUANI E K等人[13]于2015年利用線性預(yù)測編碼技術(shù)解決了上述能耗過大的問題,并提出了心電圖結(jié)果線性預(yù)測密鑰(ELPA)方案。在此基礎(chǔ)上,ZAGHOUANI E K等人[14]于2017年將線性預(yù)測編碼技術(shù)與心電圖生物識別技術(shù)相結(jié)合,可在隱藏心電信號隱私數(shù)據(jù)的同時實現(xiàn)對病人身份的認證。同模糊金庫算法相比,該降低了計算復(fù)雜性和通信開銷。
LAMPORT L[15]于1981年提出了首個遠程認證協(xié)議,采用了用戶密碼認證方案,這一方案為今后的遠程認證方案奠定了基礎(chǔ)。該協(xié)議允許節(jié)點通過不安全公共信道向服務(wù)器進行身份認證。此后也有許多遠程認證協(xié)議被提出,這些協(xié)議都利用了傳統(tǒng)密碼學(xué)方式,需要證書授權(quán)中心和公鑰基礎(chǔ)設(shè)施的參與,不適合資源受限的傳感器設(shè)備。LIU J等人[16,17]對無證書公鑰密碼進行研究并在無線體域網(wǎng)中首次提出了2個保護隱私的無證書遠程匿名認證協(xié)議。由于協(xié)議中服務(wù)器端需要存儲認證表來進行身份認證操作,易被篡改和偽造,同時也不滿足前向安全性等要求。同時由于使用了雙線性對等密碼學(xué)操作,傳感器的計算負擔(dān)較大,不適合資源受限的客戶端。XIONG H[18]則于2014年提出了一種基于無證書加密的遠程匿名認證協(xié)議,該協(xié)議在客戶端使用較多的點乘操作并且沒有考慮到密鑰的撤銷問題,同時用戶的個人生理數(shù)據(jù)易被惡意實體收集,因此存在較大的安全問題和計算負擔(dān)。為了提高無線體域網(wǎng)中認證的安全性并降低計算的成本,SHEN等人[19]于2018年針對無線體域網(wǎng)提出了一種綜合認證協(xié)議,該協(xié)議包括了一種高效的多層認證協(xié)議和針對無線體域網(wǎng)的安全會話密鑰生成方案。該協(xié)議借助個人數(shù)字助理和無證書認證技術(shù),可以有效地降低傳感器能耗和計算負擔(dān),具有一定的實踐指導(dǎo)意義。
綜上所述,在無線體域網(wǎng)中,全球?qū)W者對于身份認證的研究已取得一定的成果,可實現(xiàn)匿名、安全和高效的操作,并在實踐中得到應(yīng)用。采用傳統(tǒng)密碼學(xué)方式進行身份認證雖然可以避開生物信息認證的缺陷,但其本身也存在計算開銷較大、傳輸速度慢、易受共謀攻擊和中間人攻擊等問題,同時數(shù)據(jù)易受篡改,對資源受限的傳感器節(jié)點來說仍然是不小的挑戰(zhàn)。
區(qū)塊鏈技術(shù)是使用塊式和鏈式的存儲結(jié)構(gòu)來認證和保存數(shù)據(jù),使用共識算法實現(xiàn)生成新區(qū)塊,使用非對稱加密算法保證數(shù)據(jù)在信道中的安全傳輸,使用智能合約來處理數(shù)據(jù)的新型分布式技術(shù)。區(qū)塊鏈分為私有鏈、聯(lián)盟鏈和公有鏈。從本質(zhì)上講,區(qū)塊鏈就是一個去中心化的分布式數(shù)據(jù)庫,任何用戶都可以參與到區(qū)塊鏈中。用戶周圍的路由器設(shè)備就是一個節(jié)點,每個節(jié)點都擁有一整套數(shù)據(jù)的備份,并且各個節(jié)點間使用相同的共識機制,通過競爭計算來生成或更新區(qū)塊鏈?;趨^(qū)塊鏈結(jié)果的特點,如果任何一個節(jié)點失敗,其他節(jié)點仍能進行正常的工作,且能分辨出是哪一個節(jié)點失敗。因此,區(qū)塊鏈技術(shù)解決了傳統(tǒng)平臺易受攻擊或篡改的缺陷。
區(qū)塊鏈的基礎(chǔ)架構(gòu)主要分為應(yīng)用層、合約層、激勵層、共識層、網(wǎng)絡(luò)層和數(shù)據(jù)層,具體的基礎(chǔ)架構(gòu)如圖1所示。
數(shù)據(jù)層主要封裝了區(qū)塊鏈的物理結(jié)構(gòu),該結(jié)構(gòu)中包含諸如哈希函數(shù)、時間戳等技術(shù),保證信息的不可篡改性;網(wǎng)絡(luò)層描述了組網(wǎng)方式、驗證機制和傳播機制,實現(xiàn)區(qū)塊鏈網(wǎng)絡(luò)節(jié)點間的信息交流;共識層選擇一種共識記住,用以驗證區(qū)塊的正確性;激勵層主要借助設(shè)計一些激勵策略,保證節(jié)點在區(qū)塊鏈中參與驗證工作,確保共識的穩(wěn)定;合約層中主要包含各種腳本、算法和智能合約,當其滿足觸發(fā)條件的時候,系統(tǒng)自動執(zhí)行合約中的命令;應(yīng)用層為封裝的有關(guān)區(qū)塊鏈應(yīng)用提供了接口,例如基于區(qū)塊鏈的跨境支付平臺OKLINK。
在本節(jié)中,我們主要從區(qū)塊結(jié)構(gòu)、非對稱加密算法、分布式結(jié)構(gòu)和智能合約4個部分進行闡述。
圖1 區(qū)塊鏈技術(shù)的基礎(chǔ)架構(gòu)
(1)區(qū)塊結(jié)構(gòu)
區(qū)塊鏈是由2個部分組成:區(qū)塊和鏈式,該結(jié)構(gòu)能有效防止惡意用戶對數(shù)據(jù)進行篡改,并能驗證新生成區(qū)塊的合法性。區(qū)塊鏈中的網(wǎng)絡(luò)節(jié)點就是區(qū)塊,每個區(qū)塊均由2個部分組成:區(qū)塊頭和區(qū)塊體。
(2)分布式結(jié)構(gòu)
區(qū)塊鏈的分布式結(jié)構(gòu)不再讓數(shù)據(jù)集中在服務(wù)器上,而是使數(shù)據(jù)能夠分散地存儲在不同的節(jié)點上。當節(jié)點想要寫入數(shù)據(jù)時,需半數(shù)以上其余節(jié)點通過共識機制確認該節(jié)點的身份,才能夠?qū)?shù)據(jù)寫入到節(jié)點中。分布式結(jié)構(gòu)能夠有效地增強系統(tǒng)的健壯性,即單一節(jié)點的失效不會影響整體系統(tǒng)。
(3)智能合約
在智能合約中封裝了預(yù)先設(shè)定的響應(yīng)條件、觸發(fā)條件等內(nèi)容。各個節(jié)點就所簽署的合約達成一致后將合約內(nèi)容以代碼的形式嵌入?yún)^(qū)塊鏈中。一旦有滿足合約中相應(yīng)條件或者觸發(fā)條件時,自動激活并且執(zhí)行智能合約。
由于區(qū)塊鏈技術(shù)具有去中心化、透明性、高效率和不具名性的特點,因此該技術(shù)可以廣泛應(yīng)用到數(shù)字貨幣、征信管理、金融市場、資產(chǎn)管理等相關(guān)場景。同時,區(qū)塊鏈和IoT均有著去中心化和分布式的特點,有學(xué)者提出將區(qū)塊鏈技術(shù)應(yīng)用到IoT平臺中,用以解決IoT中安全性差和低效率的問題。體域網(wǎng)作為IoT的一部分,可將區(qū)塊鏈技術(shù)與體域網(wǎng)結(jié)合展開研究。目前中國尚無該方向的研究,本文中我們對區(qū)塊鏈應(yīng)用到體域網(wǎng)中進行身份認證展開研究和分析。
智能醫(yī)療利用先進的體域網(wǎng)技術(shù),實現(xiàn)患者與醫(yī)務(wù)設(shè)備、醫(yī)療人員和醫(yī)療機構(gòu)之間的信息溝通,進而達到信息化的效果。智能醫(yī)療能夠良好地結(jié)合區(qū)塊鏈技術(shù),實現(xiàn)數(shù)據(jù)在體域網(wǎng)中安全和高效的傳輸。
本文中我們設(shè)計的適用于體域網(wǎng)平臺的區(qū)塊鏈身份認證系統(tǒng)框架,將傳感器、路由器和可信中心構(gòu)成一個區(qū)塊網(wǎng)絡(luò),如圖2所示。由于傳感器的資源受限,無法進行數(shù)據(jù)的計算工作,因此傳感器只參與數(shù)據(jù)的簡單加密和傳輸。然后把數(shù)據(jù)作為數(shù)據(jù)交易塊發(fā)送給路由器,路由器使用驗證機制對接受到的數(shù)據(jù)進行驗證。最后,將數(shù)據(jù)發(fā)送給可信中心,可信中心根據(jù)共識機制將數(shù)據(jù)記入帳本。
在使用可穿戴傳感設(shè)備前,每個用戶的手機需要與設(shè)備借助輕量級認證協(xié)議完成用戶與傳感器之間的身份認證。其次,再利用區(qū)塊鏈技術(shù)實現(xiàn)體域網(wǎng)中多方身份認證過程。在傳感器端生成數(shù)據(jù)后,使用證書中心生成的公鑰將數(shù)據(jù)加密,傳輸給路由器。這期間,為保證新加入的節(jié)點身份的正確性和真實性,賬本端啟用共識算法,用于驗證新節(jié)點身份。新節(jié)點需經(jīng)過智能合約的判斷:當有半數(shù)以上的節(jié)點通過審核時,系統(tǒng)自動認可該節(jié)點被記入帳本,并記錄到主鏈上;否則,本次請求視為無效,該節(jié)點不被放入主鏈中。本系統(tǒng)架構(gòu)能有效地防止惡意節(jié)點的加入,確保了節(jié)點的正確性和安全性。新節(jié)點加入?yún)^(qū)塊的智能合約流程如圖3所示。
本文所提的區(qū)塊鏈結(jié)構(gòu)如圖4所示,區(qū)塊頭包含了版本號、前區(qū)塊哈希值、時間戳、隨機數(shù)和該區(qū)塊哈希值。前一區(qū)塊哈希值又稱為父哈希,用于和前一個區(qū)塊進行連接,形成鏈式結(jié)構(gòu);生成每一個區(qū)塊的時間就是時間戳;最先找到并正確驗證隨機數(shù)的礦用擁有該區(qū)塊的記賬權(quán);Merkle根中記錄了所有交易時所用的信息。
區(qū)塊鏈中第一個區(qū)塊被稱為創(chuàng)始區(qū)塊,起始于創(chuàng)始區(qū)塊,每一個新生成的區(qū)塊嚴格按照時間戳的先后順序,通過區(qū)塊哈希地址連接到上一個區(qū)塊中,形成鏈式結(jié)構(gòu)。同時,前一個區(qū)塊的加密結(jié)果會被用于當前塊的加密,也就是說,任意1個區(qū)塊數(shù)據(jù)的改變將會影響2個區(qū)塊中的信息。所以,區(qū)塊鏈技術(shù)能夠有效地防止惡意敵手對數(shù)據(jù)的篡改,保證了數(shù)據(jù)的安全性。
圖2 系統(tǒng)框架圖
圖3 智能合約流程圖
圖4 區(qū)塊結(jié)構(gòu)
在本節(jié),我們提出了2個身份認證的階段:用戶和傳感器之間的群組輕量級認證階段,傳感器與證書中心、傳感器與路由器之間的基于區(qū)塊鏈技術(shù)的身份認證階段。
3.2.1 密鑰分配階段
區(qū)塊鏈技術(shù)使用的是非對稱加密算法。非對稱加密是由唯一一對私鑰和公鑰組成的加密方法。加密算法遵從公鑰Ks加密,使用其對應(yīng)的私鑰K′s進行解密。在區(qū)塊鏈中,區(qū)塊頭中的隨機數(shù)就是私鑰,使用不可逆的加密算法生成其對應(yīng)的公鑰,用公鑰的哈希算法生成該區(qū)塊的哈希地址。為了保證數(shù)據(jù)的隱私性和密鑰的安全性,證書中心的公鑰和私鑰會定時更新,并對應(yīng)生成其密鑰版本號。與此同時,將密鑰的版本號提供給傳感器和賬本模塊,以便于用戶對數(shù)據(jù)進行加解密。
3.2.2 群組輕量級認證階段
初始化時,在用戶使用智能醫(yī)療服務(wù)前,會分別在用戶手機端和其傳感器的芯片中添加用戶標記δi和傳感器標記si,且兩方均可以使用如公式(1)的哈希函數(shù):
在個人可穿戴傳感器中,存在資源相對較大的傳感器,在該傳感器中集成其余設(shè)備的信息,用公式(2)進行信息集成:
為驗證傳感器與用戶的身份,用戶首先向傳感器發(fā)送驗證請求。該傳感器計算如公式(3)—(5),其中Ti是時間戳:
將計算結(jié)果(U1,M1,V1)發(fā)送給用戶,用來驗證傳感器的身份。用戶在手機端的計算如公式(6)—(7):
公式(8)如果成立,則完成對傳感器身份的驗證;否則終止服務(wù):
其次,用戶端向傳感器端發(fā)送驗證傳感器的身份的請求。用戶端的計算公式為(9)—(10),其中R1是隨機數(shù)是時間戳:
將計算結(jié)果(M2,V2)發(fā)送給傳感器端,用來驗證用戶的身份。傳感器的計算如公式(11)—(12):
如果傳感器端的驗證公式(13)成立,則完成對用戶身份的驗證;否則終止服務(wù)。
3.2.3 區(qū)塊鏈身份認證階段
(1)傳感器——證書中心身份認證階段
在使用傳感器前,需要在系統(tǒng)中執(zhí)行注冊階段。首先,證書中心生成傳感器的公鑰K1,并發(fā)送給相應(yīng)的傳感器。其次,傳感器使用公鑰K1加密其身份信息idn和隨機數(shù)R,并將加密結(jié)果E1返回給證書中心。最后,證書中心收到加密結(jié)果E1后,用其私鑰K′1來解密,并對其中的信息進行審核。如果審核通過,則向傳感器發(fā)送其使用的公鑰和私鑰(Ks,K′s)。
在注冊階段完成后,傳感器和密鑰生成中心進行相互認證。首先,傳感器使用加密算法對公鑰Ks、隨機數(shù)Rs、時間戳T和請求服務(wù)內(nèi)容M進行加密,并將結(jié)果ES發(fā)送給證書中心。然后,證書中心用私鑰K′s對加密信息ES進行解密,驗證時間戳的準確性并判斷傳感器的真實性。最后,如果傳感器信息為真實可靠的,則再用公鑰Ks加密請求服務(wù)內(nèi)容M和隨機數(shù)Rs;否則,終止服務(wù)。
(2)傳感器——路由器身份認證階段
在路由器進行數(shù)據(jù)傳輸之前,需要在系統(tǒng)中完成注冊階段。首先,路由器將其和傳感器的公鑰(Kr,Ks)和隨機數(shù)R2發(fā)送給證書中心。然后,證書中心核實2個公鑰的身份信息,如果信息真實可靠,則生成路由器和傳感器間的會話密鑰KKA。最后,使用傳感器公鑰對會話密鑰和路由器公鑰進行加密ES,并返回給路由器。
在注冊階段完成后,傳感器和路由器進行認證。路由器用其私鑰對加密信息ES進行解密,對傳感器身份的真實性進行認證。然后,路由器用會話密鑰KKA對隨機數(shù)R2加密ES’,返回給傳感器。最后,傳感器用自己的私鑰對ES’解密,完成對路由器身份的認證。
使用區(qū)塊鏈技術(shù)完成身份認證,能夠有效地防止惡意用戶對數(shù)據(jù)的篡改。同時,將計算過程進行簡化,降低了計算開銷,提高了計算效率。
在本文提出的2個認證階段中,群組輕量級認證階段用預(yù)先設(shè)置隨機數(shù)的方式,將秘密值提前安全存儲在用戶移動端和傳感器端,并借助發(fā)起驗證時的時間戳,對用戶和傳感器群組進行身份認證。無論用戶還是傳感器群組都無法在自身硬件中篡改或偽造隨機數(shù),即使惡意用戶對時間戳進行成功偽造,也僅能完成單向認證過程。在該階段中,用戶和傳感器群組需要完成雙向認證才能證明其身份的真實性。
區(qū)塊鏈身份認證階段使用了區(qū)塊鏈的加密方法和結(jié)構(gòu)特征。一個區(qū)塊中既存有自身的哈希值,也存有前一個區(qū)塊的哈希值的特征,保證了區(qū)塊的不可篡改。一旦某一個區(qū)塊中的數(shù)據(jù)被篡改或者某一個區(qū)塊被惡意替換,則會立刻被區(qū)塊網(wǎng)絡(luò)所獲知。因此,本階段借助區(qū)塊的特征對身份進行認證是安全的。
本文主要針對IoT平臺中存在的數(shù)據(jù)安全性差和傳輸驗證效率低的問題展開了研究和分析,并提出使用區(qū)塊鏈技術(shù)來解決上述問題。體域網(wǎng)作為IoT的一部分,將其與區(qū)塊鏈技術(shù)相結(jié)合實現(xiàn)身份認證,是本文的研究重點。通過研究發(fā)現(xiàn):數(shù)據(jù)能夠有效地實現(xiàn)防惡意用戶或者服務(wù)器的篡改,保證數(shù)據(jù)的分散性,符合現(xiàn)實生活對數(shù)據(jù)存儲的需求;數(shù)據(jù)間的傳輸、加密、驗證過程不再需要過于冗雜的計算,提高了數(shù)據(jù)操作過程中的計算效率,節(jié)約了計算開銷。與此同時,如何保護在公共信道中的公鑰不被他人用于共謀攻擊等問題,仍需要日后解決。此外,隨著IoT平臺的進一步發(fā)展,區(qū)塊鏈技術(shù)實際應(yīng)用于智能醫(yī)療、智能家居等實際場景中將是未來發(fā)展方向。