1 系统设计
在工业控制领域,利用ZigBee和传感器网络,使得数据的自动采集、分析和处理变得更加容易,作为决策辅助系统的重要组成部分,ZigBee无线传感器网络在无线数据采集及监控等领域得到了广泛应用。无线传感器数据采集都需通过网关传输至控制中心,在这个过程中信息传输的安全性逐渐成为人们关注的焦点。因此,设计一种安全可靠的通信解决方案显得尤为重要。
信息安全的解决方案目前主要集中于采取单一的措施来保证信息的安全性,针对各种攻击手段,防范措施主要集中于信息加密技术、安全交换机技术、防火墙技术、认证技术,入侵检测技术等,这些技术从不同的方面对安全性提供了较好的保障,但各有缺点和不足,这将成为网络防护的软肋,因此,本文也尝试性地提出了一种集数据加密技术和访问控制策略于一体的信息安全解决方案。
1.1 加密算法的分析
AES加密算法作为新一代的分组迭代加密算法,其采取对称密钥,数据块的分组长度和密钥长度分别可选择128位、192位、256位。AES加密算法具有安全性,灵活性等特点。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。但RSA加密算法的缺点主要有:密钥的产生繁琐,受到素数产生技术的限制,因而难以做到一次一密。混沌加密算法一般作为数字语音信息等的加密,在实际加密应用过程中其精度和保密性方面都存在着缺陷,因此,不适宜于该系统的加解密算法选择。
1.2 加密算法的抗攻击能力分析
在高级加密算法的选择过程中,算法本身的安全性能将是一个重要的评判依据。因此,我们针对目前已有的各种密码攻击手段,分析了AES加密算法的抗攻击能力等性能指标。
强力攻击是一种常见的攻击策略,主要包括穷尽密钥搜索攻击、字典攻击、查表攻击等手段,这些攻击的复杂度只依赖于分组长度和密钥长度,且它们的复杂程度是随着密钥长度增加成指数增长的。对于AES加密算法,密钥长度最小为128位,若每秒钟能够完成2个密钥的搜索,则要完成AES的密钥搜索,至少需要时间大约为149万亿年,在时间上就无法攻击AES加密算法,因此,AES加密算法在很长一段时间还将对强力攻击保持很好的安全性。
代数计算攻击是一种新的分组密码攻击方法,在代数计算攻击中,攻击者利用密码的输入,输出对来构造多项式。用简单的代数表达式对整个Rijndael算法进行描述,引用表达式如下:
代数计算攻击的基本思想是用足够多的明密文对利用拉格朗日插值公式得到密码算法的一个近似多项式逼近,因此要想对Rijndael算法进行代数计算攻击等价于将式(1-1)用多项式来展开,而在式(1-1)中要想消去一层子结构,就涉及到构造S - 盒的所有运算,由S - 盒表达式的复杂性可知,想通过对式(1-1)的多项式展开后进行攻击是不可行的。
1.3 支撑硬件选择
鉴于AES加密算法的特点以及算法的抗攻击性能,因此,本文选用其作为加密应用技术。加密算法可以通过软硬件实现,由于算法本身的灵活性,效率高,用软件实现比较简单、方便,但同时也带来一些问题,使算法的速度、安全性等都在某种程度上受到了影响。AES算法的硬件实现不仅具有快的速度而且占用的资源也将减少。因此,AES加密算法硬件实现能够提供更快的速度和安全性。
XILINX作为全球领先的FPGA提供商,其生产的Spartan系列FPGA具有高性价比,能够实现低成本的嵌入式处理平台,支持商用串行(SPI)和并行(BPI)Flash 存储器与平台 Flash,每秒高达 91 亿次的乘累加(MAC)运算,因此采用Spartan系列FPGA作为AES加密算法实现的硬件载体。因此,基于Spartan-3e平台能够很好的构建一个SOC系统。
1.4 支撑硬件选择
本系统主要的目标在于“针对ZigBee无线传感器网络中,端到端控制过程中存在的安全隐患和信息邪路问题,自主设计了一套基于FPGA平台的高可靠通信系统”。该系统主要由三部分组成:ZigBee无线传感器网络,服务器端,客户端。如图1.1所示。
服务器端采用XILINX公司的Spartan-3e开发平台,在该平台上构建基于MicrBlaze处理器和Xilkernel操作系统的嵌入式系统。当服务器端收到经过AES加密的请求IP数据包时,在服务器端,信息需要经过AES解密处理,根据解密后信息分析并提取请求方的ID信息和IP信息,客户端的ID信息是唯一的授权证号。
客户端同样采用XILINX公司的Spartan-3e开发平台,但该系统中只需要定制AES加解密IP、键盘IP、LCD IP并添加EDK中自带的网络控制器IP。客户端作为整个系统的控制中心,当需要采集信息时,客户端通过键盘把自己的授权ID信息经md5加密后形成自己的加密ID,指令信息和加密ID信息经过AES加密后发送至服务器端,当服务器端响应其请求后,视其身份权限做出相应处理。
2 系统实现
2.1 ZigBee无线传感器网络的实现
ZigBee无线传感器基于IEEE802.15.4技术标准和ZigBee网络协议而设计的无线数据传输网路,该网络由若干个ZigBee终端节点和一个中心节点构成一个星型网络,终端节点主要负责各个传感器模块的信息采集和传送,ZigBee终端节点采用CC2430模块,传感器模块采用51单片机控制,通过扩展串口与采集模块相连,其主要负责接收和处理采集数据。中心节点主要用于接收各个终端节点的上传数据,并对其进行压缩处理后通过扩展接口传送至服务器端。
2.2 系统服务器端、客户端的实现
AES加解密算法通过硬件描述语言来实现,在该系统中采用VHDL语言编写代码。根据AES加解密算法的相似性,很多电路模块可以共用。根据系统的需要,采用对字符加密,因此,每一个字符都将对应其ASCII值输入。AES实现框图如图2.2图所示。
图2.2 AES加解密实现框图
2.2.2 监测及报警实现
服务器端通过添加EDK中网络控制器IP核,移植LwIP网络协议栈,实现基于SOCKET的网络通信。服务器端收到客户端请求时,对接收到的IP数据包进行解密,对请求的IP数据包进行分析,提取对应的ID信息和IP信息,由于该ID信息是经过md5加密算法加密的,因此该ID作为授权客户的唯一ID,根据ID信息与授权的ID列表进行比较,若为授权ID,则根据客户请求把相应的信息加密处理后发送至客户端;若为非授权ID,则说明该网络已存在非授权ID用户,此网络已经存在不安全性,则把提取的IP信息通过GSM网络发送至指定接收端手机,达到网络的实时检测和报警功能。
2.2.3 应用软件的实现
服务器端的应用程序的设计主要包括系统的初始化、系统对客户端请求的处理、网络安全监测及报警等。整个服务器端的软件设计流程图如图2.3图所示。客户端的应用程序的设计也包括系统的初始化,客户请求的处理及解密处理,服务器端返回的信息处理。客户端软件流程图如图2.4图所示。
3 系统测试及分析
系统整体测试,根据系统的可能应用领域进行综合测试。系统初始化后,根据LCD显示的提示信息,输入加解密钥16个字符,在密钥确认信息提示后再次输入加解密密钥,在本次通信过程中将采用该密钥对信息进行加解密处理。当客户端需要采集信息时,发送采集指令,服务器端响应请求把传感器网络采集的信息加密后发送至客服端,客户端把信息解密后显示在LCD液晶显示屏上,这一次的采集任务正确完成,当需要再次采集时,客户端只要发送指令就可以再次采集了。
系统分别在实验室和户外进行测试,每隔1分钟采集一次数据,表4.1记录了10次数据采集的处理情况。经过多次测试和接收数据表明:该系统具有良好的稳定性和高可靠性。