非对称加解密方案在无线监控系统中应用
2017-11-16杜庆峰
杜庆峰
摘 要:文章介绍了传统互联网系统中非对称软件加解密方案在无线监控系统中的应用及实现,分析非对称加解密方案在无线监控系统中实施的必要性、可行性,包括与其他加解密方案对比分析,以提高无线监控系统中数据传输安全。结合实际无线监控系统方案,提供具体软件实现供参考。
关键词:软件加解密;RSA;监控
中图分类号:TP393.4 文献标志码:A 文章编号:2095-2945(2017)33-0144-02
1 概述
随着互联网普及以及物联网应用日益广泛,无线监控及数据传输成为信息交互的主要方式,随之而来的数据传输安全愈发重要,本文主要介绍传统网络通信数据加密方案在无线监控系统中的应用。
2 数据加密的必要性和可行性
从整体架构看,无线监控系统有几大特点。第一,系统一般由中心服务器和采集控制终端组成,在组成为大多为1对多。对于多级分层架构,可以分解为N个1对多系统的叠加。第二,中心服务器一般固定部署,监控采集终端则分散部署在现场。第三,中心服务器相对有完善的管理和维护人员、组织参与,监控采集终端则相对开放。
如上所述,无线监控系统中监控采集终端数量多,地理位置分散,明文传输很可能遭到劫持和盗听,轻则导致数据泄密,重则可能出现系统被攻击,导致系统瘫痪。通过数据加密,提高数据传输安全,可最大程度对系统进行保护。
对于1对多系统,特别是中心服务器的安全性相对较高,将数据加解密密钥保存在中心服务器,一方面密钥本身的管理可以得到保证,另外,只在中心服务器保存一份密钥,减少密钥扩散几率,确保密钥安全,从而可以保证数据的安全。
对于数据传输加解密两端分散情况,通过采用非对称加密方式,一方面降低对监控采集终端安全管理要求,同时可以提高加密安全效果。为此,可采用网络通信中使用较为广泛的RSA加密方案。
3 方案对比
与非对称加解密对应,另一种加解密方案为对称加解密。所谓对称加解密,简言之就是数据加密和数据解密采用相同的密钥。可见,对于对称加解密方案,数据加密方和数据解密方都需要持有相同密钥。与非对称加解密方案相比,该方案优点大概如下,第一,该方案相对简单,双方使用相同加解密密钥,容易实现。第二,对称加密数据在解密时,直接通过确定算法实现,执行效率和速度相对高。
针对无线监控系统,堆成加解密方案最大不足就是安全。如上所述,无线监控系统大多存在开放环境,且监控终端相对物理位置分散,如果采用对称加解密方案,相同的密钥需要分散到每个数据监控采集终端。在整个运行过程中,任一数据监控采集终端将密钥泄露,整个系统安全完全丢失。相对于对称加解密方案,非堆成加解密方案采用公钥和私钥对方式,公钥可以公开,不担心密钥泄露,适合数据监控采集终端量多、位置分散场景。另外,一旦出现加解密密钥泄露,非对称加解密方案可以通过动态更新公私密钥对,从而恢复系统安全。
可见,在无线监控系统中,采用非对称加解密方案更安全。
4 实现方案
当前常用非对称加解密方案有很多种,这里主要介绍RSA加解密方案在无线监控系统中的实现思路。鉴于无线监控系统大多采用嵌入式系统,如ARM等,可采用离线处理与在线加解密相结合方式。
离线处理主要指在系统发布前,借助工具生成加密公钥与私钥对,将公钥发布到终端应用,私钥保留在服务器。
系统运行时,监控采集终端使用公钥对数据进行加密后,通过无线传输方式发送到服务器,服务器使用本地密钥对监控终端发送数据进行解密,得到监控终端原始明文数据。
GPS校时功能:通过GPS对计算机网络进行精准校时。
光照度获取:通过光敏探头获取所在城市的实时光照度,用于实现路灯的光照度控制。
5 软件设计
对于非对称加解密公钥和私钥,可借助第三方工具生成,如openssl,相关操作如下:
openssl genrsa -out rsa_private.pem 2048
其中rsa_private.pem为生成私钥文件名称。
根据私钥导出公钥:
openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem
其中rsa_public_pem为导出公钥文件名称,rsa_private.pem为上述生成的私钥文件名称。至此,加解密所需公钥和私钥文件已经生成。
监控采集终端对数据进行加密。由于监控采集终端大多采用ARM,数据加密需要通过代码实现。对于无线监控系统监控采集终端,设备一般不支持文件系统,对于文件生成的加密公钥,不能使用通用读取公钥文件方式获取公钥,而是需要将公钥内容记录到内存,然后从内存中读取公钥,主要接口如下:
通过标准文件方式读取公钥文件内容,原型如下:
BIO_METHOD * BIO_s_mem(void);
BIO_set_mem_eof_return(BIO *b,int v);
long BIO_get_mem_data(BIO *b, char **pp)
BIO_set_mem_buf(BIO *b,BUF_MEM *bm,int c);
BIO_get_mem_ptr(BIO *b,BUF_MEM **pp);
BIO *BIO_new_mem_buf(void *buf, int len);
讀取公钥文件后,从公钥文件中读取pem格式公钥文件内容。原型如下:
rsa = PEM_read_bio_RSA_PUBKEY(bio, NULL, NULL, NULL);
调用RSA_public_encrypt()对数据进行加密。
此时监控采集终端已经完成对通信数据发送前的加密操作,后续即可进行数据传输。
中心服务器接收到数据后,首先对数据进行解密。鉴于中心服务器大多为windows或linux服务器,可以直接调用opensls的文件操作函数获取密钥进行解密。
为了便于数据传输,实际系统可根据需要对数据做base64编解码处理。通过base64编码后数据传输更方便,同时也带来副作用,就是增加网络传输流量,具体是否需要对数据做base64编码后传输,可根据实际系统需要决定,这里不做具体描述。
6 结束语
非对称加密技术适用于数据通信两端远距离传输,在满足数据加密基础上,同时降低操作难度,包括密钥管理维护要求,使得无线监控系统数据加解密方案可行。
参考文献:
[1]CJJ/T 227-2014.城市照明自动控制系统技术规范[S].
[2]杨辉.基于物联网的路灯节能管理系统[J].城市照明,2017(1).
[3]罗路胜,文春明.基于ARM的无线温湿度监测控制系统[J].科技创新与应用,2016(13):26-27.endprint