2. 中国科学院 沈阳计算技术研究所, 沈阳 110168
2. Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168, China
物联网(Internet of things), 作为现今信息化时代发展的重要阶段, 指的是实物与实物之间通过互联网相互连接产生联系, 并进行通信和消息的交换, 来实现智能化的应用的一种网络. 现已广泛的应用在工业、医疗、交通、商业、家居、安防报警等领域中[1]. 无论在哪个领域范围内, 物联网的核心关键都是实物与实物之间通过互联网的互联与数据通信.
燃气表与物联网的结合就是利用物联网的数据通信传输能力, 结合数据信息的管理, 实现远程抄表以及空中支付等智能化服务. 在物联网中, 很多终端设备都是资源受限制的, 因此应用层协议选用支持资源受限环境的CoAP协议[2]. 本文首先介绍物联网无线通信技术以及加密方法, 然后分析数据传输问题, 提出一种混合通信加密方法, 并应用在智能燃气系统中.
1 相关技术介绍 1.1 NB-IoT技术简介窄带物联网(Narrow Band Internet of Things, NB-IoT), 是对万物互联的物联网设计的一种蜂窝网络连接技术, 顾名思义, 它占用的带宽很窄, 大约只需要180 KHz, 是3GPP推出的标准技术, 是在LTE基础上根据自身特点经过修改发展起来的, 使用License频段, 其部署方式相对快捷、灵活, 可以使用带内、独立或保护带三种部署场景的方式[3], 不仅能与现有网络并存, 还能直接部署在GSM、UMTS或LTE网络[4], 即2/3/4/5G的网络上, 支持多连接, 实现现有网络的复用,降低部署成本, 实现平滑升级.
1.2 CoAP协议简介CoAP(Constrained Application Protocol)协议, 是专门用于资源受限制型设备或者网络的传输协议, 传输层使用的是UDP协议[2,5], 消息开销很小, 消息格式很紧凑, 适用于受处理能力以及功耗的限制的设备网络中. CoAP协议的设计理念参考了HTTP协议, 但是传输的时候有明显的区别, 采用双层结构, 支持异步处理通信和组播[6].
1.3 加密方法简介数据加密算法大体上分为对称加密算法和非对称加密算法两类. 对称加密算法的加密和解密密钥用的是同一个, 故速率快, 适用于大数据量, 但是安全性不高. 非对称加密算法有两个密钥, 分为公钥和私钥, 一个作为加密密钥, 一个作为解密密钥, 故安全性高, 但是算法复杂, 速率慢, 因此用的时候时常将对称加密算法和非对称加密算法混合起来一起使用.
2 物联网通信技术及加密算法的研究 2.1 物联网无线通信技术的研究物联网中的无线通信技术主要分为两类, 短距离的无线通信技术有ZigBee、Wi-Fi、蓝牙等[5], 另一类是LPWAN(low-powerWide-AreaNetwork), 也就是广域网通信技术, 它又包括工作在未授权频谱下的LoRa技术和工作在授权频谱下的NB-IoT技术[7], 这些技术的基本性能比较, 如表1所示.
通过比较可以发现, LoRa技术和NB-IoT技术都可用于远距离通信, 但是LoRa工作在未授权频谱下, NB-IoT技术工作在授权频段下, 干扰相对少一些, 并且可以与现有的蜂窝网络融合并存, 易于快速大规模的部署, 更适用于智能燃气系统.
2.2 加密算法的研究
混合加密算法常用的有DES_RSA[8]算法, 使用DES算法对明文数据进行对称加密, 再使用RSA算法对对称加密的密钥进行非对称加密, 在提高安全性的同时, 不降低加密速度, 且这样做也适用于大量数据的加密. 这些混合加密算法大多是针对非物联网的应用环境下, 针对物联网环境更倾向于选择轻量级加密算法, 即在算法的强度符合安全需求的情况下, 对终端的资源消耗也不大, 这样更符合物联网环境.
由于燃气表设备资源受限, 本文选取轻量级加密算法RC4算法, 它不仅对资源消耗小, 而且加解密速度快, 为了安全性考虑, 结合DH算法配合使用, DH算法负责计算并交换密钥, RC4算法负责对数据进行加密, 在保证加密速度的同时提高安全性.
3 系统实现基于本文提出的技术, 以智能燃气系统为背景, 设计了通信协议和加密方法, 系统总架构如图1所示.
系统由终端设备网络、物联网设备接入平台、服务端三个部分组成.
3.1 通信协议设计本系统中设备受到处理能力和功耗等因素的限制, 无法使用TCP或者HTTP等复杂的应用层协议进行数据的传输, 因此选用CoAP协议, 根据其结构, 将数据传输通信协议在CoAP协议的payload上进行扩展定义, 传输的格式使用解析方便的JSON格式, 传输运行在UDP协议上.
3.2 加密算法设计RC4[9]加密算法是Ron Rivest提出来的密钥长度可变的流加密算法簇, 以字节流的形式依次对数据中的一个个的字节进行加密, 解密的时候亦然. 它的加解密速度很快, 核心思想是产生一种被叫做密钥流的伪随机流, 之后进行加密和解密步骤, RC4算法的具体描述如下, 原理如图2所示.
(1) 取一个密钥K, 使用KSA (Key Sheduling Algorithm)密钥调度算法对状态向量S也就是S-box进行初始化和替换, 首先通过密钥K得到向量T, 根据S[i]和T[i]的值与随机取的j值进行取余得到新的j值并交换, 目的是将S-box的元素都处理并随机置换;
(2) 将上一步得到的S-box值使用PRGA (Pseudo Random Generation Algorithm)伪随机生成算法生成得到密钥流k, 取一个位置i的值, 通过相加取余的方式得到另一个位置j的值, 之后交换并相加取余得到新的位置t的值即为密钥流k的元素之一, 循环执行这个操作即可得到完整密钥流k;
(3) 将明文数据与密钥流k进行xor操作就是加密的过程, 将密文数据与密钥流k进行xor操作就是解密过程.
Diffie-Hellman算法[10]简称DH算法, 是一种基于非对称加密的动态密钥交换算法, 这个算法也是使用公钥和私钥的形式, 但是双方交换公钥信息之后可以产生一个共享的一致的密钥, 这个密钥就可以作为后续操作中的加密算法的密钥, 其原理如图3所示, 具体描述如下:
(1) 选取一个素数p和整数q, q是p的一个原根, 并且q的值要小于素数p的值, 这两个数的值公开;
(2) Anne选取一个私钥l, 值小于素数p的值, 计算得到公钥
(3) Bill选取一个私钥r, 值小于素数p的值, 计算得到公钥
(4) Anne和Bill双方各自根据对方的公钥和自己的私钥计算得到共享密钥
本文中数据传输的加密算法选择RC4算法和DH算法结合使用, 由于DH算法存在中间人攻击的漏洞, 也就是中间人会冒充通信双方来通信并获取公钥信息自行计算获得共享密钥, 所以本系统中会加密传输DH算法中的公开变量以及公钥等信息, 具体流程如图4所示, 步骤如下:
(1) 设备端使用RC4算法固定密钥传输DH算法中的公开变量以及公钥信息, 避免中间人攻击获取共享密钥.
(2) 平台端收到设备端公钥并验证之后, 加密传输自己的公钥给设备端.
(3) 设备端和平台端分别都根据自己得到的对方的公钥和自己的私钥计算得到共享密钥.
(4) 平台与服务端获取共享密钥的过程和设备端与平台之间的过程一样.
(5) 设备进行身份认证并获取认证信息, 成功之后进入数据加密传输阶段.
(6) 设备端根据计算得到的共享密钥使用RC4算法对传输的数据进行加密之后传输到平台.
(7) 平台端根据计算得到的共享密钥使用RC4算法对数据进行加密, 然后传输到服务端.
4 实验分析本文实现了以窄带物联网的通信技术为基础的通信协议的设计以及加密的方案, 应用在智能燃气系统上, 以实现燃气数据自动实时的采集以及传输, 便于燃气公司实现远程抄表等功能, 以及对居民用户燃气用量的智能管理等操作.
本文中设备端使用的设备还是以传统的燃气表为基础设施, 外加STM8L052R8型号处理器并内置光电直读技术以及NB模组, 平台使用物联网集成管理平台, 服务端使用阿里云服务进行部署.
通过抓包工具抓取到的数据传输通信协议包如图5所示, 可以看到数据传输运行在UDP协议之上, 并加密进行通信, 传输到服务端之后经过可视化处理, 显示在管理系统上, 系统中燃气表的数据如图6所示, 对数据传输的加密方法做的测试比较如表2所示.
本文数据加密方法中DH算法的作用是计算共享密钥, 数据的加密主要还是靠对称加密算法来做, 所以这里只比较了常用的对称加密算法DES和RC4的一些性能. 由于DES加密算法的密钥长度是64位[8], 所以表中比较了该密钥长度下的明文数据量变化的情况, 从表中可以看出随着明文数据量的增加该算法的空间资源的大小发生了一些变化, 时间也随之增加. 由于RC4算法的密钥长度是可变的, 在表中分别比较了64位和128位情况下随着数据量增加的情况, 可以看出其空间资源的大小也发生了一些变化, 时间同样随着数据量的增加而上升, 但是在同等条件下与DES算法相比, 速度明显比DES算法快, 空间资源的占用也比其小, 另外, RC4的密钥长度是可以变化的, 当密钥长度足够长的时候它的安全性也越高, 所以RC4算法在本系统中的应用更具有优越性.
5 结论与展望
物联网中通信技术的不断更新使得数据传输在能够正常通信的基础上考虑到安全性的问题. 本文通过对窄带物联网通信技术以及CoAP传输协议的研究, 并结合实际应用场景, 提出一种混合通信加密方案, 目的是为解决在物联网设备资源受限制情况下的设备端与服务端的通信以及安全传输的问题, 经过实现和测试, 验证了这个方案能够解决上述问题, 其安全性以及增加的时间成本的开销也都在可以接受的范围内.
在目前的工作中已经验证了该方案的可行性, 在后期的工作中还会考虑其普适性问题, 进一步的完善该方案.
[1] |
苏世旭. 面向居家服各环境的智能信息系统数据处理模块设计与实现[硕士学位论文]. 南京: 南京邮电大学, 2017.
|
[2] |
Bormann C, Castellani AP, Shelby Z. Coap: An application protocol for billions of tiny internet nodes. IEEE Internet Computing, 2012, 16(2): 62-67. DOI:10.1109/MIC.2012.29. |
[3] |
陈发堂, 邢苹苹, 杨艳娟. 窄带蜂窝物联网终端上行资源调度的分析与设计. 计算机应用, 2018, 38(11): 3270-3274, 3281. DOI:10.11772/j.issn.1001-9081.2018040849 |
[4] |
Zayas AD, Merino P. The 3GPP NB-IoT system architecture for the Internet of Things. Proceedings of 2017 IEEE International Conference on Communications Workshops. Paris, France. 2017. 277–282.
|
[5] |
徐召杰. 物联网中基于双向认证的安全通信协议的研究与实现[硕士学位论文]. 北京: 北京邮电大学, 2018.
|
[6] |
陈旖, 张美平, 许力. WSN应用层协议MQTT-SN与CoAP的剖析与改进. 计算机系统应用, 2015, 24(2): 229-234. DOI:10.3969/j.issn.1003-3254.2015.02.043 |
[7] |
Sinha RS, Wei YQ, Hwang SH. A survey on LPWA technology: LoRa and NB-IoT. ICT Express, 2017, 3(1): 14-21. DOI:10.1016/j.icte.2017.03.004 |
[8] |
陈侨川. 一种基于DES和RSA算法的混合加密算法[硕士学位论文]. 昆明: 云南大学, 2015.
|
[9] |
苗三立, 左金印, 宋宇飞. 基于FPGA的RC4加密算法设计及实现. 计算机测量与控制, 2018, 26(2): 252-254, 263. DOI:10.16526/j.cnki.11-4762/tp.2018.02.062 |
[10] |
才大壮, 杨海波. 使用两阶段DH算法的IMS接入侧安全通信模型研究. 小型微型计算机系统, 2016, 37(4): 782-786. DOI:10.3969/j.issn.1000-1220.2016.04.027 |