一种基于LDAP的属性加密模型

2023-06-15 09:27麻付强苏振宇亓开元
计算机技术与发展 2023年6期
关键词:访问控制密文解密

麻付强,徐 峥,苏振宇,亓开元

(1.浪潮(北京)电子信息产业有限公司,北京 100085;2.浪潮集团,山东 济南 250101)

0 引 言

随着互联网、5G和云计算技术的快速发展,越来越多的用户和企业将数据存储在云计算平台上,实现云存储或者云共享,以提高资源利用率,降低开发及运维成本[1-2]。通常情况下,用户数据在云计算平台中并不是以加密的形式进行存储,对数据的访问控制是由云计算完成的。如果云计算平台不可信或者遭受黑客入侵,用户数据将面临信息泄露的威胁,因此在共享之前对数据进行加密是必要的。

传统的加密机制无法实现复杂云计算环境下一对多的细粒度访问控制功能。因此,在不可信的云计算环境中实现信息安全,确保用户数据的合法授权访问成为了科学人员的研究热点。为了最大限度地保护数据的隐私安全,实现更细粒度的访问控制,研究人员提出了基于属性的加密机制。

基于属性加密(Attribute-Based Encryption,ABE)是从基于属性的访问控制发展来的[3]。Sahai[4]首次提出了基于属性的加密,并实现了数据隐私保护和细粒度访问控制功能。ABE利用授权属性集构造一个访问控制结构,实现对消息进行加密和解密。其特点是将属性作为公钥,来保证ABE的密文能够被多个不同用户的私钥解密。

ABE是一种一对多的加密模式,能够对加密后的信息进行细粒度的访问控制。ABE有两大基本类型,密钥策略ABE(KP-ABE)和密文策略ABE(CP-ABE)[5]。KP-ABE中,密文与属性集合关联,私钥与访问结构关联,用于审计日志,付费电视等。CP-ABE中,密文与访问结构关联,私钥与属性集合关联,当解密方拥有的属性匹配策略树成功时,才能获得解密密钥,获得对资源的访问权,用于云共享、安全邮件列表等。两种策略都是当且仅当属性集合满足访问结构时,才能正确解密。因此,基于属性的加密方案特别适用于在保证云平台用户隐私的前提下,对数据进行机密性保护。

杨腾飞[6]结合访问控制、基于属性加密、对象存储等技术,提出了一种层次化授权访问控制模型,提高了基于属性加密方案的访问控制策略的灵活性。郑芳[7]将基于属性加密应用到身份认证系统中,利用移动APP作为密钥生成中心,以指纹多个特征提取模板与其它特征作为属性,服务器端在不知道用户指纹信息的前提下,根据用户输入的特征解密,以此证明该账号和密码属于用户本人。吴光强[8]针对传统CP-ABE方案中存在的密钥泄露等问题,提出了一个多授权机构支持策略更新的CP-ABE方案,并将策略更新及密文更新过程交给服务器执行,有效地降低了本地的计算开销和数据传输开销。

上述大多数基于属性加密方案[9-11]均需要属性权威(Attribute Authority,AA)。不同于云服务器,属性权威是基于属性加密系统中唯一可信的第三方。授权中心负责生成系统的公共参数,并生成系统公钥和主密钥。授权中心根据用户具有的属性信息将对应私钥集合发送给用户。系统所有密钥均有属性权威产生并保存,用户没有控制权限。属性权威被恶意攻击时,可利用用户的密钥进行解密,使得用户数据的机密性受到威胁[12]。

针对此问题,Chase[13]提出一个分布式 KP-ABE方案,利用多个属性权威解决了密钥托管问题,降低了密钥泄露的风险。张星[14]利用密钥生成中心和属性权威协同生成用户密钥,属性权威只有部分用户密钥,使得密钥降低了对属性权威安全性的依赖。Lin[15]采用密钥分发和联合的零秘密共享技术提出了一种无认证中心的多授权机构的ABE方案,但是数据拥有者无法指定访问控制策略,无法有效地应用到数据共享系统中。Chen[16]提出了一种多属性权威的ABE方案,每个属性权威之间不需要交换信息来产生公共参数,且能够保证常数级密文长度。王于丁[17]提出了一种包含访问权限的ABE模型,通过设置权限控制密钥加密云中数据。

因此,云计算系统中可信的权威机构增加了云计算系统的复杂度。其次,随着属性集合的增加,用户解密的计算量会线性增长。为了解决上述问题,该文提出了一种基于LDAP的属性加密模型。LDAP是轻量级目录访问协议(Light Directory Access Protocol)[18],目录是一个以一定规则排列的对象的属性集合,是一个存储着关于对象各种属性的特殊数据库,可以用于实现账号管理、安全策略管理等。因此,利用LDAP和密钥管理模块代替传统属性加密中的授权机构方案,利用组织内部的LDAP系统实现用户身份的安全认证和属性管理。

同时,用户将属性解密操作安全的外包给密钥管理模块,且在密钥管理模块的可信执行环境中进行加解密操作[19-21],保证密钥始终处于密钥管理模块的根密钥保护下。Intel SGX(Software Guard Extensions)是一种通用的可信执行环境,在应用程序的地址空间中划分出一块被保护的区域,为容器内的代码和数据提供机密性和完整性的保护,免受拥有特殊权限的恶意软件的破坏。Intel SGX具有较小的可信计算基础并能实现物理隔离。通过将密钥使用和基于属性加密的关键代码运行在Intel SGX提供的安全加密内存中,保证程序运行过程中,攻击者无法窥探内存。有效地降低了用户计算负载,并提高了系统的安全性。

1 理论基础

设q是一个大素数,G和GT均是阶为q的循环群。g∈G是G的生成元,则双线性映射e:G×G→GT为一个双线性对。对于∀g∈G,任意a,b∈Zp(Zp为素数C1阶循环群)满足以下特征:

双线性:有e(ga,gb)=e(g,g)ab;

非退化性:满足e(g,g)≠1;

可计算性:对于任意的g∈G,存在一个给定安全常数相关的多项式时间算法,可以高效地计算e(g,h)。

2 一种基于LDAP的属性基加密模型

该文采用LDAP与密钥管理模块代替属性权威,同时属性解密操作由密钥管理中的SGX模块[19]执行,降低了用户计算负载,并提高了系统的安全性。

2.1 方案模型

一种基于LDAP的属性加密模型包括:多个组织和一个云计算平台,实现每个组织内部的云存储以及云共享。其中每个组织包含多个数据使用者、多个数据拥有者、一个LDAP身份提供模块;云计算平台包含统一的云存储模块、多个密钥管理模块。其中每个密钥管理模块对应一个组织,实现组织的安全密钥管理。云存储模块由存储中心和访问决策点组成;密钥管理模块由密钥存储模块和属性判别点组成。在每个组织内部,用户通过安全通道与云计算平台通信,模型如图1所示。

图1 基于属性加密的系统模型

2.1.1 数据拥有者功能

向LDAP身份提供模块进行注册,成为合法用户,并获得对应的属性集合;制定共享数据的授权属性集合,建立相应的访问控制策略,形成基于属性的访问控制矩阵;请求密钥管理模块生成授权属性集合对应的密钥;将数据根据访问控制矩阵进行加密;将基于属性加密的密文上传到云存储模块;根据基于属性加密的对称密钥解密加密数据获得明文数据。

2.1.2 数据使用者功能

向LDAP身份提供模块进行注册,成为合法用户,并获得对应的属性集合;根据基于属性加密的对称密钥解密加密数据获得明文数据。

2.1.3 LDAP身份提供模块功能

为用户提供身份注册功能;验证用户的属性合法性;验证用户登录系统的合法性。

2.1.4 云储存模块功能

为基于属性加密的密文提供存储;访问决策点根据访问控制矩阵验证用户属性集合的合法性。

2.1.5 密钥管理模块功能

为数据拥有者生成基于属性加密的系统公共参数,为组织内所有用户提供公共参数;根据文件标识、属性生成非对称密钥,非对称密钥包括对应的公钥和私钥;在可信执行环境中为数据文件生成对称加密密钥,并通过数据拥有者的公钥加密并发送给数据拥有者;属性判别点从LDAP获得用户的属性集合,并验证属性对应的密钥访问权限;在可信执行环境中实现对基于属性加密的对称密钥进行解密,并将解密后的对称密钥通过数据使用者的公钥加密并发送给数据使用者。所有加解密操作均在intel的SGX中操作,加密安全存储相应的非对称密钥和对称密钥,保证系统安全。

2.2 方案实施

基于LDAP的属性加密模型共5个阶段:用户注册阶段、系统参数设置、密钥生成、加密阶段、解密阶段。

2.2.1 用户注册阶段

如图2所示,用户(数据拥有者、数据使用者)经过身份认证模块向LDAP身份提供模块进行身份注册,包括用户名和密码,同时注册相应的属性集合。LDAP身份提供模块负责验证用户属性的合法性。用户登录系统时,由LDAP身份提供模块验证用户身份的合法性,并返回用户的属性集合。用户根据用户id,向密钥管理模块注册一对非对称密钥pku、sku,并通过安全通道发送给用户。非对称密钥由项目密钥加密,项目密钥由密钥管理模块的根密钥加密,根密钥安全存储在硬件安全模块(HSM)[22]中。

图2 基于LDAP的属性加密示意图

2.2.2 系统参数及密钥生成

数据拥有者请求密钥管理模块生成系统参数。密钥管理模块根据输入的安全参数λ,生成全局参数GP。

密钥管理模块在可信执行环境中生成一个对称密钥sk。如表1所示,在可信执行环境中,根据文件标识IDf、共享数据的授权属性集合S和全局参数GP,生成基于属性加密的公钥集合PK和私钥集合SK,并将公私钥加密存储在密钥管理模块。采用数据拥有者的公钥pku将对称密钥sk和公钥集合PK加密发送给数据拥有者。

表1 密钥管理模块的密钥存储结构

2.2.3 加密阶段

数据拥有者根据共享数据的授权属性集合制定相应的访问控制策略,建立基于属性的访问控制矩阵A。采用私钥sku解密得到对称密钥sk和公钥集合PK。利用对称密钥sk加密共享文件M,形成文件密文C1。利用公钥集合PK和访问控制矩阵A加密对称密钥sk,形成属性密文CT={C2,C3,C4,C5}。因此,最终基于属性加密的密文为C={IDf,(A,ρ),C1,CT,sign},其中sign表示数字签名。将基于属性加密的密文C上传到云存储模块。

2.2.4 密钥生成阶段

密钥管理模块根据数据使用者的属性集合、全局参数GP、私钥集合SK生成相应的私钥集合Kid。

2.2.5 解密阶段

数据使用者从云存储模块请求基于属性加密的密文C。云存储模块中的访问决策点基于数据使用者id从LDAP系统中获得数据使用者对应的属性集合。根据基于属性加密的密文C中的访问控制矩阵A判定数据使用者对应的属性集合的访问合法性。如果数据使用者具有访问权限,将基于属性加密的密文C返还给数据使用者。数据使用者利用属性密文CT访问密钥管理模块。密钥管理模块中的属性判别点基于数据使用者id从LDAP系统中获得数据使用者对应的属性集合。根据数据使用者对应的属性集合和文件标识IDf确定属性集合对应的私钥集合。将私钥集合、属性密文CT、用户公钥pku发送到密钥管理模块中的可信执行环境中。由可信执行环境对对称密钥sk进行解密,并用数据使用者pku加密发送给数据使用者。数据使用者采用私钥sku解密得到对称密钥sk,并用对称密钥sk解密文件密文C1,获得共享文件M。

3 算法设计

在基于LDAP的属性加密模型中,访问控制矩阵被嵌入到密文中,而密钥被绑定到一组属性中。

3.1 系统参数及密钥生成

首先,密钥管理模块根据数据拥有者的请求进行全局参数设置,函数为:Global Setup(λ)→GP。

一个双线性群G的阶为q,g1∈G。一个Hash函数具有映射功能H:{0,1}*→G。全局参数为:GP={g1,G,GT,Zp,q,p,H}。

根据文件标识IDf、共享数据的授权属性集合S、全局参数GP、数据拥有者的公钥pku向密钥管理模块请求生成一个对称密钥和共享数据的授权属性集合对应的非对称密钥。函数为:GKeyGen(IDf,S,GP,pku)→PK,SK,sk。

选择两个随机数αi,yi∈Zp,其中i是访问控制矩阵中的第i属性,共有K个属性。对应的公钥为PK={e(g1,g1)αi,g1yi},其私钥为SK={αi,yi},i∈{1,2,…,K}。

3.2 加密阶段

数据拥有者对文件进行基于属性加密,函数为:Encrypt(M,(A,ρ),GP,{PK},sk)→C。

数据拥有者利用对称密钥sk加密文件,形成文件密文C1。

C1=Encsk(M)

(1)

数据拥有者根据访问控制结构和公钥集合对对称密钥sk进行基于属性加密,将这些访问控制矩阵封装到密文中,形成属性密文CT={C2,C3,C4,C5}。因此,基于属性加密的密文为C={IDf,(A,ρ),C1,CT,sign},其中sign表示数字签名。

C2=sk·e(g1,g1)s

(2)

C3,i=e(g1,g1)λie(g1,g1)αρ(i)ri

(3)

C4,i=g1ri

(4)

C5,i=g1yρ(i)ri

(5)

基于属性加密的密文C={IDf,(A,ρ),C1,CT,sign}上传到云存储模块。

3.3 密钥生成阶段

密钥管理模块根据数据使用者的属性集合、全局参数GP、私钥集合SK生成相应的私钥集合Kid,函数为KeyGen(id,x,S,GP,SK)→Kx,id。

(6)

x∈{1,2,…,K'}为第x个属性,数据使用者的属性集合为共享数据的授权属性集合S的子集。

3.4 解密阶段

解密的时候,用户只有自身属性集合对应的私钥集合,只要符合访问控制矩阵的都可以解密。解密函数为:Decrypt(C,Kid,GP)→sk,Decsk(C1)→M。

根据用户拥有的属性集合,从C3,ρ(x),C4,ρ(x),C5,ρ(x)中获取对应的数据。其中,ρ(x)将数据使用者的属性x映射到基于属性的访问控制矩阵A的第ρ(x)行。

C3,ρ(x)e(H(id),C5,ρ(x))/e(Kx,id,C4,ρ(x))=

e(g1,g1)λρ(x)

(7)

计算常量cx∈N,使得计算e(g1,g1)s,其中λρ(x)=Aρ(x)v,v·(1,0,…,0)=s。

(8)

对对称密钥进行解密,获得对称密钥sk:

sk=C2/e(g1,g1)s

(9)

利用对称密钥sk解密文件密文C1,获得明文数据。

M=Decsk(C1)

(10)

4 安全性分析

4.1 机密性

数据机密性既保证数据为授权者所有而不会泄露给未经授权者。在ABE-LDAP中,仅当用户属性集合满足基于属性的访问控制矩阵,才能从云存储模块获取加密数据,未经授权的用户因无法满足系统的访问控制结构,所以保证了数据的机密性。

基于属性加密的密钥始终存在密钥管理模块中,未授权用户不能获取属性集合对应的密钥,保证了密钥的机密性。

仅当用户属性集合满足基于属性的访问控制矩阵,密钥管理模块才执行对称密钥的解密过程,未授权用户无法获得加密数据的对称密钥,保证了数据的机密性。

同时密钥管理模块所有加解密操作均在可信执行环境中执行,保证了密钥的安全性。

4.2 抗合谋攻击

抗合谋是ABE系统要求的重要安全特性之一。合谋攻击是指即使每个用户不能单独解密密文,他们可以通过组合他们的属性来解密密文。在ABE-LDAP中,由于用户的属性密钥与用户身份标识结合,因而阻止了多个用户之间的合谋攻击。

5 性能分析

该文使用了CPU型号为Intel(R) Xeon(R) Gold 6326 CPU@2.90 GHz,内存为256 G,操作系统为Ubuntu20.04的支持SGX平台,部署安装了基于LDAP的属性加密模型。本节从ABE-LDAP复杂度、SGX的机密性及ABE-LDAP的加解密时间进行性能分析。

5.1 ABE-LDAP算法复杂度

下面将文中模型与Chen方案[16]、DACPCC方案[17]进行对比分析,如表2所示。设|s1|为群G的元素长度,|s2|为群GT的元素长度,|s3|为群Zp的元素长度 ,|M|是选取的数据明文的空间大小,na为考虑范围内的所有属性数量,nu为某个用户具有的属性数量,E为群G的幂运算复杂度,ET为群GT的幂运算复杂度,P为群G的双线性运算复杂度。

表2 ABE-LDAP性能分析

通过理论分析可知,文中方案在加密、解密开销上与Chen方案和DACPCC方案类似。但是文中方案的属性解密执行是在云端的密钥管理模块中,显著降低了用户的计算开销,提高了系统性能。在密文长度方面,文中方案采用层次加密方案,密文长度相对较大,但是安全性相对更高。

5.2 ABE-LDAP的机密性测试

分别在采用SGX和不采用SGX技术的情况下,验证密钥管理模块的机密性,以验证密钥信息和加解密过程是否存在泄露风险。在密钥管理模块中添加机密性测试字符串“0123456789abcdef0a1b2c3d4e 5f0123456789abcdef”,来验证字符串是否明文出现在内存中。利用RFSD、rfdk-gui、winhex等工具进行内存抓取。

如图3所示,密钥管理模块没有运行在SGX中,可以从内存中显示出测试字符串信息。如图4所示,密钥管理模块运行在SGX中,无法从内存中获取测试字符串信息。因为密钥管理模块属于SGX的保护范围,除了SGX的Enclave结构外,外界无法获取其中任何数据及代码信息。实现了密钥管理模块中密钥和加解密运算过程的机密性。

图3 未采用SGX的密钥管理模块机密性

图4 采用SGX的密钥管理模块机密性

5.3 ABE-LDAP的加解密测试

本节对ABE-LDAP的加解密性能分别进行了测试。所有属性数量na设置为6,某个用户具有的属性数量nu设置为4。密钥管理模块分别采用SGX技术和不采用SGX技术。对基于属性加解密过程进行了5次实验。通过图5和表3可以得出,采用SGX保护密钥管理模块会降低整个系统的性能,但是性能开销相对较小,在系统可以接受的范围内。同时,密钥管理模块可以安全的部署在云平台上,实现密钥和解密运算的机密性。

表3 ABE-LDAP的平均加解密时间

图5 ABE-LDAP的加解密性能

6 结束语

该文利用LDAP和密钥管理模块代替传统属性加密中的授权机构,利用组织内部的LDAP系统实现用户身份的安全认证和属性管理,利用密钥管理模块实现属性密钥的生成与存储。同时,用户将属性解密操作安全的外包给密钥管理模块,且在密钥管理模块的可信执行环境中进行加解密操作。安全性分析表明,该方案能够有效保障数据机密性,实现安全高效和细粒度数据访问控制,并有效降低了用户的计算量,实现了密钥的安全存储。

猜你喜欢
访问控制密文解密
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
炫词解密
解密“一包三改”
炫词解密
ONVIF的全新主张:一致性及最访问控制的Profile A
一种基于密文分析的密码识别技术*
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现