从开发的角度对zigbee安全的杂谈

说起zigbee应该很少人听过,这个B名字怪怪的。。。

以前开发不懂开发的思想,前前后后花了很久时间,现在回想起来,突然想从安全的角度来理解数据的传输

从开发的角度对zigbee安全的杂谈

  废话:伴随科技的快速演进,物联网(The Internet of Things,IoT)概念再次兴起,人们身边的日常用品、终端设备、家用电器等也逐步被赋予了网络连接的能力。然而作为连接上述设备所广泛使用的重要无线互联标准之一,ZigBee技术却于近期召开的2015黑帽大会(BlackHat2015)上被曝出存在严重的安全漏洞,引发了业内的广泛关注。智能产品种类越来越多,运用在智能家居上的技术也越来越成熟,Zigbee是最早应用在智能家居领域的传输技术,其稳定性强、高保密性、低功耗、低成本的优势成为家庭自动化应用首选。现在想从我的一个项目顺便普及一下zigbee。。。下面是项目论文介绍,排版不是很好

从开发的角度对zigbee安全的杂谈

这是万恶的分割线

--------------------------------------------------------------------------------------------------------------------------------------------------

基于ZigBee的山体滑坡远程监控系统

-*-这里隐藏些个人信息-*-

摘  要:针对现有山体滑坡预警系统中有线传输、人工播报等弊端,采用MPU6050三轴加速度传感器设计一种低功耗、高精度的山体滑坡远程监控系统。系统通过ZigBee无线传感器网络采集数据,并利用卡尔曼滤波算法修正测量中的误差以提高数据精度。通过物理原型测试,系统运行顺畅,符合设计要求。

关键词:山体滑坡;ZigBee;监控;卡尔曼滤波算法

The mountain landslide remote monitoring system based on ZigBee

Liu Jian, Chen Haoyu, Huang Kai, Hong Wei, Lai Binbin, Wang Huabin, Huang Zhen

(Department of Computer Science, Huizhou University, Huizhou, 516007 Guangdong, China)

Abstract: In order to overcome the issues like wired transmission and manual notification in conventional pre-warning systems for mountain landslide, this paper proposes a low-power and high-accuracy remote monitoring system for mountain landslide. The system was designed with a three-axis acceleration sensor MPU6050 and used a wireless network to collect sensor data and utilizes Kalman filtering algorithm to reduce deviation in the result to produce higher accuracy. After tested with physical prototype, the system ran stably and well met the design requirements.

Key words: Mountain Landslide, ZigBee, Monitoring, Kalman Filtering Algorithm

1 引言

我国是一个地质灾害频繁发生的国家。主要灾害包括洪涝、台风、山体滑坡、干旱等。其中山体滑坡灾害的影响最为严重。1近年来,在预防山体滑坡工程方面,主要以山区地质结合滑坡变形特征来获取受监测滑坡体所处的变形阶段2来建立评估和预警体系。

文献[3]和文献[4]对山体滑坡产生的原因提出:滑坡形成的过程分3个大阶段:初始变化期,稳定变化期,剧烈变化期。边坡的形变是造成山体滑坡的直接因素。根据系统需要,采用MPU6050三轴加速度传感器采集山体环境信息,以网络的终端路由器节点为簇头构建传感器网络,通过GPRS网关将传感器数据发送给服务器并进行处理,并通过前端显示为控制站用户提供预警判断。

将无线传感器网络(WSN)应用于山体滑坡监测已成为各国研究开发的重点,一些科研院所和公司在这方面进行了大量的工作,做出了丰硕的科研成果和产品。结合ZigBee通信技术,实现对监测区域的远程实时监控,提高山体滑坡预警的准确性,可以及时的发出警报,争取更多的应急时间。5

文献[6]认为,采用低功耗的廉价无线传感器,能够提高监测系统部署成本,实现监测系统大范围推广。方案经过滑坡演变的理论分析,得出较精确的滑坡预报时间,以便有关部门能够提前对将要发生的危机情况采取相应的处理措施,能够有效地保护国家和人民的生命财产。

本系统克服了山体监测区无人值守,远距离布线以及数据传输的问题,通过ZigBee无线低功耗多传感器网络建立无线监测系统对山体状态进行实时监测和预警,方便了控制站工作人员远程实时得到高可靠性的监测数据。

2 系统架构

山体滑坡监测系统由无线传感器监测网络、GPRS网关和远程监控中心三部分组成。硬件由ZigBee模块、GPRS模块、MPU6050三轴加速度传感器、电源等组成。实物模型如图1所示,具体系统架构如图2所示。

从开发的角度对zigbee安全的杂谈

图1模型实物图

从开发的角度对zigbee安全的杂谈

图2系统架构

2.1 ZigBee模块

方案采用TI公司的CC2530芯片。它能够以非常低的材料成本建立强大的网络节点,具有不同的运行模式,使得它适应超低功耗要求的系统。运行模式之间的转换时间进一步确保了其低功耗的特点。具体结构如表1所示。7

表1

ZigBee应用层(应用框架、ZDO)

ZigBee应用支持子层

ZigBee网络层

IEEE802.15.4 MAC层

IEEE802.15.4 868/915 PHY层

IEEE802.15.4 2.4G PHY层

系统终端是一个半功能节点,主要功能是请求加入网络,接收来自主节点的信息数据。节点通电后,会进行硬件和ZigBee协议栈初始化,自动请求加入网络,一旦成功加入网络,终端节点按照其内部定时器控制,按规定时间(设置每隔2秒)向协调器节点发送一次数据,其他时间则处于休眠状态。8

2.2 GPRS模块

系统采用华为 GTM900-C 无线模块,模块硬件框图如图3所示,这是一款两频段GSM/GPRS无线模块。它支持标准的AT命令及增强AT命令,实现ZigBee网络向以太网的转换,是高速数据传输等各种应用的理想解决方案。

从开发的角度对zigbee安全的杂谈

图3 GPRS模块硬件框图

2.3 MPU6050传感器模块

系统采用的MPU-6050三轴加速度传感器为全球首例整合性6轴运动处理组件,传感器结构如图4所示。它集成了3 轴MEMS陀螺仪,3轴MEMS加速度计,以及一个可扩展的数字运动处理器。相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的封装空间。

从开发的角度对zigbee安全的杂谈

图4 MPU6050传感器

3 系统设计

3.1传感器数据采集设计

无线传感器网络有星型结构,簇结构和网状结构。方案根据监测区域的实际情况布置终端节点组建监测网络采集环境信息。具体数据传输处理流程如图5所示。

从开发的角度对zigbee安全的杂谈

图5数据传输流程图

3.2 PC上位机软件设计

PC上位机采用C#开发,上位机接收处理来自服务器传送的数据并在前端显示,为控制站提供了直观化、人性化的界面。

该软件采用边坡倾斜角Angle值作为预警依据,设定山体当前Z轴边坡的倾斜角Angle值为正常状态。文献[2]指出,滑坡学包含滑坡孕育、发展、变形破坏的过程、规律以及其影响因素。需要采集大量的数据建立预警系统。

本实验通过物理原型模拟山体边坡发生断裂的情况,程序设置角度超过正常值范围+2度(通过物理模型多次实验,发现角度超过正常值+2度预警效果最好,所以本系统设置阈值为+2度)为边坡发生断裂的异常情况,加以x轴和y轴的加速度ACCEL值辅助判断,标记记录异常数据,并提示声音预警。具体软件功能流程如图6所示。

从开发的角度对zigbee安全的杂谈

图6 PC软件流程图

4 系统的实现

4.1 传感器数据处理

服务器接收处理来自网关的传感器数据,具体数据如图7所示。具体数据格式如下:AT%IPSEND="0100C533FF601B4A000AFFDE0029"//传感器原始数据,数据为28个字节,

根据系统需要,设置前4位为标志位,标志不同传感器发送的数据。并将各个数据的高8位跟低8位结合成一个16进制数,计算边坡倾斜角角度Angle值和加速度ACCEL值。

从开发的角度对zigbee安全的杂谈

图7传感器原始数据测试界面

4.2服务器测试

启动服务器,ZigBee协调器通过GPRS模块发送AT指令与服务器进行通信。文献[9]和文献[10]指出:由于环境干扰的同时易导致信号发散或丢失从而对信号产生影响。因此,方案利用卡尔曼滤波算法,定义最大差值,对比前后两次数据来进行滤波处理以提高接收边坡倾斜角Angle值的准确性。处理结果如图8所示。

从开发的角度对zigbee安全的杂谈

图8 服务器数据处理结果

4.3上位机测试

打开PC上位机,上位机获取服务器数据,并对获取到的数据进行处理和判断,利用处理出来的Z轴数据画出坐标图,另外显示出相对应的数据,同时将处理出来的X轴和Y轴数据记录在文本框,当抓取到异常数据时,发出警报声并将记录该Z轴异常数据。上位机测试界面如图9所示。

从开发的角度对zigbee安全的杂谈

图9上位机显示界面

4.4 WEB软件

在浏览器输入远程山体监测系统网址。WEB软件如图10所示。获取山体环境数据,方便了监测人员能够不受环境地点的影响,实时地查看山体状态。

从开发的角度对zigbee安全的杂谈

图10 WEB客户端界面

5 结语

本系统实现在恶劣环境中多角度采集环境信息,远距离传输数据,并利用卡尔曼滤波算法修正测量过程中的随机误差。采用PC上位机和WEB客户端实时更新传感器数据并判断异常情况来建立安全预警模型,实现控制站对监控地区的实时远程监测及预警。通过物理原型测试实验,系统符合山体滑坡实时监控需要,具有重要的应用价值。

参考文献:

[1]刘肖忠. 基于图像方式的山体滑坡实时远程监测方法设计[D].南昌航空大学,2013.

[2]邱健壮. GPS监测山体滑坡研究[D].中国农业大学,2005.

[3]王作成. 基于ZigBee的山体滑坡预警系统研究与设计[D].西北师范大学,2013.

[4]朱望纯,庞少东.一种基于Zigbee与GPS山体滑坡监测系统开发[J].计算机测量与控制,2014,09:2779-2780+2788.

[5]洪新,吴珂,王波,卢鹏.基于ZigBee技术的山体滑坡预警系统设计[J].硅谷,2011,01:51+36.

[6]胡颖. 基于无线传感器网络的山体滑坡监测预警系统设计与研究[D].重庆大学,2011.

[7]王波,李文田,梅倩.滑坡监测的无线传感器网络定位系统设计[J].计算机应用,2012,07:1831-1835.

[8]薛艳亮、胡建萍、王江柱,基于分布式编址机制的ZigBee组网技术研究[J].杭州电子科技大学学报,2008,28(2):33-36.

[9] 曹春萍, 罗玲莉. 基于卡尔曼滤波算法的室内无线定位系 统[ J] . 计 算 机 系 统 应 用, 2011, 20 ( 11 ) :76- 79.
[10]焦尚彬,宋丹,张青,唐金伟. 基于ZigBee无线传感器网络的煤矿监测系统[J]. 电子测量与仪器学报,2013,v.27;No.14905:436-442.

项目:

(1)惠州市科技计划项目,项目编号: 2015ZX023

(2)惠州学院自然科学项目,项目编号:hzuxl201417

作者简介:黄震,(1980-),男,硕士,讲师,主要研究领域为无线传感器网络,智能算法

通讯地址: (广东省惠州市演达大道46号惠州学院计算机科学系,邮政编码516007)

联系电话:15916405612

邮箱:195146501@qq.com

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

这是万恶的回归线

zigbee安全机制:

  zigbee协议栈支持128bit的AES加密算法,在协议栈中为了避开相同设备的干扰,和防止被其他设备监听。

Z-stack1.4.3加密算法的功能开启方法:

1.将f8wConfig.cfg文件中设置为-DSECURE=1,这句话的意思是SECURE=1,这个变量在协议栈中作为if语句的条件使用,条件为真的语句中就是开启加密算法的函数。所以要使用第一步是要将这个参数设置为1。

2.将ZGlobals.c中的uint8 zgPreConfigKeys = FLASE;修改为uint8 zgPreConfigKeys = TRUE。

3.准备一个key,这个可以在函数nwk_global.c中修改:

从开发的角度对zigbee安全的杂谈

  如果使用了加密算法后,网络中所有的设备都需要开启这个算法,而且各个设备中的key必须相同。否则后果是很严重的,这会导致你的网络不能正常通讯,因为没有加密的数据或者相同key加密,这些数据网络是不认识的,根本就不会传到网络层。加密算法开启以后,如果你需要修改代码,就必须改变你的key,或者是擦除一次你的flash,否则会出现不可逾期的错误,而且没有规律。通常的做法是擦除flash一次,这样可以保证和整个网络的key相同。除此之外,还加入了一个加密入网白名单机制,通过将入网设备的Mac地址加密后生成key可以在运行时通过串口协议控制节点的入网许可,同时也限制了网内设备的生产厂家必须是经过协调器开发者认证的,否则不可能得到合法的key。

  但是通常开发的时候主要是对协议栈功能的使用,普通的开发者甚少对协议栈进行理解开发,或者使用厂商默认的默认链路密钥,这是很危险的。节点与路由的数据交换是通过特定的密钥来自动进行连接。连接方式遵循一种类似一次性密钥那样,能通过特定sniffer找出密钥,节点的烧录通常都是一样的,也就是说,整个zigbee网络也就不安全。

从开发的角度对zigbee安全的杂谈

  在从溯源的角度来看,仅仅是为了功能的使用,一些终端开发的时候都是很简单的打包,里面包含服务器等相关敏感信息,还有中间蜂窝网络信号传输。so,如果通过某些手段可以拿下远程服务器的权限或者同服器的权限,如果是使用zigbee的一些工控企业,无疑是很大的威胁。

上一篇:Java for LeetCode 103 Binary Tree Zigzag Level Order Traversal


下一篇:Java design patterna