CN115296794A - 基于区块链的密钥管理方法及装置 - Google Patents

基于区块链的密钥管理方法及装置 Download PDF

Info

Publication number
CN115296794A
CN115296794A CN202210754093.1A CN202210754093A CN115296794A CN 115296794 A CN115296794 A CN 115296794A CN 202210754093 A CN202210754093 A CN 202210754093A CN 115296794 A CN115296794 A CN 115296794A
Authority
CN
China
Prior art keywords
private key
user
storage node
intelligent contract
fragments
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
CN202210754093.1A
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.)
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Ant Blockchain Technology Shanghai Co Ltd
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 Ant Blockchain Technology Shanghai Co Ltd filed Critical Ant Blockchain Technology Shanghai Co Ltd
Priority to CN202210754093.1A priority Critical patent/CN115296794A/zh
Publication of CN115296794A publication Critical patent/CN115296794A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB

Abstract

本说明书一个或多个实施例提供一种基于区块链的密钥管理方法及装置,应用于客户端;所述区块链上部署了用于对用户的私钥进行分片管理的第一智能合约;所述用户的私钥被分割为若干私钥分片,分布式地存储在至少一个存储节点;所述方法包括:响应于所述用户发起的针对目标数字文件的签章处理操作,对所述用户进行身份认证;如果对所述用户的身份认证通过,调用所述第一智能合约包含的私钥拼接逻辑,从所述至少一个存储节点处获取所述若干私钥分片,并对所述若干私钥分片进行拼接处理;以及,响应于所述用户的私钥拼接处理完成,基于所述用户的私钥授权使用所述用户的数字印章对所述目标数字文件进行签章处理。

Description

基于区块链的密钥管理方法及装置
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的密钥管理方法及装置。
背景技术
对于机构、企业、事业单位,甚至是个人等而言,通常都需要使用其印章对与其相关的某些文件进行签章处理,例如在文件上签名并加盖印章图样,以通过文件上的签章表示其认可文件的正确性、真实性。常用的印章类型包括企业公章、发票专用章、合同章、法人章、财务印章等。在实际应用中,可以使用特定类型的印章对相应类型的文件进行签章处理;例如,可以使用企业公章对企业公告进行签章处理,使用合同章对商业合同进行签章处理,等等。
然而,物理印章在使用上存在多种不便之处;例如,需要对物理印章进行人工管理,使用物理印章时首先需要人工获取到印章,仅能使用物理印章对纸质文件进行签章处理,等等。为了提高印章的使用效率,同时由于无纸化办公的应用越来越广泛,数字印章应运而生,使得可以使用数字印章对数字文件进行签章处理。在这种情况下,如何保证数字印章的使用安全性,避免数字印章被盗用、滥用,也就成为了亟待解决的问题。
发明内容
本说明书一个或多个实施例提供技术方案如下:
本说明书提供一种基于区块链的密钥管理方法,应用于客户端;所述区块链上部署了用于对用户的私钥进行分片管理的第一智能合约;所述用户的私钥被分割为若干私钥分片,分布式地存储在至少一个存储节点;所述方法包括:
响应于所述用户发起的针对目标数字文件的签章处理操作,对所述用户进行身份认证;
如果对所述用户的身份认证通过,调用所述第一智能合约包含的私钥拼接逻辑,从所述至少一个存储节点处获取所述若干私钥分片,并对所述若干私钥分片进行拼接处理;以及,
响应于所述用户的私钥拼接处理完成,基于所述用户的私钥授权使用所述用户的数字印章对所述目标数字文件进行签章处理。
本说明书还提供一种基于区块链的密钥管理方法,应用于区块链服务平台;所述区块链上部署了用于对用户的私钥进行分片管理的第一智能合约;所述用户的私钥被分割为若干私钥分片,分布式地存储在至少一个存储节点;所述方法包括:
接收客户端在响应于所述用户发起的针对目标数字文件的签章处理操作,对所述用户的身份认证通过时发送的签章请求;
响应于所述签章请求,调用所述第一智能合约包含的私钥拼接逻辑,从所述至少一个存储节点处获取所述若干私钥分片,并对所述若干私钥分片进行拼接处理;以及,
响应于所述用户的私钥拼接处理完成,基于所述用户的私钥授权使用所述用户的数字印章对所述目标数字文件进行签章处理。
本说明书还提供一种基于区块链的密钥管理装置,应用于客户端;所述区块链上部署了用于对用户的私钥进行分片管理的第一智能合约;所述用户的私钥被分割为若干私钥分片,分布式地存储在至少一个存储节点;所述装置包括:
认证模块,响应于所述用户发起的针对目标数字文件的签章处理操作,对所述用户进行身份认证;
调用模块,如果对所述用户的身份认证通过,调用所述第一智能合约包含的私钥拼接逻辑,从所述至少一个存储节点处获取所述若干私钥分片,并对所述若干私钥分片进行拼接处理;以及,响应于所述用户的私钥拼接处理完成,基于所述用户的私钥授权使用所述用户的数字印章对所述目标数字文件进行签章处理。
本说明书还提供一种基于区块链的密钥管理装置,应用于区块链服务平台;所述区块链上部署了用于对用户的私钥进行分片管理的第一智能合约;所述用户的私钥被分割为若干私钥分片,分布式地存储在至少一个存储节点;所述装置包括:
接收模块,接收客户端在响应于所述用户发起的针对目标数字文件的签章处理操作,对所述用户的身份认证通过时发送的签章请求;
调用模块,响应于所述签章请求,调用所述第一智能合约包含的私钥拼接逻辑,从所述至少一个存储节点处获取所述若干私钥分片,并对所述若干私钥分片进行拼接处理;以及,响应于所述用户的私钥拼接处理完成,基于所述用户的私钥授权使用所述用户的数字印章对所述目标数字文件进行签章处理。
本说明书还提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述任一项所述方法的步骤。
本说明书还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述任一项所述方法的步骤。
在上述技术方案中,首先可以将用户的私钥分割为若干私钥分片,分布式地存储在至少一个存储节点,后续在响应于该用户发起的针对目标数字文件的签章处理操作,对该用户的身份认证通过时,可以调用部署在该区块链上的用于对该用户的私钥进行分片管理的第一智能合约包含的私钥拼接逻辑,从这至少一个存储节点处获取这若干私钥分片,并对这若干私钥分片进行拼接处理,在通过对这若干私钥分片进行拼接处理,恢复出该用户的私钥时,可以基于该用户的私钥授权使用该用户的数字印章对该目标数字文件进行签章处理。
通过上述方式,第一方面,可以基于用户的私钥授权使用该用户的数字印章对上述目标数字文件进行签章处理,保证数字印章的使用安全性,避免数字印章被盗用、滥用;第二方面,由于可以将用户的私钥分割为若干私钥分片,分布式地存储在至少一个存储节点,并通过对从这至少一个存储节点处获取到的这若干私钥分片进行拼接处理,恢复出该用户的私钥,在这种情况下,即使部分私钥分片发生数据泄露,也无法利用这部分私钥分片恢复出该用户的私钥,从而可以进一步提升数字印章的使用安全性;第三方面,用户可以将其私钥托管存储至存储系统,从而可以避免用户自行保管其私钥,在保证私钥的数据安全性的同时为用户提供便利。
附图说明
图1是本说明书一示例性实施例示出的一种与区块链相关的网络环境的示意图。
图2是本说明书一示例性实施例示出的一种基于区块链的密钥管理方法的流程图。
图3是本说明书一示例性实施例示出的一种用户界面的示意图。
图4是本说明书一示例性实施例示出的另一种基于区块链的密钥管理方法的流程图。
图5是本说明书一示例性实施例示出的一种基于区块链的密钥管理装置所在电子设备的硬件结构图。
图6是本说明书一示例性实施例示出的一种基于区块链的密钥管理装置的框图。
图7是本说明书一示例性实施例示出的另一种基于区块链的密钥管理装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链一般被划分为三种类型:公有链(Public Blockchain)、私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链与联盟链的结合、联盟链与公有链的结合等。
在上述三种类型的区块链中,去中心化程度最高的是公有链。加入公有链的参与方(也可以称为区块链中的节点)可以读取链上的数据记录、参与交易、竞争新区块的记账权等。而且,各节点可自由加入或退出网络,并进行相关操作。
私有链则相反,网络的写入权限由某个组织或机构控制,数据读取权限受组织规定。也即,私有链可以视为一个弱中心化系统,其对节点具有严格限制且节点数量较少。这种类型的区块链更适合于特定机构内部使用。
联盟链则介于公有链以及私有链之间,可以实现“部分去中心化”。联盟链中的各节点通常有与之对应的实体机构或组织;节点通过授权加入网络并组成利益相关联盟,共同维护区块链的运行。
在区块链网络中,区块链节点是逻辑上的通信实体;不同类型的多个区块链节点可以运行在同一个物理服务器上,也可以运行在不同的物理服务器上。
请参考图1,图1是本说明书一示例性实施例示出的一种与区块链相关的网络环境的示意图。
在如图1所示的网络环境中,可以包括用户侧计算设备101、服务器端102,以及至少一个区块链系统;例如,区块链系统103、区块链系统104和区块链系统105。
在示出的一种实施方式中,用户侧计算设备101,可以包括各种不同类型的用户侧计算设备;例如,用户侧计算设备可以包括诸如PC计算设备、移动计算设备、物联网设备,以及其它形式的具有一定的计算能力的智能设备,等等。
需要说明的是,用户侧计算设备101并不表示其中的所有用户侧计算设备在同一个通信网络中,而仅仅是对这些用户侧计算设备的统称。
在示出的一种实施方式中,用户侧计算设备101中的部分计算设备,可以通过各种通信网络耦接到服务器端102;例如,设备3耦接到了服务器端102。
用户侧计算设备101中的部分计算设备,也可以不与服务器端102进行耦接,而是作为区块链节点直接耦接到区块链系统;例如,设备4可以作为区块链节点直接耦接到区块链系统103。
在示出的一种实施方式中,用户侧计算设备101,还可以包括一个或多个用户侧服务器;例如,设备5和设备6。用户侧计算设备101中的部分计算设备,可以耦接到该用户侧服务器;例如,设备1耦接到了设备5,设备2耦接到了设备6。而该用户侧服务器可以进一步作为区块链节点直接耦接到区块链系统,也可以进一步通过各种通信网络耦接到服务器端102;例如,设备5可以进一步作为区块链节点直接耦接到区块链系统,设备6进一步耦接到了服务器端102。
在示出的一种实施方式中,上述用户侧服务器可以由搭建了用户账户体系的服务实体来实现;上述服务实体可以包括面向用户提供各种线上和/或线下服务的服务载体的运营实体。相应地,上述运营实体可以包括上述服务载体对应的运营方;例如,上述运营实体可以包括对上述服务载体进行运营和管理的个人、机构、组织等。
在示出的一种实施方式中,服务器端102也可以通过各种通信网络耦接到一个或多个区块链系统;例如,服务器端102分别耦接到了区块链系统103,区块链系统104和区块链系统105,等等。
在示出的一种实施方式中,上述通信网络可以包括有线和/或无线通信网络;例如,可以是基于运营商提供的有线接入网络或无线接入网络(比如移动蜂窝网络)实现的局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、因特网或其组合。
在示出的一种实施方式中,每个区块链系统都可以维护一个或多个区块链(例如:公有区块链、私有区块链、联盟区块链等),并包括用于承载上述一个或多个区块链的多个区块链节点;例如,如图1中示出的区块链节点1、区块链节点2、区块链节点3、区块链节点4、区块链节点i等可以共同承载一个或多个区块链。各区块链系统包含的区块链之间,以及各区块链系统之间,还可以进行跨链的数据访问。
在示出的一种实施方式中,区块链节点可以是物理设备,也可以是在服务器或服务器集群中实现的虚拟设备;例如,区块链节点可以是服务器集群中的一台物理主机,也可以是基于虚拟化技术对服务器或服务器集群搭载的硬件资源进行虚拟化后,创建的虚拟机。每个区块链节点之间,可以通过各种类型的通信方法(例如:TCP/IP等)耦接在一起形成网络,来承载一个或多个区块链。
在示出的一种实施方式中,服务器端102可以包括用于提供区块链服务(BaaS,Blockchain as a Service)的BaaS平台(也称为BaaS云)。
BaaS平台可以通过为区块链上发生的活动(诸如订阅和通知、用户验证、数据库管理和远程更新),提供预先编写的软件的方式,面向与BaaS平台耦接的用户侧计算设备,提供区块链服务。
例如,与BaaS平台可以提供诸如MQ(Message Queue,消息队列)服务之类的软件;与BaaS平台耦接的用户侧计算设备,可以订阅BaaS平台耦接到的区块链系统中某一区块链上部署的智能合约,在触发执行后在区块链上产生的合约事件;而BaaS平台可以监听该智能合约在触发执行后在区块链上产生的事件,再基于MQ服务相关的软件,将该合约事件以通知消息的形式添加到消息队列中,使得订阅该消息队列的用户侧计算设备,能够得到与上述合约事件相关的通知。
对于区块链外产生的数据而言,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链网络中的所有节点对该交易进行共识。在达成共识后,可以由区块链网络中作为记账节点的节点,将这笔交易在区块链中进行持久化存证。
在可编程的区块链中,可以通过面向用户提供智能合约(smart contract)的功能,来支持用户在区块链网络中创建并调用一些复杂的逻辑。智能合约是在区块链上可以被交易触发执行的程序。智能合约可以通过代码的形式定义。
在创建智能合约后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址。智能合约的行为由合约账户中的合约代码(code)控制,而合约账户中的账户存储(storage)则保存了智能合约的状态。
用于调用智能合约的交易可以包含发起调用智能合约的账户的地址、被调用的智能合约的地址,以及调用智能合约的方法和参数。在调用智能合约后,智能合约的状态可能改变;可以通过与区块链节点进行通信,来查看智能合约的状态。
智能合约可以以规定的方式被区块链网络中的各节点独立执行,所有执行记录和相关数据都可以被保存在区块链上,因此当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。
区块链上部署的智能合约,通常只能访问区块链上存储的数据内容;而在实际应用中,对于一些基于智能合约技术实现的复杂的业务场景,智能合约可能还需要访问链外的数据实体上存储的外部数据。
在这种场景下,区块链上部署的智能合约,可以通过预言机程序访问链外的数据实体上的数据,进而实现智能合约与真实世界的数据实体之间的数据交互。其中,链外的数据实体,可以包括诸如部署在链外的中心化的服务器或数据中心等。
在实际应用中,在为区块链上的智能合约部署预言机程序时,可以先在区块链上部署一个与预言机程序对应的预言机智能合约;其中,该预言机智能合约用于维护预言机程序发给区块链上的智能合约的外部数据;例如,预言机程序发给区块链上的智能合约的外部数据,可以存储在预言机智能合约的账户存储空间(storage字段)中。
当区块链上的目标智能合约被调用时,可以从该预言机智能合约的账户存储空间中,来读取该目标智能合约所需的外部数据,来完成智能合约的调用过程。
需要说明的是,预言机程序在向区块链上的智能合约发送外部数据时,可以采用主动发送的方式,也可以采用被动发送的方式。
在一种实现方式中,链外的数据实体可以将需要提供给目标智能合约的外部数据,利用预言机程序的私钥进行签名后,发送给上述预言机智能合约;例如,可以采用周期性发送的方式,将签名后的上述外部数据发送给上述预言机智能合约;
而在上述预言机智能合约可以维护预言机程序的CA证书,在收到链外的数据实体发送的外部数据后,可以使用该CA证书中维护的该预言机程序的公钥,对该外部数据的签名进行验证,并在验证通过后,将链外的数据实体发送的外部数据在该预言机智能合约的账户存储空间中进行存储。
在另一种实现方式中,当区块链上的目标智能合约被调用时,如果从该预言机智能合约的账户存储空间中,并未读取到该目标智能合约所需的外部数据,此时该预言机智能合约,可以利用智能合约的事件机制,与上述预言机程序进行交互,并由上述预言机程序将该目标智能合约所需的外部数据,发送至该预言机智能合约的账户存储空间中。
例如,当区块链上的目标智能合约被调用时,如果从该预言机智能合约的账户存储空间中,并未读取到该目标智能合约所需的外部数据,此时该预言机智能合约,可以生成一个外部数据获取事件,并将该外部数据获取事件记录到调用该智能合约的那笔交易的交易日志中,并将该交易日志存储到节点设备的存储空间;而上述预言机程序可以监听节点设备的存储空间中存储的该预言机智能合约产生的交易日志,并在监听到交易日志中的外部数据获取事件后,响应监听到的该外部数据获取事件,将上述目标智能合约所需的外部数据,发送给上述预言机智能合约。
智能合约的事件机制,是智能合约与链外实体进行交互的一种方式。对于区块链上部署的智能合约来说,通常无法直接与链外实体进行交互;例如,智能合约在调用完成后,通常无法将智能合约的调用结果,点对点地发送给智能合约的调用发起方。
智能合约在调用的过程中产生的调用结果(包括中间结果和最终的调用结果),通常都会以事件(event)的形式,记录到调用该智能合约的那笔交易的交易日志(transaction logs),在区块链节点的存储空间中进行存储。而需要与智能合约进行交互的链外实体,则可以通过监听区块链节点的存储空间中存储的上述交易日志的方式,来获取智能合约的调用结果。
本说明书提供一种基于区块链的密钥管理的技术方案,首先可以将用户的私钥分割为若干私钥分片,分布式地存储在至少一个存储节点,后续在响应于该用户发起的针对目标数字文件的签章处理操作,对该用户的身份认证通过时,可以调用部署在该区块链上的用于对该用户的私钥进行分片管理的第一智能合约包含的私钥拼接逻辑,从这至少一个存储节点处获取这若干私钥分片,并对这若干私钥分片进行拼接处理,在通过对这若干私钥分片进行拼接处理,恢复出该用户的私钥时,可以基于该用户的私钥授权使用该用户的数字印章对该目标数字文件进行签章处理。
在具体实现时,一方面,可以在区块链上部署用于对用户的私钥进行分片管理的第一智能合约;另一方面,可以将该用户的私钥分割为若干私钥分片,分布式地存储在至少一个存储节点。
对于需要进行签章处理的目标数字文件而言,负责对该目标数字文件进行签章处理的用户可以通过上述客户端,发起针对该目标数字文件的签章处理操作。
上述客户端在检测到上述签章处理操作的情况下,可以对该签章处理操作进行响应,对该用户进行身份认证。
上述客户端在上述用户的身份认证通过的情况下,可以调用上述第一智能合约包含的私钥拼接逻辑,从上述至少一个存储节点处获取上述若干私钥分片,并对获取到的这若干私钥分片进行拼接处理。由于这若干私钥分片是通过对上述用户的私钥进行分割处理得到,在这种情况下,通过对这若干私钥分片进行拼接处理,即可恢复出该用户的私钥。
在通过调用上述第一智能合约包含的私钥拼接逻辑,完成对上述若干私钥分片的拼接处理,即恢复出了该用户的私钥的情况下,可以基于该用户的私钥授权使用该用户的数字印章对上述目标数字文件进行签章处理。
通过上述方式,第一方面,可以基于用户的私钥授权使用该用户的数字印章对上述目标数字文件进行签章处理,保证数字印章的使用安全性,避免数字印章被盗用、滥用;第二方面,由于可以将用户的私钥分割为若干私钥分片,分布式地存储在至少一个存储节点,并通过对从这至少一个存储节点处获取到的这若干私钥分片进行拼接处理,恢复出该用户的私钥,在这种情况下,即使部分私钥分片发生数据泄露,也无法利用这部分私钥分片恢复出该用户的私钥,从而可以进一步提升数字印章的使用安全性;第三方面,用户可以将其私钥托管存储至存储系统,从而可以避免用户自行保管其私钥,在保证私钥的数据安全性的同时为用户提供便利。
请参考图2,图2是本说明书一示例性实施例示出的一种基于区块链的密钥管理方法的流程图。
在本实施例中,上述基于区块链的密钥管理方法可以应用于客户端。用户可以通过该客户端发起针对需要进行签章处理的数字文件的签章处理操作,而该客户端则可以与该区块链进行数据交互,由此完成使用该用户的数字印章对该数字文件的签章处理。
结合如图1所示的网络环境,上述客户端可以运行在用户侧计算设备101中的设备4上。上述区块链可以是提供智能合约功能的任一类型的区块链。
上述区块链上可以部署有用于对用户的私钥进行分片管理的智能合约(下称为第一智能合约)。相应地,用户的私钥可以被分割为若干私钥分片,分布式地存储在至少一个存储节点。
在实际应用中,由于区块链技术是分布式账本技术,一个区块链网络通常包括多个区块链节点,在这种情况下,上述存储节点可以是上述区块链中的区块链节点。或者,上述存储节点可以是与上述区块链进行通信的分布式存储系统中的存储节点。
此外,每个存储节点可以存储至少一个私钥分片。例如,假设用户的私钥被分割为3个私钥分片,分别为私钥分片1、私钥分片2、私钥分片3,则可以由一个存储节点存储私钥分片1和私钥分片2,并由另一个存储节点存储私钥分片3,或者将私钥分片1、私钥分片2、私钥分片3分别存储至三个不同的存储节点。
在示出的一种实施方式中,上述用户的私钥可以被分割为若干私钥分片,分布式地托管存储在云存储系统中的至少一个云存储节点。
云存储是一种网上在线存储的模式,可以将数据托管存储在通常由第三方提供的多台虚拟服务器,而非专属的服务器上。其中,这多台虚拟服务器构成云存储系统,各虚拟服务器即为该云存储系统中的云存储节点。通常,可以以访问web服务的形式来访问云存储系统,即通过云存储系统所提供的的API(Application Programming Interface,应用程序接口)访问该云存储系统。
上述基于区块链的密钥管理方法可以包括以下步骤:
步骤202:响应于所述用户发起的针对目标数字文件的签章处理操作,对所述用户进行身份认证。
在本实施例中,对于任一需要进行签章处理的数字文件(下称为目标数字文件)而言,负责对该目标数字文件进行签章处理的用户可以通过上述客户端,发起针对该目标数字文件的签章处理操作。
具体地,上述客户端可以向上述用户输出如图3所示的用于对数字文件进行签章处理的用户界面。该用户可以在该用户界面中,先上传上述目标数字文件,并从该用户可以使用的所有数字印章中选择所需的数字印章(下称为目标数字印章),后续可以在该目标数字文件的上传和该目标数字印章的选择完成后,点击“确认”按钮,以触发基于该目标数字印章对该目标数字文件进行签章处理。在这种情况下,该客户端可以将该用户对该“确认”按钮的点击操作,确定为该用户发起的针对该目标数字文件的签章处理操作。
在实际应用中,负责对上述目标数字文件进行签章处理的用户,可以是用于对该目标数字文件进行签章处理的数字印章的合法持有方,或者是由该合法持有方授权了该数字印章的使用权限的其他用户。其中,用户可以指代个人,也可以指代机构、组织等,本说明书对此不作限制。
上述客户端在检测到上述签章处理操作的情况下,可以对该签章处理操作进行响应,对该用户进行身份认证,以确定该用户是否具有签章处理权限。其中,用户具有签章处理权限可以表示该用户为用于对上述目标数字文件进行签章处理的数字印章的合法持有方,或者该用户被授权了该数字印章的使用权限。
具体地,上述客户端可以获取上述用户的身份信息,并基于获取到的该身份信息,对该用户进行身份认证。对于任一用户而言,其身份信息可以包括以下示出的一个或者多个的组合:该用户的身份标识(例如:人脸信息、指纹信息等生物特征信息,用于登录该客户端的账号,等等);该用户的区块链账户;等等可以用于唯一指代该用户的信息。
为了避免由客户端维护过多数据,造成客户端的存储资源的浪费,可以由数据库维护数字印章和可以使用该数字印章的用户的身份信息的关联关系。其中,该数据库可以部署在不同于上述客户端所在设备的其他设备上。
例如,上述关联关系可以如下表1所示:
Figure BDA0003719180370000091
表1
有且仅有具有身份信息1的用户可以使用数字印章1;具有身份信息1的用户、具有身份信息2的用户、具有身份信息3的用户都可以使用数字印章2。
在这种情况下,上述客户端可以访问上述数据库,获取该数据库存储的上述关联关系。该客户端在基于获取到的上述身份信息,对上述用户进行身份认证时,具体可以在该数据库存储的该关联关系中查找该身份信息,如果能查找到,则可以认为对该用户的身份认证通过,否则认为对该用户的身份认证不通过;例如,假设该用户通过上述用户界面选择了上述目标数字印章,则可以确定该数据库中是否存储了该目标数字印章与该身份信息的关联关系,如果是,则可以认为对该用户的身份认证通过,否则认为对该用户的身份认证不通过。
步骤204:如果对所述用户的身份认证通过,调用所述第一智能合约包含的私钥拼接逻辑,从所述至少一个存储节点处获取所述若干私钥分片,并对所述若干私钥分片进行拼接处理。
在本实施例中,上述客户端在上述用户的身份认证通过的情况下,可以调用上述第一智能合约。
在实际应用中,上述客户端可以将用于调用上述第一智能合约的调用数据,构建成上述区块链所支持的标准的交易格式,作为合约调用交易,并将该合约调用交易发布至该区块链,由该区块链中的所有区块链节点对该合约调用交易进行共识。在达成共识后,可以由该区块链中作为记账节点的区块链节点,将该合约调用交易打包进区块。对于打包进区块的该合约调用交易而言,该区块链中的各区块链节点可以对该合约调用交易进行响应,调用上述第一智能合约。
具体地,可以由上述区块链节点调用上述第一智能合约包含的私钥拼接逻辑,即执行该第一智能合约的代码中与私钥拼接逻辑对应的部分代码,从上述至少一个存储节点处获取上述若干私钥分片,并对获取到的这若干私钥分片进行拼接处理。由于这若干私钥分片是通过对上述用户的私钥进行分割处理得到,在这种情况下,通过对这若干私钥分片进行拼接处理,即可恢复出该用户的私钥。
步骤206:以及,响应于所述用户的私钥拼接处理完成,基于所述用户的私钥授权使用所述用户的数字印章对所述目标数字文件进行签章处理。
在本实施例中,在通过调用上述第一智能合约包含的私钥拼接逻辑,完成对上述若干私钥分片的拼接处理,即恢复出了该用户的私钥的情况下,可以基于该用户的私钥授权使用该用户的数字印章对上述目标数字文件进行签章处理。其中,该用户的数字印章可以是从该用户可以使用的所有数字印章中选择出的所需的数字印章。
如前述内容所述,可以由上述用户通过用于对数字文件进行签章处理的用户界面,从该用户可以使用的所有数字印章中选择所需的数字印章,以使用该数字印章对上述目标数字文件进行签章处理。
或者,可以根据上述目标数字文件的文件类型,从该用户可以使用的所有数字印章中确定出与该文件类型匹配的数字印章;此时,该数字印章即为可以用于对属于该文件类型的数字文件进行签章处理的数字印章。后续,可以使用该数字印章对该目标数字文件进行签章处理。
在实际应用中,可以预先将上述目标数字文件存储在上述区块链中,使得后续在需要对该目标数据文件进行签章处理时,可以直接从该区块链中获取到该目标数字文件。同理,也可以预先将上述用户的数字印章存储在上述区块链中,使得后续在需要使用该用户的数字印章时,可以直接从该区块链中获取到该用户的数字印章。
需要说明的是,基于上述用户的私钥授权使用该用户的数字印章对上述目标数字文件进行签章处理,可以通过调用上述第一智能合约包含的其他逻辑实现,即通过继续执行上述第一智能合约的代码中的其他代码实现。
下面对从分割和存储上述用户的私钥、拼接上述若干私钥分片、授权对上述目标数字文件进行签章处理的方面,对如图2所示的实施例进行详细说明。
(1)分割和存储上述用户的私钥
在示出的一种实施方式中,用户可以将其私钥托管存储至存储系统,使得后续在对数字文件进行签章处理时可以直接从该存储系统中获取到该用户的私钥,而无需再由该用户提供其私钥;此外,还可以避免用户自行保管其私钥,在保证私钥的数据安全性的同时为用户提供便利。
在这种情况下,上述用户可以通过上述客户端发起针对该用户的私钥的托管操作。该客户端可以对该托管操作进行响应,获取该用户的私钥,并调用上述第一智能合约包含的私钥分割逻辑,对该用户的私钥进行分割处理,得到若干私钥分片。
在通过调用上述第一智能合约包含的私钥分割逻辑,完成对上述用户的私钥的分割处理的情况下,可以进一步调用该第一智能合约包含的存储逻辑,从分布式存储系统中分配至少一个存储节点,并将分割处理得到的上述若干私钥分片分别存储至这至少一个存储节点。
如前述内容所述,在将上述若干私钥分片分别存储至上述至少一个存储节点时,具体可以将不同的私钥分片存储至不同的存储节点,即由一个存储节点存储一个私钥分片;或者,可以将部分私钥分片存储至同一存储节点,并将其他私钥分片分别存储至其他存储节点,例如由一个存储节点存储一个或两个私钥分片。
在示出的一种实施方式中,具体可以从上述分布式存储系统中随机分配至少一个存储节点;例如,假设该分布式存储系统一共包括5个存储节点,并假设需要3个存储节点来存储上述若干私钥分片,则可以从该分布式存储系统的这5个存储节点中随机选择出3个存储节点,并将这若干私钥分片分别存储至随机选择出的这3个存储节点。
在示出的一种实施方式中,如果上述分布式存储系统对于上述区块链而言,是链外的存储系统,则上述第一智能合约可以通过预言机程序与该分布式存储系统进行数据交互。
在这种情况下,虽然可以通过智能合约的事件机制,使得上述至少一个存储节点可以从上述第一智能合约中分别获取到上述若干私钥分片,但为了便于对这至少一个存储节点进行管理,可以由上述第一智能合约将这若干私钥分片通过上述预言机程序,分别发送至这至少一个存储节点,以由这至少一个存储节点存储这若干私钥分片。
在示出的一种实施方式中,为了进一步提高数据安全性,上述区块链中的节点设备上可以搭载TEE(Trusted Execution Environment,可信执行环境),并将上述第一智能合约部署在该TEE中。
具体地,可以通过对称加密的方式,先基于上述TEE中维护的密钥对上述第一智能合约的代码进行加密处理,并将加密后的该第一智能合约部署在上述区块链中,后续可以将该区块链中存储的加密后的该第一智能合约加载到该TEE中,由该TEE基于该密钥对加密后的该第一智能合约进行解密处理,并执行解密处理得到的该第一智能合约的代码,以实现对该第一智能合约的调用。
在这种情况下,在将上述若干私钥分片分别存储至上述至少一个存储节点时,具体可以在上述TEE中,基于该TEE中维护的密钥对这若干私钥分片进行加密处理,并将加密后的这若干私钥分片分别存储至这至少一个存储节点。相应地,在从这至少一个存储节点处获取这若干私钥分片,并对这若干私钥分片进行拼接处理时,具体可以从这至少一个存储节点处获取加密后的这若干私钥分片,在该TEE中,基于该密钥对加密后的这若干私钥分片进行解密处理,得到这若干私钥分片,并对这若干私钥分片进行拼接处理。
(2)拼接上述若干私钥分片
在示出的一种实施方式中,如果上述分布式存储系统对于上述区块链而言,是链外的存储系统,则上述第一智能合约可以通过预言机程序与该分布式存储系统进行数据交互。
在这种情况下,上述第一智能合约可以通过上述预言机程序,读取上述至少一个存储节点存储的上述若干私钥分片,并对读取到的这若干私钥分片进行拼接处理,以恢复出上述用户的私钥。
(3)授权对上述目标数字文件进行签章处理
在示出的一种实施方式中,在基于上述用户的私钥授权使用该用户的数字印章对上述目标数字文件进行签章处理时,具体可以进一步调用上述第一智能合约包含的授权逻辑,即执行该第一智能合约的代码中与授权逻辑对应的部分代码,生成使用该用户的数字印章对该目标数字文件进行签章处理的授权信息,并基于恢复出的该用户的私钥对该授权信息进行签名处理,后续可以由签章服务端响应于获取到的签名后的该授权信息,基于该用户的公钥对该授权信息的签名进行验证,并在验证通过后基于该用户的数字印章对该目标数字文件进行签章处理。其中,该用户的私钥和该用户的公钥即为该用户持有的一对非对称密钥。
由此,使得上述用户仅需通过上述客户端发起上述签章处理操作,即可实现对上述目标数字文件的签章处理,而无需用户执行其他操作,简化了用户针对数字文件的签章处理流程。
在示出的一种实施方式中,上述签章服务端可以是中心化的签章服务器,也可以是上述区块链上部署的用于对数字文件进行签章处理的智能合约(下称为第二智能合约)。
如果上述签章服务端为上述签章服务器,结合如图1所示的网络环境,该签章服务器可以是用户侧计算设备101中的设备5。在通过调用上述第一智能合约包含的授权逻辑,完成基于上述用户的私钥对上述授权信息的签名处理的情况下,由于签名后的该授权信息即为该第一智能合约的调用结果,在这种情况下,可以生成包含签名后的该授权信息的事件,并将该事件记录到上述合约调用交易的交易日志,在上述区块链中进行存储。
上述签章服务器可以通过监听上述区块链中存储的该交易日志的方式,获取到上述事件,从而获取到该事件中包含的签名后的上述授权信息。或者,该签章服务器可以向部署在该区块链中的区块链节点上的、作为事件通知中心的SDK(Software DevelopmentKit,软件开发工具包)订阅该事件,以由该SDK在检测到生成了该事件时,将该事件发送给该签章服务器,使得该签章服务器可以获取到该事件,从而获取到该事件中包含的签名后的该授权信息。
后续,上述签章服务器可以响应于获取到的签名后的上述授权信息,基于上述用户的公钥对该授权信息的签名进行验证,并在验证通过后基于该用户的数字印章对该目标数字文件进行签章处理。其中,该用户的公钥可以由该签章服务器维护。
如果上述签章服务端为上述第二智能合约,在通过调用上述第一智能合约包含的授权逻辑,完成基于上述用户的私钥对上述授权信息的签名处理的情况下,可以由该第一智能合约将签名后的该授权信息作为跨合约调用的调用参数提交给该第二智能合约,以跨合约调用该第二智能合约。
在实际应用中,上述第一智能合约可以基于不同的智能合约之间的消息调用的机制,创建包含签名后的上述授权信息的消息,并将该消息发送给上述第二智能合约,使得该第二智能合约可以在接收到该消息时,对该消息进行响应,获取该消息中的签名后的该授权信息,并基于签名后的该授权信息执行该第二智能合约的代码中的相应代码。
具体地,可以跨合约调用上述第二智能合约包含的签章逻辑,即执行该第二智能合约的代码中与签章逻辑对应的部分代码,基于上述用户的公钥对该授权信息的签名进行验证,并在验证通过后基于该用户的数字印章对该目标数字文件进行签章处理。其中,该用户的公钥可以由该第二智能合约维护。
在上述技术方案中,首先可以将用户的私钥分割为若干私钥分片,分布式地存储在至少一个存储节点,后续在响应于该用户发起的针对目标数字文件的签章处理操作,对该用户的身份认证通过时,可以调用部署在该区块链上的用于对该用户的私钥进行分片管理的第一智能合约包含的私钥拼接逻辑,从这至少一个存储节点处获取这若干私钥分片,并对这若干私钥分片进行拼接处理,在通过对这若干私钥分片进行拼接处理,恢复出该用户的私钥时,可以基于该用户的私钥授权使用该用户的数字印章对该目标数字文件进行签章处理。
通过上述方式,第一方面,可以基于用户的私钥授权使用该用户的数字印章对上述目标数字文件进行签章处理,保证数字印章的使用安全性,避免数字印章被盗用、滥用;第二方面,由于可以将用户的私钥分割为若干私钥分片,分布式地存储在至少一个存储节点,并通过对从这至少一个存储节点处获取到的这若干私钥分片进行拼接处理,恢复出该用户的私钥,在这种情况下,即使部分私钥分片发生数据泄露,也无法利用这部分私钥分片恢复出该用户的私钥,从而可以进一步提升数字印章的使用安全性;第三方面,用户可以将其私钥托管存储至存储系统,从而可以避免用户自行保管其私钥,在保证私钥的数据安全性的同时为用户提供便利。
请参考图4,图4是本说明书一示例性实施例示出的另一种基于区块链的密钥管理方法。
在本实施例中,上述基于区块链的密钥管理方法可以应用于区块链服务平台。用户可以通过客户端发起针对需要进行签章处理的数字文件的签章处理操作;该客户端可以与该区块链服务平台进行数据交互,该区块链服务平台可以进一步与该区块链进行数据交互,由此完成使用该用户的数字印章对该数字文件的签章处理。
结合如图1所示的网络环境,上述客户端可以运行在用户侧计算设备101中的设备3上;上述区块链服务平台可以运行在服务器端102上。上述区块链可以是提供智能合约功能的任一类型的区块链。
上述区块链上可以部署有用于对用户的私钥进行分片管理的智能合约(下称为第一智能合约)。相应地,用户的私钥可以被分割为若干私钥分片,分布式地存储在至少一个存储节点。
在示出的一种实施方式中,上述用户的私钥可以被分割为若干私钥分片,分布式地托管存储在云存储系统中的至少一个云存储节点。
上述基于区块链的密钥管理方法可以包括以下步骤:
步骤402:接收客户端在响应于所述用户发起的针对目标数字文件的签章处理操作,对所述用户的身份认证通过时发送的签章请求。
在本实施例中,对于任一需要进行签章处理的数字文件(下称为目标数字文件)而言,负责对该目标数字文件进行签章处理的用户可以通过上述客户端,发起针对该目标数字文件的签章处理操作。
上述客户端在检测到上述签章处理操作的情况下,可以对该签章处理操作进行响应,对该用户进行身份认证。
上述客户端在上述用户的身份认证通过的情况下,可以构建签章请求,并将该签章请求发送给上述区块链服务平台,使得该区块链服务平台可以接收到该签章请求。
步骤404:响应于所述签章请求,调用所述第一智能合约包含的私钥拼接逻辑,从所述至少一个存储节点处获取所述若干私钥分片,并对所述若干私钥分片进行拼接处理。
在本实施例中,上述区块链服务平台在接收到上述签章请求的情况下,可以对该签章请求进行响应,将用于调用上述第一智能合约的调用数据,构建成上述区块链所支持的标准的交易格式,作为合约调用交易,并将该合约调用交易发布至该区块链,由该区块链中的所有区块链节点对该合约调用交易进行共识。在达成共识后,可以由该区块链中作为记账节点的区块链节点,将该合约调用交易打包进区块。对于打包进区块的该合约调用交易而言,该区块链中的各区块链节点可以对该合约调用交易进行响应,调用上述第一智能合约。
具体地,可以由上述区块链节点调用上述第一智能合约包含的私钥拼接逻辑,即执行该第一智能合约的代码中与私钥拼接逻辑对应的部分代码,从上述至少一个存储节点处获取上述若干私钥分片,并对获取到的这若干私钥分片进行拼接处理。由于这若干私钥分片是通过对上述用户的私钥进行分割处理得到,在这种情况下,通过对这若干私钥分片进行拼接处理,即可恢复出该用户的私钥。
步骤406:以及,响应于所述用户的私钥拼接处理完成,基于所述用户的私钥授权使用所述用户的数字印章对所述目标数字文件进行签章处理。
步骤406的具体实现可以参考前述步骤206,本说明书在此不再赘述。
在示出的一种实施方式中,所述基于所述用户的私钥授权使用所述用户的数字印章对所述目标数字文件进行签章处理,可以包括:
进一步调用所述第一智能合约包含的授权逻辑,生成使用所述用户的数字印章对所述目标数字文件进行签章处理的授权信息,并基于所述用户的私钥对所述授权信息进行签名处理,以使签章服务端响应于获取到的签名后的所述授权信息,基于所述用户的公钥对所述授权信息的签名进行验证,并在验证通过后基于所述用户的数字印章对所述目标数字文件进行签章处理。
在示出的一种实施方式中,所述签章服务端为中心化的签章服务器。
在示出的一种实施方式中,所述签章服务端为所述区块链上部署的用于对数字文件进行签章处理的第二智能合约;
所述基于所述用户的私钥对所述授权信息进行签名处理,以使签章服务端响应于获取到的签名后的所述授权信息,基于所述用户的公钥对所述授权信息的签名进行验证,并在验证通过后基于所述用户的数字印章对所述目标数字文件进行签章处理,可以包括:
基于所述用户的私钥对所述授权信息进行签名处理,将签名后的所述授权信息作为跨合约调用的调用参数提交给所述第二智能合约,以跨合约调用所述第二智能合约包含的签章逻辑,基于所述用户的公钥对所述授权信息的签名进行验证,并在验证通过后基于所述用户的数字印章对所述目标数字文件进行签章处理。
在示出的一种实施方式中,上述区块链服务平台还可以:
接收所述客户端响应于所述用户发起的针对所述用户的私钥的托管操作,获取并发送的所述用户的私钥;
响应于接收到的所述用户的私钥,调用所述第一智能合约包含的私钥分割逻辑,对所述用户的私钥进行分割处理,得到若干私钥分片;以及,
响应于所述用户的私钥分割处理完成,进一步调用所述第一智能合约包含的存储逻辑,从分布式存储系统中分配至少一个存储节点,并将所述若干私钥分片分别存储至所述至少一个存储节点。
在示出的一种实施方式中,所述第一智能合约通过预言机程序与所述分布式存储系统进行数据交互;
所述将所述若干私钥分片分别存储至所述至少一个存储节点,可以包括:
将所述若干私钥分片通过所述预言机程序,分别发送至所述至少一个存储节点进行存储;
所述从所述至少一个存储节点处获取所述若干私钥分片,可以包括:
通过所述预言机程序,读取所述至少一个存储节点存储的所述若干私钥分片。
在示出的一种实施方式中,所述从分布式存储系统中分配至少一个存储节点,可以包括:
从分布式存储系统中随机分配至少一个存储节点。
在示出的一种实施方式中,所述第一智能合约部署在所述区块链中的节点设备上搭载的TEE中;
所述将所述若干私钥分片分别存储至所述至少一个存储节点,可以包括:
基于所述TEE中维护的密钥,对所述若干私钥分片进行加密处理,并将加密后的所述若干私钥分片分别存储至所述至少一个存储节点;
所述从所述至少一个存储节点处获取所述若干私钥分片,并对所述若干私钥分片进行拼接处理,可以包括:
从所述至少一个存储节点处获取加密后的所述若干私钥分片,基于所述TEE中维护的所述密钥,对加密后的所述若干私钥分片进行解密处理,并对解密出的所述若干私钥分片进行拼接处理。
如图4所述的实施例中各步骤的具体实现可以参考如图2所示的实施例,本说明书在此不再赘述。
在上述技术方案中,首先可以将用户的私钥分割为若干私钥分片,分布式地存储在至少一个存储节点,后续在响应于该用户发起的针对目标数字文件的签章处理操作,对该用户的身份认证通过时,可以调用部署在该区块链上的用于对该用户的私钥进行分片管理的第一智能合约包含的私钥拼接逻辑,从这至少一个存储节点处获取这若干私钥分片,并对这若干私钥分片进行拼接处理,在通过对这若干私钥分片进行拼接处理,恢复出该用户的私钥时,可以基于该用户的私钥授权使用该用户的数字印章对该目标数字文件进行签章处理。
通过上述方式,第一方面,可以基于用户的私钥授权使用该用户的数字印章对上述目标数字文件进行签章处理,保证数字印章的使用安全性,避免数字印章被盗用、滥用;第二方面,由于可以将用户的私钥分割为若干私钥分片,分布式地存储在至少一个存储节点,并通过对从这至少一个存储节点处获取到的这若干私钥分片进行拼接处理,恢复出该用户的私钥,在这种情况下,即使部分私钥分片发生数据泄露,也无法利用这部分私钥分片恢复出该用户的私钥,从而可以进一步提升数字印章的使用安全性;第三方面,用户可以将其私钥托管存储至存储系统,从而可以避免用户自行保管其私钥,在保证私钥的数据安全性的同时为用户提供便利。
与前述基于区块链的密钥管理方法的实施例相对应,本说明书还提供了基于区块链的密钥管理装置的实施例。
本说明书基于区块链的密钥管理装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本说明书基于区块链的密钥管理装置所在电子设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该基于区块链的密钥管理的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图6,图6是本说明书一示例性实施例示出的一种基于区块链的密钥管理装置的框图。
上述基于区块链的密钥管理装置可以应用于运行在如图5所示的电子设备上的客户端;所述区块链上部署了用于对用户的私钥进行分片管理的第一智能合约;所述用户的私钥被分割为若干私钥分片,分布式地存储在至少一个存储节点。
上述基于区块链的密钥管理装置可以包括:
认证模块601,响应于所述用户发起的针对目标数字文件的签章处理操作,对所述用户进行身份认证;
调用模块602,如果对所述用户的身份认证通过,调用所述第一智能合约包含的私钥拼接逻辑,从所述至少一个存储节点处获取所述若干私钥分片,并对所述若干私钥分片进行拼接处理;以及,响应于所述用户的私钥拼接处理完成,基于所述用户的私钥授权使用所述用户的数字印章对所述目标数字文件进行签章处理。
请参考图7,图7是本说明书一示例性实施例示出的另一种基于区块链的密钥管理装置的框图。
上述基于区块链的密钥管理装置可以应用于运行在如图5所示的电子设备上的区块链服务平台;所述区块链上部署了用于对用户的私钥进行分片管理的第一智能合约;所述用户的私钥被分割为若干私钥分片,分布式地存储在至少一个存储节点。
上述基于区块链的密钥管理装置可以包括:
接收模块701,接收客户端在响应于所述用户发起的针对目标数字文件的签章处理操作,对所述用户的身份认证通过时发送的签章请求;
调用模块702,响应于所述签章请求,调用所述第一智能合约包含的私钥拼接逻辑,从所述至少一个存储节点处获取所述若干私钥分片,并对所述若干私钥分片进行拼接处理;以及,响应于所述用户的私钥拼接处理完成,基于所述用户的私钥授权使用所述用户的数字印章对所述目标数字文件进行签章处理。
对于装置实施例而言,其基本对应于方法实施例,因此相关之处参见方法实施例的部分说明即可。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书的技术方案的目的。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (22)

1.一种基于区块链的密钥管理方法,应用于客户端;所述区块链上部署了用于对用户的私钥进行分片管理的第一智能合约;所述用户的私钥被分割为若干私钥分片,分布式地存储在至少一个存储节点;所述方法包括:
响应于所述用户发起的针对目标数字文件的签章处理操作,对所述用户进行身份认证;
如果对所述用户的身份认证通过,调用所述第一智能合约包含的私钥拼接逻辑,从所述至少一个存储节点处获取所述若干私钥分片,并对所述若干私钥分片进行拼接处理;以及,
响应于所述用户的私钥拼接处理完成,基于所述用户的私钥授权使用所述用户的数字印章对所述目标数字文件进行签章处理。
2.根据权利要求1所述的方法,所述用户的私钥被分割为若干私钥分片,分布式地托管存储在云存储系统中的至少一个云存储节点。
3.根据权利要求1所述的方法,所述基于所述用户的私钥授权使用所述用户的数字印章对所述目标数字文件进行签章处理,包括:
进一步调用所述第一智能合约包含的授权逻辑,生成使用所述用户的数字印章对所述目标数字文件进行签章处理的授权信息,并基于所述用户的私钥对所述授权信息进行签名处理,以使签章服务端响应于获取到的签名后的所述授权信息,基于所述用户的公钥对所述授权信息的签名进行验证,并在验证通过后基于所述用户的数字印章对所述目标数字文件进行签章处理。
4.根据权利要求3所述的方法,所述签章服务端为中心化的签章服务器。
5.根据权利要求3所述的方法,所述签章服务端为所述区块链上部署的用于对数字文件进行签章处理的第二智能合约;
所述基于所述用户的私钥对所述授权信息进行签名处理,以使签章服务端响应于获取到的签名后的所述授权信息,基于所述用户的公钥对所述授权信息的签名进行验证,并在验证通过后基于所述用户的数字印章对所述目标数字文件进行签章处理,包括:
基于所述用户的私钥对所述授权信息进行签名处理,将签名后的所述授权信息作为跨合约调用的调用参数提交给所述第二智能合约,以跨合约调用所述第二智能合约包含的签章逻辑,基于所述用户的公钥对所述授权信息的签名进行验证,并在验证通过后基于所述用户的数字印章对所述目标数字文件进行签章处理。
6.根据权利要求1所述的方法,所述方法还包括:
响应于所述用户发起的针对所述用户的私钥的托管操作,获取所述用户的私钥,并调用所述第一智能合约包含的私钥分割逻辑,对所述用户的私钥进行分割处理,得到若干私钥分片;以及,
响应于所述用户的私钥分割处理完成,进一步调用所述第一智能合约包含的存储逻辑,从分布式存储系统中分配至少一个存储节点,并将所述若干私钥分片分别存储至所述至少一个存储节点。
7.根据权利要求6所述的方法,所述第一智能合约通过预言机程序与所述分布式存储系统进行数据交互;
所述将所述若干私钥分片分别存储至所述至少一个存储节点,包括:
将所述若干私钥分片通过所述预言机程序,分别发送至所述至少一个存储节点进行存储;
所述从所述至少一个存储节点处获取所述若干私钥分片,包括:
通过所述预言机程序,读取所述至少一个存储节点存储的所述若干私钥分片。
8.根据权利要求6所述的方法,所述从分布式存储系统中分配至少一个存储节点,包括:
从分布式存储系统中随机分配至少一个存储节点。
9.根据权利要求6所述的方法,所述第一智能合约部署在所述区块链中的节点设备上搭载的TEE中;
所述将所述若干私钥分片分别存储至所述至少一个存储节点,包括:
基于所述TEE中维护的密钥,对所述若干私钥分片进行加密处理,并将加密后的所述若干私钥分片分别存储至所述至少一个存储节点;
所述从所述至少一个存储节点处获取所述若干私钥分片,并对所述若干私钥分片进行拼接处理,包括:
从所述至少一个存储节点处获取加密后的所述若干私钥分片,基于所述TEE中维护的所述密钥,对加密后的所述若干私钥分片进行解密处理,并对解密出的所述若干私钥分片进行拼接处理。
10.一种基于区块链的密钥管理方法,应用于区块链服务平台;所述区块链上部署了用于对用户的私钥进行分片管理的第一智能合约;所述用户的私钥被分割为若干私钥分片,分布式地存储在至少一个存储节点;所述方法包括:
接收客户端在响应于所述用户发起的针对目标数字文件的签章处理操作,对所述用户的身份认证通过时发送的签章请求;
响应于所述签章请求,调用所述第一智能合约包含的私钥拼接逻辑,从所述至少一个存储节点处获取所述若干私钥分片,并对所述若干私钥分片进行拼接处理;以及,
响应于所述用户的私钥拼接处理完成,基于所述用户的私钥授权使用所述用户的数字印章对所述目标数字文件进行签章处理。
11.根据权利要求10所述的方法,所述用户的私钥被分割为若干私钥分片,分布式地托管存储在云存储系统中的至少一个云存储节点。
12.根据权利要求10所述的方法,所述基于所述用户的私钥授权使用所述用户的数字印章对所述目标数字文件进行签章处理,包括:
进一步调用所述第一智能合约包含的授权逻辑,生成使用所述用户的数字印章对所述目标数字文件进行签章处理的授权信息,并基于所述用户的私钥对所述授权信息进行签名处理,以使签章服务端响应于获取到的签名后的所述授权信息,基于所述用户的公钥对所述授权信息的签名进行验证,并在验证通过后基于所述用户的数字印章对所述目标数字文件进行签章处理。
13.根据权利要求12所述的方法,所述签章服务端为中心化的签章服务器。
14.根据权利要求12所述的方法,所述签章服务端为所述区块链上部署的用于对数字文件进行签章处理的第二智能合约;
所述基于所述用户的私钥对所述授权信息进行签名处理,以使签章服务端响应于获取到的签名后的所述授权信息,基于所述用户的公钥对所述授权信息的签名进行验证,并在验证通过后基于所述用户的数字印章对所述目标数字文件进行签章处理,包括:
基于所述用户的私钥对所述授权信息进行签名处理,将签名后的所述授权信息作为跨合约调用的调用参数提交给所述第二智能合约,以跨合约调用所述第二智能合约包含的签章逻辑,基于所述用户的公钥对所述授权信息的签名进行验证,并在验证通过后基于所述用户的数字印章对所述目标数字文件进行签章处理。
15.根据权利要求10所述的方法,所述方法还包括:
接收所述客户端响应于所述用户发起的针对所述用户的私钥的托管操作,获取并发送的所述用户的私钥;
响应于接收到的所述用户的私钥,调用所述第一智能合约包含的私钥分割逻辑,对所述用户的私钥进行分割处理,得到若干私钥分片;以及,
响应于所述用户的私钥分割处理完成,进一步调用所述第一智能合约包含的存储逻辑,从分布式存储系统中分配至少一个存储节点,并将所述若干私钥分片分别存储至所述至少一个存储节点。
16.根据权利要求15所述的方法,所述第一智能合约通过预言机程序与所述分布式存储系统进行数据交互;
所述将所述若干私钥分片分别存储至所述至少一个存储节点,包括:
将所述若干私钥分片通过所述预言机程序,分别发送至所述至少一个存储节点进行存储;
所述从所述至少一个存储节点处获取所述若干私钥分片,包括:
通过所述预言机程序,读取所述至少一个存储节点存储的所述若干私钥分片。
17.根据权利要求15所述的方法,所述从分布式存储系统中分配至少一个存储节点,包括:
从分布式存储系统中随机分配至少一个存储节点。
18.根据权利要求15所述的方法,所述第一智能合约部署在所述区块链中的节点设备上搭载的TEE中;
所述将所述若干私钥分片分别存储至所述至少一个存储节点,包括:
基于所述TEE中维护的密钥,对所述若干私钥分片进行加密处理,并将加密后的所述若干私钥分片分别存储至所述至少一个存储节点;
所述从所述至少一个存储节点处获取所述若干私钥分片,并对所述若干私钥分片进行拼接处理,包括:
从所述至少一个存储节点处获取加密后的所述若干私钥分片,基于所述TEE中维护的所述密钥,对加密后的所述若干私钥分片进行解密处理,并对解密出的所述若干私钥分片进行拼接处理。
19.一种基于区块链的密钥管理装置,应用于客户端;所述区块链上部署了用于对用户的私钥进行分片管理的第一智能合约;所述用户的私钥被分割为若干私钥分片,分布式地存储在至少一个存储节点;所述装置包括:
认证模块,响应于所述用户发起的针对目标数字文件的签章处理操作,对所述用户进行身份认证;
调用模块,如果对所述用户的身份认证通过,调用所述第一智能合约包含的私钥拼接逻辑,从所述至少一个存储节点处获取所述若干私钥分片,并对所述若干私钥分片进行拼接处理;以及,响应于所述用户的私钥拼接处理完成,基于所述用户的私钥授权使用所述用户的数字印章对所述目标数字文件进行签章处理。
20.一种基于区块链的密钥管理装置,应用于区块链服务平台;所述区块链上部署了用于对用户的私钥进行分片管理的第一智能合约;所述用户的私钥被分割为若干私钥分片,分布式地存储在至少一个存储节点;所述装置包括:
接收模块,接收客户端在响应于所述用户发起的针对目标数字文件的签章处理操作,对所述用户的身份认证通过时发送的签章请求;
调用模块,响应于所述签章请求,调用所述第一智能合约包含的私钥拼接逻辑,从所述至少一个存储节点处获取所述若干私钥分片,并对所述若干私钥分片进行拼接处理;以及,响应于所述用户的私钥拼接处理完成,基于所述用户的私钥授权使用所述用户的数字印章对所述目标数字文件进行签章处理。
21.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-9或10-18中任一项所述的方法。
22.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-9或10-18中任一项所述的方法。
CN202210754093.1A 2022-06-28 2022-06-28 基于区块链的密钥管理方法及装置 Pending CN115296794A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210754093.1A CN115296794A (zh) 2022-06-28 2022-06-28 基于区块链的密钥管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210754093.1A CN115296794A (zh) 2022-06-28 2022-06-28 基于区块链的密钥管理方法及装置

Publications (1)

Publication Number Publication Date
CN115296794A true CN115296794A (zh) 2022-11-04

Family

ID=83820047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210754093.1A Pending CN115296794A (zh) 2022-06-28 2022-06-28 基于区块链的密钥管理方法及装置

Country Status (1)

Country Link
CN (1) CN115296794A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116743377A (zh) * 2023-08-09 2023-09-12 腾讯科技(深圳)有限公司 基于区块链密钥的数据处理方法、装置、设备及存储介质
CN116996331A (zh) * 2023-09-27 2023-11-03 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备以及介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116743377A (zh) * 2023-08-09 2023-09-12 腾讯科技(深圳)有限公司 基于区块链密钥的数据处理方法、装置、设备及存储介质
CN116743377B (zh) * 2023-08-09 2023-11-03 腾讯科技(深圳)有限公司 基于区块链密钥的数据处理方法、装置、设备及存储介质
CN116996331A (zh) * 2023-09-27 2023-11-03 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备以及介质
CN116996331B (zh) * 2023-09-27 2023-12-15 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备以及介质

Similar Documents

Publication Publication Date Title
WO2021000337A1 (en) System and method for mapping decentralized identifiers to real-world entities
US20190287026A1 (en) Learning service blockchain
Alblooshi et al. Blockchain-based ownership management for medical IoT (MIoT) devices
CN112003858B (zh) 基于区块链的平台对接的方法、电子装置和存储介质
US11765225B2 (en) Systems and methods for microservice execution load balancing in virtual distributed ledger networks
CN111770201A (zh) 一种数据验证方法、装置及设备
US10936552B2 (en) Performing bilateral negotiations on a blockchain
CN109347625B (zh) 密码运算、创建工作密钥的方法、密码服务平台及设备
EP3942734B1 (en) Systems and methods for virtual distributed ledger networks
CN115296794A (zh) 基于区块链的密钥管理方法及装置
CN111770198A (zh) 一种信息共享方法、装置及设备
US11838406B2 (en) Systems and methods for control-data plane partitioning in virtual distributed ledger networks
US20200342456A1 (en) Systems and methods for hybrid synchronization in virtual distributed ledger networks
US20200082391A1 (en) Performing bilateral negotiations on a blockchain
CN114500119A (zh) 区块链服务的调用方法和装置
CN109388923B (zh) 一种程序执行方法及装置
CN115118434A (zh) 基于区块链的密钥管理方法及装置
CN111628863B (zh) 一种数据签名的方法、装置、电子设备及存储介质
CN109818965B (zh) 个人身份验证装置及方法
CN112783847A (zh) 数据共享方法及装置
CN115131029A (zh) 基于区块链的数字文件签署方法及装置
US11514445B2 (en) Information sharing methods, apparatuses, and devices
CN111698198B (zh) 秘密生成和份额分发
CN114331437A (zh) 一种基于区块链的数字印章使用方法及装置
CN115174183A (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