掌桥专利:专业的专利平台
掌桥专利
首页

数据存储方法、数据访问方法、装置、设备以及存储介质

文献发布时间:2024-04-18 19:59:31


数据存储方法、数据访问方法、装置、设备以及存储介质

技术领域

本发明涉及区块链技术领域,尤其涉及一种基于区块链智能合约的数据存储方法、数据访问方法、装置、设备以及存储介质。

背景技术

区块链是随着比特币等数字加密货币的日益普及而逐渐兴起的一种技术,它提供了一种去中心化的、无需信任积累的信用建立范式,目前已经在金融等行业初步应用。区块链技术通过建立一个共同维护且不可被篡改的数据库来记录过去的所有交易记录和历史数据,所有的数据都是分布式存储且公开透明的。在这种技术下,任何互不相识的网络用户都可以通过合约、点对点记账、数字加密等方式达成信用共识,而不需要任何的中央信任机构。

参见图1,图中给出的是一种典型的区块结构,交易记录保存在数据区块之中每个数据区块一般包含区块头(Header)和区块体(Body)两部分。区块头封装了当前的版本号、前一区块地址、时间戳、随机数、当前区块的目标哈希值、Merkle树的根值等信息。但是,区块链通常并不直接保存原始数据或交易记录,而是保存其哈希函数值。同时,由于区块链的不可删除性及开放访问的设计架构,使得区块链不适合存储隐私数据,也不适合控制访问权限。

参见图2,图中给出的是一种传统的数据访问方法,用户访问传统的网络服务需要先注册一个账户,并且在每次访问时输入用户名和登录密码,当输入的用户名和登录密码验证通过后,网络服务会生成一个具有时效性的网络令牌(JSON Web Token,简称JWT),该JWT会允许用户在接下来的一段时间内(一般为若干小时或天)访问网络服务上该用户所对应的数据。

例如在图2中,第一用户访问网络服务时,首先注册账户,得到该第一用户的用户名和密码。每次访问网络服务时,输入该用户名和密码,若该用户名和密码正确,则网络服务会生成JWT1,该JWT1允许该第一用户在接下来的一段时间内访问该网络服务上的第一用户所对应的数据。第二用户注册和登录过程类似,在此不再赘述。

用户每次访问网络服务上其对应的数据时都需要同时发送JWT至网络服务;网络服务在收到该JWT后则需要验证该JWT的有效性,并生成验证结果;然后根据验证结果允许用户继续访问网络服务上其对应的数据,或者引导用户重新输入用户名和密码。

然而,传统的数据访问方法中的JWT有效时间一般为若干小时或若干天,较长的JWT时效会增加该JWT被中间人截获,并伪装成该用户访问网络服务资源的可能性。此外,网络服务在存储用户的数据时通常会对用户数据进行加密处理,但是其加密处理所使用的是一个统一的系统密钥,这就会导致当系统密钥被窃取后,所有的用户信息泄露的安全问题。例如,第二用户若在第一用户的JWT有效时间内,获取了该第一用户的JWT,则能够伪装成该第一用户访问网络服务中第一用户所对应的数据,存在用户信息泄露的安全问题。

为此,本申请人经过有益的探索和研究,找到了解决上述问题的方法,下面将要介绍的技术方案便是在这种背景下产生的。

发明内容

本发明所要解决的技术问题之一在于:针对现有技术的不足而提供一种提高数据访问安全性的基于区块链智能合约的数据存储方法。

本发明所要解决的技术问题之二在于:针对现有技术的不足而提供一种提高数据访问安全性的数据访问方法。

本发明所要解决的技术问题之三在于:提供一种实现上述数据存储方法的数据存储装置。

本发明所要解决的技术问题之四在于:提供一种实现上述数据访问方法的数据访问装置。

本发明所要解决的技术问题之五在于:提供一种实现上述数据存储方法或数据访问方法的计算机设备。

本发明所要解决的技术问题之六在于:提供一种实现上述数据存储方法或数据访问方法的计算机可读存储介质。

作为本发明第一方面的一种数据存储方法,包括:

在区块链上部署的智能合约内定义一个元数据,并生成用于标识所述元数据的元数据标识;

获取所述用户发送的加密个人数据及其加密个人数据标识,所述加密个人数据及其加密个人数据标识由用户根据元数据、元数据标识和区块链个人电子钱包内的公钥对个人数据进行加密处理而生成;

获取所述用户发送的第一网络令牌,所述第一网络令牌内包含有所述用户的区块链个人电子钱包内的公钥;

对所述第一网络令牌进行有效性验证处理,若验证有效,则根据所述第一网络令牌内的公钥派生一个用户地址,并根据所述用户地址生成一个所述用户专属的一次性密码返回给所述用户;

获取所述用户发送的第二网络令牌和加密个人数据,所述第二网络令牌内包含有所述一次性密码;以及

对所述第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则根据所述元数据标识、加密个人数据标识和所述用户地址产生的数据URI对所述加密个人数据进行存储。

在本发明的一个优选实施例中,所述加密个人数据及其加密个人数据标识由用户根据元数据、元数据标识和区块链钱包内的公钥对个人数据进行加密处理而生成,包括:

所述用户通过区块链个人电子钱包访问区块链,并获取区块链上的元数据和元数据标识;

所述用户根据所述元数据生成个人数据;

根据所述元数据标识和所述区块链个人电子钱包内的公钥派生数据加密密钥;以及

采用所述数据加密密钥对所述个人数据进行加密处理,并生成加密个人数据及其加密个人数据标识。

在本发明的一个优选实施例中,所述区块链智能合约通过元数据标识定位所述元数据,元数据为具有结构性的多种数据元素定义的集合。

在本发明的一个优选实施例中,所述用户的区块链个人电子钱包内包含非对称加密的公钥和私钥;所述区块链个人电子钱包以独立手机软件,或内置于其他手机软件,或以浏览器扩展的形式存在。

在本发明的一个优选实施例中,所述数据加密密钥是由所述公钥和所述元数据标识通过基于密码的密钥派生函数2产生的。

在本发明的一个优选实施例中,所述第一网络令牌和/或第二网络令牌包含Base64URI编码的公钥以及私钥对令牌内容进行签名的数字签名,所述公钥用于验证所述数字签名的真实性。

在本发明的一个优选实施例中,由所述公钥派生的用户地址与所述公钥呈一一对应关系,并且是唯一的。

在本发明的一个优选实施例中,基于所述用户地址生成的一次性密码的有效期为30秒至60秒,并且在同一时间每个用户得到的一次性密码都是不一样的。

作为本发明第二方面的一种数据访问方法,适用于第一用户访问其所存储的数据,所述方法包括:

获取所述第一用户发送的第一网络令牌和数据URI,所述第一网络令牌内包含有所述第一用户的区块链个人电子钱包内的公钥;

对所述第一网络令牌进行有效性验证处理,若验证有效,则根据所述第一网络令牌内的公钥派生一个用户地址,并根据所述用户地址生成一个所述第一用户专属的一次性密码返回给所述第一用户;

获取所述第一用户发送的第二网络令牌,所述第二网络令牌内包含有所述一次性密码;以及

对所述第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则定位至所述数据URI所指向的用户数据,并将所述用户数据返回至所述第一用户。

作为本发明第三方面的一种数据访问方法,适用于第二用户访问第一用户所存储的数据,所述方法包括:

获取所述第一用户发送的用于允许第二用户访问其用户数据的权限令牌;

获取所述第二用户发送的第一网络令牌和第一用户的数据URI,所述第一网络令牌内包含有所述第二用户的区块链个人电子钱包内的公钥;

对所述第一网络令牌进行有效性验证处理,若验证有效,则根据所述第一网络令牌内的公钥派生一个用户地址,并根据所述用户地址生成一个所述第二用户专属的一次性密码返回给所述第二用户;

获取所述第二用户发送的第二网络令牌,所述第二网络令牌内包含有所述一次性密码;

对所述第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则对所述权限令牌进行验证处理;以及

若所述权限令牌验证通过,则定位至所述数据URI所指定的第一用户的用户数据,并将所述用户数据返回至所述第二用户。

在本发明的一个优选实施例中,所述权限令牌的生成方法,包括:

所述第二用户通过查询区块链智能合约的元数据发现所述第一用户的数据URI,并向所述第一用户发起数据访问要约;以及

所述第一用户接受所述数据访问要约,并生成允许所述第二用户访问其用户数据的权限令牌。

在本发明的一个优选实施例中,所述第二用户通过查询区块链智能合约的元数据获取所述第一用户的用户地址以及加密个人数据标识,并根据所述用户地址和加密个人数据标识得到所述第一用户的数据URI。

在本发明的一个优选实施例中,所述第二用户通过区块链智能合约向所述第一用户发起数据访问要约。

在本发明的一个优选实施例中,所述权限令牌包括所述第二用户的用于验证所述第二用户的身份的公钥、允许所述第二用户访问的时间范围以及允许所述第二用户访问的次数。

作为本发明第四方面的一种用于实现上述数据存储方法的数据存储装置,包括:

元数据生成模块,所述元数据生成模块用于在区块链上部署的智能合约内定义一个元数据,并生成用于标识所述元数据的元数据标识;

个人数据获取模块,所述个人数据获取模块用于获取所述用户发送的加密个人数据及其加密个人数据标识,所述加密个人数据及其加密个人数据标识由用户根据元数据、元数据标识和区块链个人电子钱包内的公钥对个人数据进行加密处理而生成;

第一网络令牌获取模块,所述第一网络令牌获取模块用于获取所述用户发送的第一网络令牌,所述第一网络令牌内包含有所述用户的区块链个人电子钱包内的公钥;

第一验证处理模块,所述第一验证处理模块用于对所述第一网络令牌进行有效性验证处理,若验证有效,则根据所述第一网络令牌内的公钥派生一个用户地址,并根据所述用户地址生成一个所述用户专属的一次性密码返回给所述用户;

第二网络令牌获取模块,所述第二网络令牌获取模块用于获取所述用户发送的第二网络令牌和加密个人数据,所述第二网络令牌内包含有所述一次性密码;以及

第二验证处理模块,所述第二验证处理模块用于对所述第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则根据所述元数据标识、加密个人数据标识和所述用户地址产生的数据URI对所述加密个人数据进行存储。

作为本发明第五方面的一种用于实现上述数据访问方法的数据访问装置,包括:

第一网络令牌获取模块,所述第一网络令牌获取模块用于获取所述第一用户发送的第一网络令牌和数据URI,所述第一网络令牌内包含有所述第一用户的区块链个人电子钱包内的公钥;

第一验证处理模块,所述第一验证处理模块用于对所述第一网络令牌进行有效性验证处理,若验证有效,则根据所述第一网络令牌内的公钥派生一个用户地址,并根据所述用户地址生成一个所述第一用户专属的一次性密码返回给所述第一用户;

第二网络令牌获取模块,所述第二网络令牌获取模块用于获取所述第一用户发送的第二网络令牌,所述第二网络令牌内包含有所述一次性密码;以及

第二验证处理模块,所述第二验证处理模块用于对所述第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则定位至所述数据URI所指向的用户数据,并将所述用户数据返回至所述第一用户。

作为本发明第六方面的一种用于实现上述数据访问方法的数据访问装置,包括:

权限令牌获取模块,所述权限令牌获取模块用于获取所述第一用户发送的用于允许第二用户访问其用户数据的权限令牌;

第一网络令牌获取模块,所述第一网络令牌获取模块用于获取所述第二用户发送的第一网络令牌和第一用户的数据URI,所述第一网络令牌内包含有所述第二用户的区块链个人电子钱包内的公钥;

第一验证处理模块,所述第一验证处理模块用于对所述第一网络令牌进行有效性验证处理,若验证有效,则根据所述第一网络令牌内的公钥派生一个用户地址,并根据所述用户地址生成一个所述第二用户专属的一次性密码返回给所述第二用户;

第二网络令牌获取模块,所述第二网络令牌获取模块用于获取所述第二用户发送的第二网络令牌,所述第二网络令牌内包含有所述一次性密码;

第二验证处理模块,所述第二验证处理模块用于对所述第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则对所述权限令牌进行验证处理;以及

第三验证处理模块,所述第三验证处理模块用于若所述权限令牌验证通过,则定位至所述数据URI所指定的第一用户的用户数据,并将所述用户数据返回至所述第二用户。

作为本发明第七方面的一种用于实现上述数据存储方法或数据访问方法的计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的本发明第一方面的数据存储方法;或者所述处理器执行所述计算机程序时实现上述的本发明第二方面或第三方面的数据访问方法。

作为本发明第八方面的一种用于实现上述数据存储方法或数据访问方法的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的本发明第一方面的数据存储方法;或者所述处理器执行所述计算机程序时实现上述的本发明第二方面或第三方面的数据访问方法。

由于采用了如上技术方案,本发明的有益效果在于:本发明在数据存储或数据访问过程均采用两次网络令牌并结合区块链个人电子钱包进行验证处理,不需要用户注册以及输入用户名和密码即可完成数据存储或数据访问的操作,同时用户使用自己的密钥加密数据并存储在存储服务的个人空间内,无论用户是第一次访问其所存储的数据,还是之后访问数据,都依赖用户的区块链个人电子钱包,也就是私钥和公钥。由于所有的数据都是用户使用自己的密钥进行加密的,即使某个用户的密钥被窃取之后也只会影响该用户的个人数据,而不会影响到系统内其他用户的数据安全。也就是说,某一用户的密钥被窃取,并不会影响其他用户的数据安全。这样有效地提高了数据存储和数据访问的安全性。

附图说明

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

图1是一种典型的区块结构。

图2是传统的数据访问方法的示意图。

图3是本发明的数据存储方法的一种实施例的流程图。

图4是本发明的数据存储方法的一种实施例的示意图。

图5是本发明的区块链上的智能合约的结构示意图。

图6是本发明的加密个人数据及其加密个人数据标识的生成方法的流程图。

图7是本发明的数据访问方法的一种实施例的流程图。

图8是本发明的数据访问方法的一种实施例的示意图。

图9是本发明的数据访问方法的另一种实施例的流程图。

图10是本发明的数据访问方法的另一种实施例的示意图。

图11是本发明的权限令牌的生成方法的流程图。

图12是本发明的数据存储装置的一种实施例的结构示意图。

图13是本发明的数据访问装置的一种实施例的结构示意图。

图14是本发明的数据访问装置的另一种实施例的结构示意图。

图15是本发明的计算机设备的内部结构图。

实施方式

为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。

为更好地解释本发明技术方案,在此对数据存储环境或数据访问环境进行详细说明。区块链通用框架中,包括多个用户和连接多个用户网络,用户之间通过互相认可的智能合约交互。所述智能合约,是由计算机代码构成的一段程序,其缔结过程包括:第一步,参与缔约的双方或多方用户商定后将共同合意制定成一份智能合约;第二步,该智能合约通过区块链网络向全球各个区块链的支点广播并存储;第三步,构建成功的智能合约等待条件达成后自动执行合约内容。智能合约(Smart contract)是依托计算机在网络空间运行的合约,智能合约作为区块链技术的重要组成部分,其具有自动执行、去中心化、不可篡改和程序化等特点。

用户可以通过APP或者Web浏览器与区块链网络上的其他用户交换信息。每个用户都对应一个区块链个人电子钱包,其用于保存公钥和私钥。举例来说,区块链个人电子钱包可以是APP或Web浏览器内置的一个功能,也可以是单独的程序,Web浏览器可以是Web2或者Web3浏览器,例如谷歌浏览器。用户通过钱包管控自己的数字资产,包括财产或信息,而不是浏览器搭载的应用服务商,例如腾讯或谷歌等,管理用户的数字资产。

实施例1

参见图3并结合图4,图中给出的是一种数据存储方法,该方法运行在存储服务端上,其包括以下步骤:

步骤S110,在区块链上部署的智能合约内定义一个元数据,并生成用于标识元数据的元数据标识。智能合约通过元数据标识定位元数据,元数据为具有结构性的多种数据元素定义的集合,如图5所示。

步骤S120,获取用户发送的加密个人数据及其加密个人数据标识,加密个人数据及其加密个人数据标识由用户根据元数据、元数据标识和区块链个人电子钱包内的公钥对个人数据进行加密处理而生成。区块链个人电子钱包内包含非对称加密的公钥和私钥;区块链个人电子钱包以独立手机软件(APP),或内置于其他手机软件,或以浏览器扩展(Browser extension)的形式存在。

步骤S130,获取用户发送的第一网络令牌(JWT1),第一网络令牌(JWT1)内包含有用户的区块链个人电子钱包内的公钥。

步骤S140,对第一网络令牌(JWT1)进行有效性验证处理,若验证有效,则根据第一网络令牌(JWT1)内的公钥派生一个用户地址,并根据用户地址生成一个用户专属的一次性密码(Time-based One-Time Password,简称TOTP)返回给用户。

步骤S150,获取用户发送的第二网络令牌(JWT2)和加密个人数据,第二网络令牌(JWT2)内包含有一次性密码。基于用户地址生成的一次性密码(TOTP)的有效期为30秒至60秒,并且在同一时间每个用户得到的一次性密码都是不一样的。

步骤S160,对第二网络令牌(JWT2)及其包含的一次性密码进行有效性验证处理,若验证有效,则根据元数据标识、加密个人数据标识和用户地址产生的数据URI对加密个人数据进行存储。

一次性密码(TOTP)和第二网络令牌(JWT2)的一致性由用户的公钥来保证。参见图4,存储服务验证用户的JWT1,生成验证结果。存储服务根据用户访问的资源的位置,并根据需要存储或读取数据。这里,资源是由统一资源标志符(Uniform Resource Identifier,简称URI)标定的,比如{用户地址}/{元数据标识}/{加密个人数据标识}。用户所有的数据都被放在唯一的用户地址空间之下。URI内的用户地址之后的路径可以让系统快速定位用户数据所在的位置。至此,完成安全的数据访问。

因为所有的数据都是用户使用自己的密钥进行加密,因此,即使某个用户的密钥被窃取之后也只会影响的该用户个人的数据,而不会影响到存储服务里其他用户的数据安全。也就是说,某一个用户的密钥被窃取,并不会影响其他用户的数据安全。

本实施例中的数据存储过程采用两次网络令牌并结合区块链个人电子钱包进行验证处理,不需要用户注册以及输入用户名和密码即可完成数据存储操作,同时用户使用自己的密钥加密数据并存储在存储服务的个人空间内,由于所有的数据都是用户使用自己的密钥进行加密的,即使某个用户的密钥被窃取之后也只会影响该用户的个人数据,而不会影响到系统内其他用户的数据安全,有效地提高了数据存储的安全性能。

在步骤S120中,参见图6,加密个人数据及其加密个人数据标识由用户根据元数据、元数据标识和区块链钱包内的公钥对个人数据进行加密处理而生成,包括以下步骤:

步骤S121,用户通过区块链个人电子钱包访问区块链,并获取区块链上的元数据和元数据标识。

步骤S122,用户根据元数据生成个人数据。

步骤S123,根据元数据标识和区块链个人电子钱包内的公钥派生数据加密密钥,该数据加密密钥是由公钥和元数据标识通过基于密码的密钥派生函数2(Password-BasedKey Derivation Function 2,简称PBKDF2)产生的。

步骤S124,采用数据加密密钥对个人数据进行加密处理,并生成加密个人数据及其加密个人数据标识。

在步骤S130中,第一网络令牌(JWT1)由用户在客户端内生成,并发送至存储服务端上进行处理,第一网络令牌(JWT1)包含Base64URI编码的公钥以及私钥对令牌内容进行签名的数字签名,该公钥用于验证数字签名的真实性。

在步骤S140中,由公钥派生的用户地址与公钥呈一一对应关系,并且是唯一的,保证用户地址与公钥之间的关联性,提高数据存储的安全性。

在步骤S150中,第二网络令牌(JWT2)由用户在客户端内生成,并发送至存储服务端进行处理。第二网络令牌(JWT2)同样地包含Base64URI编码的公钥以及私钥对令牌内容进行签名的数字签名,该公钥用于验证数字签名的真实性。

实施例2

现有的某些与区块链网络相关的数据,比如隐私,大文件等是不能存储在区块链上。这些数据通常会被存放在公共的存储服务上。例如ERC721 NFT的媒体文件经常会被放在星际文件系统(InterPlanetary File System,简称IPFS)上。但是,类似的文件系统是完全开放的,任何用户只要知道数据的URI就可以任意访问。而传统的数据存储服务,需要注册用户名和密码。如果第三方需要访问,那么用户需要把数据从数据存储服务下载到本地,然后再发送给第三方。这种处理方式,除了安全问题之外,数据经过了用户本人中转进行了两次传输,浪费了网络资源。

参见图7并结合图8,图中给出的是一种数据访问方法,适用于第一用户访问其所存储的数据,其包括以下步骤:

步骤S210,获取第一用户发送的第一网络令牌和数据URI,第一网络令牌内包含有第一用户的区块链个人电子钱包内的公钥;

步骤S220,对第一网络令牌进行有效性验证处理,若验证有效,则根据第一网络令牌内的公钥派生一个用户地址,并根据用户地址生成一个第一用户专属的一次性密码返回给第一用户;

步骤S230,获取第一用户发送的第二网络令牌,第二网络令牌内包含有一次性密码;

步骤S240,对第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则定位至数据URI所指向的用户数据,并将用户数据返回至第一用户。

本实施例中的数据访问方法适用于某一用户访问其在存储服务端上存储的用户数据,在数据访问过程中采用两次网络令牌并结合区块链个人电子钱包进行验证处理,不需要用户注册以及输入用户名和密码即可完成数据访问的操作。由于用户使用自己的密钥加密数据并存储在存储服务的个人空间内,无论用户是第一次访问其所存储的数据,还是之后访问数据,都依赖用户的区块链个人电子钱包,也就是私钥和公钥。由于所有的数据都是用户使用自己的密钥进行加密的,即使某个用户的密钥被窃取之后也只会影响该用户的个人数据,而不会影响到系统内其他用户的数据安全。也就是说,某一用户的密钥被窃取,并不会影响其他用户的数据安全。这样有效地提高了数据访问的安全性。

实施例3

参见图9并结合图10,图中给出的是一种数据访问方法,适用于第二用户访问第一用户所存储的数据,其包括以下步骤:

步骤S310,获取第一用户发送的用于允许第二用户访问其用户数据的权限令牌;

步骤S320,获取第二用户发送的第一网络令牌和第一用户的数据URI,第一网络令牌内包含有第二用户的区块链个人电子钱包内的公钥;

步骤S330,对第一网络令牌进行有效性验证处理,若验证有效,则根据第一网络令牌内的公钥派生一个用户地址,并根据用户地址生成一个第二用户专属的一次性密码返回给第二用户;

步骤S340,获取第二用户发送的第二网络令牌,第二网络令牌内包含有一次性密码;

步骤S350,对第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则对权限令牌进行验证处理;

步骤S360,若权限令牌验证通过,则定位至数据URI所指定的第一用户的用户数据,并将用户数据返回至第二用户。

参见图11,在步骤S310中,权限令牌在第一用户的客户端内生成,其生成方法,包括以下步骤:

步骤S311,第二用户通过查询区块链智能合约的元数据发现第一用户的数据URI,并向第一用户发起数据访问要约;

步骤S312,第一用户接受数据访问要约,并生成允许第二用户访问其用户数据的权限令牌。

第二用户通过查询区块链智能合约的元数据获取第一用户的用户地址以及加密个人数据标识,并根据用户地址和加密个人数据标识得到第一用户的数据URI。

第二用户通过区块链智能合约向第一用户发起数据访问要约。

权限令牌包括第二用户的用于验证第二用户的身份的公钥、允许第二用户访问的时间范围以及允许第二用户访问的次数。

本实施例中的数据访问方法适用于某一用户访问其他用户在存储服务端上存储的用户数据,在数据访问过程中采用两次网络令牌并结合区块链个人电子钱包进行验证处理,同时对权限令牌进行验证处理,不需要用户注册以及输入用户名和密码即可完成数据访问的操作。由于所有的数据都是用户使用自己的密钥进行加密的,即使某个用户的密钥被窃取之后也只会影响该用户的个人数据,而不会影响到系统内其他用户的数据安全。也就是说,某一用户的密钥被窃取,并不会影响其他用户的数据安全。这样有效地提高了数据访问的安全性。此外,本实施例中的数据访问方法通过权限令牌限定数据访问过程中其他用户的有效时间范围及允许访问次数,保证了数据的所有权,同时还提高了数据访问的安全性、可控性和追溯性。

实施例4

参见图12,图中给出的是一种数据存储装置,该数据存储装置用于实现实施例1中的数据存储方法,其包括元数据生成模块110、个人数据获取模块120、第一网络令牌获取模块130、第一验证处理模块140、第二网络令牌获取模块150以及第二验证处理模块160。

元数据生成模块110用于在区块链上部署的智能合约内定义一个元数据,并生成用于标识元数据的元数据标识。

个人数据获取模块120用于获取用户发送的加密个人数据及其加密个人数据标识,加密个人数据及其加密个人数据标识由用户根据元数据、元数据标识和区块链个人电子钱包内的公钥对个人数据进行加密处理而生成。

第一网络令牌获取模块130用于获取用户发送的第一网络令牌,第一网络令牌内包含有用户的区块链个人电子钱包内的公钥。

第一验证处理模块140用于对第一网络令牌进行有效性验证处理,若验证有效,则根据第一网络令牌内的公钥派生一个用户地址,并根据用户地址生成一个用户专属的一次性密码返回给用户。

第二网络令牌获取模块150用于获取用户发送的第二网络令牌和加密个人数据,第二网络令牌内包含有一次性密码。

第二验证处理模块160用于对第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则根据元数据标识、加密个人数据标识和用户地址产生的数据URI对加密个人数据进行存储。

本实施例中的数据存储过程采用两次网络令牌并结合区块链个人电子钱包进行验证处理,不需要用户注册以及输入用户名和密码即可完成数据存储操作,同时用户使用自己的密钥加密数据并存储在存储服务的个人空间内,由于所有的数据都是用户使用自己的密钥进行加密的,即使某个用户的密钥被窃取之后也只会影响该用户的个人数据,而不会影响到系统内其他用户的数据安全,有效地提高了数据存储的安全性能。

本实施例中的数据存储装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

实施例5

参见图13,图中给出的是一种数据访问装置,该数据访问装置用于实现实施例2中的数据访问方法,其包括第一网络令牌获取模块210、第一验证处理模块220、第二网络令牌获取模块230以及第二验证处理模块240。

第一网络令牌获取模块210用于获取第一用户发送的第一网络令牌和数据URI,第一网络令牌内包含有第一用户的区块链个人电子钱包内的公钥。

第一验证处理模块220用于对第一网络令牌进行有效性验证处理,若验证有效,则根据第一网络令牌内的公钥派生一个用户地址,并根据用户地址生成一个第一用户专属的一次性密码返回给第一用户。

第二网络令牌获取模块230用于获取第一用户发送的第二网络令牌,第二网络令牌内包含有一次性密码。

第二验证处理模块240用于对第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则定位至数据URI所指向的用户数据,并将用户数据返回至第一用户。

本实施例中的数据访问装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

实施例6

参见图14,图中给出的是一种数据访问装置,该数据访问装置用于实现实施例3中的数据访问方法,其包括权限令牌获取模块310、第一网络令牌获取模块320、第一验证处理模块330、第二网络令牌获取模块340、第二验证处理模块350以及第三验证处理模块360。

权限令牌获取模块310用于获取第一用户发送的用于允许第二用户访问其用户数据的权限令牌。

第一网络令牌获取模块320用于获取第二用户发送的第一网络令牌和第一用户的数据URI,第一网络令牌内包含有第二用户的区块链个人电子钱包内的公钥。

第一验证处理模块330用于对第一网络令牌进行有效性验证处理,若验证有效,则根据第一网络令牌内的公钥派生一个用户地址,并根据用户地址生成一个第二用户专属的一次性密码返回给第二用户。

第二网络令牌获取模块340用于获取第二用户发送的第二网络令牌,第二网络令牌内包含有一次性密码。

第二验证处理模块350用于对第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则对权限令牌进行验证处理。

第三验证处理模块360用于若权限令牌验证通过,则定位至数据URI所指定的第一用户的用户数据,并将用户数据返回至第二用户。

本实施例中的数据访问装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

实施例7

本实施例还提供了一种用于实现实施例1中的数据存储方法或实施例2中的数据访问方法或实施例3中的数据访问方法的计算机设备,该计算机设备可以是服务器,其内部结构图可以如图15所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储用户信息、记录信息和文件等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现实施例1中的数据存储方法或实施例2中的数据访问方法或实施例3中的数据访问方法。

本领域技术人员可以理解,图15中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

具体地,本实施例中的计算机设备包括存储器和处理器,该存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:

步骤S110,在区块链上部署的智能合约内定义一个元数据,并生成用于标识元数据的元数据标识;

步骤S120,获取用户发送的加密个人数据及其加密个人数据标识;

步骤S130,获取用户发送的第一网络令牌,第一网络令牌内包含有用户的区块链个人电子钱包内的公钥;

步骤S140,对第一网络令牌进行有效性验证处理,若验证有效,则根据第一网络令牌内的公钥派生一个用户地址,并根据用户地址生成一个用户专属的一次性密码返回给用户;

步骤S150,获取用户发送的第二网络令牌和加密个人数据,第二网络令牌内包含有一次性密码;

步骤S160,对第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则根据元数据标识、加密个人数据标识和用户地址产生的数据URI对加密个人数据进行存储。

又或者,本实施例中的计算机设备包括存储器和处理器,该存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:

步骤S210,获取第一用户发送的第一网络令牌和数据URI,第一网络令牌内包含有第一用户的区块链个人电子钱包内的公钥;

步骤S220,对第一网络令牌进行有效性验证处理,若验证有效,则根据第一网络令牌内的公钥派生一个用户地址,并根据用户地址生成一个第一用户专属的一次性密码返回给第一用户;

步骤S230,获取第一用户发送的第二网络令牌,第二网络令牌内包含有一次性密码;

步骤S240,对第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则定位至数据URI所指向的用户数据,并将用户数据返回至第一用户。

再或者,本实施例中的计算机设备包括存储器和处理器,该存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:

步骤S310,获取第一用户发送的用于允许第二用户访问其用户数据的权限令牌;

步骤S320,获取第二用户发送的第一网络令牌和第一用户的数据URI,第一网络令牌内包含有第二用户的区块链个人电子钱包内的公钥;

步骤S330,对第一网络令牌进行有效性验证处理,若验证有效,则根据第一网络令牌内的公钥派生一个用户地址,并根据用户地址生成一个第二用户专属的一次性密码返回给第二用户;

步骤S340,获取第二用户发送的第二网络令牌,第二网络令牌内包含有一次性密码;

步骤S350,对第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则对权限令牌进行验证处理;

步骤S360,若权限令牌验证通过,则定位至数据URI所指定的第一用户的用户数据,并将用户数据返回至第二用户。

本实施例中的计算机设备在数据存储或数据访问过程均采用两次网络令牌并结合区块链个人电子钱包进行验证处理,不需要用户注册以及输入用户名和密码即可完成数据存储或数据访问的操作,同时用户使用自己的密钥加密数据并存储在存储服务的个人空间内,无论用户是第一次访问其所存储的数据,还是之后访问数据,都依赖用户的区块链个人电子钱包,也就是私钥和公钥。由于所有的数据都是用户使用自己的密钥进行加密的,即使某个用户的密钥被窃取之后也只会影响该用户的个人数据,而不会影响到系统内其他用户的数据安全。也就是说,某一用户的密钥被窃取,并不会影响其他用户的数据安全。这样有效地提高了数据存储和数据访问的安全性。

实施例8

本实施例还提供了一种用于实现实施例1中的数据存储方法或实施例2中的数据访问方法或实施例3中的数据访问方法的计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:

步骤S110,在区块链上部署的智能合约内定义一个元数据,并生成用于标识元数据的元数据标识;

步骤S120,获取用户发送的加密个人数据及其加密个人数据标识;

步骤S130,获取用户发送的第一网络令牌,第一网络令牌内包含有用户的区块链个人电子钱包内的公钥;

步骤S140,对第一网络令牌进行有效性验证处理,若验证有效,则根据第一网络令牌内的公钥派生一个用户地址,并根据用户地址生成一个用户专属的一次性密码返回给用户;

步骤S150,获取用户发送的第二网络令牌和加密个人数据,第二网络令牌内包含有一次性密码;

步骤S160,对第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则根据元数据标识、加密个人数据标识和用户地址产生的数据URI对加密个人数据进行存储。

又或者,该计算机程序被处理器执行时实现以下步骤:

步骤S210,获取第一用户发送的第一网络令牌和数据URI,第一网络令牌内包含有第一用户的区块链个人电子钱包内的公钥;

步骤S220,对第一网络令牌进行有效性验证处理,若验证有效,则根据第一网络令牌内的公钥派生一个用户地址,并根据用户地址生成一个第一用户专属的一次性密码返回给第一用户;

步骤S230,获取第一用户发送的第二网络令牌,第二网络令牌内包含有一次性密码;

步骤S240,对第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则定位至数据URI所指向的用户数据,并将用户数据返回至第一用户。

再或者,该计算机程序被处理器执行时实现以下步骤:

步骤S310,获取第一用户发送的用于允许第二用户访问其用户数据的权限令牌;

步骤S320,获取第二用户发送的第一网络令牌和第一用户的数据URI,第一网络令牌内包含有第二用户的区块链个人电子钱包内的公钥;

步骤S330,对第一网络令牌进行有效性验证处理,若验证有效,则根据第一网络令牌内的公钥派生一个用户地址,并根据用户地址生成一个第二用户专属的一次性密码返回给第二用户;

步骤S340,获取第二用户发送的第二网络令牌,第二网络令牌内包含有一次性密码;

步骤S350,对第二网络令牌及其包含的一次性密码进行有效性验证处理,若验证有效,则对权限令牌进行验证处理;

步骤S360,若权限令牌验证通过,则定位至数据URI所指定的第一用户的用户数据,并将用户数据返回至第二用户。

本实施例中的计算机可读存储介质在数据存储或数据访问过程均采用两次网络令牌并结合区块链个人电子钱包进行验证处理,不需要用户注册以及输入用户名和密码即可完成数据存储或数据访问的操作,同时用户使用自己的密钥加密数据并存储在存储服务的个人空间内,无论用户是第一次访问其所存储的数据,还是之后访问数据,都依赖用户的区块链个人电子钱包,也就是私钥和公钥。由于所有的数据都是用户使用自己的密钥进行加密的,即使某个用户的密钥被窃取之后也只会影响该用户的个人数据,而不会影响到系统内其他用户的数据安全。也就是说,某一用户的密钥被窃取,并不会影响其他用户的数据安全。这样有效地提高了数据存储和数据访问的安全性。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

相关技术
  • 柔性线路板、阵列基板以及柔性线路板的制作方法
  • 线路板天线制作方法、线路板天线、射频装置、电子设备
  • 一种传感器芯片催化电极转化腔配方及制作方法
  • 传感器芯片嵌入式立体凹凸形线路板及其制作方法
  • 立体型DBC陶瓷线路板制作方法及制得的立体型DBC陶瓷线路板
技术分类

06120116519050