999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于共有區塊鏈的物聯網分布式身份驗證方法

2021-07-21 05:05:34溫圣軍馬宇飛
計算機工程與設計 2021年7期
關鍵詞:關聯設備

袁 剛,溫圣軍,唐 琦,馬宇飛,豐 蘇,3+

(1.北京郵電大學 軟件學院,北京 100876;2.國家市場監督管理總局 信息中心,北京 100820;3.火箭軍工程大學 理學院,陜西 西安 710025)

0 引 言

區塊鏈技術具有良好的發揮前景,有望滿足物聯網(internet of things,IoT)中的安全要求[1-4]。區塊鏈的功能是為了解決加密貨幣的雙重支付問題而開發[5],其驗證機制有多種,如工作量證明(proof of work,PoW)、權益證明(proof of stake,PoS)和委托權益證明(delegated proof of stake,DPoS)等[6]。

目前很多研究關注區塊鏈與IoT系統的集成,但分析區塊鏈在滿足IoT安全要求中的作用較少。如Seyoung等[7]提出了將區塊鏈集成到IoT的方法,但該研究未給出用例詳情,且考慮了對象的完全匿名性,即允許任何用戶使用系統。Thomas等[8]提出了鏈錨方法,將IoT設備集成到云系統中。但其目標是參與設備的完全匿名性,不適用于需要身份驗證的大量IoT設備的情況。Ge等[9]提出了一種基于區塊鏈技術的輕量級物聯網信息共享安全框架。以分布式的方式存儲IoT設備活動,但該研究需要考慮存儲需求。借助區塊鏈與風險理論,Ren等[10]提出一種適用于分布式物聯網的信任管理方法。Ouaddah等[11]提出了IoT中基于區塊鏈的訪問控制框架,其工作方式與基于角色的訪問控制[12](role-based access control,RBAC)相同,但其僅考慮了基于策略的兼容系統和用例,不適用于大規模IoT環境。

為此,本文提出了高效的去中心化身份驗證機制。該機制在共有區塊鏈以太坊上實施,旨在建立可供設備安全通信的安全虛擬區。實驗驗證提出的方法能夠滿足IoT的安全要求,對組成IoT系統的不同類型設備的影響及其實施成本方面具有優勢。

1 安全要求和威脅模型

1.1 安全要求

IoT身份驗證方案必須滿足各種安全要求,以確保系統的可持續性和復原性。

完整性:保持完整性是每個方案必須滿足的關鍵要求。本文研究背景下,完整性分為兩部分:①消息(交易/通信)完整性:網絡傳輸過程中,交換的消息一定不能被變更或修改。②數據完整性:維持數據在整個生命周期中的一致性和可信度。由此,僅授權用戶才可修改存儲的數據。

可用性:必須保證合法用戶可按需訪問資源。由此,系統必須能夠抵御拒絕服務(denial of service,DoS)攻擊,特別是針對身份驗證服務的DoS攻擊。

可擴展性:本文研究中,可擴展性即確保系統規模不會影響系統性能。

不可否認性:確保實體不能否認已執行的給定操作。

可識別性:這是大部分IoT場景中的主要要求。可識別性表示與匿名性相反的意義。舉例來說,在智能停車場景中,當一個車位的傳感器發出通知時,管理系統必須明確知曉正在通信的是哪個傳感器,以準確更新停車位的狀態。

雙向身份驗證:身份驗證是證明身份的機制。雙向身份驗證表示通信雙方必須對彼此進行認證。

1.2 威脅模型

本節將介紹威脅模型。

(1)網絡模型:身份驗證方案旨在允許多個節點在不可信網絡上,以可信的方式進行通信。本文考慮的網絡中,包含在集中式或分布式架構下提供或使用不同IoT服務的物品集合。每個物品均與大量其它物品進行通信。通過不可靠的有損通信網絡(例如互聯網)來交換消息。假定所有參與者均不可信。事實上,網絡中智能物品數量越多,存在惡意物品的風險也越高。此外,現有設備為異構類型,且不屬于相同用例。網絡功能僅為轉發數據包,不提供安全保證(例如完整性或身份驗證)。因此,惡意用戶可讀取、修改、丟棄或注入網絡消息。

(2)攻擊者模型:本文假定攻擊者或惡意用戶對所用網絡具有完全控制,即攻擊可忽略延遲,有選擇性地對消息進行任意的嗅探、丟棄、重放、重排序、注入、延遲和修改。但設備可接收未修改的消息。攻擊者的計算力和存儲量不受實施設備的限制。但未考慮對設備的物理攻擊,并假定對象免受物理攻擊,因為可通過使信息僅對設備自身可讀來防御物理攻擊[13]。

(3)攻擊:攻擊者可有多個攻擊目標,例如發送錯誤信息以誤導系統該決策或拒絕系統服務。攻擊者可實施各種攻擊,包括女巫攻擊、嗅探攻擊、消息替換攻擊、拒絕服務攻擊、消息重放攻擊等。本文僅分析與身份驗證服務相關的攻擊,主要安全要求和攻擊見表1。

表1 主要評價標準

2 提出的方法

本文方法旨在IoT環境中建立安全虛擬區。每個設備僅與同區設備通信,并將其它設備視為惡意設備。安全虛擬區中的成員均可彼此信任。虛擬區中的設備是受保護的,非成員設備不可訪問虛擬區。提出的系統基于智能合約的共有區塊鏈而實現。本文使用共有而非私有區塊鏈,從而使系統向任何用戶開放。另外,系統中的通信被視為交易,必須通過區塊鏈的驗證。舉例來說,若設備A向設備B發送一條消息,那么:①A將消息發送至區塊鏈;②若區塊鏈完成對A的身份驗證,則確認該交易的有效性;③B可以讀取該消息。

2.1 初始化階段

所提方法可應用于大量IoT用例,且沒有特殊的硬件要求。但需要進行初始化。該階段中,將一個設備設計為虛擬區主節點(該設備擁有私鑰/公鑰對),可被視為類似發證機構。任何給定設備均可成為主節點。此外,系統中的每個對象稱之為從屬節點。每個從屬節點生成橢圓曲線(elliptic curve, EC)私鑰/公鑰對。其后,向每個從屬節點均發放提供票據,票據為64字節的輕量級證書,其中包含:①groupID(簡稱grpID),代表該對象所屬的虛擬區;②objectID(簡稱objID),表示該從屬節點在虛擬區中的身份標識;③pubAddr,從屬節點的公共地址,代表該從屬節點的公鑰的Keccak[14](SHA-3)散列值的前20個字節;④簽名結構,使用虛擬區主節點的私鑰生成的橢圓曲線數字簽名算法(elliptic curve digital signature algorithm,ECDSA)簽名。與傳統簽名算法例如RSA相比,ECDSA在密鑰大小和簽名時間等方面更具優勢,適用于IoT背景。

2.2 系統功能

所提方法以及系統生命周期的所有階段如圖1所示。算法1給出了不同參數和功能。在網絡中,連接物品可屬于各種領域(醫療、工業、環境等)。

圖1 所提方法以及系統生命周期

算法1: 參數和函數定義

參數:

bc:Blockchain

obj:Object

sender:Object

receiver:Object

constfailed:State

定義 主節點:0

定義 從屬節點:1

函數: objIDExists(IntegerobjID, Blockchainb)

// 檢查對象標識符在區塊鏈中是否已被使用

函數: grpIDExists(IntegergrpID, Blockchainb)

// 檢查組標識符在區塊鏈中是否已被使用

函數: AddrExists(IntegerobjAddr, Blockchainb)

// 檢查對象地址在區塊鏈中是否已被使用

函數: Error()

// 返回出錯消息

階段A表示初始化階段,其中,主節點選擇組標識(grpID)。此外,每個對象均被提供一張由主節點簽名的票據。一旦準備好建組,階段B包含在區塊鏈層面上創建虛擬區。主節點發送包含主節點標識符及其希望創建的組的組標識符的交易。區塊鏈檢查grpID和主節點的objID的唯一性。若交易有效,則創建虛擬區(例如zone F9,zone 0A等)。由于區塊鏈為共有,因此任何用戶均可創建虛擬區。

在圖1的階段C中,從屬節點發送交易,以便與各自虛擬區相關聯。在區塊鏈層面上,智能合約驗證從屬節點身份標識(objID)的唯一性,其后利用虛擬區主節點的公鑰,檢查從屬節點的票據的有效性。若未滿足所有條件,則該對象不可與虛擬區相關聯。關聯階段如算法2所述。一旦從屬節點的第一筆交易(關聯請求)成功,則從屬節點將不再需要利用票據來認證自身(即無需在交換消息中發送票據)。

算法2: 智能合約虛擬區的關聯規則

begin

if(objIDExists (obj.id,bc)=true)then

returnError()

ifAddrIdExists(obj.grpID,bc)then

returnError()

if(obj.type=master)then//對象類型若為主節點

ifgrpIDExists(obj.grpID,bc)=truethen

returnError ()

elseif(obj.type=follower)then

//對象類型若為從屬節點

ifgrpIDExists(obj.grpID,bc)=falsethen

ReturnError()

if(bc.Ticketverif (obj.ticket)=failed)then

//若票據未通過檢查

ReturnError()

else

ReturnError() //成功完成關聯

安全虛擬區的通信如圖2所示,其中,F表示從屬節點設備,其已得到主節點M簽名的一張票據。該票據包含grpID=XX、objID=YY以及公鑰PubKey_F。圖2中的數字含義如下:

圖2 安全虛擬區內的通信

(1)第一個客戶端交易代表關聯請求。發送的消息以從屬節點的私鑰簽名,并包含從屬節點的票據;

(2)當區塊鏈接收到交易時,利用從屬節點的公鑰對簽名進行檢查,以驗證完整性。其后,利用主節點的公鑰檢查從屬節點的票據;

(3)若票據有效,則區塊鏈保存grpID、objID和公鑰的一個關聯,即存儲(XX,YY,PubKey_F);

(4)第4個步驟描述的案例中,F發送關聯請求之外的另一個交易(n)。交易n中包含:①交換的數據;②XX;③YY;④使用從屬節點的私鑰,得到的之前字段的串聯的ECDSA簽名;

(5)區塊鏈接收到交易時,利用從屬節點的公鑰進行簽名檢查,以驗證交易完整性;

(6)若簽名有效,則區塊鏈檢查用于交易驗證的公鑰,是否被保存并關聯到交易內的grpID、objID;

(7)若關聯被保存且有效,那么;

(8)設備成功通過身份驗證。

圖1中的階段D給出了區塊鏈如何進行對象和交易的訪問控制,舉例來說,①主節點5E可創建組39,但主節點BB不可創建組0A,因為該組已經存在。②屬于組OA的1B和DE可交換消息,但屬于組F9的對象50與屬于組OA的對象6F的交換消息將被拒絕。

最后,圖1中的階段E描述了系統全局視圖。已認證設備(持有票據)可隨時加入到其所屬的組中。理論上,由于采用了完全去中心化架構,每組的設備數量是不受限制的。沒有票據或持有虛假票據的對象將無法與安全虛擬區相關聯,因此,也無法與虛擬區內的節點相互通信。利用交易的簽名,確保對象的身份驗證和交換數據的完整性。最后,虛擬區是完全分離的,不同虛擬區內的節點不能相互發送或接收消息。

3 實驗與分析

3.1 評價框架

為評價所提方法的時間和能耗,使用了3個終端節點:兩臺配置相同的筆記本電腦聯想Thinkpad和一個微型電腦RPi。其中一臺筆記本作為主節點,其它兩個終端節點作為從屬節點。使用C++語言開發終端節點的應用。

對于終端節點和區塊鏈的交互,創建了C++結構,對發送至或來自以太坊的數據進行編碼或解碼,使用JSON遠程過程調用(remote procedure call,RPC)實現這些交互(JSON為標準文本數據格式)。此外,還使用以太坊的測試和開發工具TestRPC,模擬與區塊鏈的交互。

由于通信傳輸時間取決于所使用的網絡技術和協議,本文主要關注所提方法對設備的影響,所有結果均在設備層面上測量。實驗給出100次實驗的結果,測量了:

(1)準備一個關聯請求所需的時間;

(2)準備一條數據消息所需的時間;

(3)準備一個關聯請求的CPU功耗;

(4)準備一條數據消息的CPU功耗;

(5)網絡接口控制器(network interface controller,NIC)發送一個關聯(發送請求+需求響應)的功耗;

(6)NIC發送一條數據消息(發送消息+接收回執)的功耗。

實際上,主節點僅需一次交易以創建虛擬區。在建立虛擬區后,簽發票據之外,主節點也可作為從屬節點進行消息發送和接收。

3.2 評價結果

3.2.1 安全要求評價

本章將驗證所提方法能夠滿足不同的安全要求,并可抵御各種攻擊。

(1)雙向身份驗證和消息完整性:系統的每個對象在第一次交易中使用票據(等同于證書)。票據僅在初始化階段發放至合法對象。所有交換的消息均利用ECDSA算法,使用與票據相關的私鑰進行簽名。由此,簽名確保了設備的身份驗證以及消息的完整性。

(2)可識別性:每個對象均擁有一個身份標識(objID),該標識與組標識(grpID)及其公共地址相關聯。票據中主節點的簽名確保該身份標識是可信的。該對象的每條消息均用與身份標識相關的私鑰進行簽名。由此,系統可輕易識別對象。

(3)不可否認性:由于使用僅為對象所知的私鑰對消息進行簽名,因此對象無法否認其消息簽名。

(4)可擴展性:本文系統基于以點對點網絡為基礎的共有區塊鏈。而點對點網絡是滿足大規模可擴展性的最優解決方案之一。

(5)防御女巫攻擊:本文設計中,在給定時間,每個對象僅可擁有一個身份表示,且每個身份標識僅可有一個密鑰對。每個通信消息必須經過與該身份標識相關聯的私鑰的簽名。此外,所有身份表示均必須通過系統批準。因此,攻擊者無法使用偽造的身份標識。

(6)防御仿冒攻擊:與身份驗證或女巫攻擊防護同理,攻擊者無法仿冒另一個對象的身份標識,因為這需要該對象的私鑰。

(7)消息替換防護:由于所有消息均經過簽名,若攻擊者更改或替換了一條消息,其必須使用有效私鑰對消息簽名。然而在初始化階段僅對可信對象發放票據(有效密鑰對)。

(8)消息重放攻擊防御:所有消息均被視為交易。每個交易均包含時間戳,且需要經過共識階段以成為有效交易。因此,攻擊者無法重放消息,因為會被共識機制所拒絕。相關研究[15]也解釋了區塊鏈抵御重放攻擊的方式。

(9)DoS/DDoS攻擊:區塊鏈的完全去中心化架構使其能夠很好地抵御DoS/DDoS攻擊。事實上,服務被復制并分布在不同的網絡節點上。即使攻擊者屏蔽了一個節點,也無法屏蔽所有其它節點。此外,交易成本較高,攻擊者不會為此發送大量交易。

3.2.2 時間消耗

表2給出了在100次實驗中計算出的關聯請求和數據消息準備時間的平均值和標準偏差,其中,Avg表示均值,SD表示標準偏差。聯想筆記本和RPi完成關聯請求的平均用時分別為1.55 ms和28.02 ms。兩者的標準偏差值都很低,驗證計算穩定性較高。數據消息發送的平均耗時較低,對筆記本和RPi分別僅為0.04 ms和0.81 ms。這是因為與數據消息發送操作相比,關聯請求的復雜度較高。

表2 實驗結果統計值

3.2.3 能量消耗

表2的第6列~第9列給出了實現關聯請求和發送數據消息的CPU能耗的均值和標準偏差。RPi實現關聯請求的能耗為64.15 mW,筆記本則僅為9.74 mW。對于消息發送,RPi和筆記本的平均能耗分別為16.29 mW和3.35 mW。同樣,能耗差異源自于關聯請求和消息發送的復雜度不同。

表2的第10列~第13列給出了網絡接口控制器(NIC)實現關聯請求和數據消息發送的能耗均值和標準偏差。RPi需要89.24 mW來執行一次關聯請求,筆記本則需要16.14 mW。對于消息發送,RPi和筆記本的能耗均值分別為31.22 mW和12.54 mW。

圖3給出了消息發送對測試設備的CPU和動態隨機存取存儲器(dynamic random access memory,DRAM)能耗的影響。圖3展示了系統功能的3個階段:①空閑階段;②執行100條消息發送的循環,每條消息間隔100 ms;③返回空閑階段。使用RAP測量工具得到測量值。從圖中可發現,執行循環對筆記本和RPi的影響均可忽略不計。

圖3 消息處理對筆記本電腦和RPi的影響

3.2.4 實施成本

在智能住宅中考慮:①智能洗衣機每周發送一條請求(將洗衣粉加入購物清單),即每周需要一筆交易。該交易涉及一次調用操作以檢索信息。②智能冰箱每周下兩次訂單。③購物清單應用每周下兩次訂單。④智能灑水系統每周使用兩次。⑤智能吸塵器每周使用3次。由此,每月共觸發40筆交易和40次調用。

在智能工廠中考慮:每天工作12小時,擁有30只機械臂(分兩種類型)和10輛無人駕駛汽車。第一個機械臂完成作業后,發送消息以觸發第二個機械臂。第二個機械臂完成后,向無人駕駛車輛發送消息,后者運輸成品并向管理應用發送一條通知。每個產品生產時長為30分鐘(每臺機器15分鐘)。因此,工廠的每臺機器每隔15分鐘發送一筆交易,并觸發1次調用。由此,每天共計1920筆交易和1920次調用(每月45 360次交易/調用)。

在我國滬陜高速某段高速路的電子警察:在2018年通過雷達檢測到809 087次超速違章,使用該數據,考慮每月超速違章為67 423.91次。

安全虛擬區的成本計算器如算法3所示,其中,ETH是以太坊代幣,gas是以太坊中執行一次交易或合約的內部費用。該評價中使用了以太坊經典加密貨幣(ETC),也可使用其它加密貨幣。表3根據每月交易數量,給出不同場景的財務估計成本,使用算法3得到表3中的數值。

表3 不同IoT用例下的估計財務成本/月

算法3: 安全虛擬區的成本計算器

const_trans_cost= 500 //gas

const_call_cost= 20 // gas

const_gas_in_eth= 0.00001 // ETH

const_eth_in_yuan= 1270 // ETH與人民幣匯率

成本函數 fun(doubletrans_number,doublecall_number)

begin

return((trans_number×_trans_cost)+(call_number×_call_cost))×_gas_in_eth×_eth_in_yuan;

3.2.5 與其它方法的比較說明

Seyoung等[7]和Thomas等[8]提出了基于數據包傳輸層安全性(DTLS)算法[16]的身份驗證方案。在DTLS中,關聯階段(DTLS握手)需要至少5條消息。此外,還可添加其它消息,例如更改密碼套件消息。最后,關聯階段可包含8條消息。Ge等[9]提出了基于區塊鏈技術的輕量級物聯網信息共享安全框架。其中關聯階段需要5條消息。此外,還需要使用網關,這會造成消息數量增加。Nir[15]提出了用于IoT的身份驗證方案,其中關聯階段需要4條消息。

輸入/輸出操作會產生最高成本(如表2實驗結果所示)。因此,消息數量越少,則系統消耗越低,特別對于受限設備更是如此。與其它方法相比,本文方法僅需要兩條消息:①從設備發送至區塊鏈的交易;②區塊鏈響應。因此,若實施在相同硬件上,本文方法的能耗和計算均較少。此外,本文方法通過ECDSA算法實現消息的身份驗證,且橢圓曲線加密是適用于受限設備的輕量級方案[17]。

4 結束語

提出的區塊鏈身份驗證系統基于共有區塊鏈,具有共有鏈的所有安全屬性。確保設備的正確識別和認證,并保護數據的完整性和可用性。在安全虛擬區中,設備可通過安全方式相互通信。評價表明,所提方法能夠滿足安全要求,可抵御各種攻擊。在能耗、時間消耗等方面表現優秀。

本文方法主要問題是不適用于實時應用,因為該方法依賴于共有區塊鏈,每筆交易(區塊)的驗證需要一定的時間周期(共識所需時間),該問題可通過使用私有區塊鏈來解決。此外,所提方法在初始化階段需要服務供應商的干預。未來,本文將改進所提方法,以允許選定虛擬區集合之間的受控通信;并針對被攻陷節點實施撤銷機制。

猜你喜歡
關聯設備
諧響應分析在設備減振中的應用
不懼于新,不困于形——一道函數“關聯”題的剖析與拓展
“苦”的關聯
當代陜西(2021年17期)2021-11-06 03:21:36
“一帶一路”遞進,關聯民生更緊
當代陜西(2019年15期)2019-09-02 01:52:00
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
奇趣搭配
智趣
讀者(2017年5期)2017-02-15 18:04:18
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
如何在設備采購中節省成本
主站蜘蛛池模板: 久久综合婷婷| 香蕉在线视频网站| 日本精品中文字幕在线不卡| 亚洲天堂免费观看| 国产主播福利在线观看| 国产国产人免费视频成18| 又黄又爽视频好爽视频| 91视频青青草| 国产精品丝袜视频| 亚洲浓毛av| 色婷婷狠狠干| 伊人久热这里只有精品视频99| 中文字幕永久在线观看| 99热免费在线| 欧美一区二区三区不卡免费| 美女毛片在线| 日本久久免费| 午夜免费小视频| 免费看的一级毛片| 日本免费福利视频| 日本亚洲欧美在线| 久久影院一区二区h| 欧美一区二区三区国产精品| 熟女日韩精品2区| 亚洲男人天堂网址| 最新国产网站| 国产精鲁鲁网在线视频| 国产www网站| 日韩在线网址| 日本国产在线| 亚洲视频影院| 久久综合色视频| 波多野结衣在线se| 中文字幕人妻av一区二区| 中文字幕1区2区| 无码aaa视频| 成年女人a毛片免费视频| 欧美一区二区三区欧美日韩亚洲| 丰满人妻中出白浆| 国产亚洲精品yxsp| 亚洲欧美国产视频| 91成人免费观看在线观看| 欧美69视频在线| 国产精品亚洲综合久久小说| 动漫精品啪啪一区二区三区| 99热免费在线| 国产精品香蕉在线| 国产福利在线免费观看| 国产精品永久久久久| a级毛片一区二区免费视频| 香蕉久久国产精品免| 日韩a在线观看免费观看| 97人人模人人爽人人喊小说| 国产乱论视频| 日韩无码白| 久久精品无码国产一区二区三区 | 欧美人与动牲交a欧美精品| 亚洲欧洲日韩综合| 欧美日韩在线国产| 亚洲一区二区三区麻豆| 久久久精品无码一区二区三区| 精品三级网站| 国产白丝av| 久热99这里只有精品视频6| 91精品啪在线观看国产91九色| 免费中文字幕一级毛片| 最新国产麻豆aⅴ精品无| 欧美在线网| 色屁屁一区二区三区视频国产| 97在线碰| 国内精自视频品线一二区| 99视频精品全国免费品| 亚洲一区网站| 亚洲浓毛av| 国产极品美女在线播放| 日韩黄色大片免费看| 色婷婷国产精品视频| 99热国产这里只有精品9九| 亚洲综合香蕉| 国产香蕉在线视频| 国产视频 第一页| 奇米影视狠狠精品7777|