云数据存储方法与流程

文档序号:13839074阅读:520来源:国知局

本发明涉及安全云存储,特别涉及一种云数据存储方法。



背景技术:

云数据存储平台将计算资源存储在可配置的计算资源共享池中,通过便利、按需的网络读计算资源。而安全成为制约云存储发展的关键问题。云存储服务商在云存储中提供服务,而用户处于被动地位,造成信息掌控的严重不对称。云存储将信息转移到云存储服务提供商,企业自身却无法再全面掌控信息和云服务提供商的存储细节;而云存储是针对多方用户,云服务提供商考虑到自身安全,也无法向业主呈现存储中的关键信息。另一方面,云存储平台中的域间互操作虽然实现了域间资源和服务的共享,但如何保证域内的管理对象的安全,即如何安全地实现域间互操作主客体信息的共享,设置读策略并严格执行读检查,是一个亟待解决的问题。现有技术是在传统授权管理模型基础上通过扩展,域间的角色映射使不同域中的角色建立了关联关系,但域间角色映射的传递也容易造成安全隐患。



技术实现要素:

为解决上述现有技术所存在的问题,本发明提出了一种云数据存储方法,包括:

在云存储平台中设置多个认证服务器,将密钥分发、特征认证事务分级进行,由根认证服务器对下一级认证服务器进行签名。

优选地,用于所述分级认证的服务器包括多个分级子认证服务器,通过对称密钥证书机制对用户进行身份认证,完成用户的添加删除,对密文进行授权读取控制。

优选地,为写用户提供认证级别树,以使所述写用户根据子认证服务器提供的认证级别树来设置读策略,加密数据后在云服务器进行存储。

优选地,所述根认证服务器包括公钥基础设施pki。

优选地,所述云存储系统的用户还包括读用户,所述读用户是请求对云服务器存储数据进行读取的用户。

优选地,在读用户对云服务器存储数据进行读取时,读用户与认证服务器通信,发送读请求,通过身份认证后,对生成的读策略进行判断,在满足预设条件后发送密文给读用户,如果读用户特征符合读结构,则解密获得数据。

本发明相比现有技术,具有以下优点:

本发明提出了一种云数据存储方法,增强了环境和策略约束的安全读策略控制,在保证安全性的前提下,降低了写用户的计算代价,满足跨云的各种数据策略的应用需求。

附图说明

图1是根据本发明实施例的云数据存储方法的流程图。

具体实施方式

下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。

本发明的一方面提供了一种云数据存储方法。图1是根据本发明实施例的云数据存储方法流程图。

本发明在云存储平台中设置分级认证服务器,包括根认证服务器cgs、分区认证服务器rgs、子认证服务器sgs,将密钥分发、特征认证事务分级进行,由根cgs对下一级认证服务器进行签名;建立特征管理模块fmm,维护全局的用户特征列表;在云存储平台安全框架中对用户主体角色、权限文件所有者读控制以及环境和数据资源特征描述基础上,由认证服务器设定授权读取策略和约束控制策略,满足云间跨域的数据读取和用户隐私保护。

分级认证服务器包括公钥基础设施pki,同时也充当根认证服务器cgs角色。特征管理模块fmm为云环境维护全系统内的特征列表,响应认证服务器cgs对跨区域特征列表的请求。多个分级子认证服务器sgs通过对称密钥证书机制对用户进行身份认证,为写用户提供认证级别树,完成新用户的添加删除,对密文授权读取进行密文的授权读取控制。云存储系统的用户包括写用户和读用户。写用户是根据子认证服务器sgs提供的认证级别树设置读策略,加密数据后在云服务器进行存储。读用户是请求对云服务器存储数据进行读取的用户。

对于数据分发,首先写用户在通过身份认证后,向认证服务器请求数据加密上传的服务请求;然后写用户根据认证服务器所推送的特征结构列表,完成读策略的定义,并根据策略对数据加密后上传云服务器;对于数据读取,读用户与认证服务器通信,发送读请求,身份认证后,由策略点对生成的读策略进行判断,当满足预设条件后发送密文给读用户,如果读用户特征符合读结构,则解密获得数据。

对数据加密后上传云服务器,进一步包括以下文件创建过程。

(1)写用户生成随机数r1将自己的id以及所在群组id组成请求包,使用所属群组的私钥进行签名,使用写用户所在认证服务器cgs的公钥加密,发送所在云内的cgs。具体表述为:

ecgs(ecom(r1,uid,filequery),groupid)

cgs接收到请求之后,从包中获取群组标识groupid,查找获得对应群组的公钥,用群组公钥和cgs解密之后,获得随机数r1,然后从自身内部生成随机数r2,将用户的标识uid以及群组中所有id集合构造请求包,使用认证服务器cgs的私钥进行签名,用所述域内子认证服务器的公钥进行加密,传送给所述子认证服务器;具体表述为:

esgs(ecgs(r1,r2,uid,groupid)

子认证服务器sgs使用私钥对密文解密,将解密结果和随机数r1,一起构造应答包,用子认证服务器sgs私钥加密返回写用户。具体描述为:

esgs(r1,hash(uid||r2))

写用户使用sgs私钥解密,校验r1完成数据所有者的身份验证。

(2)首先根据读权限对文件分类,相同分类被划分为一个文件簇。对于单个文件加密的流程,写用户根据读取文件的特征向其所在子认证服务器sgs提出数据加密上传请求,进行安全策略检查,包括用户层次角色判断、数据分发密级所属关联许可判断,如设置的群体的特征超出范围,子认证服务器sgs向上一级认证服务器cgs转发请求,认证服务器cgs与特征管理模块fmm进行通信,获得相关联的特征列表,返回写用户特征列表;

在写用户设置读策略时:认证服务器根据云存储服务器内用户角色、权限以及文件密级,获得系统的公开参数和私钥;然后写用户指定读结构,限定用户的权限,并将许可信息以xml文件的方式进行记录;写用户设置环境与策略约束条件,生成约束控制策略;对文件采用对称加密,用生成的随机数作为对称密钥,加密数据文件形成密文;采用特征加密算法加密得到密文。将认证服务器的认证级别特征空间和写用户读策略特征空间的所有的元素映射到认证级别树之上。写用户通过生成树算法创建读策略树。

当读用户向认证服务器请求认证时,读用户构造包括uid、所属群组id的请求包,使用群组私钥签名,所述cgs公钥加密后发送到cgs。

认证服务器从加密包中获得群组id,通过查询获得对应的群组公钥和自身的私密解密,进行读取用户的身份验证,若正确合法,向认证服务器使用自身的私钥进行签名,再使用认证服务器公钥对用户id进行加密发送,对应的包为esgs(ecgs(uid))。

认证服务器认证通过后进行安全策略判断。具体过程如下:

用户向策略执行单元请求读数据的请求;策略执行单元收集用户数据读取请求和评估信息,发送给决策单元;决策单元根据约束控制文件判定系统环境是否满足读请求,若有任何一项不满足,则决策单元拒绝请求;决策单元将决策结果告知策略执行单元。

若策略执行单元收到的决策结果判断满足条件则进行解密。解密流程如下:

认证服务器首先执行私钥生成算法进行私钥生成,然后私钥和密文一起发送给用户,用户收到后解密获得明文。

①认证服务器产生私钥。针对不同用户,认证服务器通过证书机制加密产生该用户的私钥。

②读用户解密密文。当读用户读密文数据时,根据上述安全策略进行判定满足控制约束条件后,认证服务器发送用户密文和用户对应的私钥,读用户运行解密算法解密。若读节点是认证级别树内的非叶节点,则需反复执行解密函数,直至叶节点。

当进行用户删除操作时,系统向cgs发送相关请求,cgs收到请求后,会修改相关群组用户的特征id集合,并通知相应子认证服务器sgs。子认证服务器sgs收到请求后,产生新密文,重新生成对应的私钥发送给受影响的群组内其他用户,从而保证密文安全。

在另一优选实施例的读用户的身份认证中,本发明在用户端安装数字证书插件。利用数字证书和动态口令实现身份确认。

(1)初始化阶段,读用户u向策略执行单元p发送连接请求,并发送idup和inu,所述idup表示用户u在策略执行单元p中的身份标识符,inu表示用户u的安全属性信息;

策略执行单元p在收到请求后,检查信息完整性和标识符唯一性;通过检查后,策略执行单元p随机生成一个随机整数n,并将n发送给u;

读用户收到随机整数n后,将自己设定的口令pwup经过n次散列算法而得到安全凭证stup并将其发送至p:

stup=hash(pwup)n

其中口令pwup表示用户u在策略执行单元p中使用的口令,收到安全凭证stup后,存储n、stup和inu。

(2)注册阶段:读用户u向云存储平台b发送注册请求,请求包括idub和inu;所述idub表示用户u在云存储平台b中的身份标识符;

云存储平台b在收到请求后,进行一系列检查,然后向用户u发送消息mg。

收到mg后,读用户u将自己设定的口令pwub经过1次散列算法而得到安全凭证stub并将安全凭证stub发送至云存储平台b。

stub=hash(pwub)

读用户u向云存储平台b发送登录请求,云存储平台在收到请求后,根据从idub查询预留安全凭证stub并向用户发送消息mg。

(3)验证阶段

读用户u向云存储平台b发送idup,用于云存储平台b和策略执行单元p建立信任关系;

云存储平台在收到请求后,将idup转发至策略执行单元p;

策略执行单元p根据idup查询读用户u的信息,返回上一次存储的随机整数n,若为第一次验证,则返回初始化时建立的随机整数,并将n-1发送给云存储平台b,由云存储平台b转发给用户u;

用户u收到随机整数n-1,将自己的口令pwup经过n-1次散列算法而得到安全凭证stup并将其发送至云存储平台b和策略执行单元p:

stup=hash(pwup)n-1

策略执行单元p调用用户u上一次存储的安全令牌st’up,验证stup与hash(st’up)是否相等;若验证相等则建立信任关系,并发送成功消息,若验证失败则发送失败消息;

云存储平台rb和策略执行单元p之间的信任关系建立;策略执行单元p用新的安全凭证stup替换原来的安全凭证st’up,用新的随机整数n-1替换原来的随机整数n。

本发明的分级密钥分发中,每个群组对应的对称加密密钥可以被所在群组中的用户以密钥协商方式计算得到。低级别群组中用户将高级别的群组看成自己所在群组内的虚拟成员。一旦发生用户共享权限的变化,数据所有者和相应的高级别群组中用户为相关低级别群组中用户分发计算新的对称加密密钥所需要的系统公开参数。获得这些参数后,各个群组中用户得到新的对称加密密钥。

下文使用uij表示群组vi中的用户uj,并将uj的身份使用idij.表示。数据所有者随机选取主密钥,若当前vi为读路径中的根节点,则数据所有者设置vi对应的级别值di=1。节点vi对应的涉密信息为h1(ki)。其中h1为散列运算,ki为预设公开参数。若节点vi是读路径的非根节点,则存在一个从某个根节点到该节点最长路径。数据所有者将di设置为上述最长路径上的节点数目。节点vi对应的涉密信息为通过h1(h1…(h1(ki)))将h1(ki)进行di次散列运算。

如果一个用户uj要加入群组vi,该用户必须向数据所有者进行授权请求以获得群组vi对应的涉密信息,及其在系统中的授权密钥对。完成授权后,用户uj获得授权的密钥对分别为h2为另一散列运算。kij为预设公开参数。

令vi1…vin为节点vi在读路径中的全部直接前驱,一旦获得这些节点对应的公开信息以及群组vi中其他用户对应的公钥,用户uj便可计算群组vi对应的对称加密密钥ki。

令vi和vj是读路径中的两个节点,当新的群组vt加入在vi和vj之间时,如果群组vt中没有任何群组成员,则数据所有者执行如下操作以完成群组vt的加入:

1.计算vt对应的涉密信息st。接着,数据所有者计算vt对应的对称加密密钥kt和公开信息dt=di+1;

2.数据所有者更新这些群组的公开信息,并对系统进行广播。

3.收到上述广播消息后,在所涉及的群组vt,vi,vj中的各个用户重新计算所在群组对应的对称加密密钥和所有低级别群组对应的对称加密密钥。

删除一个原有群组时,系统中各个群组对应的涉密信息不进行更新。

新的用户身份idi,t+1向认证服务器请求加入群组vi时,为了得到群组vi对应的涉密信息和对称加密密钥以及授权密钥对,该用户需要先向数据所有者发送授权请求。数据所有者完成该用户的授权后,将追加到vi对应的公开信息中。然后,数据所有者对系统进行消息广播。

收到该广播消息后,群组vi中的用户uj重新计算vi对应的公开信息。

优选地,对每个群组,认证服务器为其分配两个涉密非零向量。其中一个涉密非零向量与参数矩阵中对应行的乘积为该群组对应的对称加密密钥。如果两个群组存在等级关系,则高级别群组通过向量乘法直接计算低级别群组对应的对称加密密钥。具体的处理流程为:

数据所有者首先与认证服务器进行交互,并获得系统公开参数。然后,数据所有者生成一个有限域和一个随机函数f。接着,数据所有者初始化群组的等级结构,并为各个群组生成并分配两个二维涉密非零向量(yi,zi)。最后,通过随机函数f对涉密非零向量的作用,数据所有者计算出系统公开参数中的参数矩阵。每个群组的涉密非零向量zi与所对应的公开向量的内积是其对应的对称加密密钥kij。如果两个群组vi和vj不具有等级关系,则与它们各自关联的向量内积为零。如果具有等级关系,则高级别群组的涉密非零向量与低级别群组的公开向量的内积对应一个间接密钥。再通过进一步计算,高级别群组中的用户可获得低级别群组对应的对称加密密钥。

所述参数矩阵通过以下过程得到:

数据所有者为群组vi随机选择非零向量yi=(yi,1,yi,2)和zi=(zi,1,zi,2),作为涉密信息。将所有涉密非零向量yi通过随机函数f映射到一个新的向量wi。

数据所有者将zi转换到一个n维向量xi。对i=1,2,令xi,1=zi,1、xi,2=zi,2、对i=3…n,xi,1=zi,1、xi,2=zi,i而对j≠1,i均有xi,j=0;得到n维向量的集合x1=(x1,1,x1,2,0,…,0);x2=(x2,1,x2,2,0,…,0);xn=(xn,1,0,…,0,xn,n);

计算矩阵

测试x1,x2…xn是否线性相关。如果线性相关,则重新选择z1,z2…zn。否则为每个类选取一个对称加密密钥并计算参数矩阵a。即对每个群组vi,数据所有者随机选取它的对称加密密钥ki,j;

定义kj=(kj,1,kj,2,…kj,n)和k=[k1,…,kn]t,则x×a=k;

求解上述步骤中的方程组,得到a=x-1×k;

数据所有者通过安全信道将((yi,zi),ki,j)发送给群组vi中的各个用户,并将f以及a发送给云服务提供商。

综上所述,本发明提出了一种云数据存储方法,增强了环境和策略约束的安全读策略控制,在保证安全性的前提下,降低了写用户的计算代价,满足跨云、跨等级的各种数据策略的应用需求。

显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1