云计算分布式检索引擎的控制方法与流程

文档序号:14403150阅读:157来源:国知局

本发明涉及云计算,特别涉及一种云计算分布式检索引擎的控制方法。



背景技术:

云计算是一种有效利用计算资源为客户提供各种数据服务的计算模式。saas将大量的计算资源、存储资源和软件资源链接在一起,运用虚拟技术,为客户提供可定制的计算、存储和应用服务,避免客户自身繁重的基础设施的构建和维护。然而,集中管理的saas云平台将成为攻击的重点目标,其安全性面临着比以往更为严峻的考验,云计算的数据资源访问控制是云计算安全问题的核心,访问控制是实现云平台安全数据资源机密性和进行隐私保护的重要手段。在基于saas的云平台中,基于客户密钥进行数据储存和传输,是整个安全防护系统的基础保障。然而已有方案存在很多问题,包括加密方案在云存储环境下普通客户加解密计算开销大,访问控制灵活性差,分布式存储节点管理复杂等。



技术实现要素:

为解决上述现有技术所存在的问题,本发明提出了一种云计算分布式检索引擎的控制方法,包括:

对客户需要上传到saas云平台的数据划分成多个独立的数据表;

对所述独立的数据表按照预定义的排序规则进行排序;

saas云平台接收到加密数据后,对该数据进行完整性校验后保存在存储节点中。

优选地,所述saas云平台接收加密数据之前,进一步包括:

将每个数据表中的首个数据单元按序提取出来,与所述排序规则一起保存作为数据块,并采用客户定义的加密算法对数据块进行加密;

将加密后的需存储到分布式存储节点中的数据通过网络传输到云端。

优选地,所述独立的数据表表示数据表中的两两数据单元之间不存在任何关联。

优选地,所述saas云平台设置访问规则优化单元,用于基于资源划分的访问规则优化方法生成系统的访问规则集,包括:

(1)基于数据提炼处理后的独立数据表,构建层次化结构,所述层次化结构为三层,其包括调度层、逻辑层和数据库层,所述调度层为与数据调度服务相关的根节点,所述逻辑层为访问规则集中关联的数据,所述数据库层包含所有独立的数据表中的字段;

(2)基于访问控制标记语言,制定针对不同安全等级的数据的访问规则集,将访问规则集中与数据关联的规则映射到所述独立的数据表上,从而将访问规则集中的规则细化到数据维度;

(3)在每个所述独立的数据表上进行规则优化,删除分配在每个数据处理单元上的规则的冲突和冗余;

(4)合并优化后的规则,生成优化的访问规则集。

优选地,所述对将要存储到分布式存储节点中的数据通过网络传输到云端进行加密和解密,进一步包括:

在saas和客户端的第三方设置安全代理,所述安全代理为客户和属性分发单元分别分配客户标识和属性分发单元标识;

为数据宿主和信任客户生成身份密钥对,当客户和数据宿主首次检索数据或首次上传数据时,在属性分发单元注册获得相应的访问权限,根据客户标识分配相应属性集,调用密钥生成函数来生成秘密密钥并通过安全信道分配。

优选地,构建加密的关键词索引,获取已经从文本数据中提取的关键词数据,数据宿主将加密的关键词和客户标识发送给安全代理;安全代理根据客户标识查询到数据宿主相应的密文,发送给数据宿主;

当收到客户的数据请求时,利用二次加密密钥将身份密钥计算为指定客户可解密的密文,其中所述二次加密密钥由数据宿主用自身的私钥和客户公钥计算生成;

数据宿主为关键词集使用安全的对称密钥算法生成的加密索引;

客户在检索包含关键词的数据文件时,首先要在安全代理的协助之下生成辅助密钥;当安全代理收到辅助密钥生成请求后,返回检索辅助密钥给客户;

当客户接收到检索辅助密钥之后,发送加密的检索请求给安全控制单元;当安全控制单元接收到检索请求之后,通过以下的检索算法开始检索:

对于每一个文件的加密索引,比较使用检索辅助密钥加密的随机数和分解后的索引中相应部分是否相同,如果相同,则将其加入到结果集中;安全控制单元发送密文给客户;客户调用基于属性的解密算法解密,发送解密后的结果给宿主;如果分布式存储节点确信其拥有来自属性分发单元指派的属性集,依据客户拥有的属性集,进一步过滤检索结果列表,将客户无权访问的文件过滤掉,最后将过滤后的结果返回给客户。

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

1、基于密钥构建和加密、解密技术,实现了云平台数据资源的快速安全访问,增加了系统的可信性;2、便于数据资源的管理和索引;有效减轻管理者与客户加密、解密的计算开销;3、允许管理者可定义自己的访问规则集,对于客户及其属性变更都能够灵活且细粒度地支持;4、实现数据统一管理,采用索引和检索引擎结合的检索,能够快速、准确、低成本的获取数据;5、对需要存储的数据进行划分和数据提炼,再进行安全规则集的规则细化,消除冲突和冗余;有效防止恶意客户非法窃取、篡改隐私数据,提高了数据存储的安全性能。

附图说明

图1是根据本发明实施例的云计算分布式检索引擎的控制方法的流程图。

具体实施方式

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

本发明的一方面提供了一种云计算分布式检索引擎的控制方法。图1是根据本发明实施例的云计算分布式检索引擎的控制方法流程图。基于saas的安全存储检索系统包括分布式存储节点、云平台安全控制单元、数据处理单元、密钥管理单元、加解密单元和客户展现单元:

分布式存储节点用于为saas客户提供数据存储服务,通过云端存储对数据进行保护,确保数据不会被随意获取,包括用于存储数据的云存储服务器集群和用于控制客户访问的数据管理中心;所述云平台安全控制单元对云平台安全进行管理,包括信任评价子单元和信任控制子单元:

所述信任评价子单元对平台安全性进行预测,具体为:

1)定义数据的信任状态值r:

r=p×z×w

式中,p为数据受到攻击的概率,z为数据的等级,w为数据受到篡改产生的严重度;

2)设数据i的信任状态值时间序列为mi={xi(1),xi(2),…,xi(n)},xi(t)表示数据i在时刻t的状态值,n为设定的总时间,t=1,2,…,n;

3)信任状态从数据i传送到数据j的传送时间用τ表示,序列mi与mj在时间τ下的时间测度值为λij(τ):

在确定τ、的情况下计算出时间测度值,时间测度值反映信任状态值在数据之间传送情况,完成安全性预测;

所述信任控制子单元对信任进行分等级管理,信任状态值根据梯度阈值划分为不同的信任等级,对应采取不同的安全规则集对信任进行管理;

所述密钥管理单元,用于在安全saas平台环境下,生成系统初始的公开参数和主密钥,当接收到saas客户发出的请求时,其为加解密单元分发系统公开参数,且为每个saas客户生成对应的私钥,并在分布式存储节点的请求下参与分布式存储节点与客户展现单元接入的saas客户之间的共有密钥的协商;所述密钥管理单元实现密钥初始化和密钥构建:

1)在初始化过程中,生成系统初始的公开参数pm和主密钥sk,具体为:

pm={a,b=sα,e(s,s)β}

sk={α,sβ}

其中,α,β是两个随机数且α,β∈zp,zp为模p的整数群;s为p阶的双线性群g1的生成元;

2)密钥构建过程包括构建客户私钥和共有密钥,首先为saas客户生成对应的私钥pg:

其中,s为客户属性的集合,为每个客户随机选择r∈zp,为每个属性选择ri∈zp

在构建共有密钥中,采用公钥加密体制及密钥协商协议生成分布式存储节点和saas客户间的共有密钥,具体为:分布式存储节点将节点id及saas客户id发送给加解密单元,加解密单元向分布式存储节点发送一个公钥令牌a,进而分布式存储节点为saas客户生成一个会话密钥,并用自身的私钥和公钥加密后,连同与私钥对应的公钥令牌b及与公钥对应的公钥令牌a共同发送给saas客户,所述私钥和公钥利用系统公开参数生成;

所述加解密单元,对客户使用的客户端的明文进行二次加密,得到二次加密密文,并对二次加密密文进行封装后存储到所述分布式存储节点;在解密时将分布式存储节点上的封装好的二次加密密文解密得到明文数据,包括:

在saas客户访问所述封装好的二次加密密文c″时,对二次加密密文c″进行解密得到客户群属性密钥c′,对密钥c′进行解密,解密时由分布式存储节点返回所述封装的二次加密密文及其对应的消息首部,利用共有密钥kgs解密得到客户群属性密钥

所述客户展现单元,实现saas客户向分布式存储节点发送访问请求以及读取分布式存储节点上的密文,若saas客户拥有的所有属性满足封装好的二次加密密文对应的访问规则集时,通过加解密单元解密得到明文数据;若saas客户拥有的属性不满足访问规则集,则需要客户进行身份验证;若saas客户的所有属性和身份验证均无效,则禁止请求访问。

其中,所述加解密单元包括:对需要存储的明文采用由管理者选取的对称密钥k进行加密,得到密文c:采用由管理者定义的访问规则集对对称密钥k进行加密,得到密钥c′:

其中,t表示所述访问规则集,任意选取q∈zp且q=px(0),x表示所有访问规则集的所有子节点的集合;是预设的一个公开散列函数;

对所述密钥c′进行加密,加密时所述分布式存储节点为每一个客户群属性gi随机选择一个客户群属性密钥为每一个客户群属性gi建立二次加密密文c″,并利用所述共有密钥来加密客户群属性密钥进而得到对应于二次加密密文c″的一个消息首部h’:

式中,kgs表示共有密钥。

所述数据处理单元对云平台安全数据资源进行分类管理,在云平台安全控制单元对数据进行分等级管理的前提下,对于每一信任等级的数据,采用聚类算法对其进行分类,并建立索引实行分类管理;客户使用加密的检索词发起检索请求,由安全代理协助生成辅助密钥,再通过与安全控制单元交互,获得过滤后的客户有权访问的加密文件,最后由安全代理部分解密加密数据文件返回给客户最终解密,获得明文数据。具体包括:

(1)对数据格式进行转换,建立适用于非关系数据库进行存储的格式;(2)将数据分为通用数据和行业数据,采用分类规则对数据进行存储;所述规则集包括:对于高于预设访问频率的通用数据采用集中式存储,由数据管理中心统一维护,对于低于预设访问频率的行业数据采用分布式存储,由各行业数据中心分别维护;(3)建立与存储结构相适配的数据检索算法,即采用索引检索和引擎爬取相结合的方式:首先建立数据索引,根据索引对数据进行初步检索;在检索引擎输入词,对数据进行精确检索;引擎爬取按照一定的爬虫策略寻找匹配的数据,并根据数据与词的匹配程度进行排序反馈给客户。

所述数据处理单元还包括数据划分单元、数据提炼单元和访问规则优化单元,所述数据划分单元用于对客户需要上传的数据划分成多个独立的数据表;所述数据提炼单元对所述独立的数据表按照预定义的排序规则进行排序,将每个数据表中的首个数据单元按序提取出来,与所述排序规则一起保存作为数据块,并采用客户定义的加密算法对数据块进行加密;将通过所述加解密单元加密后的需存储到分布式存储节点中的数据通过网络传输到云端;当saas云平台接收到数据后,对该数据进行完整性校验后保存在存储节点中,上述独立数据表表示数据表中的两两数据单元之间不存在任何关联;所述访问规则优化单元用于基于资源划分的访问规则优化方法生成系统的访问规则集,包括:

(1)基于数据提炼处理后的独立数据表,构建层次化结构,所述层次化结构为三层,其包括调度层、逻辑层和数据库层,所述调度层为与数据调度服务相关的根节点,所述逻辑层为访问规则集中关联的数据,所述数据库层包含所有独立的数据表中的字段;

(2)基于访问控制标记语言,制定针对不同安全等级的数据的访问规则集,将访问规则集中与数据关联的规则映射到所述独立的数据表上,从而将访问规则集中的规则细化到数据维度;

(3)在每个所述独立的数据表上进行规则优化,删除分配在每个数据处理单元上的规则的冲突和冗余;

(4)合并优化后的规则,生成优化的访问规则集。

优选的,所述加解密单元在对将要存储到分布式存储节点中的数据通过网络传输到云端进行加密和解密时,进一步包括:

(1)在saas和客户端的第三方设置安全代理,所述安全代理为客户和属性分发单元分别分配客户标识uid和属性分发单元标识did,包括:

初始化阶段,安全代理设定系统参数;对于每个信任客户,安全代理分配uid并为其生成令牌:

为数据宿主和信任客户生成身份密钥对,当客户和数据宿主首次检索数据或首次上传数据时,在属性分发单元注册获得相应的访问权限,根据客户的uid分配相应属性集s,调用密钥生成函数来生成秘密密钥sk并通过安全信道分配;

同时,公布信任客户id验证参数其中,cu∈zp,zp仍为模p的整数群;s仍为p阶的双线性群g1的生成元。

(2)生成客户身份的加解密密钥、属性加解密密钥以及二次加密密钥,其中所述客户身份的加解密密钥包括uid公钥gkuid和uid私钥ckuid,所述属性加解密密钥包括属性did的公钥gkdid和私钥ckdid:

ckuid=(ηdid,bdid)

其中,adid为单个属性分发单元能够分配的所有属性,gkx为属性x的公钥,vx为属性x的版本号,ηdid为属性分发单元的私钥参数,bdid为属性更新参数,ω为属性分发单元随机选择的参数,ω,ηdid,bdid∈zp

(3)加解密单元利用数据密钥对需存储到分布式存储节点中的数据加密,得到密文ct,然后分别利用uid公钥和did公钥对数据密钥加密,生成身份密钥ctu和属性密钥ctd,包括:

a、随机生成两个固定长度的字符串ik,ak,合并生成数据密钥dk:

dk=ik||ak

b、利用数据密钥dk对需存储到分布式存储节点中的数据加密,得到密文ct后,利用did公钥对ak加密,生成属性密钥ctd,利用uid公钥对ik加密,生成身份密钥ctu;

发送(uid,ctu,sk)给客户和数据宿主,同时发送(uid,gkuid)给安全代理,使安全代理协助数据宿主生成加密索引,协助客户生成检索辅助密钥。

构建加密的关键词索引。获取已经从文本数据中提取的关键词数据,记为w={w1,w2,…,wn};对于每一个关键词wi∈w,数据宿主计算qi=h(wi)ri,其中,h是将关键词映射到g1中的随机数的散列函数,ri∈zp是一个随机数。然后数据宿主将(q1,q2,…,qn)和uid发送给安全代理。安全代理根据uid查询到数据宿主相应的gkuid,接着对于每一个qi,计算mi=e(qi,gkuid)。安全代理发送{mi,1≤i≤n}给数据宿主。

(4)当收到客户的数据请求时,利用二次加密密钥将身份密钥ctu计算为指定客户可解密的密文,其中所述二次加密密钥由数据宿主用自身的私钥和uid公钥计算生成;

接着数据宿主对于每一个关键词wi,计算iwi=[h(uid/ri)]sk,[]sk表示随机数使用安全的对称密钥算法,密钥为sk加密。最终,数据宿主为关键词集w生成的加密索引记为iw=[iw1,iw2,…,iwn]。

检索阶段包含以下2个过程。①客户要想检索关键词为w的数据文件,首先要在安全代理的协助之下生成辅助密钥。客户计算然后发送他的身份uid和给安全代理。当安全代理收到辅助密钥生成请求后,通过查询获得客户相应的gkuid。然后,返回检索辅助密钥给客户。②当客户接收到检索辅助密钥之后,发送给安全控制单元。当安全控制单元接收到检索请求之后,通过以下的检索算法开始检索:

对于每一个文件的加密索引,比较使用检索辅助密钥加密的随机数和分解后的索引中相应部分是否相同,如果相同,则将其加入到结果集中。安全控制单元随机选择pg∈zp’调用属性加密过程来加密pg,发送密文给客户。客户调用基于属性的解密算法解密,发送解密后的结果p’g给宿主。如果解密后的结果等于p’g,分布式存储节点可以确信其拥有来自属性分发单元指派的属性集。依据客户拥有的属性集,进一步过滤检索结果列表,将客户无权访问的文件过滤掉,最后将过滤后的结果返回给客户,只有当前客户有权访问的数据才会返回。

(5)客户收到数据后进行数据解密时,分别利用uid私钥ckuid和did私钥ckdid解密身份密钥ctu和属性密钥cta,然后重构数据密钥,解密密文ct;

(6)进行属性和身份密钥的更新。

优选地,本发明的检索方案是建立在通过基于位置的hash函数构建的安全索引的基础上,将目标映射到几个区间中,将相似的目标分到同一个区间。其中安全索引是按照以下过程构建:

1.通过特征提取,将关键词表映射到其特征值集合。

2.一旦特征值被提取,需要将特征值转换成特征向量以应用基于位置的hash,即将特征值映射到向量集合。

3.区间索引构造:在第二步中的向量上应用基于位置的hash算法,根据检索需求,从函数库中构造一个基于位置的函数。用复合散列函数将每个特征向量映射到多个区间中。如果gi(fj)是散列函数gi关于特征值fj的输出;那么gi(fj)是索引的一个区间首地址,包含特征值fj的数据项都在这个区间内。假设每个数据项被分配一个从1到n的地址,n为所有存储节点所存储的全部数据项数量。设id(dη)是数据dη的地址,bk是一个区间首地址,vbk是bk的位向量。那么,当且仅当gi(fj)=bk时,有vbk[id(dη)]=1;否则,vbk[id(dη)]=0。这里的fj∈dη。

4.通过将区间首地址和内容的加密将基于位置的hash函数索引转换成安全的索引。一旦加密后,在索引中加入一些虚拟记录以隐藏数据中索引的数量。

综上所述,本发明提出了一种云计算分布式检索引擎的控制方法,实现了云平台数据资源的快速安全访问,增加了系统的可信性;减轻管理者与客户加密、解密的计算开销,提高了数据存储的安全性能。

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

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

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