李淼+馬楠+周椿入
摘 要:隨著物聯(lián)網(wǎng)技術(shù)的興起和發(fā)展,越來越多的物聯(lián)網(wǎng)設(shè)備得到廣泛的部署和應(yīng)用。物聯(lián)網(wǎng)系統(tǒng)主要包含海量終端、傳輸網(wǎng)絡(luò)和云端,對應(yīng)物聯(lián)網(wǎng)系統(tǒng)的感知層、網(wǎng)絡(luò)層以及應(yīng)用層三層劃分。在每一個層次中,都使用了不同的通信協(xié)議,應(yīng)用層通信協(xié)議是普通用戶接觸最多的,也最容易引發(fā)安全問題的協(xié)議。本文將對物聯(lián)網(wǎng)應(yīng)用層協(xié)議進行分析,對每一種物聯(lián)網(wǎng)應(yīng)用層協(xié)議進行簡單介紹,從中發(fā)現(xiàn)可能存在的安全隱患問題,并對安全隱患問題進行研究分析。
關(guān)鍵詞:物聯(lián)網(wǎng);應(yīng)用層;協(xié)議;安全性分析
中圖分類號:TP393.0 文獻標志碼:A
Research on Application Protocol Security of IoT System
Li Miao1, Ma Nan2, Zhou Chun-ru3
(1.China Information Technology Security Evaluation Center, Beijing 100085;
2.School of CyberSpace Security, Beijing University of Posts and Telecommunications, Beijing 100876)
Abstract: With the development of Internet of Things(IoT), more and more IoT devices are deployed and applied in people's daily life. The IoT system consist of massive terminals, the transmission network and the Cloud, which are corresponding to the perceptual layer, the transport layer and the application layer. Different communication protocols work on each layer, among these protocols, which runs on application layer can be mostly reached by people, and is the most possible insecury. This paper introduces each communication protocols of the application layer, and analyzes each protocol's security problems.
Key words: Internet of Things; Application Layer; Protocol; Security Analysis
1 引言
目前,全球已經(jīng)有越來越多的物聯(lián)網(wǎng)設(shè)備投入了使用。據(jù)Gartner預(yù)測,到2020年全球所使用的物聯(lián)網(wǎng)設(shè)備數(shù)量將成長至208億個。
通信技術(shù)對物聯(lián)網(wǎng)來說十分常用且關(guān)鍵,無論是近距離無線傳輸技術(shù),還是移動通信技術(shù),都影響著物聯(lián)網(wǎng)的發(fā)展。物聯(lián)網(wǎng)通信協(xié)議復(fù)雜多樣,每個協(xié)議各有自身的特點,由于物聯(lián)網(wǎng)行業(yè)目前尚未完全發(fā)展成熟,網(wǎng)絡(luò)通信的各個環(huán)節(jié)都存在還未發(fā)現(xiàn)的安全隱患,也沒有完整的統(tǒng)一的安全解決方案。研究和分析物聯(lián)網(wǎng)系統(tǒng)的通信協(xié)議,從中發(fā)現(xiàn)可能存在的安全隱患,無論是理論上,還是實際應(yīng)用方面,都具有重要的研究意義和價值。
2 物聯(lián)網(wǎng)協(xié)議框架
當前,物聯(lián)網(wǎng)系統(tǒng)架構(gòu)有兩種劃分方法,第一種方法是將物聯(lián)網(wǎng)系統(tǒng)分為感知層、傳輸層、管控層和應(yīng)用層的四層架構(gòu),如圖1所示。其中,感知層由各種具有感知能力的設(shè)備組成,主要用于感知和采集數(shù)據(jù)。 傳輸層也被稱為網(wǎng)絡(luò)層,解決的是感知層所獲得的數(shù)據(jù)傳輸問題,是進行信息交換、傳遞的數(shù)據(jù)通路,包括接入網(wǎng)與傳輸網(wǎng)兩種。管控層主要接受采集到的數(shù)據(jù)信息,進行相關(guān)的信息存儲和處理,控制等事務(wù)。應(yīng)用層根據(jù)底層采集的數(shù)據(jù),形成與業(yè)務(wù)需求相適應(yīng)、實時更新的動態(tài)數(shù)據(jù)資源庫,為各類業(yè)務(wù)提供統(tǒng)一的信息資源支撐,從而最終實現(xiàn)物聯(lián)網(wǎng)各個行業(yè)領(lǐng)域應(yīng)用,一般情況下也可以將管控層合并劃分到應(yīng)用層[1]。
第二種分類方法是將物聯(lián)網(wǎng)系統(tǒng)分為海(海量的終端設(shè)備)、網(wǎng)(網(wǎng)絡(luò)通信)和云(云端服務(wù)),其中“海”對應(yīng)感知層,“網(wǎng)”對應(yīng)傳輸層,“云”對應(yīng)管控層和應(yīng)用層[2],如圖2所示。
其中,傳輸層主要負責(zé)網(wǎng)絡(luò)通信的任務(wù),它與互聯(lián)網(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu)類似,物聯(lián)網(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu)主要由物理層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層組成,如圖3所示[3]。
物理層在物聯(lián)網(wǎng)體系中,也叫接入層,是物聯(lián)網(wǎng)設(shè)備組網(wǎng)和接入網(wǎng)絡(luò)的基層,它包括蜂窩網(wǎng)絡(luò)協(xié)議GSM、GPRS、LTE、無線局域網(wǎng)協(xié)議IEEE802.11、寬帶無線 MAN 標準IEEE802.16和低速率個人無線網(wǎng)協(xié)議IEEE802.15.4等,還包括近距離通信協(xié)議藍牙、NFC等[4]。
網(wǎng)絡(luò)層和傳輸層與傳統(tǒng)的計算機網(wǎng)絡(luò)中的層次類似。網(wǎng)絡(luò)層以IP協(xié)議為主,包括IPv4和IPv6等。除此之外,在IPv6基礎(chǔ)上,還提出了專門針對物聯(lián)網(wǎng)而設(shè)計的低速率個人無線網(wǎng)協(xié)議6LoWPAN協(xié)議,以及基于802.15.4的低功耗局域網(wǎng)協(xié)議ZigBee等。網(wǎng)絡(luò)層對端到端的包傳輸進行定義,它定義了能夠標識所有結(jié)點的邏輯地址,還定義了路由實現(xiàn)的方式和學(xué)習(xí)的方式。
傳輸層以TCP和UDP協(xié)議為主,這層的功能包括是否選擇差錯恢復(fù)協(xié)議還是無差錯恢復(fù)協(xié)議,及在同一主機上對不同應(yīng)用的數(shù)據(jù)流的輸入進行復(fù)用,還包括對收到的順序錯誤的數(shù)據(jù)包的重新排序功能。
應(yīng)用層是負責(zé)設(shè)備之間應(yīng)用程序通訊服務(wù)的,是用戶日常接觸最多的層次。在物聯(lián)網(wǎng)體系中,除了常規(guī)的HTTP、WebSocket、XMPP協(xié)議之外,還有專門針對物聯(lián)網(wǎng)應(yīng)用提出的CoAP協(xié)議、MQTT協(xié)議等[5]。endprint
3 物聯(lián)網(wǎng)應(yīng)用層協(xié)議介紹
3.1 HTTP協(xié)議
在互聯(lián)網(wǎng)時代,TCP/IP協(xié)議已經(jīng)成為行業(yè)的統(tǒng)一協(xié)議,現(xiàn)在的物聯(lián)網(wǎng)的通信架構(gòu)通常也是構(gòu)建在傳統(tǒng)互聯(lián)網(wǎng)基礎(chǔ)架構(gòu)之上的。在當前的互聯(lián)網(wǎng)通信協(xié)議中,HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議)由于開發(fā)成本低、開放程度高,大部分物聯(lián)網(wǎng)協(xié)議采用HTTP網(wǎng)絡(luò)傳輸,所以很多廠商在構(gòu)建物聯(lián)網(wǎng)系統(tǒng)時也基于HTTP協(xié)議進行開發(fā)[6]。
但是,HTTP協(xié)議在物聯(lián)網(wǎng)的環(huán)境下,存在著數(shù)據(jù)推送實時性低的問題,于是業(yè)界又提出了WebSocket辦法。WebSocket是HTML5提出的基于TCP之上的可支持全雙工通信協(xié)議標準,其在設(shè)計上基本遵循HTTP模型,對基于HTTP協(xié)議的物聯(lián)網(wǎng)系統(tǒng)是一個很好的補充。
3.2 XMPP協(xié)議
由于物聯(lián)網(wǎng)設(shè)備通信的模式和互聯(lián)網(wǎng)中的即時通訊應(yīng)用的消息模式極為相似,互聯(lián)網(wǎng)中常用的即時通訊協(xié)議,也被大量運用于物聯(lián)網(wǎng)系統(tǒng)構(gòu)建中,其中的典型協(xié)議是XMPP(Extensible Messaging and Presence Protocol)、可擴展通訊和表示協(xié)議。
XMPP是基于XML的協(xié)議,由于其開放性和易用性,在互聯(lián)網(wǎng)及時通訊應(yīng)用中運用廣泛。相對HTTP,XMPP在通訊的業(yè)務(wù)流程上是更適合物聯(lián)網(wǎng)系統(tǒng)的,開發(fā)者不需要耗費過多精力去解決設(shè)備通訊時的業(yè)務(wù)通訊流程,相對的開發(fā)成本更低[7,8]。
3.3 CoAP協(xié)議
由于互聯(lián)網(wǎng)中應(yīng)用的HTTP和XMPP等協(xié)議無法滿足在物聯(lián)網(wǎng)環(huán)境下的各項需求,于是業(yè)界提出了既可以借用Web技術(shù)的設(shè)計思想,同時又能適應(yīng)惡劣的物聯(lián)網(wǎng)設(shè)備運行環(huán)境的協(xié)議,即CoAP(Constrained Application Protocol),受限應(yīng)用協(xié)議[9]。
CoAP協(xié)議的設(shè)計目標就是在低功耗低速率的設(shè)備上實現(xiàn)物聯(lián)網(wǎng)通信。CoAP和HTTP協(xié)議一樣,采用URL標示需要發(fā)送的數(shù)據(jù),在協(xié)議格式的設(shè)計上也基本是參考HTTP協(xié)議,非常容易理解。同時也進行了三方面的優(yōu)化: 采用UDP協(xié)議,以節(jié)省TCP建立連接的成本及協(xié)議棧的開銷;將數(shù)據(jù)包頭部都采用二進制壓縮,以減小數(shù)據(jù)量,適應(yīng)低網(wǎng)絡(luò)速率場景;發(fā)送和接收數(shù)據(jù)可以異步,以提升了設(shè)備響應(yīng)速度。
3.4 MQTT協(xié)議
Message Queuing Telemetry Transport(消息隊列遙測傳輸,MQTT),是由IBM開發(fā)的即時通訊協(xié)議,相比來說,比較適合物聯(lián)網(wǎng)場景的通訊協(xié)議。MQTT在協(xié)議設(shè)計時就考慮到不同設(shè)備計算性能的差異,所以所有的協(xié)議都是采用二進制格式編解碼,并且編解碼格式都非常易于開發(fā)和實現(xiàn)。最小的數(shù)據(jù)包只有2個字節(jié),對于低功耗低速網(wǎng)絡(luò)也有很好的適應(yīng)性。有非常完善的QOS機制,根據(jù)業(yè)務(wù)場景可以選擇不同的消息送達模式。MQTT協(xié)議采用發(fā)布/訂閱模式,所有的物聯(lián)網(wǎng)終端都通過TCP連接到云端,云端通過主題方式管理各個設(shè)備關(guān)注的通訊內(nèi)容,負責(zé)將設(shè)備與設(shè)備之間消息的轉(zhuǎn)發(fā)。
就傳輸協(xié)議、消息模式、網(wǎng)絡(luò)性能、計算資源等方面對HTTP、XMPP、CoAP、MQTT四種物聯(lián)網(wǎng)應(yīng)用層協(xié)議作出比較,如表1所示。
4 物聯(lián)網(wǎng)應(yīng)用層協(xié)議安全性分析
4.1 HTTP協(xié)議安全分析
HTTP協(xié)議是典型的C/S(客戶端/服務(wù)器)通訊模式,由客戶端主動發(fā)起連接,向服務(wù)器請求XML或JSON數(shù)據(jù)。最早是為了適應(yīng)Web瀏覽器的上網(wǎng)瀏覽場景和設(shè)計的,目前在PC、手機、PAD等終端上都應(yīng)用廣泛,但并不適用于物聯(lián)網(wǎng)場景。在物聯(lián)網(wǎng)場景中存在三個主要缺陷。
第一,由于必須由設(shè)備主動向服務(wù)器發(fā)送數(shù)據(jù),難以主動向設(shè)備推送數(shù)據(jù)。所以只對簡單的數(shù)據(jù)采集等場景勉強適用,而對于頻繁的操控場景,只能推過設(shè)備定期主動拉取的方式來實現(xiàn)消息推送,實現(xiàn)成本和實時性都不佳。
第二,HTTP采用明文傳輸,并且缺乏消息完整性的檢驗。攻擊者使用網(wǎng)絡(luò)嗅探方式就可以輕易獲取明文傳輸?shù)男畔?,而HTTP只在數(shù)據(jù)包頭進行了數(shù)據(jù)長度的檢驗,并未對數(shù)據(jù)內(nèi)容做驗證,攻擊者可以輕易地發(fā)起中間人攻擊。因此,HTTP在很多安全性要求較高的物聯(lián)網(wǎng)場景(如移動支付等)是不適用的。
第三,不同于用戶交互終端如PC、手機,物聯(lián)網(wǎng)場景中的設(shè)備多樣化,對于運算和存儲資源都十分受限的設(shè)備,HTTP協(xié)議實現(xiàn)、XML/JSON數(shù)據(jù)格式的解析都無法有效地實現(xiàn)。
4.2 XMPP協(xié)議安全分析
XMPP雖然優(yōu)化了通訊業(yè)務(wù)的流程,降低了開發(fā)成本,但是在HTTP協(xié)議中的安全性以及計算資源消耗等問題并沒有得到本質(zhì)的解決。如果物聯(lián)網(wǎng)智能設(shè)備需要保持長時間在線的會話并且要接收云端消息,可采用簡單和方便的XMPP協(xié)議。相應(yīng)的XMPP協(xié)議存在的安全問題,也將帶入到該物聯(lián)網(wǎng)環(huán)境中。
如圖4所示,國內(nèi)某廠商的物聯(lián)網(wǎng)設(shè)備和第三方平臺之間使用的是通過XMPP協(xié)議實現(xiàn)會話的控制和長連接保持在線的,用戶通過手機發(fā)送指令到云端服務(wù)來控制相應(yīng)的設(shè)備。在此場景下,攻擊者通過網(wǎng)絡(luò)嗅探方式,可以輕易地獲取到設(shè)備與云平臺通信明文的完整內(nèi)容,利用支持XMPP協(xié)議的普通聊天軟件,即可模擬設(shè)備登錄到云平臺。在搜集了大量的設(shè)備與云端通信內(nèi)容后,可以獲得完整的控制業(yè)務(wù)流程、控制指令集等重要的敏感信息,進一步修改設(shè)備ID編號,即可控制其他在線的任意同款設(shè)備。
從示例可以看出,簡單地使用XMPP協(xié)議會有重大的安全隱患,一旦攻擊者完全控制設(shè)備并發(fā)送惡意指令,如空調(diào)溫度設(shè)為100 ℃、洗衣機高速空轉(zhuǎn)等,都將可能威脅到用戶的經(jīng)濟利益和人身安全。
4.3 CoAP協(xié)議安全分析
CoAP協(xié)議可以比喻為針對物聯(lián)網(wǎng)場景的HTTP移植,保留了很多HTTP相似的設(shè)計。核心內(nèi)容包括資源抽象,REST式的交互以及可擴展的頭選項等。但是,因為采用了不穩(wěn)定連接UDP的傳輸層協(xié)議,CoAP無法直接通過SSL/TLS加密協(xié)議進行安全加固。而為了實現(xiàn)數(shù)據(jù)加密、完整性保護和身份驗證等安全保護,CoAP提出使用數(shù)據(jù)報傳輸層安全(Datagram Transport Layer Security,DTLS)作為安全協(xié)議,這需要大量的信息交流才能建立安全的會話,因此使用DTLS協(xié)議會使得物聯(lián)網(wǎng)設(shè)備很低效。除此之外,使用UDP連接導(dǎo)致了CoAP無法提供公共訂閱消息隊列,對物聯(lián)網(wǎng)設(shè)備的反控難以有效的實施[10,11]。另一方面,由于很多物聯(lián)網(wǎng)設(shè)備隱藏在局域網(wǎng)內(nèi)部,CoAP設(shè)備作為服務(wù)器無法被外部設(shè)備尋址,在IPv6沒有普及之前,CoAP只能適用于局域網(wǎng)內(nèi)部通信,極大地限制了它的發(fā)展。endprint
4.4 MQTT協(xié)議安全分析
MQTT的最大優(yōu)勢在于公共訂閱消息隊列機制以及多對多廣播能力。有了指向MQTT代理端的長效TCP連接支持,使有限的帶寬進行消息收發(fā)變得簡單而輕松。
而MQTT的缺點也在于此,其始終存在的連接限制了設(shè)備進入休眠狀態(tài)的整體時長。同時,MQTT缺少基礎(chǔ)協(xié)議層面的加密機制。MQTT被設(shè)計為一種輕量化協(xié)議,內(nèi)置加密的方式支持TLS協(xié)議,但這會給傳輸連接增加很大負擔(dān),如果在應(yīng)用程序?qū)蛹壧砑佣ㄖ苹踩珯C制,則需要進行大量的調(diào)整工作[12]。
5 結(jié)束語
物聯(lián)網(wǎng)由于資源受限、網(wǎng)絡(luò)環(huán)境復(fù)雜等因素,其應(yīng)用層的通信協(xié)議很難做到既滿足低功耗和運算能力的需求,又保證通信數(shù)據(jù)的安全[13,14]。本文首先介紹了物聯(lián)網(wǎng)的架構(gòu)和物聯(lián)網(wǎng)的通信協(xié)議框架,接下來對具有代表性的應(yīng)用層協(xié)議HTTP、XMPP、CoAP、MQTT等做了簡要的介紹。最后對上述四種應(yīng)用層協(xié)議進行了安全性分析。針對物聯(lián)網(wǎng)環(huán)境下低功耗、低運算能力的需求,提出即滿足正常運行的功能,又保證數(shù)據(jù)安全的通信協(xié)議,是一個值得長期研究的課題。
參考文獻
[1] 曹洋,王建平.物聯(lián)網(wǎng)架構(gòu)及其產(chǎn)業(yè)鏈研究[J].技術(shù)經(jīng)濟和管理研究,2013(02):98-101.
[2] 宮艷雪.面向智慧社區(qū)的物聯(lián)網(wǎng)架構(gòu)研究[J].計算機工程與設(shè)計,2014,35(01):344-349.
[3] Jeffrey Voas.Securely Making"Things" Right[J].Computer,2015(09):84-88.
[4] Sye Loong Keoh,Sandeep S,Kumar,et al.Securing the Internet of Things:A Standardization Perspective[J].IEEE INTERNET OF THINGS JOURNAL,2014(06):265-275.
[5] 武傳坤.物聯(lián)網(wǎng)安全架構(gòu)初探[J].中國科學(xué)院院刊,2010,25(04):411-419.
[6] 吳振宇.基于Web的物聯(lián)網(wǎng)應(yīng)用體系架構(gòu)和關(guān)鍵技術(shù)研究[D].北京:北京郵電大學(xué),2013.
[7] Jorge Granjal,Edmundo Monteiro,Jorge Silva.Security for the Internet of Things:A Survey of Existing Protocols and Open Research Issues[J].IEEE COMMUNICATION SURVEYS & TUTORIALS,2015,17(03):1294-1312.
[8] 顏歡.XMPP協(xié)議的安全性分析及其應(yīng)用研究[D].西安:西安電子科技大學(xué),2012.
[9] 湯春明.無線物聯(lián)網(wǎng)中CoAP協(xié)議的研究與實現(xiàn)[J].現(xiàn)代電子技術(shù),2013,36(01):40-44.
[10] 郭雨萌.關(guān)于CoAP可靠組通信協(xié)議的研究[D].北京:北京郵電大學(xué),2015.
[11] Reem Abdul Rahman,Babar Shah.Security Analysis of IoT Protocols:A Focus in CoAP[J].MEC International Conference on Big Data and Smart City,2016.
[12] 錢玉磊.基于MQTT的安全通信服務(wù)器的研究與實現(xiàn)[D].北京:中國科學(xué)院大學(xué),2015.
[13] 周明.物聯(lián)網(wǎng)應(yīng)用若干關(guān)鍵問題的研究[D].北京:北京郵電大學(xué),2014.
[14] 楊光.物聯(lián)網(wǎng)安全威脅與措施[J].清華大學(xué)學(xué)報:自然科學(xué)版,2011,51(10):1335-1340.endprint