物联网系统应用层协议安全性研究
2018-01-20李淼马楠周椿入
李淼+马楠+周椿入
摘 要:随着物联网技术的兴起和发展,越来越多的物联网设备得到广泛的部署和应用。物联网系统主要包含海量终端、传输网络和云端,对应物联网系统的感知层、网络层以及应用层三层划分。在每一个层次中,都使用了不同的通信协议,应用层通信协议是普通用户接触最多的,也最容易引发安全问题的协议。本文将对物联网应用层协议进行分析,对每一种物联网应用层协议进行简单介绍,从中发现可能存在的安全隐患问题,并对安全隐患问题进行研究分析。
关键词:物联网;应用层;协议;安全性分析
中图分类号: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