论文部分内容阅读
随着计算机和网络的高速发展,越来越多的云平台为人们的工作和生活提供了各式各样高效的云服务。人们可以通过这些云服务来便利自己的生活或者工作。比如,人们可以通过一个公共的云存储平台在上面分享自己的信息或文件使得其他人能够得到这个文件并对其进行后续的协同工作。如今像这样的通过用户间进行信息或文件分享的方式来达到数据交互进行协同工作或者是通过分享文件来进行互相帮助的场景十分普遍。与此同时,将数据存储到云存储平台或者是内部服务器上从而让其他用户能够共享这些数据意味着将数据的安全和完整性全部交由平台服务提供商的安全策略来维护。这也就意味着用户的数据安全完全依赖于对于第三方平台的信赖。将信任依赖于第三方证书机构或者是云平台自建的安全机制上这样的单一信赖的安全策略确实能够起到一定的保护作用,但是这样的做法在危害发生的时候将危险全部转移到了用户自己身上,造成了用户和平台间的安全信息不对称的结果,用户所掌握到的信息的来源全部都是由第三方平台进行维护,使得用户无法自行对其进行验证。因此,本文将区块链技术应用到现有的信息分享验证的环节上,大部分传统的解决方案仅仅将验证部分关注的重点放在如何保护文件的一致性和不被篡改上面,这样的做法存在着一个问题,这些手段大部分都是依靠云平台系统自身进行着维护,一旦云平台自身出现问题,这些安全措施将不再能起到任何有效的作用。反之,由于区块链是一个去中心化的系统,因此本文的验证系统并不需要占用原本云平台的计算资源就能够完成独立的验证操作,云平台能够利用原本进行验证的资源更好地完成其它的计算任务。并且由于区块链在安全方面的一些特性,本文也能够解决在验证环节中可能出现的安全问题。本文根据区块链的特性和验证所需要达到的目标,制定了两种区块结构。分别是用来为用户来注册待分享信息的身份所有权的身份区块,以及当验证发生失败时能够使得分享操作能够顺利进行的内容区块。用户通过注册和查询身份区块能够保证接收待分享信息的用户能够知道自己接收到的文件是否就是原持有人希望分享的文件。同时,如果验证发生了失败,用户可以选择通过注册对应的内容区块,使得接收信息的用户通过查询函数获得内容区块并进一步进行合并得到原始的分享文件数据。通过这样的方式使得分享的数据即使在云平台中遭到了篡改,但是接收分享数据的用户也能提前得知,使得篡改文件造成的危害不会被扩散。同时还能根据原持有人是否希望分享信息一定要安全到达接收人手里的需求,通过注册对应的内容区块使得待分享的数据能安全地到达接收方用户手里。另外,本文通过搭建仿真系统对于论文中设计的基于区块链的安全分享的验证系统进行了功能上的测试和检验。通过测试系统对于一般文件分享过程和对于被篡改过的文件分享过程进行了两组实验。分别检验系统中的身份区块和内容区块是否能很好地达到论文提出的目的。通过验证,本文发现身份区块的存在能有效地达到对分享数据进行验证的功能,同时本文也能在文件被篡改时通过查询内容区块获得未篡改的原始数据。本文还测试了区块的长度对于系统性能的影响,发现造成的开销基本可以忽略不计。最后,本文通过对几个主流哈希函数进行对比,从而选取了其中最符合本文要求的并进行了实现。