1、2023.6电脑编程技巧与维护1概述随着数字化时代的推进1,云存储已经成为存储和管理数据的首选方式,云存储给使用者提供了方便的数据存储、备份和恢复功能,节省了管理开销并提高了资源的利用,但是目前国内的云存储系统都是由单一或自己作为云存储提供商2,导致不少用户都出现了存储在云端的敏感信息被泄漏的问题。在云存储环境下,数据拥有者失去了对于数据的完全控制。对于敏感数据存放在由他人控制的云存储环境,随着共用云存储环境的使用者增多,数据的安全问题越发严重。针对上述问题,设计一种由用户云存储数据隐私驱动的分布式云存储系统方案,在存储集群层中结合Tahoe-LAFS3同云存储提供商共同部署,对用户存储文件进
2、行AES4加密,纠删码冗余处理后的密文分发到不同的云存储提供商中,允许用户自身控制文件访问权限,并保证通过Merkle Tree5校验存储在云环境下文件的完整性。此测试实验证实了在大存储集群的情况下,文件的上传和下载的性能也得到了保证。2相关技术2.1纠删码纠删码6技术是一种数据存储的容错技术,它的主要作用是在不损失数据的情况下,保障数据存储的完整性9。纠删码通过将数据分割成若干块,并将这些数据分别存储在不同的位置上,从而形成一个备份系统。文献7描述纠删码在分布式存储领域的应用,相较于多副本备份,以更低的存储开销提供相同甚至更高的数据可靠性。2.2MerkleTreeMerkle Tree是一
3、种树形结构的数据结构,将数据分成若干个小数据块,对小数据块通过哈希函数计算,得到其散列值映射,并将多个散列值从叶节点开始进行树形构建,最终会形成一个Merkle Root。由于哈希函数的单向性和不可逆性,任何对数据块的修改都会导致其散列值的变化,进而改变整个Merkle Tree的结构和Merkle Root的值。在分布式系统中,Merkle Tree可以用于验证数据副本的一致性,确保不同节点之间的数据一致。3系统设计3.1系统架构分布式云存储系统主要由3部分组建构成:用户层、网关层和存储集群层。系统的架构如图1所示。用户层主要负责用户的请求,在用户层面不存储实际的文件内容,只是展示文件的元数
4、据,在用户层上进基金项目:郑州师范学院大学生科研创新基金资助(项目编号为DCZ2021011);郑州师范学院大学生科研创新基金资助(DCZ2022006);郑州师范学院大学生科研创新基金资助(项目编号为S202212949011)。作者简介:刘光享(2000),男,本科,研究方向为区块链;刘深(2003),男,本科,研究方向为数据安全;刘峻成(2000),男,本科,研究方向为区块链。隐私驱动的分布式云存储系统刘光享,刘深,刘峻成(郑州师范学院,郑州450045)摘要:近年来,云存储服务商频繁发生用户隐私泄露事件,引起了广泛关注。为了解决用户在云存储中面临的数据安全和隐私保护问题,基于分布式存储
5、,纠删码和高级加密标准(AES)加密等技术,通过 AES 等加密技术对文件内容进行加密处理,确保存储数据安全,通过纠删码进行数据冗余备份,确保存储数据的可靠性和可用性。实验结果验证了其在云存储环境下的数据安全和隐私问题,相对于其他云盘上传性能提高了 10%。关键词:分布式存储;数据隐私保护;云存储;数据完整性;数据安全图1系统架构存储集群层用户层数据加解密数据完整性检测RESTFUL接口纠删码冗余处理BufferNetworkHTTPSJSON网关层服务注册心跳监测服务发现路由策略Network云存储服务器A1云存储服务器B1云存储服务器C1云存储服务器D1云存储服务器A2云存储服务器B2云存
6、储服务器C2云存储服务器D2阿里云腾讯云百度云京东云92DOI:10.16184/prg.2023.06.0462023.6电脑编程技巧与维护行数据加密保证了数据的隐私性10,因为数据在传输到其他部分之前已经被加密处理。该层也负责控制文件的存储、下载和删除操作,并提供交互式界面以满足用户需求。网关层充当客户端和存储服务器之间的中间件层。它记录存储服务器节点之间的通信信息,负责客户端和存储服务器节点之间的通信,降低了多主机配置的复杂性。存储集群层使用海量云存储提供可扩展和相对可靠的存储空间,负责加密数据的存储。存储层存储文件的冗余数据块,确保即便单一节点故障,也可以通过纠删码手段实现加密存储数据
7、恢复。3.2文件存储存储的文件内容格式可以分为两种文件存储格式,即可变文件和不可变文件。(1)不可变文件,每一个不可变文件的内容对应着唯一的标识统一资源标识符(URI),不可变文件的内容一旦被存储,就不能被修改。不可变文件的存储方式也更加安全,因为它们不能被意外修改或破坏。(2)可变文件是一种允许用户修改和更新的文件类型。可变文件的更新可以通过对原始数据的修改、添加、删除或者其他操作实现。可变文件在实际应用中需要高效地处理,以保证用户对文件的实时修改能够被及时记录下来,可变文件对应着唯一的RSA key11,在每次更新文件内容产生,通过密钥对文件内容进行数字签名,可以确保文件在传输过程中不被篡
8、改。3.3文件可靠性不可变文件是以文件的形式存储文件的,它的内容可以在任何时候被修改。可变文件的修复功能主要是用于确保修改过程的安全性和正确性。对于可变文件,每个版本都会被切割成多个数据块,并采用纠删码进行编码。在存储时,将每个数据块存储在不同的存储节点上,以确保数据的可靠性和可用性。当某个数据块发生故障时,会从其他存储节点中获取对应的编码片段进行修复12,数据修复过程如图2所示。在新版本的生成过程中,对不同版本之间的差异进行编码,以减少数据的传输量,提高数据传输效率。3.4文件完整性系统会对每个数据块计算哈希值以保证文件的完整性,进一步组成多棵Merkle Tree,并且对于多数据块组成的共
9、享文件也会组成多棵Merkle Tree,如图3所示。采用Merkle Tree保证文件完整性的优点是当数据块文件内容发生合法修改时,只会影响当前数据块文件的叶子节点到ROOT节点路径上的哈希值,这使对共享文件修改的验证哈希的修改时间复杂度是O(logh),其中,h是Merkle Tree的树高。当需要校验共享文件的完整性时,只需要使用Merkle Tree的ROOT节点哈希值进行校验,而不需要校验所有数据块的哈希值。这种方法可以大大降低网络开销,同时保证文件的完整性。3.5文件管理分布式云存储系统中对于文件的索引管理使用唯一标识统一资源定位符(URL)进行层次化区分管理。文件上传如图4所示。
10、用户首先将待上传的文件发送到用户层。对文件内容进行分块并进行加密。用户层在对文件进行纠删码处理后被分成多个数据块,并生成了一些冗余数据块。将所有的数据块建立成多棵Merkle Tree,以便后续验证文件的完整性。数据块经过HTTPS会被分布式存储在多图2数据修复过程图3数据块哈希值组成的Merkle Tree图4文件上传存储节点A存储节点B存储节点CblockblockblockblockblockblockblockblockblockblockblockblockblockblockblockblockblockblockHASH(abcd)HASH(ab)HASH(cd)HASH(a)H
11、ASH(b)HASH(c)HASH(d)data blockAdata blockBdata blockCdata blockD用户1:存储数据文件用户层SHA2562生成散列值AES加密3密文4data blockdata blockdata blockdata blockdata blockdata block5校验Merkle Tree纠删码冗余备份数据块数据块数据块存储设备A存储设备B存储设备C存储设备D网关层932023.6电脑编程技巧与维护图5下载文件个存储服务器节点上。用户执行下载文件操作,如图5所示。客户端需要获取文件的存储索引及存储服务器节点的地址,向存储服务器节点发送请求对
12、应数据块的内容,存储服务器在接收到请求后,传送给客户端,在客户端节点确认接收到所有的数据块内容之后通过纠删码合并成完整的文件,进行解密之后得到原始文件。3.6系统扩容系统存储集群可以通过新增存储服务器来扩展总容量。当新增存储服务器启动后,它会向网关报告自己的状态。网关会将这个状态与自己内存中记录的所有存储服务器的状态进行比较,如果发现有新增的存储服务器,就会将其加入活动存储服务器队列中。负载均衡机制将上传请求导向新增的存储服务器组,从而使其开始提供服务。这样就实现了系统的动态扩容。4系统测试对隐私驱动的分布式云存储系统的功能及性能进行一系列测试,验证其在不可信的云环境下所能提供的数据隐私保护、
13、用户的检测及对读写性能进行的测试。测试环境配置搭建了10个存储服务器节点、1个网关服务器、1个客户端节点来对文中分布式云存储系统进行数据隐私保护存储及读写性能的测试。存储服务器节点的硬件配置如表1所示,客户端节点的硬件配置如表2所示。4.1数据隐私保护存储测试针对数据隐私保护存储的测试包含两个方面,(1)存储数据在云环境下的隐私性;(2)存储数据在云环境下被篡改的检测。数据隐私存储测试的结果如表3所示。4.2读写性能测试选择32 kB、64 kB、128 kB、256 kB、512 kB、32 MB、64 MB、128 MB、256 MB、512 MB等不同大小的文件进行批量上传和下载,记录上
14、传时间重复多次实验,记录平均值。相比于其他云盘,在传输小文件时文中的分布式云存储系统需要执行额外的操作,包括数据分块、加密、纠删码等操作。这些操作对于小文件来说可能会占用相对较多的传输时间,因为系统需要对每个小文件执行一系列的处理,所以在传输小文件时,文中分布式云存储系统的平均上传和下载时间比其他云盘更长,如图6和图7所示。操作系统Ubuntu 18.04 TLSCPUIntel(R)Xeon(R)W-22353.80 GHz内存16 GB网络带宽20 MB表1存储服务器节点的硬件配置操作系统Ubuntu 18.04 TLSCPU2 GHz四核Intel Core i5内存16 GB网络带宽2
15、0 MB表2客户端节点的硬件配置测试内容测试结果存储数据在云环境下的隐私性在云环境下的存储数据通过特定的格式在加密后进行存储,文件内容为乱码,无法得知文件明文存储数据在云环境下篡改的检测通过Merkle Tree检测,ROOT哈希不匹配,检测到存储数据被修改表3数据隐私存储测试的结果图7小文件下载测试结果图6小文件上传测试结果1000ms800ms600ms400ms200ms0ms32kB64kB128kB256kB512kB其他云盘文中分布式云存储系统800ms600ms400ms200ms0ms32kB 64kB128kB256kB512kB文中分布式云存储系统其他云盘网关存储服务器节点
16、存储服务器节点存储服务器节点data block data blockdata block data blockdata block data block密文解密明文用户层用户data blockdata blockdata blockdata blockdata blockdata block942023.6电脑编程技巧与维护50000ms40000ms30000ms20000ms10000ms0ms文中分布式云存储系统其他云盘64MB32MB128MB256MB512MB动化杂志,2018(385):62-64.9唐婷.基于Python的网络图片爬虫技术J.信息与电脑,2020(18):1
17、76-178.10王金峰.基于Python的关于Flickr图片网站的爬虫J.中小企业管理与科技,2019(1):182-183.11涂辉.Python3编程实现网络图片爬虫J.电脑编程技巧与维护,2017(23):21-22.12仇明.基于Python的图片爬虫程序设计J.工业技术与职业教育,2019,17(1):1-3.图8大文件上传测试结果在文中分布式云存储系统中,随着上传文件大小的增加,由于采用的分块策略,将大文件分割成更小的数据块进行处理,可以有效处理和上传,上传文件的性能较其他云盘提高了10%。对于较大的文件进行分块可以更有效地利用存储服务器的存储空间,减少存储冗余和浪费,如图8和
18、图9所示。5结语针对用户存储数据在云环境下的隐私问题,介绍一种隐私驱动的分布式云存储系统,确保用户可以在云环境存储中的数据安全,得到隐私保护,验证了其在云环境存储下所提供的数据隐私保护、用户检测功能及读写性能。下一步,将继续优化系统对于文件的共享及权限控制,以满足不同需求。参考文献1MACKO P,HENNESSEY J.Survey of Distributed FileSystem Design Choices J.ACM Transactions on Stor-age(TOS),ACM New York,NY,2022,18(1):1-34.2ADYA A,BOLOSKY W,CAST
19、RO M,et al.FARSITE:Federated,available,and reliable storage for an incom-pletely trusted environment/Proceedings of the 5thSym-posium on Operating Systems Design and Implementa-tion.San Francisco,USA,2002:1-14.3薛矛,薛巍,舒继武,等.一种云存储环境下的安全 存 储 系 统J.计 算 机 学 报,2015,38(5):987-998.4RIVEST R L,SHAMIR A,ADLEMA
20、N L.A method forobtaining digital signatures and public-key cryptosys-tems J.Communications of the ACM,ACM NewYork,NY,USA,1978,21(2):120.5SZYDLO M.Merkle tree traversal in log space andtime A.Eurocrypt C.Springer,2004,3027:541-554.6罗象宏,舒继武.存储系统中的纠删码研究综述J.计算机研究与发展,2012,49(1):1-11.7王意洁,许方亮,裴晓强.分布式存储中的
21、纠删码容错技术研究J.计算机学报,2017,40(1):236-255.8孙知信,张鑫,相峰,等.区块链存储可扩展性研究进展J.软件学报,2021,32(1):1-20.9BENET J.Ipfs-content addressed,versioned,p2p filesystem J.arXiv preprint arXiv,2014:1407.10冯朝胜,秦志光,袁丁.云数据安全存储技术J.计算机学报,2015,38(1):150-163.11 SELENT D.Advanced encryption standard J.RivierAcademic Journal,2010,6(2):1-14.12 LI X,LI R,LEE P P,et al.OpenEC:Toward Unified andConfigurable Erasure Coding Management in DistributedStorage Systems.A.FAST C.2019:331-344.图9大文件下载测试结果100000ms80000ms60000ms40000ms20000ms0ms文中分布式云存储系统其他云盘64MB32MB128MB256MB512MB(上接第61页)95