李淼+馬楠+周椿入



摘 要:隨著物聯網技術的興起和發展,越來越多的物聯網設備得到廣泛的部署和應用。物聯網系統主要包含海量終端、傳輸網絡和云端,對應物聯網系統的感知層、網絡層以及應用層三層劃分。在每一個層次中,都使用了不同的通信協議,應用層通信協議是普通用戶接觸最多的,也最容易引發安全問題的協議。本文將對物聯網應用層協議進行分析,對每一種物聯網應用層協議進行簡單介紹,從中發現可能存在的安全隱患問題,并對安全隱患問題進行研究分析。
關鍵詞:物聯網;應用層;協議;安全性分析
中圖分類號: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 引言
目前,全球已經有越來越多的物聯網設備投入了使用。據Gartner預測,到2020年全球所使用的物聯網設備數量將成長至208億個。
通信技術對物聯網來說十分常用且關鍵,無論是近距離無線傳輸技術,還是移動通信技術,都影響著物聯網的發展。物聯網通信協議復雜多樣,每個協議各有自身的特點,由于物聯網行業目前尚未完全發展成熟,網絡通信的各個環節都存在還未發現的安全隱患,也沒有完整的統一的安全解決方案。研究和分析物聯網系統的通信協議,從中發現可能存在的安全隱患,無論是理論上,還是實際應用方面,都具有重要的研究意義和價值。
2 物聯網協議框架
當前,物聯網系統架構有兩種劃分方法,第一種方法是將物聯網系統分為感知層、傳輸層、管控層和應用層的四層架構,如圖1所示。其中,感知層由各種具有感知能力的設備組成,主要用于感知和采集數據。 傳輸層也被稱為網絡層,解決的是感知層所獲得的數據傳輸問題,是進行信息交換、傳遞的數據通路,包括接入網與傳輸網兩種。管控層主要接受采集到的數據信息,進行相關的信息存儲和處理,控制等事務。應用層根據底層采集的數據,形成與業務需求相適應、實時更新的動態數據資源庫,為各類業務提供統一的信息資源支撐,從而最終實現物聯網各個行業領域應用,一般情況下也可以將管控層合并劃分到應用層[1]。
第二種分類方法是將物聯網系統分為海(海量的終端設備)、網(網絡通信)和云(云端服務),其中“海”對應感知層,“網”對應傳輸層,“云”對應管控層和應用層[2],如圖2所示。
其中,傳輸層主要負責網絡通信的任務,它與互聯網的網絡結構類似,物聯網的網絡結構主要由物理層、網絡層、傳輸層和應用層組成,如圖3所示[3]。
物理層在物聯網體系中,也叫接入層,是物聯網設備組網和接入網絡的基層,它包括蜂窩網絡協議GSM、GPRS、LTE、無線局域網協議IEEE802.11、寬帶無線 MAN 標準IEEE802.16和低速率個人無線網協議IEEE802.15.4等,還包括近距離通信協議藍牙、NFC等[4]。
網絡層和傳輸層與傳統的計算機網絡中的層次類似。網絡層以IP協議為主,包括IPv4和IPv6等。除此之外,在IPv6基礎上,還提出了專門針對物聯網而設計的低速率個人無線網協議6LoWPAN協議,以及基于802.15.4的低功耗局域網協議ZigBee等。網絡層對端到端的包傳輸進行定義,它定義了能夠標識所有結點的邏輯地址,還定義了路由實現的方式和學習的方式。
傳輸層以TCP和UDP協議為主,這層的功能包括是否選擇差錯恢復協議還是無差錯恢復協議,及在同一主機上對不同應用的數據流的輸入進行復用,還包括對收到的順序錯誤的數據包的重新排序功能。
應用層是負責設備之間應用程序通訊服務的,是用戶日常接觸最多的層次。在物聯網體系中,除了常規的HTTP、WebSocket、XMPP協議之外,還有專門針對物聯網應用提出的CoAP協議、MQTT協議等[5]。endprint
3 物聯網應用層協議介紹
3.1 HTTP協議
在互聯網時代,TCP/IP協議已經成為行業的統一協議,現在的物聯網的通信架構通常也是構建在傳統互聯網基礎架構之上的。在當前的互聯網通信協議中,HTTP(HyperText Transfer Protocol,超文本傳輸協議)由于開發成本低、開放程度高,大部分物聯網協議采用HTTP網絡傳輸,所以很多廠商在構建物聯網系統時也基于HTTP協議進行開發[6]。
但是,HTTP協議在物聯網的環境下,存在著數據推送實時性低的問題,于是業界又提出了WebSocket辦法。WebSocket是HTML5提出的基于TCP之上的可支持全雙工通信協議標準,其在設計上基本遵循HTTP模型,對基于HTTP協議的物聯網系統是一個很好的補充。
3.2 XMPP協議
由于物聯網設備通信的模式和互聯網中的即時通訊應用的消息模式極為相似,互聯網中常用的即時通訊協議,也被大量運用于物聯網系統構建中,其中的典型協議是XMPP(Extensible Messaging and Presence Protocol)、可擴展通訊和表示協議。
XMPP是基于XML的協議,由于其開放性和易用性,在互聯網及時通訊應用中運用廣泛。相對HTTP,XMPP在通訊的業務流程上是更適合物聯網系統的,開發者不需要耗費過多精力去解決設備通訊時的業務通訊流程,相對的開發成本更低[7,8]。
3.3 CoAP協議
由于互聯網中應用的HTTP和XMPP等協議無法滿足在物聯網環境下的各項需求,于是業界提出了既可以借用Web技術的設計思想,同時又能適應惡劣的物聯網設備運行環境的協議,即CoAP(Constrained Application Protocol),受限應用協議[9]。
CoAP協議的設計目標就是在低功耗低速率的設備上實現物聯網通信。CoAP和HTTP協議一樣,采用URL標示需要發送的數據,在協議格式的設計上也基本是參考HTTP協議,非常容易理解。同時也進行了三方面的優化: 采用UDP協議,以節省TCP建立連接的成本及協議棧的開銷;將數據包頭部都采用二進制壓縮,以減小數據量,適應低網絡速率場景;發送和接收數據可以異步,以提升了設備響應速度。
3.4 MQTT協議
Message Queuing Telemetry Transport(消息隊列遙測傳輸,MQTT),是由IBM開發的即時通訊協議,相比來說,比較適合物聯網場景的通訊協議。MQTT在協議設計時就考慮到不同設備計算性能的差異,所以所有的協議都是采用二進制格式編解碼,并且編解碼格式都非常易于開發和實現。最小的數據包只有2個字節,對于低功耗低速網絡也有很好的適應性。有非常完善的QOS機制,根據業務場景可以選擇不同的消息送達模式。MQTT協議采用發布/訂閱模式,所有的物聯網終端都通過TCP連接到云端,云端通過主題方式管理各個設備關注的通訊內容,負責將設備與設備之間消息的轉發。
就傳輸協議、消息模式、網絡性能、計算資源等方面對HTTP、XMPP、CoAP、MQTT四種物聯網應用層協議作出比較,如表1所示。
4 物聯網應用層協議安全性分析
4.1 HTTP協議安全分析
HTTP協議是典型的C/S(客戶端/服務器)通訊模式,由客戶端主動發起連接,向服務器請求XML或JSON數據。最早是為了適應Web瀏覽器的上網瀏覽場景和設計的,目前在PC、手機、PAD等終端上都應用廣泛,但并不適用于物聯網場景。在物聯網場景中存在三個主要缺陷。
第一,由于必須由設備主動向服務器發送數據,難以主動向設備推送數據。所以只對簡單的數據采集等場景勉強適用,而對于頻繁的操控場景,只能推過設備定期主動拉取的方式來實現消息推送,實現成本和實時性都不佳。
第二,HTTP采用明文傳輸,并且缺乏消息完整性的檢驗。攻擊者使用網絡嗅探方式就可以輕易獲取明文傳輸的信息,而HTTP只在數據包頭進行了數據長度的檢驗,并未對數據內容做驗證,攻擊者可以輕易地發起中間人攻擊。因此,HTTP在很多安全性要求較高的物聯網場景(如移動支付等)是不適用的。
第三,不同于用戶交互終端如PC、手機,物聯網場景中的設備多樣化,對于運算和存儲資源都十分受限的設備,HTTP協議實現、XML/JSON數據格式的解析都無法有效地實現。
4.2 XMPP協議安全分析
XMPP雖然優化了通訊業務的流程,降低了開發成本,但是在HTTP協議中的安全性以及計算資源消耗等問題并沒有得到本質的解決。如果物聯網智能設備需要保持長時間在線的會話并且要接收云端消息,可采用簡單和方便的XMPP協議。相應的XMPP協議存在的安全問題,也將帶入到該物聯網環境中。
如圖4所示,國內某廠商的物聯網設備和第三方平臺之間使用的是通過XMPP協議實現會話的控制和長連接保持在線的,用戶通過手機發送指令到云端服務來控制相應的設備。在此場景下,攻擊者通過網絡嗅探方式,可以輕易地獲取到設備與云平臺通信明文的完整內容,利用支持XMPP協議的普通聊天軟件,即可模擬設備登錄到云平臺。在搜集了大量的設備與云端通信內容后,可以獲得完整的控制業務流程、控制指令集等重要的敏感信息,進一步修改設備ID編號,即可控制其他在線的任意同款設備。
從示例可以看出,簡單地使用XMPP協議會有重大的安全隱患,一旦攻擊者完全控制設備并發送惡意指令,如空調溫度設為100 ℃、洗衣機高速空轉等,都將可能威脅到用戶的經濟利益和人身安全。
4.3 CoAP協議安全分析
CoAP協議可以比喻為針對物聯網場景的HTTP移植,保留了很多HTTP相似的設計。核心內容包括資源抽象,REST式的交互以及可擴展的頭選項等。但是,因為采用了不穩定連接UDP的傳輸層協議,CoAP無法直接通過SSL/TLS加密協議進行安全加固。而為了實現數據加密、完整性保護和身份驗證等安全保護,CoAP提出使用數據報傳輸層安全(Datagram Transport Layer Security,DTLS)作為安全協議,這需要大量的信息交流才能建立安全的會話,因此使用DTLS協議會使得物聯網設備很低效。除此之外,使用UDP連接導致了CoAP無法提供公共訂閱消息隊列,對物聯網設備的反控難以有效的實施[10,11]。另一方面,由于很多物聯網設備隱藏在局域網內部,CoAP設備作為服務器無法被外部設備尋址,在IPv6沒有普及之前,CoAP只能適用于局域網內部通信,極大地限制了它的發展。endprint
4.4 MQTT協議安全分析
MQTT的最大優勢在于公共訂閱消息隊列機制以及多對多廣播能力。有了指向MQTT代理端的長效TCP連接支持,使有限的帶寬進行消息收發變得簡單而輕松。
而MQTT的缺點也在于此,其始終存在的連接限制了設備進入休眠狀態的整體時長。同時,MQTT缺少基礎協議層面的加密機制。MQTT被設計為一種輕量化協議,內置加密的方式支持TLS協議,但這會給傳輸連接增加很大負擔,如果在應用程序層級添加定制化安全機制,則需要進行大量的調整工作[12]。
5 結束語
物聯網由于資源受限、網絡環境復雜等因素,其應用層的通信協議很難做到既滿足低功耗和運算能力的需求,又保證通信數據的安全[13,14]。本文首先介紹了物聯網的架構和物聯網的通信協議框架,接下來對具有代表性的應用層協議HTTP、XMPP、CoAP、MQTT等做了簡要的介紹。最后對上述四種應用層協議進行了安全性分析。針對物聯網環境下低功耗、低運算能力的需求,提出即滿足正常運行的功能,又保證數據安全的通信協議,是一個值得長期研究的課題。
參考文獻
[1] 曹洋,王建平.物聯網架構及其產業鏈研究[J].技術經濟和管理研究,2013(02):98-101.
[2] 宮艷雪.面向智慧社區的物聯網架構研究[J].計算機工程與設計,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] 武傳坤.物聯網安全架構初探[J].中國科學院院刊,2010,25(04):411-419.
[6] 吳振宇.基于Web的物聯網應用體系架構和關鍵技術研究[D].北京:北京郵電大學,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協議的安全性分析及其應用研究[D].西安:西安電子科技大學,2012.
[9] 湯春明.無線物聯網中CoAP協議的研究與實現[J].現代電子技術,2013,36(01):40-44.
[10] 郭雨萌.關于CoAP可靠組通信協議的研究[D].北京:北京郵電大學,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的安全通信服務器的研究與實現[D].北京:中國科學院大學,2015.
[13] 周明.物聯網應用若干關鍵問題的研究[D].北京:北京郵電大學,2014.
[14] 楊光.物聯網安全威脅與措施[J].清華大學學報:自然科學版,2011,51(10):1335-1340.endprint