物聯(lián)網(wǎng)逐漸滲透到醫(yī)療保健、智能家居、智慧城市、自動(dòng)駕駛等我們生活中的各個(gè)領(lǐng)域。這其中所涉及到的物聯(lián)設(shè)備的安全也因此變得愈發(fā)重要。一旦物聯(lián)網(wǎng)系統(tǒng)遭到惡意入侵,不僅海量設(shè)備數(shù)據(jù)將面臨丟失、被竊取和篡改等安全風(fēng)險(xiǎn),使用這些設(shè)備和物聯(lián)網(wǎng)應(yīng)用的終端用戶的個(gè)人安全也有可能受到威脅。
我們經(jīng)常能看到這樣的新聞:黑客利用漏洞入侵到物聯(lián)網(wǎng)系統(tǒng),比如兒童的智能玩具中,通過玩具的攝像頭、揚(yáng)聲器和麥克風(fēng)對(duì)其進(jìn)行監(jiān)視;又或者是入侵到一個(gè)心臟起搏器,操縱心率并耗盡電池,對(duì)病人造成嚴(yán)重傷害。
一個(gè)沒有足夠安全保障的物聯(lián)網(wǎng)系統(tǒng)雖然也能正常工作、提供服務(wù),但是一旦發(fā)生問題,將對(duì)企業(yè)和其最終用戶造成無法估量的傷害。對(duì)于用戶來說,這可能意味著財(cái)產(chǎn)、數(shù)據(jù)隱私甚至是個(gè)人生命安全的損失;對(duì)于企業(yè)來說,則意味著產(chǎn)品召回的成本、可能產(chǎn)生的法律費(fèi)用,以及品牌聲譽(yù)和信任的損失。
因此,物聯(lián)網(wǎng)安全是物聯(lián)網(wǎng)發(fā)展中每個(gè)相關(guān)企業(yè)都需要重點(diǎn)關(guān)注的課題。
物聯(lián)網(wǎng)系統(tǒng)中的常見安全風(fēng)險(xiǎn)
目前,很多企業(yè)在構(gòu)建物聯(lián)網(wǎng)系統(tǒng)時(shí)可能會(huì)存在以下這些安全風(fēng)險(xiǎn):
- 認(rèn)證和授權(quán)機(jī)制不充分。 物聯(lián)網(wǎng)設(shè)備如果認(rèn)證機(jī)制薄弱或沒有認(rèn)證機(jī)制,會(huì)使其容易受到未經(jīng)授權(quán)的訪問。開發(fā)者不僅需要控制設(shè)備的訪問,還要控制設(shè)備連接到網(wǎng)絡(luò)后被允許做什么。
- 薄弱的密碼。 一些廠商可能對(duì)同一設(shè)備型號(hào)使用相同的密碼,或者是使用容易被猜到的弱密碼,如「admin」或「password」等。 然而即使是最復(fù)雜的加密算法,也無法保障一個(gè)容易猜到的密碼不被攻破。薄弱的密碼使攻擊者很容易竊取對(duì)設(shè)備及其數(shù)據(jù)的訪問權(quán)限。因此物聯(lián)網(wǎng)企業(yè)應(yīng)嚴(yán)格執(zhí)行強(qiáng)密碼政策,并要求用戶更改默認(rèn)密碼。
- 不安全的通信協(xié)議。 使用 TCP 等明文協(xié)議而不是 TLS 進(jìn)行通信,會(huì)使得攻擊者很容易截獲數(shù)據(jù)。以中間人攻擊(Man-In-The-Middle)為例,攻擊者可以竊聽通信,收集密碼、健康信息等個(gè)人數(shù)據(jù)。
- 缺乏用戶培訓(xùn)。 一些物聯(lián)網(wǎng)廠商可能沒有向其用戶提供適當(dāng)?shù)陌踩嘤?xùn),這使未受過教育的用戶容易受到攻擊。企業(yè)應(yīng)注意提升用戶的安全意識(shí)。
- 拒絕服務(wù)(DoS)攻擊。 物聯(lián)網(wǎng)系統(tǒng)可能容易受到 DoS 或分布式 DoS 攻擊,這種攻擊下大量設(shè)備會(huì)被用來利用軟件缺陷或簡單地通過惡意流量來壓垮或淹沒目標(biāo)系統(tǒng)。為了防止這種攻擊,物聯(lián)網(wǎng)系統(tǒng)需要有強(qiáng)大的安全措施,包括防火墻、入侵檢測和預(yù)防系統(tǒng),以及訪問控制。此外,物聯(lián)網(wǎng)系統(tǒng)應(yīng)被設(shè)計(jì)成更具彈性、能夠自動(dòng)檢測和緩解攻擊,減少管理運(yùn)維的人力成本。
物聯(lián)網(wǎng)廠商需要在物聯(lián)網(wǎng)系統(tǒng)設(shè)計(jì)與建設(shè)時(shí)優(yōu)先考慮安全問題,以確保其設(shè)備的安全,以及面對(duì)攻擊時(shí)能夠彈性應(yīng)對(duì)。
如何通過 MQTT 保障物聯(lián)網(wǎng)系統(tǒng)安全?
當(dāng)我們使用 MQTT 構(gòu)建自己的物聯(lián)網(wǎng)系統(tǒng)時(shí),可以從以下幾個(gè)方面考慮安全性問題。按其所在的不同協(xié)議層進(jìn)行細(xì)分,可以分為網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。
-
網(wǎng)絡(luò)層。 MQTT 在 IP 網(wǎng)絡(luò)中運(yùn)行,因此網(wǎng)絡(luò)層的安全最佳實(shí)踐都適用于 MQTT。 也就是說,正確使用防火墻、VPN、IPsec,可以幫助防止入侵者訪問物聯(lián)網(wǎng)網(wǎng)絡(luò)上的數(shù)據(jù)。
-
傳輸層。 在傳輸層,我們并不建議通過 TCP 或 WebSocket 等協(xié)議直接發(fā)送明文數(shù)據(jù),例如在應(yīng)用層中用于認(rèn)證的用戶名、密碼等敏感數(shù)據(jù),這可能會(huì)使應(yīng)用層的安全機(jī)制形同虛設(shè)。因?yàn)楫?dāng)入侵者直接從傳輸層竊取數(shù)據(jù)時(shí),他可以直接知道你正在使用的用戶名和密碼。
更好的辦法是,借助 TLS 加密協(xié)議為我們的數(shù)據(jù)提供端到端的安全性。除了使數(shù)據(jù)變成難以破解的密文數(shù)據(jù)以外,TLS 還能提供多項(xiàng)保護(hù),例如支持客戶端對(duì)服務(wù)端身份合法性的確認(rèn),當(dāng)要求客戶端使用證書時(shí),服務(wù)端也能確認(rèn)客戶端是否合法,這將有效避免中間人攻擊。
-
應(yīng)用層。 雖然我們已經(jīng)能夠在傳輸層提供比較到位的安全保護(hù)了,但并不是所有的系統(tǒng)都支持 TLS。運(yùn)行于應(yīng)用層的 MQTT 協(xié)議也通過用戶名、密碼字段提供了對(duì)密碼認(rèn)證和 Token 認(rèn)證的支持,確保只有合法的設(shè)備才能接入 MQTT 代理。MQTT 5.0 中還引入了增強(qiáng)認(rèn)證機(jī)制來提供雙向的身份確認(rèn)。
另一方面,應(yīng)用層的安全機(jī)制通常也是最后一層安全保障,除了驗(yàn)證接入者的身份,我們最好對(duì)接入者能夠執(zhí)行的操作也進(jìn)行檢查,例如接入者可以發(fā)布消息到哪些主題上,以及可以從哪些主題消費(fèi)消息。
結(jié)語
如前文所提,作為物聯(lián)網(wǎng)通信協(xié)議的事實(shí)標(biāo)準(zhǔn),MQTT 協(xié)議提供了很多與安全相關(guān)的功能特性,以保障物聯(lián)網(wǎng)系統(tǒng)的安全。為了幫助物聯(lián)網(wǎng)開發(fā)者充分了解這些特性,從多維度構(gòu)建更加安全可靠的物聯(lián)網(wǎng)系統(tǒng)與應(yīng)用,EMQ 特別推出了《MQTT 安全》專題系列文章。
在本專題的下一篇文章中,我們將詳細(xì)講解基于用戶名密碼的認(rèn)證方式,如何在 MQTT 中正確使用這一方式進(jìn)行身份驗(yàn)證,以及如何避免和解決其中可能的安全隱患。敬請(qǐng)期待。
版權(quán)聲明: 本文為 EMQ 原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處。文章來源:http://www.zghlxwxcb.cn/news/detail-440551.html
原文鏈接:https://www.emqx.com/zh/blog/understanding-mqtt-security-a-comprehensive-overview文章來源地址http://www.zghlxwxcb.cn/news/detail-440551.html
到了這里,關(guān)于MQTT 安全解析:構(gòu)建可靠的物聯(lián)網(wǎng)系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!