APP下载

密文去重系统中的数据访问控制策略

2020-06-06贾春福哈冠雄李瑞琪

通信学报 2020年5期
关键词:密文攻击者密钥

贾春福,哈冠雄,李瑞琪

(1.南开大学网络空间安全学院,天津 300350;2.天津市网络与数据安全技术重点实验室,天津 300350)

1 引言

如今,全球每天都会产生大量数据。互联网数据中心(IDC,Internet Data Center)预计2020 年的全球数据总量可能会达到40 ZB。随着云计算的迅猛发展,大量的个人和企业都选择将数据外包给云服务提供商。有的云服务商为节省存储空间开始采用数据去重技术,即多个用户上传相同数据时服务器只存储一份。

近年来,云数据安全问题频出,用户为保证数据隐私,需要将数据先加密再上传至云存储服务器[1]。然而,传统密码学安全的加密算法与数据去重技术难以结合,数据加密后云存储服务器无法对用户上传的密文进行重复检测。文献[2]提出了收敛加密(CE,convergent encryption),CE 使用基于文件内容生成的哈希值作为对称加密的密钥加密文件,相同明文加密后将得到相同密文,因此,云存储服务器能够对密文进行重复检测。但CE 无法保证可预测(即明文空间{Mi}有限,Mi表示文件)文件的安全性,攻击者可以通过猜测有限明文空间中的Mi,依次加密{Mi}中的明文并与截获的密文对比,通过字典攻击破解出密文对应的明文。DupLESS[3]中使用专门的密钥服务器生成密钥,通过在密钥服务器端进行速率限制抵抗攻击者的字典攻击。但CE 和DupLESS 都属于消息锁定加密(MLE,message locked encryption)[4]的范畴。MLE 中相同明文被加密成相同密文,这严重泄露了数据频率信息,Li 等[5]提出了基于数据块局部性的频率分析攻击,攻击者可通过统计明文块和密文块的频率信息有效推测出大量密文数据块所对应的明文信息。此外,现有的客户端去重系统容易受到攻击者的侧信道攻击[6]和所有权欺骗攻击[7]。在侧信道攻击中,攻击者可以通过观察客户端上传文件哈希值后服务器端是否去重来判断该文件的存储情况,威胁其他用户的数据隐私;所有权欺骗攻击是指攻击者在没有完整文件的情况下,通过文件的部分信息(如文件哈希值)从服务器端获取整个文件的访问权限。Li 等[8]和Shin 等[9]分别提出使用收敛扩散和差分隐私抵抗侧信道攻击。Halevi 等[7]提出了所有权证明(PoW,proof of ownership)方案,抵抗恶意攻击者的所有权欺骗攻击。在PoW[7,10]方案中,文件所有者能够高效安全地向云存储服务器证明其拥有完整文件内容。文献[11]提出了差异化去重的思想,设计了基于混合云模型的授权去重概念,授权去重中每个用户被赋予一系列权限。云存储服务器中的文件都对应一组访问权限,满足访问权限的用户才能够进行去重检测。客户端提交去重检测前,用户需要输入文件及自己的属性,当属性满足权限要求时用户才能够检测到文件去重。文献[12]通过结合MLE 和CAONT(convergent all-or-nothing transform)实现了密文去重中的密钥更新,对数据进行加密后得到存根信息(st1,st2,...,stn)和TP 分组信息(TP1,TP2,...,TPn),通过重新加密体量较小的存根信息实现外包数据的密钥更新。但文献[11-12]都是基于MLE 的确定性加密,会泄露用户数据的频率信息,并且单纯利用密码学技术实现去重数据的机密性,缺乏对数据的分布式管理,无法确保用户访问策略的有效执行。

密文去重系统属于云存储系统,而云存储系统中的虚拟化和多租户特征导致了用户数据的所有权与管理权分离,用户不知道与其共享资源的实体身份,这一特性给用户数据带来了巨大威胁。因此,在云数据管理中,身份认证和访问控制是保护用户数据隐私性和机密性的重要防线。Squicciarini 等[13]提出了自我控制对象(SCO,self-controlling object)的概念,通过面向对象编程封装用户的敏感数据和访问策略,确保用户为数据设置的访问策略能够有效地被执行。文献[14]提出了基于SCO 技术设计的敏感数据保护方案,防止用户数据被其他用户发布,确保用户对外包数据的访问控制。Zafar 等[15]提出SCO 技术可以拓展到数据可信删除和数据去重领域。

本文关注去重数据访问控制中的身份认证、授权去重与权限更新问题,这些问题在很多实际场景中都具有很大的实用价值。例如,公司选择外包数据至云存储服务器端,而公司内的部分数据可能仅允许具有某些权限的用户进行去重检测,或者某些数据仅在部门内去重,其他部门的用户不应得到该数据的任何信息,上述情况均需要应用授权去重。例如公司的某个项目由A、B 这2 个团队共同开发,但项目进行到中期时公司决定由团队C 代替团队B,项目数据的访问权限应从A、B 属性修改为A、C 属性,此时便需要更新应用数据的访问权限。

2 本文工作

引言中的实际场景充分体现了外包数据访问控制的应用需求,而目前的密文去重系统大多基于MLE,难以提供外包数据的高效访问控制。密文去重中的侧信道攻击和所有权欺骗攻击等安全威胁均是基于去重系统中多个用户共享同一密文这一特点。如果系统中不能提供外包数据的高效安全的访问控制,用户将无法控制与其共享同一数据的实体身份,这将造成严重的数据安全问题。现有密文去重系统中的访问控制[11-12]主要基于确定性加密方案,并且在权限更新时需要下载并重新加密数据后上传。这种方式具有以下缺点:首先,确定性加密容易使数据受到字典攻击并且泄露数据的频率信息;其次,频繁的数据传输与加解密大大增加了客户端的计算开销和系统的带宽开销。此外,现有方案一般仅使用密码学方法提供数据的访问控制,缺乏数据的分布式管理,难以保证当数据位于云存储服务器或其他用户的客户端时访问策略仍能有效地被执行。因此,实际场景中的应用需求和密文去重系统在访问控制方面的功能限制是本文工作要解决的主要问题。

针对上述问题,结合SCO 技术、多种密码算法与密码协议,本文设计并实现了一种支持身份认证、授权去重和访问权限更新的客户端密文去重系统。该系统中,用户可为外包数据设定访问控制策略,确定数据与哪些属性的用户去重,并能够高效地更新数据的访问权限。

本文系统在去重标签中嵌入了属性密钥,基于消息认证码的安全性,实现了安全的授权去重,未授权用户无法进行侧信道攻击,数据对于未授权用户而言是语义安全的。客户端使用SCO 技术封装用户数据和访问策略,提供了对数据访问者的身份认证并实现了用户数据的分布式管理,确保数据的访问策略无论在云存储服务器还是其他客户端中均能有效执行。本文系统利用密文策略属性基加密(CP-ABE,ciphertext-policy attribute-based encryption)[16]和ElGamal 加密算法等密码学技术实现了高效的数据访问权限更新,更新过程中仅需重新拆分ElGamal 私钥,不需要用户数据文件的任何传输或加解密,系统的带宽开销和客户端的计算开销均可以忽略。使用随机密钥加密取代确定性加密,混淆了数据的频率信息,通过在满足访问权限的用户间共享密钥来实现密文去重,同时有效抵制了攻击者的字典攻击和频率分析攻击。最后,安全性分析和仿真实验证明本文系统在有效实现去重数据访问控制的同时仍具有较高的执行效率。

3 相关知识和技术概述

3.1 SCO 技术

SCO 是一种策略执行技术,将用户数据和访问策略封装在可执行JAR(Java archive)包当中,通过适应性的安全策略保证数据安全。SCO 可能会被分布式地存储在多个服务器中,数据接收者可随时下载SCO,其工作流程如图1 所示[13]。

当接收者试图访问SCO 中的数据内容时,其内部封装的程序将验证用户输入的身份证书是否满足访问策略,若该证书满足访问策略,SCO 的应用程序部件可为用户解密其中封装的密文。基于SCO 的数据共享方案不需要可信第三方完成身份认证和访问控制,所有核心的安全部件均封装在SCO 中。

图1 SCO 工作流程

客户端可使用SCO 封装数据和安全策略,其中安全策略包括访问控制、认证、用法控制等。客户端将封装完成的SCO 发送至云存储服务器,数据接收者访问SCO 时通过输入身份证书进行认证。

SCO 的内部架构[13]如图2 所示,其中包括数据内容和应用程序两部分。

图2 SCO 内部架构

数据内容部分存储用户封装的文件内容和策略文件;应用程序部分是一组软件部件,负责验证用户身份证书及访问SCO 内的数据内容。应用程序部分包括行为控制部件、访问控制部件和内容保护部件。行为控制部件使用Java 中的JAAS(Java authentication and authorization service)实现,验证用户输入的X.509 证书;访问控制部件根据身份验证和授权的结果访问数据内容;内容保护部件管理数据内容部分,处理数据内容的更新。

3.2 密文策略属性基加密

CP-ABE 是一种公钥加密算法。加密方可以在密文中嵌入所需的访问控制策略,只有当解密方的属性满足密文中的访问策略时才能够解密数据。CP-ABE 加密包括以下4 个算法。

Setup。输入安全参数L,输出公钥PK 和主密钥MK。PK 用来加密数据,MK 用来生成用户的属性私钥UK。

KeyGen。输入用户的属性集合UA 和主密钥MK,输出属性私钥UK。

Encryption。输入明文M、访问控制策略ACP和公共参数PK,输出密文C。

Decryption。输入密文C和用户属性私钥UK,如果用户属性UA 满足密文C中的访问策略,输出明文M;否则输出⊥。

3.3 ElGamal 加密

ElGamal 加密[17]是一种基于离散对数的公钥加密算法,其安全性基于判定性Diffie-Hellman 问题的困难性。ElGamal 加密算法由以下步骤组成。

1) Initialization。选择素数p,计算p的原根c,计算b=cxmodp,其中,x是随机选择的私钥,公钥为{p,b,c}。

2) Encryption。生成随机值r,计算消息m的密文E(m)=mbrmodp=mcrxmodp,计算g=crmodp。

3) Decryption。解密时使用私钥x解密数据D x(E(m))=g−xE(m)modp=(cr)−xmcrxm odp=mmodp。

3.4 所有权证明

所有权证明协议使客户端能够向云存储服务器证明其确实具有完整文件。假设云存储服务器拥有完整数据M,并根据数据内容计算认证信息w=f(M)。客户端为证明其具有完整文件,需要发送所计算的认证信息v给云存储服务器,云存储服务器检查v是否与w相等,判断客户端是否具有完整文件,具体过程如图3 所示。

图3 所有权证明过程

4 系统模型

4.1 系统架构

本文方案中设计的密文去重系统架构如图4 所示,由客户端、云存储服务器和分布式密钥服务器组成,每个用户都拥有自己的属性及与该属性对应的权限私钥和属性密钥。权限私钥安全地存储在客户端,用来解密CP-ABE 密文,当用户的权限私钥满足密文的访问结构时可解密出明文;属性密钥存储在分布式密钥服务器,帮助客户端生成有效的去重标签。

图4 密文去重系统架构

1) 云存储服务器。为个人或企业提供云存储服务,用户可将需要外包的数据及其相关信息上传至云存储服务器,并能够随时访问和下载这些数据。为提高存储效率和降低通信开销,云存储服务器将根据用户的去重标签等信息对数据进行去重。

2) 分布式密钥服务器。存储系统中使用ElGamal 私钥x和CP-ABE 主密钥MK,帮助用户生成去重标签,并且可通过动态拆分x和CP-ABE加密为用户更新数据的访问策略。

3) 客户端。帮助用户外包数据至云存储服务器,节省用户的本地数据存储和管理开销。系统中的每个数据都对应一个数据所有者,其可通过客户端对外包数据设定访问策略,仅当其他用户的属性满足数据访问策略时才可与此数据进行去重检测并下载解密数据。当需要修改数据访问策略时,数据所有者可通过与云存储服务器和分布式密钥服务器的交互来更新数据的访问策略。

4.2 安全模型

为规范本文系统的安全性分析,本文提出以下安全性假设。

1) 云存储服务器是诚实但好奇的,会按照既定协议存储用户外包的数据,但会尝试获取用户的数据信息。

2) 分布式密钥服务器是诚实但好奇的,会按照既定协议完成生成去重标签、拆分密钥成分、权限更新等操作,但会试图获取用户的数据信息。

3) 系统中存在不可信的恶意攻击者,他们会通过截获客户端与云存储服务器及分布式密钥服务器之间的通信数据或攻击云存储服务器中的数据内容,尝试获取合法用户的数据信息。

4) 部分合法用户可能会与攻击者发起联合攻击,通过伪造去重标签或身份证书等方式获取自身权限外的数据信息。

4.3 设计目标

本文关注去重数据的访问控制问题,提出了一种新的云数据密文去重系统,支持以下功能。

1) 身份认证。当实体试图访问SCO 内封装的数据时,SCO 将基于实体输入的身份证书和SCO内部的访问控制策略决定该实体是否有权限访问数据内容。身份证书无效或不符合访问控制策略的实体将无法获取到任何数据信息。

2) 授权去重。系统中的不同用户拥有不同的权限,每个用户能够基于自己的权限执行去重检查。用户外包数据至云存储服务器时可选择该数据与哪些属性的用户去重,未授权用户无法进行去重检测。

3) 权限更新。数据所有者可更新云存储服务器端的数据访问权限、撤销或添加访问策略中的属性。权限更新后,被撤销访问权限的用户将不能与该数据进行去重检测,且不能下载解密数据;只有被授予访问权限的用户才可以检测到数据在服务器端的存储情况。

本文系统的设计目标包括性能目标和安全目标。性能目标包括以下几点。

1) 较高的加密/解密效率。系统中客户端对数据使用高效的对称加密算法,而公钥加密算法仅用于加密密钥和策略文件。

2) 较高的权限更新效率。系统中的权限更新仅需重新拆分ElGamal 密钥及执行CP-ABE 加密算法,不需要重新下载与解密文件,具有较高的执行效率。

安全目标包括以下几点。

1) 授权去重安全性。未授权用户无法与其权限外的数据进行去重检测,这需要去重标签的不可伪造性和不可区分性。不可伪造性表示任何用户不能伪造其权限外的任何有效去重标签;不可区分性表示用户不能够通过去重标签得到任何额外信息,例如该标签代表哪些属性或文件。

2) 数据机密性。恶意攻击者无法通过截获客户端发送的SCO 或攻击服务器端存储的SCO 获取到用户数据的任何信息。即使攻击者与内部用户进行联合攻击,也无法通过伪造去重标签和身份证书等方式获取到自己权限外的数据信息。

3) 权限更新安全性。数据所有者更新数据权限后,被撤销权限的用户不能与服务器进行去重检测或下载解密数据;被授予访问权限的用户可针对该数据进行去重检测,通过所有权证明即可下载解密数据。

5 方案设计

5.1 方案设计思想

本文设计了一种支持身份认证、授权去重和权限更新的密文去重系统。基本思想是,客户端首先通过与分布式密钥服务器(DKS,distributed key server)的认证和交互得到去重标签d_token。去重标签中不仅包含数据信息,还包含表示用户属性的属性密钥。客户端将d_token 发送至云服务提供商(CSP,cloud server provider)进行去重检测,若云存储服务器检测到数据已存储,则与客户端进行所有权证明。所有权证明通过后,该客户端具有下载文件的权限,不需要上传完整文件;若检测数据尚未存储,则要求客户端上传完整文件。客户端将加密后的密文数据和访问策略封装在SCO 中上传至云存储服务器。后续用户上传数据时,由于去重标签中带有用户属性,云存储服务器可根据去重标签检测该用户是否具有数据去重的权限,实现授权去重。未授权用户将无法进行去重检测,数据对于他们而言是语义安全的。

当用户需要更新数据的访问权限时,客户端与云存储服务器和分布式密钥服务器交互,通过动态拆分ElGamal 私钥和CP-ABE 加密实现数据访问策略的更新。

5.2 方案详细设计

系统可分为加密数据上传、密文授权去重、数据下载解密和访问权限更新4 个模块。

5.2.1 加密数据上传

假设A属性用户需要上传文件F至云存储服务器,客户端首先计算文件的哈希值H(F)作为文件标签,其中,H(.)为密码学安全的哈希函数。客户端与分布式密钥服务器进行身份认证,认证后客户端将文件标签H(F)发送至分布式密钥服务器。分布式密钥服务器验证用户信息后,找到A属性用户对应的属性密钥ka,计算文件去重标签d_token=H(H(F),ka)并将其返回给客户端,客户端将d_token 发送至云存储服务器进行去重检测,具体过程如图5 所示。

图5 获取去重标签

云存储服务器通过去重标签检测该数据是否已存储。若已存储,与客户端进行所有权证明协议,证明通过则允许客户端下载数据;若未存储,要求客户端上传完整文件。

若需要客户端上传完整文件,客户端可以先设置该数据的访问权限。假设客户端希望和B属性用户共享密文,即指定A(上传者的属性)、B属性用户可与数据进行去重检测,客户端将共享属性B发送至分布式密钥服务器。密钥服务器找到B属性对应的属性密钥kb,计算B属性用户的去重标签d_token=H(H(F),kb)。随后,密钥服务器将存储的ElGamal 私钥x随机拆分成n+1 份,分别为{x1,x2,...,xn}和x’。密钥服务器将{x1,x2,...,xn}分布式地存储在n个密钥服务器中,使用CP-ABE 加密x’得到Cx’,访问结构为A∪B,即A、B属性用户的权限私钥均可解密Cx’。密钥服务器将B属性的去重标签d_token 和CP-ABE 密文Cx’发送至云存储服务器。

客户端封装SCO 步骤如下。

1) 客户端选择随机密钥key,使用AES 加密算法加密文件F为密文C。

2) 用户构建访问策略文件policy,将访问结构{A,B}写入policy。数据解密中过程,仅当访问者提供的身份证书满足访问策略时,SCO 才执行解密程序。客户端使用ElGamal 公钥加密策略文件policy和AES 密钥key,得到密文Cpolicy和Ckey。

3) 客户端将C、Ckey和Cpolicy封装在SCO 的数据内容部分,本文方案的SCO 结构如图6 所示,包括身份认证、部分解密、密文更新和数据解密。其中,身份认证在实体访问SCO 时执行,部分解密和密文更新由云存储服务器端执行,数据解密在客户端解密数据时执行。SCO 根据身份认证的结果为不同实体执行不同操作。

4) 为了防止攻击者截获SCO 后分析其内部的程序部分,客户端生成SCO 后对其内部的程序部分进行代码混淆。

客户端生成SCO 后将其上传至云存储服务器,如图7 所示。云存储服务器调用SCO 中的密文更新程序,将分布式密钥服务器发送来的CP-ABE 密文Cx’封装进SCO 中。然后,云存储服务器将SCO数据的去重标签设定为 d_token={H(H(F),ka),H(H(F),kb)},后续用户上传的去重标签在此集合中才可进行去重检测。

图6 本文方案的SCO 结构

图7 数据加密上传

5.2.2 密文授权去重

假设B属性用户同样外包文件F至云存储服务器,此时系统将进行密文授权去重过程,如图8 所示。

图8 授权去重

B属性客户端从分布式密钥服务器得到自己的去重标签d_token=H(H(F),kb)并发送至云存储服务器,云存储服务器发现客户端发送的去重标签已在云端存储(本文所述场景中为A属性用户上传)。此时,云存储服务器将告知B属性用户文件已存储,需要进行所有权证明。证明通过后,B属性用户即可从服务器下载完整数据。

A、B属性外的用户无法检测到数据在服务器端的存储情况。如图9 所示,B′属性用户外包文件F,上传去重标签d_token=H(H(F),kb’)。云存储服务器并未存储过该去重标签,无法检测到数据重复。

图9 未授权无法去重

通过密文授权去重过程可以看出,数据所有者设定的数据访问策略为{A,B},只有A、B这2 个属性的用户能够识别数据重复。未授权用户即使上传相同文件,云存储服务器仍无法与该数据进行去重,数据对于未授权用户来说是语义安全的。

5.2.3 数据下载解密

客户端向云存储服务器提出下载请求,如图10所示,云存储服务器从n个密钥服务器中检索n个密钥成分{x1,x2,...,xn},并向SCO 申请部分解密。SCO通过身份认证程序验证云存储服务器提交的证书后,使用{x1,x2,...,xn}对SCO 内部的Cpolicy和Ckey调用部分解密程序。Cpolicy和Ckey是ElGamal 密文,密文形式为(cr,keycrxmodp)和(cr,policycrxmodp)。SCO 中的部分解密程序使用{x1,x2,...,xn}进行部分解密,得到更新的密文为和云存储服务器将部分解密后的SCO 发送至客户端。

客户端收到SCO 后,输入自己的X.509 证书和权限私钥sk。SCO 若验证证书有效,则使用sk 解密CP-ABE 密文Cx’,若权限私钥sk 满足密文的访问结构,则可解密出x’。SCO 使用x’解密云存储服务器部分解密后的policy 的密文,得到policy modp)=policy modp=policy。解密得到访问策略policy 后,SCO 验证用户的X.509 证书是否满足策略文件policy 中设定的访问权限。在上述例子中,SCO 的验证程序将判断用户证书是否来自A属性或B属性客户端。若用户证书满足访问权限,SCO使用x′解密Ckey,得到。得到AES 密钥key 后,SCO 使用key 解密密文C得到明文M。

在数据下载解密过程中,用户只有能提供有效且满足访问策略的证书并拥有满足密文访问结构的权限私钥sk 时,SCO 才能解密出明文。任何未经授权的用户均无法得到明文数据。

5.2.4 访问权限更新

数据所有者可能会更改数据的访问策略,例如授予新属性用户访问权限或撤销旧属性用户访问权限,这时就需要使用访问权限更新模块。访问权限更新时,某个数据所有者(代表全体的数据所有者)通过与云存储服务器和分布式密钥服务器的交互更新数据的访问权限。例如,数据所有者希望将文件F的访问权限{A,B}修改为{A,B′},客户端发送新设定的访问权限{A,B′}至分布式密钥服务器。分布式密钥服务器将此前存储的{A,B}的密钥成分{x1,x2,...,xn}删除,重新拆分ElGamal私钥x为和x”,分别把存储在n个密钥服务器中,使用新的访问结构A∪B′加密x″得到新的CP-ABE 密文Cx″。密钥服务器还需计算新的去重标签d_token=H(H(F),ka)和d_token=H(H(F),kc),并将新的去重标签同Cx″一起发送至云存储服务器。云存储服务器使用新去重标签取代旧标签,此前存储的旧去重标签将不能再进行去重检测,在本例中B属性用户的去重标签将失效,而B′属性用户的去重标签将生效。客户端生成新的访问策略文件policy′,进行ElGamal 加密后得到Cpolicy′并将其发送至云存储服务器。云存储服务器调用SCO 内部的密文更新程序,使用Cx″和Cpolicy′替换原有的Cx′和Cpolicy,完成数据的访问权限更新。

图10 数据下载解密

访问权限更新后云存储服务器存储的去重标签中已无B属性的去重标签,B属性用户将无法进行去重检测;并且由于SCO 中的Cpolicy和Cx′已替换,被撤销访问权限的B属性用户的身份证书将无法通过策略文件policy′的访问控制,也无法使用权限私钥sk 解密密文Cx″。而B′属性用户可以成功地与云存储服务器进行去重检测并下载解密SCO 中的明文。

上述的访问权限更新中不需要完整文件数据的网络传输和加解密,系统带宽开销较低,且客户端仅需加密体量很小的策略文件,客户端计算开销较低。

5.3 安全性分析

本文方案的安全性分析主要考虑系统中数据机密性、授权去重安全性和权限更新安全性三方面。假设方案中使用的密码原语均是安全的,包括消息认证码、CP-ABE、AES 和ElGamal 加密算法。假设方案中的安全参数为n,存在可忽略的函数negl1、negl2和negl3,使AES、CP-ABE 和ElGamal 加密算法被攻破的概率分别为negl1(n)、negl2(n)和negl3(n)。

图11 权限更新

5.3.1 授权去重安全性

定理1本文方案满足授权去重安全性,当且仅当方案中的去重标签满足不可伪造性和不可区分性。

标签的不可伪造性指的是恶意用户不能伪造出其自身属性外的去重标签。若A属性用户上传文件F,相应的文件去重标签应为d_token=H(H(F),kA)。不可伪造性要求A属性的攻击者不能伪造出A′属性的文件F的有效去重标签d_token=H(H(F),kA′)(A′≠A)。不可区分性表示假设用户具有属性A,他不能通过d_token=H(H(F),kA′)(A′≠A)区分标签中包含了哪个文件或哪个属性。

授权去重的关键在于去重标签的生成,若保证了去重标签的安全性,也就保证了授权去重的安全性。去重标签安全性可分为标签的不可伪造性和不可区分性。下面将证明本文方案中去重标签的不可伪造性和不可区分性,从而证明本文方案具有授权去重安全性。

引理1假设方案中使用的消息认证码是密码学安全的,其基于的哈希函数可抵抗碰撞攻击和原像攻击,则攻击者成功伪造出其权限外的去重标签的概率是可忽略的,攻击者成功区分去重标签中的属性信息的概率也是可忽略的。

证明使用2 个安全游戏来说明方案中去重标签的不可伪造性和不可区分性,安全游戏描述了系统中攻击者的攻击能力。下面证明攻击者在2 个给定安全游戏中获得成功的概率均为可忽略的。

1) 去重标签不可伪造性安全游戏

准备阶段假设游戏中存在挑战者和攻击者,攻击者向挑战者询问去重标签,并试图生成自身权限外的有效去重标签。挑战者可生成去重标签并可利用函数Verify(d_token)验证去重标签的有效性。攻击者具有文件集合{F1,...,Fs}和属性Ap,挑战者拥有文件集合{F1,...,Fs}和属性密钥集合{k1,...,km}。

询问阶段 攻击者可以从文件集合中选取任意文件Fi(i=1,2,…,s),然后计算文件标签H(Fi),并发送H(Fi)和属性Ap给挑战者。挑战者根据属性Ap找到其相应的属性密钥kp,并计算去重标签d_token=H(H(Fi),kp)发送给攻击者。

挑战阶段攻击者根据询问阶段得到的信息,计算一个新的去重标签d_token′=H(H(Fj),kq)并发送给挑战者。挑战者根据文件集合{F1,...,Fs}和属性?密钥集合{k1,...,km}检测d_token′是否为攻击者权限外的有效去重标签,即 d_token′=H(H(Fj),kq)(Fj∈{F1,…,Fs},kq∈{k1,…,km},q≠p)。若d_token′满足上述条件,则Verify(d_token′)=1,攻击者赢得游戏。否则,Verify(d_token′)=0,攻击者输掉游戏。

由于攻击者在询问阶段不能获知其他属性的密钥kq,因此攻击者若生成有效的 d_token=H(H(F),kq),则存在2 种情况,即攻击者未破解出kq或者破解出kq。当攻击者未破解出kq时,说明攻击者找到了kl,使H(H(F),kl)=H(H(F),kq)(l≠q)。但此时消息认证码中的哈希函数不满足抗碰撞特性,与假设中消息认证码是密码学安全的这一点相矛盾。若攻击者通过暴力破解获得了其他属性的密钥kq,由于属性密钥kq是从{0,1}n中随机选取,暴力猜测成功的概率为,而此概率是可忽略的。

证毕。

2) 去重标签不可区分性安全游戏

本节的去重标签不可区分性安全游戏是针对属性的不可区分性证明,针对文件的不可区分证明与之类似,这里不再赘述。

准备阶段假设游戏中存在挑战者和攻击者,攻击者具有2个属性A0和A1,请求挑战者为其生成去重标签。挑战者拥有属性密钥集合{k1,...,km},,可为攻击者生成去重标签。

询问阶段攻击者任意选择文件Fi,计算文件标签H(Fi),并将其与2 个属性A0和A1共同发送至挑战者。挑战者随机选择,计算去重标签d_token=H(H(Fi),kb),将去重标签发送给攻击者。

挑战阶段攻击者输出。若b′=b,则攻击者赢得游戏;否则攻击者失败。

由于攻击者在安全游戏的询问阶段不能获知属性密钥kb,而消息验证码中的哈希函数是抗碰撞的且哈希函数的输出结果是随机的,攻击者只能通过暴力破解猜测密钥kb以区分b和b′,而kb是在中随机选取的。因此,,其中是可忽略的。

证毕。

由定理1 和引理1 可知,本文方案实现了去重标签的安全性。此外,由于本文方案中实现了所有权证明协议,只有满足访问策略且拥有完整文件的用户才能够使用有效地去重标签检测云存储服务器中的数据存储情况。攻击者不能通过去重标签检测到自身权限外数据的存储情况,无法进行侧信道攻击。

5.3.2 数据机密性

基于4.2 节安全模型中的假设,即云存储服务器和分布式密钥服务器均为诚实但好奇的,本文提出引理2,证明方案的数据机密性。

引理2假设方案中使用的密码学工具均是密码学安全的。攻击者通过截获通信数据或攻击云存储服务器得到SCO 时,破解自身权限外的数据明文信息的概率p1是可忽略的;攻击者通过与内部用户发起联合攻击,伪造满足SCO 中访问策略的身份证书或篡改SCO 中的身份认证程序,破解自身权限外的明文信息的概率p2是可忽略的。此时,称方案满足数据机密性。

证明

情况1攻击者通过截获通信数据或攻击云存储服务器得到SCO。由于数据均以AES 密文形式存储,攻击者无法提供有效的身份证书和权限私钥sk,不能解密出AES 密钥key。而攻击者在不知道key 的情况下,成功破解数据的概率小于或等于破解AES 的概率,即p1≤negl1(n),这一概率是可忽略的。

情况2攻击者与内部用户发起联合攻击,伪造身份证书或篡改身份认证程序,试图破解权限外的数据信息。本文方案对SCO 中的代码进行了代码混淆,攻击者难以篡改SCO 中的认证程序绕过身份认证。假使攻击者通过伪造身份证书进入解密程序,由于攻击者没有满足访问策略的权限私钥sk,破解密文Cx’的概率p3小于或等于破解CP-ABE加密算法,即p3≤neg l2(n),这一概率是可忽略的。而在没有解密Cx′的情况下,试图解密ElGamal 密文Ckey的概率p4小于或等于攻破ElGamal 算法,即p4≤neg l3(n),此概率可忽略。最终,攻击者只能以可忽略的概率破解出Ckey。因此,攻击者破解出明文的概率p5仍小于或等于破解AES的概率,即p5≤negl1(n) 。因此,攻击者只能以可忽略的概率破解权限外明文数据。证毕。

由于使用概率性随机加密而非类似收敛加密的确定性加密,本文方案不会暴露数据的频率信息。并且,由于本文方案中使用了随机密钥而非基于数据内容产生的收敛密钥,攻击者在不知道密钥的情况下无法通过遍历明文集合的方式对截获的密文进行字典攻击。5.3.1 节中说明了攻击者无法对其权限外的数据进行侧信道攻击,结合本节中论述的数据机密性,方案中的外包密文数据对未授权用户实现了语义安全。数据在云存储服务器和分布式密钥服务器中均是以密文形式存储的,因此诚实但好奇的云存储服务器和分布式密钥服务器无法获取数据的任何明文信息。

5.3.3 权限更新安全性

权限更新安全性在于保证被撤销权限的用户不能再访问数据内容。

引理3假设方案中使用的密码学工具均是密码学安全的,数据所有者更新权限后,被撤销权限的攻击者仍可访问明文数据的概率p6是可忽略的。

证明权限更新后,密钥服务器将重新拆分ElGamal 私钥x并基于新的访问策略对x'进行CP-ABE 加密,被撤销权限的攻击者存储的私钥成分x′失效,其权限私钥sk 将无法解密出CP-ABE密文。攻击者即使截获密文数据,由于AES 密钥key 以ElGamal 密文的形式存储,其破解出key 的概率p7小于或等于破解 ElGamal 算法,即p7≤neg l3(n)。因此,攻击者只能以可忽略的概率得到AES 密钥key,那么其破解出明文的概率p8小于或等于破解AES 的概率,即p8≤neg l1(n),此概率是可忽略的。

此外,由于本文方案实现了去重标签安全性,且在权限更新阶段云存储服务器的去重标签也完成了更新,被撤销权限的用户无法通过自己的去重标签检测到数据在云端的存储情况,无法进行侧信道攻击。攻击者还可能在自己未被撤销权限前分析SCO 内部的解密程序或通过攻击分布式密钥服务器试图获取密钥信息。本文方案中对SCO 的内部程序进行了代码混淆,可以进一步采用白盒加密[18]或将程序放在Internet SGX(software guard extensions)[19]等可信执行环境中运行以缓解攻击者分析SCO 解密程序的攻击。由于ElGamal 私钥x拆分后的{x1,x2,...,xn}分布式地存储在了n个不同的密钥服务器中,攻击者要得到ElGamal 私钥x需要在其未被撤销权限的情况下攻击n个密钥服务器,得到{x1,x2,…,xn},再加上自身存储的x′才能得到完整的ElGamal私钥x,但攻击者同时攻击n个密钥服务器是困难的。

结合上述的相关引理,可以得到安全性结论如结论1 所述。

结论1假设方案中使用的密码学工具均是密码学安全的,那么本文方案中攻击者破坏授权去重安全性、数据机密性和权限更新安全性的概率均是可忽略的。本文方案实现了预设的安全目标。

6 仿真与性能分析

本文实现了方案中的密文去重系统,系统采用C++与Java 语言编写。为使仿真实验更加接近真实场景,实验中租用了云存储服务器作为实验的服务器端,客户端是个人PC 平台,共同完成方案中的数据加密上传、下载解密与权限更新过程。搭建的服务器环境如下:云存储服务器位于上海,2 核4 GB 内存,操作系统为Windows Server 2016 版64 位,带宽为5 Mbit/s;客户端位于杭州,操作系统为Windows10,处理器为Inter Core i7-8550U,内存为16 GB。

系统中的SCO 应用程序部分、AES 加密和CP-ABE 加密由Java 语言编写,数据传输和数据存储由C++语言编写。方案的实现技术包括jPBC 库,Proguard、JAAS 和可执行JAR 包。

本节对所设计的系统给出了运行性能的评估,包括数据加密上传、密文下载解密以及访问权限更新的时间开销。在测试中,关注去重数据访问控制功能所带来的时间开销以及权限更新过程中各部分的时间开销,并与基于收敛加密的密文去重方案进行了性能对比。本节中的所有实验数据均为10 次以上实验的平均值,除文件的上传下载过程易受网络情况影响外,其他实验过程在多次实验中数值均较为稳定。

6.1 加密上传

1) 首次数据上传

测试1 MB、5 MB、10 MB、50 MB、100 MB、200 MB、300 MB、400 MB、500 MB、600 MB、700 MB、800 MB 和1 000 MB 的文件,统计系统中加密数据、封装SCO 和上传数据的时间开销,测试结果如图12 所示。由图12 可以看出,系统的主要时间开销来自数据的上传时间,而数据加密时间和封装SCO 时间占比较低。图13 中将本文方案与CE 在加密过程中产生的时间开销进行了对比,可以看出本文方案在实现外包数据访问控制的同时仅增加了有限开销,系统中为访问控制所添加的封装SCO 和ElGamal 加密等步骤并未引起过多开销。

图12 数据加密上传

图13 本文方案与CE 对比

2)后续数据上传

本文方案为了实现去重数据的访问控制,增加了将数据封装进SCO 的开销。但由于方案实现了客户端去重,所有重复数据仅需加密上传一次。后续用户上传重复数据时,若该用户符合访问权限,则仅需与云存储服务器进行数据所有权证明,不需要再次加密上传数据。本文测试了当数据已在服务器端存储时,后续用户上传数据的时间开销,测试中所有权证明协议使用了POEF(provable ownership of encrypted file)方案[20],实验结果如表1 所示。

由表1 可以看出,当后续用户上传重复数据时,系统的时间开销明显减少。因此,由于系统实现了跨用户客户端去重,多个用户上传相同数据时,仅数据的首次上传需要一定的时间开销,后续上传时开销很小,系统具有较高的执行效率。

表1 后续数据上传

6.2 下载解密

系统中不同大小数据的下载解密时间如图14所示,系统的下载解密时间随着文件大小的增长逐步增加。

图14 数据下载解密

系统的主要时间开销依然集中在数据的下载过程,客户端的数据解密时间与服务器端的部分解密时间基本相当。

6.3 权限更新

本节测试了系统中不同大小文件的权限更新性能。图15 显示了随文件大小的增长,权限更新过程中的运行时间变化情况。更新过程中客户端的主要开销为对新的策略文件进行ElGamal 加密;云存储服务器端的主要开销为运行SCO 的密文更新函数,将新加密的策略文件封装进SCO 中;分布式密钥服务器的主要开销为对重新拆分的ElGamal私钥成分并进行CP-ABE 加密。

图15 数据权限更新中运行时间变化情况

由图15 可以看出客户端与分布式密钥服务器的开销较为固定,不会随着文件大小的增长而增加。而云存储服务器需要更新SCO 中的内容,开销会随着SCO 中数据文件大小的增长而增加。

在权限更新过程中,由于客户端不需要进行数据的下载及重新加密等复杂过程,客户端的计算开销是非常低的。并且由于客户端开销不随文件大小而变化,其在整体开销中的占比随着文件大小的增长而不断降低。当更新1 MB 文件权限时,客户端开销占比总体开销为20.40%;而当文件大小为1 000 MB时,客户端开销占比仅为9.18%。

无论数据所有者需要更新权限的文件大小为多少,客户端的计算开销都是较低的。因此,本文方案实现了低客户端开销的外包数据权限更新。

7 结束语

在现有的云数据密文去重系统中,用户普遍缺乏数据的管理权,无法确定数据与哪些实体共享。恶意用户可能会利用去重中共享密文的特点威胁用户的数据隐私。本文提出密文去重场景下的数据访问控制方案,数据所有者可对外包数据进行访问控制,被授权的用户才能够与云存储服务器进行去重检测,数据对于未授权用户而言是语义安全的;当用户的身份证书和权限私钥均满足访问策略时才可下载解密数据;数据所有者可通过与密钥服务器和云存储服务器的交互动态更新数据的访问控制策略。系统中通过SCO 技术封装用户数据和访问策略,验证用户身份证书并确保访问策略有效执行;通过CP-ABE 和动态拆分ElGamal 私钥实现权限更新。分析表明,本文方案在实现去重数据访问控制的同时仅增加了有限开销,具有较高的执行效率和良好的应用前景。

猜你喜欢

密文攻击者密钥
基于贝叶斯博弈的防御资源调配模型研究
一种支持动态更新的可排名密文搜索方案
幻中邂逅之金色密钥
幻中邂逅之金色密钥
基于模糊数学的通信网络密文信息差错恢复
密码系统中密钥的状态与保护*
基于网络报文流量的协议密文分析方法
密钥共享下跨用户密文数据去重挖掘方法*
TPM 2.0密钥迁移协议研究
正面迎接批判