王杰昌,刘玉岭,张 平
(1.郑州大学体育学院 体育大数据中心,河南 郑州 450000;2.中国科学院信息工程研究所,北京100190;3.河南科技大学 数学与统计学院,河南 洛阳471023)
云存储可以使单位和个人省去基础设施的维护,还具有可扩展性和灵活性,这些特点具有很大的吸引力[1]。云服务在企业、教育机构和政府机构的业务中得到了广泛的认可[2]。在云环境下,用户数据不存储在本地,而是存储在互联网的数据中心,同时运营商的硬件和软件服务也可供一般公众和商业市场使用[3]。云存储有很多优点,但是它也面临着一些问题和挑战,例如文献[4-10]提到的云的安全、性能和质量等问题,而且经常需要外包一些机密数据,这些数据的隐私性最为重要[11]。
针对云存储的数据共享问题,ALI等人[1]提出了一种安全的云数据共享(SeDaSC)方法。针对云外包大数据系统安全问题,ZHAN等[12]构建可信数据计算环境,为了防止验证过程中敏感信息的泄露,提出了云环境下基于可信第三方的多层大数据系统可信验证器。王威等人[13]提出了一套基于可信第三方平台的公有云数据安全解决方案,该方案以独立的可信第三方平台为核心,在数据加密、密钥管理、数据感知、数据共享和事故责任等方面具有一定的优势。然而在真实环境中,基于可信第三方属于理想状态,基于半可信第三方的云存储访问控制协议要比基于可信第三方的协议有更强的实用性和可操作性。
AKHILA等[14]提出了云环境下基于半可信第三方的数据安全系统协议,提供密钥管理、访问控制和文件确认删除,使用沙米尔门限秘密共享算法来管理密钥。金瑜等[15]提出了一种基于半可信第三方的动态云数据更新审计方案BTDA,采用了数据盲化和代理重签名技术,来防止半可信第三方和云服务器获取用户敏感数据。TANG等[16]利用半可信密钥管理员,设计了一个安全的云存储系统FADE,该系统提供用户文件加密上传至云存储、下载至本地解密和密钥管理等一系列功能,且充分节省了本地存储空间。ALI等[17]认为FADE协议中客户端和密钥管理员KM之间存在中间人攻击,就为KM和Client之间的通信加入密钥交换和数字签名,提出了一个基于半可信第三方的云环境数据安全系统(DaSCE),其中密钥管理员为半可信第三方,该系统也提供密钥管理、访问控制和文件保证删除等功能。在DaSCE中,虽然ALI将密钥管理员视为半可信第三方,防范了客户端与KM间的中间人攻击,但是却无法阻止KM截获客户端与云之间的通信数据并解密,即使在多密钥管理员的情形下,若它们合谋攻击,这一威胁依然存在。
为解决DaSCE协议不能阻止密钥管理员KM截获并解密用户数据的问题,同时防范中间人攻击,本文改进了DaSCE,提出了基于半可信第三方的云用户数据安全存储协议(UKC),解决自半可信第三方KM的安全威胁;构建安全模型,证明UKC协议的安全性,同时对协议进行仿真实验,测试其时间开销。
大整数分解问题(IF问题)[18]:奇合数M,至少有2个素因子,求素数q满足q|M。
大整数分解困难假设(IF假设):一个整数分解器是一个PPT算法Λ,满足概率ω>0:ω=Prob[Λ(M)|M,1<Λ(M)
公钥加密体制的安全性可以按攻击目标和攻击模型分类。攻击目标分类中的一种为不可区分性(Indistinguishability,IND)安全,即给定2个已知明文,随机选择其中一个加密,敌手无法从密文中获知是哪个明文的密文。攻击模型分类中的一种为选择密文攻击(Chosen Ciphertext Attack,CCA),即敌手可以通过访问解密预言机,在不知道密钥的情况下,获取一个或多个己知密文相对应的明文信息,以获得与密钥相关的信息[19]。IND-CCA即为选择密文攻击的不可区分性。
ALI等[17]认为,FADE协议在文件上传阶段客户端和KM间存在中间人(intruder)攻击,客户端无法判断收到的(ej,nj)是来自KM还是其他方;在文件下载阶段,中间人就可以利用其私钥(dj,nj)截获并解密数据。因此ALI等提出DaSCE,在文件上传阶段,客户端和KM利用密钥协商及数字签名,确保它们之间的通信免受中间人攻击;在文件下载阶段为了防止中间人攻击,在客户端和KM之间先确立会话密钥,然后通过会话密钥加密通信。
本文的系统模型为UKC模型,如图1所示,包含用户、密钥管理员、云等实体,使用三元组
图1 UKC系统模型Fig.1 UKC system model
(1) Us表示用户(功能类似于DaSCE中的Client,但又不完全相同,因为用户可以更换Client),向KM(s)发送策略文件Pi请求,利用KM(s)为其加密或解密盲化的数据密钥,向Cloud上传或下载加密的文件及相关数据。可利用不同的客户端上传或下载数据,仅用UKey保存其盲化因子Ri。
(2) KM(s)表示(单个或多个)密钥管理员,生成公钥(ei,ni)(发送至Us)和私钥(di,ni)(秘密保存),为Us盲化的数据密钥提供加密和解密服务。
(3) Cloud表示云,存储Us加密的文件及相关数据。
UKC系统运行大致可分为以下几步:① 当数据要上传至云端时,用户向KM(s)发送策略文件;② KM(s)根据策略文件生成一对公私钥,秘密保存私钥,将公钥返回给用户;③ 用户本地生成数据密钥加密文件,之后盲化数据密钥,然后利用公钥加密盲化的数据密钥,最后将加密的盲化数据密钥和文件上传至云存储以节省本地空间,仅在UKey秘密保存盲化因子;④ 当用户需要文件时,可从云存储下载加密的盲化数据密钥和文件;⑤ 将加密的盲化数据密钥发送至KM(s);⑥ KM(s)利用私钥解密,并将解密后的盲化数据密钥返回给用户;⑦ 用户利用UKey除去盲化数据密钥的盲化因子,再利用数据密钥解密文件。
在UKC中,KM是半可信的,它有可能对用户和云之间的通信发动主动攻击,去截获用户上传或下载的数据,并解密用户数据。当然,中间人也可发动同样的攻击。在有多密钥管理员的情形下,若密钥管理员合谋攻击,也有可能截获并解密用户数据。在UKC安全模型中,将KM或中间人称为攻击者A,要求新协议能抵抗A的攻击。下面通过攻击者A与挑战者的交互游戏来定义协议的IND-CCA安全:
(1) 初始化。挑战者产生系统UKC,敌手A获得UKC的公开钥。
(2) 询问。敌手A向挑战者做解密询问,挑战者解密后,将明文给敌手A。
(3) 挑战。敌手A输出2个长度相同的消息F0和F1,再从挑战者接受密文Fβ,其中随机值β←{0,1}。
(4) 猜测。敌手输出β′,如果β′=β,则敌手A攻击成功。
为弥补DaSCE的不足,彻底消除KM的安全威胁,本文提出UKC协议。Ki是用户Us生成随机的对称密钥,与Pi相对应。Us用数据密钥Ki来加密文件Fi,用KM生成公私钥对(ei,ni)来加密Ki,{·}KEY表示利用对称密钥KEY进行加密的加密算法,是IND-CCA安全的。本协议用户在文件上传前加入盲化因子Ri,具体操作为用户先在本地生成Ri,并计算(KiRi)ei后将它和其他数据一起上传至云存储。之后在用户和云进行通信时(无论是上传文件还是下载文件),仅用户掌握Ri,KM或中间人即使截获数据,也很难通过KiRi分解出Ki(Ki和Ri为随机的大素数)[20]。在多密钥管理员的情形下,若密钥管理员合谋攻击,也会遇到同样的困难。
与DaSCE相比,在文件上传阶段,本协议增加了盲化计算和UKey存数,省去密钥交换(包含数字签名)和一次加密计算{K}Si;在文件下载阶段,本协议增加了用户从UKey读数,省去盲化计算、密钥交换(包含数字签名)和一次加密计算{K}Si。
UKC单密钥管理员文件上传过程如图2所示,当数据要上传到云端时,用户向KM发送一个策略文件Pi,请求生成一对公私钥。KM生成和Pi相关联的公私钥对,并将公钥(ei,ni)发送给用户。与DaSCE协议不同的是,用户用Ki加密文件Fi生成{Fi}Ki,同时生成带时间戳t的随机盲化因子Ri,并计算KiRi,再用(ei,ni)加密得到(KiRi)ei,之后用户将Pi,(KiRi)ei,{Fi}Ki,t上传至云端,最后用户清除本地所有的密钥和文件,仅在其个人UKey中利用函数save(·)秘密保存相互关联的策略文件Pi,盲化因子Ri及时间戳t。
图2 UKC单KM文件上传Fig.2 UKC single KM file upload
多密钥管理员的情形如图3所示。与单个密钥管理员最大的不同是,用户利用Shamir(b,N)门限秘密共享算法(其中1≤b≤N),将盲化密钥KiRi利用函数divide(·)分成Ki1Ri1,…,KiNRiN共N份,然后再加密上传。
图3 UKC多KM文件上传Fig.3 UKC multi-KM file upload
从云端下载文件和加密密钥后,用户将Pi,(KiRi)ei发送给密钥管理员KM解密。KM用di解密(KiRi)ei,并将KiRi返回给用户。用户通过策略文件Pi和时间戳t利用函数find(·)从其UKey中找到对应的盲化因子Ri,然后从KiRi中分解出Ki,最终解密得到Fi。具体文件下载过程如图4所示。
图4 UKC单KM文件下载Fig.4 UKC single KM file download
多密钥管理员的情形如图5所示,用户从云端下载Pi,(Ki1Ri1)ei1,…,(KiNRiN)eiN,{Fi}Ki,t后,分别将Pi,(Ki1Ri1)ei1,…,Pi,(KiNRiN)eiN发送给KM1,…,KMN解密。至少有b个密钥管理员执行解密并将b个KiiRii返回给用户,然后用户可以利用Shamir(b,N)从KiiRii,…,Ki,i+b-1Ri,i+b-1中恢复出KiRi,用户通过策略文件Pi和时间戳t从其UKey中找到对应的盲化因子Ri,然后KiRi中分解出Ki,最终用Ki解密{Fi}Ki。
图5 UKC多KM文件下载Fig.5 UKC multi-KM file download
定理1在大整数分解困难的情况下,对于半可信第三方KM的攻击或中间人攻击,UKC协议是IND-CCA安全的。
具体来说,假设一个IND-CCA敌手A(KM或中间人)以不可忽略的优势ε攻破UKC,那么一定存在一个敌手B至少以不可忽略的优势2ε解决IF问题。
证明:
令C=(C1,C2)=((KiRi)ei,{Fi}Ki),
UKC的IND-CCA游戏如下:
式中,(ni,ei,di)是已知的;(Ki,Ri)是未知的,
如果β′=β,则返回1;否则返回0。
其中敌手不能对目标密文C*进行解密询问。敌手A的优势定义为:
下面证明UKC协议可归约为大整数分解(IF)问题。
① 如果L中有一项(Ri,C1,Ki),则以Ki回答。
② 如果L中有一项(*,C1,Ki),则以Ki应答并在L中以(Ri,C1,Ki)替换(*,C1,Ki)。
③ 否则,选取一个随机数Ki,以Ki应答并在表中存储(Ri,C1,Ki)。
所以,
即,Pr[G]≥2ε。
由定理1可知,本协议可以阻止KM截获并解密用户数据,也能抵御中间人攻击,安全性高于DaSCE。
本协议进行仿真实验,其中云服务器Cloud的性能参数为:16核CPU,64 GB内存,8 TB存储;密钥管理员服务器KM性能参数为:32核CPU,128 GB内存,1 TB存储,均部署在某所大学内。分别利用2台电脑模拟用户Us进行上传和下载,这2台电脑均为台式机(4核CPU,8 GB内存,500 GB硬盘),网络带宽为15 Mb/s。本协议分别选用大小为1,3,10,30,100,300 KB和1,3,10 MB的文件进行上传和下载操作。
UKC与DaSCE协议在文件上传阶段的时间开销统计如表1所示,在表1统计数据基础上使用Matlab做出的仿真图如图6所示。
表1 文件上传阶段时间开销统计
图6 2个协议文件上传阶段时间开销对比Fig.6 Time overhead comparison between the two protocols in the file upload phase
从表1和图6可以看出,随着文件的增大,2个协议在文件上传阶段的时间开销都在增大,但本协议UKC的时间始终比DaSCE协议少。
在本阶段,与DaSCE协议相比,本协议增加了UKey存数和一次盲化计算(即乘法运算),省去密钥交换(包含数字签名)和一次加密计算{K}Si;UKey存数和盲化计算显然比密钥交换和加密计算花费的时间少,这些运算的时间与密钥及盲化因子的长度等因素有关,与文件大小无关。文件加密{Fi}Ki及文件传输的时间与文件大小有关,但在本实验中两协议每次均使用相同大小的文件测试。因此,随着文件的增大,虽然本协议与DaSCE的时间都在增大,但是双方的差距几乎不变;图6中随着时间轴数据的增大,双方的时间差距通过肉眼观察会越来越不明显,但仍存在着一定的差距。
UKC与DaSCE协议在文件下载阶段的时间开销统计如表2所示,在表2统计数据基础上使用Matlab做出的仿真图如图7所示。
表2 文件下载阶段时间开销统计
图7 2个协议文件下载时间阶段开销对比Fig.7 Time overhead comparison between the two protocols in the file download phase
从表2和图7可以看出,随着文件的增大,2个协议在文件下载阶段的时间开销都在增大,但本协议UKC的时间始终比DaSCE协议的少。
在该阶段,与DaSCE相比,本协议增加了用户从UKey读数,省去一次盲化计算、密钥交换(包含数字签名)、一次加密计算{K}Si;UKey存数显然比盲化计算、密钥交换和加密计算花费的总时间少,这些运算的时间与密钥及盲化因子的长度等因素有关,与文件大小无关。文件解密{{Fi}Ki}Ki及文件传输的时间与文件大小有关,但本实验中两协议每次均使用相同大小的文件测试。因此,随着文件的增大,虽然本协议与DaSCE的时间都在增大,但是双方的差距几乎不变;图7中随着时间轴数据的增大,双方的时间差距通过肉眼观察会越来越不明显,但仍存在着一定的差距。
云数据的安全问题影响着云技术应用的发展,合理有效的安全算法及访问控制方法能够提高用户对云存储服务的信任,同时也应考虑云存储系统的性能代价。本文充分考虑来自半可信第三方KM的安全威胁,改进DaSCE协议,提出UKC协议。分析和仿真表明,本协议的安全性高于DaSCE,运行时间比DaSCE短,具有更高的实用性和可操作性。本文主要考虑用户对其文件的上传和下载,下一步工作考虑在UKC基础上,用户如何控制他人对其云存储文件的访问。