CN103095847B - 一种云存储系统安全保障方法及其系统 - Google Patents

一种云存储系统安全保障方法及其系统 Download PDF

Info

Publication number
CN103095847B
CN103095847B CN201310044213.XA CN201310044213A CN103095847B CN 103095847 B CN103095847 B CN 103095847B CN 201310044213 A CN201310044213 A CN 201310044213A CN 103095847 B CN103095847 B CN 103095847B
Authority
CN
China
Prior art keywords
file
request
evidence
user
cryptographic hash
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310044213.XA
Other languages
English (en)
Other versions
CN103095847A (zh
Inventor
李春花
周可
刘相文
魏荣磊
吴泽邦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201310044213.XA priority Critical patent/CN103095847B/zh
Publication of CN103095847A publication Critical patent/CN103095847A/zh
Application granted granted Critical
Publication of CN103095847B publication Critical patent/CN103095847B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

一种云存储系统安全保障方法及其系统,属于计算机存储和信息安全技术领域,解决现有云存储系统存在的缺少安全保障的问题。本发明的云存储系统安全保障方法包括客户端进程、存储端进程、审计端进程和安全管理端进程;本发明的云存储系统安全保障系统,包括客户端模块、存储端模块、审计端模块和安全管理端模块。本发明采用证据方式和基于属性加密的访问控制机制,实现了高效、可扩展的访问控制,解决了云存储的海量用户访问海量数据的访问权限控制复杂的问题,为云存储系统提供了安全保障;由于存储端只需要存储文件的访问控制树,极大程度地减少了存储端的访问控制开销。

Description

一种云存储系统安全保障方法及其系统
技术领域
本发明属于计算机存储和信息安全技术领域,具体涉及一种云存储系统安全保障方法及其系统。
背景技术
随着计算机技术和网络技术的飞速发展,信息的数据量以指数级爆炸式增长。数据存储由单机存储、分布式存储发展到目前的云存储,云存储是与云计算同时兴起的一个概念,云存储系统是虚拟化的、易于扩展的存储资源池,是云计算的存储部分,用户通过云计算使用云存储系统,云存储系统意味着存储可以作为一种服务,通过网络提供给用户。云存储系统对使用者来讲,不是指某一个具体的设备,而是指一个由许多存储设备和服务器所构成的集合体,使用者使用云存储系统,并不是使用某一个存储设备,而是使用整个云存储系统带来的一种数据访问服务。
目前阻碍用户和企业大规模使用云存储系统的一个最重要的原因就是安全问题。用户把数据保存在云存储服务提供商提供的云存储系统,用户对其数据是不可控的,即云存储服务提供商可能查看用户的数据、分析用户的数据、篡改用户的数据。云存储系统的数据可靠性、可用性、机密性、隐私性和完整性很难满足用户的需求,即使是大公司的云存储服务也不是完全可靠的,比如亚马逊就发生过云存储系统宕机事件。
亚马逊的服务级别安全保障只保证它的云存储系统的可用性在99.9%以上,如果低于这个值,用户可以获得一定的赔偿,现有云存储服务公司,如亚马逊、谷歌和微软等均未提供服务级别的安全保障。
为了理解本发明,进行下述定义:
文件属主:指文件拥有者;
原文件:指未加密的文件;
对称密码机制:加密和解密采用相同的密钥,解密是加密的逆运算;
对称密钥:随机生成的二进制数据,用于对原文件加密或解密;
加密文件:使用对称密钥对原文件采用对称密钥密码机制加密后得到的文件;
完整性校验密钥:随机生成的二进制数据,用于对加密文件加密;
签名文件:使用完整性校验密钥,采用哈希函数对加密文件进行加密得到的二进制数据;
属性密码机制:加密过程中在密文中嵌入访问控制条件,密钥对应于一个属性值集合;成功解密当且仅当属性值集合中的属性值能够满足此访问控制条件;
主密钥:采用属性密码机制为每个用户随机生成的二进制数据,并由用户持有;
公开参数:采用属性密码机制为每个用户生成的特定的二进制数据;
属性密钥:文件属主使用主密钥、公开参数和用户属性,采用属性密码机制计算生成的二进制数据;
访问控制树:文件属主规定的描述文件访问条件的树,树由叶子节点、非叶子节点以及连接非叶子节点或连接非叶子节点和叶子节点的边构成,非叶子节点为运算符,运算符包括“and”和“or”;叶子节点为用户属性值;
文件共享密钥:使用公开参数、访问控制树,采用属性密码机制加密对称密钥得到对称密钥的密文、加密完整性校验密钥的密文,并将两个密文以及公开参数三者连接得到的二进制数据;
文件ID:文件的序号;
初始链接哈希值:由存储端给出的任意16位二进制数据。
发明内容
本发明提供一种云存储系统安全保障方法及其系统,解决现有云存储系统所存在的缺少安全保障的问题。
本发明所提供的一种云存储系统安全保障方法,包括客户端进程、存储端进程、审计端进程和安全管理端进程,其特征在于:
所述客户端进程接受用户的登录和注册请求,作为用户代理访问存储端、审计端和安全管理端;向存储端发送数据请求,验证存储端返回的存储端读操作证据和存储端写操作证据;向审计端发送证据存储请求和审计请求;向安全管理端发送用户注册请求和用户登陆请求;
所述存储端进程接收客户端发送的数据请求,根据访问控制树判断用户是否拥有访问文件的权限,返回给客户端相应的数据、存储端读操作证据或存储端写操作证据;所述审计端进程接收客户端发送的证据存储请求和审计请求,存储存储端读操作证据和存储端写操作证据,审计串行写特性和最新读特性,返回给客户端审计结果;
所述安全管理端进程接收客户端发送的用户注册请求和用户登陆请求;验证用户的合法性,存储用户信息。
所述的云存储系统安全保障方法,其特征在于:
(1)所述客户端进程,包括下述步骤:
(1.1)启动客户端:将客户端分别连接存储端、审计端、安全管理端,进行步骤(1.2);
(1.2)等待用户发起操作请求,接收到用户操作请求后,判断操作请求类型:登录请求,转步骤(1.3);注册请求,转步骤(1.23);操作请求由请求类型和操作参数组成,请求类型为登录请求时,操作参数为用户名和用户密码;请求类型为注册请求时,操作参数为用户名、用户密码和用户属性,用户属性包括姓名和工作单位;
(1.3)向安全管理端递交用户登录请求,然后判断安全管理端是否返回用户信息包,是则允许用户登陆,进行步骤(1.4);否则拒绝用户登录客户端,转步骤(1.2);用户信息包包括用户身份证书、公开参数和用户属性密钥;
(1.4)等待用户发起服务请求,接收到用户服务请求后,判断服务请求类型:文件操作请求,转步骤(1.5);审计请求,转步骤(1.24);权限变更请求,转步骤(1.25);服务请求由请求类型和参数组成,请求类型包括文件操作请求、审计请求和权限变更请求,请求参数均包括文件ID;
(1.5)判断文件操作请求类型:新建文件请求,转步骤(1.6);读文件请求,转步骤(1.12),写文件请求,转步骤(1.17);文件操作请求由请求类型和参数组成,请求类型为新建文件请求,其参数包括文件ID、数据和访问控制树;请求类型为读文件请求,其参数包括文件ID;请求类型为写文件请求,其参数包括文件ID和数据;
(1.6)为原文件随机生成对称密钥和完整性校验密钥,将原文件的文件版本号V置为1,使用对称密钥和原文件作为输入,采用对称密码机制对原文件加密得到加密文件;采用哈希函数对完整性校验密钥、加密文件和文件版本号V进行哈希运算,得到签名文件;进行步骤(1.7);
(1.7)使用公开参数和访问控制树,采用属性密码机制对对称密钥和完整性校验密钥加密后,再与公开参数拼接,得到文件共享密钥;使用哈希函数对加密文件和签名文件进行哈希运算,得到文件哈希值,进行步骤(1.8);
(1.8)生成客户端写操作证据,转步骤(1.9);
所述客户端写操作证据由证据类型、文件ID、文件版本号和文件哈希值组成;其中证据类型为客户端写,文件ID为新建文件请求中的文件ID,文件版本号为V,文件哈希值为步骤(1.7)得到的文件哈希值;
(1.9)将文件包、用户身份证书和新建文件请求一起发送到存储端;判断存储端是否返回新建文件完成信息及存储端写操作证据,是则转步骤(1.10);否则向用户返回新建文件失败信息,转步骤(1.4);
所述文件包包括访问控制树、加密文件、签名文件、文件共享密钥和客户端写操作证据;
所述存储端写操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
(1.10)使用哈希函数对存储端写操作证据中除链接哈希值之外的各项和哈希变量CH进行哈希运算,得到链接哈希值,进行步骤(1.11);
(1.11)判断存储端写操作证据是否通过验证,是则向审计端发送存储证据请求,其参数为存储端写操作证据,并向用户返回新建文件成功信息,转步骤(1.4);否则向用户返回新建文件失败信息,转步骤(1.4);
其中,判断存储端写操作证据是否通过验证的过程为:判断存储端写操作证据中是否证据类型为存储端写、文件ID为新建文件请求中的文件ID、文件版本号为V、文件哈希值为步骤(1.7)得到的文件哈希值且链接哈希值为步骤(1.10)得到的链接哈希值,是则通过验证,否则未通过验证;
(1.12)向存储端发送用户身份证书和读文件请求,等待存储端返回信息;然后判断存储端返回信息类型:文件包,转步骤(1.13);拒绝访问,则向用户发送禁止服务信息,转步骤(1.4);查找失败,则向用户返回查找错误信息,转步骤(1.4);
所述存储端返回信息类型分为文件包、拒绝访问和查找失败;文件包包括访问控制树、加密文件、签名文件、文件共享密钥和存储端读操作证据;
所述存储端读操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
(1.13)使用公开参数和用户属性密钥,采用属性密码机制对文件包中的文件共享密钥解密,得到加密文件的对称密钥和完整性校验密钥;然后使用完整性校验密钥对加密文件再加密得到重加密文件,比较重加密文件和签名文件是否相同,是则转步骤(1.14);否则向用户发送读取失败信息,转步骤(1.4);
(1.14)使用哈希函数对加密文件和签名文件进行哈希运算得到文件哈希值,使用哈希函数对存储端读操作证据中除链接哈希值之外的各项和哈希变量CH进行哈希运算得到链接哈希值,进行步骤(1.15);
(1.15)判断存储端读操作证据是否通过验证,是则向审计端发送存储证据请求,参数为存储端读操作证据,转步骤(1.16);否则向用户发送读取失败信息,转步骤(1.4);
其中,判断存储端读操作证据是否通过验证的过程为:判断存储端读操作证据中是否证据类型为存储端读、文件ID为读文件请求中的文件ID、文件哈希值为步骤(1.14)得到的文件哈希值、链接哈希值为步骤(1.14)得到的链接哈希值;是则通过验证,否则未通过验证;
(1.16)使用对称密钥解密加密文件,得到原文件,向用户返回原文件,转步骤(1.4);
(1.17)向存储端发送用户身份证书和读操作请求,获得文件的对称密钥、完整性校验密钥、访问控制树和文件版本号V,置V=V+1,采用对称密码机制,使用对称密钥对原文件加密得到加密文件;采用哈希函数对完整性校验密钥、加密文件和文件版本号V进行哈希运算得到签名文件;转步骤(1.18);
(1.18)使用公开参数和访问控制树,采用属性密码机制对对称密钥和用户完整性校验密钥加密后,并与公开参数拼接,得到文件共享密钥,使用哈希函数对加密文件和签名文件进行哈希运算,得到文件哈希值,转步骤(1.19);
(1.19)生成客户端写操作证据,转步骤(1.20);
所述客户端写操作证据由证据类型、文件ID、文件版本号和文件哈希值组成;其中证据类型为客户端写,文件ID为写文件请求中的文件ID,文件版本号为V,文件哈希值为步骤(1.18)得到的文件哈希值;
(1.20)将文件包、用户身份证书和写文件请求一起发送到存储端;判断存储端是否返回写文件完成信息及存储端写操作证据,是则转步骤(1.21);否则向用户返回写文件失败信息,转步骤(1.4);
所述文件包包括访问控制树、加密文件、签名文件、文件共享密钥和客户端写操作证据;
所述存储端写操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
(1.21)使用哈希函数对存储端写操作证据中除链接哈希值之外的各项和哈希变量CH进行哈希运算得到链接哈希值,进行步骤(1.22);
(1.22)判断存储端写操作证据是否通过验证,是则向审计端发送存储证据请求,参数为存储端写操作证据,向用户返回新建文件成功信息,转步骤(1.4);否则向用户返回新建文件失败信息,转步骤(1.4);
其中,判断存储端写操作证据是否通过验证的过程为:判断存储端写操作证据中是否证据类型为存储端写、文件ID为写文件请求中的文件ID、文件哈希值为步骤(1.17)得到的文件哈希值且链接哈希值为步骤(1.21)得到的链接哈希值;是则通过验证,否则未通过验证;
(1.23)向安全管理端递交用户注册请求,然后判断安全管理端是否返回用户注册成功信息,是则向用户返回用户注册成功信息;否则向用户返回注册失败信息;转步骤(1.2);
(1.24)向审计端递交审计请求,然后判断审计端是否返回审计通过信息,是则向用户返回审计通过信息;否则向用户返回审计未通过信息;转步骤(1.4);审计请求由请求类型和参数组成,请求类型包括审计串行写和审计最新读,参数为文件ID;
(1.25)向存储端发送用户身份证书和读操作请求,获得原文件、对称密钥、完整性校验密钥、访问控制树和文件版本号V,置V=V+1,为文件重新生成新对称密钥和新完整性校验密钥,使用新对称密钥对原文件加密得到新加密文件,然后使用新完整性校验密钥对新加密文件和文件版本号加密得到新签名文件;转步骤(1.26);
(1.26)采用属性密码机制,使用公开参数和权限变更请求中的访问控制树,对新对称密钥和新完整性校验密钥加密后,再与公开参数拼接,得到新文件共享密钥;
使用哈希函数对新加密文件和新签名文件进行哈希运算得到文件哈希值;转步骤(1.27);
(1.27)生成客户端写操作证据,转步骤(1.28);
所述客户端写操作证据的证据类型为客户端写,文件ID为写文件请求中的文件ID,文件版本号为V,文件哈希值为步骤(1.26)得到的文件哈希值;
(1.28)将新文件包、用户身份证书和写文件请求一起发送到存储端;判断存储端是否返回写文件完成信息及存储端写操作证据,是则转步骤(1.29);否则向用户返回权限更新失败信息,转步骤(1.4);
其中,新文件包包括访问控制树、新加密文件、新签名文件、新文件共享密钥和客户端写操作证据;
(1.29)使用哈希函数对存储端写操作证据中除链接哈希值之外的各项和哈希变量CH进行哈希运算得到链接哈希值,进行步骤(1.30);
(1.30)判断存储端写操作证据是否通过验证,是则向用户返回权限操作成功信息,把存储端写操作证据发送给审计端,转步骤(1.4);否则向用户返回权限操作失败信息,转步骤(1.4);
其中,判断存储端写操作证据是否通过验证的过程为:判断存储端写操作证据中是否证据类型为存储端写、文件ID为写文件请求中的文件ID、文件哈希值为步骤(1.26)中的文件哈希值、链接哈希值为步骤(1.29)得到的链接哈希值;是则通过验证,否则未通过验证;
(2)所述存储端进程,包括下述步骤:
(2.1)等待客户端的文件操作请求和用户身份证书;接收到客户端递交的文件操作请求后,判断文件操作请求的类型,新建文件请求,转步骤(2.2);读文件请求,转步骤(2.7);写文件请求,转步骤(2.11);
文件操作请求由请求类型和参数组成,请求类型为新建文件请求,其参数包括文件ID、数据和访问控制树;请求类型为读文件请求,其参数包括文件ID;请求类型为写文件请求,其参数包括文件ID和数据;
(2.2)使用接收到的用户身份证书验证用户的合法性,合法用户则转步骤(2.3),否则向客户端返回拒绝访问信息,转步骤(2.1);
(2.3)使用新建文件请求中的文件ID查找文件,判断文件是否存在,是则向客户端返回拒绝新建文件信息,转步骤(2.1);否则转步骤(2.4);
(2.4)使用哈希函数对接收到的文件包中的加密文件和签名文件进行哈希运算得到文件哈希值,进行步骤(2.5);
(2.5)验证客户端写操作证据,通过验证则转步骤(2.6),否则向客户端返回新建文件失败信息,转步骤(2.1);
其中,验证客户端写操作证据的过程为:判断客户端写操作证据中是否证据类型为客户端写、文件ID为新建文件请求中的文件ID、文件哈希值为为步骤(2.4)得到的文件哈希值;是则通过验证,否则未通过验证;
(2.6)置哈希变量CH为初始链接哈希值,生成存储端写操作证据,存储随同新建文件请求的文件包,向客户端返回新建文件完成信息、哈希变量CH和存储端写操作证据,置哈希变量CH为链接哈希值,转步骤(2.1);
所述存储端写操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
其中证据类型为存储端写,文件ID为新建文件请求中的文件ID,文件版本号为新建文件请求中的文件版本号,文件哈希值为步骤(2.4)得到的文件哈希值,链接哈希值为使用哈希函数对前述证据类型、文件ID、文件版本号、文件哈希值和哈希变量CH进行哈希运算得到链接哈希值;
(2.7)使用接收到的用户身份证书验证用户的合法性,合法用户则转步骤(2.8),否则向客户端返回拒绝访问信息,转步骤(2.1);
(2.8)使用读文件请求中的文件ID查找文件,判断文件是否存在,是则转步骤(2.9);否则向客户端返回读文件失败信息,转步骤(2.1);
(2.9)验证用户属性是否满足文件的访问控制树,是则转步骤(2.10);否则向客户端返回读文件失败信息,转步骤(2.1);
(2.10)使用哈希函数对加密文件和签名文件进行哈希运算得到文件哈希值;生成存储端读操作证据,向客户端返回文件对应的文件包、哈希变量CH和存储端读操作证据,置哈希变量CH为链接哈希值,转步骤(2.1);
所述存储端读操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
其中证据类型为存储端读,文件ID为读文件请求中的文件ID,文件版本号为读文件请求中的文件版本号,文件哈希值为本步骤得到的哈希值,链接哈希值为使用哈希函数对前述证据类型、文件ID、文件版本号、文件哈希值和哈希变量CH进行哈希运算得到链接哈希值;
(2.11)使用接收到的用户身份证书验证用户的合法性,合法用户则转步骤(2.12),否则向客户端返回拒绝访问信息,转步骤(2.1);
(2.12)使用写文件请求中的文件ID查找文件,判断文件是否存在,是则转步骤(2.13);否则向客户端返回写文件失败信息,转步骤(2.1);
(2.13)验证该用户是否为文件的属主,是则转步骤(2.15);否则转步骤(2.14);
(2.14)比较写文件请求文件包中的访问控制树和所存在文件的访问控制树是否相同,是则转步骤(2.15),否则向客户端返回写文件失败信息,转步骤(2.1);
(2.15)判断用户属性是否满足文件的访问控制树,是则转步骤(2.16);否则向客户端返回写文件失败信息,转步骤(2.1);
(2.16)使用哈希函数对加密文件和签名文件进行哈希运算得到文件哈希值;验证客户端写操作证据,通过验证则转步骤(2.17);否则向客户端返回写文件失败信息,转步骤(2.1);
其中,验证客户端写操作证据的过程为:判断客户端写操作证据中是否证据类型为客户端写、文件ID为写文件请求中的文件ID、文件哈希值为本步骤得到的文件哈希值;如果上述判断都通过,则通过验证,否则未通过验证;
(2.17)生成存储端写操作证据,存储客户端发送的文件包,向客户端返回写文件完成信息、哈希变量CH和存储端写操作证据,置哈希变量CH为链接哈希值,转步骤(2.1);
所述存储端写操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
其中,证据类型为存储端写,文件ID为写文件请求中的文件ID,文件版本号为写文件请求中的文件版本号,文件哈希值为步骤(2.16)得到的文件哈希值,链接哈希值为使用哈希函数对前述证据类型、文件ID、文件版本号、文件哈希值和哈希变量CH进行哈希运算得到链接哈希值;
(3)所述审计端进程,包括下述步骤:
(3.1)等待客户端的服务请求;接收到客户端递交的服务请求后,判断服务请求的类型,证据存储请求,转步骤(3.2);审计请求,转步骤(3.3);服务请求由请求类型和参数组成,请求类型为证据存储时,参数为文件ID、存储端写操作证据或存储端读操作证据;请求类型为审计时,参数为文件ID;
(3.2)存储客户端递交的存储端写操作证据或存储端读操作证据,向客户端返回成功信息,转步骤(3.1);
(3.3)判断审计请求的类型:审计串行写请求转步骤(3.4),审计最新读请求转步骤(3.5);审计请求由请求类型和参数组成,请求类型分为审计串行写特性和审计最新读特性,参数均为为文件ID;
(3.4)审计串行写特性:找出符合文件ID的所有存储端写操作证据,根据文件版本号从小到大的顺序,对所有存储端写操作证据排序,然后判断是否所有存储端写操作证据的文件版本号连续,是则通过审计,向客户端发送审计通过信息,否则向客户端返回审计未通过信息,转步骤(3.1);
(3.5)审计最新读特性:找出符合文件ID的所有存储端写操作证据和存储端读操作证据,根据文件版本号从小到大的顺序,对所有存储端写操作证据和存储端读操作证据排序;
然后判断是否所有存储端写操作证据和存储端读操作证据均满足以下条件A和条件B,是则通过审计,向客户端发送审计通过信息,否则向客户端返回审计未通过信息,转步骤(3.1);
条件A:版本号相同的存储端写操作证据和存储端读操作证据,文件哈希值相同;
条件B:使用哈希函数对当前版本号存储端写操作证据和存储端读操作证据中除链接哈希值之外的各项和前一个版本号存储端写操作证据和存储端读操作证据中的链接哈希值进行哈希运算,得到链接哈希值;该链接哈希值等于当前版本号存储端写操作证据和存储端读操作证据中的链接哈希值;
(4)所述安全管理端进程,包括下述步骤:
(4.1)等待客户端的服务请求,接收到客户端递交的服务请求后,判断服务请求的类型,用户登录请求转步骤(4.2);用户注册请求转步骤(4.4);
(4.2)判断用户登录请求中的用户名和用户密码是否均与用户信息表中已保存的用户名和用户密码相同,是则转步骤(4.3),否则向客户端返回拒绝登陆信息;转步骤(4.1);
所述用户信息表的表项包括用户名、用户密码、用户属性、用户属性密钥和公开参数;各表项内容在用户注册时预先生成;
(4.3)使用用户信息表中该用户的用户属性构造用户身份证书,将用户身份证书、公开参数和用户属性密钥发送给客户端;转步骤(4.1);
(4.4)使用属性加密机制为用户生成唯一的主密钥MK和公开参数PK;以用户属性和公开参数为输入,使用属性加密机制为该用户生成用户属性密钥;将用户名、用户密码、用户属性、用户属性密钥和公开参数存储到用户信息表中,向客户端发送注册成功信息;转步骤(4.1)。
所述的云存储安全保障方法,其特征在于:
所述步骤(2.9)和(2.15)中,判断用户属性是否满足文件的访问控制树,包括下述过程:
A.遍历访问控制树中所有叶子节点,判断用户属性是否满足访问控制树中的叶子节点属性值,是则用“真”替换该叶子节点的属性值,否则用“假”替换该叶子节点的属性值,
B.对各叶子节点的属性值,按照访问控制树的边,结合非叶子节点的运算符,计算访问控制树的值;其中计算访问控制树的值的规则为:“and”表示其连接的叶子节点或非叶子节点属性值均为“真”时结果为“真”,否则结果为“假”;“or”表示只有其连接的叶子节点或非叶子节点属性值均为“假”时结果为“假”,否则结果为“真”;
C.判断访问控制树的值是否为“真”,是则用户属性满足文件的访问控制树;否则用户信息不满足文件的访问控制树。
本发明所提供的一种云存储系统安全保障系统,包括客户端模块、存储端模块、审计端模块和安全管理端模块,其特征在于:
所述客户端模块接受用户的登录和注册请求,作为用户代理访问存储端、审计端和安全管理端;向存储端发送数据请求,验证存储端返回的存储端读操作证据和存储端写操作证据;向审计端发送证据存储请求和审计请求;向安全管理端发送用户注册请求和用户登陆请求;
所述存储端模块接收客户端发送的数据请求,根据访问控制树判断用户是否拥有访问文件的权限,返回给客户端相应的数据、存储端读操作证据或存储端写操作证据;
所述审计端模块接收客户端发送的证据存储请求和审计请求,存储存储端读操作证据和存储端写操作证据,审计串行写特性和最新读特性,返回给客户端审计结果;
所述安全管理端模块接收客户端发送的用户注册请求和用户登陆请求;验证用户的合法性,存储用户信息。
所述的云存储系统安全保障系统,其特征在于:
(1)所述客户端模块,包括下述单元:
单元(1.1),启动客户端:将客户端分别连接存储端、审计端、安全管理端,进行单元(1.2);
单元(1.2),等待用户发起操作请求,接收到用户操作请求后,判断操作请求类型:登录请求,转单元(1.3);注册请求,转单元(1.23);操作请求由请求类型和操作参数组成,请求类型为登录请求时,操作参数为用户名和用户密码;请求类型为注册请求时,操作参数为用户名、用户密码和用户属性,用户属性包括姓名和工作单位;
单元(1.3),向安全管理端递交用户登录请求,然后判断安全管理端是否返回用户信息包,是则允许用户登陆,进行单元(1.4);否则拒绝用户登录客户端,转单元(1.2);用户信息包包括用户身份证书、公开参数和用户属性密钥;
单元(1.4),等待用户发起服务请求,接收到用户服务请求后,判断服务请求类型:文件操作请求,转单元(1.5);审计请求,转单元(1.24);权限变更请求,转单元(1.25);服务请求由请求类型和参数组成,请求类型包括文件操作请求、审计请求和权限变更请求,请求参数均包括文件ID;
单元(1.5),判断文件操作请求类型:新建文件请求,转单元(1.6);读文件请求,转单元(1.12),写文件请求,转单元(1.17);文件操作请求由请求类型和参数组成,请求类型为新建文件请求,其参数包括文件ID、数据和访问控制树;请求类型为读文件请求,其参数包括文件ID;请求类型为写文件请求,其参数包括文件ID和数据;
单元(1.6),为原文件随机生成对称密钥和完整性校验密钥,将原文件的文件版本号V置为1,使用对称密钥和原文件作为输入,采用对称密码机制对原文件加密得到加密文件;采用哈希函数对完整性校验密钥、加密文件和文件版本号V进行哈希运算,得到签名文件;进行单元(1.7);
单元(1.7),使用公开参数和访问控制树,采用属性密码机制对对称密钥和完整性校验密钥加密后,再与公开参数拼接,得到文件共享密钥;使用哈希函数对加密文件和签名文件进行哈希运算,得到文件哈希值,进行单元(1.8);
单元(1.8),生成客户端写操作证据,转单元(1.9);
所述客户端写操作证据由证据类型、文件ID、文件版本号和文件哈希值组成;其中证据类型为客户端写,文件ID为新建文件请求中的文件ID,文件版本号为V,文件哈希值为单元(1.7)得到的文件哈希值;
单元(1.9),将文件包、用户身份证书和新建文件请求一起发送到存储端;判断存储端是否返回新建文件完成信息及存储端写操作证据,是则转单元(1.10);否则向用户返回新建文件失败信息,转单元(1.4);
所述文件包包括访问控制树、加密文件、签名文件、文件共享密钥和客户端写操作证据;
所述存储端写操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
单元(1.10),使用哈希函数对存储端写操作证据中除链接哈希值之外的各项和哈希变量CH进行哈希运算,得到链接哈希值,进行单元(1.11);
单元(1.11),判断存储端写操作证据是否通过验证,是则向审计端发送存储证据请求,其参数为存储端写操作证据,并向用户返回新建文件成功信息,转单元(1.4);否则向用户返回新建文件失败信息,转单元(1.4);
其中,判断存储端写操作证据是否通过验证的过程为:判断存储端写操作证据中是否证据类型为存储端写、文件ID为新建文件请求中的文件ID、文件版本号为V、文件哈希值为单元(1.7)得到的文件哈希值且链接哈希值为单元(1.10)得到的链接哈希值,是则通过验证,否则未通过验证;
单元(1.12),向存储端发送用户身份证书和读文件请求,等待存储端返回信息;然后判断存储端返回信息类型:文件包,转单元(1.13);拒绝访问,则向用户发送禁止服务信息,转单元(1.4);查找失败,则向用户返回查找错误信息,转单元(1.4);
所述存储端返回信息类型分为文件包、拒绝访问和查找失败;文件包包括访问控制树、加密文件、签名文件、文件共享密钥和存储端读操作证据;
所述存储端读操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
单元(1.13),使用公开参数和用户属性密钥,采用属性密码机制对文件包中的文件共享密钥解密,得到加密文件的对称密钥和完整性校验密钥;然后使用完整性校验密钥对加密文件再加密得到重加密文件,比较重加密文件和签名文件是否相同,是则转单元(1.14);否则向用户发送读取失败信息,转单元(1.4);
单元(1.14),使用哈希函数对加密文件和签名文件进行哈希运算得到文件哈希值,使用哈希函数对存储端读操作证据中除链接哈希值之外的各项和哈希变量CH进行哈希运算得到链接哈希值,进行单元(1.15);
单元(1.15),判断存储端读操作证据是否通过验证,是则向审计端发送存储证据请求,参数为存储端读操作证据,转单元(1.16);否则向用户发送读取失败信息,转单元(1.4);
其中,判断存储端读操作证据是否通过验证的过程为:判断存储端读操作证据中是否证据类型为存储端读、文件ID为读文件请求中的文件ID、文件哈希值为单元(1.14)得到的文件哈希值、链接哈希值为单元(1.14)得到的链接哈希值;是则通过验证,否则未通过验证;
单元(1.16),使用对称密钥解密加密文件,得到原文件,向用户返回原文件,转单元(1.4);
单元(1.17),向存储端发送用户身份证书和读操作请求,获得文件的对称密钥、完整性校验密钥、访问控制树和文件版本号V,置V=V+1,采用对称密码机制,使用对称密钥对原文件加密得到加密文件;采用哈希函数对完整性校验密钥、加密文件和文件版本号V进行哈希运算得到签名文件;转单元(1.18);
单元(1.18),使用公开参数和访问控制树,采用属性密码机制对对称密钥和用户完整性校验密钥加密后,并与公开参数拼接,得到文件共享密钥,使用哈希函数对加密文件和签名文件进行哈希运算,得到文件哈希值,转单元(1.19);
单元(1.19),生成客户端写操作证据,转单元(1.20);
所述客户端写操作证据由证据类型、文件ID、文件版本号和文件哈希值组成;其中证据类型为客户端写,文件ID为写文件请求中的文件ID,文件版本号为V,文件哈希值为单元(1.18)得到的文件哈希值;
单元(1.20),将文件包、用户身份证书和写文件请求一起发送到存储端;判断存储端是否返回写文件完成信息及存储端写操作证据,是则转单元(1.21);否则向用户返回写文件失败信息,转单元(1.4);
所述文件包包括访问控制树、加密文件、签名文件、文件共享密钥和客户端写操作证据;
所述存储端写操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
单元(1.21),使用哈希函数对存储端写操作证据中除链接哈希值之外的各项和哈希变量CH进行哈希运算得到链接哈希值,进行单元(1.22);
单元(1.22),判断存储端写操作证据是否通过验证,是则向审计端发送存储证据请求,参数为存储端写操作证据,向用户返回新建文件成功信息,转单元(1.4);否则向用户返回新建文件失败信息,转单元(1.4);
其中,判断存储端写操作证据是否通过验证的过程为:判断存储端写操作证据中是否证据类型为存储端写、文件ID为写文件请求中的文件ID、文件哈希值为单元(1.17)得到的文件哈希值且链接哈希值为单元(1.21)得到的链接哈希值;是则通过验证,否则未通过验证;
单元(1.23),向安全管理端递交用户注册请求,然后判断安全管理端是否返回用户注册成功信息,是则向用户返回用户注册成功信息;否则向用户返回注册失败信息;转单元(1.2);
单元(1.24),向审计端递交审计请求,然后判断审计端是否返回审计通过信息,是则向用户返回审计通过信息;否则向用户返回审计未通过信息;转单元(1.4);审计请求由请求类型和参数组成,请求类型包括审计串行写和审计最新读,参数为文件ID;
单元(1.25),向存储端发送用户身份证书和读操作请求,获得原文件、对称密钥、完整性校验密钥、访问控制树和文件版本号V,置V=V+1,为文件重新生成新对称密钥和新完整性校验密钥,使用新对称密钥对原文件加密得到新加密文件,然后使用新完整性校验密钥对新加密文件和文件版本号加密得到新签名文件;转单元(1.26);
单元(1.26),采用属性密码机制,使用公开参数和权限变更请求中的访问控制树,对新对称密钥和新完整性校验密钥加密后,再与公开参数拼接,得到新文件共享密钥;
使用哈希函数对新加密文件和新签名文件进行哈希运算得到文件哈希值;转单元(1.27);
单元(1.27),生成客户端写操作证据,转单元(1.28);
所述客户端写操作证据的证据类型为客户端写,文件ID为写文件请求中的文件ID,文件版本号为V,文件哈希值为单元(1.26)得到的文件哈希值;
单元(1.28),将新文件包、用户身份证书和写文件请求一起发送到存储端;判断存储端是否返回写文件完成信息及存储端写操作证据,是则转单元(1.29);否则向用户返回权限更新失败信息,转单元(1.4);
其中,新文件包包括访问控制树、新加密文件、新签名文件、新文件共享密钥和客户端写操作证据;
单元(1.29),使用哈希函数对存储端写操作证据中除链接哈希值之外的各项和哈希变量CH进行哈希运算得到链接哈希值,进行单元(1.30);
单元(1.30),判断存储端写操作证据是否通过验证,是则向用户返回权限操作成功信息,把存储端写操作证据发送给审计端,转单元(1.4);否则向用户返回权限操作失败信息,转单元(1.4);
其中,判断存储端写操作证据是否通过验证的过程为:判断存储端写操作证据中是否证据类型为存储端写、文件ID为写文件请求中的文件ID、文件哈希值为单元(1.26)中的文件哈希值、链接哈希值为单元(1.29)得到的链接哈希值;是则通过验证,否则未通过验证;
(2)所述存储端模块,包括下述单元:
单元(2.1),等待客户端的文件操作请求和用户身份证书;接收到客户端递交的文件操作请求后,判断文件操作请求的类型,新建文件请求,转单元(2.2);读文件请求,转单元(2.7);写文件请求,转单元(2.11);
文件操作请求由请求类型和参数组成,请求类型为新建文件请求,其参数包括文件ID、数据和访问控制树;请求类型为读文件请求,其参数包括文件ID;请求类型为写文件请求,其参数包括文件ID和数据;
单元(2.2),使用接收到的用户身份证书验证用户的合法性,合法用户则转单元(2.3),否则向客户端返回拒绝访问信息,转单元(2.1);
单元(2.3),使用新建文件请求中的文件ID查找文件,判断文件是否存在,是则向客户端返回拒绝新建文件信息,转单元(2.1);否则转单元(2.4);
单元(2.4),使用哈希函数对接收到的文件包中的加密文件和签名文件进行哈希运算得到文件哈希值,进行单元(2.5);
单元(2.5),验证客户端写操作证据,通过验证则转单元(2.6),否则向客户端返回新建文件失败信息,转单元(2.1);
其中,验证客户端写操作证据的过程为:判断客户端写操作证据中是否证据类型为客户端写、文件ID为新建文件请求中的文件ID、文件哈希值为为单元(2.4)得到的文件哈希值;是则通过验证,否则未通过验证;
单元(2.6),置哈希变量CH为初始链接哈希值,生成存储端写操作证据,存储随同新建文件请求的文件包,向客户端返回新建文件完成信息、哈希变量CH和存储端写操作证据,置哈希变量CH为链接哈希值,转单元(2.1);
所述存储端写操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
其中证据类型为存储端写,文件ID为新建文件请求中的文件ID,文件版本号为新建文件请求中的文件版本号,文件哈希值为单元(2.4)得到的文件哈希值,链接哈希值为使用哈希函数对前述证据类型、文件ID、文件版本号、文件哈希值和哈希变量CH进行哈希运算得到链接哈希值;
单元(2.7),使用接收到的用户身份证书验证用户的合法性,合法用户则转单元(2.8),否则向客户端返回拒绝访问信息,转单元(2.1);
单元(2.8),使用读文件请求中的文件ID查找文件,判断文件是否存在,是则转单元(2.9);否则向客户端返回读文件失败信息,转单元(2.1);
单元(2.9),验证用户属性是否满足文件的访问控制树,是则转单元(2.10);否则向客户端返回读文件失败信息,转单元(2.1);
单元(2.10),使用哈希函数对加密文件和签名文件进行哈希运算得到文件哈希值;生成存储端读操作证据,向客户端返回文件对应的文件包、哈希变量CH和存储端读操作证据,置哈希变量CH为链接哈希值,转单元(2.1);
所述存储端读操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
其中证据类型为存储端读,文件ID为读文件请求中的文件ID,文件版本号为读文件请求中的文件版本号,文件哈希值为本步骤得到的哈希值,链接哈希值为使用哈希函数对前述证据类型、文件ID、文件版本号、文件哈希值和哈希变量CH进行哈希运算得到链接哈希值;
单元(2.11),使用接收到的用户身份证书验证用户的合法性,合法用户则转单元(2.12),否则向客户端返回拒绝访问信息,转单元(2.1);
单元(2.12),使用写文件请求中的文件ID查找文件,判断文件是否存在,是则转单元(2.13);否则向客户端返回写文件失败信息,转单元(2.1);
单元(2.13),验证该用户是否为文件的属主,是则转单元(2.15);否则转单元(2.14);
单元(2.14),比较写文件请求文件包中的访问控制树和所存在文件的访问控制树是否相同,是则转单元(2.15),否则向客户端返回写文件失败信息,转单元(2.1);
单元(2.15),判断用户属性是否满足文件的访问控制树,是则转单元(2.16);否则向客户端返回写文件失败信息,转单元(2.1);
单元(2.16),使用哈希函数对加密文件和签名文件进行哈希运算得到文件哈希值;验证客户端写操作证据,通过验证则转单元(2.17);否则向客户端返回写文件失败信息,转单元(2.1);
其中,验证客户端写操作证据的过程为:判断客户端写操作证据中是否证据类型为客户端写、文件ID为写文件请求中的文件ID、文件哈希值为本步骤得到的文件哈希值;如果上述判断都通过,则通过验证,否则未通过验证;
单元(2.17),生成存储端写操作证据,存储客户端发送的文件包,向客户端返回写文件完成信息、哈希变量CH和存储端写操作证据,置哈希变量CH为链接哈希值,转单元(2.1);
所述存储端写操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
其中,证据类型为存储端写,文件ID为写文件请求中的文件ID,文件版本号为写文件请求中的文件版本号,文件哈希值为单元(2.16)得到的文件哈希值,链接哈希值为使用哈希函数对前述证据类型、文件ID、文件版本号、文件哈希值和哈希变量CH进行哈希运算得到链接哈希值;
(3)所述审计端模块,包括下述单元:
单元(3.1),等待客户端的服务请求;接收到客户端递交的服务请求后,判断服务请求的类型,证据存储请求,转单元(3.2);审计请求,转单元(3.3);服务请求由请求类型和参数组成,请求类型为证据存储时,参数为文件ID、存储端写操作证据或存储端读操作证据;请求类型为审计时,参数为文件ID;
单元(3.2),存储客户端递交的存储端写操作证据或存储端读操作证据,向客户端返回成功信息,转单元(3.1);
单元(3.3),判断审计请求的类型:审计串行写请求转单元(3.4),审计最新读请求转单元(3.5);审计请求由请求类型和参数组成,请求类型分为审计串行写特性和审计最新读特性,参数均为为文件ID;
单元(3.4),审计串行写特性:找出符合文件ID的所有存储端写操作证据,根据文件版本号从小到大的顺序,对所有存储端写操作证据排序,然后判断是否所有存储端写操作证据的文件版本号连续,是则通过审计,向客户端发送审计通过信息,否则向客户端返回审计未通过信息,转单元(3.1);
单元(3.5),审计最新读特性:找出符合文件ID的所有存储端写操作证据和存储端读操作证据,根据文件版本号从小到大的顺序,对所有存储端写操作证据和存储端读操作证据排序;
然后判断是否所有存储端写操作证据和存储端读操作证据均满足以下条件A和条件B,是则通过审计,向客户端发送审计通过信息,否则向客户端返回审计未通过信息,转单元(3.1);
条件A:版本号相同的存储端写操作证据和存储端读操作证据,文件哈希值相同;
条件B:使用哈希函数对当前版本号存储端写操作证据和存储端读操作证据中除链接哈希值之外的各项和前一个版本号存储端写操作证据和存储端读操作证据中的链接哈希值进行哈希运算,得到链接哈希值;该链接哈希值等于当前版本号存储端写操作证据和存储端读操作证据中的链接哈希值;
(4)所述安全管理端模块,包括下述单元:
单元(4.1),等待客户端的服务请求,接收到客户端递交的服务请求后,判断服务请求的类型,用户登录请求转单元(4.2);用户注册请求转单元(4.4);
单元(4.2),判断用户登录请求中的用户名和用户密码是否均与用户信息表中已保存的用户名和用户密码相同,是则转单元(4.3),否则向客户端返回拒绝登陆信息;转单元(4.1);
所述用户信息表的表项包括用户名、用户密码、用户属性、用户属性密钥和公开参数;各表项内容在用户注册时预先生成;
单元(4.3),使用用户信息表中该用户的用户属性构造用户身份证书,将用户身份证书、公开参数和用户属性密钥发送给客户端;转单元(4.1);
单元(4.4),以用户属性和公开参数为输入,使用属性加密机制为该用户生成用户属性密钥;将用户名、用户密码、用户属性、用户属性密钥和公开参数存储到用户信息表中,向客户端发送注册成功信息;转单元(4.1)。
所述的云存储系统安全保障系统,其特征在于:
所述单元(2.9)和(2.15)中,判断用户属性是否满足文件的访问控制树,包括下述过程:
A.遍历访问控制树中所有叶子节点,判断用户属性是否满足访问控制树中的叶子节点属性值,是则用“真”替换该叶子节点的属性值,否则用“假”替换该叶子节点的属性值,
B.对各叶子节点的属性值,按照访问控制树的边,结合非叶子节点的运算符,计算访问控制树的值;其中计算访问控制树的值的规则为:“and”表示其连接的叶子节点或非叶子节点属性值均为“真”时结果为“真”,否则结果为“假”;“or”表示只有其连接的叶子节点或非叶子节点属性值均为“假”时结果为“假”,否则结果为“真”;
C.判断访问控制树的值是否为“真”,是则用户属性满足文件的访问控制树;否则用户信息不满足文件的访问控制树。
用户首先要向客户端提交用户注册请求,本发明的云存储系统安全保障系统中,客户端再向安全管理端提交用户注册请求,安全管理端使用属性加密机制为用户生成公开参数、主密钥和用户属性密钥,存储用户信息到用户信息表中;已注册的用户向客户端提交用户登录请求,客户端向安全管理端提交用户登录请求,安全管理端判断用户的合法性,决定是否允许用户登录;用户登录客户端后,向客户端发送服务请求,服务请求包括文件操作请求、审计请求和权限变更请求;客户端接收到文件操作请求后向存储端发送文件操作请求,包括新建文件请求、读文件请求和写文件请求;存储端响应客户端的文件操作请求,返回结果给客户端;客户端接收到审计请求后向审计端发送审计请求;审计端响应客户端的审计请求和证据存储请求,返回结果给客户端。
本发明中,用户通过审计端审计存储端写操作证据和存储端读操作证据,可以检测到存储端是否违反了完整性、最新读和串行写三个特性。如果存储端违反了完整性、串行写和最新读三个特性中的一个或者几个,用户通过审计存储端写操作证据和存储端读操作证据,可以证明存储端的不轨行为,还可以把存储端写操作证据和存储端读操作证据交给可信的第三方来审计,证明存储端确实违反了这几个特性。
本发明采用基于属性加密的访问控制机制,实现了高效、可扩展的访问控制,解决了云存储的海量用户访问海量数据的访问权限控制复杂的问题。由于存储端只需要存储文件的访问控制树,极大程度地减少了存储端的访问控制开销。
附图说明
图1为本发明的云存储系统安全保障系统结构示意图;
图2为客户端进程示意图;
图3为访问控制树示意图;
图4为客户端写操作证据格式;
图5为存储端写操作证据格式;
图6为存储端读操作证据格式;
图7为存储端进程示意图;
图8为审计端进程示意图;
图9为安全管理端进程示意图;
具体实施方式
下面结合附图和实施例对本发明进一步说明。
如图1所示,本发明的一种云存储系统安全保障系统,包括客户端模块、存储端模块、审计端模块和安全管理端模块,所述客户端模块分别连接存储端模块、安全管理端模块和审计端模块;
所述客户端模块接受用户的登录和注册请求,作为用户代理访问存储端、审计端和安全管理端;向存储端发送数据请求,验证存储端返回的存储端读操作证据和存储端写操作证据;向审计端发送证据存储请求和审计请求;向安全管理端发送用户注册请求和用户登陆请求;
所述存储端模块接收客户端发送的数据请求,根据访问控制树判断用户是否拥有访问文件的权限,返回给客户端相应的数据、存储端读操作证据或存储端写操作证据;
所述审计端模块接收客户端发送的证据存储请求和审计请求,存储存储端读操作证据和存储端写操作证据,审计串行写特性和最新读特性,返回给客户端审计结果;
所述安全管理端模块接收客户端发送的用户注册请求和用户登陆请求;验证用户的合法性,存储用户信息。
本发明的云存储系统安全保障方法,包括客户端进程、存储端进程、审计端进程和安全管理端进程;
所述客户端进程,如图2所示,包括步骤(1.1)~(1.30):
步骤(1.7)涉及访问控制树,如图3所示,访问控制树是文件属主规定的描述文件访问条件的树,描述了能够访问文件的用户所必须具备的条件;访问控制树的非叶子节点为运算符,运算符包括“and”和“or”,叶子节点为用户属性值;
步骤(1.8)涉及客户端写操作证据,如图4所示,客户端写操作证据是由客户端为写操作文件请求生成的证据,说明本次写操作的相关信息。客户端写操作证据包括证据类型、文件ID、文件版本号和文件哈希值字段。证据类型为客户端写,文件ID为写文件请求中的文件ID,文件版本号为V,文件哈希值为使用哈希函数对加密文件和签名文件进行哈希运算得到的哈希值;
步骤(1.9)涉及存储端写操作证据,如图5所示,存储端写操作证据是由存储端为写操作文件生成的证据,用来说明本次写操作的相关信息。存储端写操作证据包括证据类型、文件ID、文件版本号、文件哈希值和链接哈希值字段。证据类型为存储端写,文件ID为写文件请求中的文件ID,文件版本号为写文件请求中的文件版本号,文件哈希值为使用哈希函数对加密文件和签名文件进行哈希运算得到的哈希值,链接哈希值为使用哈希函数对本次存储端写操作证据中除链接哈希值之外的各项和哈希变量进行哈希运算得到的哈希值;
步骤(1.12)涉及存储端读操作证据;如图6所示,存储端读操作证据是由存储端为读操作文件生成的证据,用来说明本次读操作的相关信息。存储端读操作证据的证据类型为存储端读,文件ID为读文件请求中的文件ID,文件版本号为读文件请求中的文件版本号,文件哈希值为使用哈希函数对加密文件和签名文件进行哈希运算得到的哈希值,链接哈希值为使用哈希函数对本次存储端读操作证据中除链接哈希值之外的各项和哈希变量进行哈希运算得到的哈希值;
所述步骤(1.7)、步骤(1.18)和步骤(1.26)中,采用属性密码机制加密时,输入命令cpabe.enc,其中参数为公开参数、对称密钥和访问控制树,输出为加密后对称密钥;其中参数为公开参数、完整性检验密钥和访问控制树,输出为加密后完整性检验密钥;
所述步骤(1.13)中,采用属性密码机制解密时,输入命令cpabe.dec,其中参数为公开参数、属性密钥和文件共享密钥,输出为对称密钥和完整性校验密钥;
所述步骤(4.4)中,采用属性密码机制生成用户属性密钥时,输入命令cpabe.keygen,其中参数为主密钥、公开参数和用户属性,输出为属性密钥;
所述安全管理端使用属性密码机制为每个用户生成唯一的主密钥MK和公开参数PK,使用命令cpabe.setup输出主密钥MK和公开参数PK;
所述属性密码机制包括四个命令:系统启动cpabe.setup、生成用户属性密钥cpabe.keygen、加密cpabe.enc和解密cpabe.dec;
使用的属性密码机制,可见文献《Ciphertext.PolicyAttribute.Based Encryption》,从网址http://acsc.cs.utexas.edu/cpabe/获得;属性密码机制的软件包cpabe.0.11.tar.ggz从网址http://acsc.cs.utexas.edu/cpabe/获得;安装软件包完毕后,可以使用属性密码机制的cpabe.setup、cpabe.keygen、cpabe.enc和cpabe.dec四个命令。
如图7所示,所述存储端进程,包括步骤(2.1)~(2.17)。
如图8所示,所述审计端进程,包括步骤(3.1)~(3.5)。
如图9所示,所述安全管理端进程,包括步骤(4.1)~(4.4)。

Claims (6)

1.一种云存储系统安全保障方法,包括客户端进程、存储端进程、审计端进程和安全管理端进程,其特征在于:
所述客户端进程接受用户的登录和注册请求,作为用户代理访问存储端、审计端和安全管理端;向存储端发送数据请求,验证存储端返回的存储端读操作证据和存储端写操作证据;向审计端发送证据存储请求和审计请求;向安全管理端发送用户注册请求和用户登陆请求;
所述存储端进程接收客户端发送的数据请求,根据访问控制树判断用户是否拥有访问文件的权限,返回给客户端相应的数据、存储端读操作证据或存储端写操作证据;
所述审计端进程接收客户端发送的证据存储请求和审计请求,证据存储请求的参数为文件ID、存储端写操作证据或存储端读操作证据,审计请求的参数为文件ID;
根据证据存储请求存储客户端递交的存储端读操作证据或存储端写操作证据,向客户端返回成功信息,然后等待客户端的后续服务请求;
接收客户端发送的审计请求时,根据审计请求的类型分别审计串行写特性和最新读特性,审计串行写特性步骤为:找出符合文件ID的所有存储端写操作证据,根据文件版本号从小到大的顺序,对所有存储端写操作证据排序,然后判断是否所有存储端写操作证据的文件版本号连续,是则通过审计,向客户端发送审计通过信息,否则向客户端返回审计未通过信息,然后等待客户端的后续服务请求;
审计最新读特性步骤为:找出符合文件ID的所有存储端写操作证据和存储端读操作证据,根据文件版本号从小到大的顺序,对所有存储端写操作证据和存储端读操作证据排序;
然后判断是否所有存储端写操作证据和存储端读操作证据均满足以下条件A和条件B,是则通过审计,向客户端发送审计通过信息,否则向客户端返回审计未通过信息,然后等待客户端的后续服务请求;
条件A:版本号相同的存储端写操作证据和存储端读操作证据,文件哈希值相同;
条件B:使用哈希函数对当前版本号存储端写操作证据和存储端读操作证据中除链接哈希值之外的各项和前一个版本号存储端写操作证据和存储端读操作证据中的链接哈希值进行哈希运算,得到链接哈希值;该链接哈希值等于当前版本号存储端写操作证据和存储端读操作证据中的链接哈希值;
其中,所述存储端写操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;所述存储端读操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
所述安全管理端进程接收客户端发送的用户注册请求和用户登陆请求;验证用户的合法性,存储用户信息。
2.如权利要求1所述的云存储系统安全保障方法,其特征在于:
(1)所述客户端进程,包括下述步骤:
(1.1)启动客户端:将客户端分别连接存储端、审计端、安全管理端,进行步骤(1.2);
(1.2)等待用户发起操作请求,接收到用户操作请求后,判断操作请求类型:登录请求,转步骤(1.3);注册请求,转步骤(1.23);操作请求由请求类型和操作参数组成,请求类型为登录请求时,操作参数为用户名和用户密码;请求类型为注册请求时,操作参数为用户名、用户密码和用户属性,用户属性包括姓名和工作单位;
(1.3)向安全管理端递交用户登录请求,然后判断安全管理端是否返回用户信息包,是则允许用户登陆,进行步骤(1.4);否则拒绝用户登录客户端,转步骤(1.2);用户信息包包括用户身份证书、公开参数和用户属性密钥;
(1.4)等待用户发起服务请求,接收到用户服务请求后,判断服务请求类型:文件操作请求,转步骤(1.5);审计请求,转步骤(1.24);权限变更请求,转步骤(1.25);服务请求由请求类型和参数组成,请求类型包括文件操作请求、审计请求和权限变更请求,请求参数均包括文件ID;
(1.5)判断文件操作请求类型:新建文件请求,转步骤(1.6);读文件请求,转步骤(1.12),写文件请求,转步骤(1.17);文件操作请求由请求类型和参数组成,请求类型为新建文件请求,其参数包括文件ID、数据和访问控制树;请求类型为读文件请求,其参数包括文件ID;请求类型为写文件请求,其参数包括文件ID和数据;
(1.6)为原文件随机生成对称密钥和完整性校验密钥,将原文件的文件版本号V置为1,使用对称密钥和原文件作为输入,采用对称密码机制对原文件加密得到加密文件;采用哈希函数对完整性校验密钥、加密文件和文件版本号V进行哈希运算,得到签名文件;进行步骤(1.7);
(1.7)使用公开参数和访问控制树,采用属性密码机制对对称密钥和完整性校验密钥加密后,再与公开参数拼接,得到文件共享密钥;使用哈希函数对加密文件和签名文件进行哈希运算,得到文件哈希值,进行步骤(1.8);
(1.8)生成客户端写操作证据,转步骤(1.9);
所述客户端写操作证据由证据类型、文件ID、文件版本号和文件哈希值组成;其中证据类型为客户端写,文件ID为新建文件请求中的文件ID,文件版本号为V,文件哈希值为步骤(1.7)得到的文件哈希值;
(1.9)将文件包、用户身份证书和新建文件请求一起发送到存储端;判断存储端是否返回新建文件完成信息及存储端写操作证据,是则转步骤(1.10);否则向用户返回新建文件失败信息,转步骤(1.4);
所述文件包包括访问控制树、加密文件、签名文件、文件共享密钥和客户端写操作证据;
(1.10)使用哈希函数对存储端写操作证据中除链接哈希值之外的各项和哈希变量CH进行哈希运算,得到链接哈希值,进行步骤(1.11);
(1.11)判断存储端写操作证据是否通过验证,是则向审计端发送存储证据请求,其参数为存储端写操作证据,并向用户返回新建文件成功信息,转步骤(1.4);否则向用户返回新建文件失败信息,转步骤(1.4);
其中,判断存储端写操作证据是否通过验证的过程为:判断存储端写操作证据中是否证据类型为存储端写、文件ID为新建文件请求中的文件ID、文件版本号为V、文件哈希值为步骤(1.7)得到的文件哈希值且链接哈希值为步骤(1.10)得到的链接哈希值,是则通过验证,否则未通过验证;
(1.12)向存储端发送用户身份证书和读文件请求,等待存储端返回信息;然后判断存储端返回信息类型:文件包,转步骤(1.13);拒绝访问,则向用户发送禁止服务信息,转步骤(1.4);查找失败,则向用户返回查找错误信息,转步骤(1.4);
所述存储端返回信息类型分为文件包、拒绝访问和查找失败;文件包包括访问控制树、加密文件、签名文件、文件共享密钥和存储端读操作证据;
(1.13)使用公开参数和用户属性密钥,采用属性密码机制对文件包中的文件共享密钥解密,得到加密文件的对称密钥和完整性校验密钥;然后使用完整性校验密钥对加密文件再加密得到重加密文件,比较重加密文件和签名文件是否相同,是则转步骤(1.14);否则向用户发送读取失败信息,转步骤(1.4);
(1.14)使用哈希函数对加密文件和签名文件进行哈希运算得到文件哈希值,使用哈希函数对存储端读操作证据中除链接哈希值之外的各项和哈希变量CH进行哈希运算得到链接哈希值,进行步骤(1.15);
(1.15)判断存储端读操作证据是否通过验证,是则向审计端发送存储证据请求,参数为存储端读操作证据,转步骤(1.16);否则向用户发送读取失败信息,转步骤(1.4);
其中,判断存储端读操作证据是否通过验证的过程为:判断存储端读操作证据中是否证据类型为存储端读、文件ID为读文件请求中的文件ID、文件哈希值为步骤(1.14)得到的文件哈希值、链接哈希值为步骤(1.14)得到的链接哈希值;是则通过验证,否则未通过验证;
(1.16)使用对称密钥解密加密文件,得到原文件,向用户返回原文件,转步骤(1.4);
(1.17)向存储端发送用户身份证书和读操作请求,获得文件的对称密钥、完整性校验密钥、访问控制树和文件版本号V,置V=V+1,采用对称密码机制,使用对称密钥对原文件加密得到加密文件;采用哈希函数对完整性校验密钥、加密文件和文件版本号V进行哈希运算得到签名文件;转步骤(1.18);
(1.18)使用公开参数和访问控制树,采用属性密码机制对对称密钥和用户完整性校验密钥加密后,并与公开参数拼接,得到文件共享密钥,使用哈希函数对加密文件和签名文件进行哈希运算,得到文件哈希值,转步骤(1.19);
(1.19)生成客户端写操作证据,转步骤(1.20);
所述客户端写操作证据由证据类型、文件ID、文件版本号和文件哈希值组成;其中证据类型为客户端写,文件ID为写文件请求中的文件ID,文件版本号为V,文件哈希值为步骤(1.18)得到的文件哈希值;
(1.20)将文件包、用户身份证书和写文件请求一起发送到存储端;判断存储端是否返回写文件完成信息及存储端写操作证据,是则转步骤(1.21);否则向用户返回写文件失败信息,转步骤(1.4);
所述文件包包括访问控制树、加密文件、签名文件、文件共享密钥和客户端写操作证据;
所述存储端写操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
(1.21)使用哈希函数对存储端写操作证据中除链接哈希值之外的各项和哈希变量CH进行哈希运算得到链接哈希值,进行步骤(1.22);
(1.22)判断存储端写操作证据是否通过验证,是则向审计端发送存储证据请求,参数为存储端写操作证据,向用户返回新建文件成功信息,转步骤(1.4);否则向用户返回新建文件失败信息,转步骤(1.4);
其中,判断存储端写操作证据是否通过验证的过程为:判断存储端写操作证据中是否证据类型为存储端写、文件ID为写文件请求中的文件ID、文件哈希值为步骤(1.18)得到的文件哈希值且链接哈希值为步骤(1.21)得到的链接哈希值;是则通过验证,否则未通过验证;
(1.23)向安全管理端递交用户注册请求,然后判断安全管理端是否返回用户注册成功信息,是则向用户返回用户注册成功信息;否则向用户返回注册失败信息;转步骤(1.2);
(1.24)向审计端递交审计请求,然后判断审计端是否返回审计通过信息,是则向用户返回审计通过信息;否则向用户返回审计未通过信息;转步骤(1.4);审计请求由请求类型和参数组成,请求类型包括审计串行写和审计最新读,参数为文件ID;
(1.25)向存储端发送用户身份证书和读操作请求,获得原文件、对称密钥、完整性校验密钥、访问控制树和文件版本号V,置V=V+1,为文件重新生成新对称密钥和新完整性校验密钥,使用新对称密钥对原文件加密得到新加密文件,然后使用新完整性校验密钥对新加密文件和文件版本号加密得到新签名文件;转步骤(1.26);
(1.26)采用属性密码机制,使用公开参数和权限变更请求中的访问控制树,对新对称密钥和新完整性校验密钥加密后,再与公开参数拼接,得到新文件共享密钥;
使用哈希函数对新加密文件和新签名文件进行哈希运算得到文件哈希值;转步骤(1.27);
(1.27)生成客户端写操作证据,转步骤(1.28);
所述客户端写操作证据的证据类型为客户端写,文件ID为写文件请求中的文件ID,文件版本号为V,文件哈希值为步骤(1.26)得到的文件哈希值;
(1.28)将新文件包、用户身份证书和写文件请求一起发送到存储端;判断存储端是否返回写文件完成信息及存储端写操作证据,是则转步骤(1.29);否则向用户返回权限更新失败信息,转步骤(1.4);
其中,新文件包包括访问控制树、新加密文件、新签名文件、新文件共享密钥和客户端写操作证据;
(1.29)使用哈希函数对存储端写操作证据中除链接哈希值之外的各项和哈希变量CH进行哈希运算得到链接哈希值,进行步骤(1.30);
(1.30)判断存储端写操作证据是否通过验证,是则向用户返回权限操作成功信息,把存储端写操作证据发送给审计端,转步骤(1.4);否则向用户返回权限操作失败信息,转步骤(1.4);
其中,判断存储端写操作证据是否通过验证的过程为:判断存储端写操作证据中是否证据类型为存储端写、文件ID为写文件请求中的文件ID、文件哈希值为步骤(1.26)中的文件哈希值、链接哈希值为步骤(1.29)得到的链接哈希值;是则通过验证,否则未通过验证;
(2)所述存储端进程,包括下述步骤:
(2.1)等待客户端的文件操作请求和用户身份证书;接收到客户端递交的文件操作请求后,判断文件操作请求的类型,新建文件请求,转步骤(2.2);读文件请求,转步骤(2.7);写文件请求,转步骤(2.11);
文件操作请求由请求类型和参数组成,请求类型为新建文件请求,其参数包括文件ID、数据和访问控制树;请求类型为读文件请求,其参数包括文件ID;请求类型为写文件请求,其参数包括文件ID和数据;
(2.2)使用接收到的用户身份证书验证用户的合法性,合法用户则转步骤(2.3),否则向客户端返回拒绝访问信息,转步骤(2.1);
(2.3)使用新建文件请求中的文件ID查找文件,判断文件是否存在,是则向客户端返回拒绝新建文件信息,转步骤(2.1);否则转步骤(2.4);
(2.4)使用哈希函数对接收到的文件包中的加密文件和签名文件进行哈希运算得到文件哈希值,进行步骤(2.5);
(2.5)验证客户端写操作证据,通过验证则转步骤(2.6),否则向客户端返回新建文件失败信息,转步骤(2.1);
其中,验证客户端写操作证据的过程为:判断客户端写操作证据中是否证据类型为客户端写、文件ID为新建文件请求中的文件ID、文件哈希值为步骤(2.4)得到的文件哈希值;是则通过验证,否则未通过验证;
(2.6)置哈希变量CH为初始链接哈希值,生成存储端写操作证据,存储随同新建文件请求的文件包,向客户端返回新建文件完成信息、哈希变量CH和存储端写操作证据,置哈希变量CH为链接哈希值,转步骤(2.1);
所述存储端写操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
其中证据类型为存储端写,文件ID为新建文件请求中的文件ID,文件版本号为新建文件请求中的文件版本号,文件哈希值为步骤(2.4)得到的文件哈希值,链接哈希值为使用哈希函数对前述证据类型、文件ID、文件版本号、文件哈希值和哈希变量CH进行哈希运算得到链接哈希值;
(2.7)使用接收到的用户身份证书验证用户的合法性,合法用户则转步骤(2.8),否则向客户端返回拒绝访问信息,转步骤(2.1);
(2.8)使用读文件请求中的文件ID查找文件,判断文件是否存在,是则转步骤(2.9);否则向客户端返回读文件失败信息,转步骤(2.1);
(2.9)验证用户属性是否满足文件的访问控制树,是则转步骤(2.10);否则向客户端返回读文件失败信息,转步骤(2.1);
(2.10)使用哈希函数对加密文件和签名文件进行哈希运算得到文件哈希值;生成存储端读操作证据,向客户端返回文件对应的文件包、哈希变量CH和存储端读操作证据,置哈希变量CH为链接哈希值,转步骤(2.1);
所述存储端读操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
其中证据类型为存储端读,文件ID为读文件请求中的文件ID,文件版本号为读文件请求中的文件版本号,文件哈希值为本步骤得到的哈希值,链接哈希值为使用哈希函数对前述证据类型、文件ID、文件版本号、文件哈希值和哈希变量CH进行哈希运算得到链接哈希值;
(2.11)使用接收到的用户身份证书验证用户的合法性,合法用户则转步骤(2.12),否则向客户端返回拒绝访问信息,转步骤(2.1);
(2.12)使用写文件请求中的文件ID查找文件,判断文件是否存在,是则转步骤(2.13);否则向客户端返回写文件失败信息,转步骤(2.1);
(2.13)验证该用户是否为文件的属主,是则转步骤(2.15);否则转步骤(2.14);
(2.14)比较写文件请求文件包中的访问控制树和所存在文件的访问控制树是否相同,是则转步骤(2.15),否则向客户端返回写文件失败信息,转步骤(2.1);
(2.15)判断用户属性是否满足文件的访问控制树,是则转步骤(2.16);否则向客户端返回写文件失败信息,转步骤(2.1);
(2.16)使用哈希函数对加密文件和签名文件进行哈希运算得到文件哈希值;验证客户端写操作证据,通过验证则转步骤(2.17);否则向客户端返回写文件失败信息,转步骤(2.1);
其中,验证客户端写操作证据的过程为:判断客户端写操作证据中是否证据类型为客户端写、文件ID为写文件请求中的文件ID、文件哈希值为本步骤得到的文件哈希值;如果上述判断都通过,则通过验证,否则未通过验证;
(2.17)生成存储端写操作证据,存储客户端发送的文件包,向客户端返回写文件完成信息、哈希变量CH和存储端写操作证据,置哈希变量CH为链接哈希值,转步骤(2.1);
所述存储端写操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
其中,证据类型为存储端写,文件ID为写文件请求中的文件ID,文件版本号为写文件请求中的文件版本号,文件哈希值为步骤(2.16)得到的文件哈希值,链接哈希值为使用哈希函数对前述证据类型、文件ID、文件版本号、文件哈希值和哈希变量CH进行哈希运算得到链接哈希值;
(4)所述安全管理端进程,包括下述步骤:
(4.1)等待客户端的服务请求,接收到客户端递交的服务请求后,判断服务请求的类型,用户登录请求转步骤(4.2);用户注册请求转步骤(4.4);
(4.2)判断用户登录请求中的用户名和用户密码是否均与用户信息表中已保存的用户名和用户密码相同,是则转步骤(4.3),否则向客户端返回拒绝登陆信息;转步骤(4.1);
所述用户信息表的表项包括用户名、用户密码、用户属性、用户属性密钥和公开参数;各表项内容在用户注册时预先生成;
(4.3)使用用户信息表中该用户的用户属性构造用户身份证书,将用户身份证书、公开参数和用户属性密钥发送给客户端;转步骤(4.1);
(4.4)以用户属性和公开参数为输入,使用属性加密机制为该用户生成用户属性密钥;将用户名、用户密码、用户属性、用户属性密钥和公开参数存储到用户信息表中,向客户端发送注册成功信息;转步骤(4.1)。
3.如权利要求2所述的云存储系统安全保障方法,其特征在于:
所述步骤(2.9)和(2.15)中,判断用户属性是否满足文件的访问控制树,包括下述过程:
A.遍历访问控制树中所有叶子节点,判断用户属性是否满足访问控制树中的叶子节点属性值,是则用“真”替换该叶子节点的属性值,否则用“假”替换该叶子节点的属性值,
B.对各叶子节点的属性值,按照访问控制树的边,结合非叶子节点的运算符,计算访问控制树的值;其中计算访问控制树的值的规则为:“and”表示其连接的叶子节点或非叶子节点属性值均为“真”时结果为“真”,否则结果为“假”;“or”表示只有其连接的叶子节点或非叶子节点属性值均为“假”时结果为“假”,否则结果为“真”;
C.判断访问控制树的值是否为“真”,是则用户属性满足文件的访问控制树;否则用户信息不满足文件的访问控制树。
4.一种云存储系统安全保障系统,包括客户端模块、存储端模块、审计端模块和安全管理端模块,其特征在于:
所述客户端模块接受用户的登录和注册请求,作为用户代理访问存储端、审计端和安全管理端;向存储端发送数据请求,验证存储端返回的存储端读操作证据和存储端写操作证据;向审计端发送证据存储请求和审计请求;向安全管理端发送用户注册请求和用户登陆请求;
所述存储端模块接收客户端发送的数据请求,根据访问控制树判断用户是否拥有访问文件的权限,返回给客户端相应的数据、存储端读操作证据或存储端写操作证据;
所述审计端模块接收客户端发送的证据存储请求和审计请求,证据存储请求的参数为文件ID、存储端写操作证据或存储端读操作证据,审计请求的参数为文件ID;根据证据存储请求存储客户端递交的存储端读操作证据或存储端写操作证据,向客户端返回成功信息,然后等待客户端的后续服务请求;
接收客户端发送的审计请求时,根据审计请求的类型分别审计串行写特性和最新读特性,
审计串行写特性步骤为:找出符合文件ID的所有存储端写操作证据,根据文件版本号从小到大的顺序,对所有存储端写操作证据排序,然后判断是否所有存储端写操作证据的文件版本号连续,是则通过审计,向客户端发送审计通过信息,否则向客户端返回审计未通过信息,然后等待客户端的后续服务请求;
审计最新读特性步骤为:找出符合文件ID的所有存储端写操作证据和存储端读操作证据,根据文件版本号从小到大的顺序,对所有存储端写操作证据和存储端读操作证据排序;
然后判断是否所有存储端写操作证据和存储端读操作证据均满足以下条件A和条件B,是则通过审计,向客户端发送审计通过信息,否则向客户端返回审计未通过信息,然后等待客户端的后续服务请求;
条件A:版本号相同的存储端写操作证据和存储端读操作证据,文件哈希值相同;
条件B:使用哈希函数对当前版本号存储端写操作证据和存储端读操作证据中除链接哈希值之外的各项和前一个版本号存储端写操作证据和存储端读操作证据中的链接哈希值进行哈希运算,得到链接哈希值;该链接哈希值等于当前版本号存储端写操作证据和存储端读操作证据中的链接哈希值;
其中,所述存储端写操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;所述存储端读操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
所述安全管理端模块接收客户端发送的用户注册请求和用户登陆请求;验证用户的合法性,存储用户信息。
5.如权利要求4所述的云存储系统安全保障系统,其特征在于:
(1)所述客户端模块,包括下述单元:
单元(1.1),启动客户端:将客户端分别连接存储端、审计端、安全管理端,进行单元(1.2);
单元(1.2),等待用户发起操作请求,接收到用户操作请求后,判断操作请求类型:登录请求,转单元(1.3);注册请求,转单元(1.23);操作请求由请求类型和操作参数组成,请求类型为登录请求时,操作参数为用户名和用户密码;请求类型为注册请求时,操作参数为用户名、用户密码和用户属性,用户属性包括姓名和工作单位;
单元(1.3),向安全管理端递交用户登录请求,然后判断安全管理端是否返回用户信息包,是则允许用户登陆,进行单元(1.4);否则拒绝用户登录客户端,转单元(1.2);用户信息包包括用户身份证书、公开参数和用户属性密钥;
单元(1.4),等待用户发起服务请求,接收到用户服务请求后,判断服务请求类型:文件操作请求,转单元(1.5);审计请求,转单元(1.24);权限变更请求,转单元(1.25);服务请求由请求类型和参数组成,请求类型包括文件操作请求、审计请求和权限变更请求,请求参数均包括文件ID;
单元(1.5),判断文件操作请求类型:新建文件请求,转单元(1.6);读文件请求,转单元(1.12),写文件请求,转单元(1.17);文件操作请求由请求类型和参数组成,请求类型为新建文件请求,其参数包括文件ID、数据和访问控制树;请求类型为读文件请求,其参数包括文件ID;请求类型为写文件请求,其参数包括文件ID和数据;
单元(1.6),为原文件随机生成对称密钥和完整性校验密钥,将原文件的文件版本号V置为1,使用对称密钥和原文件作为输入,采用对称密码机制对原文件加密得到加密文件;采用哈希函数对完整性校验密钥、加密文件和文件版本号V进行哈希运算,得到签名文件;进行单元(1.7);
单元(1.7),使用公开参数和访问控制树,采用属性密码机制对对称密钥和完整性校验密钥加密后,再与公开参数拼接,得到文件共享密钥;使用哈希函数对加密文件和签名文件进行哈希运算,得到文件哈希值,进行单元(1.8);
单元(1.8),生成客户端写操作证据,转单元(1.9);
所述客户端写操作证据由证据类型、文件ID、文件版本号和文件哈希值组成;其中证据类型为客户端写,文件ID为新建文件请求中的文件ID,文件版本号为V,文件哈希值为单元(1.7)得到的文件哈希值;
单元(1.9),将文件包、用户身份证书和新建文件请求一起发送到存储端;判断存储端是否返回新建文件完成信息及存储端写操作证据,是则转单元(1.10);否则向用户返回新建文件失败信息,转单元(1.4);
所述文件包包括访问控制树、加密文件、签名文件、文件共享密钥和客户端写操作证据;
单元(1.10),使用哈希函数对存储端写操作证据中除链接哈希值之外的各项和哈希变量CH进行哈希运算,得到链接哈希值,进行单元(1.11);
单元(1.11),判断存储端写操作证据是否通过验证,是则向审计端发送存储证据请求,其参数为存储端写操作证据,并向用户返回新建文件成功信息,转单元(1.4);否则向用户返回新建文件失败信息,转单元(1.4);
其中,判断存储端写操作证据是否通过验证的过程为:判断存储端写操作证据中是否证据类型为存储端写、文件ID为新建文件请求中的文件ID、文件版本号为V、文件哈希值为单元(1.7)得到的文件哈希值且链接哈希值为单元(1.10)得到的链接哈希值,是则通过验证,否则未通过验证;
单元(1.12),向存储端发送用户身份证书和读文件请求,等待存储端返回信息;然后判断存储端返回信息类型:文件包,转单元(1.13);拒绝访问,则向用户发送禁止服务信息,转单元(1.4);查找失败,则向用户返回查找错误信息,转单元(1.4);
所述存储端返回信息类型分为文件包、拒绝访问和查找失败;文件包包括访问控制树、加密文件、签名文件、文件共享密钥和存储端读操作证据;
单元(1.13),使用公开参数和用户属性密钥,采用属性密码机制对文件包中的文件共享密钥解密,得到加密文件的对称密钥和完整性校验密钥;然后使用完整性校验密钥对加密文件再加密得到重加密文件,比较重加密文件和签名文件是否相同,是则转单元(1.14);否则向用户发送读取失败信息,转单元(1.4);
单元(1.14),使用哈希函数对加密文件和签名文件进行哈希运算得到文件哈希值,使用哈希函数对存储端读操作证据中除链接哈希值之外的各项和哈希变量CH进行哈希运算得到链接哈希值,进行单元(1.15);
单元(1.15),判断存储端读操作证据是否通过验证,是则向审计端发送存储证据请求,参数为存储端读操作证据,转单元(1.16);否则向用户发送读取失败信息,转单元(1.4);
其中,判断存储端读操作证据是否通过验证的过程为:判断存储端读操作证据中是否证据类型为存储端读、文件ID为读文件请求中的文件ID、文件哈希值为单元(1.14)得到的文件哈希值、链接哈希值为单元(1.14)得到的链接哈希值;是则通过验证,否则未通过验证;
单元(1.16),使用对称密钥解密加密文件,得到原文件,向用户返回原文件,转单元(1.4);
单元(1.17),向存储端发送用户身份证书和读操作请求,获得文件的对称密钥、完整性校验密钥、访问控制树和文件版本号V,置V=V+1,采用对称密码机制,使用对称密钥对原文件加密得到加密文件;采用哈希函数对完整性校验密钥、加密文件和文件版本号V进行哈希运算得到签名文件;转单元(1.18);
单元(1.18),使用公开参数和访问控制树,采用属性密码机制对对称密钥和用户完整性校验密钥加密后,并与公开参数拼接,得到文件共享密钥,使用哈希函数对加密文件和签名文件进行哈希运算,得到文件哈希值,转单元(1.19);
单元(1.19),生成客户端写操作证据,转单元(1.20);
所述客户端写操作证据由证据类型、文件ID、文件版本号和文件哈希值组成;其中证据类型为客户端写,文件ID为写文件请求中的文件ID,文件版本号为V,文件哈希值为单元(1.18)得到的文件哈希值;
单元(1.20),将文件包、用户身份证书和写文件请求一起发送到存储端;判断存储端是否返回写文件完成信息及存储端写操作证据,是则转单元(1.21);否则向用户返回写文件失败信息,转单元(1.4);
所述文件包包括访问控制树、加密文件、签名文件、文件共享密钥和客户端写操作证据;
所述存储端写操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
单元(1.21),使用哈希函数对存储端写操作证据中除链接哈希值之外的各项和哈希变量CH进行哈希运算得到链接哈希值,进行单元(1.22);
单元(1.22),判断存储端写操作证据是否通过验证,是则向审计端发送存储证据请求,参数为存储端写操作证据,向用户返回新建文件成功信息,转单元(1.4);否则向用户返回新建文件失败信息,转单元(1.4);
其中,判断存储端写操作证据是否通过验证的过程为:判断存储端写操作证据中是否证据类型为存储端写、文件ID为写文件请求中的文件ID、文件哈希值为单元(1.18)得到的文件哈希值且链接哈希值为单元(1.21)得到的链接哈希值;是则通过验证,否则未通过验证;
单元(1.23),向安全管理端递交用户注册请求,然后判断安全管理端是否返回用户注册成功信息,是则向用户返回用户注册成功信息;否则向用户返回注册失败信息;转单元(1.2);
单元(1.24),向审计端递交审计请求,然后判断审计端是否返回审计通过信息,是则向用户返回审计通过信息;否则向用户返回审计未通过信息;转单元(1.4);审计请求由请求类型和参数组成,请求类型包括审计串行写和审计最新读,参数为文件ID;
单元(1.25),向存储端发送用户身份证书和读操作请求,获得原文件、对称密钥、完整性校验密钥、访问控制树和文件版本号V,置V=V+1,为文件重新生成新对称密钥和新完整性校验密钥,使用新对称密钥对原文件加密得到新加密文件,然后使用新完整性校验密钥对新加密文件和文件版本号加密得到新签名文件;转单元(1.26);
单元(1.26),采用属性密码机制,使用公开参数和权限变更请求中的访问控制树,对新对称密钥和新完整性校验密钥加密后,再与公开参数拼接,得到新文件共享密钥;
使用哈希函数对新加密文件和新签名文件进行哈希运算得到文件哈希值;转单元(1.27);
单元(1.27),生成客户端写操作证据,转单元(1.28);
所述客户端写操作证据的证据类型为客户端写,文件ID为写文件请求中的文件ID,文件版本号为V,文件哈希值为单元(1.26)得到的文件哈希值;
单元(1.28),将新文件包、用户身份证书和写文件请求一起发送到存储端;判断存储端是否返回写文件完成信息及存储端写操作证据,是则转单元(1.29);否则向用户返回权限更新失败信息,转单元(1.4);
其中,新文件包包括访问控制树、新加密文件、新签名文件、新文件共享密钥和客户端写操作证据;
单元(1.29),使用哈希函数对存储端写操作证据中除链接哈希值之外的各项和哈希变量CH进行哈希运算得到链接哈希值,进行单元(1.30);
单元(1.30),判断存储端写操作证据是否通过验证,是则向用户返回权限操作成功信息,把存储端写操作证据发送给审计端,转单元(1.4);否则向用户返回权限操作失败信息,转单元(1.4);
其中,判断存储端写操作证据是否通过验证的过程为:判断存储端写操作证据中是否证据类型为存储端写、文件ID为写文件请求中的文件ID、文件哈希值为单元(1.26)中的文件哈希值、链接哈希值为单元(1.29)得到的链接哈希值;是则通过验证,否则未通过验证;
(2)所述存储端模块,包括下述单元:
单元(2.1),等待客户端的文件操作请求和用户身份证书;接收到客户端递交的文件操作请求后,判断文件操作请求的类型,新建文件请求,转单元(2.2);读文件请求,转单元(2.7);写文件请求,转单元(2.11);
文件操作请求由请求类型和参数组成,请求类型为新建文件请求,其参数包括文件ID、数据和访问控制树;请求类型为读文件请求,其参数包括文件ID;请求类型为写文件请求,其参数包括文件ID和数据;
单元(2.2),使用接收到的用户身份证书验证用户的合法性,合法用户则转单元(2.3),否则向客户端返回拒绝访问信息,转单元(2.1);
单元(2.3),使用新建文件请求中的文件ID查找文件,判断文件是否存在,是则向客户端返回拒绝新建文件信息,转单元(2.1);否则转单元(2.4);
单元(2.4),使用哈希函数对接收到的文件包中的加密文件和签名文件进行哈希运算得到文件哈希值,进行单元(2.5);
单元(2.5),验证客户端写操作证据,通过验证则转单元(2.6),否则向客户端返回新建文件失败信息,转单元(2.1);
其中,验证客户端写操作证据的过程为:判断客户端写操作证据中是否证据类型为客户端写、文件ID为新建文件请求中的文件ID、文件哈希值为单元(2.4)得到的文件哈希值;是则通过验证,否则未通过验证;
单元(2.6),置哈希变量CH为初始链接哈希值,生成存储端写操作证据,存储随同新建文件请求的文件包,向客户端返回新建文件完成信息、哈希变量CH和存储端写操作证据,置哈希变量CH为链接哈希值,转单元(2.1);
所述存储端写操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
其中证据类型为存储端写,文件ID为新建文件请求中的文件ID,文件版本号为新建文件请求中的文件版本号,文件哈希值为单元(2.4)得到的文件哈希值,链接哈希值为使用哈希函数对前述证据类型、文件ID、文件版本号、文件哈希值和哈希变量CH进行哈希运算得到链接哈希值;
单元(2.7),使用接收到的用户身份证书验证用户的合法性,合法用户则转单元(2.8),否则向客户端返回拒绝访问信息,转单元(2.1);
单元(2.8),使用读文件请求中的文件ID查找文件,判断文件是否存在,是则转单元(2.9);否则向客户端返回读文件失败信息,转单元(2.1);
单元(2.9),验证用户属性是否满足文件的访问控制树,是则转单元(2.10);否则向客户端返回读文件失败信息,转单元(2.1);
单元(2.10),使用哈希函数对加密文件和签名文件进行哈希运算得到文件哈希值;生成存储端读操作证据,向客户端返回文件对应的文件包、哈希变量CH和存储端读操作证据,置哈希变量CH为链接哈希值,转单元(2.1);
所述存储端读操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
其中证据类型为存储端读,文件ID为读文件请求中的文件ID,文件版本号为读文件请求中的文件版本号,文件哈希值为本步骤得到的哈希值,链接哈希值为使用哈希函数对前述证据类型、文件ID、文件版本号、文件哈希值和哈希变量CH进行哈希运算得到链接哈希值;
单元(2.11),使用接收到的用户身份证书验证用户的合法性,合法用户则转单元(2.12),否则向客户端返回拒绝访问信息,转单元(2.1);
单元(2.12),使用写文件请求中的文件ID查找文件,判断文件是否存在,是则转单元(2.13);否则向客户端返回写文件失败信息,转单元(2.1);
单元(2.13),验证该用户是否为文件的属主,是则转单元(2.15);否则转单元(2.14);
单元(2.14),比较写文件请求文件包中的访问控制树和所存在文件的访问控制树是否相同,是则转单元(2.15),否则向客户端返回写文件失败信息,转单元(2.1);
单元(2.15),判断用户属性是否满足文件的访问控制树,是则转单元(2.16);否则向客户端返回写文件失败信息,转单元(2.1);
单元(2.16),使用哈希函数对加密文件和签名文件进行哈希运算得到文件哈希值;验证客户端写操作证据,通过验证则转单元(2.17);否则向客户端返回写文件失败信息,转单元(2.1);
其中,验证客户端写操作证据的过程为:判断客户端写操作证据中是否证据类型为客户端写、文件ID为写文件请求中的文件ID、文件哈希值为本步骤得到的文件哈希值;如果上述判断都通过,则通过验证,否则未通过验证;
单元(2.17),生成存储端写操作证据,存储客户端发送的文件包,向客户端返回写文件完成信息、哈希变量CH和存储端写操作证据,置哈希变量CH为链接哈希值,转单元(2.1);
所述存储端写操作证据,由证据类型、文件ID、文件版本号、文件哈希值和链接哈希值组成;
其中,证据类型为存储端写,文件ID为写文件请求中的文件ID,文件版本号为写文件请求中的文件版本号,文件哈希值为单元(2.16)得到的文件哈希值,链接哈希值为使用哈希函数对前述证据类型、文件ID、文件版本号、文件哈希值和哈希变量CH进行哈希运算得到链接哈希值;
(4)所述安全管理端模块,包括下述单元:
单元(4.1),等待客户端的服务请求,接收到客户端递交的服务请求后,判断服务请求的类型,用户登录请求转单元(4.2);用户注册请求转单元(4.4);
单元(4.2),判断用户登录请求中的用户名和用户密码是否均与用户信息表中已保存的用户名和用户密码相同,是则转单元(4.3),否则向客户端返回拒绝登陆信息;转单元(4.1);
所述用户信息表的表项包括用户名、用户密码、用户属性、用户属性密钥和公开参数;各表项内容在用户注册时预先生成;
单元(4.3),使用用户信息表中该用户的用户属性构造用户身份证书,将用户身份证书、公开参数和用户属性密钥发送给客户端;转单元(4.1);
单元(4.4),以用户属性和公开参数为输入,使用属性加密机制为该用户生成用户属性密钥;将用户名、用户密码、用户属性、用户属性密钥和公开参数存储到用户信息表中,向客户端发送注册成功信息;转单元(4.1)。
6.如权利要求5所述的云存储系统安全保障系统,其特征在于:
所述单元(2.9)和(2.15)中,判断用户属性是否满足文件的访问控制树,包括下述过程:
A.遍历访问控制树中所有叶子节点,判断用户属性是否满足访问控制树中的叶子节点属性值,是则用“真”替换该叶子节点的属性值,否则用“假”替换该叶子节点的属性值,
B.对各叶子节点的属性值,按照访问控制树的边,结合非叶子节点的运算符,计算访问控制树的值;其中计算访问控制树的值的规则为:“and”表示其连接的叶子节点或非叶子节点属性值均为“真”时结果为“真”,否则结果为“假”;“or”表示只有其连接的叶子节点或非叶子节点属性值均为“假”时结果为“假”,否则结果为“真”;
C.判断访问控制树的值是否为“真”,是则用户属性满足文件的访问控制树;否则用户信息不满足文件的访问控制树。
CN201310044213.XA 2013-02-04 2013-02-04 一种云存储系统安全保障方法及其系统 Active CN103095847B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310044213.XA CN103095847B (zh) 2013-02-04 2013-02-04 一种云存储系统安全保障方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310044213.XA CN103095847B (zh) 2013-02-04 2013-02-04 一种云存储系统安全保障方法及其系统

Publications (2)

Publication Number Publication Date
CN103095847A CN103095847A (zh) 2013-05-08
CN103095847B true CN103095847B (zh) 2015-06-17

Family

ID=48207970

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310044213.XA Active CN103095847B (zh) 2013-02-04 2013-02-04 一种云存储系统安全保障方法及其系统

Country Status (1)

Country Link
CN (1) CN103095847B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103763319B (zh) * 2014-01-13 2017-01-18 华中科技大学 一种移动云存储轻量级数据安全共享方法
CN106104549A (zh) * 2014-03-07 2016-11-09 诺基亚技术有限公司 用于验证处理的数据的方法和装置
CN103957109B (zh) * 2014-05-22 2017-07-11 武汉大学 一种云数据隐私保护安全重加密方法
EP3248354A4 (en) 2015-01-19 2018-08-15 Nokia Technologies Oy Method and apparatus for heterogeneous data storage management in cloud computing
CN104993929B (zh) * 2015-05-15 2018-05-18 西安邮电大学 一种支持系统属性扩展的属性基加密系统及方法
CN104954447B (zh) * 2015-05-29 2018-02-02 桂林电子科技大学 支持属性基加密的移动智能设备安全服务实现方法和系统
CN104901968B (zh) * 2015-06-10 2018-01-05 华中科技大学 一种安全云存储系统中的密钥管理分发方法
CN106649414B (zh) * 2015-11-04 2020-01-31 阿里巴巴集团控股有限公司 一种数据仓库数据异常的预检测方法和设备
CN105450636B (zh) * 2015-11-06 2019-02-01 长春智信创联科技有限公司 一种云计算管理系统
CN106330934A (zh) * 2016-08-31 2017-01-11 天津南大通用数据技术股份有限公司 一种分布式数据库系统权限管理方法及装置
CN108900483B (zh) * 2018-06-13 2021-02-09 江苏物联网研究发展中心 云存储细粒度访问控制方法、数据上传和数据访问方法
CN111614680B (zh) * 2020-05-25 2021-04-02 华中科技大学 一种基于cp-abe的可追溯云存储访问控制方法和系统
CN112860189B (zh) * 2021-02-19 2022-12-30 山东大学 一种成本驱动的冷热分层云存储冗余存储方法与系统
CN114640666B (zh) * 2022-03-04 2023-07-25 微位(深圳)网络科技有限公司 文件共享下载方法、电子设备及可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102790770A (zh) * 2012-07-24 2012-11-21 孙巍 一种电子文档集中保存和外带安全管理系统及其方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120203733A1 (en) * 2011-02-09 2012-08-09 Zhang Amy H Method and system for personal cloud engine

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102790770A (zh) * 2012-07-24 2012-11-21 孙巍 一种电子文档集中保存和外带安全管理系统及其方法

Also Published As

Publication number Publication date
CN103095847A (zh) 2013-05-08

Similar Documents

Publication Publication Date Title
CN103095847B (zh) 一种云存储系统安全保障方法及其系统
JP6941146B2 (ja) データセキュリティサービス
CN109144961B (zh) 授权文件共享方法及装置
CN102546764B (zh) 一种云存储系统的安全访问方法
CN108076057B (zh) 一种基于区块链的数据保全系统及方法
CN103051600B (zh) 文档访问控制方法和系统
CN105516110B (zh) 移动设备安全数据传送方法
CA2899027C (en) Data security service
US20110276490A1 (en) Security service level agreements with publicly verifiable proofs of compliance
Lei et al. Research on key management infrastructure in cloud computing environment
CN104967591A (zh) 云存储数据读写方法、设备及读写控制方法、设备
US10623400B2 (en) Method and device for credential and data protection
WO2023020150A1 (en) Authorized secure data movement
US11856085B2 (en) Information management system and method for the same
Vanitha et al. Data sharing: Efficient distributed accountability in cloud using third party auditor
George et al. Safest Secure and Consistent Data Services in the Storage of Cloud Computing
Aissaoui et al. Data Security and Access Management in Cloud Computing: Capability list-based Cyrptography
Fengxuan et al. Research on Service Security Reinforcement Scheme Based on Application Gateway
Reddy Secure and Dependable Cloud Storage Services for CRM
Pradeepa et al. ACHIEVING EFFICIENT SECURE DEDUPLICATION WITH USER-DEFINED ACCESS CONTROL IN CLOUD
Deduplication et al. Sheltered Authorized Deduplication In Hybrid Cloud Design

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant