CN117932640A - 一种面向联盟链的数据处理系统 - Google Patents

一种面向联盟链的数据处理系统 Download PDF

Info

Publication number
CN117932640A
CN117932640A CN202410103777.4A CN202410103777A CN117932640A CN 117932640 A CN117932640 A CN 117932640A CN 202410103777 A CN202410103777 A CN 202410103777A CN 117932640 A CN117932640 A CN 117932640A
Authority
CN
China
Prior art keywords
data
chain
request
module
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410103777.4A
Other languages
English (en)
Inventor
谭艾迪
盖珂珂
卢威
卫亦航
魏双剑
祝烈煌
王美慧
姚晗
翟雁
赵佳琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Shipbuilding Corp Comprehensive Technical And Economic Research Institute
Beijing Institute of Technology BIT
Original Assignee
China Shipbuilding Corp Comprehensive Technical And Economic Research Institute
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Shipbuilding Corp Comprehensive Technical And Economic Research Institute, Beijing Institute of Technology BIT filed Critical China Shipbuilding Corp Comprehensive Technical And Economic Research Institute
Priority to CN202410103777.4A priority Critical patent/CN117932640A/zh
Publication of CN117932640A publication Critical patent/CN117932640A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开一种面向联盟链的数据处理系统,涉及计算机技术领域,该系统包括:数据创建模块对数据创建请求和头部节点证书进行验证,当验证结果符合预设要求时调用加密服务按照链上用户的组织ID对应的组织配置的算法对数据明文进行加密;数据更新模块对数据更新请求和头部节点证书进行验证,当验证结果符合预设要求时调用加密服务按照链上用户的组织ID对应的组织配置的算法对已上链数据进行加密并更新;数据查询模块对数据查询请求和头部节点证书进行验证,当验证结果符合预设要求时调用解密服务按照链上用户的组织ID对应的组织配置的算法对目标数据进行解密,得到解密后的数据。本发明能够提升联盟链在数据存证时数据的安全性与可靠性。

Description

一种面向联盟链的数据处理系统
技术领域
本发明涉及计算机技术领域,特别是涉及一种面向联盟链的数据处理系统。
背景技术
随着联盟链系统的发展,生活中已有一些区块链应用的落地,然而,目前落地的系统普遍存在以下问题:(1)目前联盟链系统的落地大多数应用于数据存证,即将区块链系统作为一种可信数据库来存储数据,然而,由于区块链的节点的算力瓶颈与存储瓶颈,在区块链上存取数据的存取效率不高。(2)目前联盟链上存的数据大多以序列化、或其他数字化形式直接存储与区块链上,并没有做任何加密处理。这使得任何可以访问链上的智能终端都可以任意获取链上的信息。链上用户的隐私易被暴露。
因此,亟需一种提升联盟链在数据存证时数据的安全性与可靠性的数据加密存储与查询系统。
发明内容
为了解决上述联盟链系统应用落地存在的问题,本发明提供了一种面向联盟链的数据处理系统,能够提升联盟链在数据存证时数据的安全性与可靠性。
为实现上述目的,本发明提供了如下方案:
一种面向联盟链的数据处理系统,所述系统包括数据创建模块、数据更新模块和数据查询模块;
所述数据创建模块,用于接收链上用户的数据创建请求,并对所述数据创建请求以及头部节点证书进行验证,当验证结果符合预设要求时,接收所述链上用户发送的数据明文,并调用加密服务按照所述链上用户的组织ID对应的组织配置的算法对所述数据明文进行加密,将加密后的数据明文以及所述链上用户的组织ID存储到第一区块中,并接收返回的所述加密后的数据明文的哈希值,以及将所述第一区块同步到共识节点,由所述共识节点对所述第一区块进行验证,并将通过验证的第一区块存储至区块链;所述数据创建请求包括链上用户的签名、数据主键证书信息及请求时间戳;
所述数据更新模块,用于接收所述链上用户的数据更新请求和所述链上用户发送的已上链数据,并对所述数据更新请求以及所述头部节点证书进行验证,当验证结果符合预设要求时,调用加密服务按照所述链上用户的组织ID对应的组织配置的算法对所述已上链数据进行加密并更新,将加密后的已上链数据以及所述链上用户的组织ID存储到第二区块中,并接收返回的所述加密后的已上链数据的哈希值,以及将所述第二区块同步到共识节点,由所述共识节点对所述第二区块进行验证,并将通过验证的第二区块存储至所述区块链;所述数据更新请求包括链上用户的签名信息、数据主键证书信息、数据主键存储的原密文数据的哈希值以及请求时间戳;
所述数据查询模块分别与所述数据创建模块和所述数据更新模块连接;所述数据查询模块用于接收所述链上用户的数据查询请求,并对所述数据查询请求以及所述头部节点证书进行验证,当验证结果符合预设要求时,调用解密服务按照所述链上用户的组织ID对应的组织配置的算法对目标数据进行解密,得到解密后的数据,并将查询记录存储至第三区块,将所述第三区块发送至共识节点,由所述共识节点对所述第三区块进行验证,并将通过验证的第三区块存储至所述区块链;所述数据查询请求包括链上用户的签名信息、数据主键证书信息以及请求时间戳;所述目标数据为根据所述链上用户的数据主键证书信息的数据主键在所述区块链中查到的数据记录。
可选地,所述数据创建模块包括依次连接的数据创建接收请求模块、数据创建头部节点验证模块、数据创建数据加密模块和数据创建出块及上链模块;
所述数据创建接收请求模块用于接收链上用户的数据创建请求和所述链上用户发送的数据明文,并将所述数据创建请求和所述数据明文发送至头部节点;所述数据创建请求包括链上用户的签名、数据主键证书信息及请求时间戳;
所述数据创建头部节点验证模块用于通过所述头部节点对所述数据创建请求以及所述头部节点证书进行验证,并将所述验证结果发送至所述数据创建数据加密模块;
所述数据创建数据加密模块用于当验证结果符合预设要求时,调用加密服务按照所述链上用户的组织ID对应的组织配置的算法对所述数据明文进行加密,将加密后的数据明文以及所述链上用户的组织ID存储到第一区块中,并接收返回的所述加密后的数据明文的哈希值,以及将所述第一区块发送至所述数据创建出块及上链模块;
所述数据创建出块及上链模块用于将所述第一区块同步至共识节点,由所述共识节点对所述第一区块进行验证,并将通过验证的第一区块存储至区块链。
可选地,对所述数据创建请求以及所述头部节点证书进行验证的过程包括:
判断所述请求时间戳是否过期;
当所述请求时间戳没有过期时,判断所述链上用户的签名是否通过所述头部节点的公钥验证;
当所述请求时间戳没有过期且所述签名通过所述头部节点的公钥验证时,判断所述头部节点证书是否在过期证书索引中;
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证且所述头部节点证书没有在过期证书索引中时,判断所述数据主键证书信息是否在所述区块链中;
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证、所述头部节点证书没有在过期证书索引中且所述数据主键证书信息不在所述区块链中时,所述验证结果为通过;
否则,所述验证结果为不通过。
可选地,所述头部节点通过ssh通道接收所述链上用户发送的数据明文。
可选地,所述调用加密服务按照所述链上用户的组织ID对应的组织配置的RSA算法,利用所述头部节点的加密公钥对所述数据明文进行加密。
可选地,所述系统还包括数据库存储模块;
所述数据库存储模块分别与所述数据创建模块、所述数据更新模块和所述数据查询模块连接;
所述数据库存储模块用于将存储至所述区块链上的数据保存至后端数据库。
可选地,所述数据更新模块包括依次连接的数据更新接收请求模块、数据更新头部节点验证模块、数据更新数据加密模块和数据更新出块及上链模块;
所述数据更新接收请求模块用于接收所述链上用户的数据更新请求和所述链上用户发送的已上链数据,并将所述数据更新请求和所述已上链数据发送至头部节点;所述数据更新请求包括链上用户的签名信息、数据主键证书信息、数据主键存储的原密文数据的哈希值以及请求时间戳;
所述数据更新头部节点验证模块用于通过所述头部节点对所述数据更新请求以及所述头部节点证书进行验证,并将所述验证结果发送至所述数据更新数据加密模块;
所述数据更新数据加密模块用于当验证结果符合预设要求时,调用加密服务按照所述链上用户的组织ID对应的组织配置的算法对所述已上链数据进行加密并更新,将加密后的已上链数据以及所述链上用户的组织ID存储到第二区块中,并接收返回的所述加密后的已上链数据的哈希值,以及将所述第二区块发送至所述数据更新出块及上链模块;
所述数据更新出块及上链模块用于将所述第二区块同步至所述共识节点,由所述共识节点对所述第二区块进行验证,并将通过验证的第二区块存储至所述区块链。
可选地,所述数据查询模块包括依次连接的数据查询接收请求模块、数据查询头部节点验证模块、数据查询数据加密模块和数据查询出块及上链模块;
所述数据查询接收请求模块分别与所述数据创建模块和所述数据更新模块连接;所述数据查询接收请求模块用于接收所述链上用户的数据查询请求,并将所述数据查询请求发送至头部节点;所述数据查询请求包括链上用户的签名信息、数据主键证书信息以及请求时间戳;
所述数据查询头部节点验证模块用于通过所述头部节点对所述数据查询请求以及所述头部节点证书进行验证,并将所述验证结果发送至所述数据查询数据加密模块;
所述数据查询用户数据加密模块用于当验证结果符合预设要求时,调用解密服务按照所述链上的组织ID对应的组织配置的算法对所述目标数据进行解密,得到解密后的数据,并将查询记录存储至第三区块,以及将所述第三区块发送至所述数据查询出块及上链模块;所述目标数据为根据所述链上用户的数据主键证书信息的数据主键在所述区块链中查到的数据记录;
所述数据查询出块及上链模块用于将所述第三区块发送至共识节点,由所述共识节点对所述第三区块进行验证,并将通过验证的第三区块存储至所述区块链。
可选地,对所述数据更新请求以及所述头部节点证书进行验证的过程包括:
判断所述请求时间戳是否过期;
当所述请求时间戳没有过期时,判断所述链上用户的签名是否通过所述头部节点的公钥验证;
当所述请求时间戳没有过期且所述签名通过所述头部节点的公钥验证时,判断所述头部节点证书是否在过期证书索引中;
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证且所述头部节点证书没有在过期证书索引中时,判断所述数据主键证书信息是否在所述区块链中;
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证、所述头部节点证书没有在过期证书索引中且所述数据主键证书信息在所述区块链中时,判断所述数据主键存储的所述已上链数据的哈希值与所述加密后的已上链数据的哈希值是否匹配;
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证、所述头部节点证书没有在过期证书索引中、所述数据主键证书信息在所述区块链中且所述数据主键存储的所述已上链数据的哈希值与所述加密后的已上链数据的哈希值匹配时,所述验证结果为通过;
否则,所述验证结果为不通过。
可选地,对所述数据查询请求以及所述头部节点证书进行验证的过程包括:
判断所述请求时间戳是否过期;
当所述请求时间戳没有过期时,判断所述链上用户的签名是否通过所述头部节点的公钥验证;
当所述请求时间戳没有过期且所述签名通过所述头部节点的公钥验证时,判断所述头部节点证书是否在过期证书索引中;
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证且所述头部节点证书没有在过期证书索引中时,判断是否能够根据所述目标数据的数据主键证书信息在所述区块链中查询到对应的数据记录;
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证、所述头部节点证书没有在过期证书索引中且能够根据所述目标数据的数据主键证书信息在所述区块链中查询到对应的数据记录时,所述验证结果为通过;
否则,所述验证结果为不通过。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明通过数据创建模块对数据创建请求和头部节点证书进行验证,当验证结果符合预设要求时调用加密服务按照链上用户的组织ID对应的组织配置的算法对数据明文进行加密;通过数据更新模块对数据更新请求和头部节点证书进行验证,当验证结果符合预设要求时调用加密服务按照链上用户的组织ID对应的组织配置的算法对已上链数据进行加密并更新;以及通过数据查询模块对数据查询请求和头部节点证书进行验证,当验证结果符合预设要求时调用解密服务按照链上用户的组织ID对应的组织配置的算法对目标数据进行解密,得到解密后的数据,因此本发明能够提升联盟链在数据存证时数据的安全性与可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明面向联盟链的数据处理系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种面向联盟链的数据处理系统,能够提升联盟链在数据存证时数据的安全性与可靠性。
为了实现数据的加密存储查询与安全共享,本发明提出一种面向联盟链的数据加密存储与查询方案,基于联盟链系统进行设计,提升联盟链在数据存证时数据的安全性与可信性。
对相关定义进行说明:
定义1:联盟链网络。
联盟链是按照区块链从访问控制角度划分的区块链类型,与数字货币等公有区块链不同,联盟链具有基于加密证书和CA的准入机制,仅通过CA授权组织和节点可以加入联盟链网络。联盟链账本包含两部分,包括由状态数据库账本及历史链式数据库账本。本发明根据联盟链特有的准入机制设计了一套特有的数据加密存储与查询方法。链上的各个组织可以根据自身需要选择特定的准入机制进行存储,查询也需要经过各组织统一并进行基于智能合约的数据解密与查询方法。
定义2:智能合约。
智能合约是一种部署在区块链网络上的计算机程序,能够在不依赖中心化服务器的条件下正确执行。通过提前规定好合约的内容,在当满足触发合约条件的时候,程序就会自动执行合约内容。本发明采用智能合约进行数据加解密、数据上链及数据查询。
定义3:交易。
公有链中的交易是指代表数字货币所有权转移的一组数字签名。本发明基于联盟链实现,所指交易为用于与联盟链智能合约交互的数据上链请求、数据加密事务及查询结果的区块链记录载体,以实现上链过程透明、数据意思不被泄露。本发明主要包含三种交易,分别为数据信息创建交易、数据信息修改交易和数据信息查询交易。
其中,数据信息创建交易,即将数据按照组织配置进行加密及链上存储的区块链交互请求,并记录上链结果、加密信息的区块链载体。
数据信息修改交易,即将数据按照组织配置进行修改,并将修改后的数据进行加密及链上存储的区块链交互请求,并记录上链结果、加密信息的区块链载体。
数据信息查询交易,即将数据按照组织配置进行修改,并将查询到的数据进行解密,并将查询过程结果及过程信息进行存储的区块链载体。
定义4:客户端。
是指系统使用者向联盟链进行交互的软件或界面。其作用是向区块链网络发送数据请求,触发交易及合约执行。并接收由区块链网络返回的信息。
定义5:组织配置。
所述组织配置是部署在组织节点所在服务器上的配置文件。内部包含了进行数据加解密时包含的秘钥、证书路径及所使用算法信息。
定义6:头部节点。
指联盟链组织内的领导者节点。本发明描述的系统中,由客户端发送的用户交互请求会先交由头部节点进行处理。
定义7:数据加解密合约。
指用于数据加解密的智能合约。其特征包括:
1.包括与数据加密存储、相关的合约方法。
2.加密方法可对数据针对用户请求使用不同方法进行加密。
3.查询方法可对数据针对用户请求和加密算法及组织节点秘钥信息对链上数据进行解密。
加解密合约可读取各个组织节点的组织配置,并根据组织配置调用相关加密算法完成数据加密存储及解密查询。
定义8:后端数据库。
后端数据库是指对联盟链数据存储进行记录的关系型数据库。其内部包含数据在区块链存储的主键信息、时间戳、及数据进行加密后的哈希值,其功能是对数据修改时的主键所存信息进行查询。规避区块链的吞吐量瓶颈,提升数据合法性验证效率。
定义9:ssh通道。
ssh通道为建立在各个组织头部节点与普通节点之间的加密数据传输通道,用于传输数据明文。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
如图1所示,本发明提供了一种面向联盟链的数据处理系统,所述系统包括数据创建模块、数据更新模块和数据查询模块。
所述数据创建模块,用于接收链上用户的数据创建请求,并对所述数据创建请求以及头部节点证书进行验证,当验证结果符合预设要求时,接收所述链上用户发送的数据明文,并调用加密服务按照所述链上用户的组织ID对应的组织配置的算法对所述数据明文进行加密,将加密后的数据明文以及所述链上用户的组织ID存储到第一区块中,并接收返回的所述加密后的数据明文的哈希值,以及将所述第一区块同步到共识节点,由所述共识节点对所述第一区块进行验证,并将通过验证的第一区块存储至区块链;所述数据创建请求包括链上用户的签名、数据主键证书信息及请求时间戳。
所述数据更新模块,用于接收所述链上用户的数据更新请求和所述链上用户发送的已上链数据,并对所述数据更新请求以及所述头部节点证书进行验证,当验证结果符合预设要求时,调用加密服务按照所述链上用户的组织ID对应的组织配置的算法对所述已上链数据进行加密并更新,将加密后的已上链数据以及所述链上用户的组织ID存储到第二区块中,并接收返回的所述加密后的已上链数据的哈希值,以及将所述第二区块同步到共识节点,由所述共识节点对所述第二区块进行验证,并将通过验证的第二区块存储至所述区块链;所述数据更新请求包括链上用户的签名信息、数据主键证书信息、数据主键存储的原密文数据的哈希值以及请求时间戳。
所述数据查询模块分别与所述数据创建模块和所述数据更新模块连接;所述数据查询模块用于接收所述链上用户的数据查询请求,并对所述数据查询请求以及所述头部节点证书进行验证,当验证结果符合预设要求时,调用解密服务按照所述链上用户的组织ID对应的组织配置的算法对目标数据进行解密,得到解密后的数据,并将查询记录存储至第三区块,将所述第三区块发送至共识节点,由所述共识节点对所述第三区块进行验证,并将通过验证的第三区块存储至所述区块链;所述数据查询请求包括链上用户的签名信息、数据主键证书信息以及请求时间戳;所述目标数据为根据所述链上用户的数据主键证书信息的数据主键在所述区块链中查到的数据记录。
在实际应用中,所述面向联盟链的数据处理系统包括1.系统初始化与用户注册;2.数据创建;3.数据更新(修改);4.数据查询等功能。下面对以上过程做详细说明。
具体地,本实施例详细阐述了在底链为长安链,4个共识节点,4个组织,每个组织1个头部节点,3个普通节点的情况下,本发明的数据加密和查询情况。
1.系统初始化与用户注册。
1.1共识节点部署。
系统使用前首先将区块链的代码进行部署,并进行启动,部署且启动成功的服务器被称为区块链共识节点。根据联盟链常用的PBFT算法为3f+1容错模型,需要部署4个共识节点以保证区块链系统的可用性。
具体地,在选取的服务器中,部署联盟链所需的共识节点。本实施例将共识行为所需的镜像的方式单机部署了4个共识节点。
1.2组织新增与节点增加。
当共识节点部署完毕后,使用区块链的各方对区块链内组织进行创建并对节点进行部署与新增。各方根据自身情况确定终端确定头部节点所在硬件设备并进行部署。
具体地,使用长安链的命令行工具(cmc)生成4个组织根证书文件,组织ID分别为001,002,003,004。并将4个组织添加到4个共识节点所在的区块链上。添加组织完毕后,将各组织根证书所在的服务器中分别部署1个头部节点镜像以及3个普通节点镜像。
1.3组织配置添加。
当头部节点部署完毕后,由头部节点维护人员构造组织配置。组织配置包括:
组织信息:包括组织ID、组织CA证书路径、组织信任根证书路径。
Grpc通信信息:包括节点连接的grpc ip与端口号信息。
头部节点信息:包括头部节点的私钥与证书文件。
加密服务信息:包括组织加解密所使用的非对称加密算法名称、加密私钥与公钥所在文件路径。
后端数据库信息:用于记录数据加解密更新的后端数据库。
具体地,当头部节点部署完毕后,由头部节点维护人员构造组织配置,以配置文件的方式加入在各个头部节点的安装包中(.yml)。
组织配置包括:
组织信息:包括组织ID、组织CA证书路径、组织信任根证书路径。
Grpc通信信息:包括节点连接的grpc ip与端口号信息。
头部节点信息:包括头部节点的私钥与证书文件。
加密服务信息:包括组织加解密所使用的非对称加密算法名称、加密私钥与公钥所在文件路径。
后端数据库信息:用于记录数据加解密更新的后端数据库。
1.4加密服务启动。
组织配置添加后,头部节点维护人员重新启动区块链服务,区块链根据组织配置信息自动启动加密服务。
1.5客户端启动。
使用区块链的各个组织在智能终端上部署区块链节点所需要的镜像,并根据镜像配置信息启动客户端,并可调用其中的SDK方法。
1.6用户注册。
各节点使用客户端生成用户私钥、用户公钥以及证书。并完成用户注册。完成注册后,利用组织内的p2p网络建立ssh通道,用于传输明文数据。
作为一个具体地实施方式,所述数据创建模块包括依次连接的数据创建接收请求模块、数据创建头部节点验证模块、数据创建数据加密模块和数据创建出块及上链模块。
所述数据创建接收请求模块用于接收链上用户的数据创建请求和所述链上用户发送的数据明文,并将所述数据创建请求和所述数据明文发送至头部节点;所述数据创建请求包括链上用户的签名、数据主键证书信息及请求时间戳。
所述数据创建头部节点验证模块用于通过所述头部节点对所述数据创建请求以及所述头部节点证书进行验证,并将所述验证结果发送至所述数据创建数据加密模块。
所述数据创建数据加密模块用于当验证结果符合预设要求时,调用加密服务按照所述链上用户的组织ID对应的组织配置的算法对所述数据明文进行加密,将加密后的数据明文以及所述链上用户的组织ID存储到第一区块中,并接收返回的所述加密后的数据明文的哈希值,以及将所述第一区块发送至所述数据创建出块及上链模块。
所述数据创建出块及上链模块用于将所述第一区块同步至共识节点,由所述共识节点对所述第一区块进行验证,并将通过验证的第一区块存储至区块链。
作为一个具体地实施方式,对所述数据创建请求以及所述头部节点证书进行验证的过程包括:
判断所述请求时间戳是否过期。
当所述请求时间戳没有过期时,判断所述链上用户的签名是否通过所述头部节点的公钥验证。
当所述请求时间戳没有过期且所述签名通过所述头部节点的公钥验证时,判断所述头部节点证书是否在过期证书索引中。
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证且所述头部节点证书没有在过期证书索引中时,判断所述数据主键证书信息是否在所述区块链中。
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证、所述头部节点证书没有在过期证书索引中且所述数据主键证书信息不在所述区块链中时,所述验证结果为通过。
否则,所述验证结果为不通过。
作为一个具体地实施方式,所述头部节点通过ssh通道接收所述链上用户发送的数据明文。
作为一个具体地实施方式,所述调用加密服务按照所述链上用户的组织ID对应的组织配置的RSA算法,利用所述头部节点的加密公钥对所述数据明文进行加密。
在实际应用中,2.数据创建,具体过程包括:
2.1客户端发送请求。
数据创建由链上用户发起,链上用户调用SDK方法触发加密合约执行。并将执行情况传递给头部节点,请求中包括链上用户的签名、数据主键证书信息及请求时间戳。
具体地,组织ID为001的用户欲将一条数据加密存储,于是向组织头部节点发送了一条数据创建请求,内部包含了该用户的签名信息、数据上链时的主键以及时间戳信息。
2.2头部节点验证。
头部节点收到请求后,验证请求中包含的时间戳是否过期,及证书信息是否在过期索引中。证书过期或者时间戳超出规定阈值的不进行之后步骤。
2.3数据加密。
验证完毕后,加密合约被触发,其所调用头部节点的加密服务,按照组织配置规定的算法对数据进行加密,并将加密后的数据及加密服务中包含的组织ID信息记录到区块中,并向头部节点返回数据哈希值。
具体地,经头部节点验证,签名信息可被该节点公钥验证,且节点证书并未过期,数据请求未超时,用户请求的数据主键在区块链中也并未查询到记录。此时,加密合约调用头部节点的加密服务,用户利用客户端,将数据明文通过ssh通道发送给头部节点。头部节点按照001组织规定的RSA算法,利用头部节点的加密公钥对数据进行加密,并将加密后的数据及加密服务中包含的组织ID信息记录到区块中,并向头部节点返回数据哈希值。
2.4出块及上链。
头部节点将区块同步到共识节点后,由共识节点进行验证,通过共识的区块将被记录在区块链上。上链后,数据主键、数据的哈希、区块高度将保存在后端数据库。
作为一个具体地实施方式,所述数据更新模块包括依次连接的数据更新接收请求模块、数据更新头部节点验证模块、数据更新数据加密模块和数据更新出块及上链模块。
所述数据更新接收请求模块用于接收所述链上用户的数据更新请求和所述链上用户发送的已上链数据,并将所述数据更新请求和所述已上链数据发送至头部节点;所述数据更新请求包括链上用户的签名信息、数据主键证书信息、数据主键存储的原密文数据的哈希值以及请求时间戳。
所述数据更新头部节点验证模块用于通过所述头部节点对所述数据更新请求以及所述头部节点证书进行验证,并将所述验证结果发送至所述数据更新数据加密模块。
所述数据更新数据加密模块用于当验证结果符合预设要求时,调用加密服务按照所述链上用户的组织ID对应的组织配置的算法对所述已上链数据进行加密并更新,将加密后的已上链数据以及所述链上用户的组织ID存储到第二区块中,并接收返回的所述加密后的已上链数据的哈希值,以及将所述第二区块发送至所述数据更新出块及上链模块。
所述数据更新出块及上链模块用于将所述第二区块同步至所述共识节点,由所述共识节点对所述第二区块进行验证,并将通过验证的第二区块存储至所述区块链。
作为一个具体地实施方式,对所述数据更新请求以及所述头部节点证书进行验证的过程包括:
判断所述请求时间戳是否过期。
当所述请求时间戳没有过期时,判断所述链上用户的签名是否通过所述头部节点的公钥验证。
当所述请求时间戳没有过期且所述签名通过所述头部节点的公钥验证时,判断所述头部节点证书是否在过期证书索引中。
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证且所述头部节点证书没有在过期证书索引中时,判断所述数据主键证书信息是否在所述区块链中。
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证、所述头部节点证书没有在过期证书索引中且所述数据主键证书信息在所述区块链中时,判断所述数据主键存储的所述已上链数据的哈希值与所述加密后的已上链数据的哈希值是否匹配。
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证、所述头部节点证书没有在过期证书索引中、所述数据主键证书信息在所述区块链中且所述数据主键存储的所述已上链数据的哈希值与所述加密后的已上链数据的哈希值匹配时,所述验证结果为通过。
否则,所述验证结果为不通过。
在实际应用中,3.数据更新,具体过程包括:
3.1客户端发送请求。
数据创建由链上用户发起,链上用户调用SDK方法触发更新合约执行。并将执行情况传递给头部节点,请求中包括链上用户的签名及证书信息及请求时间戳、数据主键与更新数据明文。
具体地,组织ID为001的用户将一条已上链的数据进行加密,于是向组织头部节点发送了一条数据创建请求,内部包含了该用户的签名信息、数据上链时的主键、数据主键所存储原密文数据的哈希值以及时间戳信息。本发明中的已上链的数据为加密后的数据,也就是已经经过加密存储至区块链中的数据,此处提到的将一条已上链的数据进行加密,指的是已经经过加密存储至区块链中的数据在未加密状态下的原数据重新进行加密后,将原存储至区块链中的该原数据加密后的数据进行更新。
3.2头部节点验证。
头部节点收到请求后,验证请求中包含的时间戳是否过期,及证书信息是否在过期索引中、数据主键是否存在。证书过期或者时间戳超出规定阈值以及数据主键不存在的不进行之后步骤。
具体地,头部节点收到请求后,验证请求中包含的时间戳是否过期,签名信息是否正确,数据主键以及哈希值是否和该数据主键所存密文的哈希值匹配以及是否能在区块链中查询到记录以及节点证书是否在过期证书索引中。
进一步地,数据主键以及哈希值需要和该数据主键所存密文的哈希值匹配,并且能在区块链中查询到记录,以及节点证书未在过期证书索引中。
3.3数据更新。
验证完毕后,更新合约被触发,更新合约会先从后端数据库中获取区块高度及哈希值,并计算加密后的数据哈希,查看是否与原哈希匹配。若不匹配则结束之后的步骤。验证成功后,合约调用头部节点的加密服务,按照组织配置规定的算法对数据进行加密更新,并将加密后的明文数据及加密服务中包含的组织ID信息记录到区块中。并向头部节点返回哈希值。
更新过程具体包括:经头部节点验证,签名信息可被该节点公钥验证,且节点证书并未过期,数据请求未超时,用户请求的数据主键在区块链中查询到存储记录且哈希值匹配。此时,加密合约调用头部节点的加密服务,用户利用客户端,将数据明文通过ssh通道发送给头部节点。头部节点按照001组织规定的RSA算法,利用头部节点的加密公钥对新数据进行加密,并将加密后的数据及加密服务中包含的组织ID信息记录到区块中,并向头部节点返回新数据哈希值。
3.4出块及上链。
头部节点将区块同步到共识节点后,由共识节点进行验证,通过共识的区块将被记录在区块链上。上链后,数据的哈希、区块高度将保存在后端数据库。
具体地,头部节点将区块同步到共识节点后,由共识节点进行验证,通过共识的区块将被记录在区块链上。并对后端数据库存在的数据主键进行更新。
作为一个具体地实施方式,所述数据查询模块包括依次连接的数据查询接收请求模块、数据查询头部节点验证模块、数据查询数据加密模块和数据查询出块及上链模块。
所述数据查询接收请求模块分别与所述数据创建模块和所述数据更新模块连接;所述数据查询接收请求模块用于接收所述链上用户的数据查询请求,并将所述数据查询请求发送至头部节点;所述数据查询请求包括链上用户的签名信息、数据主键证书信息以及请求时间戳。
所述数据查询头部节点验证模块用于通过所述头部节点对所述数据查询请求以及所述头部节点证书进行验证,并将所述验证结果发送至所述数据查询数据加密模块。
所述数据查询用户数据加密模块用于当验证结果符合预设要求时,调用解密服务按照所述链上的组织ID对应的组织配置的算法对所述目标数据进行解密,得到解密后的数据,并将查询记录存储至第三区块,以及将所述第三区块发送至所述数据查询出块及上链模块;所述目标数据为根据所述链上用户的数据主键证书信息的数据主键在所述区块链中查到的数据记录。
所述数据查询出块及上链模块用于将所述第三区块发送至共识节点,由所述共识节点对所述第三区块进行验证,并将通过验证的第三区块存储至所述区块链。
作为一个具体地实施方式,对所述数据查询请求以及所述头部节点证书进行验证的过程包括:
判断所述请求时间戳是否过期。
当所述请求时间戳没有过期时,判断所述链上用户的签名是否通过所述头部节点的公钥验证。
当所述请求时间戳没有过期且所述签名通过所述头部节点的公钥验证时,判断所述头部节点证书是否在过期证书索引中。
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证且所述头部节点证书没有在过期证书索引中时,判断是否能够根据所述目标数据的数据主键证书信息在所述区块链中查询到对应的数据记录。
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证、所述头部节点证书没有在过期证书索引中且能够根据所述目标数据的数据主键证书信息在所述区块链中查询到对应的数据记录时,所述验证结果为通过。
否则,所述验证结果为不通过。
作为一个具体地实施方式,所述系统还包括数据库存储模块。
所述数据库存储模块分别与所述数据创建模块、所述数据更新模块和所述数据查询模块连接。
所述数据库存储模块用于将存储至所述区块链上的数据保存至后端数据库。
在实际应用中,4.数据查询,具体过程包括:
4.1客户端发送请求。
数据创建由链上用户发起,链上用户调用SDK方法触发更新合约执行。并将执行情况传递给头部节点,请求中包括链上用户的签名信息及请求时间戳、与数据主键。
具体地,组织ID为001的用户欲将一条数据进行查询,于是向组织头部节点发送了一条数据查询请求,内部包含了该用户的签名信息、数据上链时的主键以及时间戳信息。
4.2头部节点验证。
头部节点收到请求后,验证请求中包含的时间戳是否过期,及证书信息是否在过期索引中、数据主键是否存在。证书过期或者时间戳超出规定阈值以及数据主键不存在的不进行之后步骤。
具体地,头部节点收到请求后,验证请求中包含的时间戳是否过期、签名信息是否正确、节点证书是否在过期证书索引以及数据主键在区块链和后端数据库中是否能查询到数据。
4.3数据解密。
验证完毕后,解密合约被触发,解密合约利用加密服务对主键数据进行解密,并返回给客户端,并将查询记录打包成区块发送给共识节点。
具体地,经头部节点验证,签名信息可被该节点公钥验证,且节点证书并未过期,数据请求未超时,用户请求的数据主键在区块链及数据库中可查到所传主键对应的数据记录。此时,解密合约触发头部节点对数据解密,头部节点按照001组织规定的RSA算法,利用头部节点的解密公钥对数据进行解密,并将明文数据通过ssh通道传给用户客户端,并记录合约及查询数据的时间戳以及查询用户签名在区块中。
4.4出块及上链。
头部节点将区块同步到共识节点后,由共识节点进行验证,通过共识的区块将被记录在区块链上。上链后,数据的哈希、区块高度将保存在后端数据库。
本发明方法,与现有技术相比,具有如下有益效果:
1.本发明具有更好的数据隐蔽性、安全性和可用性:本发明基于联盟链智能合约实现,具有准入认证机制,并且各个组织的用户只能解密和查询本组织进行上链的数据,提升了数据隐私性。
2.本发明可支持多种非对称加密算法以及SHA256散列算法的加密,包括非国密AES、RSA、ECC、DH;国密SM系列。各组织可利用组织配置实现数据的自定加密。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种面向联盟链的数据处理系统,其特征在于,所述系统包括数据创建模块、数据更新模块和数据查询模块;
所述数据创建模块,用于接收链上用户的数据创建请求,并对所述数据创建请求以及头部节点证书进行验证,当验证结果符合预设要求时,接收所述链上用户发送的数据明文,并调用加密服务按照所述链上用户的组织ID对应的组织配置的算法对所述数据明文进行加密,将加密后的数据明文以及所述链上用户的组织ID存储到第一区块中,并接收返回的所述加密后的数据明文的哈希值,以及将所述第一区块同步到共识节点,由所述共识节点对所述第一区块进行验证,并将通过验证的第一区块存储至区块链;所述数据创建请求包括链上用户的签名、数据主键证书信息及请求时间戳;
所述数据更新模块,用于接收所述链上用户的数据更新请求和所述链上用户发送的已上链数据,并对所述数据更新请求以及所述头部节点证书进行验证,当验证结果符合预设要求时,调用加密服务按照所述链上用户的组织ID对应的组织配置的算法对所述已上链数据进行加密并更新,将加密后的已上链数据以及所述链上用户的组织ID存储到第二区块中,并接收返回的所述加密后的已上链数据的哈希值,以及将所述第二区块同步到共识节点,由所述共识节点对所述第二区块进行验证,并将通过验证的第二区块存储至所述区块链;所述数据更新请求包括链上用户的签名信息、数据主键证书信息、数据主键存储的原密文数据的哈希值以及请求时间戳;
所述数据查询模块分别与所述数据创建模块和所述数据更新模块连接;所述数据查询模块用于接收所述链上用户的数据查询请求,并对所述数据查询请求以及所述头部节点证书进行验证,当验证结果符合预设要求时,调用解密服务按照所述链上用户的组织ID对应的组织配置的算法对目标数据进行解密,得到解密后的数据,并将查询记录存储至第三区块,将所述第三区块发送至共识节点,由所述共识节点对所述第三区块进行验证,并将通过验证的第三区块存储至所述区块链;所述数据查询请求包括链上用户的签名信息、数据主键证书信息以及请求时间戳;所述目标数据为根据所述链上用户的数据主键证书信息的数据主键在所述区块链中查到的数据记录。
2.根据权利要求1所述的面向联盟链的数据处理系统,其特征在于,所述数据创建模块包括依次连接的数据创建接收请求模块、数据创建头部节点验证模块、数据创建数据加密模块和数据创建出块及上链模块;
所述数据创建接收请求模块用于接收链上用户的数据创建请求和所述链上用户发送的数据明文,并将所述数据创建请求和所述数据明文发送至头部节点;所述数据创建请求包括链上用户的签名、数据主键证书信息及请求时间戳;
所述数据创建头部节点验证模块用于通过所述头部节点对所述数据创建请求以及所述头部节点证书进行验证,并将所述验证结果发送至所述数据创建数据加密模块;
所述数据创建数据加密模块用于当验证结果符合预设要求时,调用加密服务按照所述链上用户的组织ID对应的组织配置的算法对所述数据明文进行加密,将加密后的数据明文以及所述链上用户的组织ID存储到第一区块中,并接收返回的所述加密后的数据明文的哈希值,以及将所述第一区块发送至所述数据创建出块及上链模块;
所述数据创建出块及上链模块用于将所述第一区块同步至共识节点,由所述共识节点对所述第一区块进行验证,并将通过验证的第一区块存储至区块链。
3.根据权利要求1所述的面向联盟链的数据处理系统,其特征在于,对所述数据创建请求以及所述头部节点证书进行验证的过程包括:
判断所述请求时间戳是否过期;
当所述请求时间戳没有过期时,判断所述链上用户的签名是否通过所述头部节点的公钥验证;
当所述请求时间戳没有过期且所述签名通过所述头部节点的公钥验证时,判断所述头部节点证书是否在过期证书索引中;
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证且所述头部节点证书没有在过期证书索引中时,判断所述数据主键证书信息是否在所述区块链中;
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证、所述头部节点证书没有在过期证书索引中且所述数据主键证书信息不在所述区块链中时,所述验证结果为通过;
否则,所述验证结果为不通过。
4.根据权利要求1所述的面向联盟链的数据处理系统,其特征在于,所述头部节点通过ssh通道接收所述链上用户发送的数据明文。
5.根据权利要求1所述的面向联盟链的数据处理系统,其特征在于,所述调用加密服务按照所述链上用户的组织ID对应的组织配置的RSA算法,利用所述头部节点的加密公钥对所述数据明文进行加密。
6.根据权利要求1所述的面向联盟链的数据处理系统,其特征在于,所述系统还包括数据库存储模块;
所述数据库存储模块分别与所述数据创建模块、所述数据更新模块和所述数据查询模块连接;
所述数据库存储模块用于将存储至所述区块链上的数据保存至后端数据库。
7.根据权利要求1所述的面向联盟链的数据处理系统,其特征在于,所述数据更新模块包括依次连接的数据更新接收请求模块、数据更新头部节点验证模块、数据更新数据加密模块和数据更新出块及上链模块;
所述数据更新接收请求模块用于接收所述链上用户的数据更新请求和所述链上用户发送的已上链数据,并将所述数据更新请求和所述已上链数据发送至头部节点;所述数据更新请求包括链上用户的签名信息、数据主键证书信息、数据主键存储的原密文数据的哈希值以及请求时间戳;
所述数据更新头部节点验证模块用于通过所述头部节点对所述数据更新请求以及所述头部节点证书进行验证,并将所述验证结果发送至所述数据更新数据加密模块;
所述数据更新数据加密模块用于当验证结果符合预设要求时,调用加密服务按照所述链上用户的组织ID对应的组织配置的算法对所述已上链数据进行加密并更新,将加密后的已上链数据以及所述链上用户的组织ID存储到第二区块中,并接收返回的所述加密后的已上链数据的哈希值,以及将所述第二区块发送至所述数据更新出块及上链模块;
所述数据更新出块及上链模块用于将所述第二区块同步至所述共识节点,由所述共识节点对所述第二区块进行验证,并将通过验证的第二区块存储至所述区块链。
8.根据权利要求1所述的面向联盟链的数据处理系统,其特征在于,所述数据查询模块包括依次连接的数据查询接收请求模块、数据查询头部节点验证模块、数据查询数据加密模块和数据查询出块及上链模块;
所述数据查询接收请求模块分别与所述数据创建模块和所述数据更新模块连接;所述数据查询接收请求模块用于接收所述链上用户的数据查询请求,并将所述数据查询请求发送至头部节点;所述数据查询请求包括链上用户的签名信息、数据主键证书信息以及请求时间戳;
所述数据查询头部节点验证模块用于通过所述头部节点对所述数据查询请求以及所述头部节点证书进行验证,并将所述验证结果发送至所述数据查询数据加密模块;
所述数据查询用户数据加密模块用于当验证结果符合预设要求时,调用解密服务按照所述链上的组织ID对应的组织配置的算法对所述目标数据进行解密,得到解密后的数据,并将查询记录存储至第三区块,以及将所述第三区块发送至所述数据查询出块及上链模块;所述目标数据为根据所述链上用户的数据主键证书信息的数据主键在所述区块链中查到的数据记录;
所述数据查询出块及上链模块用于将所述第三区块发送至共识节点,由所述共识节点对所述第三区块进行验证,并将通过验证的第三区块存储至所述区块链。
9.根据权利要求1所述的面向联盟链的数据处理系统,其特征在于,对所述数据更新请求以及所述头部节点证书进行验证的过程包括:
判断所述请求时间戳是否过期;
当所述请求时间戳没有过期时,判断所述链上用户的签名是否通过所述头部节点的公钥验证;
当所述请求时间戳没有过期且所述签名通过所述头部节点的公钥验证时,判断所述头部节点证书是否在过期证书索引中;
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证且所述头部节点证书没有在过期证书索引中时,判断所述数据主键证书信息是否在所述区块链中;
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证、所述头部节点证书没有在过期证书索引中且所述数据主键证书信息在所述区块链中时,判断所述数据主键存储的所述已上链数据的哈希值与所述加密后的已上链数据的哈希值是否匹配;
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证、所述头部节点证书没有在过期证书索引中、所述数据主键证书信息在所述区块链中且所述数据主键存储的所述已上链数据的哈希值与所述加密后的已上链数据的哈希值匹配时,所述验证结果为通过;
否则,所述验证结果为不通过。
10.根据权利要求1所述的面向联盟链的数据处理系统,其特征在于,对所述数据查询请求以及所述头部节点证书进行验证的过程包括:
判断所述请求时间戳是否过期;
当所述请求时间戳没有过期时,判断所述链上用户的签名是否通过所述头部节点的公钥验证;
当所述请求时间戳没有过期且所述签名通过所述头部节点的公钥验证时,判断所述头部节点证书是否在过期证书索引中;
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证且所述头部节点证书没有在过期证书索引中时,判断是否能够根据所述目标数据的数据主键证书信息在所述区块链中查询到对应的数据记录;
当所述请求时间戳没有过期、所述签名通过所述头部节点的公钥验证、所述头部节点证书没有在过期证书索引中且能够根据所述目标数据的数据主键证书信息在所述区块链中查询到对应的数据记录时,所述验证结果为通过;
否则,所述验证结果为不通过。
CN202410103777.4A 2024-01-25 2024-01-25 一种面向联盟链的数据处理系统 Pending CN117932640A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410103777.4A CN117932640A (zh) 2024-01-25 2024-01-25 一种面向联盟链的数据处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410103777.4A CN117932640A (zh) 2024-01-25 2024-01-25 一种面向联盟链的数据处理系统

Publications (1)

Publication Number Publication Date
CN117932640A true CN117932640A (zh) 2024-04-26

Family

ID=90751901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410103777.4A Pending CN117932640A (zh) 2024-01-25 2024-01-25 一种面向联盟链的数据处理系统

Country Status (1)

Country Link
CN (1) CN117932640A (zh)

Similar Documents

Publication Publication Date Title
CN110933108B (zh) 基于区块链网络的数据处理方法、装置、电子设备及存储介质
JP4993733B2 (ja) 暗号クライアント装置、暗号パッケージ配信システム、暗号コンテナ配信システム及び暗号管理サーバ装置
WO2019237796A1 (zh) 资源获取、分发、下载方法、装置、设备及存储介质
CN112422532B (zh) 业务通信方法、系统、装置及电子设备
US6490679B1 (en) Seamless integration of application programs with security key infrastructure
CN111047450A (zh) 链上数据的链下隐私计算方法及装置
US8019989B2 (en) Public-key infrastructure in network management
US6895501B1 (en) Method and apparatus for distributing, interpreting, and storing heterogeneous certificates in a homogenous public key infrastructure
US11303431B2 (en) Method and system for performing SSL handshake
US20100023766A1 (en) Computer Program Product and Computer System for Peer-to-Peer Communications
US8196182B2 (en) Distributed management of crypto module white lists
CN101964791A (zh) 客户端与web应用的通讯认证系统及认证方法
US11038699B2 (en) Method and apparatus for performing multi-party secure computing based-on issuing certificate
CN112883015A (zh) 区块链数据管理方法、设备及存储介质
CN111080299B (zh) 一种交易信息的防抵赖方法及客户端、服务器
CN110362984B (zh) 多设备运行业务系统的方法及装置
EP4096147A1 (en) Secure enclave implementation of proxied cryptographic keys
CN114048438A (zh) 设备鉴权方法及其装置、设备、介质、产品
CN107959569B (zh) 一种基于对称密钥池的密钥补充方法和密钥补充装置、密钥补充系统
CN112202713A (zh) 一种Kubernetes环境下用户数据安全保护方法
CN105933295A (zh) 一种积分发放的方法、系统和装置
CN110581829A (zh) 通信方法及装置
CN114697061B (zh) 接入控制方法、装置、网络侧设备、终端及区块链节点
US8914640B2 (en) System for exchanging data between at least one sender and one receiver
CN117932640A (zh) 一种面向联盟链的数据处理系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination