焦 洋,沈蘇彬
(1.南京郵電大學 計算機學院,江蘇 南京 210046;2.南京郵電大學 通信與網絡技術國家工程研究中心,江蘇 南京 210046)
物聯網[1](Internet of Things,IoT)通過集成計算機通信網絡與物聯網領域的新型技術造就了一個萬物互聯的全新時代,它因其豐富的潛在應用場景成為了當下科技領域的主導課題之一。物聯網技術被應用于工業、農業、安保等基礎設施領域,有效地推動了這些領域的智能化發展,使得有限的資源可以更加合理地分配使用。預計到2023年全球將有500億臺物聯網裝置接入網絡[2],如此海量的物聯網裝置,雖然極大地豐富了人們的生活,但同時也帶來了巨大的安全隱患。物聯網裝置作為數據源的采集裝置[3],其真實性關系到整個網絡中數據的完整性,保證物聯網裝置合法接入網絡,對于整個物聯網的攻擊防御有著重要的意義。
傳統的物聯網裝置管理方案采用云中心的方式進行裝置的身份信息管理和驗證,可能帶來單點故障等問題。另外,由于物聯網裝置本身的計算和存儲能力有限,無法使用傳統的攻擊防御機制。區塊鏈技術在比特幣[4]白皮書中首次提出,隨著比特幣發展,其底層技術已經被應用于諸多領域。由于區塊鏈去中心化、防篡改、可溯源的特點,使其在安全領域發揮極大的作用,有效地解決了信息領域存在的信任問題。
區塊鏈為物聯網裝置身份信息的信任存儲提供了一種全新的方式,借助于這種去中心化的數據管理方式,將物聯網裝置身份信息存儲在區塊鏈上,并通過鏈上身份信息對裝置進行真實性驗證,可以有效地防止假冒的物聯網裝置的非法接入,從而防御假冒的物聯網裝置對網絡發起的虛假數據注入攻擊。但將區塊鏈技術應用于物聯網裝置身份標識的可信管理方案中也存在一定的技術問題,由于物聯網裝置的計算能力偏弱,而像比特幣系統中的區塊鏈技術對于節點設備的計算能力和存儲能力有較高的要求,物聯網裝置無法直接采用現有的區塊鏈應用方法進行標識的可信管理,可以考慮將物聯網網關設備加入到物聯網環境下的區塊鏈應用方案設計中,物聯網裝置可以借助于網關設備的計算資源,將區塊鏈應用中的部分工作交給網關設備完成,例如,節點之間達成共識的工作,以及交易信息的上鏈工作等。
文獻[5-7]分析了包括醫療器械、智能手表等設備可能受到的攻擊,并對于具體的攻擊可能造成的后果進行了分析。文獻[8]比較系統地分析了物聯網的安全問題,并從物理、信息、物理信息三個方面建立了一個三維的安全模型。針對物聯網裝置資源有限等因素造成的傳統安全防護手段無法正常使用的問題,文獻[9]試圖在嵌入式系統中建立基于Kernel內核層的輕量級可信執行環境來保護系統的安全。文獻[10-11]對于工業物聯網以及物聯網的安全防御現狀進行了分析,并通過傳輸加密、身份驗證等手段用于防御中間人攻擊和惡意軟件攻擊等。
隨著區塊鏈技術研究的逐漸深入,越來越多的研究者將區塊鏈技術引入到各個領域中,用于解決數據的信任管理問題[12]。文獻[13]提出了一種通用的區塊鏈應用方案,詳細地闡述了區塊鏈的技術特點,并基于區塊鏈的技術特點分析了其可能存在的應用領域,最后提出了一種區塊鏈應用的通用模型,該模型可以有效地指導區塊鏈的應用設計和實現。針對物聯網的安全防御薄弱的問題,將區塊鏈技術引入到物聯網中可以更好地解決物聯網中數據的隱私問題以及數據的可信管理問題[14]。
麻省理工的Conner[15]在互聯網應用中提出了基于區塊鏈的身份驗證系統,將用戶的身份證書存儲在區塊鏈上進行可信管理。相對于互聯網,物聯網存在著更多互不信任節點之間達成信任的需求,引入區塊鏈以解決物聯網的數據可信問題已經成為了很多區塊鏈研究者關注的研究方向。文獻[16]提出了一種基于邊緣計算和區塊鏈的檢測防御架構,利用邊緣節點上的疑似分布式拒絕服務攻擊(Distributed Denial Service,DDoS)異常檢測方法進行DDoS檢測并將檢測的結果存儲在區塊鏈上用以共享分析檢測結果,并以此防御利用物聯網裝置發起的分布式拒絕服務攻擊。當前的IoT架構主要采用集中式模式,所有IoT裝置幾乎都依托中心服務器進行數據的存儲和管理,一旦中心服務器的安全得不到保障,一些關鍵的數據就會存在被泄露的可能[17]。文獻[18]提出了一種基于區塊鏈技術的物聯網架構作為去信任網絡的基礎平臺,為物聯網提供信息安全的網絡服務。文獻[19]針對現有物聯網裝置的身份驗證所依賴的中心機構可能存在的單點故障問題,提出了一種基于區塊鏈的物聯網裝置身份驗證方法,并利用區塊鏈技術對關鍵數據進行可信存儲,避免了單點故障問題的發生。
在第1節中,對相關工作進行了梳理和研究,物聯網裝置作為物聯網數據的采集裝置,其在設計之初主要是用來采集相關的數據,并沒有考慮裝置聯網之后的安全問題,尤其是物聯網裝置的安全接入問題,這就導致物聯網容易遭受到假冒的物聯網裝置攻擊。惡意物聯網裝置將虛假數據注入到網絡中,破壞了網絡中數據的完整性,不僅浪費了網絡資源,而且會對網絡的安全性造成持續的威脅。
現有的研究工作中,基于中心服務器的身份驗證方案旨在通過身份驗證服務器為物聯網裝置提供身份信息的驗證功能,對網絡中的物聯網裝置身份信息進行管理和驗證。雖然該方案可以保證接入網絡的裝置的真實性,但是也會帶來單點故障和身份信息的信任管理問題。利用區塊鏈的去中心化、匿名信任管理等技術特點,無需將裝置身份信息傳送到中心服務器進行身份信息的驗證?;谌ブ行幕纳矸菡鎸嵭则炞C方案主要存在兩個問題,其一,物聯網裝置身份標識大多采用裝置的MAC地址,這類身份標識方法沒有將網絡實體標識與該裝置實體特征進行綁定,且裝置的MAC地址可以通過相關軟件接口重新設置,導致該類標識沒有驗證裝置實體真實性的能力。其二,對于物聯網裝置的接入只是被動驗證,并沒有對惡意物聯網裝置的非法接入進行主動拉黑操作。
針對上述研究中存在的問題,對物聯網裝置身份信息進行相關研究及設計,采用裝置生產廠商提供的裝置本身的硬件標識及裝置公鑰作為其主要身份信息,利用區塊鏈技術的去中心化、交易可信、防止篡改等特點,提出一種基于區塊鏈技術的攻擊防御方案。將區塊鏈融入到去中心化的物聯網裝置的身份信息的可信管理方案中,通過區塊鏈中的交易將裝置的身份信息進行鏈上存儲,并采用區塊鏈上的裝置身份信息對聯網裝置的身份信息進行真實性驗證,當裝置真實性驗證失敗后,假冒的物聯網裝置身份信息被記錄在區塊鏈上,防止假冒裝置非法接入網絡。
在本節中,根據第2節的問題分析進行了相關技術研究,主要包括采用區塊鏈技術防御攻擊類型的研究、防御方案中區塊鏈應用參與方設定的研究、裝置身份信息的研究。
基于區塊鏈技術的安全防護手段可以防止物聯網裝置身份被假冒而發起的攻擊。物聯網的安全問題一直是一個值得探討的技術問題,物聯網裝置低防護能力是由于兩個方面導致的,一是有限的計算、存儲資源,二是物聯網裝置的設計之初是為了感知環境的數據,并沒有考慮到其安全性設計,因此物聯網裝置的安全防御性較為薄弱。物聯網裝置在接入網絡時沒有任何的身份驗證,可能存在假冒物聯網裝置非法接入到網絡中,攻擊者進而利用惡意的物聯網裝置向網絡中注入虛假數據、篡改數據、中間人攻擊,這些攻擊均會妨礙網絡的基本安全要求,從而導致發生在物聯網中的攻擊事件比互聯網數量多。區塊鏈技術可以對網絡中的數據以去中心化的方式進行可信管理,區塊鏈的技術特點為實現在去中心化模式下的物聯網裝置的安全防護提供了技術基礎。
裝置身份信息可以唯一代表裝置實體本身。在傳統的身份信息驗證方案中,中心服務器負責該區域中的所有裝置的身份信息管理工作。裝置若要驗證某一身份信息的真實性,需要向身份信息服務器發起身份驗證請求,服務器根據請求響應驗證的結果給請求裝置。這種身份信息的管理方式的可靠性完全取決于中心服務器的可靠性,一旦出現服務器故障問題或者服務器被攻擊,就會給裝置之間的通信安全帶來巨大的威脅。身份信息的管理及驗證工作能否以去中心化的方式完成。區塊鏈的技術特點完全可以實現裝置身份信息的去中心化可信管理,在智能合約中編寫參與方身份信息的結構體定義和身份信息注冊、驗證邏輯,參與方可以根據共識協議規則選舉出合法的記賬節點,并由記賬節點負責身份信息的上鏈操作,區塊鏈上的身份信息能夠唯一標識一個裝置實體。
參與方的設定取決于攻擊防御的應用需求。物聯網裝置資源受限、安全功能較弱,并且物聯網裝置之間的通信是通過網關實現的,而網絡通信系統中的網關在計算資源和存儲資源方面較強于物聯網裝置。讓網關設備承擔較多的區塊鏈應用工作,比如交易信息的驗證及上鏈工作,維護著完整的區塊鏈賬本,而裝置僅僅維護著和自己身份信息相關的鏈上信息。因此,參與方的設計可以將資源相對有限的采集器和執行器裝置作為區塊鏈網絡的輕節點,物聯網裝置可以通過向網關節點發送查詢請求,以獲取通信裝置的身份信息,從而有效地避免惡意節點的非法接入,使得網絡能夠防御惡意裝置的虛假數據注入攻擊。
在本節中,根據第3節的研究內容完成了方案參與方的設計、區塊鏈的數據結構設計、方案功能的設計等。
基于區塊鏈的攻擊防御方案的總體架構設計如圖1所示。該方案基于現有的區塊鏈開發平臺進行設計,采用的兩條私有區塊鏈分別為裝置身份信息鏈和黑名單鏈,裝置身份信息的注冊交易和拉黑交易在上鏈之前都需要經過交易的真實性驗證,驗證成功后分別上鏈到對應的身份信息鏈和黑名單鏈上。在本攻擊防御方案中,主要設計了兩個功能模塊,分別為裝置注冊功能和裝置身份信息驗證功能,確保了網絡中物聯網裝置的真實性與合法性,防止惡意的物聯網裝置接入到網絡,提高了物聯網的安全性。裝置通過注冊功能將身份信息存儲上鏈,已上鏈的裝置身份信息可以被參與方查詢用于身份信息驗證,沒有通過身份驗證的裝置會被拉黑操作記錄在黑名單鏈上。

圖1 方案總體架構
任何區塊鏈應用中的參與方設定都取決于具體應用的需求。在本方案中,考慮由于大部分的物聯網裝置資源受限、功能較弱,且物聯網裝置之間的通信是通過網關實現的,因此該方案中借助于網關進行攻擊防御。將物聯網裝置和網絡中的網關作為P2P網絡的參與實體;網關對于裝置之間的通信起著重要的作用,在該防御方案中引入網關作為P2P網絡的應用實體。資源相對有限的物聯網裝置作為P2P網絡的輕節點,僅負責傳輸數據,不參與網絡節點之間的共識。網關作為全節點參與P2P網絡節點的共識達成工作,并且提供產生區塊、驗證區塊的功能。
方案中裝置身份信息使用鍵值對類型的數據結構類型保存裝置每一項的身份信息。為了保證裝置身份信息能夠表示唯一的裝置實體和合法的P2P網絡節點,在身份信息中增加Identity字段和Public Key字段用來確保身份信息的唯一性和合法性,其中Identity為物聯網裝置本身的標識,使用裝置內部的識別碼作為身份信息中的Identity值,裝置內部的識別碼由生產裝置的廠商提供,可以用來標識唯一的一個裝置;Public Key作為區塊鏈網節點的身份信息,可以表示裝置為P2P網絡中的合法節點。為了保證裝置的身份信息可以被全網節點查詢且不可被篡改,將身份信息上鏈并存儲在P2P網絡中的公共賬本,P2P網絡中的節點可以查詢裝置的身份信息并且不可篡改賬本中的身份信息。物聯網裝置的身份信息有四個特征:裝置的身份信息是全網唯一的;身份信息可以表示裝置實體本身;身份信息可以被全網的裝置查詢;身份信息的存儲不可被篡改。
方案中區塊數據結構的設計借鑒了比特幣應用的區塊設計,但是考慮到POW共識中的nonce的計算會浪費較大的計算資源,于是在區塊結構中舍棄了隨機數nonce字段。其中本方案的“可信操作[13]”是裝置身份信息的上鏈存儲。在區塊鏈的數據結構設計中,每一個區塊可以分為區塊頭和區塊體。其中區塊頭中包括前一區塊的哈希值數據,用于鏈接到前一區塊,時間戳用于記錄區塊上鏈的時間,區塊體中Merkle樹的根節點。區塊體中存儲著已通過驗證的交易數據,具體是以Merkle樹的形式進行存儲的,最終的Merkle樹根值存儲在區塊頭中,區塊鏈數據結構如圖2所示。
4.5.1 裝置身份信息注冊功能
裝置注冊功能為網絡中的物聯網裝置提供身份信息的注冊上鏈功能,能夠使裝置在去中心化的環境下完成身份信息的安全注冊。在注冊功能模塊中,根據參與方是否已完成身份信息注冊及其在P2P網絡中角色的不同,將申請身份信息注冊的裝置稱為申請節點(Application Node,AN),將已完成身份信息注冊的全節點(網關實體)稱為P2P網絡中的原始節點(Original Node,ON)。身份信息注冊交易流程主要包括申請節點發送注冊請求過程和原始節點驗證注冊請求的過程。申請節點發起注冊交易請求,原始節點收到注冊交易請求后,驗證注冊交易的真實性并將經過驗證的注冊交易信息作為申請節點的身份信息上鏈記錄。

圖2 區塊鏈數據結構
(1)申請節點發布注冊交易請求。
在加入P2P網絡后,申請節點主動發起注冊請求,將其身份信息安全記錄上鏈,同時將區塊鏈上的其他裝置的身份信息同步到本地,以便裝置的身份信息驗證功能查驗。注冊交易中包含了裝置的身份信息和產生交易的相關信息,申請節點將交易信息以廣播的形式發送給網絡中的原始節點驗證,申請節點發布注冊交易請求的時序過程如圖3所示。

圖3 注冊交易請求時序
第一步,申請節點AN通過密碼學算法計算得出自身的私鑰SKA和公鑰PKA,將公鑰作為身份信息之一放在交易中,并將私鑰保存在本地用于數據的加密通信;
第二步,申請節點AN通過密鑰模塊生成交易的數字簽名和交易Hash存放在交易中,用于驗證交易的真實性和完整性;
第三步,申請節點向P2P網絡發送注冊交易請求,注冊交易信息Info中包含申請節點的身份信息。
(2)原始節點驗證注冊交易請求。
原始節點通過區塊鏈中的非對稱加密技術和哈希算法對交易進行真實性的驗證。P2P網絡中的全節點在收到注冊交易請求信息后,會對申請節點發起的注冊交易進行真實性驗證,交易的真實性驗證完成后,注冊節點的身份信息將會被上鏈存儲到區塊鏈公共賬本中。原始節點驗證注冊交易請求的時序如圖4所示。

圖4 注冊交易驗證時序
首先,原始節點收到申請節點發送的注冊交易請求后,根據共識協議在原始節點中選出記賬節點;其次,由記賬節點負責進行身份信息的上鏈,記賬節點通過密鑰模塊對收到的注冊交易進行驗證,驗證通過后將裝置的身份信息進行上鏈存儲;最后,記賬節點將交易驗證通過的結果通過廣播的方式告知網絡中的其他原始節點和申請節點。
原始節點收到的消息M是由申請節點A用其私鑰SKA將注冊交易信息Info簽名所得到的,如公式(1)所示。記賬節點B接收到消息M后,使用A節點的公鑰PKA對M進行解密操作,如公式(2)所示,若能解密成功得到交易信息Info,則驗證了交易信息Info的真實性。
M=signSKA(Info)
(1)
Info=DecryptPKA(M)
(2)
驗證交易信息的時效性。交易信息Info中包含了交易發布的時間戳記為T1,T1表示為申請節點發起注冊交易申請的時間,原始節點解密出Info后,獲取當前的系統時間記為T2,判斷T2-T1 驗證交易信息的完整性。區塊鏈中的哈希算法可用于驗證交易的完整性,交易信息Info中包含了交易的完整哈希值,驗證節點也可通過哈希算法計算出其收到的交易Info的哈希值,比較Info信息中的哈希值是否等于通過計算所得到的哈希值。若相等,則驗證了交易信息的完整性;若不相等,則表明交易信息完整性驗證失敗。 (3)交易驗證過程的正確性邏輯證明。 區塊鏈應用中交易的驗證是通過非對稱加密技術完成的,其驗證邏輯的正確性值得推敲。謂詞邏輯是一種重要的知識的形式化表示方法,可以用來證明定理、結論的正確性。謂詞邏輯推理可以保證其演繹推理結果的正確性,可以較為準確地表示推理結論。 謂詞邏輯的推理理論中主要包括以下基本規則,前提引入規則(Prerequisite Introduction Rule)又稱P規則,直接利用推理中給出的前提。推理規則又稱T規則,由一個或多個前提通過等價、蘊含等得到其他命題公式。存在量詞指定規則(Exstential Specify Rule)又稱ES規則,其含義為如果個體域存在有性質A的個體,則個體域中必有某個個體具有性質A。全稱量詞指定規則(Universal Specify Rule)又稱US規則,其含義為如果個體域的所有個體都具有性質A,則個體域中的任一個體都具有性質A。 謂詞邏輯證明中的符號定義如下:K(x,y)表示x,y分別為一對對應的公鑰和私鑰;S(y,m)表示使用私鑰y對信息m簽名;V(x,m)表示使用公鑰x對信息m進行驗證;Q(x)表示信息驗證成功;I(x)表示發送信息的節點身份確認。已知前提如下:?x?y(K(x,y)?V(x,S(y,m)))為私鑰簽名的信息只有公鑰能夠驗證;?mT(m)為信息m在網絡中無差錯傳輸;?x(Q(x)?I(x))為信息驗證成功則節點身份確認。 證明過程如下: (1) ?x?y(K(x,y)?V(x,S(y,m))) P原則 (2)K(p,s)?V(p,S(s,m)) ES原則(1) (3)V(p,S(s,m)) P原則 (4)K(p,s) T原則(2)(3) (5) ?x(Q(x)?I(x)) P原則 (6)Q(n)?I(n) US原則(5) (7) ?mT(m) P原則 (8)Q(n) P原則 (9)I(n) T原則(6)(7)(8) (10)K(p,s)∧Q(n) T原則(4)(8) 通過上述謂詞邏輯的推理得出,在已知前提的條件下可以推導出以下結論:交易的發布者擁有該交易數字簽名所對應的公鑰且身份確定,交易驗證過程是正確的。 4.5.2 裝置身份信息驗證功能 為了驗證通信裝置的真實性,方案中設計了裝置身份信息的驗證功能。身份信息驗證功能可以保證網絡裝置之間的安全通信,避免惡意裝置接入到網絡中,可以防御惡意裝置對網絡發起的虛假數據注入等類型的攻擊。物聯網裝置完成了身份信息注冊后,該裝置的身份信息就會存儲在P2P網絡中的區塊鏈中,網絡中的任一裝置均可通過鏈上的身份信息對發起通信請求的裝置進行身份的真實性驗證。 當節點B在接收到A節點發來的消息M后,對節點A進行身份驗證操作,根據消息M中所包含的節點A的公鑰及裝置標識對裝置身份信息進行驗證,身份信息的驗證流程如圖5所示。 圖5 裝置身份信息驗證流程 首先,在黑名單鏈中查找裝置A的標識IDA,若找到,則驗證失敗,直接結束;否則在本地的身份信息鏈上查找IDA,如果找到裝置A的身份信息IDA,則通過對裝置A的身份驗證。若在本地沒找到,則在全節點中查找,若在全節點中查找到IDA,則通過對裝置A的身份驗證;若在全節點中仍然沒有查找到,則表示裝置A沒有在區塊鏈系統中注冊,拒絕裝置A的通信請求,并調用身份信息加入黑名單操作將A裝置身份信息加入到黑名單鏈上。 在本節中對方案進行了仿真實現與測試。在Ubantu系統中搭建了以太坊平臺及Truffle開發框架,并安裝了Truffle框架的開發套件Ganache圖形化工具,用于在本地創建私有的測試區塊鏈。采用Remix在線編輯器編寫智能合約,智能合約成功編譯和部署后,通過Truffle框架啟動整個實驗項目,在瀏覽器前端頁面中進行相關的測試工作。 方案仿真實驗的設計基于以太坊平臺,主要工作包括搭建實驗環境和編寫智能合約等,通過參與方發布的智能合約進行相關功能調用。智能合約中規定了裝置身份信息注冊和身份信息驗證的執行邏輯,并且為已定義的參與方與區塊鏈進行交互提供了功能調用接口。參與方在區塊鏈上部署智能合約,部署完成的智能合約代碼會作為一個合約賬戶存儲在區塊鏈的特定地址,并且參與方的合法賬戶能夠通過智能合約賬戶開放的接口調用智能合約,在各個節點驗證交易簽名后,按照交易的類型執行智能合約,對參與方的身份和交易進行驗證,并根據驗證的結果對鏈上身份信息進行維護。 為了驗證所提出的基于區塊鏈的攻擊防御方案的可行性,需要對方案進行相關功能的測試。測試實驗需要證明合法的參與方可以根據其需求通過接口輸入自身的身份信息、驗證裝置的身份信息的功能。并且還要在裝置注冊時,能夠以去中心化的方式進行身份信息的發布和驗證,同時可以在無第三方監管的情況下實現身份信息的驗證,從而完成對于身份信息的可信管理。方案設計的業務邏輯主要通過編寫智能合約代碼實現,首先在智能合約中分別定義了Device和Gateway兩類結構體,所定義的兩類結構體分別表示不同的參與方。同時,為了實現設計的注冊功能和身份驗證功能,智能合約中也分別提供了register和verify兩個功能函數供參與方調用。 在智能合約部署到區塊鏈上時,以太坊客戶端首先會調用合約編譯器對合約進行編譯,將合約源碼編譯成EVM字節碼,然后通過RPC接口將編譯之后的字節碼文件發送到以太坊網絡,網絡中的參與節點對合約部署交易進行驗證,驗證通過后合約字節碼會被寫入到區塊鏈賬本中。當智能合約部署部署完成后,可以在終端中查看部署完成的提示,如圖6所示。 圖6 合約部署完成 5.2.1 裝置身份信息注冊功能測試 注冊功能為網絡中的裝置提供身份信息的注冊,智能合約中的身份信息注冊函數為該功能的核心實現方法。合法的參與方在對應的裝置序列號輸入框中輸入裝置的產品序列號,并在裝置類型號中輸入對應的類型號用以區分不同的參與方。點擊注冊按鈕,瀏覽器會彈出注冊交易的確認框,點擊確定后,記賬節點完成交易的驗證后,會將驗證通過的結果廣播給網絡中的合法節點,交易中的身份信息成功上鏈。注冊詳情顯示出交易的詳細信息,裝置身份信息注冊成功,成功上鏈的結果如圖7所示。而當身份信息非法上鏈時,頁面中將會出現注冊失敗的提示信息。 圖7 裝置身份信息注冊測試 5.2.2 裝置身份信息驗證功能測試 裝置身份信息的驗證功能旨在防止惡意裝置與合法裝置進行通信,同時能夠將惡意的物聯網裝置加入到黑名單中,起到將合法裝置與惡意裝置隔離的作用。身份信息驗證功能主要是通過身份信息查詢函數實現的。在測試時,查詢交易信息輸入框中輸入待查詢的交易Hash值,點擊查詢按鈕,便能查詢出交易所在的區塊等相關信息,此時表示該裝置通過了身份驗證且為合法裝置,測試結果如圖8所示。若裝置的身份信息沒有在區塊鏈上查詢到,頁面中將出現身份驗證失敗提示信息。 圖8 裝置身份信息查詢驗證測試 仿真實驗驗證了該攻擊防御方案的可行性,可以將裝置的身份信息存儲在區塊鏈上,對裝置的身份信息進行可信的存儲,保證了裝置身份信息的唯一性和合法性。對于惡意物聯網裝置的攻擊能夠起到一定的防御作用。 針對物聯網可能遭受惡意物聯網裝置攻擊的安全問題,以及現有的中心服務器防御方案可能存在的單節點故障和信任問題,提出了一種基于區塊鏈的去中心化攻擊防御方案。并對方案中區塊數據結構、區塊鏈結構進行了設計,詳細地闡明了裝置注冊交易的功能及交易的驗證過程,并通過查驗裝置身份信息功能將惡意物聯網裝置加入黑名單中,確保了網絡中所有裝置的合法性,可以有效防御惡意裝置發起的攻擊。并且在以太坊平臺上搭建了私有鏈進行了仿真實驗,最終驗證了所提防御方案的可行性。在未來的研究計劃中,將進一步對可以應用與物聯網領域的共識算法進行深入研究,選擇一種適用于物聯網領域的高效共識算法,以優化該文所設計的攻擊防御方案。
5 仿真實現與測試
5.1 仿真實驗方案的設計
5.2 方案實現及測試



6 結束語