穆麗沙,夏靜文
(1.山西省應(yīng)用技術(shù)學(xué)校,山西 太原 030024;2.山西工程職業(yè)學(xué)院,山西 太原 030031)
盡管物聯(lián)網(wǎng)技術(shù)迅速發(fā)展了好多年,仍然有專家預(yù)測從2018年到2028年物聯(lián)網(wǎng)設(shè)備數(shù)量會(huì)增加五倍,高達(dá)19億個(gè)單元,這就需要進(jìn)一步加強(qiáng)物聯(lián)網(wǎng)節(jié)點(diǎn)之間的安全。多年來,人們已經(jīng)付出大量的努力使網(wǎng)絡(luò)通信標(biāo)準(zhǔn)化,并提高物聯(lián)網(wǎng)設(shè)備之間的可操作性。即便如此,有效負(fù)載保護(hù)不當(dāng)和節(jié)點(diǎn)的身份驗(yàn)證出錯(cuò)仍然是普遍存在的問題。因此,我們應(yīng)該更加重視所使用的安全模型架構(gòu),制定有效可行的身份認(rèn)證與密鑰機(jī)制,提供入侵檢測與防御技術(shù)和保證數(shù)據(jù)安全與隱私保護(hù)技術(shù)[1]。物聯(lián)網(wǎng)安全模型的主要目標(biāo)是維護(hù)數(shù)據(jù)的機(jī)密性、完整性,保證服務(wù)的可用性。
目前人們采用遠(yuǎn)程監(jiān)控及自動(dòng)化技術(shù)解決物聯(lián)網(wǎng)的安全問題,這些方案也僅僅能解決一些常見的問題,例如節(jié)點(diǎn)如何驗(yàn)證、如何保證內(nèi)部存儲(chǔ)數(shù)據(jù)的完整性以及數(shù)據(jù)傳輸過程的安全[2]。這些問題在設(shè)備制造商的測試實(shí)驗(yàn)中很容易得到保證,但是在真實(shí)環(huán)境中面臨的風(fēng)險(xiǎn)很大,可能會(huì)遭到不同的網(wǎng)絡(luò)攻擊。
物聯(lián)網(wǎng)是不斷發(fā)展的技術(shù),它源于Machine-to-Machine (M2M)服務(wù),并沿用之前的一些技術(shù)。M2M覆蓋的應(yīng)用范圍很廣泛,比如智能家居、智能城市、智能電網(wǎng)等。物聯(lián)網(wǎng)設(shè)備在這些應(yīng)用中總是暴露出內(nèi)存太小和計(jì)算能力有限等問題。這種情況下我們想要使用多個(gè)非對稱加密數(shù)字簽名的復(fù)雜算法基本上是不可能的,物聯(lián)網(wǎng)設(shè)備的用戶名和密碼組合,也存在不安全因素。一些惡意軟件不要求用戶更改默認(rèn)值,對一些分布式服務(wù)器的攻擊非常有效且致命。另外修改密碼的安全措施也是不夠的,一些惡意軟件會(huì)暴力破解密碼[3]。
物聯(lián)網(wǎng)分為三個(gè)層次結(jié)構(gòu):①感知層,主要完成信息的采集、轉(zhuǎn)換和收集;②網(wǎng)絡(luò)層,又稱傳輸層,主要完成接入和傳輸功能,是進(jìn)行信息交換、傳遞的數(shù)據(jù)通路;③應(yīng)用層,處理從網(wǎng)絡(luò)層傳輸來的數(shù)據(jù),并通過各種設(shè)備與人進(jìn)行交互[4]。物聯(lián)網(wǎng)這三個(gè)基礎(chǔ)層次結(jié)構(gòu)都存在潛在的安全威脅,并且目前所出現(xiàn)或潛在的威脅都可以對應(yīng)到其中一個(gè)環(huán)節(jié)。
基于安全的全面考慮,需要重點(diǎn)對感知層、網(wǎng)絡(luò)層、應(yīng)用層這三個(gè)邏輯層進(jìn)行安全威脅分析,我們可以列出物聯(lián)網(wǎng)系統(tǒng)每個(gè)層次結(jié)構(gòu)容易遭到的安全威脅。
感知層上,威脅源自物理攻擊或者代碼攻擊。主要的威脅有:
(1) 節(jié)點(diǎn)捕獲:物聯(lián)網(wǎng)系統(tǒng)是由多個(gè)物聯(lián)網(wǎng)節(jié)點(diǎn)組成的。惡意的攻擊者可以通過物理訪問這些節(jié)點(diǎn)然后取而代之,這給攻擊者提供了訪問系統(tǒng)的機(jī)會(huì),從而影響整個(gè)應(yīng)用程序的安全。
(2) 代碼植入攻擊:為了使設(shè)備能夠無需返廠就能更新升級(jí),存儲(chǔ)器可以通過閃現(xiàn)使設(shè)備實(shí)現(xiàn)無線更新。閃現(xiàn)是一種快速切換應(yīng)用程序的體驗(yàn),可以提高我們的工作效率。但是閃現(xiàn)在切換應(yīng)用程序的過程中可能會(huì)暴露一些隱私信息,圖像源一旦被破壞,節(jié)點(diǎn)就會(huì)執(zhí)行意想不到的程序,并提供給攻擊者訪問系統(tǒng)的機(jī)會(huì)。
(3) 假數(shù)據(jù)注入攻擊:一旦節(jié)點(diǎn)被破壞,攻擊者可以用它來發(fā)送錯(cuò)誤數(shù)據(jù)到系統(tǒng)中,這可能會(huì)導(dǎo)致系統(tǒng)故障。攻擊者也會(huì)使用洪泛攻擊,這類攻擊占用服務(wù)器的應(yīng)用處理資源,極大地消耗服務(wù)器的處理能力從而導(dǎo)致分布式拒絕服務(wù)攻擊。
(4) 側(cè)信道攻擊:這種攻擊不是利用系統(tǒng)漏洞,而是從系統(tǒng)運(yùn)行程序中獲得信息的攻擊;這種攻擊可以用來獲得設(shè)備所使用的加密算法,甚至可以訪問敏感數(shù)據(jù)。
(5) 耗盡攻擊:攻擊者會(huì)通過耗盡物聯(lián)網(wǎng)節(jié)點(diǎn)的電池影響系統(tǒng)的服務(wù)功能。
在網(wǎng)絡(luò)層面上,我們常見到以下幾種網(wǎng)絡(luò)安全威脅:
(1) 干擾:當(dāng)把有效載荷放置于開放環(huán)境中時(shí),其可能會(huì)受干擾影響。攻擊者利用這些干擾,直接影響系統(tǒng)服務(wù)性能,同時(shí)破壞數(shù)據(jù)的完整性。
(2) 拒絕服務(wù)攻擊:無論是分布式還是單個(gè)節(jié)點(diǎn),當(dāng)服務(wù)系統(tǒng)發(fā)出多個(gè)快速請求時(shí),系統(tǒng)服務(wù)性能都會(huì)受到攻擊者的影響。這可能是對傳輸層的攻擊,也有可能是應(yīng)用程序?qū)拥墓簟?/p>
(3) 路由攻擊:在這種攻擊中,受損的物聯(lián)網(wǎng)節(jié)點(diǎn)會(huì)嘗試重新定位傳輸數(shù)據(jù)的路由路徑。
在應(yīng)用層面上,可能遇到的網(wǎng)絡(luò)攻擊有:
(1) 中間人攻擊:這種攻擊根據(jù)所使用的協(xié)議,有幾種不同的形式,但本質(zhì)上都是在發(fā)射器和接收器之間放置一個(gè)中間對象以便攔截傳輸?shù)臄?shù)據(jù)。
(2) SQL注入攻擊:攻擊者在用戶輸入中嵌入惡意SQL(Structured Query Language)語句,以便能檢索到更多的數(shù)據(jù)。
為解決前文提到的物聯(lián)網(wǎng)設(shè)備存在的內(nèi)存空間和計(jì)算能力不足的問題,需要選用適當(dāng)?shù)奈锢碓O(shè)備。物聯(lián)網(wǎng)使用的設(shè)備因選擇不同的網(wǎng)絡(luò)拓?fù)涠兴顒e。對于云連接架構(gòu),物聯(lián)網(wǎng)節(jié)點(diǎn)通常使用Espressif ESP32設(shè)計(jì)的具有Wi-Fi和藍(lán)牙功能的低功耗模塊,該模塊具有32位體系結(jié)構(gòu)和雙核CPU,RAM內(nèi)存520 kB,4 MB閃存,帶有DHT11溫濕度傳感器。ESP32性能穩(wěn)定,工作溫度范圍為-40 ℃~+125 ℃,集成的自校準(zhǔn)電路實(shí)現(xiàn)了動(dòng)態(tài)電壓調(diào)整,可以消除外部電路的缺陷并適應(yīng)外部條件的變化。ESP32集天線開關(guān)、射頻巴倫、功率放大器、低噪聲放大器、濾波器以及電源管理模塊于一體,占用較小的PCB空間,即可最大化滿足實(shí)際應(yīng)用多樣的功能需求。傳感器數(shù)據(jù)可通過Wi-Fi傳輸?shù)骄W(wǎng)關(guān),另外用一臺(tái)樹莓派4B,這是一臺(tái)具有1 GB RAM和四核的單板計(jì)算機(jī)Cortex-A72 CPU,每個(gè)核心的默認(rèn)時(shí)鐘頻率為1.5 GHz,以及64位體系結(jié)構(gòu)。節(jié)點(diǎn)放置在受保護(hù)的網(wǎng)絡(luò)內(nèi)部,并且只有網(wǎng)關(guān)面向網(wǎng)絡(luò),能夠給云傳輸數(shù)據(jù)。
(1) 為了避免遭到節(jié)點(diǎn)捕獲攻擊,應(yīng)采取物理訪問安全措施。在開放網(wǎng)絡(luò)中物聯(lián)網(wǎng)設(shè)備必須具有防篡改功能。用戶訪問時(shí),設(shè)備必須具有認(rèn)證過程,能驗(yàn)證用戶身份及其來源。在云連接傳感器中,節(jié)點(diǎn)的處理能力必須足夠強(qiáng)大才能運(yùn)行復(fù)雜的密碼函數(shù),同時(shí)有能力提供一種安全存儲(chǔ)敏感數(shù)據(jù)的方法,比如密鑰或證書。這可以通過專用的ESP32安全裝置實(shí)現(xiàn)。ESP32可以滿足這些要求,并將AES密鑰存儲(chǔ)在可編程存儲(chǔ)器eFUSE中。
在核心層面,認(rèn)證過程中不僅要驗(yàn)證節(jié)點(diǎn)的來源,還要建立用于加密的有效載荷。根據(jù)安全要求,在建立一種認(rèn)證過程的同時(shí)應(yīng)再建立一個(gè)安全密鑰,并且通過每24 h更改一次密鑰來確保完全保密,這種認(rèn)證過程使用密碼學(xué)算法來生成密鑰。
我們?yōu)樵O(shè)備提供CA證書,它包含了一對密鑰、公鑰和私鑰。公鑰用于加密信息和驗(yàn)證身份,私鑰則用于解密信息。這個(gè)設(shè)備通過發(fā)送自己的證書來啟動(dòng)證明過程,服務(wù)器用自己的證書進(jìn)行響應(yīng),并使用CA證書來檢驗(yàn)證書的真實(shí)性。如果成功,設(shè)備將以明文形式發(fā)送參數(shù)和簽名。服務(wù)器響應(yīng)需要用它自己的參數(shù)、簽名和密鑰交換過程中用檢驗(yàn)成功測試的字節(jié),最終客戶端將發(fā)加密的字節(jié)并使用IV一起進(jìn)行驗(yàn)證。身份驗(yàn)證流程如圖1所示。
圖1 身份驗(yàn)證流程
(2) 通過上述嚴(yán)謹(jǐn)?shù)纳矸蒡?yàn)證的流程,從而保證節(jié)點(diǎn)的完整性。只要原始節(jié)點(diǎn)不被破壞,則完全可以阻擋假數(shù)據(jù)的注入攻擊。
(3) 為應(yīng)對代碼注入攻擊,在網(wǎng)關(guān)和節(jié)點(diǎn)層,當(dāng)系統(tǒng)接收到隔空傳送(Over-The-Air,OTA)更新時(shí),必須使用CA證書驗(yàn)證以確保更新內(nèi)容的真實(shí)性。如果設(shè)備不支持非對稱加密,也可以使用消息驗(yàn)證碼。如果驗(yàn)證不能通過,系統(tǒng)將停止OTA更新。
(4) 對于側(cè)信道類型的攻擊,我們將針對這種攻擊的防御程序提前內(nèi)置于芯片中,通過操作特定步驟就可以在啟動(dòng)時(shí)初始化所有服務(wù)系統(tǒng),并且不向攻擊者提供任何關(guān)于服務(wù)的信息。如果加密函數(shù)的安全性能夠保證阻礙這類攻擊,則篡改電阻裝置可以卸載這樣的安全防御程序。
(5) 當(dāng)系統(tǒng)遭到耗盡攻擊時(shí),可以通過偵測程序來限制系統(tǒng)任務(wù)的數(shù)量,并對可疑任務(wù)加以阻止。這樣可以限制此類攻擊對物聯(lián)網(wǎng)節(jié)點(diǎn)的破壞。
(1) 無論使用何種網(wǎng)絡(luò)拓?fù)?系統(tǒng)都可能遭到干擾攻擊。我們可以通過使用數(shù)字簽名或者消息驗(yàn)證碼驗(yàn)證身份避免攻擊。
(2) 為減少拒絕服務(wù)攻擊,應(yīng)使用攻擊檢測系統(tǒng)并自動(dòng)阻止可疑活動(dòng)。檢測系統(tǒng)使用機(jī)器學(xué)習(xí)(Machine Learning)模式檢測異常流量并將其標(biāo)記并阻止。我們使用有監(jiān)督學(xué)習(xí)的模型算法對數(shù)據(jù)進(jìn)行一個(gè)或多個(gè)類標(biāo)記,檢測系統(tǒng)會(huì)根據(jù)攻擊標(biāo)記立即檢測出攻擊的類型并進(jìn)行阻止[5]。
(3) 為了減少路由攻擊,必須對連接到網(wǎng)絡(luò)的設(shè)備實(shí)施嚴(yán)格的控制。通過設(shè)置傳感器直接連接云,將數(shù)據(jù)直接推送到云中,從而減少路由器遭受攻擊。
(1) 應(yīng)用層的系統(tǒng)安全性通常受到所使用協(xié)議的影響。為防止中間人攻擊,可以加密系統(tǒng)所支持的網(wǎng)絡(luò)傳輸協(xié)議。加密傳輸協(xié)議是一種保護(hù)數(shù)據(jù)傳輸安全性的協(xié)議,通過為數(shù)據(jù)傳輸時(shí)使用加密技術(shù)而具有安全性保障作用。將發(fā)送的數(shù)據(jù)不經(jīng)處理直接暴露在網(wǎng)絡(luò)中存在安全隱患,因此采用加密傳輸協(xié)議可有效保護(hù)數(shù)據(jù)傳輸?shù)陌踩?使其在網(wǎng)絡(luò)傳輸過程中保護(hù)數(shù)據(jù)不被攔截、竊取或者篡改,從而防止發(fā)生數(shù)據(jù)泄露。
(2) 對于SQL注入攻擊,可以應(yīng)用標(biāo)準(zhǔn)安全規(guī)程,例如SQL注入緩解措施、跨站點(diǎn)腳本(Cross-Site Scripting,XSS)預(yù)防等。
本文梳理了基于網(wǎng)絡(luò)拓?fù)涞奈锫?lián)網(wǎng)系統(tǒng)安全的缺陷,考慮了現(xiàn)階段物聯(lián)網(wǎng)設(shè)備硬件的限制,根據(jù)物聯(lián)網(wǎng)三個(gè)層次結(jié)構(gòu)潛在的網(wǎng)絡(luò)安全威脅,建立和完善數(shù)據(jù)保護(hù)系統(tǒng)的構(gòu)架,為物聯(lián)網(wǎng)系統(tǒng)安全威脅提供了防御策略,構(gòu)建了健全綜合的物聯(lián)網(wǎng)安全防御體系,為物聯(lián)網(wǎng)能夠健康平穩(wěn)發(fā)展奠定了基礎(chǔ)。