陈俊彦,张红梅
(桂林电子科技大学,桂林 541004)
随着网络摄像头广泛进入军事监控、路口交通监控等领域,图像数据的安全问题也越来越受到人们的关注[1]。由于网络摄像头的图像数据与控制信息是通过Internet传输,一些不法分子便容易利用网络黑客技术入侵网络摄像头或监控中心系统,窃取或篡改摄像头控制信息或图像数据,造成摄像头失去监控的能力。当前,网络摄像头的数据保护主要通过内置的数字化压缩控制器和基于Web的操作系统对视频数据进行压缩加密[2],但由于该方法只加密TCP/IP协议中应用层的数据,且解密插件需向客户公开,在某些对安全性要求较高的应用场合,如交通监控系统、军事监控系统等,不法分子易通过网络入侵技术窃取或篡改数据信息,图像数据的可靠性难以得到保证。同时,由于图像数据是在标准的互联网通信协议进行传输,传输协议为TCP/IP协议中的TCP和UDP,监控系统或网络摄像头易受到不法分子的网络攻击,造成系统瘫痪。
针对上述网络摄像头数据保护的缺陷,本文介绍了一种网络摄像头加密设备的设计,并提出一种网络传输层安全技术,利用DES加密算法对TCP/IP协议中传输层的首部字段和应用层数据段进行加密,同时将传输层的TCP/UDP协议转换为自拟的SDTCP/SDUDP协议,防止入侵者轻易地拆解IP数据包,以及防范各类运输层或应用层的攻击,从而更有效地保证数据的安全。
在网络摄像头传输层安全技术的设计中,数据处理模块采用了双网络接口的网络摄像头加解密设备。该设备拥有两个以太网RJ-45接口,一个网络接口接入网络摄像机或监控中心系统,另一个接入Internet网络。在一个网络接口接收的数据经处理后可立即由另一个网络接口发送出去,这样可以保证由网络摄像机发送的数据经加密后通过另一个网络接口实时传输到网络中。设备硬件连接图如图1所示。
图1 设备硬件连接图
由图1可知,两个网络摄像头加解密设备之间的通信协议为SDTCP/SDUDP,监控中心或网络摄像头与加解密设备之间的通信协议为TCP/UDP。监控中心或网络摄像头不是直接接入Internet网络,而是连接在加解密设备上,再由加解密设备连入Internet网络。网络摄像头采集的图像数据信息使用TCP/UDP协议发送至加解密设备后,经过协议转换和数据加密,在Internet网络中使用SDTCP/SDUDP协议传输到监控中心。在监控中心的加解密设备接收到SDTCP/SDUDP协议的数据后,就将数据解密并转换为TCP/UDP协议,随后发送至监控中心。若Internet网络中出现入侵者,由于入侵者使用的是TCP/UDP协议,加解密设备收到Internet网络的TCP/UDP协议包将立即丢弃,防止入侵者与监控中心或网络摄像头通信,因此入侵者的攻击将不会影响监控中心或网络摄像头。
网络摄像头加解密设备硬件结构如图2所示。
图2 网络摄像头加解密设备硬件结构框图
设备主要由电源电路模块、主控制器电路模块、以太网通信电路模块和其他外设接口电路模块组成。主控制器采用恩智浦公司基于ARM Cortex-M3架构的LPC1768微处理器,主频最高达到100MHz,为实时传输图像数据流提供了性能保证。同时,该处理器内带512KB Flash和64KB SRAM,还拥有串口、以太网、USB等多个接口[3]。以太网通信电路模块由两个网络接口模块组成,一个模块是以太网PHY控制器DP83848,接入LPC1768微处理器的以太网接口;另一个模块是以太网MAC控制器DM9000。在系统中还加入了串口、JTAG和I/O等外设接口电路,用于下载和调试程序。
本文提出一种网络传输层安全技术,利用DES加密算法[4]对TCP/IP协议中传输层的首部字段和应用层数据段进行加密,同时将传输层的TCP/UDP协议转换为自拟的SDTCP/SDUDP协议。
传输层为应用进程之间提供端到端的逻辑通信。运输层包括两种不同的运输协议:面向连接的传输控制协议TCP和无连接的用户数据报协议UDP[5]。根据TCP和UDP原有的协议,本文提出了一种自拟的SDTCP(Self-Define User Datagram Protocol)和 SDUDP(Self-Define Transmission Control Protocol)协议,重新定义了TCP和UDP的首部格式并对首部数据进行加密。同时,考虑到DES加密算法属于对称密码加密体制,如果长时间使用同一个密钥,容易被攻击者破解,因此在传输层首部加入了密钥选择字段,随机选择DES密钥,增强系统的可靠性。这样,经过传输层协议转换后,可以防止入侵者轻易地拆解IP数据包,以及防止各类运输层或应用层的攻击。
2.1.1 SDUDP
在UDP中,首部字段有8个字节,包括源端口号、目的端口号、数据长度和校验和[6]。SDUDP协议重新定义了UDP的首部格式,如图3所示。
图3 SDUDP报文的首部格式
① 数据长度:SDUDP用户数据报的长度,其最小值为10,仅有首部,最大值为1 510。共占11位。
② 密钥选择:用于选择DES加密算法的密钥,共占5位。在设备的Flash中存放32组密钥并按顺序进行编号管理,该字段的数值即选择密钥的编号,系统根据该字段的数值来选择使用哪组密钥进行数据加解密。该字段数值由系统随机产生,保证了密钥的保密性。
③ 校验和:检测数据报在传输中是否有错,如果发生错误就丢弃。
④ 加密的源端口号与目的端口号:将UDP报文中的源端口号和目的端口号经64位DES加密算法加密后放在该字段中。UDP报文中的源端口号和目的端口号共有32位,在加密时后32位填充0。
这些词不容易分类,有的本来就是网络用语,有的是主谓形式的新词。所表示的意义也是语气或者表可爱的,类似语气助词,语气略带埋怨但又很调皮的词语,也是带着怒意骂人的较柔和版。一般带有一点纠结无奈,也有的表示对一件事或事物的赞誉。
同时,修改IP数据报首部中的协议字段,以区别UDP协议。本文定义SDUDP的协议字段值为136。
2.1.2 SDTCP
TCP是TCP/IP体系中非常复杂的一个协议。由于网络摄像头与上位机之间的数据传输通常采用标准的TCP协议,因此在SDTCP中并没有改变TCP的可靠传输、流量控制和拥塞控制等的实现方法,而是重新定义了TCP的首部格式。
在标准的TCP协议的首部格式中,包含了源端口号和目的端口号、序号、确认号、数据偏移、紧急指针、窗口、校验和等信息[6]。为了能使SDTCP的首部还原为TCP的首部,在SDTCP中保留了TCP的首部信息,但这些信息会使用DES加密算法进行加密,防止入侵者窃取。同时,在SDTCP首部加入摄像头的控制信息。SDTCP报文的首部格式如图4所示。
图4 SDTCP报文的首部格式
① 数据偏移:指出了SDTCP报文段的首部长度,占4位。该字段的计算单位是32位字(即以4字节长的字为计算单位)。由于网络摄像头使用的TCP协议在首部通常没有加入选项字段,因此该字段的值一般为5。
② 密钥选择:用于选择DES加密算法的密钥,共占5位。与SDUDP协议的密钥选择字段意义一致。
③ 标志位:TCP协议中的控制标志位,包括紧急URG、确认ACK、推送PSH、复位RST、同步SYN、终止FIN。
④ 校验和:检测数据报在传输中是否有错,如果发生错误就丢弃。
⑤ 加密的窗口、紧急指针、源端口号和目的端口号:将TCP报文中的窗口、紧急指针、源端口号和目的端口号经64位DES加密算法加密后,密文数据的前16位放入加密的窗口字段,随后的16位放入加密的紧急指针字段,最后的32位放入加密的源端口号与目的端口号字段。
⑥ 加密的序号和确认号:将TCP报文中的序号和确认号经64位DES加密算法加密后,密文数据的前32位放入加密的序号字段,后的32位放入加密的确认号字段。
同时,修改IP数据报首部中的协议字段,以区别TCP协议。本文定义SDTCP的协议字段值为137。
网络摄像头传输层安全技术算法流程如图5所示。网络接口1接入监控中心或网络摄像头,网络接口2接入Internet网络。从网络接口1接收到的数据,经过DES加密和协议转换后通过网络接口2发送至Internet网络中;从网络接口2接收到的数据,若传输层为TCP/UDP协议则直接丢弃,若为SDTCP/SDUDP则经过解密后通过网络接口1发送至监控中心或网络摄像头。
图5 网络摄像头传输层安全技术算法流程图
本文算法均在LPC1768实验板上进行实验,使用Keil4.0编译器编译实现。首先对LPC1768处理器的网络数据处理速度进行了测试。表1列出了开发板对TCP协议最大帧(应用层数据为1 500字节)加解密所需用的时间。表2列出了对UDP协议最大帧(应用层数据为1 500字节)加解密所需用的时间。
由表1和表2可知,加密数据所需的时间和解密所需的时间基本相同,这是由于DES的加解密算法都是共用相同的算法过程。UDP协议由于头部比TCP协议小,因此在处理UDP协议头部时要比处理TCP协议头部时间短些。
表1 加解密TCP协议最大帧时间
表2 加解密UDP协议最大帧时间
由于上位机对网络摄像头的控制信息较少,因此网络摄像头与上位机之间的通信基本为单向传输(数据由网络摄像头发送至上位机)。通过计算可知道,LPC1768微处理器每秒约可处理78个TCP/UDP协议最大帧。每个TCP/UDP协议最大帧可携带1.5KB的应用层数据,则处理器每秒可处理117KB的数据,相当于1Mbps带宽每秒的最大传输量。
根据上述测试结果,本文采用奇趣果KIWI家用网络摄像头进行测试,摄像头图像格式设置为720×480,帧结构为25帧/s,最大传输速率(占用网络带宽)为1Mbps。网络摄像头和一台PC终端通过加解密设备接入路由中。在测试过程中,传输的视频并没有出现丢帧情况,同时,在路由上的其余PC终端不能访问网络摄像头。
通过以上的实验证明,该系统能实时处理1Mbps带宽网络摄像头的数据流量,同时可防止网络中的其他终端访问网络摄像头,保证了图像数据的私密性。
目前,网络摄像头已越来越多地应用在远程监控、远程摄像、视频会议等各个领域中,因此摄像头数据安全越来越受到人们的重视。本文利用低价格、高性能的LPC1768微处理器开发一种网络摄像头的加解密设备,并提出了利用DES加密算法对传输层的首部字段和应用层数据段进行加密和将传输层的TCP/UDP协议转换为SDTCP/SDUDP协议的传输层安全技术。实验证明了该系统能实时处理1Mbps带宽网络摄像头的数据流量。通过传输层的加密技术对图像数据加密,增加了入侵者窃取图像数据的难度,同时杜绝了黑客对网络摄像头或监控中心的网络攻击。该系统在网络摄像头数据安全领域具有非常好的市场前景。
[1] 郭秋鉴.基于网络的摄像头云台控制系统[D].西安:西安工业大学,2011.
[2] 张远,张首军,汪俊.基于SOPC的嵌入式网络摄像头的设计[J].西北大学学报,2009,39(2):44-46.
[3] NXP Semiconductors Corp.LPC1769/68/67/66 32-bit ARM Cortex-M3microcontroller product data sheet,2010.
[4] 卢开澄.计算机密码学[M].北京:清华大学出版社,2000:25-47.
[5] 谢希仁.计算机网络[M].5版.北京:电子工业出版社,2008:180-220,287-289.
[6] W Richard Stevens.TCP/IP Illustrated Volume 1:The Protocols[M].北京:人民邮电出版社,2010:240-265.