一种基于区块链云存储的文件安全分享方法及系统与流程

文档序号:14879010发布日期:2018-07-07 09:13阅读:155来源:国知局

本发明属于数据存储技术改进领域,尤其涉及一种基于区块链的去中心化存储架构下的数据安全存储及分享方法及系统。



背景技术:

目前,云存储已经是一项高度商业化的产业。随着存储技术的发展,存储设备的成本越来越低,因此很多用户自身都可以拥有大量的存储资源。当前中心化云服务的成本主要来自于员工工资、法律成本、数据中心租金等,这些固定成本维持不变或者逐渐增加,使中心化云服务的价格相对较高。而去中心化存储可以充分利用分散用户的空闲存储资源,整体运行成本只有中心化存储的1%~10%。图1是一家开源、去中心化的存储平台storj制作的成本图,比较了去中心化存储系统storj与传统中心化存储系统dropbox的成本。

另一方面,当前的云存储模式需要通过云服务提供商以及第三方机构来授权和管理个人数据的存储与访问。用户基于对服务商的信任将数据通过网络上传到服务商的存储系统,当用户需要数据时则从服务商处下载,用户的数据如何存放、存放于何处等等都是服务商通过其内部的算法规则来维护,对用户透明。这种集中化存储结构的可靠性完全取决于该服务商所提供服务的可靠性,一旦该服务商的服务失效,比如自然灾害、误操作、破产等等,用户就无法取回数据。这种机制也存在天生的不安全性:存储在第三方服务器主机上的信息可以被政治、技术、法律等手段盗取、窃听、破坏。

去中心化的云存储模式不以用户对云服务提供商的信任为基础,所有用户存放于云端的私有数据在上传之前都由其亲自加密,并分散存储于其他对等的用户存储设备当中。密文存储位置及安全信息仅记载在一个所有用户共同维护的区块链系统上,只有用户私钥能够解开,这样就不会存在攻击者能够利用政策或者法律进行攻击的中心化点。这样,数据安全与用户隐私就得到了充分的保障。

现有的云存储数据分享方法:现有的中心化云存储系统中的数据分享一般如此实现:云服务提供商提供分享功能,用户选择要分享的数据生成访问码,其他用户获得访问码后即可访问分享内容。这一分享方式存在很多安全隐患,非常不适合高价值敏感数据的分享:比如访问码的分发过程的安全性以及服务商对数据的非授权访问等等。为了提高分享过程的安全性,一般做法是数据持有者上传云端前先使用对称加密算法加密数据文件得到数据密文,并只将数据密文上传;其他用户发起分享请求时,数据持有者使用分享用户的公钥加密该对称密钥,并使用云存储服务商的分享功能将密文分享给用户。分享用户可以用自己的私钥解密得到对称密钥,再自行从云端下载数据密文,并以该对称密钥解密数据密文,得到数据文件的明文。

然而,去中心化存储架构下每个节点都是不可信的,并不存在对某个中心节点(云盘服务商)的信任关系。另外,在这种不信任关系的前提下,数据持有者用于批量加密数据的对称密钥也不宜直接暴露给大量用户。综上所述,这种方法不能直接应用到去中心化架构下的区块链云存储中。

代理重加密技术,代理重加密方案由blaze等人在1998年的欧洲密码学年会上提出,是一种密文-密钥转换机制,并由ateniese等人给出了规范的形式化定义。它可以广泛应用于云存储中访问控制、数据安全共享、授权管理等途径。

在代理重加密中,一个半可信代理人通过代理授权人产生的转换密钥rk把用授权人a的公钥pa加密的密文转化为用被授权人b的公钥pb加密的密文,在这个过程中,代理人得不到数据的明文信息,任何一方的私钥也不会暴露,从而降低了数据泄露风险。而这两个密文所对应的明文是一样的,使a和b之间实现了数据共享。所谓的半可信,指的是只需相信这个代理者一定会按方案来进行密文的转换。

代理重加密方案多针对非对称密钥设计,利用的是rsa加密算法体系的代数结构。然而,在许多情形(比如加密、分享大量数据)下,使用对称加密算法加密数据是更好的选择。可惜的是,大多数对称加密算法都不支持代理重加密。syalim等人于2011年提出了一种直接应用于对称加密算法的代理重加密方案。这种方法可以直接应用在区块链云存储中,为前者架构下的数据安全分享提供工具。

区块链技术,信息技术架构的发展,经历了从大型机集中式,到客户端/服务器分布式,再到云计算集中式的发展,它们的共同特点为中心化的架构。中心化架构的瓶颈是中央节点容易成为攻击目标,且在大型分布式环境中管理、维护中央节点需要很高的成本。此外,中央节点诚信问题若不能保障,则会对整个系统带来灾难性的破坏。

狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。去中心化、防伪、防篡改、数据可追溯、安全、合约自动执行等都是区块链架构的特点。

利用区块链技术实现非中心的存储系统是一个研究方向。如同p2p下载中,各个节点贡献自己的带宽,从而提高整体下载速度一样,区块链技术可以提供这样一种去中心化的、不需要中间服务商的关键数据保存业务:网络中的所有节点都可以贡献自己的存储空间,存储网络中其他节点的数字信息。每个节点既可以是存储需求方,也可以是存储提供方。这种机制实现了一种真正意义的去中心存储,数据存储在未知节点,用户可以随时访问数据,参与节点没有额外负担。存储需求方支付货币以获得存储服务,存储提供方提供空闲存储资源换取报酬,整个过程完全自动化。

区块链云存储技术,区块链技术可以直接应用在云存储架构上。其中,每个节点既是海量存储需求方,也是存储空间的提供方。由于数据可能体积巨大,我们不将数据本身存放在区块链中,而只在区块链中存放数据的关键元数据。当节点需要存储数据时,通过查询区块链找到合适存储区域,再将待存储数据加密后,通过网络存储到对应地址。文件的其他有关信息也记录在区块链的节点中。当节点需要提取数据时,通过查询数据,找到存储地址,然后通过网络下载数据。图2是区块链云存储metadisk项目的架构图。

目前,已经有了许多基于区块链的云存储系统,例如storj、maidsafe、ethereum。以storj项目中开发的metadisk为例,它是一种基于区块链技术的云存储架构,各个节点既可以是存储资源的提供者,又可以是存储服务的需求者。通过加密存储,确保节点不可读数据;通过区块上存储的数据哈希值,确保节点不可更改数据;通过区块链上记载的存储位置信息,确保用户能够找到对应数据;通过冗余存储,确保数据不因单个节点的离线导致的损失。在这种架构下,不需要额外的服务器,不需要额外的人工干预,所有节点通过区块链技术实现自治。

现有的数据分享方法基于中心化的云存储服务提供商,数据持有者直接将自己的解密密钥提供给服务商,分享的具体流程由服务商操作,依靠的是数据持有者对服务商的信任;在区块链云存储系统中,不存在服务商这样的中间人,每个节点均不可信任,因此也不能简单套用现有的数据分享方法。需要一种在区块链云存储架构下能有效工作的数据安全分享方法。

在以上提到的区块链云盘中,无论是文件数据还是元数据的加/解密均需要用户私钥的参与。在数据分享过程中,必须由数据持有者提供解密密钥才能进行数据分享,解密密钥均存放在数据持有者手中,给管理带来了不便,也带来了安全隐患。另外,解密密钥的分享也会在不可信任的网络中带来新的安全问题。



技术实现要素:

本发明的目的在于提供一种基于区块链云存储的文件安全分享方法及系统,旨在解决在不可信任节点中由于对称密钥分享带来的密文-密钥的安全的技术问题。

本发明是这样实现的,一种基于区块链云存储的文件安全分享方法,所述文件安全分享方法包括以下步骤:

s1、通过对称加密算法对文件进行加密数据并将数据密文存储在云盘中;

s2、用户将解密数据密文的对称密钥通过加密生成密钥密文并将密钥密文和数据密文存放位置一起作为元数据的一部分存储在区块链上;

s3、对存储的文件数据使用随机生成的新密钥执行代理重加密操作,并通过新密钥和重加密后的新密文进行安全分享。

本发明的进一步技术方案是:所述文件安全分享方法中在云存储中通过以非对称加密管理对称密钥增强了文件分享的安全性。

本发明的进一步技术方案是:所述步骤s3中包括以下步骤:

s31、随机产生一个对称密钥s’,结合原本加密文件的对称密钥s与s’产生一个变换密钥k;

s32、文件存储节点接收k后原密文先生成一份拷贝发送到用户指定的另一节点,根据k将该密文拷贝变换为新密文;

s33、将s’和新密文的存储位置采用分享对象的公钥加密后作为元数据的一部分写入区块链;

s34、分享对象访问区块链元数据记录,通过其私钥解密获得新密文位置及对应密钥s’后,下载新的密文并用s’解密实现分享。

本发明的进一步技术方案是:所述步骤s3中包括以下步骤:

s30、用户在区块链中寻找元数据并用私钥解密元数据获取解密数据的对称密钥s和数据密文位置。

本发明的进一步技术方案是:所述步骤s32中的元数据中包含由数据接收者的私钥加密后新密文的位置信息和新加密密钥s’。

本发明的另一目的在于提供一种基于区块链云存储的文件安全分享系统,所述文件安全分享系统包括:

文件加密模块,用于通过对称加密算法对文件进行加密数据并将数据密文存储在云盘中;

密文写入模块,用于用户将解密数据密文的对称密钥通过加密生成密钥密文和数据密文存放位置一起作为元数据的一部分存储在区块链上;

文件分享模块,用于对存储的文件数据使用随机生成的新密钥执行代理重加密操作,并通过新密钥和重加密后的新密文进行安全分享。

本发明的进一步技术方案是:所述文件安全分享系统中在云存储中通过以非对称加密管理对称密钥增强了文件分享的安全性。

本发明的进一步技术方案是:所述文件分享模块中包括:

变换密钥生成单元,用于随机产生一个对称密钥s’,结合原本加密文件的对称密钥s与s’产生一个变换密钥k;

新密文生成单元,用于文件存储节点接收k后原密文先生成一份拷贝发送到用户指定的另一节点,根据k将该密文拷贝变换为新密文;

区块写入单元,用于将s’和新密文的存储位置采用分享对象的公钥加密后作为元数据的一部分写入区块链;

分享单元,用于分享对象访问区块链元数据记录,通过其私钥解密获得新密文位置及对应密钥s’后,下载新的密文并用s’解密实现分享。

本发明的进一步技术方案是:所述文件分享模块中包括:

获取单元,用于用户在区块链中寻找元数据并用私钥解密元数据获取解密数据的对称密钥s和数据密文位置。

本发明的进一步技术方案是:所述新密文生成单元中的元数据中包含由数据接收者的私钥加密后新密文的位置信息和新加密密钥s’。

本发明的有益效果是:按照区块链云存储系统的设计,保存在各个节点中的文件都是密文的形式,用于解密文件内容的私钥掌握在用户手中。这样,如果用户需要将文件本身共享给他人,就需要提供用于解密文件的密钥。如果直接将密钥通信给接受者,由接受者自行下载数据之后解密,这个分发过程中存在安全隐患。如果用户自行访问存储平台请求密文,解密之后进行二次上传,又会耗费大量的带宽,使数据发生频繁的迁移,增大使用成本。本发明结合了对称密钥与非对称密钥的加密技术,实现了一种文件远程分享机制,使得用户可以安全、方便地远程分享文件,既不必访问存储平台请求密文、解密之后进行重新上传,也不用在分享过程中暴露自身的私钥。

附图说明

图1是storj与dropbox100gb存储空间月租对比。

图2是区块链云存储项目metadisk的架构图。

图3是本发明实施例提供的系统初始化状态。

图4是本发明实施例提供的文件分享过程。

图5是本发明实施例提供的基于区块链云存储的文件安全分享方法的流程图。

图6是本发明实施例提供的基于区块链云存储的文件安全分享系统的结构框图。

具体实施方式

本发明提出一种面向区块链为基础的去中心化网络存储架构下的数据安全存储及分享方案,用于满足用户对其存储在云端的加密数据进行安全可靠访问和高效分享的需求。其核心技术在于将加密数据的密钥以及存储位置信息在以用户的公钥加密后作为元数据的一部分写入区块链,从而利用区块链保护用户云端数据的访问私密性和可靠性。在需要分享数据时,采用重加密的方法生成用于分享的新的加密密钥及其对应的数据密文副本,从而保护用户的原始密钥不被泄露;分享的数据密文被存放于其他位置,该位置信息及分享密钥采用分享对象的公钥加密后作为元数据的一部分写入区块链的新纪录中,以保证分享过程的可靠性和私密性。

如图5所示,本发明提供的基于区块链云存储的文件安全分享方法,其详述如下:

步骤s1,通过对称加密算法对文件进行加密数据并将数据密文存储在云盘中;根据区块链云盘的架构,我们采用对称加密算法来加密数据,将数据密文存储在云盘中。对称加密具有算法简单、加密效率高、针对不同用户只需要提供同一份密文与密钥的特点,适合在文件分享的场景下工作。为了进一步提高安全性,密钥的选择采用一次一密随机生成,可以有效抵抗撞库攻击;但是由于同一份密文的分享是通过直接分享密钥来完成,一旦密钥泄露,责任难以追踪,而且密钥的更换会牵涉到所有合法的访问用户。

步骤s2,用户将解密数据密文的对称密钥通过加密生成密钥密文并将密钥密文和数据密文存放位置一起作为元数据的一部分存储在区块链上;用来解密数据密文的对称密钥通过用户公钥加密,生成一份密钥密文。密钥密文作为元数据的一部分,存储在区块链上。这样就在区块链云存储的环境下实现了传统云存储“以非对称加密管理对称密钥”的具体方法。由于使用用户公钥来管理数据解密密钥,非用户本人是无法获得他所持有的解密密钥的;将元数据存放到区块链上,可以利用区块链的去中心化和公共账本的功能保证元数据不可篡改的可靠存储和有效访问。

步骤s3,对存储的文件数据使用随机生成的新密钥执行代理重加密操作,并通过新密钥和重加密后的新密文进行安全分享。由于区块链云存储的特殊性,各个节点均不可信,存储的隐秘性很大程度上由存储位置的随机性保证。存储位置和密钥密文一样也记载在元数据中,只有用户私钥的持有者才能解密元数据,进而得知相应的文件位置。

在数据分享的时候需要同时提供解密密钥和对应的数据密文存放位置才可以,为了保护数据持有者原始数据存放位置的隐秘性,需要提前将密文信息生成一份新的拷贝并转移到其他的存储节点中。另外,我们也不希望直接将数据持有者可能用来加密多份数据的原始对称密钥直接透露给其他用户,而是希望对特定的文件与用户群体设置单独的分享密钥。根据这些需求,我们设计了一套密钥重设以及密文变换-重存储的机制:1、随机产生一个对称密钥s’,结合原本加密文件的对称密钥s与s’产生一个变换密钥k。2、将k发送给文件存储节点,文件存储节点将原密文先生成一份拷贝发送到用户指定的另一节点,再根据k通过代理重加密机制将该密文拷贝变换为新密文,并且在区块链上写入一个新的纪录,其元数据中包含由数据接收者的私钥加密后的新密文的位置信息和新加密密钥s’。数据接收者通过访问这个新纪录就可以完成分享。

通过这种机制,新选择的存储节点单独用于该接收者的数据分享,原密文的密钥和位置信息均无需透露给任何其他用户。接收者以其私钥实现对区块链上的分享数据信息的私密访问,区块链机制保证了分享过程的可靠性和安全性。另外整个重加密过程完全在服务器端完成,整个过程不会暴露数据明文,也无须密文的下载-重解密-重发送过程。

本发明技术的系统初始化状态如图3所示。用户文件使用对称密钥加密后存储在云盘系统中;密钥密文作为元数据的一部分,和数据密文的存放位置信息一起经用户公钥加密后上传到区块链系统中。

如图4所示,文件的分享经过如下的四个过程:1、在区块链系统中寻找用户数据的元数据。以用户私钥解密元数据,获取用于解密数据的对称密钥s和数据位置。2、随机产生一个对称密钥s’,结合s与s’产生一个重加密密钥k。3、将k发送给文件存储节点,文件存储节点将原密文生成一份拷贝发送到用户指定的另一节点,再根据k将这份旧密文拷贝通过代理重加密机制变换为新密文。4、将s’和新密文的存储位置采用分享对象的公钥加密后写入区块链。5、分享对象访问区块链元数据记录,通过其私钥解密获得新密文及对应密钥s’后,自行从对应的位置下载新的密文,并用s’解密,从而实现分享。

按照区块链云存储系统的设计,保存在各个节点中的文件都是密文的形式,用于解密文件内容的私钥掌握在用户手中。这样,如果用户需要将文件本身共享给他人,就需要提供用于解密文件的密钥。如果直接将密钥通信给接受者,由接受者自行下载数据之后解密,这个分发过程中存在安全隐患。如果用户自行访问存储平台请求密文,解密之后进行二次上传,又会耗费大量的带宽,使数据发生频繁的迁移,增大使用成本。本发明结合了对称密钥与非对称密钥的加密技术,实现了一种文件远程分享机制,使得用户可以安全、方便地远程分享文件,既不必访问存储平台请求密文、解密之后进行重新上传,也不用在分享过程中暴露自身的私钥。

如图6所示,本发明的另一目的在于提供一种基于区块链云存储的文件安全分享系统,所述文件安全分享系统包括:

文件加密模块,用于通过对称加密算法对文件进行加密数据并将数据密文存储在云盘中;

密文写入模块,用于用户将解密数据密文的对称密钥通过加密生成密钥密文和数据密文存放位置一起作为元数据的一部分存储在区块链上;

文件分享模块,用于对存储的文件数据使用随机生成的新密钥执行代理重加密操作,并通过新密钥和重加密后的新密文进行安全分享。

所述文件安全分享系统中在云存储中通过以非对称加密管理对称密钥增强了文件分享的安全性。

所述文件分享模块中包括:

变换密钥生成单元,用于随机产生一个对称密钥s’,结合原本加密文件的对称密钥s与s’产生一个变换密钥k;

新密文生成单元,用于文件存储节点接收k后原密文先生成一份拷贝发送到用户指定的另一节点,根据k将该密文拷贝变换为新密文;

区块写入单元,用于将s’和新密文的存储位置采用分享对象的公钥加密后作为元数据的一部分写入区块链;

分享单元,用于分享对象访问区块链元数据记录,通过其私钥解密获得新密文位置及对应密钥s’后,下载新的密文并用s’解密实现分享。

所述文件分享模块中包括:

获取单元,用于用户在区块链中寻找元数据并用私钥解密元数据获取解密数据的对称密钥s和数据密文位置。

所述新密文生成单元中的元数据中包含由数据接收者的私钥加密后新密文的位置信息和新加密密钥s’。

在区块链去中心化存储架构下的一种私密文件的云端安全存储及分享机制的实现,使得用户存储于云端的数据必须通过私钥才能访问,而在需要向其他用户分享自有加密数据时不用向他人暴露持有者自身的原始密钥,也不必将云端数据全部下载下来后用分享密钥重新加密后再上传,而且整个数据分享过程是安全可靠的并且不依赖于传统的单一可信第三方。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1