CN102821096B - 一种分布式存储系统及其文件共享方法 - Google Patents
一种分布式存储系统及其文件共享方法 Download PDFInfo
- Publication number
- CN102821096B CN102821096B CN201210246680.6A CN201210246680A CN102821096B CN 102821096 B CN102821096 B CN 102821096B CN 201210246680 A CN201210246680 A CN 201210246680A CN 102821096 B CN102821096 B CN 102821096B
- Authority
- CN
- China
- Prior art keywords
- file
- user
- key
- request
- server
- 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
Links
Landscapes
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种分布式存储系统及其文件共享方法,属于计算机存储和信息安全技术领域,解决现有安全存储系统密钥管理复杂、加密文件共享开销过大的问题。本发明的分布式存储系统,包括客户端、服务器、安全管理器和密钥服务器,建立在支持POSIX接口的操作系统上,客户端通过局域网分别连接安全管理器和服务器,服务器通过局域网分别连接安全管理器和密钥服务器。本发明设置专用的密钥服务器管理密钥,安全管理器只管理文件密钥号,避免将文件密钥直接或间接暴露给共享用户带来的安全缺陷和巨大的文件重加密开销,提高了系统的安全性和整体性能,有效解决了密钥管理复杂、加密文件共享负载过大的问题,适用于构建大规模高性能的安全存储系统。
Description
技术领域
本发明属于计算机存储和信息安全技术领域,具体涉及一种分布式存储系统及其文件共享方法。
背景技术
随着计算机技术和网络技术的飞速发展,企业、机构、政府等信息化程度越来越高,信息的数据量以指数级爆炸式增长,例如:科研计算与仿真、虚拟现实、天气预报等,每天都会产生大量新数据。人类社会对数据信息的依赖性也越来越强,因此数据信息成为最重要的资产,而作为数据信息存储地的存储系统也自然成为整个信息系统的中心。存储系统由本地直连向着网络化、分布式、云存储的方向不断发展,越来越多的数据在开放的网络环境下存储和共享,网络存储系统逐步向着大容量、高性能、高可用的方向不断迈进,但与此同时数据面临的安全威胁也日益增多。
近年来对海量高性能网络存储系统的体系结构和安全机制进行了大量的研究,其目标是构建高效的安全网络存储系统,使用现代密码学方法保证数据在复杂的网络环境下安全地存储和共享。加密存储系统可以分为两类:非共享的和共享的。非共享加密存储系统不允许文件被多用户共享,因此不需要考虑文件密钥的管理问题,但这种系统显然不能满足企业环境中多用户协同工作和数据共享的需求。在共享加密存储系统中,允许文件被多个用户共享,因此一个重要问题是如何管理文件密钥,使被授权用户能够容易得到文件密钥从而访问文件,同时未授权用户很难得到文件密钥。
目前已经构建和正在使用的安全网络存储系统包括三个主要组件:客户端、服务器和安全管理器或元数据服务器。服务器提供具体的存储服务,客户端向用户提供访问存储系统的接口,安全管理器或元数据服务器对用户进行认证和授权。这种结构可以把成千上万分散异构的存储设备整合成逻辑上统一的存储的空间,对敏感数据加密存储,并且根据指定的安全策略实施相应的访问控制。这种结构被证明是构建海量存储系统安全机制的一种有效解决方案。
然而,这种结构由安全管理器(或元数据服务器)负责密钥的存储、分发和管理,当加密文件被共享时,安全管理器将相应的文件密钥分发给授权用户;当用户权限被撤销时,需要更换加密文件的文件密钥,然后用新的文件密钥重加密文件,并且向所有授权用户发布新的共享文件密钥。这使得这种结构的安全存储系统存在着不可解决的缺陷:(1)密钥管理复杂。需要用户参与管理和分发文件密钥,当海量存储系统的系统规模达到PB级别,文件数以亿计,密钥管理和维护变得异常困难;(2)加密文件共享带来的额外开销巨大。当用户权限被撤销时,更换密钥、文件重加密、发布新密钥造成大量的开销,对用户访问请求造成较大的延迟;(3)密钥管理策略不灵活,密钥和文件元数据一起存储和管理,不易扩展。
这种结构目前已有优化方案是:(1)将具有相同安全属性的文件定义为一个文件组,用组密钥加密文件组内所有的文件密钥,这样用户只需管理和分发组密钥,从而减少了用户密钥管理的数量;(2)用户撤销权限共享密钥回收时采用懒惰回收(Lazy Revocation)机制,即只当文件首次被修改时再重新加密该文件,从而减少了因为文件重加密而带来的访问延迟。然而,这两种优化方案其本质还是文件共享时文件加密密钥暴露给了授权用户,当权限撤销时不可避免地要更换密钥、对文件进行重加密、重新发布新密钥,并不能实质地解决加密文件共享复杂低效的问题,很难在大规模网络存储系统保证安全性的同时维持较高的性能。
为了理解本发明,进行下述定义:
文件组:文件组是文件的逻辑集合,将指定的文件归在一个文件组,便于数据的管理和分配;
文件偏移量:文件中相对于文件起始点的长度,以字节为单位表示;
可移植操作系统接口:英文缩写POSIX(Portable Operating SystemInterface);
AES算法:高级加密标准(Advanced Encryption Standard)算法,为一种加解密算法,由美国国家标准与技术研究院(NIST)于2001年11月26日发布于美国联邦信息处理标准出版物197(Federal Information ProcessingStandard Publications 197,简写为FIPS PUB 197),并在2002年5月26日生效。
密钥生成算法:为随机数生成方法,对指定长度的数列,采用随机数发生器使其顺序为随机数,即生成密钥。
发明内容
本发明提供一种分布式存储系统及其文件共享方法,解决现有以安全管理器或元数据服务器为中心的安全存储系统存在的密钥管理复杂、加密文件共享开销过大的问题。
本发明所提供的一种分布式存储系统,包括客户端、服务器、安全管理器和密钥服务器,建立在支持可移植操作系统接口,也即POSIX接口的操作系统上,其特征在于:
所述客户端通过局域网分别连接安全管理器和服务器,服务器通过局域网分别连接安全管理器和密钥服务器;
(1)所述客户端作为用户代理访问安全管理器和服务器,接受用户的远程登陆;包括下述操作:
(1.1)接受用户身份认证请求后,向安全管理器提出用户身份认证请求,认证通过,进行(1.2);
(1.2)允许用户登陆,待用户向客户端提出数据服务请求后,客户端查询是否存有该用户的权限证书且权限证书没有过期,是则转步骤(1.3);否则向安全管理器提出用户权限验证请求;数据服务请求由请求类型、文件名和操作参数组成,请求类型包括新建文件、读文件、写文件、删除文件,文件名为要操作的文件的路径名称,操作参数包括要读取或者写入数据的文件偏移量、读取或者写入数据的大小、写入的数据;用户权限验证请求由文件名和用户名构成,文件名为要操作的文件所在的路径名;
(1.3)客户端根据权限证书确认用户本次数据服务请求是否符合权限,是则进行步骤(1.4);否则拒绝用户本次数据服务请求,转步骤(1.2);
(1.4)客户端将用户的数据服务请求以及权限证书中的文件保密状态和密钥号提交给服务器;
(2)所述服务器包括文件系统和加解密模块,文件系统为第三版扩展文件系统EXT3或者第四版扩展文件系统EXT4文件系统,用于存储文件,并通过可移植操作系统接口接受文件操作;加解密模块利用高级加密标准算法,也即AES算法实现文件的加密和解密;
(2.1)服务器进行下述操作:
(2.1.1)接受客户端所发送用户的数据服务请求以及权限证书中的文件保密状态和密钥号,根据文件保密状态判断该数据服务请求所对应文件是否为加密文件,是则进行步骤(2.1.2),否则转步骤(2.1.7);
(2.1.2)服务器判断用户的数据服务请求的请求类型:新建文件转步骤(2.1.3),读文件转步骤(2.1.4);写文件转步骤(2.1.5);删除文件转步骤(2.1.6);
(2.1.3)服务器向密钥服务器提出密钥请求,密钥请求类型为密钥申请,接收到密钥服务器生成新密钥及其密钥号后,服务器通过POSIX接口在文件系统上新建文件,如果新建文件成功,则向客户端发送操作成功信息,同时向安全管理器发送添加加密文件信息请求,请求参数包括文件名、文件保密状态、文件拥有者、密钥号;如果新建文件失败,则向客户端发送操作失败信息;
(2.1.4)服务器向密钥服务器提出密钥请求,密钥请求类型为密钥查询,服务器收到密钥服务器的密钥后,通过POSIX接口在文件系统上读取文件内容,如果读取成功,则向加解密模块发送文件解密请求,请求参数为该密钥和加密数据,服务器收到加解密模块返回解密数据后,向客户端返回解密的数据;如果读取失败则向客户端发送操作失败信息;
(2.1.5)服务器向密钥服务器提出密钥请求,密钥请求类型为密钥查询,服务器收到密钥服务器的密钥后,向加解密模块发送文件加密请求,请求参数为该密钥和未加密数据,服务器收到加解密模块返回加密数据后,通过POSIX接口把加密数据写入文件系统,如果写入成功,则向客户端发送操作成功信息;如果写入失败,则向客户端发送操作失败信息;
(2.1.6)服务器向密钥服务器提出密钥请求,密钥请求类型为密钥销毁,服务器收到密钥服务器操作成功信息后,通过POSIX接口在文件系统上将相应文件删除,如果删除成功,则向客户端发送操作成功信息,同时向安全管理器发送删除文件信息请求,请求参数包括文件名;如果删除失败,则向客户端发送操作失败信息;
(2.1.7)服务器判断用户的数据服务请求的请求类型:新建文件转步骤(2.1.8),读文件转步骤(2.1.9),写文件请求转步骤(2.1.10),删除文件转步骤(2.1.11);
(2.1.8)服务器通过POSIX接口在文件系统上新建文件,如果新建文件成功,则向客户端发送操作成功信息,同时向安全管理器发送添加非加密文件信息请求,请求参数包括文件名、文件保密状态、文件拥有者;如果新建文件失败,则向客户端发送操作失败信息;
(2.1.9)服务器通过POSIX接口在文件系统上读取文件内容,如果读取成功,则向客户端发送读取的数据;如果读取失败则向客户端发送操作失败信息;
(2.1.10)服务器通过POSIX接口将数据写入文件系统,如果写入成功,则向客户端发送操作成功信息;如果写入失败,则向客户端发送操作失败信息;
(2.1.11)服务器通过POSIX接口在EXT3文件系统上将相应文件删除,如果删除成功,则向客户端发送操作成功信息;如果删除失败,则向客户端发送操作失败信息;
(2.2)所述加解密模块,实现文件的加密和解密,包括如下操作:
(2.2.1)接收服务器的文件加密请求,请求参数为密钥和未加密数据,利用密钥使用AES算法加密未加密数据,如果操作成功,则向服务器返回加密数据,否则,向服务器返回操作失败信息;
(2.2.2)接收服务器的文件解密请求,请求参数为密钥和加密数据,利用密钥使用AES算法解密加密数据,如果操作成功,则向服务器返回解密数据,否则向服务器返回操作失败信息;
(3)所述安全管理器具有用户信息表、文件信息表、文件组信息表和权限信息表,分别用于存储用户信息、文件信息、文件组信息、权限信息;用户信息表表项为用户序号、用户名、用户密码;文件信息表表项为文件序号、文件名、文件组名、文件保密状态、文件密钥号、文件拥有者;文件组信息表表项为文件组序号、文件组名、文件组拥有者;权限信息表表项为文件组名、用户名、权限;安全管理器判断请求的来源,来自客户端的请求转步骤(3.1),来自服务器的请求转步骤(3.2),来自用户的请求转步骤(3.3);
(3.1)安全管理器收到客户端的请求后,判断请求类型,用户身份认证请求转步骤(3.1.1),用户权限验证请求转步骤(3.1.2);
(3.1.1)安全管理器接收客户端的用户身份认证请求,用户身份认证请求包括用户名和用户密码;判断用户名和用户密码是否均与用户信息表中已保存的用户名和用户密码相同,是则通知客户端认证通过;否则为非法用户,通知客户端拒绝用户登陆;
(3.1.2)安全管理器接收客户端的用户权限验证请求,用户权限验证请求由文件名和用户名构成,文件名为要操作的文件所在的路径名;根据用户信息表、权限信息表和文件信息表验证该用户是否具有相应权限,是则向客户端发放该用户所具有的权限证书;否则通知客户端该用户本次操作无权限;权限证书由用户名、文件名、权限、文件保密状态、密钥号和过期时间组成,权限包括新建权限、读权限、写权限、删除权限;文件保密状态表示文件为加密文件或者为非加密文件;密钥号为所涉及加密文件的密钥的唯一号码,非加密文件的密钥号为空;
(3.2)安全管理器收到服务器的请求后,判断请求类型,添加加密文件信息请求转步骤(3.2.1),添加非加密文件信息请求转步骤(3.2.2),删除文件信息请求转步骤(3.2.3);
(3.2.1)安全管理器在文件信息表中添加新的记录,记录文件名、文件保密状态、密钥号和文件拥有者,如果操作成功,则向服务器发送成功信息;否则向服务器发送失败信息;
(3.2.2)安全管理器在文件信息表中添加新的记录,记录文件名、文件保密状态和文件拥有者,如果操作成功,则向服务器发送成功信息;否则向服务器发送失败信息;
(3.2.3)安全管理器判断在文件信息表中是否存在所述文件名,是则删除该文件名对应的文件记录,向服务器发送成功信息;否则向服务器发送失败信息;
(3.3)安全管理器接收用户的身份认证请求和安全策略服务请求,进行下述操作:
(3.3.1)收到用户的身份认证请求后,判断用户名和用户密码是否均与用户信息表中已保存的用户名和用户密码相同,是则转步骤(3.3.2);否则为非法用户,拒绝用户登陆;
(3.3.2)允许用户登陆安全管理器,待用户向安全管理器提出安全策略服务请求后,转步骤(3.3.3);安全策略服务请求由请求类型和参数构成,请求类型为新建文件组时,参数为要新建的文件组名;请求类型为删除文件组时,参数为要删除的文件组名;请求类型为授予权限请求时,参数为用户名、文件组名、授予的访问权限;请求类型为撤销权限请求时,参数为用户名、文件组名、撤销的访问权限;请求类型为文件移动请求时,参数为文件名和文件组名;
(3.3.3)安全管理器收到用户的安全策略服务请求后,判断安全策略服务请求类型,新建文件组请求转步骤(3.3.4),删除文件组请求转步骤(3.3.5),授予权限请求转步骤(3.3.7),撤销权限请求转步骤(3.3.9),文件移动请求转步骤(3.3.11);
(3.3.4)安全管理器在文件组信息表中添加新的记录,记录新的文件组名及其拥有者名称,拥有者名称为该用户的用户名,如果操作成功,则向用户发送成功信息,否则向用户发送失败信息;
(3.3.5)安全管理器判断在文件组信息表中是否存在所述文件组名且该文件组名的拥有者为该用户,是则删除该文件组名对应的文件组记录,转步骤(3.3.6),否则向用户发送失败信息;
(3.3.6)安全管理器在权限信息表中查找该文件组名是否存在,是则删除该文件组名对应的所有记录,向用户发送成功信息;否则向用户发送失败信息;
(3.3.7)安全管理器判断在文件组信息表中是否存在所述文件组名且该文件组名的拥有者为该用户,是则转步骤(3.3.8);否则向用户发送失败信息;
(3.3.8)判断在权限信息表中是否存在所述文件组名且用户名为该用户,是则在该文件组名对应的权限字段中添加用户请求的权限;否则在权限信息表中添加一条包括该文件组名、用户名和请求权限的新记录;
(3.3.9)安全管理器判断在文件组信息表中是否存在所述文件组名且该文件组名的拥有者为该用户,是则转步骤(3.3.10);否则向用户发送失败信息;
(3.3.10)判断在权限信息表中是否存在所述文件组名且用户名为该用户,是则在该文件组名对应的权限字段中删除用户请求的权限;否则向用户发送失败信息;
(3.3.11)安全管理器判断在文件组信息表中是否存在所述文件组名且该文件组名的拥有者为该用户,是则转步骤(3.3.12);否则向用户发送失败信息;
(3.3.12)判断在文件信息表中是否存在所述文件名且该文件名的拥有者为该用户,是则将该文件名对应的文件组名修改为请求中的文件组名,向用户发送成功信息;否则向用户发送失败信息;
(4)所述密钥服务器具有密钥信息表,密钥信息表表项为密钥号、与其对应的密钥、密钥长度,初始状态下,密钥信息表各表项为空;密钥服务器接收服务器的密钥请求,进行下述操作:
(4.1)判断密钥请求类型:判断密钥请求的类型,密钥申请则转步骤(4.2),密钥查询则转步骤(4.3),密钥销毁则转步骤(4.4);密钥请求由类型和密钥号构成,类型分为密钥申请、密钥查询、密钥销毁,密钥号为密钥对应的唯一编号,当密钥请求的类型为密钥申请时,密钥号为空;
(4.2)生成新密钥:利用密钥生成算法生成一个新密钥,并为新密钥分配一个唯一的密钥号,将新密钥、密钥号和密钥长度存储在密钥信息表内,然后把新密钥及其密钥号发送给服务器;
(4.3)查询密钥:在密钥信息表中查询密钥请求中的密钥号是否存在,是则将对应的密钥发送给服务器;否则向服务器发送操作失败信息;
(4.4)删除密钥:在密钥信息表中查询密钥请求中的密钥号是否存在,是则删除与密钥号对应的密钥,向服务器发送操作成功信息;否则向服务器发送操作失败信息。
所述分布式存储系统的文件共享方法,包括以下步骤:
(1)用户从外网向客户端或安全管理器提出身份认证请求;当客户端收到用户身份认证请求后,转步骤(2);当安全管理器收到用户身份认证请求后,转步骤(17);
(2)客户端向安全管理器提出用户身份认证请求,用户身份认证请求包括用户名和用户密码;安全管理器判断用户名和用户密码是否均与用户信息表中已保存的用户名和用户密码相同,是则通知客户端认证通过,转步骤(3);否则为非法用户,通知客户端拒绝用户登陆,过程结束;
(3)客户端允许用户登陆,待用户向客户端提出数据服务请求后,客户端查询是否存有该用户的权限证书且权限证书没有过期,是则转步骤(5);否则向安全管理器提出用户权限验证请求,转步骤(4);数据服务请求由请求类型、文件名和操作参数组成,请求类型包括新建文件、读文件、写文件、删除文件,文件名为要操作的文件的路径名称,操作参数包括要读取或者写入数据的文件偏移量、读取或者写入数据的大小、写入的数据;用户权限验证请求由文件名和用户名构成,文件名为要操作的文件所在的路径名;
(4)安全管理器根据用户信息表、权限信息表和文件信息表验证该用户是否具有相应权限,是则向客户端发放该用户所具有的权限证书,转步骤(5);否则通知客户端该用户本次操作无权限,转步骤(3);权限证书由用户名、文件名、权限、文件保密状态、密钥号和过期时间组成,权限包括新建权限、读权限、写权限、删除权限;文件保密状态表示文件为加密文件或者为非加密文件;密钥号为所涉及加密文件的密钥的唯一号码,非加密文件的密钥号为空;
(5)客户端根据权限证书确认用户本次数据服务请求是否符合权限,是则进行步骤(6);否则拒绝用户本次数据服务请求,转步骤(3);
(6)客户端将用户的数据服务请求以及权限证书中的文件保密状态和密钥号提交给服务器,服务器根据文件保密状态判断该数据服务请求所对应文件是否为加密文件,是则进行步骤(7),否则转步骤(12);
(7)服务器判断用户的数据服务请求的请求类型:新建文件转步骤(8),读文件转步骤(9);写文件转步骤(10);删除文件转步骤(11);
(8)服务器向密钥服务器提出密钥请求,密钥请求类型为密钥申请,密钥服务器利用密钥生成算法生成一个新密钥,并为新密钥分配一个唯一的密钥号,将新密钥、密钥号和密钥长度存储在密钥信息表内,然后把新密钥及其密钥号发送给服务器;服务器通过可移植操作系统接口,也即POSIX接口在文件系统上新建文件,如果新建文件成功,则向客户端发送操作成功信息,同时向安全管理器发送添加加密文件信息请求,请求参数包括文件名、文件保密状态、文件拥有者、密钥号,安全管理器在文件信息表中添加新的记录,记录文件名、文件保密状态、文件拥有者和密钥号,如果操作成功,则向服务器发送成功信息,否则向服务器发送失败信息;服务器收到安全管理器发送的信息后,转步骤(3);如果新建文件失败,则向客户端发送操作失败信息,转步骤(3);
(9)服务器向密钥服务器提出密钥请求,密钥请求类型为密钥查询,密钥服务器在密钥信息表中查询密钥请求中的密钥号是否存在,是则将对应的密钥发送给服务器,否则向服务器发送操作失败信息;
服务器收到密钥后,通过POSIX接口在文件系统上读取文件内容,如果读取成功,则向加解密模块发送文件解密请求,请求参数为该密钥和加密数据,加解密模块利用密钥使用高级加密标准算法,也即AES算法解密加密数据,如果操作成功,则向服务器返回解密数据,否则向服务器返回操作失败信息;服务器收到解密数据后,向客户端返回解密的数据,转步骤(3);如果读取失败则向客户端发送操作失败信息,转步骤(3);
(10)服务器向密钥服务器提出密钥请求,密钥请求类型为密钥查询,密钥服务器在密钥信息表中查询密钥请求中的密钥号是否存在,是则将对应的密钥发送给服务器,否则向服务器发送操作失败信息;
服务器收到密钥后,向加解密模块发送文件加密请求,请求参数为该密钥和未加密数据,加解密模块利用密钥使用AES算法加密未加密数据,如果操作成功,则向服务器返回加密数据,否则向服务器返回操作失败信息;服务器收到加密数据后,通过,如果写入成功,则向客户端发送操作成功信息,转步骤(3);如果写入失败,则向客户端发送操作失败信息,转步骤(3);
(11)服务器向密钥服务器提出密钥请求,密钥请求类型为密钥销毁,密钥服务器在密钥信息表中查询密钥请求中的密钥号是否存在,是则删除与密钥号对应的密钥,向服务器发送操作成功信息;否则向服务器发送操作失败信息;
服务器收到操作成功信息后,通过POSIX接口在文件系统上将相应文件删除,如果删除成功,则向客户端发送操作成功信息,同时向安全管理器发送删除文件信息请求,请求参数包括文件名,安全管理器判断在文件信息表中是否存在所述文件名,是则删除该文件名对应的文件记录,向服务器发送成功信息,否则向服务器发送失败信息;服务器收到安全管理器发送的信息后,转步骤(3);如果删除失败,则向客户端发送操作失败信息,转步骤(3);
(12)服务器判断用户的数据服务请求的请求类型:新建文件转步骤(13),读文件转步骤(14),写文件请求转步骤(15),删除文件转步骤(16);
(13)服务器通过POSIX接口在文件系统上新建文件,如果新建文件成功,则向客户端发送操作成功信息,同时向安全管理器发送添加非加密文件信息请求,请求参数包括文件名、文件保密状态、文件拥有者,安全管理器在文件信息表中添加新的记录,记录文件名、文件保密状态和文件拥有者,如果操作成功,则向服务器发送成功信息;否则向服务器发送失败信息;服务器收到安全管理器发送的信息后,转步骤(3);如果新建文件失败,则向客户端发送操作失败信息,转步骤(3);
(14)服务器通过POSIX接口在文件系统上读取文件内容,如果读取成功,则向客户端发送读取的数据,转步骤(3);如果读取失败则向客户端发送操作失败信息,转步骤(3);
(15)服务器通过POSIX接口将数据写入文件系统,如果写入成功,则向客户端发送操作成功信息,转步骤(3);如果写入失败,则向客户端发送操作失败信息,转步骤(3);
(16)服务器通过POSIX接口在第三版扩展文件系统EXT3上将相应文件删除,如果删除成功,则向客户端发送操作成功信息,同时向安全管理器发送删除文件信息请求,请求参数包括文件名,安全管理器判断在文件信息表中是否存在所述文件名,是则删除该文件名对应的文件记录,向服务器发送成功信息,否则向服务器发送失败信息;服务器收到安全管理器发送的信息后,转步骤(3);如果删除失败,则向客户端发送操作失败信息,转步骤(3);
(17)安全管理器判断用户名和用户密码是否均与用户信息表中已保存的用户名和用户密码相同,是则转步骤(18);否则为非法用户,拒绝用户登陆,过程结束;
(18)允许用户登陆安全管理器,用户向安全管理器提出安全策略服务请求,转步骤(19);安全策略服务请求由请求类型和参数构成,请求类型为新建文件组时,参数为要新建的文件组名;请求类型为删除文件组时,参数为要删除的文件组名;请求类型为授予权限请求时,参数为用户名、文件组名、授予的访问权限;请求类型为撤销权限请求时,参数为用户名、文件组名、撤销的访问权限;请求类型为文件移动请求时,参数为文件名和文件组名;
(19)安全管理器收到用户的安全策略服务请求后,判断安全策略服务请求类型,新建文件组请求转步骤(20),删除文件组请求转步骤(21),授予权限请求转步骤(23),撤销权限请求转步骤(25),文件移动请求转步骤(27);
(20)安全管理器在文件组信息表中添加新的记录,记录新的文件组名及其拥有者名称,拥有者名称为该用户的用户名,如果操作成功,则向用户发送成功信息,否则向用户发送失败信息,过程结束;
(21)安全管理器判断在文件组信息表中是否存在所述文件组名且该文件组名的拥有者为该用户,是则删除该文件组名对应的文件组记录,转步骤(22),否则向用户发送失败信息,过程结束;
(22)安全管理器在权限信息表中查找该文件组名是否存在,是则删除该文件组名对应的所有记录,向用户发送成功信息,过程结束;否则过程结束;
(23)安全管理器判断在文件组信息表中是否存在所述文件组名且该文件组名的拥有者为该用户,是则转步骤(24);否则向用户发送失败信息,过程结束;
(24)判断在权限信息表中是否存在所述文件组名且用户名为该用户,是则在该文件组名对应的权限字段中添加用户请求的权限;否则在权限信息表中添加一条包括该文件组名、用户名和请求权限的新记录,过程结束;
(25)安全管理器判断在文件组信息表中是否存在所述文件组名且该文件组名的拥有者为该用户,是则转步骤(26);否则向用户发送失败信息,过程结束;
(26)判断在权限信息表中是否存在所述文件组名且用户名为该用户,是则在该文件组名对应的权限字段中删除用户请求的权限,过程结束;否则过程结束;
(27)安全管理器判断在文件组信息表中是否存在所述文件组名且该文件组名的拥有者为该用户,是则转步骤(28);否则向用户发送失败信息,过程结束;
(28)判断在文件信息表中是否存在所述文件名且该文件名的拥有者为该用户,是则将该文件名对应的文件组名修改为请求中的文件组名,向用户发送成功信息,过程结束;否则向用户发送失败信息,过程结束。
所述的文件共享方法,其特征在于:
所述步骤(1)中,用户采用安全外壳协议(SSH)、文件传输协议(FTP)或超文本传输协议(HTTP)从外网向客户端提出身份认证请求。
所述的文件共享方法,其特征在于:
所述步骤(4)中,安全管理器根据用户信息表、权限信息表和文件信息表验证该用户是否具有相应权限,包括下述过程:
(4.1)安全管理器在用户信息表中查找该用户名是否存在,存在则转步骤(4.2),否则该用户不具有相应权限;
(4.2)安全管理器在文件信息表中查找该文件名对应的文件组名是否存在,存在则转步骤(4.3),否则该用户不具有相应权限;
(4.3)安全管理器根据用户名和步骤(4.2)中获得的文件组名,在权限信息表中查找该用户名和文件组名对应的用户权限是否存在,存在则该用户具有相应权限,否则该用户不具有相应权限。
本发明引入独立的密钥服务器,有效地克服了现有以安全管理器或元数据服务器为中心的分布式存储系统中密钥管理复杂、加密文件共享开销过大的问题,消除了现有的系统中将共享文件密钥透露给授权用户带来的安全隐患,满足了大规模分布式存储系统中海量用户对文件安全高效的存储和共享的需求。
本发明的文件共享方法,提供以文件组为粒度的访问控制和文件共享,具有相同安全属性的文件被定义为一个文件组,由于文件组由用户自行定义,实际的访问控制粒度由用户按需指定。访问控制以权限证书的形式来实现,当用户对存储系统进行数据操作时,客户端请求安全管理器对用户权限进行验证,安全管理器将用户具有的权限以权限证书的形式发放给客户端,权限证书包含了用户对该文件的权限和文件的密钥号,权限包括新建权限、读权限、写权限和删除权限四种类型。考虑到用户访问某个文件在时间上的局部性,即在某一时段多次访问同一个文件,系统采用了在客户端缓存权限证书的策略,即权限证书在过期时间到达之前有效。采用在客户端缓存权限证书的策略使得客户端只需向安全管理器申请一次权限证书,减少了由访问控制造成的性能开销。用户通过在权限信息表中改变用户对文件组的权限实现对用户权限的控制。由于文件密钥由密钥服务器管理,并不将文件密钥透漏给授权用户,所以当用户权限被撤销时不需要重加密文件。用户可以依据文件的密级创建不同的文件组,实现不同级别的安全控制和文件共享。
本发明数据安全性高。用户访问本发明的系统时,安全管理器对用户认证和授权,用户根据数据的安全级别有选择地对文件明文存储或加密存储,加密模块支持商用加密算法,保证加密强度和加密速度。
本发明由单独的密钥服务器存储和分发密钥,只有密钥服务器上存放密钥,进一步提高了安全性,加密文件被共享时授权用户只共享密钥号,不知道文件密钥。当授权用户被回收权限时不需要对文件进行密钥更换、文件重加密、新密钥发布操作,将加密引起的文件访问和用户权限撤销中的额外开销降至最低,密钥管理安全高效。
本发明有效地解决了现有的分布式安全存储系统中密钥管理复杂、加密文件共享负载过大的问题,将安全管理器的密钥管理转移到专用的密钥服务器,安全管理器只管理文件密钥号,避免了传统的安全存储系统将文件密钥直接或间接暴露给共享用户带来的安全缺陷和巨大的文件重加密开销,提高了系统的安全性和整体性能,适用于构建大规模高性能的安全存储系统。
附图说明
图1为本发明的分布式存储系统结构示意图;
图2(A)、图2(B)、图2(C)、图2(D)共同构成本发明的文件共享方法流程;
图3为客户端的流程示意图;
图4(A)、图4(B)共同构成服务器的流程;
图5(A)、图5(B)共同构成安全管理器的流程;
图6为密钥服务器的流程示意图;
图7为用户信息表格式;
图8为文件信息表格式;
图9为文件组信息表格式;
图10为权限信息表格式;
图11为密钥信息表格式;
图12为权限证书格式;
图13为数据服务请求格式;
图14为密钥请求格式。
具体实施方式
下面结合附图对本发明做进一步详细的说明。
如图1所示,本发明的分布式存储系统,包括客户端、服务器、安全管理器和密钥服务器,建立在支持POSIX接口的操作系统上,所述客户端通过局域网分别连接安全管理器和服务器,服务器通过局域网分别连接安全管理器和密钥服务器;
客户端处于内外网的交接面上,接受用户的远程登录,作为用户代理访问存储系统,客户端需对用户进行身份认证。服务器运行于局域网内,包括文件系统和加解密模块。文件系统建立在Ext3、Ext4文件系统之上;加解密模块采用AES算法实现。安全管理器接受局域网内客户端和服务器的连接,对用户进行权限认证和授权;密钥服务器提供密钥生成和存储服务,能够安全地长期存储文件密钥;
图2(A)、图2(B)、图2(C)、图2(D)共同构成本发明的文件共享方法流程;
图3为客户端的流程示意图;
图4(A)、图4(B)共同构成服务器的流程;
图5(A)、图5(B)共同构成安全管理器的流程;
图6为密钥服务器的流程示意图;
图7为用户信息表格式;用户信息表包括用户序号、用户名和用户密码字段,各字段定义如下:用户序号为安全管理器为用户分配的唯一号码,用于标识用户;用户名为用户的名称,用户密码为用户的登陆口令。用户信息表用于安全管理器判断用户的合法性;
图8为文件信息表格式;文件信息表包括文件序号、文件名、文件组名、文件保密状态、文件密钥号和文件拥有者,各字段定义如下:文件序号为安全管理器为文件分配的唯一号码,用于标识文件;文件名为文件存放的路径名;文件组名为文件所属的文件组的名称,用户可以修改文件所属的文件组,以改变文件的共享状态;文件保密状态表示文件为加密文件或者为非加密文件;文件密钥号为加密文件的密钥对应的唯一号码,明文存储对应的密钥号为空;文件拥有者表示文件的创建者,只有文件的创建者才可以改变其文件的共享状态;
图9为文件组信息表格式;文件组信息表包括文件组序号,文件组名和文件组拥有者,各字段定义如下:文件组序号为安全管理器为文件组分配的唯一号码;文件组名为文件组的名称;文件组拥有者为文件组的创建者,只有文件组拥有者才可以修改文件组的信息;
图10为权限信息表格式;权限信息表包括文件组名、用户名和权限。各字段定义如下:文件组名为文件组的名称;用户名为用户的名称;权限字段用于指定用户对文件组内文件的操作权限,权限有新建权限、读权限、写权限和删除权限四种类型,通过修改权限字段可以使用户具有不同的访问权限,实现多样化的访问控制;
图11为密钥信息表格式;文件密钥信息包括密钥号、密钥、密钥长度。各字段定义如下:密钥号为密钥服务器为密钥分配的唯一号码;密钥为密钥的内容;密钥长度字段表示密钥的位数。
图12为权限证书格式;权限证书包括用户名、文件名、权限、文件保密状态、密钥号和过期时间字段。各字段定义如下:用户名为用户的名称;文件名为文件的存放路径名;权限为用户对文件组内文件的操作权限,有读、写、新建、删除四种权限;文件保密状态表示文件为加密文件或者为非加密文件;密钥号为所涉及加密文件的密钥的唯一号码,非加密文件的密钥号为空;过期时间字段为客户端缓存权限证书的有效期;
图13为数据服务请求格式;数据服务请求由请求类型、文件名和相应的参数组成,请求类型为新建、读、写、删除文件四种类型,文件名为要操作的文件的名称,相应的参数包括要读取或者写入数据的文件偏移量、读取或者写入数据的大小等信息;
图14为密钥请求格式。服务器向密钥服务器发送密钥请求。请求类型为密钥申请、密钥查询、密钥销毁三种类型,密钥号为密钥对应的唯一编号。
Claims (4)
1.一种分布式存储系统,包括客户端、服务器、安全管理器和密钥服务器,建立在支持可移植操作系统接口,也即POSIX接口的操作系统上,其特征在于:
所述客户端通过局域网分别连接安全管理器和服务器,服务器通过局域网分别连接安全管理器和密钥服务器;
(1)所述客户端作为用户代理访问安全管理器和服务器,接受用户的远程登陆;包括下述操作:
(1.1)接受用户身份认证请求后,向安全管理器提出用户身份认证请求,认证通过,进行(1.2);
(1.2)允许用户登陆,待用户向客户端提出数据服务请求后,客户端查询是否存有该用户的权限证书且权限证书没有过期,是则转步骤(1.3);否则向安全管理器提出用户权限验证请求;数据服务请求由请求类型、文件名和操作参数组成,请求类型包括新建文件、读文件、写文件、删除文件,文件名为要操作的文件的路径名称,操作参数包括要读取或者写入数据的文件偏移量、读取或者写入数据的大小、写入的数据;用户权限验证请求由文件名和用户名构成,文件名为要操作的文件所在的路径名;
(1.3)客户端根据权限证书确认用户本次数据服务请求是否符合权限,是则进行步骤(1.4);否则拒绝用户本次数据服务请求,转步骤(1.2);
(1.4)客户端将用户的数据服务请求以及权限证书中的文件保密状态和密钥号提交给服务器;
(2)所述服务器包括文件系统和加解密模块,文件系统为第三版扩展文件系统EXT3或者第四版扩展文件系统EXT4文件系统,用于存储文件,并通过可移植操作系统接口接受文件操作;加解密模块利用高级加密标准算法,也即AES算法实现文件的加密和解密;
(2.1)服务器进行下述操作:
(2.1.1)接受客户端所发送用户的数据服务请求以及权限证书中的文件保密状态和密钥号,根据文件保密状态判断该数据服务请求所对应文件是否为加密文件,是则进行步骤(2.1.2),否则转步骤(2.1.7);
(2.1.2)服务器判断用户的数据服务请求的请求类型:新建文件转步骤(2.1.3),读文件转步骤(2.1.4);写文件转步骤(2.1.5);删除文件转步骤(2.1.6);
(2.1.3)服务器向密钥服务器提出密钥请求,密钥请求类型为密钥申请,接收到密钥服务器生成新密钥及其密钥号后,服务器通过POSIX接口在文件系统上新建文件,如果新建文件成功,则向客户端发送操作成功信息,同时向安全管理器发送添加加密文件信息请求,请求参数包括文件名、文件保密状态、文件拥有者、密钥号;如果新建文件失败,则向客户端发送操作失败信息;
(2.1.4)服务器向密钥服务器提出密钥请求,密钥请求类型为密钥查询,服务器收到密钥服务器的密钥后,通过POSIX接口在文件系统上读取文件内容,如果读取成功,则向加解密模块发送文件解密请求,请求参数为该密钥和加密数据,服务器收到加解密模块返回解密数据后,向客户端返回解密的数据;如果读取失败则向客户端发送操作失败信息;
(2.1.5)服务器向密钥服务器提出密钥请求,密钥请求类型为密钥查询,服务器收到密钥服务器的密钥后,向加解密模块发送文件加密请求,请求参数为该密钥和未加密数据,服务器收到加解密模块返回加密数据后,通过POSIX接口把加密数据写入文件系统,如果写入成功,则向客户端发送操作成功信息;如果写入失败,则向客户端发送操作失败信息;
(2.1.6)服务器向密钥服务器提出密钥请求,密钥请求类型为密钥销毁,服务器收到密钥服务器操作成功信息后,通过POSIX接口在文件系统上将相应文件删除,如果删除成功,则向客户端发送操作成功信息,同时向安全管理器发送删除文件信息请求,请求参数包括文件名;如果删除失败,则向客户端发送操作失败信息;
(2.1.7)服务器判断用户的数据服务请求的请求类型:新建文件转步骤(2.1.8),读文件转步骤(2.1.9),写文件请求转步骤(2.1.10),删除文件转步骤(2.1.11);
(2.1.8)服务器通过POSIX接口在文件系统上新建文件,如果新建文件成功,则向客户端发送操作成功信息,同时向安全管理器发送添加非加密文件信息请求,请求参数包括文件名、文件保密状态、文件拥有者;如果新建文件失败,则向客户端发送操作失败信息;
(2.1.9)服务器通过POSIX接口在文件系统上读取文件内容,如果读取成功,则向客户端发送读取的数据;如果读取失败则向客户端发送操作失败信息;
(2.1.10)服务器通过POSIX接口将数据写入文件系统,如果写入成功,则向客户端发送操作成功信息;如果写入失败,则向客户端发送操作失败信息;
(2.1.11)服务器通过POSIX接口在EXT3文件系统上将相应文件删除,如果删除成功,则向客户端发送操作成功信息;如果删除失败,则向客户端发送操作失败信息;
(2.2)所述加解密模块,实现文件的加密和解密,包括如下操作:
(2.2.1)接收服务器的文件加密请求,请求参数为密钥和未加密数据,利用密钥使用AES算法加密未加密数据,如果操作成功,则向服务器返回加密数据,否则,向服务器返回操作失败信息;
(2.2.2)接收服务器的文件解密请求,请求参数为密钥和加密数据,利用密钥使用AES算法解密加密数据,如果操作成功,则向服务器返回解密数据,否则向服务器返回操作失败信息;
(3)所述安全管理器具有用户信息表、文件信息表、文件组信息表和权限信息表,分别用于存储用户信息、文件信息、文件组信息、权限信息;用户信息表表项为用户序号、用户名、用户密码;文件信息表表项为文件序号、文件名、文件组名、文件保密状态、文件密钥号、文件拥有者;文件组信息表表项为文件组序号、文件组名、文件组拥有者;权限信息表表项为文件组名、用户名、权限;安全管理器判断请求的来源,来自客户端的请求转步骤(3.1),来自服务器的请求转步骤(3.2),来自用户的请求转步骤(3.3);
(3.1)安全管理器收到客户端的请求后,判断请求类型,用户身份认证请求转步骤(3.1.1),用户权限验证请求转步骤(3.1.2);
(3.1.1)安全管理器接收客户端的用户身份认证请求,用户身份认证请求包括用户名和用户密码;判断用户名和用户密码是否均与用户信息表中已保存的用户名和用户密码相同,是则通知客户端认证通过;否则为非法用户,通知客户端拒绝用户登陆;
(3.1.2)安全管理器接收客户端的用户权限验证请求,用户权限验证请求由文件名和用户名构成,文件名为要操作的文件所在的路径名;根据用户信息表、权限信息表和文件信息表验证该用户是否具有相应权限,是则向客户端发放该用户所具有的权限证书;否则通知客户端该用户本次操作无权限;权限证书由用户名、文件名、权限、文件保密状态、密钥号和过期时间组成,权限包括新建权限、读权限、写权限、删除权限;文件保密状态表示文件为加密文件或者为非加密文件;密钥号为所涉及加密文件的密钥的唯一号码,非加密文件的密钥号为空;
(3.2)安全管理器收到服务器的请求后,判断请求类型,添加加密文件信息请求转步骤(3.2.1),添加非加密文件信息请求转步骤(3.2.2),删除文件信息请求转步骤(3.2.3);
(3.2.1)安全管理器在文件信息表中添加新的记录,记录文件名、文件保密状态、密钥号和文件拥有者,如果操作成功,则向服务器发送成功信息;否则向服务器发送失败信息;
(3.2.2)安全管理器在文件信息表中添加新的记录,记录文件名、文件保密状态和文件拥有者,如果操作成功,则向服务器发送成功信息;否则向服务器发送失败信息;
(3.2.3)安全管理器判断在文件信息表中是否存在所述文件名,是则删除该文件名对应的文件记录,向服务器发送成功信息;否则向服务器发送失败信息;
(3.3)安全管理器接收用户的身份认证请求和安全策略服务请求,进行下述操作:
(3.3.1)收到用户的身份认证请求后,判断用户名和用户密码是否均与用户信息表中已保存的用户名和用户密码相同,是则转步骤(3.3.2);否则为非法用户,拒绝用户登陆;
(3.3.2)允许用户登陆安全管理器,待用户向安全管理器提出安全策略服务请求后,转步骤(3.3.3);安全策略服务请求由请求类型和参数构成,请求类型为新建文件组时,参数为要新建的文件组名;请求类型为删除文件组时,参数为要删除的文件组名;请求类型为授予权限请求时,参数为用户名、文件组名、授予的访问权限;请求类型为撤销权限请求时,参数为用户名、文件组名、撤销的访问权限;请求类型为文件移动请求时,参数为文件名和文件组名;
(3.3.3)安全管理器收到用户的安全策略服务请求后,判断安全策略服务请求类型,新建文件组请求转步骤(3.3.4),删除文件组请求转步骤(3.3.5),授予权限请求转步骤(3.3.7),撤销权限请求转步骤(3.3.9),文件移动请求转步骤(3.3.11);
(3.3.4)安全管理器在文件组信息表中添加新的记录,记录新的文件组名及其拥有者名称,拥有者名称为该用户的用户名,如果操作成功,则向用户发送成功信息,否则向用户发送失败信息;
(3.3.5)安全管理器判断在文件组信息表中是否存在所述文件组名且该文件组名的拥有者为该用户,是则删除该文件组名对应的文件组记录,转步骤(3.3.6),否则向用户发送失败信息;
(3.3.6)安全管理器在权限信息表中查找该文件组名是否存在,是则删除该文件组名对应的所有记录,向用户发送成功信息;否则向用户发送失败信息;
(3.3.7)安全管理器判断在文件组信息表中是否存在所述文件组名且该文件组名的拥有者为该用户,是则转步骤(3.3.8);否则向用户发送失败信息;
(3.3.8)判断在权限信息表中是否存在所述文件组名且用户名为该用户,是则在该文件组名对应的权限字段中添加用户请求的权限;否则在权限信息表中添加一条包括该文件组名、用户名和请求权限的新记录;
(3.3.9)安全管理器判断在文件组信息表中是否存在所述文件组名且该文件组名的拥有者为该用户,是则转步骤(3.3.10);否则向用户发送失败信息;
(3.3.10)判断在权限信息表中是否存在所述文件组名且用户名为该用户,是则在该文件组名对应的权限字段中删除用户请求的权限;否则向用户发送失败信息;
(3.3.11)安全管理器判断在文件组信息表中是否存在所述文件组名且该文件组名的拥有者为该用户,是则转步骤(3.3.12);否则向用户发送失败信息;
(3.3.12)判断在文件信息表中是否存在所述文件名且该文件名的拥有者为该用户,是则将该文件名对应的文件组名修改为请求中的文件组名,向用户发送成功信息;否则向用户发送失败信息;
(4)所述密钥服务器具有密钥信息表,密钥信息表表项为密钥号、与其对应的密钥、密钥长度,初始状态下,密钥信息表各表项为空;密钥服务器接收服务器的密钥请求,进行下述操作:
(4.1)判断密钥请求类型:判断密钥请求的类型,密钥申请则转步骤(4.2),密钥查询则转步骤(4.3),密钥销毁则转步骤(4.4);密钥请求由类型和密钥号构成,类型分为密钥申请、密钥查询、密钥销毁,密钥号为密钥对应的唯一编号,当密钥请求的类型为密钥申请时,密钥号为空;
(4.2)生成新密钥:利用密钥生成算法生成一个新密钥,并为新密钥分配一个唯一的密钥号,将新密钥、密钥号和密钥长度存储在密钥信息表内,然后把新密钥及其密钥号发送给服务器;
(4.3)查询密钥:在密钥信息表中查询密钥请求中的密钥号是否存在,是则将对应的密钥发送给服务器;否则向服务器发送操作失败信息;
(4.4)删除密钥:在密钥信息表中查询密钥请求中的密钥号是否存在,是则删除与密钥号对应的密钥,向服务器发送操作成功信息;否则向服务器发送操作失败信息。
2.权利要求1所述分布式存储系统的文件共享方法,包括以下步骤:
(1)用户从外网向客户端或安全管理器提出身份认证请求;当客户端收到用户身份认证请求后,转步骤(2);当安全管理器收到用户身份认证请求后,转步骤(17);
(2)客户端向安全管理器提出用户身份认证请求,用户身份认证请求包括用户名和用户密码;安全管理器判断用户名和用户密码是否均与用户信息表中已保存的用户名和用户密码相同,是则通知客户端认证通过,转步骤(3);否则为非法用户,通知客户端拒绝用户登陆,过程结束;
(3)客户端允许用户登陆,待用户向客户端提出数据服务请求后,客户端查询是否存有该用户的权限证书且权限证书没有过期,是则转步骤(5);否则向安全管理器提出用户权限验证请求,转步骤(4);数据服务请求由请求类型、文件名和操作参数组成,请求类型包括新建文件、读文件、写文件、删除文件,文件名为要操作的文件的路径名称,操作参数包括要读取或者写入数据的文件偏移量、读取或者写入数据的大小、写入的数据;用户权限验证请求由文件名和用户名构成,文件名为要操作的文件所在的路径名;
(4)安全管理器根据用户信息表、权限信息表和文件信息表验证该用户是否具有相应权限,是则向客户端发放该用户所具有的权限证书,转步骤(5);否则通知客户端该用户本次操作无权限,转步骤(3);权限证书由用户名、文件名、权限、文件保密状态、密钥号和过期时间组成,权限包括新建权限、读权限、写权限、删除权限;文件保密状态表示文件为加密文件或者为非加密文件;密钥号为所涉及加密文件的密钥的唯一号码,非加密文件的密钥号为空;
(5)客户端根据权限证书确认用户本次数据服务请求是否符合权限,是则进行步骤(6);否则拒绝用户本次数据服务请求,转步骤(3);
(6)客户端将用户的数据服务请求以及权限证书中的文件保密状态和密钥号提交给服务器,服务器根据文件保密状态判断该数据服务请求所对应文件是否为加密文件,是则进行步骤(7),否则转步骤(12);
(7)服务器判断用户的数据服务请求的请求类型:新建文件转步骤(8),读文件转步骤(9);写文件转步骤(10);删除文件转步骤(11);
(8)服务器向密钥服务器提出密钥请求,密钥请求类型为密钥申请,密钥服务器利用密钥生成算法生成一个新密钥,并为新密钥分配一个唯一的密钥号,将新密钥、密钥号和密钥长度存储在密钥信息表内,然后把新密钥及其密钥号发送给服务器;服务器通过可移植操作系统接口,也即POSIX接口在文件系统上新建文件,如果新建文件成功,则向客户端发送操作成功信息,同时向安全管理器发送添加加密文件信息请求,请求参数包括文件名、文件保密状态、文件拥有者、密钥号,安全管理器在文件信息表中添加新的记录,记录文件名、文件保密状态、文件拥有者和密钥号,如果操作成功,则向服务器发送成功信息,否则向服务器发送失败信息;服务器收到安全管理器发送的信息后,转步骤(3);如果新建文件失败,则向客户端发送操作失败信息,转步骤(3);
(9)服务器向密钥服务器提出密钥请求,密钥请求类型为密钥查询,密钥服务器在密钥信息表中查询密钥请求中的密钥号是否存在,是则将对应的密钥发送给服务器,否则向服务器发送操作失败信息;
服务器收到密钥后,通过POSIX接口在文件系统上读取文件内容,如果读取成功,则向加解密模块发送文件解密请求,请求参数为该密钥和加密数据,加解密模块利用密钥使用高级加密标准算法,也即AES算法解密加密数据,如果操作成功,则向服务器返回解密数据,否则向服务器返回操作失败信息;服务器收到解密数据后,向客户端返回解密的数据,转步骤(3);如果读取失败则向客户端发送操作失败信息,转步骤(3);
(10)服务器向密钥服务器提出密钥请求,密钥请求类型为密钥查询,密钥服务器在密钥信息表中查询密钥请求中的密钥号是否存在,是则将对应的密钥发送给服务器,否则向服务器发送操作失败信息;
服务器收到密钥后,向加解密模块发送文件加密请求,请求参数为该密钥和未加密数据,加解密模块利用密钥使用AES算法加密未加密数据,如果操作成功,则向服务器返回加密数据,否则向服务器返回操作失败信息;服务器收到加密数据后,通过,如果写入成功,则向客户端发送操作成功信息,转步骤(3);如果写入失败,则向客户端发送操作失败信息,转步骤(3);
(11)服务器向密钥服务器提出密钥请求,密钥请求类型为密钥销毁,密钥服务器在密钥信息表中查询密钥请求中的密钥号是否存在,是则删除与密钥号对应的密钥,向服务器发送操作成功信息;否则向服务器发送操作失败信息;
服务器收到操作成功信息后,通过POSIX接口在文件系统上将相应文件删除,如果删除成功,则向客户端发送操作成功信息,同时向安全管理器发送删除文件信息请求,请求参数包括文件名,安全管理器判断在文件信息表中是否存在所述文件名,是则删除该文件名对应的文件记录,向服务器发送成功信息,否则向服务器发送失败信息;服务器收到安全管理器发送的信息后,转步骤(3);如果删除失败,则向客户端发送操作失败信息,转步骤(3);
(12)服务器判断用户的数据服务请求的请求类型:新建文件转步骤(13),读文件转步骤(14),写文件请求转步骤(15),删除文件转步骤(16);
(13)服务器通过POSIX接口在文件系统上新建文件,如果新建文件成功,则向客户端发送操作成功信息,同时向安全管理器发送添加非加密文件信息请求,请求参数包括文件名、文件保密状态、文件拥有者,安全管理器在文件信息表中添加新的记录,记录文件名、文件保密状态和文件拥有者,如果操作成功,则向服务器发送成功信息;否则向服务器发送失败信息;服务器收到安全管理器发送的信息后,转步骤(3);如果新建文件失败,则向客户端发送操作失败信息,转步骤(3);
(14)服务器通过POSIX接口在文件系统上读取文件内容,如果读取成功,则向客户端发送读取的数据,转步骤(3);如果读取失败则向客户端发送操作失败信息,转步骤(3);
(15)服务器通过POSIX接口将数据写入文件系统,如果写入成功,则向客户端发送操作成功信息,转步骤(3);如果写入失败,则向客户端发送操作失败信息,转步骤(3);
(16)服务器通过POSIX接口在第三版扩展文件系统EXT3上将相应文件删除,如果删除成功,则向客户端发送操作成功信息,同时向安全管理器发送删除文件信息请求,请求参数包括文件名,安全管理器判断在文件信息表中是否存在所述文件名,是则删除该文件名对应的文件记录,向服务器发送成功信息,否则向服务器发送失败信息;服务器收到安全管理器发送的信息后,转步骤(3);如果删除失败,则向客户端发送操作失败信息,转步骤(3);
(17)安全管理器判断用户名和用户密码是否均与用户信息表中已保存的用户名和用户密码相同,是则转步骤(18);否则为非法用户,拒绝用户登陆,过程结束;
(18)允许用户登陆安全管理器,用户向安全管理器提出安全策略服务请求,转步骤(19);安全策略服务请求由请求类型和参数构成,请求类型为新建文件组时,参数为要新建的文件组名;请求类型为删除文件组时,参数为要删除的文件组名;请求类型为授予权限请求时,参数为用户名、文件组名、授予的访问权限;请求类型为撤销权限请求时,参数为用户名、文件组名、撤销的访问权限;请求类型为文件移动请求时,参数为文件名和文件组名;
(19)安全管理器收到用户的安全策略服务请求后,判断安全策略服务请求类型,新建文件组请求转步骤(20),删除文件组请求转步骤(21),授予权限请求转步骤(23),撤销权限请求转步骤(25),文件移动请求转步骤(27);
(20)安全管理器在文件组信息表中添加新的记录,记录新的文件组名及其拥有者名称,拥有者名称为该用户的用户名,如果操作成功,则向用户发送成功信息,否则向用户发送失败信息,过程结束;
(21)安全管理器判断在文件组信息表中是否存在所述文件组名且该文件组名的拥有者为该用户,是则删除该文件组名对应的文件组记录,转步骤(22),否则向用户发送失败信息,过程结束;
(22)安全管理器在权限信息表中查找该文件组名是否存在,是则删除该文件组名对应的所有记录,向用户发送成功信息,过程结束;否则过程结束;
(23)安全管理器判断在文件组信息表中是否存在所述文件组名且该文件组名的拥有者为该用户,是则转步骤(24);否则向用户发送失败信息,过程结束;
(24)判断在权限信息表中是否存在所述文件组名且用户名为该用户,是则在该文件组名对应的权限字段中添加用户请求的权限;否则在权限信息表中添加一条包括该文件组名、用户名和请求权限的新记录,过程结束;
(25)安全管理器判断在文件组信息表中是否存在所述文件组名且该文件组名的拥有者为该用户,是则转步骤(26);否则向用户发送失败信息,过程结束;
(26)判断在权限信息表中是否存在所述文件组名且用户名为该用户,是则在该文件组名对应的权限字段中删除用户请求的权限,过程结束;否则过程结束;
(27)安全管理器判断在文件组信息表中是否存在所述文件组名且该文件组名的拥有者为该用户,是则转步骤(28);否则向用户发送失败信息,过程结束;
(28)判断在文件信息表中是否存在所述文件名且该文件名的拥有者为该用户,是则将该文件名对应的文件组名修改为请求中的文件组名,向用户发送成功信息,过程结束;否则向用户发送失败信息,过程结束。
3.如权利要求2所述的文件共享方法,其特征在于:
所述步骤(1)中,用户采用安全外壳协议(SSH)、文件传输协议(FTP)或超文本传输协议(HTTP)从外网向客户端提出身份认证请求。
4.如权利要求2所述的文件共享方法,其特征在于:
所述步骤(4)中,安全管理器根据用户信息表、权限信息表和文件信息表验证该用户是否具有相应权限,包括下述过程:
(4.1)安全管理器在用户信息表中查找该用户名是否存在,存在则转步骤(4.2),否则该用户不具有相应权限;
(4.2)安全管理器在文件信息表中查找该文件名对应的文件组名是否存在,存在则转步骤(4.3),否则该用户不具有相应权限;
(4.3)安全管理器根据用户名和步骤(4.2)中获得的文件组名,在权限信息表中查找该用户名和文件组名对应的用户权限是否存在,存在则该用户具有相应权限,否则该用户不具有相应权限。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210246680.6A CN102821096B (zh) | 2012-07-17 | 2012-07-17 | 一种分布式存储系统及其文件共享方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210246680.6A CN102821096B (zh) | 2012-07-17 | 2012-07-17 | 一种分布式存储系统及其文件共享方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102821096A CN102821096A (zh) | 2012-12-12 |
CN102821096B true CN102821096B (zh) | 2014-10-29 |
Family
ID=47304953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210246680.6A Active CN102821096B (zh) | 2012-07-17 | 2012-07-17 | 一种分布式存储系统及其文件共享方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102821096B (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9052824B2 (en) * | 2012-01-26 | 2015-06-09 | Upthere, Inc. | Content addressable stores based on sibling groups |
CN103023656B (zh) * | 2012-12-17 | 2018-06-01 | 北京普泽创智数据技术有限公司 | 一种分布式顺序表权限控制方法及其系统 |
US9251363B2 (en) * | 2013-02-20 | 2016-02-02 | Varonis Systems, Inc. | Systems and methodologies for controlling access to a file system |
CN103220293B (zh) * | 2013-04-23 | 2016-05-11 | 福建伊时代信息科技股份有限公司 | 一种文件保护方法及装置 |
CN103699850A (zh) * | 2013-12-31 | 2014-04-02 | 曙光云计算技术有限公司 | 云环境下的文件处理方法和装置 |
CN103944975B (zh) * | 2014-04-03 | 2017-03-29 | 武汉大学 | 支持用户撤销的基于移动社交网络的文件安全共享方法 |
CN105656866B (zh) * | 2014-12-02 | 2019-10-22 | 华为技术有限公司 | 数据加密方法及系统 |
CN106936579A (zh) * | 2015-12-30 | 2017-07-07 | 航天信息股份有限公司 | 基于可信第三方代理的云存储数据存储及读取方法 |
CN105701417A (zh) * | 2016-01-13 | 2016-06-22 | 丁贤根 | 基于cms文件分组保密管理系统的实现方法 |
CN107423640A (zh) * | 2017-03-16 | 2017-12-01 | 努比亚技术有限公司 | 一种无线传输数据存储的方法、装置和终端 |
CN107948156B (zh) * | 2017-11-24 | 2021-10-22 | 郑州云海信息技术有限公司 | 一种基于身份的封闭式密钥管理方法及系统 |
CN108055305B (zh) * | 2017-12-06 | 2020-11-17 | 深圳市智物联网络有限公司 | 一种存储扩展方法及存储扩展装置 |
CN108399341B (zh) * | 2018-01-17 | 2020-10-30 | 中国地质大学(武汉) | 一种基于移动端的Windows双重文件管控系统 |
CN110889131B (zh) * | 2018-09-11 | 2022-04-05 | 北京金山办公软件股份有限公司 | 一种文件共享系统 |
CN109558451B (zh) * | 2018-11-14 | 2022-06-10 | 咪咕文化科技有限公司 | 一种数据管理方法及系统、存储介质 |
CN109450951B (zh) * | 2018-12-28 | 2021-06-04 | 北京思源理想控股集团有限公司 | 一种服务器端安全文件管理方法、装置及系统 |
CN110233829A (zh) * | 2019-05-17 | 2019-09-13 | 广东电网有限责任公司信息中心 | 基于分布式存储的保密信息系统及通信方法 |
CN112825515A (zh) * | 2019-11-20 | 2021-05-21 | 广州凡科互联网科技股份有限公司 | 一种对象统一存储服务平台使用方法 |
US11546137B2 (en) | 2020-02-26 | 2023-01-03 | International Business Machines Corporation | Generation of a request to initiate a secure data transfer in a computing environment |
US11184160B2 (en) | 2020-02-26 | 2021-11-23 | International Business Machines Corporation | Channel key loading in a computing environment |
US11652616B2 (en) * | 2020-02-26 | 2023-05-16 | International Business Machines Corporation | Initializing a local key manager for providing secure data transfer in a computing environment |
US11405215B2 (en) | 2020-02-26 | 2022-08-02 | International Business Machines Corporation | Generation of a secure key exchange authentication response in a computing environment |
US11502834B2 (en) | 2020-02-26 | 2022-11-15 | International Business Machines Corporation | Refreshing keys in a computing environment that provides secure data transfer |
US11489821B2 (en) | 2020-02-26 | 2022-11-01 | International Business Machines Corporation | Processing a request to initiate a secure data transfer in a computing environment |
WO2021184264A1 (zh) * | 2020-03-18 | 2021-09-23 | 华为技术有限公司 | 数据保存方法、数据访问方法及相关装置、设备 |
CN112165381B (zh) * | 2020-08-18 | 2023-12-05 | 远景智能国际私人投资有限公司 | 密钥管理系统和方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101605137A (zh) * | 2009-07-10 | 2009-12-16 | 中国科学技术大学 | 安全分布式文件系统 |
CN102546764A (zh) * | 2011-12-20 | 2012-07-04 | 华中科技大学 | 一种云存储系统的安全访问方法 |
-
2012
- 2012-07-17 CN CN201210246680.6A patent/CN102821096B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101605137A (zh) * | 2009-07-10 | 2009-12-16 | 中国科学技术大学 | 安全分布式文件系统 |
CN102546764A (zh) * | 2011-12-20 | 2012-07-04 | 华中科技大学 | 一种云存储系统的安全访问方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102821096A (zh) | 2012-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102821096B (zh) | 一种分布式存储系统及其文件共享方法 | |
CN108259169B (zh) | 一种基于区块链云存储的文件安全分享方法及系统 | |
CN106127075B (zh) | 一种云存储环境下基于隐私保护的可搜索加密方法 | |
CN102685148B (zh) | 一种云存储环境下的安全网盘系统的实现方法 | |
Li et al. | A hybrid cloud approach for secure authorized deduplication | |
CN104205123B (zh) | 用于安全的第三方数据存储的系统和方法 | |
CN102394894B (zh) | 一种基于云计算的网络虚拟磁盘文件安全管理方法 | |
US7792300B1 (en) | Method and apparatus for re-encrypting data in a transaction-based secure storage system | |
CN102687133B (zh) | 用于可信计算和数据服务的无容器数据 | |
CN102546764B (zh) | 一种云存储系统的安全访问方法 | |
CN113961535A (zh) | 一种基于区块链的数据可信存储共享系统与方法 | |
CN102483792A (zh) | 用于共享文档的方法和装置 | |
CN104009987A (zh) | 一种基于用户身份能力的细粒度云平台安全接入控制方法 | |
KR101285281B1 (ko) | 자가조직 저장매체의 보안 시스템 및 그 방법 | |
CN107612910A (zh) | 一种分布式文件数据访问方法及系统 | |
WO2013013581A1 (zh) | 一种文档权限管理方法、装置及系统 | |
CN106326666A (zh) | 一种健康档案信息管理服务系统 | |
Periasamy et al. | Efficient hash function–based duplication detection algorithm for data Deduplication deduction and reduction | |
CN103139143A (zh) | 数字版权管理的方法、系统和服务器 | |
Shen et al. | Design of trusted aviation data exchange platform based on blockchain | |
CN105159919A (zh) | 一种数据多副本关联的方法及系统 | |
Wu et al. | [Retracted] Application of Symmetric Encryption Algorithm Sensor in the Research of College Student Security Management System | |
Tian et al. | A trusted control model of cloud storage | |
Sun et al. | Research of data security model in cloud computing platform for SMEs | |
CN107786662A (zh) | 一种高效率的通信信息处理方法 |
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 |