监控视频中多级密钥派生研究与实现
2021-02-25刘会江林开东
陈 阳,曾 浩,刘会江,秦 峰,林开东
(重庆邮电大学 电工理论与新技术实验室,重庆 400065)
0 引 言
在公共安全监控系统的实际应用中,监控摄像机数量在不断增加,视频分辨率也不断提高。那么,传统无差别加密方案已不适用海量视频的高并发、高通量需求。为此需要建设公共安全视频监控系统的分层安全体系,对实时监控视频数据进行分级管控,实现不同级别的访问和操作管理。
目前,多级密钥管理系统已经涉及到多个领域。文献[1]用于云平台的直播视频服务,该技术实现了对不同权限用户之间进行细粒度管理,但该方案未研究用户之间的等级关系。文献[2]提出了一种基于权限的分层加密方案,以此实现细粒度的访问控制,但该密钥派生方案没有结合加密数据的特有属性,导致所加密的数据安全性低的问题。文献[3]针对海量云数据加密存储带来巨大密钥存储管理问题提出了等级密钥存储管理方案,这些方案能够实现数据的分级加密,而且有效降低密钥存储开销,但该方案中散列树是以二叉树作为密钥派生结构,而实际中不能确定分支具体数。文献[4,5]针对等级体制下的用户提出了等级密钥管理方案,并利用偏序关系设计了密钥派生方案,但此类密钥派生算法不能实现用户与数据分别加密,不利于数据的安全传输。文献[6]融合了多权利群组密钥管理和等级密钥管理各自设计上的优势,数据拥有者只通过系统公开参数对各个访问群组的等级结构进行管理,而各个访问群组中的用户以基于多线性映射的群组密钥协商方式获得所在群组对应的对称加密密钥,这里所使用的对称加密密钥在共享时存在被篡改窃取的风险。
以上多种方案在各自领域都能有效实施,但这些方案不能实现等级用户操作管理多级视频数据的需求。因此,结合实际需求,本文提出一种基于国密SM3的等级密钥管理方案。该方案可实现大规模数据的高效率管理与检索,实现了对监控视频数据全生命周期的安全管控。
1 预备知识与问题描述
1.1 监控视频系统模型
图1为监控视频系统部署图,该系统主要包含3个部分:视频采集设备、存储设备和视频处理/播放服务器。其中视频采集设备中对视频数据的加密模块和视频处理/播放服务器中对密文视频数据的解密模块采用同一个密钥管理系统。该密钥系统包含身份认证模块、密钥管理模块、密钥分级处理模块、密钥派生模块[7]、密钥存储模块以及密钥销毁模块,主要用于密钥的生成、分发、管理等,为视频采集设备、播放设备提供加解密服务。用户访问密文视频资源时,根据该视频内容等级对用户进行细粒度权限鉴别,鉴别成功后派发相应密钥解密密文视频数据。
图1 监控系统部署
1.2 问题描述
通过对目前监控视频实时加密所采用的传统无差别加密方案研究分析,该传统方案存在以下问题:
(1)区域内的整路监控视频均采用统一的加密算法,未对用户与视频内容进行细粒度分级管理;不仅使得处理数据量与加密延时较大,而且该区域内拥有权限的用户能访问操作所有的视频数据,导致整路视频安全防护和管理效率不高的问题。
(2)无差别加密算法中未引入监控视频中的相关属性作为算法参数,导致密钥安全性低和视频数据检索效率较低的问题;且该算法未引入等级属性,不能实现用户和视频数据之间的对应关系。
为解决上述问题,提出一种基于国密SM3的多级密钥派生方案。该方案有以下改进策略:①设计多级密钥管理系统:按照多种属性对用户与视频数据划分等级,将划分的等级按照偏序关系生成对应的多级密钥管理树;②优化多级密钥派生算法:密钥派生算法中引入用户等级,并将视频数据中的多种属性作为算法参数,利用Hash函数SM3的单向性由上级密钥单向映射得到下级密钥,生成多级密钥。
1.3 SM3密码杂凑算法
派生多级密钥采用是国密SM3杂凑算法[8],下面对该算法进行简单介绍。SM3密码杂凑算法是我国自主设计的密码杂凑算法,适用于数字签名[9]、验证消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。此算法对输入长度小于2的64次方的比特消息,经过填充和迭代压缩,结果生成长度为256比特的杂凑值。因此,由SM3生成的密钥安全能够得以保证。
2 多级密钥派生方案设计
多级密钥管理的核心思想是为用户分配管理视频数据的合理权限,即为视频数据集合中元素派生等级密钥加密视频数据,只有拥有权限的用户能访问加密的视频数据,实现用户集合与视频数据集合之间的等级管理。
为方便分析,引出以下定义:
定义1 有n个结点的有限集合称为树。当n=0时,称为空树;当n>0时,称为非空树,其特点为:
(1)根结点有且仅有一个;
(2)其余结点可分为m(m>0)个互不相交的有限集合T1、T2、…、Tm,其中每一个集合本身又是一棵树,并且称为根的子树。
定义2 R是集合A上的一个二元关系反性、反对称性和传递性,则称R为A上的偏序关系,通常记作≤。若K1≤K2,则K1与K2存在偏序关系,也称K1排在K2前面(K1precedesK2)。
2.1 密钥管理方案设计
2.1.1 用户管理方案
多级用户管理方案中,可以用集合LU来描述拥有权限的用户,LU={LU1,1,LU2,1,…,LUi,j,…},其中LUi,j为管理权限是第i级中第j个区域的用户群组。各个用户群组之间存在的等级管理权限可用偏序关系表示,利用偏序关系建立用户等级树模型,如图2所示,是一棵深度为3的非空树,其中LU1,1为根用户群组,并包含3棵子树;该树的同一子树中,祖先级用户群组对子级用户群组有直接访问权限,即解密查看子级密文视频数据,反之则不成立,显然,根用户群组能够访问所有的子节点用户群组。不同子树之间的用户群组不能直接访问,更没有操作管理权限;若某一用户群组要访问其没有权限的密文视频数据,则需对被访问数据的管理用户群组提出申请,经同意后该用户方可访问被访问用户群组允许其能访问的相关视频数据;被访问用户群组可设置视频数据访问的时间、次数、地理位置等参数,用以控制访问用户群组的访问行为。
图2 用户等级密钥
图2中LK可描述用户等级密钥,其中,LK={LK1,1,LK2,1,…,LKi,j,…}与LU集合中的用户群组一一对应,即LKi,j为LUi,j的密钥。该等级密钥树的派生算法中,通过将父节点密钥值和子节点状态值作为密钥派生的参数,来计算出各子节点的密钥值。即计算密钥树中第i层中第j个节点对应的密钥值为:LKi,j=LKi-1,j,SLi,GAi,j。其中,LKi-1,j为LKi,j父节点对应的密钥值,为已知密钥,SLi为第i层安全等级因子,GAi,j为安全等级i中第j个区域因子,这里使用SLi、GAi,j是为了保证树中各个用户群组密钥值的互不相同。
2.1.2 视频数据管理方案
基于多级用户管理方案,将视频数据按照监控视频的时域和空域双维度特性以及人/设备/机构等多种属性进行等级划分,设计多级视频数据管理系统,该系统应当建立与用户管理系统一致的树模型,使其能够实现用户集合与视频数据集合的完全映射,完成用户对视频数据的等级管理。该系统中的视频数据可用集合LD来描述,LD={LD1,1,LD2,1,…,LDi,j,…},其中LDi,j为安全等级是第i级中第j个区域的视频数据,LUi,j为LDi,j直接操作管理者。
根据视频数据管理模型,为视频数据节点派生密钥构建视频数据等级密钥树。该管理方案中,必须事先明确规定分级视频的标准接口,包括视频的标识符、视频产生设备的标识符、视频的内容等级、视频产生的时间。生成视频数据等级密钥时,以用户等级密钥值与视频多种属性作为算法参数,派生多级视频数据加密密钥,使用户和视频数据的等级一一对应,完成用户集合密钥与视频数据集合密钥的完全映射。即计算密钥树中第i层中第j个节点对应的密钥值为:DKi,j=LKi,j,HKt,t,HIi,j;其中,t为视频采集时间,HKt为根密钥,HIi,j为视频采集设备ID,可用集合HI来描述,HI={HI1,1,HI2,1,…,HIi,j,…},HIi,j为LDi,j的设备ID。视频数据密钥可用集合DK来描述,DK={DK1,1,DK2,1,…,DKi,j,…},DKi,j为LDi,j的密钥。
2.1.3 动态管理
实际应用中,用户集合中的用户是动态的,即存在用户加入或者离开等情况。若用户集合变化,与之对应视频数据的管理权限也发生改变,则需要动态更新用户等级密钥与视频数据密钥,以保证用户密钥以及视频数据的安全。下面将具体分析这两种情况。
(1)新增用户
当新增用户LUm,n时,需判断该用户是否包含子节点。若没有子节点,则根据偏序关系直接加入到父级节点LUm-1,x后,并为其派生用户密钥:LKm,n=LKm-1,j,SLm,GAm,n,以及管理的视频数据密钥:DKm,n=LKm,n,HKt,t,HIm,n;若包含子节点,该用户按照偏序关系加入到等级树后,再将子节点加入其后,并为LUm,n派生用户密钥与视频数据密钥,且子节点用户密钥与该子节点管理的视频数据密钥必须更新。
(2)删除用户
当用户LUi,j离开用户等级树时,也需判断是否包含子节点。若没有子节点,则只需删除密钥树中LKi,j,那么与之对应的视频数据密钥更新为:DKi,j=LKi-1,j,HKt,t,HIi,j,即父节点直接管理该视频数据;若删除的用户包含子节点,将该节点的视频数据权限交给父节点,并将其子节点LUi+1,y与父节点LUi-1,x建立偏序关系,并更新子节点用户密钥:LKi+1,y=LKi-1,x,SLi+1,GAi+1,y,以及视频数据加密密钥:DKi+1,y=LKi+1,x,HKt,t,HIi+1,y。
2.2 多级密钥派生算法
2.2.1 用户密钥派生
用户群组之间的偏序关系,可利用Hash函数SM3单向特性实现。上级密钥可以通过SM3算法单向映射得到下级密钥,从而上级用户群组拥有访问下级用户群组数据的权限,但下级密钥无法由单向函数映射原值推出上级密钥,也就是说,下级无法获取上级用户群组相应的数据资源,符合用户管理方案的要求,实现了用户群组之间的多级管理。下面以用户集合LU={LU1,1,LU2,1,LU3,1}为例派生多级用户密钥。
步骤1 密钥管理中心(key management center,KMC)派生随机参数作为LU1,1的密钥值LK1,1。
2.2.2 视频数据密钥派生
派生多级视频数据密钥时,可同理多级用户密钥派生,利用单向函数SM3实现。将时间t、根密钥(HKt)与视频采集设备ID作为视频数据密钥派生的参数,即在不同时间段生成不同密钥,保证加密视频的安全性;引入用户等级作为视频数据派生算法的参数,不仅实现视频数据的等级安全加密,而且满足了用户与视频数据等级之间的权限管理。下面以视频数据集合LD={LD1,1,LD2,1,LD3,1}为例派生多级视频数据密钥。
2.3 更新流程
经多级管理方案与密钥派生算法优化改进后,视频分级加密、身份认证及访问分级密文视频的流程也得到相应更新,视频加密流程如图3所示。
图3 视频加密过程
视频分级加密流程:
步骤1 由前端视频设备采集得到实时明文视频,按照时域和空域双维度特性以及人/设备/机构等多种属性进行细粒度分级,划分具有安全等级的视频流。
步骤2 将安全分类后的视频数据通过视频采集设备中内置的密钥派生模块,为该视频数据派生等级密钥。
步骤3 将得出的等级密钥对采集的实时视频数据加密,生成具有安全等级的密文视频数据。
步骤4 把加密后的密文视频数据按照图4中视频数据封装格式进行封装,并将封装后的密文视频数据传输至后台存储设备或者处理播放设备进行存储。
图4 视频封装格式
步骤5 若密文视频数据密钥失效,需返回步骤2对该视频重新派生加密密钥;其中,针对步骤5中的密钥失效,造成原因有两种:①预设密钥有效期:预设密钥有效期用于密钥在有效期到期后被删除,即加密密钥有一定的生命周期;②加密密钥泄露:若密文视频密钥不慎泄露,该视频数据则需重新派生加密密钥。
身份认证及访问分级密文视频流程如图5所示。
图5 身份认证及分级视频密钥获取流程
步骤1 用户访问视频资源时,需通过认证平台PKI/CA[10]系统认证其身份合法性,并返回其认证是否通过消息;该系统采用双因子(口令+数字身份证书)方式实现身份鉴别,有效防止冒充、增强可靠性。
步骤2 若认证身份合法,认证平台将通过统一授权管理平台为用户授权访问数据库权限;统一授权控制管理是建立在统一用户目录管理的基础之上,并在统一密钥管理平台的管理下对分级密钥资源进行统一的授权。
步骤3 用户成功获取访问数据库权限后,便可通过相关部门视频管理平台获取密文视频资源;
步骤4 用户获收到密文视频资源后,需发送时间段信息、设备ID到统一密钥管理平台;该管理平台通过发送的信息查询设备密钥,查询成功后通过安全信道返回对应密钥。其中,步骤4又分为以下几个步骤,视频解密算法流程如图6所示。
图6 视频解密算法过程
(1)若用户成功获取到查看的密文视频数据,解密端(BC)根据用户要查看的密文视频数据获取设备ID和时间t;
(2)将获取的设备ID和时间t发送到KMC,请求数据解密密钥,KMC通过发送的信息查询该视频是否存在;
(3)KMC查询到视频信息后,根据时间t、视频属性和设备根密钥计算中间值tmp,并返回给BC;
(4)BC根据当前LKi,j和tmp,计算得出视频数据加密密钥DKi,j;
(5)BC使用加密密钥DKi,j进行解密,若解密不成功,判断用户是否有解密此视频得权限,若拥有权限返回(1)重新解密,否则申请数据共享。其中,针对解密不成功,造成原因有两种:①用户发送的时间t或设备ID等参数错误,与查看的视频参数不匹配,这种情况下,需重新发送验证信息;②用户没有查看该视频数据的权限;若要继续查看视频,则该用户需向被访问用户提出共享访问申请,经同意后方可访问被访问用户允许其能访问的相关视频数据,被访问用户可设置视频数据访问的时间、次数、地理位置等参数,用以控制访问用户的访问行为。
步骤5 用户解密该视频并进行观看。
3 方案分析
3.1 安全性分析
本文的安全性主要从两个算法分析:①加密算法SM3;②多级密钥派生算法。其中多级密钥派生算法还需要考虑:①反向攻击;②外部窃取攻击。
3.1.1 SM3分析
世界上应用最广泛的两大密码算法MD5和SHA-1都已被攻破,且SM3和SHA-256算法均是64步;所以本文仅对能够真实反应两者安全性强度的关键指标进行比较。①在关键指标[11]局部碰撞、碰撞攻击、原象攻击和区分攻击等SM3抗攻击能力均强于SHA-256;②SM3算法的压缩函数采用带循环移位的P置换作为加强消息雪崩的基本运算,结合并行双字介入结构,增加混乱及扩散的速度,不仅保证算法的实现效率,而且提高算法的安全性。
文献[12]研究给出了29步SM3算法的原根攻击,虽然SM3算法29步不能有效抵抗原根攻击和伪碰撞攻击,但完整SM3算法的快速攻击能力能够抵抗各种已知攻击能力。文献[13]提出了减小到32轮SM3密码杂凑算法的原像攻击以及33轮的伪碰撞共攻击方法;此攻击方法主要基于中间相遇攻击和biclique等技术达到对SM3算法32步的原像攻击的时间复杂度为2251,存储复杂度为25;对SM3算法33步的伪碰撞攻击的时间复杂度为2126.7,存储复杂度为23。这些攻击方法不能对64轮的SM3算法构成威胁。综上所述,目前利用SM3算法加密的密文视频是相对安全的。
3.1.2 密钥派生分析
(1)反向攻击
在本方案中,用户等级密钥LKi,j与视频数据等级密钥DKi,j均利用Hash函数SM3派生而来;此派生算法由上级密钥通过SM3单向映射得到下级密钥,但下级密钥无法由单向函数映射为原值,即下级密钥无法推出上级密钥,保证了LKi,j不能直接访问LKi-1,j的密文视频数据DKi-1,j。
(2)外部窃取攻击
假设LKi-1,j的密文数据DKi-1,j被攻破,若攻击者要利用LKi-1,j解密下级密文数据DKi,j;根据解密算法,即使攻击者获取了上一级数据密钥也无法得知HKt、HIi,j,所以无法计算出DKi,j的密钥;故攻破系统某一节点对整个系统的影响微乎其微。
3.2 性能分析
3.2.1 存储分析
本方案中,外部授权实体需要存储的参数需求是本文考虑的重点。从密钥树模型中可得到密钥管理系统中每个节点的密钥储存量,即每个节点用户仅需存储一个密钥数据即可;这里传统方案指传统无差别加密方案。从表1可以看出,相比传统的存储方案,本文所提方案大大减小了密钥存储开销。其中,i表示安全等级,X(i)表示在第i级中用户群组数,m表示安全等级总数。
表1 存储开销比较
以用户群组为[5,10,15,20,25,30]为例,计算密钥树的存储开销与传统方案存储开销的百分比,由图7可以看出,随着用户群组个数增加,存储开销减少越来越明显。
图7 存储开销对比
3.2.2 效率分析
假设只考虑加密视频数据的计算量,本方案实现的视频数据多级密钥管理系统中,派生数据密钥需串联用户等级,密钥生成阶段比传统方案多一次串联运算,这使得本方案比传统方案计算效率要低,但这是对密文视频数据高效管理与安全性必要的折衷。若考虑海量视频的高并发、高通量的需求,该方案中将监控域分成不同等级区域块,能够完成大规模数据的高效率加密。检索方面,用户能根据视频数据特有属性快速检索到该密文视频,大大提升了检索效率。
4 结束语
本文提出的基于国密SM3多级密钥派生方案中,采用树作为密钥派生结构,不仅解决了海量视频的高并发、高通量需求,而且用户只需存储一个密钥数据,大大降低了存储开销。同时实现了对实时监控视频数据进行分级管控,解决了传统方案存在的安全与管理复杂问题,提高了数据的检索效率。性能分析结果表明,该方案的安全性、检索效率和管理效率都得到提高。下一步将考虑在本方案基础上结合视频内容的细粒度分级授权对多级密钥管理方案进一步研究,以适用于特殊权限用户群组对等级视频数据管理,按照改良后的管理方案对多级密钥派生算法进行优化调整。