姚 灝,張德方
(廣州電力設(shè)計(jì)院有限公司,廣東 廣州 510610)
當(dāng)前,物聯(lián)網(wǎng)技術(shù)已與人們的工作和生活密不可分。隨著嵌入式計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)技術(shù)的持續(xù)快速發(fā)展,這兩種技術(shù)的深度融合產(chǎn)生了大規(guī)模、獨(dú)立的物聯(lián)網(wǎng)系統(tǒng)。特別是由異構(gòu)設(shè)備組成的物聯(lián)網(wǎng)單元,這些設(shè)備生成和共享大量對(duì)安全至關(guān)重要的物聯(lián)網(wǎng)數(shù)據(jù),其中不乏一些有較高安全性的數(shù)據(jù)。因此,數(shù)據(jù)的傳輸和存儲(chǔ)過(guò)程變得非常重要。由于大多傳感器網(wǎng)絡(luò)工作在無(wú)人值守模式下,因此很容易受到大量的網(wǎng)絡(luò)攻擊。幾乎所有現(xiàn)有的物聯(lián)網(wǎng)安全解決方案都依賴于中央控制器的架構(gòu),通過(guò)Web 與云服務(wù)器通信。隨著物聯(lián)網(wǎng)系統(tǒng)越來(lái)越復(fù)雜,這種依賴于中央控制器的方法雖能提供彈性靈活的計(jì)算和數(shù)據(jù)處理能力,但它面臨的安全問(wèn)題十分突出:依賴物聯(lián)網(wǎng)中央控制器的架構(gòu)一旦出現(xiàn)單點(diǎn)故障,這可能會(huì)威脅到整個(gè)數(shù)據(jù)系統(tǒng)的功能[1]。大量的連接設(shè)備包括防篡改系統(tǒng)和容錯(cuò)基礎(chǔ)設(shè)施的實(shí)現(xiàn)。無(wú)數(shù)的傳感器被用來(lái)從智能城市、工廠、車輛以及幾乎所有領(lǐng)域收集信息。收集到的這些數(shù)據(jù)對(duì)于做出理性選擇至關(guān)重要。這些感知單元被附加到物聯(lián)網(wǎng)系統(tǒng)上,以便將信息傳輸?shù)街醒肟刂破鬟M(jìn)行存儲(chǔ)和計(jì)算。據(jù)預(yù)測(cè),到2020年,將有約500 億件物聯(lián)網(wǎng)設(shè)備連接到該網(wǎng)絡(luò),物聯(lián)網(wǎng)數(shù)據(jù)傳輸和存儲(chǔ)的安全問(wèn)題得到了越來(lái)越多的關(guān)注。智能物聯(lián)網(wǎng)系統(tǒng)能夠?qū)ξ锫?lián)網(wǎng)設(shè)備和傳感器進(jìn)行監(jiān)測(cè),自動(dòng)執(zhí)行相應(yīng)操作,在云端存儲(chǔ)和處理物聯(lián)網(wǎng)數(shù)據(jù),并能在緊急情況下自動(dòng)觸發(fā)預(yù)警系統(tǒng)并采用應(yīng)急預(yù)案。此外,智能物聯(lián)網(wǎng)利用各種收集到的數(shù)據(jù),采用云計(jì)算、量子計(jì)算、可穿戴系統(tǒng)、各種連接標(biāo)準(zhǔn)和接口,以及各種應(yīng)用服務(wù)將當(dāng)前的傳統(tǒng)設(shè)備變成更智能的物聯(lián)網(wǎng)設(shè)備。因此,管理這些物聯(lián)網(wǎng)系統(tǒng)中產(chǎn)生的大量數(shù)據(jù),需要將物聯(lián)網(wǎng)與信息技術(shù)相結(jié)合,挖掘和分析這些的數(shù)據(jù)集,其處理能力和計(jì)算能力幾乎是無(wú)限的。借助云計(jì)算和云計(jì)算的資源降低了數(shù)據(jù)處理的成本[2]。
物聯(lián)網(wǎng)終端用戶在接收物聯(lián)網(wǎng)數(shù)據(jù)的同時(shí)會(huì)面臨安全隱患。當(dāng)前,區(qū)塊鏈技術(shù)已經(jīng)成為一種普遍的技術(shù),它允許使用組驗(yàn)證在不同用戶之間同步共享賬本記錄,該共享記賬本能夠驗(yàn)證和存儲(chǔ)帳戶信息;區(qū)塊鏈相較于傳統(tǒng)的集中式記錄方式具有更強(qiáng)大和靈活的能力。信息記錄以塊的形式保存在區(qū)塊鏈中,其邏輯鏈接被組織成集群數(shù)據(jù)塊的連接列表。區(qū)塊鏈?zhǔn)腔谟涗浀南到y(tǒng)的創(chuàng)新應(yīng)用,可在跟蹤、監(jiān)管和保護(hù)物聯(lián)網(wǎng)數(shù)據(jù)中發(fā)揮重要作用[3]。借助區(qū)塊鏈技術(shù)的支持,傳感器節(jié)點(diǎn)發(fā)送的信息加密是通過(guò)持有唯一共享密鑰的數(shù)字簽名方法;這樣就保證了通信數(shù)據(jù)的安全性和保密性。此外,分布式賬本還記錄了所有進(jìn)出物聯(lián)網(wǎng)設(shè)備的數(shù)據(jù)傳輸記錄,以便于數(shù)據(jù)追蹤。雖然區(qū)塊鏈技術(shù)是解決目前集中式架構(gòu)中存在的物聯(lián)網(wǎng)隱私保護(hù)問(wèn)題的理想解決方案,但仍有許多難題阻礙它集成到現(xiàn)代物聯(lián)網(wǎng)系統(tǒng)中?,F(xiàn)有基于區(qū)塊鏈的系統(tǒng)中使用的許多共識(shí)機(jī)制在計(jì)算資源非常有限的平臺(tái)上運(yùn)行效果不佳,因?yàn)檫@些物聯(lián)網(wǎng)設(shè)備須將其大部分可用資源和計(jì)算用于系統(tǒng)自身的運(yùn)行開(kāi)銷,這使得維護(hù)數(shù)據(jù)安全性的成本太高。此外,由于規(guī)模的復(fù)雜性和單點(diǎn)故障隱患,高安全性的系統(tǒng)采用的是高度集中的架構(gòu),由于傳統(tǒng)架構(gòu)上的缺陷而不能有效提高物聯(lián)網(wǎng)的生產(chǎn)效率。因此,在評(píng)估區(qū)塊鏈與物聯(lián)網(wǎng)的結(jié)合時(shí),需要考慮諸多因素,例如:如何使用較少資源將物聯(lián)網(wǎng)與區(qū)塊鏈技術(shù)相結(jié)合,基于區(qū)塊鏈技術(shù)的物聯(lián)網(wǎng)安全保障體系等問(wèn)題[4]。
區(qū)塊鏈?zhǔn)且环N共享數(shù)據(jù)庫(kù),信息在對(duì)等組之間傳輸。表1顯示了基于區(qū)塊鏈技術(shù)的物聯(lián)網(wǎng)特性。
表1 基于區(qū)塊鏈技術(shù)的物聯(lián)網(wǎng)特性
區(qū)塊鏈的主要特點(diǎn)是查驗(yàn)機(jī)制、去中心化、分布式賬本、快速結(jié)算、點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)架構(gòu)、不可變更性、高安全性[5]。物聯(lián)網(wǎng)的特點(diǎn)是通過(guò)私人(內(nèi)部網(wǎng))或公共(互聯(lián)網(wǎng))的傳感器收集數(shù)據(jù)并將數(shù)據(jù)用于計(jì)算。隨著物聯(lián)網(wǎng)規(guī)模越來(lái)越大,物聯(lián)網(wǎng)產(chǎn)生的數(shù)據(jù)信息越來(lái)越多,這些需要經(jīng)過(guò)網(wǎng)絡(luò)的傳輸和存儲(chǔ)才能做到有效的管理。物聯(lián)網(wǎng)設(shè)備積累的信息大致分為公共和私人數(shù)據(jù),由于網(wǎng)絡(luò)安全形勢(shì)日益嚴(yán)峻,保護(hù)數(shù)據(jù)的安全傳輸和存儲(chǔ)依然具有重要意義[6]。
由于物聯(lián)網(wǎng)的設(shè)計(jì)初衷考慮到了兼容性,物聯(lián)網(wǎng)是一個(gè)多平臺(tái)接入的網(wǎng)絡(luò)系統(tǒng),這使得物聯(lián)網(wǎng)規(guī)模能夠快速的發(fā)展壯大。這里,必須要考慮物聯(lián)網(wǎng)的幾個(gè)重要組成部分與物聯(lián)網(wǎng)的性價(jià)比之間的關(guān)系。物聯(lián)網(wǎng)采用分層架構(gòu)來(lái)理解物聯(lián)網(wǎng)生態(tài)系統(tǒng)中的各種基礎(chǔ)設(shè)施,通常將其劃分為三個(gè)層次[7]。由于物聯(lián)網(wǎng)中廣泛存在異構(gòu)的設(shè)備,這降低了系統(tǒng)的可靠性,存儲(chǔ)在云端的數(shù)據(jù)使物聯(lián)網(wǎng)用戶可以在遙遠(yuǎn)的地區(qū)獲取傳感器的信息或者計(jì)算結(jié)果。由于數(shù)據(jù)的傳輸和存儲(chǔ)需要在互聯(lián)網(wǎng)中多個(gè)節(jié)點(diǎn)中轉(zhuǎn),傳輸和存儲(chǔ)的安全保障成為亟待解決的問(wèn)題。物聯(lián)網(wǎng)通常被分為4 層,即物理層、網(wǎng)絡(luò)層、中間件層和應(yīng)用層,每一層面臨的安全威脅不同。物理層的安全威脅包括:節(jié)點(diǎn)捕獲攻擊、重放攻擊、側(cè)信道攻擊、竊聽(tīng)、假數(shù)據(jù)注入攻擊、惡意代碼注入攻擊、飽和攻擊、物理破壞攻擊、干擾攻擊等。網(wǎng)絡(luò)層主要有欺騙攻擊、中間人攻擊、天坑攻擊、DDoS/DoS 攻擊、非法訪問(wèn)、釣魚(yú)攻擊、路由攻擊、數(shù)據(jù)傳輸攻擊、設(shè)備克隆攻擊等。在中間件層,主要的攻擊形式包括:SQL 注入攻擊、簽名包裝攻擊、云惡意代碼注入攻擊、洪水襲擊云、拒絕服務(wù)攻擊、虛擬化安全威脅和攻擊云服務(wù)器等。在應(yīng)用程序?qū)?,主要的攻擊有:釣魚(yú)攻擊,信任管理危機(jī)、身份驗(yàn)證問(wèn)題、惡意腳本、策略實(shí)施、數(shù)據(jù)隱私問(wèn)題和拒絕服務(wù)攻擊[8]。
區(qū)塊鏈網(wǎng)絡(luò)采用的是點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)架構(gòu),所有網(wǎng)絡(luò)節(jié)點(diǎn)以相同的方式復(fù)制信息。信息提交者的節(jié)點(diǎn)在輸入流程時(shí)注冊(cè)協(xié)議(包括其加密密鑰),并將其傳輸給其他幾個(gè)對(duì)等節(jié)點(diǎn)進(jìn)行確認(rèn)。每個(gè)側(cè)鏈各自負(fù)責(zé)處理自己的物聯(lián)網(wǎng)信息。在測(cè)試階段,在一個(gè)平臺(tái)上處于活動(dòng)狀態(tài)的未注冊(cè)節(jié)點(diǎn)不允許參與區(qū)塊鏈構(gòu)造。該設(shè)備首先需要登錄,成為該區(qū)塊鏈系統(tǒng)的組成部分后才能被授權(quán)檢索該區(qū)塊鏈聯(lián)盟的內(nèi)容。區(qū)塊鏈聯(lián)盟擁有授權(quán)用戶接入和限制用戶訪問(wèn)的權(quán)力,這成為區(qū)塊鏈數(shù)據(jù)信任機(jī)制的基礎(chǔ)[9]。
本研究提出的基于區(qū)塊鏈技術(shù)的物聯(lián)網(wǎng)安全框架專用于壓縮來(lái)自物聯(lián)網(wǎng)傳感器的數(shù)據(jù)。這種壓縮技術(shù)的實(shí)現(xiàn)分為三個(gè)部分。首先,在網(wǎng)絡(luò)節(jié)點(diǎn)中壓縮傳感器讀數(shù)的數(shù)據(jù);其次,使用AES 和SHA-256 實(shí)例對(duì)壓縮后的數(shù)據(jù)進(jìn)行加密,將數(shù)據(jù)存儲(chǔ)在區(qū)塊鏈上后發(fā)送到云;最后,在接收端使用私鑰解壓數(shù)據(jù)。該安全框架結(jié)構(gòu)圖如圖1所示。加解密流程如圖2所示。
圖1 基于區(qū)塊鏈技術(shù)的物聯(lián)網(wǎng)安全框架
圖2 基于區(qū)塊鏈技術(shù)的加密和解密流程
在系統(tǒng)初始化時(shí),首先將收集來(lái)自各種物聯(lián)網(wǎng)傳感器的數(shù)據(jù),并檢查設(shè)備的真實(shí)性。在壓縮的第一階段,系統(tǒng)定期從物聯(lián)網(wǎng)傳感器單元收集信息。如果計(jì)算機(jī)不被允許,那么信息位就會(huì)被拒絕。與之相反,信息被記錄在一個(gè)數(shù)組中一段特定的時(shí)間。此外,利用排序算法將信息按遞增順序排序。隨后,進(jìn)行測(cè)量,測(cè)量任意兩個(gè)連續(xù)樣本組值的平均值。因?yàn)閷?duì)于每一組變量,得到一個(gè)單獨(dú)的值。真實(shí)節(jié)點(diǎn)完成后,將數(shù)據(jù)記錄到Excel 中,對(duì)數(shù)據(jù)進(jìn)行升序排序后,計(jì)算每對(duì)數(shù)據(jù)的平均值并保存壓縮文件。
云服務(wù)器最初在解壓階段就接受了對(duì)信息的需求。相反,針對(duì)包含數(shù)值的查詢,Cloud 在獲取CSV 文件時(shí)需要將數(shù)量乘以2,因?yàn)樽畛跻呀?jīng)將數(shù)值減少了50%。生成所有數(shù)字后,將獲得的信息保存在一個(gè)數(shù)組中。因此,這些值被記錄在文檔中,并將目錄發(fā)送給提交者。當(dāng)源信息和提取的信息之間仍然存在一定的差異時(shí),被認(rèn)為是錯(cuò)誤的,可以通過(guò)減少誤差來(lái)盡可能地提高壓縮比。
3.3.1 算法1:使用安全哈希算法的數(shù)據(jù)壓縮算法
系統(tǒng)初始化
步驟1:從各種物聯(lián)網(wǎng)傳感器獲取數(shù)據(jù),并存儲(chǔ)到不同的Excel 文件;
步驟2:讀取不同數(shù)組變量中每個(gè)傳感器的數(shù)據(jù);
步驟3:對(duì)每個(gè)數(shù)組中的數(shù)據(jù)進(jìn)行排序;
步驟4:計(jì)算數(shù)組中每對(duì)的平均值,將記錄壓縮到count的1/2;
步驟5:從每個(gè)數(shù)組中讀取數(shù)據(jù)并創(chuàng)建一個(gè)字符串;
步驟6:使用AES 加密和SHA-256 實(shí)例加密字符串;
步驟7:將其存儲(chǔ)到區(qū)塊鏈中,以便將數(shù)據(jù)安全地傳輸?shù)皆粕希?/p>
步驟8:將區(qū)塊鏈傳輸?shù)皆粕希?/p>
步驟9:轉(zhuǎn)到步驟5,直到記錄存在為止。
系統(tǒng)結(jié)束。
輸入數(shù)據(jù):來(lái)自物聯(lián)網(wǎng)傳感器的數(shù)據(jù);
輸出數(shù)據(jù):區(qū)塊鏈中的壓縮和安全數(shù)據(jù)。
3.3.2 算法2:接收端數(shù)據(jù)解壓縮算法
系統(tǒng)初始化
步驟1:從云接收區(qū)塊鏈;
步驟2:將數(shù)據(jù)從區(qū)塊鏈提取到字符串變量中;
步驟3:使用私鑰解密數(shù)據(jù);
步驟4:將數(shù)據(jù)分割成不同的變量,并存儲(chǔ)到字符串變量中;
步驟5:循環(huán)步驟1~步驟4,直到該記錄存在;
步驟6:將每個(gè)記錄復(fù)制到文件中,使數(shù)據(jù)加倍;
步驟7:將傳感器數(shù)據(jù)存儲(chǔ)在Excel 文件中。
系統(tǒng)結(jié)束。
輸入:在區(qū)塊鏈壓縮和安全的數(shù)據(jù);
輸出:來(lái)自物聯(lián)網(wǎng)傳感器的數(shù)據(jù)。
本研究的實(shí)驗(yàn)出于數(shù)據(jù)壓縮和安全性考慮,采集了6 個(gè)傳感器,分別是空氣質(zhì)量指數(shù)傳感器、粉塵濃度傳感器、濕度傳感器、溫度傳感器、電壓傳感器、水位傳感器,這些傳感器與Node MCU 接口,同時(shí)采集連續(xù)3 天的數(shù)據(jù),并在ThingSpeak 上進(jìn)行分析。在云端分析數(shù)據(jù)后,在Excel 文件中獲取樣本。為了便于統(tǒng)計(jì)錯(cuò)誤率,從6 個(gè)傳感器單元中各取了100 個(gè)樣本值。存儲(chǔ)優(yōu)化通過(guò)以下兩個(gè)步驟完成:
步驟1:通過(guò)壓縮優(yōu)化所需數(shù)據(jù)存儲(chǔ)量。
根據(jù)本研究提出的利用區(qū)塊鏈技術(shù)進(jìn)行物聯(lián)網(wǎng)云存儲(chǔ)數(shù)據(jù)壓縮和優(yōu)化的框架,采集各種傳感器提供的傳感數(shù)據(jù),并使用排序技術(shù)對(duì)這些數(shù)據(jù)進(jìn)行排序。本實(shí)驗(yàn)采取冒泡排序方法對(duì)各個(gè)傳感器接收到的數(shù)據(jù)進(jìn)行了排序,然后計(jì)算每個(gè)傳感器數(shù)據(jù)對(duì)的均值。計(jì)算平均值并存儲(chǔ)在其他文件中,將此過(guò)程用于所有傳感器數(shù)據(jù)。如果新的平均值文件有ith記錄,則可以計(jì)算為:
步驟2:使用安全散列的安全數(shù)據(jù)事務(wù)。
壓縮數(shù)據(jù)通過(guò)SHA-256 實(shí)例和使用生成的密鑰的AES加密來(lái)加密和解密。之后,從每個(gè)文件中提取第i條記錄并創(chuàng)建字符串,然后使用生成的密鑰加密這個(gè)新生成的字符串。在解密過(guò)程中,使用相同的密鑰加密數(shù)據(jù),并處理生成的字符串以將數(shù)據(jù)存儲(chǔ)在不同的文件中。
本實(shí)驗(yàn)記錄了6 個(gè)傳感器,每個(gè)傳感器數(shù)據(jù)文件中有100 個(gè)記錄。應(yīng)用上述平均數(shù)機(jī)制后,每個(gè)文件的數(shù)據(jù)被壓縮到每個(gè)文件總計(jì)數(shù)的1/2。此數(shù)據(jù)可以存儲(chǔ)在其他一些文件中,以便進(jìn)一步加密并發(fā)送到區(qū)塊鏈。
隨著物聯(lián)網(wǎng)應(yīng)用的普及,物聯(lián)網(wǎng)平臺(tái)在安全和隱私方面面臨挑戰(zhàn),已成為熱點(diǎn)課題。本文討論了物聯(lián)網(wǎng)設(shè)備的保護(hù)和隱私問(wèn)題以及借助區(qū)塊鏈技術(shù)提高物聯(lián)網(wǎng)安全性的可行性方案。在提高物聯(lián)網(wǎng)安全性的前提下,減少了數(shù)據(jù)發(fā)送量并優(yōu)化了物聯(lián)網(wǎng)應(yīng)用的存儲(chǔ)。本文重點(diǎn)討論了物聯(lián)網(wǎng)基礎(chǔ)設(shè)施每個(gè)架構(gòu)層的幾種安全攻擊。通過(guò)實(shí)驗(yàn)證明了本研究所提的使用AES(SHA-256 實(shí)例)方法實(shí)現(xiàn)了誤差率不超過(guò)1%,壓縮數(shù)據(jù)優(yōu)化數(shù)據(jù)發(fā)送與存儲(chǔ)達(dá)到50%的成果,進(jìn)而證明了本方法具有較高的學(xué)術(shù)和應(yīng)用價(jià)值。