用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备技术

技术编号:21454400 阅读:29 留言:0更新日期:2019-06-26 04:55
一种用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备,所述密钥生成方法包括:A.在区块链管理客户端本地生成区块链节点的第一密钥,所述区块链管理客户端的计算环境包括可信计算环境;B.在所述可信计算环境中,使用第二密钥对所述第一密钥进行加密处理,以生成第三密钥,其中,所述第二密钥预存于与所述区块链管理客户端相关联的受保护的内存中,且仅能被运行于可信计算环境的密钥管理程序读取;C.将所述第三密钥发送至与所述区块链管理客户端相关联的BaaS平台;D.将所述密钥管理程序发送至所述BaaS平台。通过本发明专利技术提供的方案能够提高区块链节点的密钥的安全系数,降低密钥被盗风险,确保存储于区块链账本上的数据的安全性。

【技术实现步骤摘要】
用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备
本专利技术涉及区块链
,具体地涉及一种用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备。
技术介绍
区块链是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。区块链技术包括以块结构存储数据,使用密码学保证传输和访问安全等,其能够实现数据一致性存储、反篡改、去中心的技术体系。根据现有的区块链系统,区块链由所有参加的区块链节点共同维护,每一个参与维护的区块链节点都可以获得一份区块链数据(可简称为数据)的完整拷贝并独立进行验证。具体地,每一个区块链节点都拥有一个节点密钥(可简称为密钥),当一笔交易在一个区块链节点上执行时,该区块链节点会对该交易进行签名,签名使用的密钥即为该区块链节点的密钥。区块链节点对于交易的签名确保了交易在执行环节的可靠性。
技术实现思路
本专利技术的实施例提供了一种用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备。本专利技术实施例的第一方面提供一种用于区块链网络的密钥生成方法,包括:A.在区块链管理客户端本地生成区块链节点的第一密钥,所述区块链管理客户端的计算环境包括可信计算环境;B.在所述可信计算环境中,使用第二密钥对所述第一密钥进行加密处理,以生成第三密钥,其中,所述第二密钥预存于与所述区块链管理客户端相关联的受保护的内存中,且仅能被运行于可信计算环境的密钥管理程序读取;C.将所述第三密钥发送至与所述区块链管理客户端相关联的BaaS平台;D.将所述密钥管理程序发送至所述BaaS平台。本实施例所述方案将区块链节点的密钥封装在安全的密钥数据文件中,能够确保密钥本身的安全性,提高区块链节点的密钥的安全系数,降低密钥被盗风险。具体地,区块链管理客户端仅发送第三密钥至BaaS平台,所述区块链节点的密钥(也可称为第一密钥)本身不会在区块链管理客户端、BaaS平台和区块链节点之间传输,从而最大限度地保护区块链节点的密钥。进一步地,在区块链管理客户端的可信计算环境中使用第二密钥对区块链节点的第一密钥进行加密处理,由于第二密钥仅能被运行于可信计算环境的密钥管理程序读取,使得确保外界无法直接获得第一密钥,从而降低区块链节点被冒用的风险。所述外界可以是除区块链管理客户端和所述区块链节点外的第三方。本专利技术实施例还提供一种计算设备,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.在区块链管理客户端本地生成区块链节点的第一密钥,所述区块链管理客户端的计算环境包括可信计算环境;B.在所述可信计算环境中,使用第二密钥对所述第一密钥进行加密处理,以生成第三密钥,其中,所述第二密钥预存于与所述区块链管理客户端相关联的受保护的内存中,且仅能被运行于可信计算环境的密钥管理程序读取;C.将所述第三密钥发送至与所述区块链管理客户端相关联的BaaS平台;D.将所述密钥管理程序发送至所述BaaS平台。本专利技术实施例还提供一种用于区块链网络的签名方法,包括:A.获取待签名的数据;B.自BaaS平台获取第三密钥,所述第三密钥是在区块链管理客户端的可信计算环境中使用第二密钥对区块链节点的第一密钥加密处理得到的,所述第二密钥预存于与所述区块链节点相关联的受保护的内存中,且仅能被运行于可信计算环境的密钥管理程序读取,所述密钥管理程序获取自所述BaaS平台;C.使用所述第二密钥对所述第三密钥进行解密处理,以得到所述第一密钥,其中,所述区块链节点的计算环境包括可信计算环境,所述解密处理的操作是在所述区块链节点的可信计算环境中进行的;D.在所述区块链节点的可信计算环境中,使用所述第一密钥对所述待签名的数据进行签名。本实施例所述方案将使用密钥进行签名的运算逻辑运行在区块链节点的可信计算环境中,能够确保签名运算过程中的安全性,同时确保存储于区块链上的数据的安全性。具体地,对待签名的数据进行签名的操作是在区块链节点的可信计算环境中进行的,且用于对待签名的数据进行签名的区块链节点的密钥是预先被处理过的、仅能在可信计算环境中被使用的,降低区块链节点的密钥被盗取的风险,使得他人无法伪造区块链节点处理区块链上的数据,从而达到提高数据安全性的效果。其中,作为区块链节点的密钥的第一密钥仅能在区块链管理客户端的可信计算环境和区块链节点的可信计算环境中被使用。本专利技术实施例还提供一种计算设备,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.获取待签名的数据;B.自BaaS平台获取第三密钥,所述第三密钥是在区块链管理客户端的可信计算环境中使用第二密钥对区块链节点的第一密钥加密处理得到的,所述第二密钥预存于与所述区块链节点相关联的受保护的内存中,且仅能被运行于可信计算环境的密钥管理程序读取,所述密钥管理程序获取自所述BaaS平台;C.使用所述第二密钥对所述第三密钥进行解密处理,以得到所述第一密钥,其中,所述区块链节点的计算环境包括可信计算环境,所述解密处理的操作是在所述区块链节点的可信计算环境中进行的;D.在所述区块链节点的可信计算环境中,使用所述第一密钥对所述待签名的数据进行签名。本专利技术实施例还提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述方法的步骤。附图说明图1是本专利技术实施例的一种用于区块链网络的密钥生成方法的流程图;图2是图1中步骤B的一个具体实施方式的流程图;图3是本专利技术实施例的一个典型的应用场景的示意图;图4是本专利技术实施例的另一个典型的应用场景的示意图;图5是本专利技术实施例的一种用于区块链网络的签名方法的流程图;图6是图5中步骤C的一个具体实施方式的流程图;图7是本专利技术实施例的又一个典型的应用场景的示意图。具体实施方式本申请专利技术人经过分析发现,现有的区块链系统中,缺乏对区块链节点的密钥的有效保护,严重影响区块链网络中数据的安全性。具体而言,现有区块链节点的密钥是明文存储在区块链节点的磁盘里的,在区块链节点服务启动时,从磁盘加载密钥到内存,然后每次交易时,使用密钥对交易进行签名。现有区块链节点的密钥是明文存储在区块链节点上的,对于密钥的保护主要依赖于操作系统的用户权限机制。但是,如果该区块链节点的根用户(root)的权限被盗取或泄漏,则不法分子可以轻易的获取到该区块链节点的密钥。一旦区块链节点的密钥被他人获取,也就意味着他人可以冒充正常的区块链节点执行交易,并使得错误的交易数据进入到区块链中。本专利技术实施例的第一方面提供一种用于区块链网络的密钥生成方法,包括:A.在区块链管理客户端本地生成区块链节点的第一密钥,所述区块链管理客户端的计算环境包括可信计算环境;B.在所述可信计算环境中,使用第二密钥对所述第一密钥进行加密处理,以生成第三密钥,其中,所述第二密钥预存于与所述区块链管理客户端相关联的受保护的内存中,且仅能被运行于可信计算环境的密钥管理程序读取;C.将所述第三密钥发送至与所述区块链管理客户端相关联的BaaS平台;D.将所述密钥管理程序发送至所述BaaS平台。本实施例所述方案将区块链节点的密钥封装在安全的密钥数据文件中,能够确保密钥本身的安全性,提高区块链节点的密钥的安全系数,降低密钥被盗风险。具本文档来自技高网...

【技术保护点】
1.一种用于区块链网络的密钥生成方法,其特征在于,包括:A.在区块链管理客户端本地生成区块链节点的第一密钥,所述区块链管理客户端的计算环境包括可信计算环境;B.在所述可信计算环境中,使用第二密钥对所述第一密钥进行加密处理,以生成第三密钥,其中,所述第二密钥预存于与所述区块链管理客户端相关联的受保护的内存中,且仅能被运行于可信计算环境的密钥管理程序读取;C.将所述第三密钥发送至与所述区块链管理客户端相关联的BaaS平台;D.将所述密钥管理程序发送至所述BaaS平台。

【技术特征摘要】
1.一种用于区块链网络的密钥生成方法,其特征在于,包括:A.在区块链管理客户端本地生成区块链节点的第一密钥,所述区块链管理客户端的计算环境包括可信计算环境;B.在所述可信计算环境中,使用第二密钥对所述第一密钥进行加密处理,以生成第三密钥,其中,所述第二密钥预存于与所述区块链管理客户端相关联的受保护的内存中,且仅能被运行于可信计算环境的密钥管理程序读取;C.将所述第三密钥发送至与所述区块链管理客户端相关联的BaaS平台;D.将所述密钥管理程序发送至所述BaaS平台。2.根据权利要求1所述的密钥生成方法,其特征在于,所述步骤D进一步包括:D1.使用所述区块链网络中的组织的密钥对所述密钥管理程序进行签名;D2.将签名后的所述密钥管理程序发送至所述BaaS平台。3.根据权利要求1所述的密钥生成方法,其特征在于,在所述步骤A之前,还包括:E.从所述BaaS平台接收请求信息,所述请求信息用于请求获取所述区块链节点的密钥。4.根据权利要求1所述的密钥生成方法,其特征在于,所述第二密钥与所述密钥管理程序以及所述区块链网络中的组织关联。5.根据权利要求4所述的密钥生成方法,其特征在于,所述步骤B进一步包括:B1.获取所述密钥管理程序的标识;B2.获取所述组织的证书;B3.根据所述密钥管理程序的标识以及所述组织的证书,从所述区块链管理客户端关联的受保护的内存中获取与所述密钥管理程序和组织关联的所述第二密钥;B4.使用获取的所述第二密钥对所述第一密钥进行加密处理,以生成所述第三密钥。6.一种计算设备,其特征在于,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.在区块链管理客户端本地生成区块链节点的第一密钥,所述区块链管理客户端的计算环境包括可信计算环境;B.在所述可信计算环境中,使用第二密钥对所述第一密钥进行加密处理,以生成第三密钥,其中,所述第二密钥预存于与所述区块链管理客户端相关联的受保护的内存中,且仅能被运行于可信计算环境的密钥管理程序读取;C.将所述第三密钥发送至与所述区块链管理客户端相关联的BaaS平台;D.将所述密钥管理程序发送至所述BaaS平台。7.根据权利要求6所述的计算设备,其特征在于,所述步骤D进一步包括:D1.使用所述区块链网络中的组织的密钥对所述密钥管理程序进行签名;D2.将签名后的所述密钥管理程序发送至所述BaaS平台。8.根据权利要求6所述的计算设备,其特征在于,在所述步骤A之前,所述计算设备还执行以下步骤:E.从所述BaaS平台接收请求信息,所述请求信息用于请求获取所述区块链节点的密钥。9.根据权利要求6所述的计算设备,其特征在于,所述第二密钥与所述密钥管理程序以及所述区块链网络中的组织关联。10.根据权利要求9所述的计算设备,其特征在于,所述步骤B进一步包括:B1.获取所述密钥管理程序的标识;B2.获取所述组织的证书;B3.根据所述密钥管理程序的标识以及所述组织的证书,从所述区块链管理客户端关联的受保护的内存中获取与所述密钥管理程序和组织关联的所述第二密钥;B4.使用获取的所述第二密钥对所述第一密钥进行加密处理,以生成所述第三密钥。11.一种用于区块链网络的签名方法,其特征在于,包括:A.获取待签名的数据;B.自BaaS平台获取第三密钥,所述第三密钥是在区块链管理客户端的可信计算环境中使用第二密钥对区块链节点的第一密钥加密处理得到的,所述第二密钥预存于与所述区块链节点相关联的受保护的内存中,且仅能被运行于可信计算环境的密钥管理程序读取,所述密钥管理程序获取自所述BaaS平台;C.使用所述第二密钥对所述第三密钥进行解密处理,以得到所述第一密钥,其中,所述区块链节点的计算环境包括可信计算环境,所述解密处理的操作是在所述区块链节点的可信计算环境中进行的;D.在所述区...

【专利技术属性】
技术研发人员:史锋锋
申请(专利权)人:上海点融信息科技有限责任公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1