一种实现安全云计算的方法和系统转让专利

申请号 : CN201410424928.2

文献号 : CN104184736B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈祖斌谢铭胡继军翁小云袁勇邓戈锋莫英红谢菁张鹏黄连月林孔升郑俊明陈剑皓陈勇铭唐玲丽

申请人 : 广西电网有限责任公司

摘要 :

本发明提供了一种实现安全云计算的方法和系统,该方法包括:客户端配置用户属性;生成权限控制树,控制用户角色的权限;用户登录PaaS平台服务器,将客户端的用户属性和权限控制树提交给PaaS平台服务器;当用户请求访问PaaS平台服务器时,服务器验证用户身份,根据验证结果控制用户对PaaS平台服务器的访问。本发明给出了在PaaS平台中部署属性加密的方法,防止PaaS服务器端的数据库被恶意窃取,有效提高企业用户数据的安全性。

权利要求 :

1.一种实现安全云计算的方法,用于根据客户端用户属性来控制用户对平台即服务也就是PaaS平台的访问,包括:步骤一,客户端配置用户属性;

步骤二,生成权限控制树,控制用户角色的权限;

步骤三,用户登录PaaS平台服务器,将客户端的用户属性和权限控制树提交给PaaS平台服务器;

步骤四,当用户请求访问PaaS平台服务器时,服务器验证用户身份,根据验证结果控制用户对PaaS平台服务器的访问;

其特征在于:所述用户属性由客户端配置和存储,用户不能随意更改用户属性;

一个平台可拥有多个用户,每个用户可以有多个角色,每个角色对应一个属性集,平台内部维护用于记录用户与角色以及角色与属性集的对应关系的表格;

用户以特定的角色登录PaaS平台并传入属性集后,PaaS服务根据用户所属平台访问特定平台数据,并根据用户属性生成的私钥,在该平台数据中确定访问权限;

所述权限控制树用于对用户数据的加密,并在解密时判断解密者是否有权解密,平台内每个角色具有不同的权限控制树,当以不同角色登录的平台用户在存储PaaS服务器的数据时,将采用相应的权限控制树对数据进行加密;

若角色r具有权限控制树T,而r’拥有属性集S’,只有当S’满足权限控制树T时,角色r’才能访问r保存的数据,用户的权限控制树存储在客户端,用户不能随意更改,由平台管理者配置和管理;

权限控制树在用户登录之后发送给PaaS服务器,PaaS服务器根据用户的平台属性组建完整的权限控制树,在加密过程中将用权限控制树进行加密,防止密文被其他平台具有相同属性的用户解密;

所述步骤四进一步包括,在PaaS服务器验证用户身份之后,生成公共参数以及主私钥;

所述公共参数和主私钥通过以下过程来生成:

生成双线性参数g,G0,G1,e,Zp,其中G0和G1是两个阶为大素数p的乘法循环群,g为群G0的生成元,e:G0×G0→G1是一个可有效计算的双线性映射,Zp是对p取模得到的集合,包含所有小于p且与p互素的正整数;对于所有用户属性生成一个属性集合U={a1,a2,…an},对每一个属性ai(i∈n),随机选择ti∈Zp;然后随机选择α∈Zp,并在Zp中随机选择u1,…,u2m,对每一个i∈{1,…,2m},设定Ui=gui;生成公开参数PK:g,T1=gt1,…Tn=gtn,Y=e(g,g)α,U1,…,U2m生成主密钥MK:α,ti(1≤i≤n),ui(1≤i≤2m)。

2.根据权利要求1所述的方法,其特征在于,所述服务器验证用户身份,进一步包括,当用户请求写入数据时,PaaS平台服务根据公开参数以及权限控制树,对用户提交的数据进行加密并存储;

当用户请求读取数据时,PaaS平台服务首先根据主密钥MK以及属性集S产生私钥,利用该私钥对需要访问的加密数据进行解密,若解密成功,则该用户具有访问权限,否则拒绝访问。

3.根据权利要求2所述的方法,其特征在于,所述根据主密钥MK和属性集S产生私钥,包括以下过程:为每一个属性选择一个随机数rj,选择随机数r'∈Zp;对每一个i∈n,随机设置wi∈Zp,令 设定 令D=gα-r;生成用户私钥如下:并且,在所述解密过程中,输入公共参数PK,密文CT以及私钥SK,当且仅当S满足访问策略A时,由属性集S产生的私钥SK来解密CT,返回明文消息M。

4.一种实现安全云计算的系统,用于根据客户端用户属性来控制用户对PaaS平台的访问,采取如权利要求1所述的实现安全云计算的方法来实现,其特征在于,包括:用户属性配置模块,用于配置客户端的用户属性;

角色权限控制模块,用于生成权限控制树,控制用户角色的权限;

提交模块,用于在用户登录PaaS平台服务器时,将客户端的用户属性和权限控制树提交给PaaS平台服务器;

访问控制模块,用于当用户请求访问PaaS平台服务器时,验证用户身份,根据验证结果控制用户对PaaS平台服务器的访问。

说明书 :

一种实现安全云计算的方法和系统

技术领域

[0001] 本发明涉及云计算技术,特别涉及一种实现安全云计算的方法和系统。

背景技术

[0002] 云计算具有超大规模、虚拟化、可靠安全等独特功效。对于网络运营商而言,可以使得运营成本和操作维护成本大大下降,达到节能减排的目的。在云计算环境下,一切资源都是可以运营的,都可以作为服务提供,包括应用程序、软件、平台、处理能力、存储、网络、计算资源以及其他基础设施等。
[0003] 其中,PaaS平台作为高度开放,多应用的一个云计算平台,上面集成了大量的应用系统,被亿万用户所使用,所以必须具有高度的安全和稳定性来做支撑。PaaS平台运营商目前尚无法向最终用户保证用户的敏感数据不会丢失和外泄。在这种情况下,一些用户担心他们的重要数据会被恶意出卖以获取非法利益。已有技术在网络通信和客户端方面进行安全防护以防止数据外泄。然而,如果PaaS服务器端的数据库被恶意窃取,影响将会更为严重。
[0004] 因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。

发明内容

[0005] 为解决上述现有技术所存在的问题,本发明提出了一种实现安全云计算的方法,用于根据客户端用户属性来控制用户对PaaS平台的访问,包括:
[0006] 步骤一,客户端配置用户属性;
[0007] 步骤二,生成权限控制树,控制用户角色的权限;
[0008] 步骤三,用户登录PaaS平台服务器,将客户端的用户属性和权限控制树提交给PaaS平台服务器;
[0009] 步骤四,当用户请求访问PaaS平台服务器时,服务器验证用户身份,根据验证结果控制用户对PaaS平台服务器的访问。
[0010] 优选地,所述用户属性由客户端配置和存储,用户不能随意更改用户属性;
[0011] 一个平台可拥有多个用户,每个用户可以有多个角色,每个角色对应一个属性集,平台内部维护用于记录用户与角色以及角色与属性集的对应关系的表格;
[0012] 用户以特定的角色登录PaaS平台并传入属性集后,PaaS服务根据用户所属平台访问特定平台数据,并根据用户属性生成的私钥,在该平台数据中确定访问权限。
[0013] 优选地,所述权限控制树用于对用户数据的加密,并在解密时判断解密者是否有权解密,平台内每个角色具有不同的权限控制树,当以不同角色登录的平台用户在存储PaaS服务器的数据时,将采用相应的权限控制树对数据进行加密;
[0014] 若角色r具有权限控制树T,而r’拥有属性集S’,只有当S’满足权限控制树T时,角色r’才能访问r保存的数据,用户的权限控制树存储在客户端,用户不能随意更改,由平台管理者配置和管理。
[0015] 权限控制树在用户登录之后发送给PaaS服务器,PaaS服务器根据用户的平台属性组建完整的权限控制树,在加密过程中将用权限控制树进行加密,防止密文被其他平台具有相同属性的用户解密。
[0016] 优选地,所述步骤四进一步包括,在PaaS服务器验证用户身份之后,生成公共参数以及主私钥。
[0017] 优选地,所述公共参数和主私钥通过以下过程来生成:
[0018] 生成双线性参数g,G0,G1,e,Zp,其中G0和G1是两个阶为大素数p的乘法循环群,g为群G0的生成元,e:G0×G0→G1是一个可有效计算的双线性映射,Zp是对p取模得到的集合,包含所有小于p且与p互素的正整数;对于所有用户属性生成一个属性集合U={a1,a2,…an},对每一个属性ai(i∈n),随机选择ti∈Zp;然后随机选择α∈Zp,并在Zp中随机选择u1,…,u2m,对每一个i∈{1,…,2m},设定Ui=gui;生成公开参数PK:
[0019] g,T1=gt1,…Tn=gtn,Y=e(g,g)α,U1,…,U2m
[0020] 生成主密钥MK:α,ti(1≤i≤n),ui(1≤i≤2m);
[0021] 优选地,所述服务器验证用户身份,进一步包括,
[0022] 当用户请求写入数据时,PaaS平台服务根据公开参数以及权限控制树,对用户提交的数据进行加密并存储;
[0023] 当用户请求读取数据时,PaaS平台服务首先根据主密钥MK以及属性集S产生私钥,利用该私钥对需要访问的加密数据进行解密,若解密成功,则该用户具有访问权限,否则拒绝访问。
[0024] 优选地,所述根据主密钥MK和属性集S产生私钥,包括以下过程:
[0025] 为每一个属性选择一个随机数rj,选择随机数r'∈Zp;对每一个i∈n,随机设置wi∈Zp,令 设定 令D=gα-r;生成用户私钥如下:
[0026]
[0027] 并且,在所述解密过程中,输入公共参数PK,密文CT以及私钥SK,当且仅当S满足访问策略A时,由属性集S产生的私钥SK来解密CT,返回明文消息M。
[0028] 根据本发明的另一方面,提供了一种实现安全云计算的系统,用于根据客户端用户属性来控制用户对PaaS平台的访问,包括:
[0029] 用户属性配置模块,用于配置客户端的用户属性;
[0030] 角色权限控制模块,用于生成权限控制树,控制用户角色的权限;
[0031] 提交模块,用于在用户登录PaaS平台服务器时,将客户端的用户属性和权限控制树提交给PaaS平台服务器;
[0032] 访问控制模块,用于当用户请求访问PaaS平台服务器时,验证用户身份,根据验证结果控制用户对PaaS平台服务器的访问。
[0033] 本发明相比现有技术,具有以下优点:
[0034] 本发明给出了在PaaS平台中部署属性加密的方法,防止PaaS服务器端的数据库被恶意窃取,有效提高企业用户数据的安全性。

附图说明

[0035] 图1是根据本发明实施例的实现安全云计算的方法的流程图。

具体实施方式

[0036] 下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
[0037] 本发明的一方面提供了一种实现安全云计算的方法和系统。图1是根据本发明实施例的实现安全云计算的方法和系统流程图。云计算框架根据PaaS平台的特性分为客户端、PaaS服务器以及数据平台三部分。客户端通过Web访问PaaS服务,数据平台可以是PaaS提供商内部构建,也可以是第三方数据中心。
[0038] 在PaaS平台中,方案对数据进行安全保护主要涉及用户属性和权限控制树的存储以及相关算法的部署。以下实施例具体说明实现安全云计算的方法。如图1所示,实施本发明的具体步骤如下:
[0039] 1,客户端配置用户属性。
[0040] 客户端通过用户属性集S来产生解密密钥,因此S等同于私钥。在本发明中,用户属性由用户端配置和存储,并在登录PaaS平台后提交给PaaS服务平台,生成代表用户的私钥。尽管位于用户端,但用户不能随意更改用户属性。
[0041] 下面是有关用户属性配置的一个示例。一个平台可拥有多个用户,每个用户可以有多个角色,每个角色r对应一个属性集Sr。平台内部需要维护相关表格,用于记录用户与角色以及角色与属性集的对应关系。
[0042] 用户以特定的角色r登录PaaS平台并传入属性集Sr后,PaaS服务根据用户所属平台访问特定平台数据,并根据用户属性Sr生成的私钥,在该平台数据中确定访问权限。
[0043] 为了防止用户属性在客户端被随意修改后,对其他平台的数据产生非法访问,本发明在利用权限控制树对用户数据加密时,在权限控制树中加入平台属性,以此完全区分不同平台的数据。
[0044] 2,利用权限控制树控制用户角色的权限。
[0045] 权限控制树用于对用户数据的加密,并在解密时判断解密者是否有权解密。与用户属性类似,平台内每个角色具有不同的权限控制树。因此,当以不同角色登录的平台用户在存储PaaS数据时,将采用相应的权限控制树对数据进行加密。
[0046] 由角色r存储的数据,在保存到PaaS服务器并加密时,就决定了该平台的哪些角色r’能解密数据并访问。假设r具有权限控制树T,而r’拥有属性集S’,只有当S’满足权限控制树T时,角色r’才能访问r保存的数据。
[0047] 与用户属性一样,用户的权限控制树存储在客户端,用户个人不能随意更改,由平台管理者配置和管理。
[0048] 用户的权限控制树T在用户登录之后发送给PaaS服务器,PaaS服务器根据用户的平台属性组建完整的权限控制树Tc,在随后的加密算法中,将用Tc作为权限控制树进行加密,这样,密文将无法被其他平台具有相同属性的用户解密。
[0049] 3,将客户端的用户属性和权限控制树提交给PaaS平台。
[0050] 如上所述,表示用户特征的属性以及控制存取的权限控制树存储在客户端,这些信息由平台管理者统一配置。PaaS服务平台提供浏览器插件,在用户登录时获取用户属性以及权限控制树,并提交PaaS服务器。比如,当平台e的用户u登录时,将其角色r对应的属性集Sr以及权限控制树Tr随登录信息一并发送给PaaS服务器。
[0051] 4,PaaS服务器随后验证用户身份,生成公共参数PK以及主私钥MK。
[0052] 优选地,公共参数和主私钥通过以下加密过程来生成:
[0053] 系统生成双线性参数g,G0,G1,e,Zp,其中G0和G1是两个阶为大素数p的乘法循环群,g为群G0的生成元,e:G0×G0→G1是一个可有效计算的双线性映射,Zp是对p取模得到的集合,包含所有小于p且与p互素的正整数;对于所有用户属性生成一个属性集合U={a1,a2,…an},对每一个属性ai(i∈n),随机选择ti∈Zp;然后随机选择α∈Zp,并在Zp中随机选择u1,…,u2m,对每一个i∈{1,…,2m},设定Ui=gui;生成的公开参数PK如下:
[0054] g,T1=gt1,…Tn=gtn,Y=e(g,g)α,U1,…,U2m
[0055] 生成主密钥MK如下:α,ti(1≤i≤n),ui(1≤i≤2m);
[0056] 5,当用户请求写入数据时,PaaS平台服务根据公开参数PK以及权限控制树Tr,对用户提交的数据进行加密并存储;
[0057] 6,当用户请求读取数据时,PaaS平台服务首先根据主密钥MK以及属性集S产生私钥。利用私钥对需要访问的加密数据进行解密。
[0058] 属性集S产生私钥的具体过程优选地为以下过程:
[0059] 为每一个属性选择一个随机数rj,选择随机数r'∈Zp;对每一个i∈n,随机设置wi∈Zp,令 设定 令D=gα-r;生成用户私钥如下:
[0060]
[0061] 在解密过程中,输入公共参数PK,密文CT以及私钥SK,当且仅当S满足访问策略A时,由属性集S产生的私钥SK能解密CT,返回明文消息M。若解密成功,则说明该用户具有访问权限,否则拒绝访问。
[0062] 用户登录成功是用户访问PaaS服务的前提,之后用户可以读取或者存储数据。其中在用户一次登录过程中,只要执行一次,以获取私钥,之后该用户读取数据需要解密时,可一直使用该私钥。
[0063] 由此可见,当攻击者控制了PaaS服务器,并假设攻击者能获取PaaS用户登录信息,他仍然无法获取位于客户端的用户属性以及访问树,从而无法通过PaaS服务器解密用户数据。因此,在本框架中,采用加密算法在PaaS平台执行,而用户属性和访问树存放在企业客户端的部署,使得PaaS服务器在被攻击情况下,仍保证用户数据不外泄。
[0064] 根据本发明的另一方面,提供了一种实现安全云计算的系统,用于根据客户端用户属性来控制用户对PaaS平台的访问,包括:
[0065] 用户属性配置模块,用于配置客户端的用户属性;
[0066] 角色权限控制模块,用于生成权限控制树,控制用户角色的权限;
[0067] 提交模块,用于在用户登录PaaS平台服务器时,将客户端的用户属性和权限控制树提交给PaaS平台服务器;
[0068] 访问控制模块,用于当用户请求访问PaaS平台服务器时,验证用户身份,根据验证结果控制用户对PaaS平台服务器的访问。
[0069] 综上所述,本发明提出了一种实现安全云计算的方法和系统,在PaaS平台中部署基于用户属性来加密,防止PaaS服务器端的数据库被恶意窃取,使得PaaS服务器在被攻击情况下,仍保证用户数据不被外泄,有效提高企业用户数据的安全性。
[0070] 显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
[0071] 应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。