CN111431713A - 一种私钥存储方法、装置和相关设备 - Google Patents
一种私钥存储方法、装置和相关设备 Download PDFInfo
- Publication number
- CN111431713A CN111431713A CN202010230033.0A CN202010230033A CN111431713A CN 111431713 A CN111431713 A CN 111431713A CN 202010230033 A CN202010230033 A CN 202010230033A CN 111431713 A CN111431713 A CN 111431713A
- Authority
- CN
- China
- Prior art keywords
- key
- encryption
- private key
- client
- private
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Storage Device Security (AREA)
Abstract
一种私钥存储方法、装置和相关设备。所述一种私钥存储方法包括:接收客户端发送的密钥协商申请,根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥,所述密钥位置为加密机内部的密钥位置;接收所述客户端发送的目标用户的私钥,根据所述加密密钥对所述私钥进行加密,得到所述私钥对应的加密密文;所述私钥用于对目标账户内的交易数据进行签名、加解密,以使用所述目标账户内的虚拟资产;发送所述私钥对应的加密密文至托管服务器,以使得所述托管服务器存储所述私钥对应的加密密文。采用本发明实施例,可以通过加密机对用户私钥进行加密,有效防止用户私钥的泄露,从而保障用户在区块链网络中的虚拟资产的安全。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种私钥存储方法、装置和相关设备。
背景技术
区块链技术是一种基于P2P(Peer To Peer,点对点)的互联网技术,具有去中心化、集体维护和高度透明等特点。其中,通过公钥可以计算出区块链账户的区块链地址,而私钥可以用于对区块链账户内的交易信息进行授权签名,即确认该交易信息的有效性,并且实现同态加密等功能。可见,区块链账户的使用与私钥紧密相关,私钥与中心化记账系统(支付宝、微信支付等)的密码一样重要,拥有私钥就拥有了区块链账户的所有权,用户的私钥丢失,则用户在区块链中的区块链账户也随之丢失。
现有技术中,通过第三方托管机构代为保管自己的私钥以增加一个私钥的备份是大多数用户认可的一种方法。然而,该方法使得第三方托管机构直接知晓了用户的私钥,容易导致用户的私钥的泄露,从而无法保证用户私钥在第三方托管机构的安全,用户也将面临虚拟财产被盗的风险。
发明内容
本发明实施例提供了一种私钥存储方法、装置和相关设备,可以使得第三方托管机构无法知晓或获取到用户私钥的明文,从而有效防止用户私钥的泄露,保障用户在区块链网络中的账户安全。
一方面,本发明实施例提供了一种私钥存储方法,该方法包括:
接收客户端发送的密钥协商申请,根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥,所述密钥位置为加密机内部的密钥位置;
接收所述客户端发送的目标用户的私钥,根据所述加密密钥对所述私钥进行加密,得到所述私钥对应的加密密文;所述私钥用于对目标账户内的交易数据进行签名、加解密,以证明所述目标用户的合法身份,并允许所述目标用户使用所述目标账户内的虚拟资产,所述目标账户为所述目标用户通过所述客户端管理基于区块链技术的所述虚拟资产的账户;
发送所述私钥对应的加密密文至托管服务器,以使得所述托管服务器存储所述私钥对应的加密密文。
一方面,本发明实施例提供了一种私钥存储装置,包括:
生成模块,用于接收客户端发送的密钥协商申请,根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥,所述密钥位置为加密机内部的密钥位置;
加密模块,用于接收所述客户端发送的目标用户的私钥,根据所述加密密钥对所述私钥进行加密,得到所述私钥对应的加密密文;所述私钥用于对目标账户内的交易数据进行签名、加解密,以证明所述目标用户的合法身份,并允许所述目标用户使用所述目标账户内的虚拟资产,所述目标账户为所述目标用户通过所述客户端管理基于区块链技术的所述虚拟资产的账户;
第一发送模块,用于发送所述私钥对应的加密密文至托管服务器,以使得所述托管服务器存储所述私钥对应的加密密文。
其中,所述根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥之前,所述装置还包括:
第二发送模块,用于发送所述目标用户的身份验证请求至所述托管服务器;
第一执行模块,用于当所述托管服务器对所述目标用户的身份验证通过后,执行所述根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥的步骤。
其中,所述加密密钥对应有加密密钥句柄,所述加密密钥句柄为通过所述密钥生成函数,根据所述加密密钥生成的;所述加密模块,包括:
加密单元,用于通过所述加密密钥句柄,根据所述加密密钥对所述私钥进行加密,得到所述私钥对应的加密密文。
其中,所述第一发送模块,包括:
发送单元,用于发送所述私钥对应的加密密文至所述客户端,通过所述客户端将所述私钥对应的加密密文发送至所述托管服务器。
其中,所述生成模块,包括:
制定单元,用于根据所述密钥协商申请在加密机内部制定对应的所述密钥位置,并发送所述密钥位置至所述客户端,以使得所述客户端存储所述密钥位置;
生成单元,用于调用密钥生成函数在所述密钥位置上生成对应的所述加密密钥。
其中,所述装置还包括:
接收模块,用于接收所述客户端发送的所述加密密文和所述密钥位置,所述加密密文为所述客户端通过所述托管服务器获取的;
获得模块,用于根据所述密钥位置,调用密钥导入函数,获得在所述密钥位置上对应的所述加密密钥;
解密模块,用于根据所述加密密钥对所述加密密文进行解密,得到所述私钥;
第三发送模块,用于发送所述私钥至所述客户端。
其中,所述根据所述密钥位置,调用密钥导入函数,获得在所述密钥位置上对应的所述加密密钥之前,所述装置还包括:
第四发送模块,用于发送所述目标用户的身份验证请求至所述托管服务器;
第二执行模块,用于当所述托管服务器对所述目标用户的身份验证通过后,执行所述根据所述密钥位置,调用密钥导入函数,获得在所述密钥位置上对应的所述加密密钥的步骤。
一方面,本发明实施例提供了一种计算机设备,包括处理器和存储器,所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行上述的方法。
一方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述的方法。
本发明实施例提供了一种私钥存储方法,可以基于用户的私钥存储需求,通过客户端向加密机发送密钥协商申请,加密机根据该密钥协商申请在内部制定一个密钥位置,并在该密钥位置上生成对应的加密密钥;然后,加密机接收客户端发送的用户区块链账户的私钥,并根据该加密密钥对该私钥进行加密,从而得到该私钥对应的加密密文(也即得到加密后的私钥);最后将该私钥对应的加密密文发送给托管服务器,由托管服务器存储该加密密文,从而实现对私钥的安全存储。由此,对比现有技术中,直接将用户区块链账户的私钥交由托管服务器进行保存,从而容易导致私钥泄露的方案而言。本发明实施例是将经加密机加密后的私钥交由该托管服务器进行保存,显然,在此过程中托管服务器无法知晓私钥的明文,从而也就无法泄露私钥的明文。如此,既通过托管服务器对该加密密文的存储实现了对私钥的存储,为私钥增加了备份,同时又有效防止了私钥的泄露,从而实现了对用户私钥的安全存储,保障了用户区块链账户的安全,大大降低了区块链账户的虚拟资产被盗的风险。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种私钥存储方法的系统架构示意图;
图2是本发明实施例提供的一种区块链网络的结构示意图;
图3是本发明实施例提供的一种区块链节点的功能示意图;
图4是本发明实施例提供的一种虚拟资产的交易示意图;
图5是本发明实施例提供的一种区块链的结构示意图;
图6是本发明实施例提供的一种产生新区块的过程示意图;
图7是本发明实施例提供的一种私钥存储方法的系统架构示意图;
图8是本发明实施例提供的一种私钥存储方法的流程示意图;
图9是本发明实施例提供的一种私钥存储方法的流程示意图;
图10是本发明实施例提供的一种私钥托管的步骤示意图;
图11是本发明实施例提供的一种私钥还原的步骤示意图;
图12是本发明实施例提供的一种私钥存储装置的结构示意图;
图13是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,图1是本发明实施例提供的一种私钥存储方法的系统架构示意图,本发明实施例的技术方案可以在图1举例所示的系统架构或类似的系统架构中具体实施。该系统架构可以包括区块链网络、多个客户端、加密机200和托管服务器300,如图1所示,具体可以包括客户端100a、100b和100c等等。如图1所示,其中,客户端100a、100b和100c可以与区块链网络进行通信,以进行基于区块链的虚拟资产的交易,可选的,该虚拟资产可以是游戏资产,比如包括游戏内的虚拟货币、虚拟装备和虚拟道具等资产。其中,当用户1、用户2和用户3有私钥存储需求时,可以分别通过客户端100a、100b和100c向加密机200发送密钥协商申请,加密机200可以根据该密钥协商申请生成对应的加密密钥(或者称之为对称密钥)。然后用户1、用户2和用户3可以分别通过客户端100a、100b和100c将各自区块链账户的私钥发送给加密机200。然后加密机200通过该加密密钥对私钥进行加密,得到该私钥对应的加密密文(也即得到加密后的私钥,一般为一串字符串),然后将该加密密文发送给客户端100a、100b和100c,由客户端100a、100b和100c再将该加密密文发送至托管服务器300,以使得托管服务器300存储该加密密文。如此,托管服务器300无法直接获得该私钥的明文,也无法通过加密机200解密该加密密文来得到该私钥,也即实现了对私钥的安全存储。
其中,客户端100a、100b和100c可以是具备上述功能的终端设备(例如智能手机,智能可穿戴设备、平板电脑、笔记本电脑、车载智能终端和台式电脑等等计算机设备)、独立的应用程序、API(Application Programming Interface,应用程序编程接口)或者SDK(Software Development Kit,软件开发工具包)等等,本发明实施例对此不作具体限定。其中,加密机200可以是通过国家商用密码主管部门鉴定并批准使用的国内自主开发的主机加密设备,加密机200和主机之间使用TCP/IP(Transmission Control Protocol/InternetProtocol,传输控制协议/网际协议)通信,所以加密机200对主机的类型和主机操作系统无任何特殊的要求。加密机200可以通过无线网络和有线网络与客户端100a、100b和100c建立通信连接,加密机200可以为具备上述功能的计算机设备(例如智能手机、平板电脑、笔记本电脑、台式电脑和服务器等等)。托管服务器300可以为具备上述功能的一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心,等等,本发明实施例对此不作具体限定。
需要说明的是,该区块链网络(或者称之为区块链系统,又或者称之为数据共享系统等)是指用于进行节点与节点之间数据共享的系统。请参见图2,图2是本发明实施例提供的一种区块链网络的结构示意图。如图2所示,该区块链网络可以包括如图2所示的多个节点11,该多个节点11例如可以为接入网络中的任何形式的计算机设备(比如服务器和智能手机、智能可穿戴设备、平板电脑、笔记本电脑、台式电脑等终端设备等等),可选的,该多个节点11也可以是指该区块链网络中的各个客户端或应用程序,等等。每个节点11在进行正常工作时可以接收到输入信息,并基于接收到的输入信息维护该区块链网络内的共享数据(也即区块链)。为了保证该区块链网络内的信息互通,该区块链网络中的每个节点11之间可以存在信息连接,并通过该信息连接进行信息传输。其中,任意两个节点11之间可以实现点对点(Peer To Peer,P2P)通信,具体可以通过有线通信链路或无线通信链路进行P2P通信。例如,当该区块链网络中的任意节点11接收到输入信息时,该区块链网络中的其他节点11便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得该区块链网络中的全部节点11上存储的数据均一致。客户端100a、100b和100c可以接入该区块链网络,并可以与该区块链网络中的节点11进行通信。
请参见图3,图3是本发明实施例提供的一种区块链节点的功能示意图。请参见图3示出的区块链系统中各节点的功能,涉及的功能可以包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行多个账户之间的虚拟资产的交易功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中。当然,钱包还支持查询账户中剩余的虚拟资产。例如,用户1、用户2和用户3可以分别通过客户端100a、100b和100c与节点11建立连接,完成在该区块链网络上的注册,创建一个自己的区块链账户(也即创建自己在区块链网络中的一个数字钱包)。一个数字钱包也即为一个区块链账户,一个数字钱包通常拥有一个密钥对,该密钥对包括公钥和私钥,通过公钥可以计算出该数字钱包的区块链地址。其中,公钥可以向全节点公开,而私钥通产存储在本地,或者交由给第三方托管机构进行保存等等。私钥一般来说是一个256bits的数,可以用于对数字钱包的交易信息(或者称之为交易数据)进行授权签名和加解密等等,以证明用户的合法身份,确认该交易信息的有效性,并允许使用数字钱包内的虚拟资产(也即使用用户自己区块链账户内的虚拟资产)。可见,私钥的持有者就是数字钱包中虚拟资产的持有者,因此必须被安全的保护起来。
请参见图4,图4是本发明实施例提供的一种虚拟资产的交易示意图。如图4所示,用户1(例如为交易发起方)可以通过客户端100a登录区块链数字钱包,获取第一交易信息,该第一交易信息可以用于指示将虚拟资产从第一区块链地址转移至第二区块链地址(也即将虚拟资产从用户1(例如为交易发起方)的账户转移至用户2(例如为交易接收方)的账户)。可选的,可以通过终端设备扫描二维码等操作获取第一交易信息,本发明实施例对此不作具体限定。然后,客户端100a通过用户1的数字钱包的私钥(也即用户1的区块链账户的私钥)对该第一交易信息进行签名,获得签名后的第一交易信息;然后根据该签名后的第一交易信息和用户1的数字钱包的公钥(也即用户1的区块链账户的公钥),生成第二交易信息,并将该第二交易信息上传至区块链网络。最后,区块链网络中的各个节点可以对该第二交易信息进行验证,验证通过后,区块链网络可以执行该第一交易信息,也即执行将虚拟资产从第一区块链地址转移至第二区块链地址,则交易完成。
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
需要说明的是,图2和图3所示的节点数目仅仅是示意性的,可以根据实际业务需求部署任意数目的节点,其中,客户端100a、100b和100c可以与该区块链网络中的同一节点进行通信,也可以分别与该区块链网络中的不同节点进行通信。对于该区块链网络中的每个节点11,均具有与其对应的节点标识,而且该区块链网络中的每个节点11均可以存储有该区块链网络中其他节点11的节点标识,以便后续根据其他节点11的节点标识,将生成的区块广播至该区块链网络中的其他节点11。每个节点11中可以维护一个如下表所示的节点标识列表,并将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为互联网协议(Internet Protocol,IP)地址以及其他任一种能够用于标识该节点的信息,本发明实施例对此不作具体限定,表中仅以IP地址为例进行说明。
区块链网络中的每个节点11均存储一条相同的区块链,区块链由多个区块组成。请参见图5,图5是本发明实施例提供的一种区块链的结构示意图,如图5所示,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
请参见图6,图6是本发明实施例提供的一种产生新区块的过程示意图。如图6所示,在生成区块链中的各个区块时,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256(SHA256(version+prev_hash+merkle_root+ntmie+nbits+x))<TARGET
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享系统中其他节点的节点标识,将新生成的区块分别发送给其所在的数据共享系统中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
可选的,在一些可能的实施方式中,该一种私钥存储方法的系统架构还可以包括比图1所示的系统架构更多或者更少的设备,本发明实施例对此不作具体限定。请参见图7,图7是本发明实施例提供的一种私钥存储方法的系统架构示意图。下面将结合图7,以图中的用户1和客户端100a为例,对本发明实施例提供的一种私钥存储方法进行进一步详细阐述。如图7所示,该系统架构还可以包括多个托管服务器(例如包括托管服务器300a和托管服务器300b等)和应用服务器400。其中,加密机与托管服务器之间没有必然联系,一般情况下,加密机作为一个可信赖的独立密码生成方,而托管服务器可以负责对密码的中间过程做存储。例如,托管服务器300a和托管服务器300b均可以分别存储经加密机200加密后的私钥的一部分,以使得任何一个托管服务器都无法从自身存储的加密后的私钥来反推出私钥的明文,进一步保障了私钥存储的安全,防止私钥泄露。其中,应用服务器400可以通过网络与加密机200建立通信连接,应用服务器400可以为一台服务器,也可以为由多台服务器组成的服务器集群,或者是一个云计算服务中心,等等,本发明实施例对此不作具体限定。应用服务器400可以为客户端100a提供后台服务,首先,当用户1有私钥存储需求时,可以通过客户端100a向应用服务器400发送密钥协商申请。例如,用户可以在相关网站或者应用软件中通过相应操作向该网站或者应用软件的后台服务器(也即应用服务器400)发送密钥协商申请。应用服务器400接收该密钥协商申请,由于加密机200与应用服务器400建立了连接,则加密机可以基于该密钥协商申请首先制定一个密钥位置(例如可以为共计1024个密钥位置中的其中一个密钥位置,比如密钥位置1),并使得客户端100a保存该密钥位置。然后,应用服务器400可以发送身份验证请求至托管服务器300a(或者托管服务器300b,本发明实施例对此不作具体限定),当托管服务器300a对用户1的身份验证通过后(也即用户1已授权了托管服务器可以对其私钥进行保存),加密机200可以调用会话密钥生成函数(SDF_GenerateKey With KEK)在上述密钥位置上生成对应的加密密钥。需要说明的是,一般情况下,通过加密机200可以得到加密密钥的加密句柄,而非直接得到加密密钥,通过加密句柄可以操作加密机200依据该加密密钥进行加密、解密等操作。并且,一般情况下,上述加密密钥和加密句柄通常为经加密机内部的非对称密钥对加密后的加密密钥和加密句柄,本发明实施例对此不作具体限定。然后,客户端100a通过如图7所示的加密信道将用户1的区块链账户的私钥(也即用户1的数字钱包的私钥)传输给应用服务器400,应用服务器400再讲私钥传输给加密机200,加密机通过密钥协商申请得到的加密密钥(或者说加密密钥的加密句柄)对该私钥进行加密,得到该私钥对应的加密密文(也即得到加密后的私钥,一般为一串字符串)。最后,加密机200将该加密密文通过应用服务器发送给客户端100a,再由客户端100a将该加密密文发送给托管服务器300a。可选的,客户端100a还可以同时将该加密密文发送给托管服务器300a和托管服务器300b等,以使得,托管服务器300a和托管服务器300b存储该加密密文,从而实现对用户的私钥的安全托管和存储。
需要说明的是,本发明实施例不仅仅可以应用于对区块链账户的私钥进行安全存储,还可以应用于一般的用户密码,例如社交软件中的账户密码、支付软件、购物软件或者购物网站等中的支付密码等等。在现有技术中,用户在托管第三方密码时,通常会在第三方托管机构(也即上述的托管服务器)注册自己的用户名密码。然后将自己的密码通过网络加密信道传输至第三方托管机构代为保管。这种场景下,通常会带来两个问题:
1.直接把密码给第三方托管机构代为保管,这样会导致第三方托管机构知道用户的密码明文,存在用户密码泄露的风险。
2.将密码加密,并将加密后得到的密码密文发送给第三方托管机构保管,如此,第三方机构无法直接知道用户密码,降低了密码泄露的风险。但是用户要使用密码时,需从第三方托管机构拿回密码密文,然后用密码密文的加密密钥进行解密,还原出密码。在这个过程中用户依然需要保存一份密码密文的加密密钥。这样用户将密码托管给第三方托管机构也就失去了意义。
本发明实施例中,可以通过加密机实现把密码(包括上述用户在区块链数字钱包中的私钥)加密后托管给第三方托管机构。第三方托管机构拿到的是加密后得到的密文,并且第三方托管机构无法通过加密机直接解密来还原用户密码。用户同时也不用直接保存密文的加密密码。从而可以有效解上述相关密码在委托第三方托管服务器进行存储时的密码泄露问题,保障用户的隐私和财产安全。
请参见图8,图8是本发明实施例提供的一种私钥存储方法的流程示意图。该方法可应用于上述图1或图7所述的系统架构中,其中的区块链网络可以为上述图1或图7系统架构中的区块链网络;其中的客户端可以为上述图1或图7系统架构中的客户端100a、100b和100c;其中的加密机可以为上述图1或图7系统架构中的加密机200;其中的托管服务器可以为上述图1或图7系统架构中的托管服务器300,可用于支持并执行图8中所示的方法流程。下面将结合附图8从加密机侧进行描述,该方法可以包括以下步骤S801-步骤S803:
步骤S801,接收客户端发送的密钥协商申请,根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥。
具体的,加密机接收客户端发送的密钥协商申请,根据所述密钥协商申请制定对应的密钥位置,并在该密钥位置上生成对应的加密密钥,所述密钥位置为加密机内部的密钥位置。可选的,该加密机可以为国密密码机或者其他的加密机(或者称之为密码机)等等,本发明实施例对此不作具体限定。可选的,当用户有私钥存储需求时,可以通过客户端向应用服务器发送密钥协商申请,加密机可以通过该应用服务器接收该密钥协商申请。可选的,加密机可以调用相应的密钥生成函数在该密钥位置上生成该加密密钥,可选的,该密钥生成函数具体可以为SDF_GenerateKey With KEK函数,或者其他任何可行的函数方案,本发明实施例对此不作具体限定。
如上所述,加密机在接收到该密钥协商申请后,可以首先制定一个加密机内部的密钥位置,然后在该密钥位置上生成对应的加密密钥。加密机可以将该密钥位置返回给客户端,从而完成客户端与加密机之间的密钥协商。客户端可以保存该密钥位置,以进行后续的私钥还原等一系列步骤。需要说明的是,一般情况下通过加密机可以得到加密密钥的加密句柄,而非直接得到加密密钥,通过加密句柄可以操作加密机依据该加密密钥进行加密、解密等操作。并且,一般情况下,上述加密密钥和加密句柄通常为经加密机内部的不对称密钥加密后的加密密钥和加密句柄,本发明实施例对此不作具体限定。
步骤S802,接收所述客户端发送的目标用户的私钥,根据所述加密密钥对所述私钥进行加密,得到所述私钥对应的加密密文。
具体的,加密机接收该客户端发送的目标用户的私钥,根据加密密钥对该私钥进行加密,得到该私钥对应的加密密文。可选的,该私钥可以用于对目标账户内的交易数据进行签名,以使用该目标账户内的虚拟资产。其中,目标账户为该目标用户通过该客户端在区块链网络中登录的账户(例如可以为目标用户自己的一个数字钱包)。可以用于存储和管理虚拟资产,虚拟资产可以是游戏资产,比如包括游戏内的虚拟货币、虚拟装备和虚拟道具等等,本发明实施例对此不作具体限定。
可选的,客户端可以通过加密信道将目标用户(例如为上述用户1、用户2或者用户3)的私钥发送至应用服务器,然后应用服务器将该私钥发送至加密机。可选的,加密机可以通过该加密密钥的加密句柄对该私钥进行加密操作,得到加密后的私钥,也即得到该私钥对应的加密密文。
步骤S803,发送所述私钥对应的加密密文至托管服务器,以使得所述托管服务器存储所述私钥对应的加密密文。
具体的,加密机将该私钥对应的加密密文发送给应用服务器,然后应用服务器通过加密信道将该机密密文传输给客户端,然后客户端将该加密密文上传至托管机构,以使得该托管机构存储该加密密文,也即存储该加密后的私钥。可选的,客户端还可以将该加密密文上传至多个托管服务器,由该多个托管服务器分别存储该私钥对应的加密密文。如此,本发明实施例是将经加密机加密后的私钥(也即加密密文)交由该托管服务器进行保存,显然,托管服务器无法知晓私钥的明文,从而也就无法泄露私钥的明文。既通过托管服务器对该加密密文的存储实现了对私钥的存储,为私钥增加了备份,同时又有效防止了私钥的泄露。实现了对用户私钥的安全存储,保障了用户在区块链账户中的虚拟资产安全,降低了虚拟资产被盗的风险。
请参见图9,图9是本发明实施例提供的一种私钥存储方法的流程示意图。该方法可应用于上述图1或图7所述的系统架构中,其中的区块链网络可以为上述图1或图7系统架构中的区块链网络;其中的客户端可以为上述图1或图7系统架构中的客户端100a、100b和100c;其中的加密机可以为上述图1或图7系统架构中的加密机200;其中的托管服务器可以为上述图1或图7系统架构中的托管服务器300,可用于支持并执行图9中所示的方法流程。下面将结合附图8从客户端、加密机和托管服务器交互侧进行描述,该方法可以包括以下步骤S901-步骤S910:
步骤S901,向加密机发送密钥协商申请;加密机接收密钥协商申请。
具体的,步骤S901可参考图8对应实施例中的步骤S801,此处不再进行赘述。
可选的,请参见图10,图10是本发明实施例提供的一种私钥托管的步骤示意图。如图10所示,参考步骤1a,目标用户可以通过客户端(图10中以台式电脑为例)向应用服务器发送密钥协商申请,加密机可以通过与其连接的该应用服务器接收该密钥协商申请。例如,目标用户可以通过客户端在相关网站或者应用软件中,通过在相关界面的点击、长按或者输入等操作,向应用服务器发送密钥协商申请。目标用户还可以通过客户端(例如为具备扫码功能的终端设备,比如智能手机、智能可穿戴设备等)对相关二维码或者条形码等的扫描操作,向应用服务器发送密钥协商申请,等等,本发明实施例对此不作具体限定。如图10所示,该客户端可以与区块链网络进行通信,例如目标用户可以通过该客户端登录自己的区块链账户(也即目标账户),并通过目标账户的私钥对交易信息(该交易信息例如为从自己的区块链账户向其它的区块链账户转移一笔虚拟资产,等等)进行签名,以使用目标账户内的虚拟资产,等等。
步骤S902,根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥。
具体的,步骤S902可以参考图8对应实施例中的步骤S801,此处不再进行赘述。可选的,如图10所示,参考步骤2a,在加密机调用该密钥生成函数生成对应的加密密钥之前,还可以通过应用服务器向托管服务器发送针对目标用户的身份验证请求,托管服务器接收该身份验证请求并对该目标用户的身份进行验证,以确定用户身份的合法性,本发明实施例对此不作具体限定。可选的,还可以通过应用服务器向除托管服务器以外的其他设备(例如其他身份验证机构,比如CA(Certificate Authority,电子商务认证授权机构)等等)发送针对目标用户的身份验证请求,可以由其他设备对目标用户的身份进行验证。可选的,还可以由应用服务器进行用户身份验证,等等,本发明实施例对此不作具体限定。若验证通过,则可以参考步骤3a,根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥,执行加密机调用该密钥生成函数生成对应的加密密钥的步骤,等等。
步骤S903,向客户端发送密钥位置;客户端接收密钥位置。
具体的,步骤S903可以参考图8对应实施例中的步骤S801,此处不再进行赘述。可选的,加密机在接收到该密钥协商申请后,可以首先制定一个加密机内部的密钥位置,然后在该密钥位置上生成对应的加密密钥,并将该密钥位置返回给客户端,从而完成客户端与加密机之间的密钥协商。客户端可以接收并保存该密钥位置,以进行后续的私钥还原等一系列步骤。
步骤S904,向加密机发送目标用户的私钥;加密机接收目标用户的私钥。
具体的,步骤S904可以参考图8对应实施例中的步骤S802,此处不再进行赘述。可选的,如图10所示,参考步骤4a,目标用户可以通过客户端向应用服务器发送目标用户的区块链账户的私钥(通常情况下,私钥一般为一串字符串,比如xydf3485689yiwejb7823erq09,等等,本发明实施例对此不作具体限定),然后,通过应用服务器接收该目标用户的私钥并向加密机发送该目标用户的私钥,加密机接收该目标用户的私钥。
步骤S905,根据所述加密密钥对所述私钥进行加密,得到所述私钥对应的加密密文。参考步骤5a。
具体的,步骤S905可以参考图8对应实施例中的步骤S802,此处不再进行赘述。
步骤S906,向客户端发送所述加密密文;客户端接受所述加密密文。
具体的,步骤S906可以参考图8对应实施例中的步骤S803,此处不再进行赘述。可选的,如图10所示,参考步骤6a,加密机可以通过应用服务器向客户端发送该加密密文,客户端接收该加密密文。
步骤S907,向托管服务器发送所述加密密文;托管服务器接收所述加密密文。参考步骤7a。
具体的,步骤S907可以参考图8对应实施例中的步骤S803,此处不再进行赘述。可选的,客户端可以向多个托管服务器发送该加密密文,以使得该多个托管服务器分别接收该加密密文并存储该加密密文,使得私钥更加安全的存储。如此既通过托管服务器对该加密密文的存储实现了对私钥的存储,为私钥增加了备份,同时又有效防止了私钥的泄露。实现了对用户私钥的安全存储,保障了用户区块链账户中的虚拟资产安全,降低了虚拟资产被盗的风险。
步骤S908,向加密机发送所述加密密文和所述密钥位置;加密机接收所述加密密文和所述密钥位置。
具体的,请参见图11,图11是本发明实施例提供的一种私钥还原的步骤示意图。如图11所示,参考步骤1b和步骤2b,当用户想要获得自己数字钱包的私钥时,可以通过客户端(图11中以台式电脑为例)从托管服务器中获取该加密密文,然后将该加密密文发送至加密机。可选的,可以通过客户端将该加密密文和上述加密密钥对应的密钥位置发送至应用服务器,然后通过应用服务器将该加密密文和该密钥位置发送至加密机。加密机接收该加密密文和该密钥位置。
步骤S909,调用密钥导入函数,获得所述密钥位置上对应的加密密钥。
具体的,参考步骤4b,加密机调用密钥导入函数SDF_ImportKeyWithKEK,通过该函数以及该密钥位置,通过加密机内部的非对称密钥对还原出该密钥位置上对应的加密密钥,可选的,还可以还原出该加密密钥对应的加密句柄,本发明实施例对此不作具体限定。可选的,该密钥导入函数可以为其他任何可行的函数方案,本发明实施例对此不作具体限定。显然,基于客户端和加密机之间的密钥协商申请,只有客户端和加密机持有该密钥位置,而托管服务器无法得到该密钥位置,也即在托管服务器没有掌握该密钥位置的情况下,无法通过加密机还原得到该密钥位置上的加密密钥,也就无法解密得到用户的私钥明文,如此,可以有效防止私钥的泄露,从而实现了对用户私钥的安全存储,保障了用户区块链账户中的虚拟资产的安全,大大降低了虚拟资产被盗的风险。
可选的,如图11所示,参考步骤3b,在加密机调用该密钥导入函数,获得所述及密钥位置上对应的加密密钥之前,还可以通过应用服务器向托管服务器发送针对目标用户的身份验证请求,托管服务器接收该身份验证请求并对该目标用户的身份进行验证,若验证通过,则可以执行加密机调用该密钥导入函数,获得所述加密密文对应的加密密钥的步骤,等等,本发明实施例对此不作具体限定。可选的,还可以通过应用服务器向除托管服务器以外的其他设备(例如其他身份验证机构,比如CA(Certificate Authority,电子商务认证授权机构)等等)发送针对目标用户的身份验证请求,可以由其他设备对目标用户的身份进行验证。可选的,还可以由应用服务器进行用户身份验证,等等,本发明实施例对此不作具体限定。
步骤S910,根据所述加密密钥对所述加密密文进行解密,得到所述私钥。
具体的,参考步骤5b,加密机根据该加密密钥对该加密密文进行解密,得到该私钥(也即得到该私钥的明文)。可选的,加密机可以通过该加密密钥的加密句柄对该加密密文进行解密操作,得到该目标用户的私钥。
步骤S911,向客户端发送所述私钥;客户端接收所述私钥。
具体的,参考图11中的步骤6b,加密机可以通过应用服务器通过加密信道将所述私钥发送至客户端,客户端接收该私钥,也即用户无需将私钥存储在本地或者进行人为记忆,而可以通过将私钥的加密密文交由托管服务器进行保存,并在需要私钥时从托管服务器中获取该加密密文,然后通过加密机解密该加密密文,从而得到该私钥。如此,基于加密机的加密和解密,使得第三方托管服务器仅仅存储用户私钥的加密密文,而无法直接获得用户私钥的明文,从而大大降低了私钥的泄露风险,与此同时,用户(也即客户端)也无需保存加密密文的加密密钥,而只需保存一份密钥位置即可,进而可以大大减少内存占用。
本发明实施例提供了一种私钥存储方法,可以基于用户的私钥存储需求,通过客户端向加密机发送密钥协商申请,加密机根据该密钥协商申请在内部制定一个密钥位置,并在该密钥位置上生成对应的加密密钥;然后,加密机接收客户端发送的用户区块链账户的私钥,并根据该加密密钥对该私钥进行加密,从而得到该私钥对应的加密密文(也即得到加密后的私钥);最后将该私钥对应的加密密文发送给托管服务器,由托管服务器存储该加密密文,从而实现对私钥的安全存储。由此,对比现有技术中,直接将用户区块链账户的私钥交由托管服务器进行保存,从而容易导致私钥泄露的方案而言。本发明实施例是将经加密机加密后的私钥交由该托管服务器进行保存,显然,在此过程中托管服务器无法知晓私钥的明文,从而也就无法泄露私钥的明文。如此,既通过托管服务器对该加密密文的存储实现了对私钥的存储,为私钥增加了备份,同时又有效防止了私钥的泄露,从而实现了对用户私钥的安全存储,保障了用户区块链账户的安全,大大降低了区块链账户的虚拟资产被盗的风险。
请参见图12,是本发明实施例提供的一种私钥存储装置的结构示意图。如图12所示,该私钥存储装置包括装置10,该装置10可以应用于上述图4或图5所对应实施例中的区块链网络(包括一个或多个计算机设备),该装置10可以包括:生成模块101、加密模块104和第一发送模块105:
生成模块101,用于接收客户端发送的密钥协商申请,根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥,所述密钥位置为加密机内部的密钥位置;
加密模块104,用于接收所述客户端发送的目标用户的私钥,根据所述加密密钥对所述私钥进行加密,得到所述私钥对应的加密密文;所述私钥用于对目标账户内的交易数据进行签名、加解密,以证明所述目标用户的合法身份,并允许所述目标用户使用所述目标账户内的虚拟资产,所述目标账户为所述目标用户通过所述客户端管理基于区块链技术的所述虚拟资产的账户;
第一发送模块105,用于发送所述私钥对应的加密密文至托管服务器,以使得所述托管服务器存储所述私钥对应的加密密文。
其中,生成模块101、加密模块104和第一发送模块105的具体功能实现方式可以参见上述图8所对应实施例中的步骤S801-步骤S803,生成模块101、加密模块104和第一发送模块105的具体实现方式还可以参见上述图9所对应实施例中的步骤S901-步骤S907,这里不再进行赘述。
请一并参见图12,其中,所述根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥之前,所述装置还包括:第二发送模块102和第一执行模块103:
第二发送模块102,用于发送所述目标用户的身份验证请求至所述托管服务器;
第一执行模块103,用于当所述托管服务器对所述目标用户的身份验证通过后,执行所述根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥的步骤。
其中,第二发送模块102和第一执行模块103的具体功能实现方式可以参见上述图8所对应实施例中的步骤S801,第二发送模块102和第一执行模块103的具体实现方式还可以参见上述图9所对应实施例中的步骤S902,这里不再进行赘述。
请一并参见图12,其中,所述加密密钥对应有加密密钥句柄,所述加密密钥句柄为通过所述密钥生成函数,根据所述加密密钥生成的;所述加密模块104,包括:加密单元1041:
加密单元1041,用于通过所述加密密钥句柄,根据所述加密密钥对所述私钥进行加密,得到所述私钥对应的加密密文。
其中,加密单元1041的具体功能实现方式可以参见上述图8所对应实施例中的步骤S802,加密单元1041的具体实现方式还可以参见上述图9所对应实施例中的步骤S902-步骤S905,这里不再进行赘述。
请一并参见图12,其中,所述第一发送模块105,包括:发送单元1051:
发送单元1051,用于发送所述私钥对应的加密密文至所述客户端,通过所述客户端将所述私钥对应的加密密文发送至所述托管服务器。
其中,发送单元1051的具体功能实现方式可以参见上述图8所对应实施例中的步骤S803,发送单元1051的具体实现方式还可以参见上述图9所对应实施例中的步骤S906-步骤S907,这里不再进行赘述。
请一并参见图12,所述生成模块101,包括:制定单元1011和生成单元1012:
制定单元1011,根据所述密钥协商申请在加密机内部制定对应的所述密钥位置,并发送所述密钥位置至所述客户端,以使得所述客户端存储所述密钥位置;
生成单元1012,用于调用密钥生成函数在所述密钥位置上生成对应的所述加密密钥。
其中,制定单元1011和生成单元1012的具体功能实现方式可以参见上述图8所对应实施例中的步骤S801,制定单元1011和生成单元1012的具体实现方式还可以参见上述图9所对应实施例中的步骤S901-步骤S903,这里不再进行赘述。
请一并参见图12,其中,所述装置还包括:接收模块106、获得模块109、解密模块110和第三发送模块111:
接收模块106,用于接收所述客户端发送的所述加密密文和所述密钥位置,所述加密密文为所述客户端通过所述托管服务器获取的;
获得模块109,用于根据所述密钥位置,调用密钥导入函数,获得在所述密钥位置上对应的所述加密密钥;
解密模块110,用于根据所述加密密钥对所述加密密文进行解密,得到所述私钥;
第三发送模块111,用于发送所述私钥至所述客户端。
其中,接收模块106、获得模块109、解密模块110和第三发送模块111的具体功能实现方式可以参见上述图8所对应实施例中的步骤S803,接收模块106、获得模块109、解密模块110和第三发送模块111的具体实现方式还可以参见上述图9所对应实施例中的步骤S908-步骤S911,这里不再进行赘述。
请一并参见图12,其中,所述根据所述密钥位置,调用密钥导入函数,获得在所述密钥位置上对应的所述加密密钥之前,所述装置还包括:第四发送模块107和第二执行模块108:
第四发送模块107,用于发送所述目标用户的身份验证请求至所述托管服务器;
第二执行模块108,用于当所述托管服务器对所述目标用户的身份验证通过后,执行所述调用密钥导入函数,获得在所述密钥位置上所述加密密文对应的所述加密密钥的步骤。
其中,第四发送模块107和第二执行模块108的具体功能实现方式可以参见上述图8所对应实施例中的步骤S803,第四发送模块107和第二执行模块108的具体实现方式还可以参见上述图9所对应实施例中的步骤S909,这里不再进行赘述。
基于上述方法实施例以及装置实施例的描述,本发明实施例还提供一种计算机设备。请参见图13,图13是本发明实施例提供的一种计算机设备的结构示意图,该计算机设备至少包括处理器201、输入设备202、输出设备203以及计算机可读存储介质204。其中,计算机设备内的处理器201、输入设备202、输出设备203以及计算机可读存储介质204可通过总线或其他方式连接。
计算机可读存储介质204可以存储在计算机设备的存储器中,所述计算机可读存储介质204用于存储计算机程序,所述计算机程序包括程序指令,所述处理器201用于执行所述计算机可读存储介质204存储的程序指令。处理器201(或称CPU(Central ProcessingUnit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行一条或一条以上指令从而实现相应方法流程或相应功能;在一个实施例中,本发明实施例所述的处理器201可以用于进行私钥存储的一系列处理,包括:接收客户端发送的密钥协商申请,根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥,所述密钥位置为加密机内部的密钥位置;接收所述客户端发送的目标用户的私钥,根据所述加密密钥对所述私钥进行加密,得到所述私钥对应的加密密文;所述私钥用于对目标账户内的交易数据进行签名、加解密,以证明所述目标用户的合法身份,并允许所述目标用户使用所述目标账户内的虚拟资产,所述目标账户为所述目标用户通过所述客户端管理基于区块链技术的所述虚拟资产的账户;发送所述私钥对应的加密密文至托管服务器,以使得所述托管服务器存储所述私钥对应的加密密文,等等。
本发明实施例还提供了一种计算机可读存储介质(Memory),所述计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了适于被处理器201加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机可读存储介质。
在一个实施例中,可由处理器201加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述有关私钥存储方法实施例中的方法的相应步骤;具体实现中,计算机可读存储介质中的一条或一条以上指令由处理器201加载并执行如下步骤:
接收客户端发送的密钥协商申请,根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥,所述密钥位置为加密机内部的密钥位置;
接收所述客户端发送的目标用户的私钥,根据所述加密密钥对所述私钥进行加密,得到所述私钥对应的加密密文;所述私钥用于对目标账户内的交易数据进行签名、加解密,以证明所述目标用户的合法身份,并允许所述目标用户使用所述目标账户内的虚拟资产,所述目标账户为所述目标用户通过所述客户端管理基于区块链技术的所述虚拟资产的账户;
发送所述私钥对应的加密密文至托管服务器,以使得所述托管服务器存储所述私钥对应的加密密文。
在一种实施方式中,在所述根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥之前,所述一条或一条以上指令还可以由处理器201加载并具体执行:
发送所述目标用户的身份验证请求至所述托管服务器;
当所述托管服务器对所述目标用户的身份验证通过后,执行所述根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥的步骤。
在一种实施方式中,所述加密密钥对应有加密密钥句柄,所述加密密钥句柄为通过所述密钥生成函数,根据所述加密密钥生成的;在所述根据所述加密密钥对所述私钥进行加密,得到所述私钥对应的加密密文中,所述一条或一条以上指令还可以由处理器201加载并具体执行:
通过所述加密密钥句柄,根据所述加密密钥对所述私钥进行加密,得到所述私钥对应的加密密文。
在一种实施方式中,在所述发送所述私钥对应的加密密文至托管服务器中,所述一条或一条以上指令还可以由处理器201加载并具体执行:
发送所述私钥对应的加密密文至所述客户端,通过所述客户端将所述私钥对应的加密密文发送至所述托管服务器。
在一种实施方式中在所述根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥中,所述一条或一条以上指令还可以由处理器201加载并具体执行:
根据所述密钥协商申请在加密机内部制定对应的所述密钥位置,并发送所述密钥位置至所述客户端,以使得所述客户端存储所述密钥位置;
调用密钥生成函数在所述密钥位置上生成对应的所述加密密钥。
在一种实施方式中,所述一条或一条以上指令还可以由处理器201加载并具体执行:
接收所述客户端发送的所述加密密文和所述密钥位置,所述加密密文为所述客户端通过所述托管服务器获取的;
根据所述密钥位置,调用密钥导入函数,获得在所述密钥位置上对应的所述加密密钥;
根据所述加密密钥对所述加密密文进行解密,得到所述私钥;
发送所述私钥至所述客户端。
在一种实施方式中,在所述根据所述密钥位置,调用密钥导入函数,获得在所述密钥位置上对应的所述加密密钥之前,所述一条或一条以上指令还可以由处理器201加载并具体执行:
发送所述目标用户的身份验证请求至所述托管服务器;
当所述托管服务器对所述目标用户的身份验证通过后,执行所述根据所述密钥位置,调用密钥导入函数,获得在所述密钥位置上对应的所述加密密钥的步骤。
本发明实施例提供了一种私钥存储方法,可以基于用户的私钥存储需求,通过客户端向加密机发送密钥协商申请,加密机根据该密钥协商申请在内部制定一个密钥位置,并在该密钥位置上生成对应的加密密钥;然后,加密机接收客户端发送的用户区块链账户的私钥,并根据该加密密钥对该私钥进行加密,从而得到该私钥对应的加密密文(也即得到加密后的私钥);最后将该私钥对应的加密密文发送给托管服务器,由托管服务器存储该加密密文,从而实现对私钥的安全存储。由此,对比现有技术中,直接将用户区块链账户的私钥交由托管服务器进行保存,从而容易导致私钥泄露的方案而言。本发明实施例是将经加密机加密后的私钥交由该托管服务器进行保存,显然,在此过程中托管服务器无法知晓私钥的明文,从而也就无法泄露私钥的明文。如此,既通过托管服务器对该加密密文的存储实现了对私钥的存储,为私钥增加了备份,同时又有效防止了私钥的泄露,从而实现了对用户私钥的安全存储,保障了用户区块链账户的安全,大大降低了区块链账户的虚拟资产被盗的风险。
需要说明的是,本发明实施例不仅仅可以应用于对区块链数字钱包中的私钥进行安全存储,还可以应用于一般的用户密码,例如社交软件中的账户密码、支付软件、购物软件或者购物网站等中的支付密码等等。从而可以有效解上述相关密码在委托第三方托管服务器进行存储时的密码泄露问题,保障用户的隐私和财产安全。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种私钥存储方法,其特征在于,包括:
接收客户端发送的密钥协商申请,根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥,所述密钥位置为加密机内部的密钥位置;
接收所述客户端发送的目标用户的私钥,根据所述加密密钥对所述私钥进行加密,得到所述私钥对应的加密密文;所述私钥用于对目标账户内的交易数据进行签名、加解密,以证明所述目标用户的合法身份,并允许所述目标用户使用所述目标账户内的虚拟资产,所述目标账户为所述目标用户通过所述客户端管理基于区块链技术的所述虚拟资产的账户;
发送所述私钥对应的加密密文至托管服务器,以使得所述托管服务器存储所述私钥对应的加密密文。
2.根据权利要求1所述的方法,其特征在于,所述根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥之前,所述方法还包括:
发送所述目标用户的身份验证请求至所述托管服务器;
当所述托管服务器对所述目标用户的身份验证通过后,执行所述根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥的步骤。
3.根据权利要求1所述的方法,其特征在于,所述加密密钥对应有加密密钥句柄,所述加密密钥句柄为通过密钥生成函数,根据所述加密密钥生成的;所述根据所述加密密钥对所述私钥进行加密,得到所述私钥对应的加密密文,包括:
通过所述加密密钥句柄,根据所述加密密钥对所述私钥进行加密,得到所述私钥对应的加密密文。
4.根据权利要求1所述的方法,其特征在于,所述发送所述私钥对应的加密密文至托管服务器,包括:
发送所述私钥对应的加密密文至所述客户端,通过所述客户端将所述私钥对应的加密密文发送至所述托管服务器。
5.根据权利要求1所述的方法,其特征在于,所述根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥,包括:
根据所述密钥协商申请在加密机内部制定对应的所述密钥位置,并发送所述密钥位置至所述客户端,以使得所述客户端存储所述密钥位置;
调用密钥生成函数在所述密钥位置上生成对应的所述加密密钥。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的所述加密密文和所述密钥位置,所述加密密文为所述客户端通过所述托管服务器获取的;
根据所述密钥位置,调用密钥导入函数,获得在所述密钥位置上对应的所述加密密钥;
根据所述加密密钥对所述加密密文进行解密,得到所述私钥;
发送所述私钥至所述客户端。
7.根据权利要求6所述的方法,其特征在于,所述根据所述密钥位置,调用密钥导入函数,获得在所述密钥位置上对应的所述加密密钥之前,所述方法还包括:
发送所述目标用户的身份验证请求至所述托管服务器;
当所述托管服务器对所述目标用户的身份验证通过后,执行所述根据所述密钥位置,调用密钥导入函数,获得在所述密钥位置上对应的所述加密密钥的步骤。
8.一种私钥存储装置,其特征在于,包括:
生成模块,用于接收客户端发送的密钥协商申请,根据所述密钥协商申请制定对应的密钥位置,并在所述密钥位置上生成对应的加密密钥,所述密钥位置为加密机内部的密钥位置;
加密模块,用于接收所述客户端发送的目标用户的私钥,根据所述加密密钥对所述私钥进行加密,得到所述私钥对应的加密密文;所述私钥用于对目标账户内的交易数据进行签名、加解密,以证明所述目标用户的合法身份,并允许所述目标用户使用所述目标账户内的虚拟资产,所述目标账户为所述目标用户通过所述客户端管理基于区块链技术的所述虚拟资产的账户;
第一发送模块,用于发送所述私钥对应的加密密文至托管服务器,以使得所述托管服务器存储所述私钥对应的加密密文。
9.一种计算机设备,其特征在于,包括处理器和存储器,所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1至7任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述权利要求1至7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010230033.0A CN111431713B (zh) | 2020-03-27 | 2020-03-27 | 一种私钥存储方法、装置和相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010230033.0A CN111431713B (zh) | 2020-03-27 | 2020-03-27 | 一种私钥存储方法、装置和相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111431713A true CN111431713A (zh) | 2020-07-17 |
CN111431713B CN111431713B (zh) | 2023-03-28 |
Family
ID=71549487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010230033.0A Active CN111431713B (zh) | 2020-03-27 | 2020-03-27 | 一种私钥存储方法、装置和相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111431713B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111738238A (zh) * | 2020-08-14 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 人脸识别方法和装置 |
CN112084536A (zh) * | 2020-09-01 | 2020-12-15 | 中国银行股份有限公司 | 基于区块链的密钥存储方法及装置 |
CN112165490A (zh) * | 2020-09-29 | 2021-01-01 | 鹏元征信有限公司 | 一种加密方法、解密方法、存储介质及终端设备 |
CN112822016A (zh) * | 2021-01-25 | 2021-05-18 | 厦门市易联众易惠科技有限公司 | 在区块链上进行数据授权的方法及区块链网络 |
CN112861148A (zh) * | 2021-01-28 | 2021-05-28 | 北京深思数盾科技股份有限公司 | 数据处理方法、服务端、客户端及加密机 |
CN112925853A (zh) * | 2021-03-08 | 2021-06-08 | 宁波金狮科技有限公司 | 基于区块链的可信数据交换方法、装置、终端设备和介质 |
CN113139166A (zh) * | 2021-03-16 | 2021-07-20 | 标信智链(杭州)科技发展有限公司 | 基于云证书的评标专家签名方法及装置 |
CN113922967A (zh) * | 2021-10-10 | 2022-01-11 | 普华云创科技(北京)有限公司 | 区块链密钥的管理方法、装置及计算机设备 |
CN114221762A (zh) * | 2021-12-13 | 2022-03-22 | 深圳壹账通智能科技有限公司 | 一种私钥存储方法、读取方法、管理装置、设备及介质 |
CN114244514A (zh) * | 2022-02-21 | 2022-03-25 | 图灵人工智能研究院(南京)有限公司 | 一种基于车联网的数据安全处理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103248476A (zh) * | 2013-05-02 | 2013-08-14 | 华为数字技术(苏州)有限公司 | 数据加密密钥的管理方法、系统及终端 |
CN106548345A (zh) * | 2016-12-07 | 2017-03-29 | 北京信任度科技有限公司 | 基于密钥分割实现区块链私钥保护的方法及系统 |
CN108173648A (zh) * | 2017-12-29 | 2018-06-15 | 数安时代科技股份有限公司 | 基于私钥托管的数字安全处理方法、设备及存储介质 |
CN109447644A (zh) * | 2018-11-09 | 2019-03-08 | 上海点融信息科技有限责任公司 | 用于托管区块链用户私钥的方法和装置 |
US20190268165A1 (en) * | 2018-02-27 | 2019-08-29 | Anchor Labs, Inc. | Cryptoasset custodial system with different rules governing access to logically separated cryptoassets |
CN110322247A (zh) * | 2019-07-12 | 2019-10-11 | 上海翎阳网络科技有限公司 | 货币资产管理存储系统及安全防护检测系统 |
-
2020
- 2020-03-27 CN CN202010230033.0A patent/CN111431713B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103248476A (zh) * | 2013-05-02 | 2013-08-14 | 华为数字技术(苏州)有限公司 | 数据加密密钥的管理方法、系统及终端 |
CN106548345A (zh) * | 2016-12-07 | 2017-03-29 | 北京信任度科技有限公司 | 基于密钥分割实现区块链私钥保护的方法及系统 |
CN108173648A (zh) * | 2017-12-29 | 2018-06-15 | 数安时代科技股份有限公司 | 基于私钥托管的数字安全处理方法、设备及存储介质 |
US20190268165A1 (en) * | 2018-02-27 | 2019-08-29 | Anchor Labs, Inc. | Cryptoasset custodial system with different rules governing access to logically separated cryptoassets |
CN109447644A (zh) * | 2018-11-09 | 2019-03-08 | 上海点融信息科技有限责任公司 | 用于托管区块链用户私钥的方法和装置 |
CN110322247A (zh) * | 2019-07-12 | 2019-10-11 | 上海翎阳网络科技有限公司 | 货币资产管理存储系统及安全防护检测系统 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111738238A (zh) * | 2020-08-14 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 人脸识别方法和装置 |
US11256900B1 (en) | 2020-08-14 | 2022-02-22 | Alipay (Hangzhou) Information Technology Co., Ltd. | Facial recognition methods and apparatuses |
CN112084536A (zh) * | 2020-09-01 | 2020-12-15 | 中国银行股份有限公司 | 基于区块链的密钥存储方法及装置 |
CN112084536B (zh) * | 2020-09-01 | 2023-07-21 | 中国银行股份有限公司 | 基于区块链的密钥存储方法及装置 |
CN112165490A (zh) * | 2020-09-29 | 2021-01-01 | 鹏元征信有限公司 | 一种加密方法、解密方法、存储介质及终端设备 |
CN112165490B (zh) * | 2020-09-29 | 2022-11-08 | 海南凤凰木科技有限公司 | 一种加密方法、解密方法、存储介质及终端设备 |
CN112822016A (zh) * | 2021-01-25 | 2021-05-18 | 厦门市易联众易惠科技有限公司 | 在区块链上进行数据授权的方法及区块链网络 |
CN112822016B (zh) * | 2021-01-25 | 2023-04-28 | 厦门市易联众易惠科技有限公司 | 在区块链上进行数据授权的方法及区块链网络 |
CN112861148B (zh) * | 2021-01-28 | 2022-02-18 | 北京深思数盾科技股份有限公司 | 数据处理方法、服务端、客户端及加密机 |
CN112861148A (zh) * | 2021-01-28 | 2021-05-28 | 北京深思数盾科技股份有限公司 | 数据处理方法、服务端、客户端及加密机 |
CN112925853B (zh) * | 2021-03-08 | 2022-08-02 | 山东审核通信息科技有限公司 | 基于区块链的可信数据交换方法、装置、终端设备和介质 |
CN112925853A (zh) * | 2021-03-08 | 2021-06-08 | 宁波金狮科技有限公司 | 基于区块链的可信数据交换方法、装置、终端设备和介质 |
CN113139166A (zh) * | 2021-03-16 | 2021-07-20 | 标信智链(杭州)科技发展有限公司 | 基于云证书的评标专家签名方法及装置 |
CN113922967A (zh) * | 2021-10-10 | 2022-01-11 | 普华云创科技(北京)有限公司 | 区块链密钥的管理方法、装置及计算机设备 |
CN114221762A (zh) * | 2021-12-13 | 2022-03-22 | 深圳壹账通智能科技有限公司 | 一种私钥存储方法、读取方法、管理装置、设备及介质 |
CN114244514A (zh) * | 2022-02-21 | 2022-03-25 | 图灵人工智能研究院(南京)有限公司 | 一种基于车联网的数据安全处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111431713B (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111431713B (zh) | 一种私钥存储方法、装置和相关设备 | |
US11936774B2 (en) | Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys | |
US10594498B2 (en) | Method and service-providing server for secure transmission of user-authenticating information | |
US20220318907A1 (en) | Systems and methods for generating secure, encrypted communications across distributed computer networks for authorizing use of cryptography-based digital repositories in order to perform blockchain operations in decentralized applications | |
CN108418680B (zh) | 一种基于安全多方计算技术的区块链密钥恢复方法、介质 | |
WO2021114819A1 (zh) | 生成和执行智能合约交易的方法及装置 | |
US20200084027A1 (en) | Systems and methods for encryption of data on a blockchain | |
CN110289968B (zh) | 私钥恢复、协同地址的创建、签名方法及装置、存储介质 | |
CN111404950B (zh) | 一种基于区块链网络的信息共享方法、装置和相关设备 | |
CN114866323B (zh) | 一种用户可控的隐私数据授权共享系统及方法 | |
CN112508576A (zh) | 基于区块链的密钥管理方法、系统及存储介质 | |
JP6293245B1 (ja) | 強化されたセキュリティを有する取引相互監視システム | |
Homoliak et al. | An air-gapped 2-factor authentication for smart-contract wallets | |
CN110610418B (zh) | 基于区块链的交易状态查询方法、系统、设备及存储介质 | |
CN111915302B (zh) | 关联数据处理方法、装置、电子设备及计算机可读介质 | |
KR20190099984A (ko) | 개인 키 관리 시스템 | |
US11985254B2 (en) | Threshold multi-party computation with must-have member | |
US20230188364A1 (en) | Partial payload encryption with integrity protection | |
WO2020258125A1 (zh) | 私钥恢复、协同地址的创建、签名方法及装置、存储介质 | |
AU2022263492A1 (en) | Method and system for performing cryptocurrency asset transactions | |
WO2020168544A1 (zh) | 数据处理方法和装置 | |
TW202410662A (zh) | 加密傳輸系統及加密傳輸方法 | |
CN116132185A (zh) | 数据调用方法、系统、装置、设备和介质 | |
Lee | Security Protocols | |
JP2001189720A (ja) | 暗号化通信システム及びトークン並びに暗号化通信方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |