一种基于区块链的云端数据加密存储系统的制作方法

文档序号:24569507发布日期:2021-04-06 12:16阅读:116来源:国知局
一种基于区块链的云端数据加密存储系统的制作方法

本申请涉及数据存储技术领域,具体涉及一种基于区块链的云端数据加密存储系统。



背景技术:

目前,云端数据均以明文形式进行存储,或者存储在云服务器的加密空间内,但存储的数据对于云服务器都是透明的,其安全性则需要依赖于云服务器本身的安全性。由于云服务器作为第三方,容易发生存储数据的泄漏,尤其涉及到客户端的隐私数据,隐私数据的泄漏将对客户端造成不可挽回的损失。以及数据的下载或者访问记录由云服务器管理,客户端无法查询,且难以保证其真实性。另外,云服务器存储的数据无法证明其所有权是客户端还是云服务器。



技术实现要素:

本申请提供一种基于区块链的云端数据加密存储系统,以解决,现有云端数据的存储安全性需要依赖于云服务器本身,容易发生存储数据的泄漏;数据的下载或者访问记录由云服务器管理,客户端无法查询,且难以保证其真实性;以及云服务器上存储的数据无法证明其所有权等问题。

一种基于区块链的云端数据加密存储系统,包括:区块链、连接在所述区块链上的云服务器和客户端;

所述客户端配置为执行:

数据选择步骤,根据云端存储路径,选择存储数据;所述云端存储路径包括第一云端存储路径和第二云端存储路径;

数据哈希上传步骤,计算所述存储数据的数据哈希值,将所述数据哈希值上传至所述区块链;

保密等级确定步骤,根据所述云端存储路径,确定所述存储数据的保密等级;所述保密等级包括绝密级和保密级,所述第一云端存储路径对应所述绝密级,所述第二云端存储路径对应所述保密级;

绝密级存储步骤,如果所述存储数据的保密等级是所述绝密级,使用第一对称密钥加密所述存储数据,得到第一数据密文,将所述第一数据密文发送至所述云服务器,且删除所述客户端上存储的所述第一数据密文;

保密级存储步骤,如果所述存储数据的保密等级是所述保密级,根据随机口令、所述客户端的设备指纹和当前时间戳生成时空码;使用所述时空码加密第二对称密钥,得到时空码密文,将所述随机口令、所述时空码密文和明文形式的所述存储数据发送至所述云服务器;

所述云服务器配置为执行:

第一数据密文存储步骤,将所述第一数据密文存储在所述第一云端存储路径下;

第二数据密文存储步骤,读取当前通信的所述设备指纹,结合所述随机口令和经过时间碰撞得到的匹配时间戳生成匹配时空码;使用所述匹配时空码解密所述时空码密文,得到所述第二对称密钥;使用所述第二对称密钥加密明文形式的所述存储数据,得到第二数据密文;将所述第二数据密文存储在所述第二云端存储路径下;删除所述客户端上存储的所述随机口令、所述时空码密文、明文形式的所述存储数据以及所述第二对称密钥;

所述区块链配置为执行:

数据哈希上链存储步骤,存储所述数据哈希值。

本申请提供的一种基于区块链的云端数据加密存储系统,对于隐私数据采用本地加密的方式,将加密后的数据以密文的形式存储在云服务器上,普通数据则在云服务上进行加密存储,云服务器无法访问存储的密文形式的数据,所以最大程度的保证存储数据的隐私性,能够提高云端数据的安全性,降低数据泄漏的风险。如果任何客户端想要访问云服务器,则需云服务器的授权解密后下载到客户端本地,进一步保证数据下载的安全性。另外,采用区块链技术,将数据进行哈希运算得到的数据哈希值存储在区块链上,能够记录上传云服务器的存储数据所有权,并在记录云服务器对数据的加解密过程的同时,记录存储数据的加密和解密过程,能够保证云服务器对于存储数据的真实性和可追溯性。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的第一种基于区块链的云端数据加密存储系统拓扑图;

图2为本申请实施例提供的一种基于区块链的云端数据加密存储系统对应的数据存储配置示意图;

图3为图2所示s4:绝密存储步骤的的详细流程图;

图4为本申请实施例提供的第二种基于区块链的云端数据加密存储系统拓扑图;

图5为图2所示s5:保密存储步骤的详细流程图;

图6为本申请实施例提供的一种基于区块链的云端数据加密存储系统对应的数据下载配置示意图;

图7为图6所示m03:数据机密步骤的详细流程图;

图8为图6所示s02:本地解密步骤的详细流程图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

图1为本申请实施例提供的第一种基于区块链的云端数据加密存储系统拓扑图;图2为本申请实施例提供的一种基于区块链的云端数据加密存储系统对应的数据存储配置示意图。结合图1和图2,本申请实施例提供的基于区块链的云端数据加密存储系统,包括:区块链、连接在区块链上的云服务器和客户端。图1所示区块链由多个节点(空心圆圈)连接形成,图1所示云服务器的数量、客户端的数量和区块链上节点数量均是示意性的,本申请不作具体限定。客户端既与云服务器连接,也与区块链连接,云服务器也连接在区块链上,另外,云服务器可以作为区块链的某个节点,或者以节点设备的方式连接在区块链的节点上,本申请不作具体限定。

如图2所示,在本申请实施例提供的基于区块链的云端数据加密存储系统内,客户端配置为执行:

s1:数据选择步骤,根据云端存储路径,选择存储数据;云端存储路径包括第一云端存储路径和第二云端存储路径。存储数据可以包括隐私数据和普通数据;第一云端存储路径对应的是隐私数据,第二云端存储路径对应的是普通数据。隐私数据通常是客户端上存储的用户身份信息,例如证件照、身份证文件或者私人照片等。普通数据则是除了隐私数据之外的其他数据。

s2:数据哈希上传步骤,计算存储数据的数据哈希值,将数据哈希值上传至区块链。将存储数据转换为数据哈希值,再将数据哈希值存储在区块链中,利用区块链的区中心化、可信性和可追溯的特性,可以对存储数据进行确权,记录存储数据的所有权。

s3:保密等级确定步骤,根据云端存储路径,确定存储数据的保密等级;保密等级可以包括绝密级和保密级,第一云端存储路径对应的是绝密级,第二云端存储路径对应的是保密级。

s4:绝密级存储步骤,如果存储数据的保密等级是绝密级,使用第一对称密钥加密隐私数据,得到第一数据密文,将第一数据密文发送至云服务器,且删除客户端上存储的第一数据密文。

图3为图2所示s4:绝密存储步骤的的详细流程图。如图3所示,步骤s4进一步包括如下子步骤:

s41:如果存储数据的保密等级是绝密级,则存储数据为隐私数据,此时,需要生成第一对称密钥;隐私数据在每次进行绝密级的存储时,第一对称密钥均是重新生成的,因此第一对称密钥是不进行重复利用的,可以保证存储隐私数据的安全性,可较大程度降低数据的泄露风险。

s42:使用客户端公钥加密第一对称密钥,得到第一密钥密文。

s43:将第一密钥密文存储在所属的客户端内。将新生成的第一对称密钥进行加密,将加密后的第一对称密钥存储在客户端内,可防止第一对称密钥在客户端内存储过程中被泄露或被伪造,可以进一步保证第一对称密钥在客户端内存储的安全性,方便后续用于解密被加密存储的隐私数据,同样能够保证隐私数据的安全可信。

s44:使用第一对称密钥,对隐私数据进行加密,得到第一数据密文。

s45:对第一数据密文进行哈希运算,得到第一密文哈希值。

s46:将第一密文哈希值上传区块链。

s47:将第一数据密文发送至云服务器。

s48:删除客户端上存储的第一数据密文。隐私数据的存储完成。

绝密级的存储方式是采用客户端本地加密,将加密的第一数据密文发送至云服务器进行存储,可以确保隐私数据在传送过程中处于加密状态,能够提高数据传输的安全性,可避免受到恶意攻击导致的数据泄露;另外,同时将第一数据密文转换为哈希值存储在区块链上,可以利用区块链的高可信性,对加密后的隐私数据的摘要进行存储,使得数据的存储具有可追溯性,且可进一步防止数据丢失。

s5:保密级存储步骤,如果存储数据的保密等级是保密级,根据随机口令、客户端的设备指纹和当前时间戳生成时空码;使用时空码加密第二对称密钥,得到时空码密文,将随机口令、时空码密文和明文形式的普通数据发送至云服务器。

图4为本申请实施例提供的第二种基于区块链的云端数据加密存储系统拓扑图。如图4所示,本申请实施例提供的第二种基于区块链的云端数据加密存储系统,还可以包括数据库服务器,数据库服务器连接在云服务器上。图5为图2所示s5:保密存储步骤的详细流程图。如图5所示,步骤s5进一步包括如下子步骤:

s51:如果存储数据的保密等级是保密级,存储数据则对应是普通数据,需要检查第二对称密钥是否存在。

s52:如果第二对称密钥存在,读取第二对称密钥。

s53:生成随机口令。随机口令可以是一个随机数形式的口令,本申请不作具体限定。

s54:根据随机口令、客户端的设备指纹和当前时间戳,生成时空码。设备指纹通常是客户端上的设备身份信息,或者设备身份信息的摘要,又或者是设备身份信息的签名,本申请不作具体限定。当前时间戳则代表的是当前的时间信息。

s55:使用时空码对第二对称密钥进行加密,得到第二对称密钥对应的时空码密文。使用带有设备信息、时间信息和随机口令的时空码对第二对称密钥加密,使得得到的时空码密文不容易被破译,可以较大程度的提高第二对称密钥的防攻击性。

s56:将随机口令、时空码密文和明文形式的普通数据发送至云服务器。

s57:删除客户端上存储的随机口令、时空码密文、明文形式的普通数据和第二对称密钥。普通数据的保存方式是以明文形式上传云服务器,但是同时上传附带的密钥加密信息,数据上传后,将客户端内存储的明文形式的普通数据删除,可以避免发生数据的泄漏。

s58:如果第二对称密钥不存在,重新生成第二对称密钥。

s59:对重新生成的第二对称密钥进行哈希运算,得到保密密钥哈希值,将保密密钥哈希值上传至区块链进行存储。第二对称密钥可以是重复使用的,由于时空码是具有随机性的一种密钥形式,可以对第二对称密钥加以保护。将保密密钥哈希值上传区块链可以使得保密密钥具有可追溯性。

结合图2、图3和图4,区块链配置为执行:

p1:数据哈希上链存储步骤,存储数据哈希值。

p2:存储第一密文哈希值。

p3:将保密密钥哈希值上链存储。

云服务器配置为执行:

m1:第一数据密文存储步骤,将第一数据密文存储在第一云端存储路径下。

m2:第二数据密文存储步骤,读取当前通信的设备指纹,结合随机口令和经过时间碰撞得到的匹配时间戳生成匹配时空码;使用匹配时空码解密时空码密文,得到第二对称密钥;使用第二对称密钥加密明文形式的普通数据,得到第二数据密文;将第二数据密文存储在第二云端存储路径下;删除客户端上存储的随机口令、时空码密文、明文形式的普通数据以及第二对称密钥。

步骤m2进一步包括:

m21:接收随机口令、时空码密文和明文形式的普通数据。

m22:读取当前通信的设备指纹,结合随机口令以及时空码密文进行时间碰撞,得到匹配时间戳;所述匹配时间戳与所述时间戳相同。时间碰撞是在一个合理的时间范围内,将每个时间点进行试验,当某一个时间点能够正确的与当前时间戳相同时,这个时间点就是正确的时间戳,即匹配时间戳。

m23:根据设备指纹、随机口令和匹配时间戳生成匹配时空码;匹配时空码与时空码相同。

m24:使用匹配时空码解密时空码密文,得到第二对称密钥。

m25:使用第二对称密钥加密明文形式的普通数据,得到第二数据密文。

m26:将第二数据密文存储在第二云端存储路径下。

m27:对第二数据密文进行哈希运算,得到第二密文哈希值。

m28:将第二密文哈希值上传至区块链。

m29:删除明文形式的普通数据、随机口令、时空码密文和通过解密得到的第二对称密钥。

云服务器收到明文形式的普通数据和随机口令,可以自行收集与之通信的客户端上设备指纹,采用时间碰撞的方式,试出与时间戳带有相同时间信息的匹配时间戳,结合收到的随机口令和自身收集的设备指纹、匹配时间戳,重新生成与时空码相同的匹配时空码,使用匹配时空解密时空码密文,可以得到第二对称密钥,继续使用解密得到的第二对称密钥加密明文形式的普通数据,得到第二数据密文。将第二数据密文存储在云服务器上,完成普通数据的存储。采用时空码和匹配时空码对第二对称密钥进行加密和解密,可以保证第二对称密钥的传输安全性,使用安全的第二对称密钥加密普通数据,可以对普通数据提供安全的保护。

区块链进一步配置为执行:

p4:将第二密文哈希值上链存储。

p5:将第二密文哈希值在区块链上的上链记录发送至数据库服务器。

数据库服务器配置为执行:

t1:存储上链记录。将第二密文哈希值在区块链上的上链记录存储在数据库服务器,可以使得区块链上的存储记录也具有可追溯性,进一步加强数据存储的可追溯性。

图6为本申请实施例提供的一种基于区块链的云端数据加密存储系统对应的数据下载配置示意图。如图6所示,客户端可以配置为执行:

s01:数据下载请求发送步骤,向云服务器发送数据下载请求;数据下载请求包括第一数据下载请求和第二数据下载请求;第一数据下载请求包括隐私数据对应的第一云端存储路径;第二数据下载请求包括下载请求随机口令、第二对称密钥对应的新时空码密文以及普通数据对应的第二云端存储路径;新的时空码密文由新时空码对第二对称密钥加密得到;新时空码由下载请求随机口令、客户端的设备指纹以及匹配时间戳生成。

隐私数据的下载和普通数据的下载可以理解为隐私数据存储和普通数据存储的逆过程。

云服务器进一步配置为执行:

m01:调取数据步骤,根据数据下载请求调取对应的数据;第一数据下载请求对应云端存储路径为第一云端存储路径,则调取第一数据密文;第二数据下载请求对应云端存储路径为第二云端存储路径,则调取第二数据密文。

m02:第一数据传送步骤,如果调取的是第一数据密文,将第一数据密文传送至发出第一数据下载请求的客户端。

m03:数据解密步骤,如果调取的是第二数据密文,使用第二对称密钥解密第二数据密文,得到明文形式的普通数据。

m04:第二数据传送步骤:将明文形式的普通数据发送至发出第二数据下载请求的客户端,删除明文形式的普通数据。

客户端进一步配置为执行:

s02:本地解密步骤,使用第一对称密钥将接收到的第一数据密文进行解密,得到隐私数据。

图7为图6所示m03:数据机密步骤的详细流程图。如图7所示,步骤m03进一步包括如下子步骤:

m031:如果调取的是第二数据密文,读取当前通信的设备指纹,根据设备指纹以及下载请求随机口令和新时空码密文,进行时间碰撞,得到匹配时间戳。

m032:结合设备指纹、下载请求随机口令和匹配时间戳生成新时空码。

m033:使用新时空码解密新的时空码密文,得到第二对称密钥。

m034:使用第二对称密钥解密第二数据密文,得到明文形式的普通数据。

m035:将明文形式的普通数据发送至发出第二数据下载请求的客户端。

m036:删除下载请求随机口令、新时空码密文、明文形式的普通数据以及解密得到的第二对称密钥。

图8为图6所示s02:本地解密步骤的详细流程图。如图8所示,步骤s02进一步包括如下子步骤:

s021:调取第一密钥密文,使用客户端私钥解密第一密钥密文,得到第一对称密钥。

s022:使用第一对称密钥解密接收到的第一数据密文,得到隐私数据。

s023:删除第一数据密文。

本申请提供的一种基于区块链的云端数据加密存储系统,对于隐私数据采用本地加密的方式,将加密后的数据以密文的形式存储在云服务器上,普通数据则在云服务上进行加密存储,云服务器无法访问存储的密文形式的数据,所以最大程度的保证存储数据的隐私性,能够提高云端数据的安全性,降低数据泄漏的风险。如果任何客户端想要访问云服务器,则需云服务器的授权解密后下载到客户端本地,进一步保证数据下载的安全性。另外,采用区块链技术,将数据进行哈希运算得到的数据哈希值存储在区块链上,能够记录上传云服务器的存储数据所有权,并在记录云服务器对数据的加解密过程的同时,记录存储数据的加密和解密过程,能够保证云服务器对于存储数据的真实性和可追溯性。

本说明书中各个实施例之间相同相似的部分互相参见即可。

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