一种云计算用户数据检查的方法

文档序号:7868717阅读:207来源:国知局
专利名称:一种云计算用户数据检查的方法
技术领域
本发明是基于开源平台的云计算环境下用户数据安全性解决方案,主要用于解决云环境下终端用户对于数据安全和完整性保证问题,保证用户将对数据的安全性检查交给第三方的前提下能够有效保证用户数据安全性,属于云计算安全领域。
背景技术
云计算是继网格计算、分布式计算之后计算机领域提出的又一大计算模式,云计算可以分为三种服务模式IaaS (Infrastructure-as-a-service),基础设施即服务。消费者通过Internet可以从完善的计算机基础设施获得服务,PaaS (Platform-as-a-Service),平台即服务,Paas实际上是指将软件研发的平台作为一种服务。SaaS (Software-as-a-Service),软件即服务,它是通过Internet提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动。相对于传统计算模式,云计算模式拥有巨大优势按需自服务、无所不在的网络访问、按使用付费、风险转移。但由于云计算模式特殊性,用户需要将它们的数据存储在云服务器上,虽然将维护数据的负担转移到了运供应商那里,避免了对于软件、硬件维护和相关维护人员的花费开销,但由于用户缺乏对数据、设备和环境的可控性导致对云计算的不信任,用户将自己的数据和日常处理的环境托管给服务提供商,失去了对数据的控制权,所以在没有取得云数据的前提下验证数据存储安全性尤为重要,考虑到云端用户有限的计算能力和存储数据的庞大性,依靠用户自身来检查云环境中数据正确性将会很困难,因此为了确保数据的安全性和节约用户计算资源,需要借助于可信的第三方检查者TPA (third party auditor)的帮助来建立可靠的检查机制,确保用户数据的完整性与可用性。从而使云计算能够为用户所信赖,促进云计算技术的大力发展,为中小企业和普通用户带来切身利益。

发明内容
技术问题本发明的目的是提供一种云计算用户数据检查的方法,将改进基于同 态认证的公共密钥技术,来取得公共云系统的数据隐私保护作用,由于改进技术,增加了检查的可靠性,保证的云用户数据的完整性,由于本技术双线性特性,从而使得检查用户范围扩展到多用户环境,TPA从而可同时执行多个检查任务,进一步减少工作量和提高检查效率。技术方案本发明的一种云计算用户数据检查的方法的具体步骤如下I)云计算用户运行密钥生成算法KeyGenerator命令产生公钥pk和私钥sk,KeyGenerator是一种密钥生成算法,用户用来生成公钥和私钥;2)对于给定的用户文件的用户数据F=On1,.... mn),用户数据被分为η块,每个数据块表示为叫(1 ( i彡η),取namek作为每个用户文件的的唯一标识,用户运行SigGenerator命令来生成用户数据F的标签t ;SigGenerator用来生成认证的元数据,包括MAC,签名,或其他相关被用来检查的信息;
3)然后计算每个数据块的签名Oi,签名集合表示成O =,用户然后将 {t,F,0}发送到云服务器;
4)检查阶段在检查阶段,第三方检查TPA首先取得文件标签t,然后TPA通过公共密钥Pk来验证签名t,如果认证失败就产生表示检查出错FALSE信息,表明标签不完整, 否则进入下一步;
5)TPA产生挑战信息chal,“chal”指明了在检查阶段需要被检查的数据块的具体位置,然后将挑战信息发送给云服务器;
6)云服务器一旦受到挑战信息chal,就会运行GeneratorProof来产生表明数据存储正确性的响应证据proof ;GeneratorProof由云服务器运行,用来产生数据存储正确性的证据;
7)云服务器然后发送proof作为数据存储正确性的证明给TPA ;
8)在收到云服务器发来的相应证据后,TPA运行VerifyProof命令检查数据存储的正确与否,如果认证通过,表明云服务器正确存储用户数据,从方案中看出在检查阶段 TPA不需要维护用户私钥也不会给用户带来任何额外负担,此外,由于在检查过程中不需要取得用户数据,从而达到隐私保护的目的JerifyPiOOf由第三方检查TPA运行用来检查服务器端发回相应证据的正确性。
所述的TPA同时处理来自不同用户的检查代理,双线性聚合签名技术支持多个有多个不同用户对不同信息的签名聚合成单个签名,将K个认证方程聚合成一个,实现多重任务的同时检查,具体步骤如下
I)假设系统中有K个用户,每个用户k拥有
Fk= (mk;i,mk;2,. . . . , mkjn), k e {I, . . . . , K},对于特定用户 k, KeyGenerator 命令产生系统公共密钥Pk和私密密钥pk ;
2)建立阶段对于每个用户数据Fk = (mk;1, mk;2,——,mk,n),ke {I,——,K},取 namek作为每个用户文件的的唯一标识,用户运行SigGenerator命令来计算文件F的标签 tk = namek | SSigsk(namek), SSigsk(namek)为将 namek 用第 k 个用户私钥产生的签名;
3)然后每个用户k计算每个数据块Hikii (i e {1,····η})的签名 { σ k,i}i^k^K(i=1. . . .,η);签名集合表示成 C>k = { σ J5 J1 ;用户然后将{tk, Fk, C>k}发送到云服务器;
4)检查阶段TPA首先取得每个用户k的文件标签tk,然后TPA通过公共密钥来验证每个用户签名SSigssk(name,),如果认证失败就产生FALSE信息,表明标签不完整,否则进入下一步;
5)然后TPA发送检查挑战信息chal给云服务器来代理所有K个用户的数据检查,云服务器在收到挑战信息后,对于每个用户i(i e {l,...,k}),服务器生成对应的证明数据存储完整性的证明Proofi (i e {l,...,k}),然后将每个用户完整性证明聚合成 P= {proof;
6)云服务器然后返回数据拥有性证据PHproof^qq给TPA,同单个用户例子相似,TPA运行VerifyProof代理k个用户验证数据存储的正确与否,批检查不仅仅允许TPA 同时完成多重检查工作,并且大大减少云服务器端的通信量和TPA端的计算花费。
有益效果1.允许云计算用户将检查的工作提交给计算资源和可靠性更强的第三方检查,减小用户单独进行检查的负担和复杂性。2.由于增加了对数据文件签名的检查,使得检查的可靠性进一步提高,扩大了云计算的进一步使用。3.第三方在没有取得用户数据和给云计算用户带来额外负担的前提下进行用户数据正确性的检查工作,达到隐私保护的效果。4.此方案在云计算中支持可扩展和高效 的公共检查,特别是支持来自不同用户检查代理的批检查,相比具体的单一检查和其他方案要高效的多,并且没有带来通信和计算量的增加。


图1云计算数据安全检查系统整体框架图,图2.方案I所示图示,图3.方案2所示图示,图4.单个用户检查过程。
具体实施例方式本发明在于改进已有的基于同态认证的公共密钥技术,旨在确保检查的可靠性,即用户选取文件的唯一性标志,然后对唯一标识使用用户私钥生成文件标签,在检查云计算用户过程中首先用用户公钥验证签名完整性,若签名完整,则继续对单个数据块进行检查,由于加入了对用户签名的验证过程,相比已有的基于同态认证的公共密钥技术,增加了检查的可靠性,同时支持云计算用户数据在公共检查中的隐私保护,即可信的第三方在检查的过程中在不得到的用户数据的前提下达到检查的效果,相比有些需要将用户数据提交给第三方检查者来达到检查的目的要安全的多,因为用户不想将自己私有的数据供检查方检查,这样会带来新的不安全因素,同时由于逐个检查任务将会是乏味的和繁重的,支持批量检查任务将会大大提高检查效率,通过改进同态认证技术,我们方案保证了检查的可靠性,相比直接对用户数据的块进行检查相比,有较高的安全性保证保,这种认证方式将进一步优化现有的检查方案。下面将具体分析检查流程。一、模型和体系结构a)云存储服务涉及到三个不同实体I)云终端用户U,他有大量需要存储在云服务器上的数据;2)云服务器CS(cloud server),它由云服务提供商 CSP(cloud serviceprovider)管理并且提供数据存储服务并且有足够的存储空间和巨大的计算资源(在此之后,我们对于CS和CSP将不予区分);3)第三方检查TPA,他拥有云端用户所没有的专业检查能力并且代理客户端请求检查云存储安全;用户依靠云服务器CS进行云存储和数据维护,用户为了各种各样应用目的也会和云服务器交互进行数据的取得和更新操作。用户也会求助于TPA确保他们存储的数据安全,并且希望存储的数据不被TPA所了解,我们认为TPA是可靠和独立的,并且在检查过程中不会私自和CS或用户串通,CS中任何数据泄露或流失的现象在通过TPA检查时都将会被发现。其具体数据安全检查系统框架图如附图1.所示。
b)公共检查系统框架及定义
公共检查方案包含有四种算法,即SigGenerator, GeneratorProof, VerifyProof, KeyGenerator是一种密钥生成算法,用户用来生成公钥和私钥, SigGenerator用来生成认证的元数据,包括MAC,签名,或其他相关被用来检查的信息, GeneratorProof由云服务器运行,用来产生数据存储正确性的证据,VerifyProof由TPA运行用来检查服务器端发回相应证据的正确性。
我们的公共检查系统可以由以上检查方案化分为两个阶段,建立和检查
建立阶段用户通过执行KeyGenerator命令初始化系统的公共和私有密钥,通过使用私有密钥预处理数据文件F来产生数据签名标签。然后对数据块签名产产生签名集合,然后将数据文件F和数据文件签名标签和数据块的签名标签存储在云服务器上。
检查阶段TPA首先从云服务其上取得文件标签,然后使用用户公钥进行签名认证,如果认证通过就会发出一条检查或挑战信息给云服务器来确保云服务器在检查期间完整保存数据文件F。云服务器通过执行GeneratorProof命令从存储数据和认证数据元生成相应消息并反馈给TPA, TPA然后通过VerifyProof命令认证相应消息!
二、现有检查方案
基本方案1.云计算用户预计算每个数据块HIiQ e {I, ... η})的MACs, σ ^MACsi (i |Iiii),将数据文件F和MACs { σ i} ^ ^发送到云服务器上,然后将私钥sk发送给TPA。在检查阶段, TPA从云服务其上随即选取一些数据块和它们对应的MACs来确认数据文件的正确性,这种做法的好处是检查部分文件比检查全部文件要容易的多,然而,这一简单的解决方案存在以下严重缺点1)TPA检查时需要取得用户数据,这在用户隐私保护的前提下应该被禁止; 2)它的通信和计算复杂度相对于抽样数据大小呈线性关系,这会导致通信量和时延的扩大化,特别是当位于TPA和云服务器之间的可用带宽有限时尤为明显。其检查过程如图2所/Jn ο
基本方案2.
为了避免从云服务器上选取用户数据从而保护用户隐私,我们可以将方案改成如下所示在用户将数据上传到云服务器前,云用户随机选取s个认证密钥(SkJwas,对于整个文件系统,预计算S个对应的MACS,(MACskr L ",将这些认证元数据提交给TPA。TPA 每次拿到一个sk,给云服务器,并且要求云服务器产生产生新的MAC做比较,这样就达到了隐私保护的目的。其对应的检查过程如图3所示。
缺点
I)特定的文件可以被用来检查的次数收到密钥个数的限制。一旦所有可能的密钥用完了,云用户不得不从云服务其上取得数据,从而从新计算新的MACs供TPA验证。
2) TPA不得不维护和更新检查之间状态,记录拥有的MAC钥,考虑到来自多用户大量潜在的检查代理,维护如此多的状态对于TPA来说是困难的和容易产生误差的。
本方案隐私保护的公共检查方案的改进
为了确保检查的可靠性,我们的方案中对已有的检查进行改进,先用户选取文件的唯一性标志,然后对唯一标识使用用户私钥生成文件标签,在检查云计算用户过程中首先用用户公钥验证签名完整性,若签名完整,则继续对单个数据块进行检查,由于加入了对用户签名的验证过程,相比已有的基于同态认证的公共 密钥技术,增加了检查的可靠性。为了在没有取得用户数据的前提下达到公共检查效果,采用同态认证技术,然而,直接采用这些技术并不适合我们的最终目的,因为这些数据块的线性结合很可能展露用户数据信息,违反隐私保护原则。特别是,如果足够数量的同样数据块的线性结合被收集到的话,TPA可以轻而义举从一系列线性方程中取得用户数据内容。为此,采用同态认证同随机掩码相结合的技术,在我们的协议里,来自服务器的响应的抽样数据的线性结合被由伪随机函数(PRF)产生的随机数所掩盖,由于掩盖的作用,TPA不在拥有能够建立正确线性方程组组的必要信息,所以不能取得用户数据内容,无论多少文件数据块的线性结合被收集到都如此。于此同时,注意到在我们方案中,我们采用基于同态认证的公共密钥技术,具体来说,双线性聚合签名,来完善公共检查协议,它在签名聚合上的灵活性将使我们从多重设计任务中裨益,其检查过程如图3所示,图中阴影部分为方案改进处。采用同态认证的技术能够在不将用户数据透露给TPA的情况下进行检查工作,对现有方案的改进使得检查的可靠性进一步提高并且没有给用户带来额外的负担,同时批检查的支持使得本技术的在检查用户数据时更为有效下面将具体分析其检查步骤。(一)单个用户检查方案具体步骤如下所示1.建立阶段云计算用户运行KeyGenerator命令产生系统公共密钥pk和私密密钥sk ;2.对于用户数据F=On1,....mn),取name,作为文件的的唯一标识,用户运行SigGenerator 命令来计算文件 F 的标签 t=name | | SSigsk (name), SSigsk (name)为将 name 用私钥sk产生签名;3.然后计算每个数据块的签名O i,i e (1,... η)。签名集合表示成Φ = {σ 用户然后将{t,F,Φ}发送到云服务器;4.检查阶段在检查阶段,TPA首先取得文件标签t,然后TPA通过公共密钥pk来验证签名SSigssk (name),如果认证失败就产生FALSE信息,表明标签不完整,否则进入下一
ι K
少;5.为了产生检查信息chal,chal指明了在检查阶段需要被检查的数据块的具体位置;6.云服务器一旦受到挑战信息proof,就会运行GeneratorProof来产生表明数据存储正确性的响应证据proof ;7.发送proof作为数据存储正确性的证明给TPA ;8.在收到云服务器发来的相应证据后,TPA运行VerifyProof命令通过检查认证方程来验证相应正确性;9.如果检查通过,证明用户数据存储完整性,用户通过第三方TPA的代理检查通过,表明云服务器正确存储数据块;
很明显随机掩码的R对于数据的有效性验证上没有什么影响。具体的流程如图4 所示。
( 二 )对于多个用户的批量检查的支持
单个用户的检查工作对于TPA来说是乏味的和缺乏效率的,本方案可以支持批量检查,即TPA可以同时处理来自不同用户的检查代理,双线性聚合签名技术支持多个有多个不同用户对不同信息的签名聚合成单个签名,因此对所有信息真实性提供了有效的认证。由于具有签名聚合技术和双线性的特性,我们可以将K个认证方程聚合成一个,因此多重任务的同时检查目标可以实现。
具体步骤如下
1.假设系统中有K个用户,每个用户k拥有Fk=Onlu, mk;2, . . . .,mk, n),k e {I,...., K},对于特定用户k,KeyGenerator命令产生系统公共密钥pk和私密密钥 pk ;
2.建立阶段对于每个用户数据Fk=Onlu, mk,2,——,mk, n),k e {I,——,K}, 取namek作为每个用户文件的的唯一标识,用户运行SigGen命令来计算文件F的标签 tk=namek | SSigsk(namek), SSigsk(namek)为将 namek 用第 k 个用户私钥产生的签名;
3.然后每个用户k计算每个数据块e {I,....η})的签名<K(i=l, . . .,η),签名集合表示成C>k={ σ k;i}1<k<no用户然后将{tk, Fk, C>k}发送到云服务器;
4.检查阶段TPA首先取得每个用户k的文件标签tk,然后TPA通过公共密钥来验证每个用户签名SSigssk (name,),如果认证失败就产生FALSE信息。表明标签不完整,否则进入下一步;
5.然后TPA发送检查挑战信息chal给云服务器来代理所有K个用户的数据检查,云服务器在收到挑战信息后,对于每个用户i(i e {l,...,k}),服务器生成对应的证明数据存储完整性的证明Proofi (i e {1,...,k}),然后将每个用户完整性证明聚合成 P= {proof;
6.云服务器然后返回数据拥有性证据P= {proof J i ^ 给TPA,同单个用户例子相似,TPA运行VerifyProof代理k个用户验证数据存储的正确与否。批检查不仅仅允许 TPA同时完成多重检查工作,并且大大减少云服务器端的通信量和TPA端的计算花费。
权利要求
1.一种云计算用户数据检查的方法,其特在在于该方法的具体步骤如下1)云计算用户运行密钥生成算法KeyGenerator命令产生公钥pk和私钥sk, KeyGenerator是一种密钥生成算法,用户用来生成公钥和私钥;2)对于给定的用户文件的用户数据F=On1,....mn),用户数据被分为η块,每个数据块表示为Hii (I ( i彡η),取namek作为每个用户文件的的唯一标识,用户运行SigGenerator 命令来生成用户数据F的标签t ;SigGenerator用来生成认证的元数据,包括MAC,签名,或其他相关被用来检查的信息;3)然后计算每个数据块的签名Oi,签名集合表示成Φ= { Oj1-Kn,用户然后将 {t,F,0}发送到云服务器;4)检查阶段在检查阶段,第三方检查TPA首先取得文件标签t,然后TPA通过公共密钥Pk来验证签名t,如果认证失败就产生表示检查出错FALSE信息,表明标签不完整,否则进入下一步;5)TPA产生挑战信息chal,“chal”指明了在检查阶段需要被检查的数据块的具体位置,然后将挑战信息发送给云服务器;6)云服务器一旦受到挑战信息chal,就会运行GeneratorProof来产生表明数据存储正确性的响应证据proof ;GeneratorProof由云服务器运行,用来产生数据存储正确性的证据;7)云服务器然后发送proof作为数据存储正确性的证明给TPA;8)在收到云服务器发来的相应证据后,TPA运行VerifyProof命令检查数据存储的正确与否,如果认证通过,表明云服务器正确存储用户数据,从方案中看出在检查阶段TPA不需要维护用户私钥也不会给用户带来任何额外负担,此外,由于在检查过程中不需要取得用户数据,从而达到隐私保护的目的JerifyPiOOf由第三方检查TPA运行用来检查服务器端发回相应证据的正确性。
2.根据权利要求1所述的云计算用户数据检查的方法,其特在在于所述的TPA同时处理来自不同用户的检查代理,双线性聚合签名技术支持多个有多个不同用户对不同信息的签名聚合成单个签名,将K个认证方程聚合成一个,实现多重任务的同时检查,具体步骤如下1)假设系统中有K个用户,每个用户k拥有Fk = (mk;i,mk;2,. . . . , mkjn), k e {I,. . . . , K},对于特定用户 k, KeyGenerator 命令产生系统公共密钥Pk和私密密钥pk ;2)建立阶段对于每个用户数据Fk= (mk;1,mk;2,——,mk,n),k e {I,——,K},取namek 作为每个用户文件的的唯一标识,用户运行SigGenerator命令来计算文件F的标签tk = namek SSigsk (namek), SSigsk (namek)为将namek用第k个用户私钥产生的签名;3)然后每个用户k计算每个数据块e{I,....η})的签名 { σ k,i}i^k^K(i=1. . . .,η);签名集合表示成 C>k = { σ J5 J1 ;用户然后将{tk, Fk, C>k}发送到云服务器;4)检查阶段TPA首先取得每个用户k的文件标签tk,然后TPA通过公共密钥来验证每个用户签名SSigssk(name,),如果认证失败就产生FALSE信息,表明标签不完整,否则进入下一步;5)然后TPA发送检查挑战信息chal给云服务器来代理所有K个用户的数据检查, 云服务器在收到挑战信息后,对于每个用户i(i e {l,...,k}),服务器生成对应的证明数据存储完整性的证明Proofi (i e {1,...,k}),然后将每个用户完整性证明聚合成 P= {proof;6)云服务器然后返回数据拥有性证据P={proof J i q 给TPA,同单个用户例子相似, TPA运行VerifyProof代理k个用户验证数据存储的正确与否,批检查不仅仅允许TPA同时完成多重检查工作,并且大大减 少云服务器端的通信量和TPA端的计算花费。
全文摘要
本发明涉及一种云计算用户数据检查的方法,为了确保云计算用户数据完整性和节省用户计算资源和通信负担,建立可靠地检查制度尤为关键,借助于第三方检查(TPA)来代理用户进行检查工作,它可以代理用户进行周期性的数据完整性检查,它采用基于同态线性认证的技术,确保TPA在没有取得用户数据的前提下能够正确代理用户进行检查工作,取得了隐私保护的目的,保证了云计算用户数据的安全。为了提高安全性和可靠性,本方案对此进行改进,增加了对用户数据块的认证过程,使得在检查数据块之前由TPA代理检查用户数据块签名,提高了检查的可靠性。
文档编号H04L9/32GK103002040SQ20121054376
公开日2013年3月27日 申请日期2012年12月14日 优先权日2012年12月14日
发明者季一木, 康家邦, 王汝传, 孙力娟, 王振洪, 马晓东, 韩志杰, 付雄, 戴华 申请人:南京邮电大学, 江苏亿通高科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1