保護MQTT消息的安全
2021-11-12新聞

選自AutomationWorld丨戴維·格林菲爾德丨內(nèi)容總監(jiān)丨NOV.9.2021
在MQTT通信中使用消息代理解決了一些工業(yè)網(wǎng)絡安全問題,但不是全部。該技術的共同發(fā)明者提供了如何確保MQTT通信安全的提示。

MQTT(消息隊列遙測傳輸)架構的一個關鍵方面涉及到使用一個中介服務器來收集數(shù)據(jù),因為它的變化,從它所連接的設備。然后,它將這些數(shù)據(jù)點發(fā)布給其他系統(tǒng)或應用程序,這些系統(tǒng)或應用程序訂閱由服務器收集的那些特定的數(shù)據(jù)源。因為訂閱的系統(tǒng)或應用程序并不直接連接到他們所監(jiān)控的設備,所以MQTT的信息傳遞結構本身就提供了一些安全級別。
然而,像任何安全措施一樣,這種對設備和訂閱它們的系統(tǒng)的解耦并不能解決所有潛在的網(wǎng)絡安全角度。除了服務器提供的直接斷開連接外,MQTT基礎設施還支持幾個使用廣泛采用的互聯(lián)網(wǎng)安全方法的選項,如網(wǎng)上銀行中使用的和NIST(美國國家標準與技術研究院)推薦的安全方法。

要了解MQTT的各種安全措施,首先有助于了解MQTT的IIoT(工業(yè)物聯(lián)網(wǎng))基礎設施的構建模塊。
MQTT邊緣客戶端——這些是工廠或現(xiàn)場的遠程分布設備和/或網(wǎng)關,連接到你的過程,以收集數(shù)據(jù)。
MQTT企業(yè)客戶端——這可以是任何需要訂閱MQTT服務器以接收或發(fā)送IIoT基礎設施中信息的集中式或遠程應用程序。
MQTT服務器——這些是集中式服務器,邊緣和企業(yè)客戶端應用程序通過連接來發(fā)送和接收數(shù)據(jù)。

ArlenNipper,CirrusLink公司總裁兼首席技術官。
Cirrus Link公司總裁兼首席技術官、MQTT的共同創(chuàng)造者Arlen Nipper解釋說,MQTT邊緣和企業(yè)客戶端都使用相同的安全模型。"他說:"每個人都利用傳輸層安全(TLS)和來自證書機構(CA)的安全證書憑證,在TCP/IP網(wǎng)絡上啟動一個出站連接。

TLS使用一套公共/私人安全證書,MQTT客戶端必須與MQTT服務器建立連接,而該連接是由CA認證的。這與目前銀行系統(tǒng)使用的安全級別相同,被NIST認為是最佳實踐。
Nipper解釋說,MQTT拓撲結構的網(wǎng)絡架構要求MQTT邊緣客戶端禁用網(wǎng)絡上的所有入站TCP端口。"這通過防止互聯(lián)網(wǎng)/內(nèi)聯(lián)網(wǎng)上的潛在攻擊者簡單地與邊緣設備建立連接,提供了高水平的安全性"。
雖然這種配置提供了堅實的安全保障,但Nipper指出,它可能為訪問邊緣客戶端進行遠程調(diào)試和配置帶來挑戰(zhàn)。"他說:"這些挑戰(zhàn)可以用反向VPN連接來克服。

邊緣設備使用的TLS的配置也用于MQTT服務器。"Nipper說:"MQTT服務器以MQTT級別的用戶名、密碼和訪問控制列表(ACL)的形式進一步利用安全措施。"ACL限制哪些設備將被允許連接到MQTT服務器。ACL還控制一個給定的用戶名/密碼對可以發(fā)布和訂閱哪些主題,提供進一步的安全性。
Nipper補充說,MQTT服務器應該設置在DMZ和防火墻后面,只允許兩個入站的連接端口:8883和443。
由于MQTT服務器在企業(yè)服務總線中提供消息傳遞機制,Nipper指出,MQTT服務器 "必須符合3.1.1 OASIS標準"。Cirrus Link為此提供了一個MQTT分銷商和Chariot MQTT服務器。該公司還提供Chariot MQTT服務器,以實現(xiàn)多個MQTT服務器的冗余,并為企業(yè)內(nèi)部或云連接的應用提供更多的連接客戶端。

為了重申上面提出的安全建議,Nipper 建議
在傳輸和應用層面應用以下安全措施。
物理網(wǎng)絡/VPN,實現(xiàn)最終的安全。
所有連接都使用CA的證書憑證進行TLS。
在MQTT邊緣客戶端應禁用所有的入站端口。
在MQTT服務器上應該只開放兩個TCP/IP端口(8883和443)。
在MQTT服務器使用MQTT客戶端用戶名/密碼;以及
應使用ACL來限制MQTT客戶端對他們可以發(fā)布或訂閱的主題級別的訪問。
安全層級丨Security Layers
Nipper指出,網(wǎng)絡安全可以分為三層--每一層都能提供不同程度的安全,以抵御網(wǎng)絡攻擊。
物理層提供了最高級別的安全,網(wǎng)絡與任何外部連接隔離,或被完全封裝在虛擬私人網(wǎng)絡(VPN)中。
傳輸層使用傳輸層安全(TLS)與來自證書機構(CA)的安全證書憑證,以確保使用公共網(wǎng)絡的基礎設施的安全,在這種情況下,為每個終端設備設置離散的VPN是不現(xiàn)實的,也不符合成本效益。防火墻也可以在傳輸層使用,關閉遠程設備上的所有TCP/IP端口,只允許在中心位置操作所需的最小端口。
第三層是應用安全,在Cirrus Link MQTT服務器內(nèi),通過訪問控制列表(ACL)應用用戶名/密碼驗證。
"Nipper說:"這些層的組合確保了一個強大的安全IIoT網(wǎng)絡。
END.
