基于TCM的可信摄像头设计

2019-11-12 09:08:20许珮莹
网络安全与数据管理 2019年11期
关键词:公钥度量密钥

王 啸,许珮莹

(北京工业大学,北京 100124)

0 引言

在当前倡导“万物互联”的时代,物联网技术越来越多地应用到人们的日常生活中,物联网安全也逐渐被大家重视起来。摄像头有应用范围广,数据保密性、完整性要求高等特点,是最值得关注的物联网应用之一。因此,本文以普通摄像头为例,基于可信计算技术,设计实现了一个基于可信密码模块(Trusted Cryptography Module,TCM)的可信摄像头。

1 可信摄像头概述

1.1 背景分析

当下,随着相应硬件成本的逐步降低,视频监控系统得到越来越多的应用:交通状况检测、室内安全监控、流水线状况监控、智能家庭摄像头等。而在整个视频监控市场中,智能家庭摄像头的增长速率最为迅速。根据IHS Markit 2017年做出的预测,2017~2022年全球视频监控市场复合增长率将达到7.5%,2018年网络摄像机出货量的增长速度预计将超过30%[1]。可见,基于互联网的智能家庭摄像头是视频监控行业发展的一大趋势。

但是同时,基于网络的视频监控系统也是不法分子盗取信息的主要途径之一。目前的互联网摄像头存在诸多的安全隐患,黑客很容易通过未加密或密钥较简单的连接入侵家庭摄像头,查看家中的情况,对隐私构成了极大威胁。

基于上述现实情况,本文考虑利用可信计算技术保护家用摄像头,在硬件层面最小化监控视频泄露的风险。目前可信计算在物联网方面的实际应用几乎为空白,国内外有许多关于视频监控系统隐私及信息保护方面的研究论文,但基本都是针对图像处理、信号加密及人脸识别等方式进行公共区域视频监控的加密处理,关于智能家居中所使用的监控摄像头的数据盗取问题,相关研究少之又少。调查与研究表明,应用可信计算技术,势必会有效增强智能摄像头的安全性,并可以由此推至大型监控系统的安全保护中,有着重要的现实意义。

1.2 问题的提出和解决思路

目前市面流行的智能摄像头多由传统的工业安防摄像头演变而来,但是脱离了工业安防摄像头原有的封闭网络环境,应用在家庭生活中,使得智能摄像头面临更多的来自网络的安全威胁[2]。智能摄像头主要存在如下的安全隐患:

(1)未对启动程序进行保护,不能保证在设备启动和初始化时是安全状态,源头可信无法保障。

(2)在开放的网络环境中,数据传输安全很难得到保障,虽然目前大多数智能摄像头有一定的数据加密方式,但是大多使用的是弱口令加密或HTTPS协议对请求控制内容进行传输加密,加密防线极易被攻破,造成用户隐私泄露。

(3)大多数智能摄像头不但安全防御能力薄弱,甚至无法在被攻击时及时发现并采取有效措施。因此无法及时阻止损失,造成了大量后续隐患。

本文摄像头的总体设计思路是:用可信支撑安全,用安全支撑应用[3],基于TCM可信密码机制自底向上来保障系统各节点运行的安全。针对上述主要安全隐患,提出的解决思路是:

(1)在系统启动前通过底层可信根,逐层度量形成可信链,将信任层层扩展到整个系统,保障系统初始化的安全状态[4]。

(2)通过可信密码机制和可信链,采用安全的密钥交换和管理策略,提供策略的可信管理和可信协同,对传输数据进行流加密,确保数据安全。

(3)采用节点的可信度量,使系统能够在整个使用周期进行可信监控,及时发现攻击行为并响应、立即采取措施。

基于上述的框架设计思路,本文提出了基于TCM的可信摄像头的概念,这一概念主要是利用TCM可信密码机制,在CUBE架构的基础上,依托Linux环境,实现安全可信的摄像头嵌入式系统。

2 可信摄像头的设计与实现

2.1 应用场景设计

通过在摄像头系统中部署TCM模块和可信安全机制,使摄像头系统具备可信防护功能,提高摄像头系统的安全性。在具体设计实现过程中,对物联网原有的分布式监控系统进行了简化,在满足摄像头系统基本应用要求的前提下,采用点对点,即一个客户端对应一个摄像头的方式进行设计实现[5]。应用场景概念设计如图1所示。

图1 应用场景概念图

在该场景下,摄像头实现感知外部环境(即获取视频)与处理视频文件的功能;客户端实现获取视频文件和观看视频的功能。摄像头和客户端都部署了TCM芯片[6](本设计中应用TCM模拟器实现)。

在摄像头系统初始化阶段,首先对未启动的视频处理程序OpenCV[7]进行可信度量,当度量结果验证成功,即证明程序未遭到篡改后,启动OpenCV程序,捕获外部视频。摄像头获取到的视频将生成一个视频帧数据文件,存储在本地。当客户端的用户完成了用户身份注册,并成功登录后,客户端生成TCM密钥对,并将公钥发送给摄像头,在摄像头端的TCM中进行存储管理。当客户端向摄像头发出获取视频的请求时,摄像头端会对客户端用户进行身份认证,验证通过后,用客户端发送来的公钥对文件进行加密,之后再发送给对应的客户端。客户端收到加密的文件后,用自己的私钥解密,就可以观看视频或对视频进行其他操作。

2.2 需求分析

针对以上应用场景,分析其中的安全功能需求后,得到如下所述的应用安全需求:

(1)确保摄像头安全。由于感知端节点资源有限,但其环境和执行程序相对固定,因此适宜采取类似白名单机制这种不太复杂的机制进行保护。

(2)确保摄像头的视频处理程序在初始化时必须是安全、未被篡改的,否则应在启动时就采取安全防护措施,如对用户提出警告信息、终止运行等。

(3)成功登录的已注册用户不一定是合法的用户,不排除身份盗用的可能,因此在用户向摄像头发出请求后,摄像头还应该再次对用户身份进行认证,确认用户身份的合法性。

(4)视频在摄像头到客户端的传输过程是不安全的,会暴露在一个公开的环境中,有被窃听或篡改的威胁,需要使用密码机制对其进行加密保护,这样即使攻击者截获了加密文件,也无法获取其中的信息。

(5)由于全系统除了涉及软件层面的加密,还涉及硬件层面的加密,因此对于加密算法的加密速度、复杂度都有更高的要求。所以本设计中采用了性能优秀的国密算法作为加密算法[8]。

2.3 安全模型

在总体架构设计上,本设计采取横纵分层的方式,其解读如下:横向基于真实流程来划分,包括摄像头、传输协议以及客户端,映射了感知端、传输端以及应用端,描述了物联网的通用过程;纵向分为应用层、平台可信层与TCM层,其中TCM层是可信的根源,是保障摄像头系统可信的核心[9]。总体设计框架如图2所示。

图2 总体框架图

2.3.1 纵向框架设计

纵向框架基于三层,分别为TCM层、平台可信层以及应用层。

TCM层是可信的根源,在摄像头端和客户端分别部署TCM芯片(本设计使用TCM模拟器模拟),保证其从根源达到可信,并在TCM内部对密钥进行存储和管理,实现密钥交换和双向身份认证功能,保证点对点传输过程中的安全、可信。

平台可信层使用了Linux系统,并在其中部署了平台完整性认证机制,摄像头启动时对于开启摄像头的软件OpenCV及各种策略进行度量,并将度量结果与存储在本地的基准值库中的度量值进行比较,判断该程序是否遭到篡改以及可信链是否遭到破坏。

应用层的主要功能是将摄像头采集到的周围环境的影像进行压缩、加密,并根据客户的需求将视频文件传输给客户端。客户端接收视频后传给平台可信层,根据TCM中存储的密钥进行解密解压,之后传回客户端,用户可以对其观看或进行其他操作。

2.3.2 横向框架设计

横向框架基于三层,分别为摄像头、传输协议以及客户端。

摄像头感知外界环境,采集影像并存储。因为感知端节点资源有限,所以不适宜采取复杂的保护机制;但感知端节点环境和执行程序相对固定,因此适宜采取白名单机制进行保护。

传输协议实现了摄像头与客户端之间的交互,基于传输协议,实现视频文件的传输、平台完整性认证、双向身份认证和密钥交换等功能。

客户端是最后观看视频或对视频进行操作的区域。监控系统都应具有一个或多个可以观看视频并且操作视频(查、删、存等)的客户端。客户端可以是应用程序、网页或手机应用程序等,本设计采用了易于实现的网页界面来模拟客户端。

2.4 核心安全机制设计

在初始化阶段,摄像头系统捕获即将启动的视频处理程序,对其进行静态的可信度量,并将度量值与视频处理程序的基准值进行比较。若度量值与基准值一致,则程序将正常启动运行;否则,系统发出警告信息,提示用户该程序存在风险。可信度量机制验证了应用程序初始化时的安全性,能够及时拦截被篡改的程序,实现系统的主动免疫功能。

客户端在向摄像头端发送获取视频数据的请求前需要先在服务器端进行注册并完成登录。

客户端在完成新用户注册的同时,会通过可信第三方为该合法用户生成唯一的用户身份密钥(Platform Identity Key,PIK)以及PIK证书,供用户进行身份认证使用。

客户端在TCM中生成TCM密钥对,并将自己的公钥发送至摄像头端进行存储和管理。

在客户端的用户完成登录后,客户端将该用户的PIK公钥及证书发送至摄像头端,摄像头端通过验证PIK及证书实现对用户的身份认证,确保客户端用户身份的合法性。用户身份认证完成后,摄像头端使用发出请求的客户端的TCM公钥对视频处理程序生成的视频文件采用SM4算法进行加密,再将加密后的视频文件发送给客户端。客户端用TCM中存储的私钥对视频数据进行解密,即可观看视频。

2.4.1 可信度量

本设计使用OpenCV对视频文件进行捕获,为保证其安全可信,使用可信度量机制。

在可信的环境下对OpenCV的可执行程序及各种策略、文件进行度量,借助TCM中的SM3算法计算此可执行程序和各种策略、文件的摘要值,并作为基准值将其储存在本地,形成白名单。计算此白名单的摘要值,并将其写入平台配置寄存器(Platform Configuration Register,PCR)中,防止白名单被篡改而导致的信息泄露。将此白名单分别发送给边设备和客户端,作为衡量该环境是否可信的标准。

在使用过程中(此环境一般为不可信环境),每次启动OpenCV时,使用SM3对本地的白名单计算摘要值,并与PCR中的值进行比较,判断其是否一致。若不一致,则证明白名单被篡改,提示用户继续运行有信息泄露的风险;若一致,则对OpenCV的可执行程序和各种策略、文件进行度量,将摘要值与白名单中值进行比较,判断其是否相同,若相同,则可以继续后序操作,若不相同,则提示用户程序被篡改,建议终止运行。可信度量原理如图3所示。

图3 度量过程原理图

2.4.2 用户身份认证

在用户登录过程中,本设计采用可信认证机制,借助于PIK和配套的PIK证书,向服务器证明用户身份的合法性。在生成PIK证书的过程中,需要可信第三方(Certificate Authority,CA)的介入。CA中存有一个密钥对,同时向用户提供CA公钥,在获取到用户的PIK证书申请后,将用户PIK公钥摘要、用户身份信息和TCM绑定的设备信息写入PIK证书中,并用CA私钥签名生成证书激活包,发送给申请的用户。用户在接收到PIK证书激活包并完成激活过程后,即可得到有效的PIK证书。每次在用户登录的同时,用户将PIK公钥及证书发送至摄像头端,摄像头端对证书和PIK公钥进行验证,从而认证用户身份的合法性。用户身份认证原理如图4所示。

图4 用户身份认证流程图

2.4.3 视频加/解密

为了保证视频数据在传输过程中的安全,本设计采用将摄像头捕获到的视频数据文件,经过加密后传输给客户端的合法用户。TCM中包含SM2非对称加密、SM4对称加密和SM3度量值计算算法,客户端生成一对与用户绑定的对称密钥,其中,私钥存储在TCM中,公钥经过非对称密钥加密后发送给摄像头端,摄像头端接收到公钥后在TCM中对其进行可信存储和管理[10]。在用户申请获取视频数据时,摄像头端先根据用户信息查找其公钥,再用该公钥对视频文件进行加密,并将加密后的视频文件传输给客户端,客户端会用存储在TCM中的私钥对文件进行解密。

在摄像头端,接收到的视频文件传输给文件处理模块,再通过此模块发送给加密模块进行加密处理,加密后的视频文件传输回文件处理模块,经过此模块传输给对应的客户端中的文件处理模块。

在客户端中,文件处理模块接收到从服务器端传输过来的加密后的视频文件,并将其传输给解密模块,经过解密后传输回位于客户端TCM中的文件处理模块,得到原始视频文件供用户观看。

在传输过程中,由于该文件的密钥是在TCM中管理、分配的,即使攻击者截获了视频文件也无法获得密钥解密观看,保护了用户的隐私安全[11]。视频的加解密原理如图5所示。

图5 视频加/解密流程图

3 功能模块实现

3.1 可信度量模块

本设计中,采用可信度量模块在摄像头启动之前,先采集系统中需要运行的视频生成软件和策略、文件的度量值,再将采集到的度量值与存储在本地的白名单中的基准值进行比对,如果比对结果一致,说明该软件的完整性和安全性未遭到破坏,程序将正常启动;否则,说明软件被篡改,给予用户提示。

完整的可信度量模块由实体度量值采集和实体度量值比对两个部分组成。实体度量值采集部分根据输入的实体描述消息进行本地软件的度量,生成对应的实体度量值消息,并将度量值存储在本地,形成白名单。实体度量值比对部分在收到实体度量值消息后,会将度量值与白名单中的基准值进行比对,生成比对结果消息。可信度量的大致流程如图6所示。

图6 可信度量流程图

可信度量模块integrity_collect根据输入的实体描述信息,在本地执行度量操作,生成对应的度量结果并作为消息发送。integrity_collect的输入输出如表1所示。

表1 integrity_collect的输入输出

3.2 注册登录模块

本设计中在摄像头端和客户端分别部署login_test和login_client模块,实现用户注册、登录、远程密钥发送和视频文件传输申请的功能。在完成用户注册、登录和文件传输后,需要返回用户的注册、登录和文件传输结果。注册登录模块的大致流程如图7所示。

图7 注册/登录流程图

用户注册数据记录格式主要是记录用户向本模块提供的注册信息;用户登录数据记录格式主要是记录用户向本模块提供的登录信息;本地用户状态数据记录格式主要是记录用户对应的状态信息。

在用户注册过程中,本模块的输入为用户的注册信息,输出为用户注册结果;在用户登录过程中,本模块的输入为用户的登录信息,输出为用户的登录结果。该模块的输入输出如表2所示。

表2 用户登录输入输出

3.3 身份认证模块

本设计中通过pik_client、pik_casign、pikcert_verify和pikcert_store四个模块实现用户身份认证的功能。该模块大致流程如图8所示。该过程主要用到了三种数据项记录格式,如表3~表5所示。

图8 用户身份认证流程图

表3 (TCM_PIK_DESC,USERINFO)记录项的格式

表4 (TCM_PIK_DESC,CADATA)记录项的格式

表5 (TCM_PIK_DESC,PIKCERT)记录项的格式

3.4 密钥创建模块

使用create_key模块完成TCM密钥对的创建。create_key模块收到输入消息后,在TCM中完成目标密钥对的生成,并将密钥信息按照定义的数据结构填充完整,最后输出完整的生成私钥的消息,具体的公钥和私钥的实际值存储在TCM的内置数据库中,其中公钥可以导出,私钥不可导出。create_key模块的大致流程如图9所示。

图9 密钥生成流程图

为了方便密钥生成后对密钥的管理和存储,本文为密钥对象定义记录类型TCM_KEY_MANAGE,同时为了区分公钥和私钥,还需定义PRIVATE_KEY和PUBLIC_KEY两种子类型,(TCM_KEY_MANAGE,PRIVATE_KEY)在本地存储私钥与用户的关联关系,(TCM_KEY_MANAGE,PUBLIC_KEY)在本地和远程TCM中存储公钥与用户的关联关系。

4 创新性设计

本设计从摄像头使用的安全需求出发,把可信计算技术应用于物联网中,实现了基于TCM的可信摄像头,增强了摄像头的安全性、实用性,使摄像头的使用更加放心可靠。本设计具有如下的创新性:

(1)在传统的视频数据流加密的基础上,加入了基于安全芯片TCM的加密机制(本设计中使用TCM模拟器模拟)。基于TCM实现了密钥创建和密钥的管理,以此用于视频传输以及用户身份认证,保证了密钥存储的安全,增加了加密的安全性。TCM弥补了摄像头系统的安全缺陷,从连接环节、度量环节、自身安全环节等多方面进行了安全性增强,并通过应用软件统一管理的方式提高整个业务使用过程中的安全性。

(2)采用了国密算法系列,应用于摄像头系统的加密。其中SM2算法签名速度与秘钥生成速度都快于RSA;SM3算法压缩函数的每一轮都使用2个消息字;SM4算法在计算过程中增加非线性变换。国密算法系列相比于国际算法,在复杂度、加密速度等方面都有大幅提升,更能保障系统的安全性。

(3)将可信计算技术推广到物联网上。本设计的模式兼顾了一般物联网设备与可信计算的特点,通过可信链为物联网过程进行层层安全防护,预计可以推广到大多数符合感知-传输-应用过程的物联网设备上。

5 结论

本设计尝试了将可信计算技术应用于物联网系统中,研究了基于TCM的可信摄像头。本设计除了参考传统的密码加密、访问控制等安全手段,更是通过可信机制构建的可信链来确保摄像头全生命过程的安全;同时通过合理的架构促进“横纵三层”的互动协作,保障了可信过程的实施。

本设计还需要进一步的改进和完善。首先,物联网终端有型号多、接口复杂、硬件要求不同等特点,本应使用更多不同型号的真实设备来进行验证。而此次只对单一摄像头,配以单一客户端做了简单的模拟。第二,在真实的物联网流程中,传输层与客户端之间还应添加一个物联网中心(注:物联网中心在此处指为感知数据提供海量存储、信息分拣、重要数据备份等功能的一个处理中心),用来进行数据分拣与备份等操作。本设计跳过了这一区域,但实际上如何实现物联网中心的安全也是非常值得关注的问题,因为有海量数据蕴含其中,一旦被攻破后果十分严重。最后,只实现了可信计算中的可信度量、可信存储等功能。

可信计算是一门博大精深的技术,有更多的技术知识等待被发掘。继续探索出更安全、精巧的可信摄像头机制和其他可信物联网应用是下一步的研究方向。

猜你喜欢
公钥度量密钥
有趣的度量
探索企业创新密钥
模糊度量空间的强嵌入
密码系统中密钥的状态与保护*
迷向表示分为6个不可约直和的旗流形上不变爱因斯坦度量
一种基于混沌的公钥加密方案
一种对称密钥的密钥管理方法及系统
基于ECC的智能家居密钥管理机制的实现
电信科学(2017年6期)2017-07-01 15:45:06
HES:一种更小公钥的同态加密算法
地质异常的奇异性度量与隐伏源致矿异常识别