当前位置:首页 期刊杂志

一种基于属性加密的数据保护与访问控制模型

时间:2024-09-03

◆罗云锋 熊 伟 许庆光

(92723部队 北京 100841)

一种基于属性加密的数据保护与访问控制模型

◆罗云锋 熊 伟 许庆光

(92723部队 北京 100841)

本文构建了一种基于属性加密技术的数据保护和访问控制模型,设计了基于属性的密码服务系统架构,以FTP文件服务器、数据库系统和网络存储系统为实例,描述了详细的加解密和访问控制流程。该模型较好地解决了数据安全共享和细粒度访问控制问题。

基于属性加密;数据保护;访问控制

0 引言

在信息系统中,访问控制是在身份鉴别之后保护系统资源安全的第二道屏障,是信息系统安全的重要功能构件。其任务是在为用户对系统资源提供最大限度共享的基础上,对用户的访问权限进行管理,防止对信息越权篡改和滥用,访问控制的基本模型如图1所示。

图1 访问控制模型

其中引用监视器是核心,必须具有自我保护能力且总是处于活跃状态。在实际应用中,攻击者可能绕过引用监视器,从操作系统或者数据库管理系统层面直接获取应用层的数据,甚至直接修改引用监视器以达到越权访问的目的。为了弥补引用监视器实现机制的不足,最常用的一种方法是采用数据加密。数据被加密后,只有拥有解密密钥的用户才能获取明文数据。随之带来的问题是当数据需要在一定范围内根据一定的策略进行共享的时候,密钥的分发变得非常困难。利用密钥分割等方法实现秘密共享,在一定程度上可实现粗粒度的访问控制。但从已有研究进展来看,传统的加密方法不适合实现数据安全共享和细粒度的访问控制。

1 基于属性加密技术

基于属性的加密算法是在Shamir于1984年提出的基于身份的加密体制的基础上发展起来的[1],2005年,Sahai等人提出了模糊匹配的基于身份的加密方案[2],在此方案中首次提出了将用户身份细分为若干可描述的属性集合,被定义为最早的基于属性的加密算法。此后,基于属性的加密算法研究的越来越多。从模糊匹配的基于身份的加密算法开始,基于属性的密钥开始引起越来越多的人的重视,2006年,Goyal等人在基于模糊身份加密方案的基础上提出了基于属性的加密方案(ABE)[3],2007年,Bethencourt等人提出了密文策略的基于属性加密方案(CP-ABE)[4],将密文与一个访问结构树相关联,而将用户密钥与一系列的属性相关联。当用户拥有的属性满足密文的访问控制结构时,用户即可解密密文。基于该思想,先后提出能够支持高级访问结构[5]、具有完全表达能力[6]的基于属性的密文策略加密方案。围绕属性撤销的难点问题[7],文献[8] 提出了一种支持完全细粒度属性撤销的模型。文献[9-11]在云存储中敏感数据的机密性保护、气象云数据访问控制、无线传感器网络签名加密等方面提出了应用方案。

一般情况下,一个基于属性的密文策略加密方案包括由以下四个过程。

(1)系统初始化:以一个隐含的安全参数为输入,而不需要其它输入参数,输出系统公共参数PK和系统主密钥MK 。

(2)消息的加密:以加密消息M,系统的公共参数PK和访问结构A为算法的输入参数,其中A是在全局属性集合上构建的。算法输出用A对消息M加密后的密文CT 。

(3)密钥的生成:以一个属性集合S,系统的公共参数PK和系统的主密钥MK乍为算法的输入参数。算法输出私钥SK。

(4)密文的解密:以密文CT ,系统的公共参数PK和解密密钥SK作为算法的输入参数,其屮密文CT包含访问结构A, SK是S的解密密钥。如果属性集合S满足访问结构A,则解密密文。

基于属性加密体制适用于解密方不固定的情形,加密方可以采用灵活的访问结构,通过赋予解密方不同的安全属性,实现基于密码算法的访问控制策略。

2 基于属性加密的服务系统

基于属性加密的服务系统(Attributed-based Encryption System,ABES)结构如图2所示,ABES分别授予用户不同的安全属性,从而控制对数据的权限。基于属性的加密体制将密码与访问控制结合在一起,判断一个用户是否能够访问数据过程,直接蕴含在密文信息的解密过程中,用户的安全属性能够支配客体的安全标记,则解密成功,即可以访问明文;否则解密失败,不能访问明文信息。访问规则与加密算法紧密结合在一起,防止安全策略被篡改或旁路。

图2 基于属性的密码服务系统结构图

ABES包括安全属性管理、密钥管理、属性加密服务和属性加密客户端四个模块,提供与属性加解密相关的管理功能和外部调用接口。ABES提供与索引加解密相关的管理功能和外部调用接口,应用实例通过调用属性加密客户端提供的API接口访问ABES提供的加解密服务,属性加密客户端和属性加密服务之间通过内部网络接口协议进行通信。

2.1 安全属性管理

安全属性管理包括主体安全属性管理和客体安全策略管理两部分。主体是指所有具有解密需求的实体,例如用户、终端、中间层服务器等,主体安全属性管理通过定义主体的安全属性,为主体的私钥分发提供依据,主体的安全属性决定了主体私钥的解密范围和能力。客体是指所有需要加密保护和访问控制的实体,例如文件、数据流、数据库中的数据项等,客体的安全策略是对客体实施加密的依据,客体的安全策略由能访问该客体的主体的安全属性的逻辑运算组成,客体的安全策略决定了哪些主体对该客体具有解密能力。

主体的安全属性主要包括主体标识(ID)、密级(SL)、业务范围(WR),也可以增加一些自定义的内容来详细描述主体的安全属性。安全属性支持三种数据类型:字符串类型、整型、集合类型,属性名和属性值之间用“=”号连接,通配符“*”用来表示“所有”的概念。例如,假设某用户A为部门长1,其所在的单位具有如图3所示的组织机构。

图3 用户组织机构图

用户A主管部门1有两名员工,用户A的密级为1(假设员工密级为0,部门长密级为1,总经理密级为2),那么用户A的安全属性可以描述为“ID=A;SL=1;WR=总经理.部门长”。其中,符号“.”用来表示树状组织机构中的上下级关系。在制定安全策略时,三种数据类型中,字符串类型必须完全匹配,整型可以用“>”、“>=”、“<”、“<=”或者“=”进行匹配,集合类型可以用通配符匹配。多个策略之间可以用“and”和“or”进行关系运算。如果有一批数据,希望密级为1以上或者部门1及上级部门的用户可以查看,那么应该对客体定义如下的加密策略“SL>1 or WR=*.部门1”,则只有总经理、部门长1、部门1的所有员工可以解密。

2.2 密钥管理

密钥管理是指管理员为主体分发私钥,分发私钥是一个离线的工作过程,包括注册、生成私钥、导出私钥三个步骤。

(1)注册。管理员在密钥管理系统中对主体进行注册,对其属性进行审核。为了保持与属性管理服务器的一致,通常是从属性管理中离线导入主体属性,然后进行审核。

(2)生成私钥。根据主体属性生成用户私钥。

(3)导出私钥。将主体私钥导出至指定的安全存储设备。通常主体私钥保存在主体所在主机的密码模块中,受密码模块的保护。由于主体私钥可以根据主体属性重新生成,因此系统不需要对主体私钥进行备份。

2.3 属性加密服务

属性加密服务为客户端提供网络服务接口,包括会话服务、加密服务和索引服务。

(1)会话服务

会话服务是指属性加密客户端与属性加密服务器建立会话连接并协商相关参数。会话采用TCP长连接的方式,遵循系统定义的属性加密网络接口协议。属性加密客户端分为两类,一类是主体式客户端,这类客户端可以对加密的数据进行解密,有自己的私钥;另一类是非主体式客户端,这类客户端仅仅调用属性加密服务对数据进行加密,没有私钥。一个客户端也可以同时属于以上两类情形。

主体式客户端与属性加密服务器建立会话主要完成二级密钥更新的功能。系统中的密钥类型包括公私钥、会话密钥、二级密钥、初级密钥。公私钥用于属性加解密的公开密钥,整个系统在一定时期仅有一个,由系统初始化的时候生成。会话密钥用来临时保护初级密钥,在非主体式客户端会话初始化时生成。二级密钥用于加密保护初级密钥,在非主体式客户端会话初始化时建立。初级密钥用于加密保护数据,在加密数据时随机生成。其中公钥和私钥使用属性加解密算法,会话密钥、二级密钥和初级密钥使用对称加解密算法。

主体式客户端在建立会话时,首先向属性加密服务器提交主体的ID,会话服务查询该ID的属性,确定该ID可以解密的所有二级密钥,并将这些二级密钥发送给客户端。由于二级密钥是加密存放的,因此,即使会话结束,仍然可以保存在客户端的硬盘中,下次建立会话时仅需要更新新增的二级密钥。在会话期间,如果属性加密服务器上新增了该客户端可以解密的二级密钥,客户端可以根据需要(例如解密某数据时所需的二级密钥不在本地缓存中)直接向属性加密服务器申请该二级密钥。

非主体式客户端建立会话主要是与属性加密服务器间建立一个有效的TCP连接,同时协商一个临时的会话密钥。

(2)加密服务

属性加密客户端提交客体数据、加密策略和加密方式,加密服务返回加密结果。

①客户端提交客体数据x、加密策略y和加密方式z,请求加密。其中,加密方式是指是否为索引加密。由于有些客体是结构化的数据,原始存储位置在存储空间或者存储类型上有一定的限制,导致密文数据无法存储,因此ABES提出一种索引加密的方式来满足这种应用要求。索引加密是指在原始存储位置仅存储客体的密文索引,而真正的密文则存储在属性加密服务器中。在需要解密的时候,客户端通过索引在属性加密服务器中获取真正的密文再进行解密。

②判断加密策略y是否已经存在,若y已经存在,则一定存在用策略y加密的二级密钥SK;若y不存在,则新生成一个用策略y加密的二级密钥SK。用y加密的二级密钥SK在会话服务期间会上传到满足策略y的客户端。

③随机生成一个用于数据加密的初级密钥DK,用SK加密DK,用DK加密客体x,得到密文:ESK(DK)EDK(x)。

④如果不是索引加密,则直接返回密文ESK(DK)EDK(x),如果是索引加密,则在属性加密服务器中存储一条索引记录(索引号,密文,二级密钥标号),将索引号返回给客户端。

⑤如果客户端请求的客体为空,表示客户端希望在本地用DK加密x,属性加密服务利用会话时建立的KS加密DK,返回给客户端,客户端调用本地的密码模块加密数据后,仍然可以得到ESK(DK)EDK(x)。这样做的好处是,一方面可以减轻属性加密服务器的加解密压力,另一方面可以避免在网络上传输明文。

(3)索引服务

索引服务是指根据索引获取对应密文的服务,或者向属性加密服务器中添加一条索引记录。索引的功能是能够替换密文进行存储和传输,为了能对索引、密文和明文进行区分,系统将索引的结构定义为:“~~”+8字节+“~~”。其中“~~”为前导和结束符,字节1~7,用以惟一标识该密文数据的序号,含0到9, A到Z,a到z等字符,字节8为校验和。特殊索引“~~00000000~~”表示其后紧跟密文。除此以外,若无法从属性加密服务器上检索到索引对应的密文,或者无法解密密文则该索引当作明文看待。

2.4 属性加密客户端

属性加密客户端由一组API接口组成,是ABES与应用实例的连接纽带。主体型客户端的主要功能是解密,非主体型客户端的主要功能是加密。其中加密策略和加密方式都是由上层应用实例决定,如果不在本地加密,属性加密客户端只需要将这些参数通过网络接口协议转发给属性加密服务器,并获取加密结果即可;如果需要调用本地的密码模块加密数据,则将数据置为空,属性加密服务器返回用于加密数据的密钥DK,利用DK可以在本地的密码模块中加密数据;如果是索引加密,则还需要将本地加密的密文及其对应的索引更新到属性加密服务器上,以便以后查找。

主体型客户端实施解密流程如下:

①主体型客户端首先与属性加密服务器建立会话,在建立会话过程中,从属性加密服务器上获取该主体所能解密的所有二级密钥,并缓存在本地。

②应用实例提供索引,以解密获得明文。如果索引是特殊索引“~~00000000~~”,则应用实例应将密文数据直接连接在该特殊索引之后,否则,表示该索引对应的密文在属性加密服务器上,须要调用属性加密服务器提供的索引服务功能进行查询。

③密文的组成结构为 ESK(DK)EDK(x),可以依次用私钥解密SK,用SK解密DK,最后用DK解密x,得到明文。

3 验证实例

从用户层、协议层和服务层构建验证实例,验证实例通过解析该应用中的数据对象,调用ABPKI的加密接口对数据进行加密保护,根据数据对象的安全标记在需要且能够解密的位置还原成明文。

3.1 用户层验证实例

以用户层应用建立验证实例,作为ABES为基础的具体应用,验证实例通过解析该应用中的数据对象,调用ABES的加密接口对数据进行加密保护,根据数据对象的安全标记在需要且能够解密的位置还原成明文。由数据的提供者在数据提交前调用ABES,自主地实现数据的加密与授权,一般在客户端的应用程序中实现,适合于客户端应用程序可二次开发的情况。以FTP文件服务器为例,用户层应用实例的工作原理如图4所示。

首先,假定FTP客户端是可二次开发的应用程序,基于ABES的FTP在FTP客户端中调用ABES的客户端API进行加密,通过客户端解密代理对数据进行自动解密。

(1)确定上传文件的加密策略,即确定文件的访问控制策略。加密策略可以由用户在提交时指定,例如若自主授权给某人可以用“ID=uname”,如果不指定则使用管理员定义的默认策略,默认策略保存在属性加密服务器中,在安全属性管理时制定。

(2)调用ABES的客户端API对文件进行加密,FTP服务器中存储的是文件,因此对数据大小和类型均不敏感,可以采用非索引加密方式,即由特殊索引“~~00000000~~”+密文组成。FTP服务器中存储的是文件的加密形式。

(3)用户在访问文件时,客户端首先在数据报文中搜索加密索引,如果找到加密索引,则调用ABES的客户端API对索引进行解密,本例中,由于使用特殊索引,因此直接在“~~00000000~~”后找到密文进行解密即可。

在客户端的数据报文中搜索加密索引,然后调用ABES的API进行解密的过程是与具体的应用实例无关的,因此可以将其做成一个专门的插件,并命名为客户端解密代理,它将自动完成数据的解密工作。

图4 基于ABES的FTP服务工作原理

3.2 协议层验证实例

协议层应用实例是指通过对网络访问协议的分析,提取数据对象,自动地对待存储的数据实施加密与授权,一般通过拦截网络通信实现,适合于客户端和服务器端程序均不能更改的情况。以Oracle数据库的访问控制为例,阐述协议层应用实例的工作原理,如图5所示。

图5 基于ABPKI的Oracle服务工作原理

通过在Oracle服务器前拦截网络通信,截获Oracle的数据通道,数据存储时,通过对Oracle的透明网络底层协议(Transparent Network Substrate,TNS)进行解析,加密其中包含的数据。在客户端或者应用服务器等需要解密的主机上,通过客户端解密代理对数据进行自动解密。

(1)截获Oracle的TNS协议,解析TNS协议获取数据对象;

(2)调用ABPKI,利用事先定义的加密策略对数据对象进行加密;

(3)数据以密文或者索引的形式保存在数据库中。

数据到达客户端或者应用服务器时,利用客户端解密代理自动解密。

3.3 服务层验证实例

服务层应用实例是指在服务端数据存储时调用ABPKI,对待存储的数据实施加密与授权,主要针对数据存储服务可以定制开发的应用情况,以iSCSI网络存储为例,阐述服务层应用实例的工作原理,如图6所示。

图6 基于ABPKI的iSCSI服务工作原理

iSCSI服务中的访问控制一般是粗粒度的,可以定义到哪些用户可以访问某个存储设备,通过为存储设备对象定义加密策略,该设备上的数据只有指定的用户能够访问。

(1)为存储设备对象定义加密策略;

(2)获取存储设备的数据块,调用ABPKI进行加密;

(3)具有对应解密能力的客户端可以通过客户端解密代理解密数据。

4 结束语

构建了一种数据保护和访问控制模型,基于属性加密技术,将密文与访问结构树相关联,将用户密钥与系列属性相关联,当用户拥有的属性满足密文的访问控制结构时,即可得到明文,较好地解决了数据安全共享和细粒度访问控制的问题。以FTP文件服务器、数据库系统、网络存储系统为实例,描述了具体的应用流程。

[1]Shamir A. Identity based cryptosystems and signature schemes[C]- Advances in Cryptology (CRYPTO 1984). Lecture Notes in Computer Science(196), Berlin: Springer-Verlag, 1984.

[2]Sahai A, Waters B. Fuzzy identity based encryption[C]. Advances in Cryptology (EUROCRYPT 2005). Lecture Notes in Computer Science(3494), Berlin: Springer -Verlag, 2005.

[3]Goyal V, Pandey O, Sahai A, Waters B. Attribute-based encryption for fine grained access control of encrypted data[C]. Proceedings of the ACM Conference on Computer and Communications Security (CCS 2006). ACM Press, 2006.

[4]Bethencourt J, Sahai A, Waters B. Ciphertext-pol icy attribute-based encryption[C]. Proceedings of IEEE Symposium on Security and Privacy. 2007.

[5]Goyal V, Jain A, Pandey 0. Sahai A. Bounded ciphertext policy attribute based encryption[C]. Proceedings of International Colloquium on Automata, Languages and Programming(ICALP 2008). Lecture Notes in Computer Science(5125), Heidelberg.-Springer-Verlag, 2008.

[6]Waters B. Ciphertext-policy attribute-based encryption: An expressive, efficient, and provably secure realization[J/OL]. Cryptology ePrint archive.(2008, 06, 27) [2010-04-05]. http://eprint. iacr. org/2008/290.

[7]苏金树,曹丹,王小峰,孙一品,胡乔林.属性基加密机制[J]软件学报,2011.

[8]王鹏翩, 冯登国, 张立武.一种支持完全细粒度属性撤销的CP-ABE 方案[J].软件学报, 2012.

[9]洪澄,张敏,冯登国.面向云存储的高效动态密文访问控制方法[J].通信学报,2011.

[10]方忠进,夏志华,周舒.基于属性加密的气象云数据访问控制策略研究[J].计算机科学,2013.

[11]祁正华,杨庚,任勋益,王卉.基于ABE-IBS 的无线传感器网络签名加密一体化方法[J].通信学报,2010.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!