云存储环境下基于密钥的多级安全访问控制机制研究
2015-01-01
0 引言
云存储以其低廉的成本、良好的可扩展性和可靠性等优点而广受青睐,已被越来越多的用户所接受,把数据以外包的形式存储在云端,已成为企业存储的一种发展趋势。目前,云存储进一步推广应用的主要阻碍是安全问题,由于数据存放在用户无法掌控的云端,数据的安全过度依赖于并不十分可靠的云服务提供商(Cloud ServiceProvider,CSP),数据的安全难以得到保障。要解决这一问题通常采用加密存储的方法,即数据拥有者把数据以密文形式存放在云端,数据的加解密均在本地完成,通过对密钥的管理,数据拥有者就能实现对云端数据的访问控制。
1 相关研究
早期的云存储针对个体用户,加解密采用单一密钥,需要分享文件时,数据拥有者直接将密钥传递给使用者,这种策略存在一系列问题,诸如不能细粒度控制,单一密钥安全性差等。其后通过引入密钥树,并融入其他辅助认证技术等改进了对密文的控制能力,但是对于细粒度的分享控制和权限撤销一直存在资源开销过大的情况。
现在公共云存储服务一般采用混合加密机制,包括密钥封装机制KEM和数据封装机制DEM,其封装结构如图1所示:
图1 混合加密示意图
广播加密通过组密钥维持对密文的访问控制,每一个用户属于一个子集,并且存储所有子集对应的密钥,发送者选择适当的子集覆盖所有合法用户,用这些子集对应的密钥加密消息。广播加密的关键指标包括KEM的密文尺寸、公钥尺寸和每个用户储存的私钥数量,随着在云存储中依靠单一的群组策略并不能适应多级需求。多级安全需要一种链式可推导的模型来实现,接下来将结合企业实际的应用场景展开叙述。
2 基于密钥的多级安全访问控制
2.1 算法基础
2.1.1 单向函数
单向函数即正向计算容易,但其求逆计算在数学上是不可行的,或者很难证明可行性的,也就是仅可以通过正向输入求得输出,但很难通过输出结果推算出它的输入。
单向函数f(x)满足以下两个条件:
①对于所有属于f定义域的任一x,可以很容易的计算出f(x)=y;
②对于几乎所有属于f值域的任一y,在计算上不可能推导出x使得y=f(x)成立。
利用单向函数的仅单向可推导特性,应用在密钥更新上,若密钥k_1,k_2,k_3……k_i满足单向函数f(x)的值域递推关系,那持有k_1的用户即可以通过f(x)逐步获得密钥k_2,k_3……k_i,实现多级安全访问中的跨级访问的行为。此时,若f(x)满足单调特性,对f(x)的偏移计算仍能满足对密钥的推导规则,即可用此特性来完成密钥更新。
2.1.2 代理重加密
代理重加密(proxyre-encryption,PRE)允许一个半可信的代理者(proxy)将A可解密的密文转换为B可解密的同一明文的不同密文,同时保证代理者无法获知明文。
设由公钥pka加密的密文为c1=(M)pka,proxy在不解密密文的情况下,利用重加密密钥rkab将c1转换为c2=(M)pkb,c2是公钥pkb进行加密的,可以由B直接解密。实际相当于A通过代理重加密算法得到重加密的中间密钥rkab,CSP用rkab对密文进行了二次加密,通过数学算法,让新密文满足新的解密条件,可用于访问权限撤销时对云端数据的更新。
2.2 多级安全访问控制
在企业云存储实践中,结合企业内部管理的组织结构,高级用户的数量最少却需要授权最多的文件,而低级用户数量最多,却只能访问受限的最少文件,文件的访问控制权限呈现多级安全的层次策略。假设在一个云存储系统中,用户集合为U,文件集合为F,整个系统被划分为n个安全等级,⊆U(1≤i≤n)为安全等级为 i 的所有用户集合,(1≤i,j≤n,i≠j),U=∪∪…∪,⊆F(1≤i≤n)为安全等级为 i 的所有文件集合,(1≤i,j≤n,i≠j),F=∪∪…∪,那么∀u,用户u可访问的文件集合为(∪……∪)。
为接合上述情景,并获得较高的安全度和较快的响应,本文采用改进的混合加密机制,对 DEM 采用密钥长度较短的 DES(Data Encryption Standard)算法进行加密,以获得较快速的大文件密文操作效率。在KEM部分依然采用DES的算法,但选择位数较长的密钥加密较短的密钥明文,依然保证计算效率,并根据安全等级和用户的数量、涉及文件的数量等情况,灵活的确定不同安全级别 DES密钥的长度。维持高响应和安全性的平衡,满足实际应用的基础需求。
2.3 方案设计
(1)场景概述
为了便于描述本文提出的多级安全访问控制机制,在企业级云存储环境中提取几个重要的角色。CSP通过互联网提供云存储服务,File由Data owner创建,并由Data owner加密上传,File的密文将满足多级安全访问控制规则,Data owner负责分发管理所属密文的状态,在用户Data user访问时,需要满足自身的安全等级不低于File的安全等级,才能下载访问,并且一旦发生权限撤销,CSP将通过代理重加密操作完成云端数据更新。
(2)系统初始化
Data owner首先按照用户的身份和文件的重要程度划分用户和文件的安全等级,并为每个安全等级分配一个密钥,然后对每个文件进行加密和封装。上传到云端的文件按照安全级别的不同组织不同的目录树存储,同一级别的文件在一个目录树结构中,以便文件的检索和密文的更新。KEM 的结构前部加入料所属目录树的信息,用以描述文件的等级,引导权限控制。
(3)文件的访问
Data user发起对的File_1密文的访问请求,CSP会识别Data user所在等级,根据安全级别,决定是否开放访问权限。
当云存储系统内部发生安全隐患,需要撤销某个危险用户时,将对整个系统或大部分的密文进行更新,主要操作由 CSP代理执行,具体流程如下(详见图2所示):
3 性能与安全性分析
3.1 性能分析
图2 密钥更新图
在云存储访问控制的研究中,对性能影响最大的就是加解密的计算开销和更新密文的开销,从访问控制策略的设计来说,就是文件细粒度的访问控制和用户权限的动态管理的矛盾,想要实现绝对的细粒度,就要尽可能对文件一次一密,其结果会产生的大量密钥,增加动态管理的开销。所以,云端密文管理机制必须是有针对特定场景的、在特定安全范围内的策略。在设计策略上,需要找到细粒度访问控制和用户权限动态更新的平衡。
3.2 安全性分析
系统自身的安全性包括密文解密难易程度和算法策略的可靠性,数据的机密性由对称加密的原理可知,在保证密钥长度的情境下,针对暴力破解是安全的。算法推导可以抽象为数学上单向函数的求解,数学理论已经确认单向性的推导难度,可以用于密码学应用。
针对串谋攻击,若两个合法用户相互传递密钥以窥视密文,将通过 CSP限制其下载实现,无等级归属的文件申请将被拒绝访问。若某一用户被撤销,持有密钥,与另一个合法用户合谋窥视密文,则会根据用户所属安全等级,执行相应的密文权限更新,若底层用户退出,亦可通过 CSP进行用户黒名单隔离,并在必要时进行懒惰的密文权限更新。
4 结束语
本文通过对企业级云存储中多级安全访问控制的研究,结合单向函数特性提出了多级应用场景下可单向推导的密钥管理方案,应用代理重加密技术解决了大规模密钥更新时,用户自身的开销过大的问题,该方案具有架构简单,易于部署实施,易于更新和权限管理等优势,从整个系统运作上减小了重新下载上传密文的流量开销,基本满足了现行企业级云存储对多级安全访问控制的需求,为以后的实践工作提出了可供参考的理论依据,具有较高的可操作性和扩展性。