CN104219232B - 一种块式分布式文件系统的文件安全控制方法 - Google Patents

一种块式分布式文件系统的文件安全控制方法 Download PDF

Info

Publication number
CN104219232B
CN104219232B CN201410423924.2A CN201410423924A CN104219232B CN 104219232 B CN104219232 B CN 104219232B CN 201410423924 A CN201410423924 A CN 201410423924A CN 104219232 B CN104219232 B CN 104219232B
Authority
CN
China
Prior art keywords
user
subsystem
file
version
client
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
CN201410423924.2A
Other languages
English (en)
Other versions
CN104219232A (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201410423924.2A priority Critical patent/CN104219232B/zh
Publication of CN104219232A publication Critical patent/CN104219232A/zh
Application granted granted Critical
Publication of CN104219232B publication Critical patent/CN104219232B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种块式分布式文件系统的文件安全控制方法,其将分布式存储系统在逻辑上分为多个子系统,每个子系统包含一超级用户和用户列表文件,子系统采用公钥加密算法,超级用户的私钥离线保存,用户的私钥生成后只保存在客户端;子系统采用对所有操作进行log记录,并使用Hash树对log进行摘要处理,客户端保留最近一次操作Hash树根节点的哈希值,通过对比客户端和服务端的哈希值判断文件系统是否被非法修改,同时采用version‑vector算法检查多用户操作的文件系统的一致性。本发明为分布式文件系统在提供了存储安全和信任管理,即使在服务端不可靠的情况下,仍然能够检测出文件是否可靠正确。

Description

一种块式分布式文件系统的文件安全控制方法
技术领域
本发明属于分布式系统安全技术领域,具体涉及一种块式分布式文件系统的文件安全控制方法。
背景技术
随着网络技术的发展,当今社会对数据存储和共享的需求在逐渐加大,分布式和网络化的技术也得到越来越广泛的应用。但是随着数据在物理级别上脱离了用户,导致了数据可能在网络存储中遭受泄露以及篡改的机会增加,因此如何让用户放心地将数据共享,同时也能保证数据的机密性和完整性显得愈加重要。
数据存储的安全性主要包括存储的机密性和完整性。数据存储的完整性指的是数据在传输和存储过程中,确保信息不被非法篡改或者是数据的非法篡改能被合法用户迅速发现,为用户提供的一种完整性保护的方法。数据存储的机密性指的是数据对于没有访问权限的用户(也可以称为非法用户)将是未知的,没有访问权限的用户无法从数据中获取关于其想得到的信息。
在以HDFS(HadoopDistributedFileSystem)为代表的块式分布式文件系统中,通常的做法是对数据块进行逐个校验。这种方法可以有效的判断因为程序、硬件出错等非人为因素导致的坏数据,但是无法防止非法用户恶意的修改数据和校验码以达到攻击系统的目的,同时这种扫描的方式是线性的,效率也很低。
在分布式的存储环境中,由于分布式系统容量巨大,对整个文件系统的所有数据进行加密是不大实际的,所以通常的做法是在应用层构建一个安全认证层;例如在Hadoop中的安全控制策略是基于kerberos协议的安全认证以及基于ACL的访问控制机制,是构建与HDFS基础之上的应用层安全协议。
上述两种安全机制有一个共同的缺点,它们要求服务端是可靠的。如果服务端被攻击者控制,那么上述两种安全策略就会失效。
发明内容
针对现有技术所存在的上述技术问题,本发明提供了一种块式分布式文件系统的文件安全控制方法,在不可靠的分布式文件系统中,为合法用户提供文件的访问控制,并且可以快速检测对用户文件的非法修改。
一种块式分布式文件系统的文件安全控制方法,如下:
所述的分布式文件系统分为多个文件存储子系统,各子系统之间相互独立且为不同类型的用户提供存储服务;每个子系统包含一管理员和一用户列表,所述的管理员不访问子系统中存储的文件,其只负责维护用户列表;
子系统采用非对称公钥加密算法即:管理员拥有一公钥和一私钥,其公钥和私钥由分布式文件系统的根密钥签发生成;每个访问子系统的用户也拥有一公钥和一私钥,其公钥和私钥由管理员签发生成;管理员的私钥采用离线保存且只在向用户签发私钥时才使用,用户的私钥只保存在用户的客户端;
所述的用户列表存有各用户的用户信息和公钥以及管理员的公钥。
用户利用其私钥对发送给子系统的文件修改操作内容进行摘要并电子签名,子系统利用用户的公钥对用户发送的摘要信息进行认证;同时,子系统利用用户的公钥对发送给用户客户端的相关文件进行加密,用户利用其私钥对该相关文件进行解密。
初始情况下,子系统对供用户访问的所有文件构建Hash树,并将该Hash树拷贝至各用户的客户端,所述的Hash树的根对应为上述所有文件集合的摘要并记为i-handle。
对于任一用户,每次对子系统进行文件修改操作前,先向子系统请求版本向量结构,并比较客户端中的版本向量结构与子系统当前的版本向量结构:
若客户端版本向量结构中存在有其他用户的版本序号小于子系统当前版本向量结构中对应用户的版本序号,用户则向子系统请求其他用户对子系统文件修改操作的相应摘要信息,并利用这些摘要信息对客户端中的Hash树进行更新;
若客户端版本向量结构中本用户的版本序号与子系统当前版本向量结构中的不一致,则表明子系统文件被非法篡改,进而报告用户。
所述的版本向量结构包含i-handle和版本向量,所述的版本向量中每个元素的版本序号对应为每个用户对于子系统文件修改操作的次数。
用户每次对子系统进行文件修改操作过程中,先利用私钥对文件修改操作内容进行摘要并电子签名,进而根据生成的摘要信息对客户端中的Hash树进行更新,最后将文件修改操作内容及其摘要信息发送给子系统;
子系统利用用户的公钥对用户发送的摘要信息进行认证,认证通过后根据用户发送的文件修改操作内容对子系统中文件进行修改操作,修改操作完成后子系统利用摘要信息对子系统中的Hash树进行更新,同时保留该摘要信息并对其进行索引,进而更新子系统中的版本向量结构:即将当前版本向量结构中的i-handle替换为子系统更新后的Hash树的i-handle,将当前结构版本向量中对子系统进行文件修改操作的用户的版本序号加1,其他用户的版本序号维持不变。
用户每次完成对子系统文件修改操作后,通过对比客户端中Hash树根的哈希值与子系统中Hash树根的哈希值,以判断子系统是否被非法篡改。
用户每次完成对子系统文件修改操作后,对客户端的版本向量结构进行更新:即以操作前向子系统请求的版本向量结构为基础,将该结构中的i-handle替换为客户端更新后的Hash树的i-handle,将该结构版本向量中本用户的版本序号加1,其他用户的版本序号维持不变。
在分布式文件系统规模不断扩大和信息安全日益重要的背景下,做为实现数据存储和共享的核心部分,本发明为分布式文件系统在提供以下两种安全保护:
存储安全,保证用户在文件系统中存储的数据不被未授权的用户窃取、篡改和破坏。
信任管理,帮助用户判断共享文件的可信任性。现有的分布式文件系统对存储安全以及文件可信度方面做的很不足。传统分布式系统数据可靠性必须依赖于服务端的可靠性,而本发明提供一种即使在服务端不可靠的情况下,仍然能够检测出文件是否可靠正确的方法。
附图说明
图1为本发明方法的步骤流程示意图。
图2为用户版本向量结构的示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
如图1所示,一种块式分布式文件系统的文件安全控制方法,如下:
步骤1,分布式存储系统在逻辑上分为多个存储文件系统,每个文件系统包含一个超级用户(即管理员),用户列表文件,逻辑文件系统之间相互独立,为不同类型用户提供存储服务;
块式分布式文件系统在逻辑上分为多个逻辑文件系统,每个逻辑系统通过一对非对称密钥进行权限控制。分布式文件系统中拥有一个根密钥用于生成逻辑文件系统的密钥。逻辑文件系统中的公钥在用户之间共享。
步骤2,每个逻辑文件系统采用非对称公钥加密算法,超级用户对应有一个公钥和私钥,每个用户拥有一个公钥和私钥,用户的公私钥由超级用户签发生成,文件系统操作信息以及哈希值的传输都是用公钥算法进行加密,防止在网络传输的过程中被窃听和篡改;
每个逻辑文件系统维护一个用户列表文件,超级用户的私钥用于签发每个新建用户的私钥,每个用户的私钥一旦生成,并由用户保存,用户的公钥在本逻辑系统内共享,文件系统通过用户的公钥完成对用户的认证以及对用户相关信息的摘要和加密。用户通过私钥对服务端的信息进行解密。
步骤3,为了最大程度保证数据的安全,超级用户的私钥离线保存,只在向用户签发私钥时才使用,用户的私钥生成后只保存在用户端。
步骤4,系统采用对所有操作进行log记录,并使用Hash树对log进行摘要处理,客户端保留最近一次操作hash树根节点的哈希值,通过对比客户端和服务端的哈希值判断文件系统是否被非法修改;
对于每个用户能够访问的所有文件,构建Hash树。Hash树的根对应该用户文件集合的摘要,记为i-handle;Hash树的摘要算法采用SHA-1hash算法。
用户的每一次对文件系统的操作都是使用非对称密钥的签名机制防止用户的操作被攻击者篡改。具体地,用户每次与服务端的通信包括两个部分:具体地操作内容,具体操作内容的SHA-1摘要,该摘要使用用户的私钥进行签名。
文件系统系统保留每个用户的操作的摘要消息,并通过用户的公钥和具体的消息号进行索引。
用户每一次修改操作,都会对i-handle进行更新,由于Hash树的特点,更新的效率很高。用户端保留最后一次操作的i-handle,每次操作时通过对比客户端和服务端的哈希值判断文件系统是否被非法修改。
步骤5,对于一个逻辑文件系统中的多个用户,采用version-vector算法检查多用户操作的文件系统的一致性;
当一个逻辑文件系统存在多个用户的时候,每个用户的i-handle都存在于一个向量结构(versionstructure)中,以下简称VS。逻辑文件系统中的每个用户在做具体的操作时,都通过这个结构与逻辑文件系统进行交互,其结构如图2所示。除了必须包含该用户的i-handle之外,VS还要包含一个向量结构,向量的每个坐标值对应一个逻辑文件系统中每个用户的拥有的版本号。
当用户U执行文件系统操作,U获取全局锁,并下载用户所在逻辑文件系统中每个用户的VS结构,这个VS列表简称为VSL。(许多在VSL的传输可以免去,如果只有少数的用户改变了结构版用户最后的操作)首先客户端利用VSL,检测文件系统是否冲突,如果出现冲突,则报告用户,意味着存在着文件系统有可能被非法篡改。
客户端然后计算出一个新版本结构Z,并更新i-handle和设置在Z的版本号,以反映当前的文件系统状态。具体地,Z的更新算法如下,客户端首先拷贝用户U原先的i-handle到Z中,如果用户进行的是文件更新操作,那么客户端计算新i-handle并保存在Z中。对于Z中VS的生成操作具体如下:设z为用户U原先的向量结构,p代表一个特定的用户,z[p]代表用户p在用户U的向量结构中的版本值。z[u]=z[u]+1,z[p]=z[p](p不等于u)。
对于任意的两个向量版本结构x和y,对于任意p如果x[p]<=y[p],则x<=y。如果两个向量结构x和y既不满足x<=y也不满足x>=y,则说明两个向量结构存在冲突。

Claims (2)

1.一种块式分布式文件系统的文件安全控制方法,如下:
所述的分布式文件系统分为多个文件存储子系统,各子系统之间相互独立且为不同类型的用户提供存储服务;每个子系统包含一管理员和一用户列表,所述的管理员不访问子系统中存储的文件,其只负责维护用户列表;
子系统采用非对称公钥加密算法即:管理员拥有一公钥和一私钥,其公钥和私钥由分布式文件系统的根密钥签发生成;每个访问子系统的用户也拥有一公钥和一私钥,其公钥和私钥由管理员签发生成;管理员的私钥采用离线保存且只在向用户签发私钥时才使用,用户的私钥只保存在用户的客户端;
所述的用户列表存有各用户的用户信息和公钥以及管理员的公钥;
用户利用其私钥对发送给子系统的文件修改操作内容进行摘要并电子签名,子系统利用用户的公钥对用户发送的摘要信息进行认证;同时,子系统利用用户的公钥对发送给用户客户端的相关文件进行加密,用户利用其私钥对该相关文件进行解密;
初始情况下,子系统对供用户访问的所有文件构建Hash树,并将该Hash树拷贝至各用户的客户端,所述的Hash树的根对应为上述所有文件集合的摘要并记为i-handle;
对于任一用户,每次对子系统进行文件修改操作前,先向子系统请求版本向量结构,并比较客户端中的版本向量结构与子系统当前的版本向量结构:
若客户端版本向量结构中存在有其他用户的版本序号小于子系统当前版本向量结构中对应用户的版本序号,用户则向子系统请求其他用户对子系统文件修改操作的相应摘要信息,并利用这些摘要信息对客户端中的Hash树进行更新;
若客户端版本向量结构中本用户的版本序号与子系统当前版本向量结构中的不一致,则表明子系统文件被非法篡改,进而报告用户;
用户每次对子系统进行文件修改操作过程中,先利用私钥对文件修改操作内容进行摘要并电子签名,进而根据生成的摘要信息对客户端中的Hash树进行更新,最后将文件修改操作内容及其摘要信息发送给子系统;
子系统利用用户的公钥对用户发送的摘要信息进行认证,认证通过后根据用户发送的文件修改操作内容对子系统中文件进行修改操作,修改操作完成后子系统利用摘要信息对子系统中的Hash树进行更新,同时保留该摘要信息并对其进行索引,进而更新子系统中的版本向量结构:即将当前版本向量结构中的i-handle替换为子系统更新后的Hash树的i-handle,将当前结构版本向量中对子系统进行文件修改操作的用户的版本序号加1,其他用户的版本序号维持不变;
用户每次完成对子系统文件修改操作后,通过对比客户端中Hash树根的哈希值与子系统中Hash树根的哈希值,以判断子系统是否被非法篡改;
用户每次完成对子系统文件修改操作后,对客户端的版本向量结构进行更新:即以操作前向子系统请求的版本向量结构为基础,将该结构中的i-handle替换为客户端更新后的Hash树的i-handle,将该结构版本向量中本用户的版本序号加1,其他用户的版本序号维持不变。
2.根据权利要求1所述的文件安全控制方法,其特征在于:所述的版本向量结构包含i-handle和版本向量,所述的版本向量中每个元素的版本序号对应为每个用户对于子系统文件修改操作的次数。
CN201410423924.2A 2014-08-26 2014-08-26 一种块式分布式文件系统的文件安全控制方法 Active CN104219232B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410423924.2A CN104219232B (zh) 2014-08-26 2014-08-26 一种块式分布式文件系统的文件安全控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410423924.2A CN104219232B (zh) 2014-08-26 2014-08-26 一种块式分布式文件系统的文件安全控制方法

Publications (2)

Publication Number Publication Date
CN104219232A CN104219232A (zh) 2014-12-17
CN104219232B true CN104219232B (zh) 2017-05-10

Family

ID=52100366

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410423924.2A Active CN104219232B (zh) 2014-08-26 2014-08-26 一种块式分布式文件系统的文件安全控制方法

Country Status (1)

Country Link
CN (1) CN104219232B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104765807B (zh) * 2015-04-02 2018-01-16 中国人民解放军信息工程大学 一种分布式文件系统的拟态防窃取方法
CN105429791B (zh) * 2015-11-03 2016-12-28 国网技术学院 一种分布式服务状态检测器及方法
WO2018058556A1 (en) * 2016-09-30 2018-04-05 Intel Corporation Technology to provide secure key protection and flexible file sharing in encrypted file system
CN107220559B (zh) * 2017-06-11 2023-07-07 南京安链数据科技有限公司 一种针对不可篡改文件的加密存储方法
US11126755B2 (en) * 2018-01-30 2021-09-21 Hewlett Packard Enterprise Development Lp Object signatures in object stores
CN110247894B (zh) * 2019-05-16 2021-06-18 中国联合网络通信集团有限公司 一种识别伪造handle服务器的方法及装置
CN116366252B (zh) * 2023-03-17 2024-01-30 北京信源电子信息技术有限公司 基于DOA的handle标识解析技术的数据保护方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103391185A (zh) * 2013-08-12 2013-11-13 北京泰乐德信息技术有限公司 一种轨道交通监测数据的云安全存储和处理方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103391185A (zh) * 2013-08-12 2013-11-13 北京泰乐德信息技术有限公司 一种轨道交通监测数据的云安全存储和处理方法及系统

Also Published As

Publication number Publication date
CN104219232A (zh) 2014-12-17

Similar Documents

Publication Publication Date Title
CN111130757B (zh) 一种基于区块链的多云cp-abe访问控制方法
CN104219232B (zh) 一种块式分布式文件系统的文件安全控制方法
AU2017269736B2 (en) Multiple-link cryptologic blockchain
CN108322306B (zh) 一种基于可信第三方的面向隐私保护的云平台可信日志审计方法
US11341261B2 (en) Integration of a block chain, managing group authority and access in an enterprise environment
CN106330452B (zh) 一种用于区块链的安全网络附加装置及方法
EP3149651B1 (en) System and method for secure review of audit logs
US9703981B1 (en) Mobile device data encryption
US9317708B2 (en) Hardware trust anchors in SP-enabled processors
Yu et al. Improved security of a dynamic remote data possession checking protocol for cloud storage
US11151259B2 (en) Method and system for data security, validation, verification and provenance within independent computer systems and digital networks
US20100325732A1 (en) Managing Keys for Encrypted Shared Documents
KR102555164B1 (ko) 데이터에 대한 액세스 인에이블링
US20110126008A1 (en) Method and Apparatus for Sharing Documents
CN104580487A (zh) 一种海量数据存储系统及处理方法
CN104601579A (zh) 一种保障信息安全的计算机系统及其方法
Manthiramoorthy et al. Comparing several encrypted cloud storage platforms
US20200042497A1 (en) Distributed ledger system
US11604888B2 (en) Digital storage and data transport system
GB2489676A (en) Overlay network comprising management node controlling access of subordinate nodes
US8499357B1 (en) Signing a library file to verify a callback function
Lin et al. MDFS: A mimic defense theory based architecture for distributed file system
Adlam et al. Applying Blockchain Technology to Security-Related Aspects of Electronic Healthcare Record Infrastructure
Alderman et al. A framework for the cryptographic enforcement of information flow policies
CN106411826A (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
GR01 Patent grant
GR01 Patent grant