邢賽楠
(湖北大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,湖北 武漢 430062)
MQTT傳輸安全問題淺析
邢賽楠
(湖北大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,湖北 武漢 430062)
物聯(lián)網(wǎng)技術(shù)是信息科技發(fā)展演進(jìn)形成的一項(xiàng)全新技術(shù),它將各類設(shè)備,比如手機(jī)、電腦、可穿戴設(shè)備等,通過無線或有線的方式連接到公共網(wǎng)絡(luò),以便于人們能夠隨時(shí)隨地操控,方便人們的生活。然而,物聯(lián)網(wǎng)在方便人們生活的同時(shí),在技術(shù)上提出了更多挑戰(zhàn),其中,最突出的一個(gè)問題便是安全問題,并且該問題是物聯(lián)網(wǎng)技術(shù)革新中發(fā)展最慢的一類問題。MQTT協(xié)議是由IBM提出的一套物聯(lián)網(wǎng)傳輸層協(xié)議,該協(xié)議基于客戶端/服務(wù)器架構(gòu),具有傳輸非對稱性特點(diǎn),非常適用于物聯(lián)網(wǎng)大規(guī)模非實(shí)時(shí)信息傳輸。通過討論MQTT的傳輸安全性問題,提出了一些未來可能的研究方向。
MQTT;物聯(lián)網(wǎng);安全性;傳輸層
物聯(lián)網(wǎng)(Internet Of Things,IOT)是一項(xiàng)全新的技術(shù),它將各類設(shè)備連接到公共網(wǎng)絡(luò)。國際電信巨頭Cisco公司調(diào)查得出,預(yù)計(jì)在2020年,全球?qū)⒂?00億設(shè)備相互連接。物聯(lián)網(wǎng)推動了從智能家居到智能工業(yè)的整個(gè)自動化時(shí)代,將對人們的生活產(chǎn)生巨大的影響。世界各國都制定了物聯(lián)網(wǎng)智能戰(zhàn)略,比如德國的工業(yè)4.0等。我國也出臺了相應(yīng)的宏偉目標(biāo),名為“中國制造2025”。工業(yè)物聯(lián)網(wǎng)將是未來科技發(fā)展、節(jié)能減排、自動化工業(yè)的強(qiáng)力推手。
然而,隨著越來越多、數(shù)以億計(jì)的設(shè)備連接入網(wǎng)使用,一系列技術(shù)限制和難題也隨之而來。其中,最引人關(guān)注的問題便是安全問題。在傳統(tǒng)的互聯(lián)網(wǎng)時(shí)代,對安全問題的討論由來已久,不少安全問題已經(jīng)得到解決。然而這些辦法可能在物聯(lián)網(wǎng)時(shí)代不能直接使用,其最大的原因便是,物聯(lián)網(wǎng)的設(shè)備多是輕量級設(shè)備,在能耗、尺寸以及計(jì)算能力上均多有限制。比如,由于資源受限,傳感器網(wǎng)絡(luò)中廣泛使用的安全協(xié)議IPsec協(xié)議不能在無線傳感網(wǎng)絡(luò)中使用。
此外,物聯(lián)網(wǎng)時(shí)代的設(shè)備互聯(lián)問題也非常關(guān)鍵,各種各樣的互聯(lián)協(xié)議層出不窮,比如COAP(ConstrainedApplication Protocol)、MQTT(Message Queue Telemetry Transport)、XMPP(Exensible Messaging and Presence Protocol)等。其中,由OASIS組織提出的MQTT互聯(lián)協(xié)議是一類輕量級協(xié)議。該協(xié)議已被廣泛應(yīng)用在工業(yè)物聯(lián)網(wǎng)中,比如石油、勘探等領(lǐng)域。
本文重點(diǎn)探討MQTT傳輸協(xié)議中的安全問題,分析了MQTT的安全傳輸機(jī)制及目前存在的一些技術(shù)問題。章節(jié)內(nèi)容劃分如下:第一節(jié)描述了MQTT協(xié)議信息傳輸架構(gòu);第二節(jié)探討了MQTT信息傳輸存在的安全問題;第三節(jié)總結(jié)了本文的內(nèi)容,提出了未來可能的發(fā)展方向。
MQTT協(xié)議是消息隊(duì)列電文傳輸協(xié)議的縮寫,由IBM在1999年設(shè)計(jì)并提出,其設(shè)計(jì)的主要目的是為大量的計(jì)算能力有限,工作在低帶寬、高延時(shí)、不可靠網(wǎng)絡(luò)的無線傳感網(wǎng)絡(luò)設(shè)備或傳感器提供一種開放、輕量、快捷的通信協(xié)議。MQTT通信架構(gòu)如圖1所示。
圖1MQTT通信架構(gòu)
圖2MQTT信息傳輸幀結(jié)構(gòu)
通常,一例MQTT通信包括2類終端,即MQTT客戶端和MQTT服務(wù)端。MQTT客戶端能夠發(fā)送或者接收信息,在MQTT中,發(fā)送又被稱作“發(fā)布”,接收又被稱作“訂閱”。發(fā)布者發(fā)送一些應(yīng)用信息,訂閱者接收這些信息。MQTT服務(wù)端連接所有的內(nèi)網(wǎng)MQTT客戶端,接收發(fā)布者發(fā)送的信息,并傳遞這些信息到那些完成信息訂閱的MQTT客戶端。通常,物聯(lián)網(wǎng)終端傳感器、手機(jī)設(shè)備等均為MQTT客戶端,它們將要廣播的信息發(fā)布到MQTT服務(wù)端。MQTT服務(wù)端收到信息后進(jìn)行匯總分類,然后發(fā)送到MQTT訂閱者。該種傳輸模式把復(fù)雜運(yùn)算工作都放在了MQTT服務(wù)端,減少了MQTT客戶端的工作量,非常適用于資源有限的物聯(lián)網(wǎng)應(yīng)用。MQTT信息傳輸幀結(jié)構(gòu)如圖2所示。
MQTT控制幀包含一個(gè)固定的頭文件和數(shù)據(jù)流。
MQTT的數(shù)據(jù)信息遵循分級結(jié)構(gòu),每一級稱為一個(gè)標(biāo)題,每一個(gè)標(biāo)題包含一個(gè)名字和一項(xiàng)內(nèi)容,級與級之間由符號“/”相連接。
MQTT支持以下3類QOS模式:①“Fire and Forget”模式,或者稱為最多一次模式。在這類模式下,信息可能會丟失。②“Acknowledged delivery”模式,或者稱為最少一次模式。在這類模式下,信息傳輸多次直到信息抵達(dá)為止。③“Exactly once”模式,或者稱為保證交付模式。在該模式下,信息只傳輸一次,保證抵達(dá)。
雖然后2種模式更加可靠,但是在傳輸過程中需要增加更多的開銷,占用更多的帶寬,在一些資源有限制的應(yīng)用場景中可行性受到制約。目前,MQTT協(xié)議并未在安全性問題上提出解決方案,筆者認(rèn)為其安全問題能夠在以下三個(gè)方面進(jìn)行探索:認(rèn)證,鑒權(quán)以及數(shù)據(jù)加密。認(rèn)證方面,可以在建立連接后體檢鑒權(quán)程序,認(rèn)證過程通過用戶名和密碼實(shí)現(xiàn)。MQTT服務(wù)端存儲所有MQTT客戶端的用戶名和密碼,秘鑰的通信采用密文。
鑒權(quán)方面,MQTT服務(wù)端對所有MQTT客戶端進(jìn)行分類分級,并制定對應(yīng)的權(quán)限以及能夠操作的對象。通過用戶名和密碼,MQTT服務(wù)端能夠?qū)λ蠱QTT客戶端進(jìn)行鑒權(quán)。在很多情況下,認(rèn)證過程和鑒權(quán)過程能夠合二為一。MQTT數(shù)據(jù)加密方面,能夠在各個(gè)層對傳輸?shù)臄?shù)據(jù)進(jìn)行加密。例如在傳輸層,由于MQTT數(shù)據(jù)傳輸是基于TCP/IP協(xié)議,因此,可以采用TLS進(jìn)行加密。在數(shù)據(jù)鏈路層,可以采用傳統(tǒng)的AES算法對數(shù)據(jù)進(jìn)行加密。加密過程可以使用硬件加速器實(shí)現(xiàn)。
本文探討了面向物聯(lián)網(wǎng)應(yīng)用的MQTT協(xié)議以及其安全性問題??梢钥吹?,傳統(tǒng)的安全問題解決方案由于其運(yùn)算量巨大,不能直接適用于資源受限的物聯(lián)網(wǎng)場景。因此未來的解決方案的方向?qū)⒃谳p量級和安全性能方面達(dá)到平衡。不久的將來,越來越多的設(shè)備將連接到公共網(wǎng)絡(luò),因此,筆者呼吁政府機(jī)關(guān)以及協(xié)議制定機(jī)構(gòu)需要盡快對現(xiàn)有的MQTT協(xié)議進(jìn)行安全性方面的完善。
[1]任享,馬躍,楊海波,等.基于MQTT協(xié)議的消息推送服務(wù)器[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2014(3).
[2]蓋榮麗,錢玉磊,李鴻彬,等.基于MQTT的企業(yè)消息推送系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2015(11).本文部分參考文獻(xiàn)因著錄項(xiàng)目不全被刪除。
TP393.04
A
10.15913/j.cnki.kjycx.2018.01.017
2095-6835(2018)01-0017-02
〔編輯:劉曉芳〕