首頁 - 關于我們 - 新聞活動 - 保護MQTT消息的(de)安全

保護MQTT消息的(de)安全

2021-11-12新聞

選自AutomationWorld丨戴維·格林(lín)菲爾德丨内容總監丨NOV.9.2021


在MQTT通(tōng)信中使用(yòng)消息代理(lǐ)解決了(le)一些工業網絡安全問題,但不是全部。該技術的(de)共同發明(míng)者提供了(le)如何确保MQTT通(tōng)信安全的(de)提示。


  • MQTT(消息隊列遙測傳輸)架構的(de)一個(gè)關鍵方面涉及到使用(yòng)一個(gè)中介服務器來(lái)收集數據,因爲它的(de)變化(huà),從它所連接的(de)設備。然後,它将這(zhè)些數據點發布給其他(tā)系統或應用(yòng)程序,這(zhè)些系統或應用(yòng)程序訂閱由服務器收集的(de)那些特定的(de)數據源。因爲訂閱的(de)系統或應用(yòng)程序并不直接連接到他(tā)們所監控的(de)設備,所以MQTT的(de)信息傳遞結構本身就提供了(le)一些安全級别。



  • 然而,像任何安全措施一樣,這(zhè)種對(duì)設備和(hé)訂閱它們的(de)系統的(de)解耦并不能解決所有潛在的(de)網絡安全角度。除了(le)服務器提供的(de)直接斷開連接外,MQTT基礎設施還(hái)支持幾個(gè)使用(yòng)廣泛采用(yòng)的(de)互聯網安全方法的(de)選項,如網上銀行中使用(yòng)的(de)和(hé)NIST(美(měi)國國家标準與技術研究院)推薦的(de)安全方法。




要了(le)解MQTT的(de)各種安全措施,首先有助于了(le)解MQTT的(de)IIoT(工業物(wù)聯網)基礎設施的(de)構建模塊。




  • MQTT邊緣客戶端——這(zhè)些是工廠或現場(chǎng)的(de)遠(yuǎn)程分(fēn)布設備和(hé)/或網關,連接到你的(de)過程,以收集數據。  


  • MQTT企業客戶端——這(zhè)可(kě)以是任何需要訂閱MQTT服務器以接收或發送IIoT基礎設施中信息的(de)集中式或遠(yuǎn)程應用(yòng)程序。


  • MQTT服務器——這(zhè)些是集中式服務器,邊緣和(hé)企業客戶端應用(yòng)程序通(tōng)過連接來(lái)發送和(hé)接收數據。



ArlenNipper,CirrusLink公司總裁兼首席技術官。


Cirrus Link公司總裁兼首席技術官、MQTT的(de)共同創造者Arlen Nipper解釋說,MQTT邊緣和(hé)企業客戶端都使用(yòng)相同的(de)安全模型。"他(tā)說:"每個(gè)人(rén)都利用(yòng)傳輸層安全(TLS)和(hé)來(lái)自證書(shū)機構(CA)的(de)安全證書(shū)憑證,在TCP/IP網絡上啓動一個(gè)出站連接。


TLS使用(yòng)一套公共/私人(rén)安全證書(shū),MQTT客戶端必須與MQTT服務器建立連接,而該連接是由CA認證的(de)。這(zhè)與目前銀行系統使用(yòng)的(de)安全級别相同,被NIST認爲是最佳實踐。


Nipper解釋說,MQTT拓撲結構的(de)網絡架構要求MQTT邊緣客戶端禁用(yòng)網絡上的(de)所有入站TCP端口。"這(zhè)通(tōng)過防止互聯網/内聯網上的(de)潛在攻擊者簡單地與邊緣設備建立連接,提供了(le)高(gāo)水(shuǐ)平的(de)安全性"。


雖然這(zhè)種配置提供了(le)堅實的(de)安全保障,但Nipper指出,它可(kě)能爲訪問邊緣客戶端進行遠(yuǎn)程調試和(hé)配置帶來(lái)挑戰。"他(tā)說:"這(zhè)些挑戰可(kě)以用(yòng)反向VPN連接來(lái)克服。



邊緣設備使用(yòng)的(de)TLS的(de)配置也(yě)用(yòng)于MQTT服務器。"Nipper說:"MQTT服務器以MQTT級别的(de)用(yòng)戶名、密碼和(hé)訪問控制列表(ACL)的(de)形式進一步利用(yòng)安全措施。"ACL限制哪些設備将被允許連接到MQTT服務器。ACL還(hái)控制一個(gè)給定的(de)用(yòng)戶名/密碼對(duì)可(kě)以發布和(hé)訂閱哪些主題,提供進一步的(de)安全性。


Nipper補充說,MQTT服務器應該設置在DMZ和(hé)防火牆後面,隻允許兩個(gè)入站的(de)連接端口:8883和(hé)443。


由于MQTT服務器在企業服務總線中提供消息傳遞機制,Nipper指出,MQTT服務器 "必須符合3.1.1 OASIS标準"。Cirrus Link爲此提供了(le)一個(gè)MQTT分(fēn)銷商和(hé)Chariot MQTT服務器。該公司還(hái)提供Chariot MQTT服務器,以實現多(duō)個(gè)MQTT服務器的(de)冗餘,并爲企業内部或雲連接的(de)應用(yòng)提供更多(duō)的(de)連接客戶端。




爲了(le)重申上面提出的(de)安全建議(yì),Nipper 建議(yì)

在傳輸和(hé)應用(yòng)層面應用(yòng)以下(xià)安全措施。


  • 物(wù)理(lǐ)網絡/VPN,實現最終的(de)安全。

  • 所有連接都使用(yòng)CA的(de)證書(shū)憑證進行TLS。

  • 在MQTT邊緣客戶端應禁用(yòng)所有的(de)入站端口。

  • 在MQTT服務器上應該隻開放兩個(gè)TCP/IP端口(8883和(hé)443)。

  • MQTT服務器使用(yòng)MQTT客戶端用(yòng)戶名/密碼;以及

  • 應使用(yòng)ACL來(lái)限制MQTT客戶端對(duì)他(tā)們可(kě)以發布或訂閱的(de)主題級别的(de)訪問。



安全層級丨Security Layers


Nipper指出,網絡安全可(kě)以分(fēn)爲三層--每一層都能提供不同程度的(de)安全,以抵禦網絡攻擊。


  • 物(wù)理(lǐ)層提供了(le)最高(gāo)級别的(de)安全,網絡與任何外部連接隔離,或被完全封裝在虛拟私人(rén)網絡(VPN)中。



  • 傳輸層使用(yòng)傳輸層安全(TLS)與來(lái)自證書(shū)機構(CA)的(de)安全證書(shū)憑證,以确保使用(yòng)公共網絡的(de)基礎設施的(de)安全,在這(zhè)種情況下(xià),爲每個(gè)終端設備設置離散的(de)VPN是不現實的(de),也(yě)不符合成本效益。防火牆也(yě)可(kě)以在傳輸層使用(yòng),關閉遠(yuǎn)程設備上的(de)所有TCP/IP端口,隻允許在中心位置操作所需的(de)最小端口。



  • 第三層是應用(yòng)安全,在Cirrus Link MQTT服務器内,通(tōng)過訪問控制列表(ACL)應用(yòng)用(yòng)戶名/密碼驗證。



"Nipper說:"這(zhè)些層的(de)組合确保了(le)一個(gè)強大(dà)的(de)安全IIoT網絡。



END.