基于ARM安全摄像头设计
温旭霞 孙铂 宫树红
摘 要: 针对现有视频监控的信息安全问题,采用ARM Cortex?A8,USB摄像头,AES加密模块,以及可信计算芯片(TPM)设计了视频监控安全模块。用AES对视频采集端采集的视频数据进行加密,通过网络将密文传输到服务端。对于AES密钥的传输安全问题,以可信计算为基础,通过TPM的绑定功能进行非对称加密,采用对称密码和非对称密码配合使用的混合加密方案,实现对称密钥加密数据,非对称密钥加密对称密钥的加密功能。简要介绍了安全视频监控的组成,对AES加密算法和TPM加密做了阐述,最后通过实验验证加密解密。
关键词: 视频监控; AES加密; 非对称加密; 混合加密; TPM; TPM绑定模式
中图分类号: TN948.64?34; TP311 文献标识码: A 文章编号: 1004?373X(2017)22?0078?04
Abstract: For information security problems existing in video surveillance, ARM Cortex?A8, USB camera, AES encryption module and TPM are used to design a security video surveillance module. AES is adopted to encrypt video data collected by the video capture terminal. The ciphertext is transmitted to the server through network. For transmission security issue of AES key, the binding function of TPM is utilized for asymmetric encryption on the basis of the trusted computing. The hybrid encryption scheme of symmetric cryptography and asymmetric cryptography is used to achieve symmetric key encryption data and the encryption function of symmetric key encrypted asymmetric key. The composition of security video surveillance is briefly introduced. AES encryption algorithm and TPM encryption are expounded. The encryption and decryption was verified in the experiments.
Keywords: video surveillance; AES encryption; asymmetric encryption; hybrid encryption; TPM; TPM binding pattern
0 引 言
随着网络的发展,智能城市的建设,摄像头的增加,监控的安全越来越得到重视。2014年央视报道的多起黑客入侵并将监控视频泄露到网上的事件,引起了高度关注。泄露的视频包括公园、停车场等,还有许多类似科研实验室、工厂内部监控视频,甚至部分画面直接对着电脑。只要有监控的地方都有被曝光的可能。
360攻防实验室在2016年5月份发布的首份《国内智能家庭摄像头安全状况评估报告》写到近80%产品存在用户信息泄露、数据传输未加密等问题。黑客有可能将入侵摄像头当作一个跳板,从而把办公网络或者家庭网络整垮,进行信息窃取等非法行为。
现在很多学者开始研究视频加密以解决监控视频泄露等问题。文献[1]提出的以DSP为硬件核心的智能数字网络摄像机对目标识别并且提取信息的同时,将特征信息经过RSA加密后通过网络传输。这种方法對视频进行了加密,一般需要RSA私钥才可以解密读取数据,RSA加密的数据不能太大,这个局限了部分加密内容,而且RSA私钥的存储也有风险。文献[2]实现了无线音频和视频的AES加密,对称加密可以加密大的数据,而且不会影响速度。但是密钥的存储和传输很重要,加入TS解码模块,这样增加了复杂度。文献[3]也是采用AES加密模块进行数据加密,实现了视频数据的加密以及传输,但是AES密钥传输有风险。
本文提出一种采用AES加密摄像头采集的视频数据,通过网络传输,TPM加密AES密钥进行传输,在服务端用另一个TPM解密,获得AES密钥,然后解密数据。确保数据的安全传输的同时,保证密钥的存储和传输的安全。
1 安全监控模块设计
1.1 安全网络监控框架
安全网络监控的前端是具有网络传输功能的智能数字网络摄像机,核心处理器是TI公司的处理器TI AM335X ARM Cortex A8,然后用AES对称加密算法进行加密,通过以太网网络端口传到服务端,完成终端远程监控的功能。安全网络监控框图如图1所示。
多个摄像机通过局域网络将数据传到服务端,服务端对各个区域进行监控,监控网络连接框图如图2所示。每个视频采集端存入PC的TPM的绑定公钥,每个TPM所加密的AES密钥不同,所以只有第一次服务端需要用自己的TPM绑定密钥的私钥解密,之后就直接用AES密钥进行解密数据。
1.2 硬件设计
安全摄像头的硬件设计框图如图3所示,核心处理器采用了TI AM335X ARM Cortex A8。在ARM中装入Linux操作系统,并且安装TPM的配套软件栈trousers。CPU通过I2C控制TPM,AES以及与FLASH等进行通信。
将视频采集端采集的数据传入CPU,通过对称加密算法AES加密数据,存储到存储单元,通过网络TCP/IP协议将密文传输到服务端上,然后通过服务端的AES解密软件解密。为了AES密钥传输安全,用TPM的绑定功能(tpm_bind)对AES密钥进行加密。因为TPM的处理速度比较慢,所以不能加密太大的数据,这里加密对称密钥,加密后是256 B,这样完全不影响处理速度。
本文TPM芯片采用Atmel公司推出的一種专为嵌入式设计,以I2C总线为接口的AT97SC3204T。该芯片遵循TPM1.2规范,内置非对称密钥引擎RSA,随机数发生器,散列算法引擎SHA?1,计算引擎HMAC等,通过TWI总线进行通信。TWI总线是I2C总线的继承和发展,完全兼容I2C总线。典型的接线电路如图5所示。
1.3 软件设计
本文设计的整体结构是以ARM为主控芯片,将视频采集端的数据用AES算法进行加密,通过网络TCP/IP协议传输,将对称密钥通过TPM加密传输。系统软件主要实现AM335X软件编程、AES采集的视频数据加密编程和TPM对AES密钥加密三部分。
本视频监控是基于ARM?Linux平台开发的,在系统上移植U?Boot,Linux内核和根文件系统。首先对嵌入式Linux内核进行裁剪并移植,安装交叉编译器,并进行适配修改,搭建交叉编译环境。在源代码中加入以下5行定义代码,增加了可信芯片AT97SC3204T的支持。然后进行编译得到可信的MLO和u?boot.img文件。
软件栈TSS是TPM配套的软件,为TPM的使用提供了支持。采用IBM开发的trousers软件包1.1版本,通过makefile编译后,生成3个文件[4]:TDDL.o,TCS daemon,libtspi.a。其中TDDL.o是TPM设备驱动;TCS daemon是TPM的TSS核心服务程序;libtspi.a是TPM操作函数库,若调用TPM的秘密引擎要使用它的API。
2 数据传输与加密
本文用对称加密算法AES对摄像头端的数据进行加密,能够在通信中确保机密性。然而要在实际中运用对称密码,就必须解决密钥配送问题。而非对称密码就可以避免解密密钥的配送,从而就解决了对称密码所具有的密钥配送问题。但是非对称密码还有俩个很大的问题:
(1) 因为一般来说,在采用具备同等机密性的密钥长度的情况下,公钥密码的处理速度只有对称密码的几百分之一,远远低于对称密码。
(2) 公钥密码难以抵御中间人攻击。因此,公钥密码并不适合用来对很长的消息内容进行加密[5]。本文采用对称密码和非对称密码配合使用,用对称密码提高速度,用公钥密码保护会话密钥。
2.1 AES加密
AES加密算法即密码学中的高级加密标准,是美国联邦政府采用的一种区块加密标准[6]。AES加密算法适合硬件实现,有很多开源的项目,许多研究人员利用这些开源项目开发适合自己需要的AES加密系统。
AES加密模块一般分为加密部分和解密部分,本文实现方法是在视频采集端用AES模块加密采集的视频数据,然后经由网络将密文传到服务端,再由专门的AES解密软件对密文进行解密[3],AES加密方式如图6所示。
2.2 TPM加密
非对称加密算法体制中要求公钥对外公开,但是私钥是严格保密的。在实际应用系统中,攻击者可以从保密密钥和加密系统内部通过侧信道攻击手段获得私钥[7]。本文的非对称密钥是由本地硬件TPM模块产生,TPM的最底层的密钥有EK和SRK,EK是用来惟一标识TPM的身份的,由生产商指定,是固定不变的,TPM只能获取一次。SRK是用来标识所有者的身份的,是由所有者通过指令tpm_takeownership获得的。TPM对于密钥的管理是绝对安全的,因为之后所用的密钥都是由SRK产生的,包括绑定密钥,而SRK是由硬件保护存储的,很难获得。
可信模块TPM是可信计算组织(TCG)发行的一款可信芯片,是符合TCG规范的一个小型片上系统,内部有随机数产生器、身份认证秘钥、SHA?1引擎等。可实现功能有:完整性度量、身份认证、敏感数据保护、内部资源授权访问、数据传输加密等。目前基于可信计算的安全启动方式主要是通过以TPM为可信根的可信度量来实现的。
TPM有5种秘钥类型,分别是身份认证秘钥(Attestation Identity Keys,AIK)、签名秘钥(Signing Keys,SK)、存储秘钥(Storage Root Keys,SRK)、绑定秘钥(Binding Keys)、传统秘钥(Legacy Keys)。SRK是2 048位的RSA,用于加密秘钥,可以密封(seal)数据或者存储其他非对称秘钥。Binding Keys是一种加密秘钥,只用于存储小型数据,通常用于存储AES秘钥[8]。
将PC端的TPM产生的绑定密钥公钥部分发送给摄像头端进行存储。然后摄像头模块在自己平台用PC端的绑定密钥进行绑定(tpm_bind),对AES密钥进行加密,然后将加密后的密文传输到PC端,在PC端TPM用自己的私钥进行解绑定(tpm_unbind)。
tpm_bind是用TPM的Binding Keys绑定数据,是标准的用公钥加密。相应的解绑定tpm_unbind是用私钥解密。
3 实验结果及分析
本文实验硬件平台选用嵌入式板Beaglebone Black(BBB),通过USB接摄像头,通过网口连接网络,BBB的扩展模块Cryptocape上有AES芯片和TPM芯片。
首先用AES加密采集的视频数据,如图7所示,实现了AES对称加密数据,视频图像经加密完全无法识别,如果无法获取对称密钥,就算截获视频也无法观看。
如图8所示,可以看到TPM产生绑定密钥,获取非对称密钥的公钥部分,并且对AES密钥加密。
4 结 语
本设计是用外接USB免驱摄像头,AES加密模块和TPM可信模块设计的安全视频模块。本文设计的模块运行稳定、通信良好、加密可靠,很好地解决了监控视频数据泄露的问题,有效地防止黑客软件攻击,经验证其不影响摄像头监控传输性能。
参考文献
[1] 陈圣熙,陆盛浩.基于Smart Camera的目标识别和加密传输[J].电视技术,2011,35(23):149?152.
[2] 陶星辰.基于AES加密的无线音频传输系统设计及应用[D].合肥:合肥工业大学,2015.
[3] 谢慧芝,刘哗,彭煜,等.基于Android的嵌入式加密视频监控系统研究应用[J].电视技术,2014,38(3):70?72.
[4] 李霏,王让定,徐霁.内嵌TPM的视频监控服务器安全方案[J].微电子学与计算机,2007,24(9):32?35.
[5] 结城浩.图解密码技术[M].周自恒,译.北京:人民邮电出版社,2015:135?143.
[6] 龚进.AES加密算法在电子系统中的优化及应用研究[D].太原:中北大学,2012.
[7] 张明武,陈泌文,何德彪,等.高效弹性泄漏下CCA2安全公钥加密体制[J].计算机学报,2016,39(3):492?502.
[8] CHALLENER David, YODER Kent, CATHERMAN Ryan, et al. 可信计算[M].赵波,严飞,余发江,等译.北京:机械工业出版社,2008:56?63.
摘 要: 针对现有视频监控的信息安全问题,采用ARM Cortex?A8,USB摄像头,AES加密模块,以及可信计算芯片(TPM)设计了视频监控安全模块。用AES对视频采集端采集的视频数据进行加密,通过网络将密文传输到服务端。对于AES密钥的传输安全问题,以可信计算为基础,通过TPM的绑定功能进行非对称加密,采用对称密码和非对称密码配合使用的混合加密方案,实现对称密钥加密数据,非对称密钥加密对称密钥的加密功能。简要介绍了安全视频监控的组成,对AES加密算法和TPM加密做了阐述,最后通过实验验证加密解密。
关键词: 视频监控; AES加密; 非对称加密; 混合加密; TPM; TPM绑定模式
中图分类号: TN948.64?34; TP311 文献标识码: A 文章编号: 1004?373X(2017)22?0078?04
Abstract: For information security problems existing in video surveillance, ARM Cortex?A8, USB camera, AES encryption module and TPM are used to design a security video surveillance module. AES is adopted to encrypt video data collected by the video capture terminal. The ciphertext is transmitted to the server through network. For transmission security issue of AES key, the binding function of TPM is utilized for asymmetric encryption on the basis of the trusted computing. The hybrid encryption scheme of symmetric cryptography and asymmetric cryptography is used to achieve symmetric key encryption data and the encryption function of symmetric key encrypted asymmetric key. The composition of security video surveillance is briefly introduced. AES encryption algorithm and TPM encryption are expounded. The encryption and decryption was verified in the experiments.
Keywords: video surveillance; AES encryption; asymmetric encryption; hybrid encryption; TPM; TPM binding pattern
0 引 言
随着网络的发展,智能城市的建设,摄像头的增加,监控的安全越来越得到重视。2014年央视报道的多起黑客入侵并将监控视频泄露到网上的事件,引起了高度关注。泄露的视频包括公园、停车场等,还有许多类似科研实验室、工厂内部监控视频,甚至部分画面直接对着电脑。只要有监控的地方都有被曝光的可能。
360攻防实验室在2016年5月份发布的首份《国内智能家庭摄像头安全状况评估报告》写到近80%产品存在用户信息泄露、数据传输未加密等问题。黑客有可能将入侵摄像头当作一个跳板,从而把办公网络或者家庭网络整垮,进行信息窃取等非法行为。
现在很多学者开始研究视频加密以解决监控视频泄露等问题。文献[1]提出的以DSP为硬件核心的智能数字网络摄像机对目标识别并且提取信息的同时,将特征信息经过RSA加密后通过网络传输。这种方法對视频进行了加密,一般需要RSA私钥才可以解密读取数据,RSA加密的数据不能太大,这个局限了部分加密内容,而且RSA私钥的存储也有风险。文献[2]实现了无线音频和视频的AES加密,对称加密可以加密大的数据,而且不会影响速度。但是密钥的存储和传输很重要,加入TS解码模块,这样增加了复杂度。文献[3]也是采用AES加密模块进行数据加密,实现了视频数据的加密以及传输,但是AES密钥传输有风险。
本文提出一种采用AES加密摄像头采集的视频数据,通过网络传输,TPM加密AES密钥进行传输,在服务端用另一个TPM解密,获得AES密钥,然后解密数据。确保数据的安全传输的同时,保证密钥的存储和传输的安全。
1 安全监控模块设计
1.1 安全网络监控框架
安全网络监控的前端是具有网络传输功能的智能数字网络摄像机,核心处理器是TI公司的处理器TI AM335X ARM Cortex A8,然后用AES对称加密算法进行加密,通过以太网网络端口传到服务端,完成终端远程监控的功能。安全网络监控框图如图1所示。
多个摄像机通过局域网络将数据传到服务端,服务端对各个区域进行监控,监控网络连接框图如图2所示。每个视频采集端存入PC的TPM的绑定公钥,每个TPM所加密的AES密钥不同,所以只有第一次服务端需要用自己的TPM绑定密钥的私钥解密,之后就直接用AES密钥进行解密数据。
1.2 硬件设计
安全摄像头的硬件设计框图如图3所示,核心处理器采用了TI AM335X ARM Cortex A8。在ARM中装入Linux操作系统,并且安装TPM的配套软件栈trousers。CPU通过I2C控制TPM,AES以及与FLASH等进行通信。
将视频采集端采集的数据传入CPU,通过对称加密算法AES加密数据,存储到存储单元,通过网络TCP/IP协议将密文传输到服务端上,然后通过服务端的AES解密软件解密。为了AES密钥传输安全,用TPM的绑定功能(tpm_bind)对AES密钥进行加密。因为TPM的处理速度比较慢,所以不能加密太大的数据,这里加密对称密钥,加密后是256 B,这样完全不影响处理速度。
本文TPM芯片采用Atmel公司推出的一種专为嵌入式设计,以I2C总线为接口的AT97SC3204T。该芯片遵循TPM1.2规范,内置非对称密钥引擎RSA,随机数发生器,散列算法引擎SHA?1,计算引擎HMAC等,通过TWI总线进行通信。TWI总线是I2C总线的继承和发展,完全兼容I2C总线。典型的接线电路如图5所示。
1.3 软件设计
本文设计的整体结构是以ARM为主控芯片,将视频采集端的数据用AES算法进行加密,通过网络TCP/IP协议传输,将对称密钥通过TPM加密传输。系统软件主要实现AM335X软件编程、AES采集的视频数据加密编程和TPM对AES密钥加密三部分。
本视频监控是基于ARM?Linux平台开发的,在系统上移植U?Boot,Linux内核和根文件系统。首先对嵌入式Linux内核进行裁剪并移植,安装交叉编译器,并进行适配修改,搭建交叉编译环境。在源代码中加入以下5行定义代码,增加了可信芯片AT97SC3204T的支持。然后进行编译得到可信的MLO和u?boot.img文件。
软件栈TSS是TPM配套的软件,为TPM的使用提供了支持。采用IBM开发的trousers软件包1.1版本,通过makefile编译后,生成3个文件[4]:TDDL.o,TCS daemon,libtspi.a。其中TDDL.o是TPM设备驱动;TCS daemon是TPM的TSS核心服务程序;libtspi.a是TPM操作函数库,若调用TPM的秘密引擎要使用它的API。
2 数据传输与加密
本文用对称加密算法AES对摄像头端的数据进行加密,能够在通信中确保机密性。然而要在实际中运用对称密码,就必须解决密钥配送问题。而非对称密码就可以避免解密密钥的配送,从而就解决了对称密码所具有的密钥配送问题。但是非对称密码还有俩个很大的问题:
(1) 因为一般来说,在采用具备同等机密性的密钥长度的情况下,公钥密码的处理速度只有对称密码的几百分之一,远远低于对称密码。
(2) 公钥密码难以抵御中间人攻击。因此,公钥密码并不适合用来对很长的消息内容进行加密[5]。本文采用对称密码和非对称密码配合使用,用对称密码提高速度,用公钥密码保护会话密钥。
2.1 AES加密
AES加密算法即密码学中的高级加密标准,是美国联邦政府采用的一种区块加密标准[6]。AES加密算法适合硬件实现,有很多开源的项目,许多研究人员利用这些开源项目开发适合自己需要的AES加密系统。
AES加密模块一般分为加密部分和解密部分,本文实现方法是在视频采集端用AES模块加密采集的视频数据,然后经由网络将密文传到服务端,再由专门的AES解密软件对密文进行解密[3],AES加密方式如图6所示。
2.2 TPM加密
非对称加密算法体制中要求公钥对外公开,但是私钥是严格保密的。在实际应用系统中,攻击者可以从保密密钥和加密系统内部通过侧信道攻击手段获得私钥[7]。本文的非对称密钥是由本地硬件TPM模块产生,TPM的最底层的密钥有EK和SRK,EK是用来惟一标识TPM的身份的,由生产商指定,是固定不变的,TPM只能获取一次。SRK是用来标识所有者的身份的,是由所有者通过指令tpm_takeownership获得的。TPM对于密钥的管理是绝对安全的,因为之后所用的密钥都是由SRK产生的,包括绑定密钥,而SRK是由硬件保护存储的,很难获得。
可信模块TPM是可信计算组织(TCG)发行的一款可信芯片,是符合TCG规范的一个小型片上系统,内部有随机数产生器、身份认证秘钥、SHA?1引擎等。可实现功能有:完整性度量、身份认证、敏感数据保护、内部资源授权访问、数据传输加密等。目前基于可信计算的安全启动方式主要是通过以TPM为可信根的可信度量来实现的。
TPM有5种秘钥类型,分别是身份认证秘钥(Attestation Identity Keys,AIK)、签名秘钥(Signing Keys,SK)、存储秘钥(Storage Root Keys,SRK)、绑定秘钥(Binding Keys)、传统秘钥(Legacy Keys)。SRK是2 048位的RSA,用于加密秘钥,可以密封(seal)数据或者存储其他非对称秘钥。Binding Keys是一种加密秘钥,只用于存储小型数据,通常用于存储AES秘钥[8]。
将PC端的TPM产生的绑定密钥公钥部分发送给摄像头端进行存储。然后摄像头模块在自己平台用PC端的绑定密钥进行绑定(tpm_bind),对AES密钥进行加密,然后将加密后的密文传输到PC端,在PC端TPM用自己的私钥进行解绑定(tpm_unbind)。
tpm_bind是用TPM的Binding Keys绑定数据,是标准的用公钥加密。相应的解绑定tpm_unbind是用私钥解密。
3 实验结果及分析
本文实验硬件平台选用嵌入式板Beaglebone Black(BBB),通过USB接摄像头,通过网口连接网络,BBB的扩展模块Cryptocape上有AES芯片和TPM芯片。
首先用AES加密采集的视频数据,如图7所示,实现了AES对称加密数据,视频图像经加密完全无法识别,如果无法获取对称密钥,就算截获视频也无法观看。
如图8所示,可以看到TPM产生绑定密钥,获取非对称密钥的公钥部分,并且对AES密钥加密。
4 结 语
本设计是用外接USB免驱摄像头,AES加密模块和TPM可信模块设计的安全视频模块。本文设计的模块运行稳定、通信良好、加密可靠,很好地解决了监控视频数据泄露的问题,有效地防止黑客软件攻击,经验证其不影响摄像头监控传输性能。
参考文献
[1] 陈圣熙,陆盛浩.基于Smart Camera的目标识别和加密传输[J].电视技术,2011,35(23):149?152.
[2] 陶星辰.基于AES加密的无线音频传输系统设计及应用[D].合肥:合肥工业大学,2015.
[3] 谢慧芝,刘哗,彭煜,等.基于Android的嵌入式加密视频监控系统研究应用[J].电视技术,2014,38(3):70?72.
[4] 李霏,王让定,徐霁.内嵌TPM的视频监控服务器安全方案[J].微电子学与计算机,2007,24(9):32?35.
[5] 结城浩.图解密码技术[M].周自恒,译.北京:人民邮电出版社,2015:135?143.
[6] 龚进.AES加密算法在电子系统中的优化及应用研究[D].太原:中北大学,2012.
[7] 张明武,陈泌文,何德彪,等.高效弹性泄漏下CCA2安全公钥加密体制[J].计算机学报,2016,39(3):492?502.
[8] CHALLENER David, YODER Kent, CATHERMAN Ryan, et al. 可信计算[M].赵波,严飞,余发江,等译.北京:机械工业出版社,2008:56?63.