区块链安全交易方法、装置、电子设备及存储介质
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链安全交易方法、装置、电子设备及存储介质。
背景技术
区块链技术因其具备的去中心化、信息不可篡改性等特点,越来越受到金融、保险等领域的公司的青睐,尤其是运用区块链技术实现多方参与的交易事件(例如,转账交易、支付交易等事件)越来越成为人们关注的焦点。
现有的区块链系统中,是通过数字钱包保存用户的密钥等信息,密钥信息是操作区块链账户的唯一凭证。若数字钱包作为文件保存在用户设备中,容易被黑客远程盗取,或由于用户设备的硬盘损坏而丢失,安全性差。
虽然,目前业界采用了一些解决信息泄露的区块链交易方案,然而现有的解决方案要么是信息泄露解决的不够彻底,要么系统运行开销巨大。
因此,如何在既能有效提高交易信息的安全,又能不增加系统开销的情况下,将区块链技术有效运用在交易场景下,已经成为一种亟待解决的技术问题。
发明内容
本发明的主要目的在于提供一种区块链安全交易方法、装置、电子设备及存储介质,旨在解决将区块链技术运用在交易场景下交易信息的安全的技术问题,以便在有效提高交易信息的安全的同时又不增加区块链系统开销。
为实现上述目的,本发明的第一方面提供一种区块链安全交易方法,应用于客户端中,所述客户端中插接有外接设备,所述外接设备中存储有密钥,所述方法包括:
接收交易请求;
根据所述交易请求生成交易信息;
发送携带有所述交易信息的签名请求至所述外接设备;
利用所述外接设备中的所述密钥对所述签名请求进行数字签名,得到签名信息;
发送携带有所述交易信息和所述签名信息的目标交易请求至区块链系统。
在一个可选的实施例中,所述根据所述交易请求生成交易信息包括:
按照预设格式对所述交易请求进行编码;
将编码后得到的字符串作为交易信息。
在一个可选的实施例中,在所述利用所述外接设备中的所述密钥对所述签名请求进行数字签名,得到签名信息之前,所述方法还包括:
发送访问密码至所述外接设备中,以使所述外接设备验证所述访问密码的有效性,并在验证所述访问密码有效后执行所述利用所述外接设备中的所述密钥对所述签名请求进行数字签名,得到签名信息。
在一个可选的实施例中,在所述发送携带有所述交易信息的签名请求至所述外接设备之后,所述方法还包括:
当接收到对所述外接设备上显示的交易信息的第一确认信号时,确认所述外接设备上显示的交易信息正确,发送与所述第一确认信号对应的第一反馈信号至所述外接设备;
当接收到对所述外接设备上显示的交易信息的第二确认信号时,确认所述外接设备上显示的交易信息错误,发送与所述第二确认信号对应的第二反馈信号至所述外接设备。
在一个可选的实施例中,在所述发送携带有所述交易信息和所述签名信息的目标交易请求至区块链系统之后,所述方法还包括:
接收所述区块链系统对所述目标交易请求的验证结果;
显示所述验证结果。
在一个可选的实施例中,所述外接设备为USB Key,所述密钥为用户私钥。
为实现上述目的,本发明的第二方面提供一种区块链安全交易方法,应用于外接设备中,所述外接设备插接在客户端中,所述外接设备中存储有密钥,所述方法包括:
接收所述客户端发送的携带有交易信息的签名请求;
利用所述密钥对所述签名请求进行数字签名,得到签名信息;
发送所述签名信息至所述客户端。
在一个可选的实施例中,在所述接收所述客户端发送的携带有交易信息的签名请求的同时,所述方法还包括:
接收所述客户端发送的访问密码;
对所述访问密码进行有效性验证;
当验证所述访问密码有效时,利用所述密钥对所述签名请求进行数字签名,得到签名信息。
在一个可选的实施例中,当验证所述访问密码无效后,所述方法还包括:
计算验证所述访问密码无效的次数;
判断所述次数是否小于所述次数阈值;
当所述次数小于所述次数阈值时,再次接收所述客户端发送的访问密码;
当所述次数大于或等于所述次数阈值时,锁定所述外接设备。
在一个可选的实施例中,在所述接收所述客户端发送的携带有交易信息的签名请求之后,所述方法还包括:
显示所述外接设备接收到的交易信息;
当接收到所述客户端发送的第一反馈信号时,确认所显示的交易信息正确,利用所述密钥对所述签名请求进行数字签名,得到签名信息;
当接收到所述客户端发送的第二反馈信号时,确认所显示的交易信息错误,再次接收所述客户端发送的携带有交易信息的签名请求。
为实现上述目的,本发明的第三方面提供一种区块链安全交易装置,运行于客户端中,所述客户端中插入有外接设备,所述外接设备中存储有密钥,所述装置包括:
用户交互模块,用于接收交易请求;
数据管理模块,用于根据所述交易请求生成交易信息;
外接设备通信模块,用于发送携带有所述交易信息的签名请求至所述外接设备;
所述外接设备通信模块,还用于利用所述外接设备中的所述密钥对所述签名请求进行数字签名,得到签名信息;
区块链通信模块,用于发送携带有所述交易信息和所述签名信息的目标交易请求至区块链系统。
为实现上述目的,本发明的第四方面提供一种区块链安全交易装置,运行于外接设备中,所述外接设备插接在客户端中,所述外接设备中存储有密钥,所述装置包括:
访问控制模块,用于接收所述客户端发送的携带有交易信息的签名请求;
密码学算法模块,用于利用所述密钥对所述签名请求进行数字签名,得到签名信息;
所述访问控制模块,还用于发送所述签名信息至所述客户端。
为实现上述目的,本发明的第五方面提供一种电子设备,所述电子设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的区块链安全交易的下载程序,所述区块链安全交易的下载程序被所述处理器执行时实现所述的区块链安全交易方法。
为实现上述目的,本发明的第六方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有区块链安全交易的下载程序,所述区块链安全交易的下载程序可被一个或者多个处理器执行,以实现所述的区块链安全交易方法。
本发明所述的区块链安全交易方法、装置、电子设备及存储介质,将区块链数字钱包生成的密钥存储在外接设备中,在发起区块链交易请求时,在客户端中插接所述外接设备,通过外接设备利用所述密钥对携带有交易信息的签名请求进行数字签名并返回签名信息至所述客户端,再由客户端发送携带有所述交易信息和所述签名信息的目标交易请求至区块链系统。由于外接设备不可被读取、无法复制或导出,因而可有效的防止密钥被他人复制窃取,也不受硬盘等硬件故障而丢失,保证了密钥的安全性,从而有利于区块链技术在交易场景下的运用及保证了交易信息的安全;此外,由于外接设备制造成本低,将外接设备插接在客户端中,不会增加整个区块链系统的开销,进一步有利于区块链技术在交易场景下的运用。
附图说明
图1为本发明第一实施例的区块链安全交易方法的流程示意图;
图2为本发明第二实施例的区块链安全交易方法的流程示意图;
图3为本发明第三实施例的区块链安全交易装置的功能模块图;
图4为本发明第四实施例的区块链安全交易装置的功能模块图;
图5为本发明第五实施例的电子设备的结构示意图;
图6为本发明实施例提供的电子设备的另一结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或电子设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或电子设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
如图1所示,为本发明实施例揭露的区块链安全交易方法的流程图。
所述区块链安全交易方法应用于客户端中,具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S11,接收交易请求。
其中,所述交易请求可以是用户通过客户端发起的,也可以是客户端接收其他电子设备发送的。
所述交易请求可以是转账请求、合约调用请求等。
本实施例中,所述客户端中插接有外接设备。
所述客户端上预先安装有区块链数字钱包。所述区块链数字钱包是一款软件程序,能生成和保存区块链的密钥和数字钱包地址,能将客户端接入区块链网络中,能发送和接收区块链交易,并能用密钥对用户发送的区块链交易消息进行数字签名等。
所述区块链交易是对账本的一次记录添加操作,例如一次转账交易对应添加一条转账记录。用户对区块链的账本数据只有记录添加和查询两个操作,不能执行删除和修改操作,而所有的记录添加操作都是以交易的形式提交给区块链系统。数字钱包地址:由数字和字母组成的字符串,作用相当于银行卡卡号。在区块链交易中,发送方和收款方通常以数字钱包地址来区分。
当客户端中安装了区块链数字钱包时,即相当于创建了一个新的数字钱包地址,会生成一个私钥和公钥组成的密钥对,数字钱包地址代表一个唯一的公钥广播给区块链系统中的所有节点,私钥则保存在外接设备中。如果使用私钥对区块链交易消息进行签名,区块链系统中的所有节点可以使用与所述私钥对应的公钥验证被所述私钥签名的交易消息的有效性。
S12,根据所述交易请求生成交易信息。
本实施例中,客户端接收交易请求后,安装在客户端中的区块链数字钱包根据交易请求生成交易消息。
在一个可选的实施例中,所述根据所述交易请求生成交易信息包括:
根据预设格式对所述交易请求进行编码;
将编码后得到的字符串作为交易信息。
按照预先设置的格式对所述交易请求编码过后生成一串字符串,表示为M。M即为交易信息。
S13,发送携带有所述交易信息的签名请求至外接设备。
本实施例中,客户端生成交易信息后,需要将交易信息发送给外接设备进行数字签名。
外接设备可以是一种USB接口或者其他接口的硬件电子设备,例如,USB Key,内置单片机或智能卡芯片,有一定的存储空间。可以通过配套的管理软件存储用户的私钥以及数字证书,进行数字签名或者签名验证,利用内置的公钥算法实现对用户身份的认证。
本实施例中,所述外接设备中预先存储有密钥。所述密钥是由安装在客户端中的区块链数字钱包生成的私钥,用于对客户端发送的交易信息进行数字签名。
在一个可选的实施例中,在所述利用所述外接设备中的所述密钥对所述签名请求进行数字签名,得到签名信息之前,所述方法还包括:
发送访问密码至所述外接设备中,以使所述外接设备验证所述访问密码的有效性,并在验证所述访问密码有效后执行所述利用所述外接设备中的所述密钥对所述签名请求进行数字签名,得到签名信息。
本实施例中,所述外接设备中还预先存储有访问密码,用于对客户端的身份进行验证,确保客户端的合法性。
客户端可以先发送访问密码给外接设备,再发送携带有所述交易信息的签名请求给外接设备;客户端还可以将携带有所述交易信息的签名请求和访问密码一起发送给外接设备。
所述访问密码可以是客户端接收用户输入的,也可以是客户端接收其他电子设备发送的,还可以是预先存储在客户端中的。在一个可选的实施例中,为了确保访问密码不会被篡改或者被窃取,在将访问密码发送给外接设备之前,可以先对访问密码进行加密,加密后的访问密码的安全性更高。
S14,利用所述外接设备中的密钥对所述签名请求进行数字签名,得到签名信息。
其中,所述签名信息是所述外接设备使用所述密钥对所述签名请求进行数字签名生成的。
所述外接设备在生成签名信息后将所述签名信息返回给所述客户端。
S15,发送携带有所述交易信息和所述签名信息的目标交易请求至区块链系统。
本实施例中,客户端接收到外接设备返回的签名信息之后,将携带有所述交易信息和所述签名信息的目标交易请求发送至区块链系统。
进一步的,在所述发送携带有所述交易信息的签名请求至所述外接设备之后,所述方法还包括:
当接收到对所述外接设备上显示的交易信息的第一确认信号时,确认所述外接设备上显示的交易信息正确,发送与所述第一确认信号对应的第一反馈信号至所述外接设备;
当接收到对所述外接设备上显示的交易信息的第二确认信号时,确认所述外接设备上显示的交易信息错误,发送与所述第二确认信号对应的第二反馈信号至所述外接设备。
由于客户端与外接设备在交互过程中,也有可能存在漏洞。例如,客户端的一笔交易信息在送入外接设备前,可能会被黑客拦截篡改为另外一笔交易信息,这样外接设备在客户端不知情的情况下对篡改后的交易信息认证通过。
因而,可以在外接设备接收到交易信息时显示所接收到的交易信息。由客户端用户确认所述外接设备上显示的交易信息是否为客户端发送的交易信息。
当客户端用户确认所述外接设备上显示的交易信息为客户端发送的交易信息,则发送第一确认信号至客户端;当客户端用户确认所述外接设备上显示的交易信息不为客户端发送的交易信息,则发送第二确认信号至客户端。
客户端根据所接收到的确认信号,再次发送与所接收到的确认信号对应的反馈信号至外接设备,以通知外接设备是否利用所述密钥对所述签名请求进行数字签名。
更进一步的,在所述发送携带有所述交易信息和所述签名信息的目标交易请求至区块链系统之后,所述方法还包括:
接收所述区块链系统对所述目标交易请求的验证结果;
显示所述验证结果。
所述区块链系统包括接入层、记账节点等区块链功能节点,接入层接收客户端发送过来的携带有交易消息和签名信息的目标交易请求,然后广播给其它记账节点,记账节点在共识过程中验证签名信息的合法性,若验证通过则执行与交易消息对应的交易操作,同时发送包括验证通过和执行结果的验证结果至客户端。若验证不通过则不执行任何交易操作,同时发送包括验证不通过的验证结果至客户端。
客户端接收所述区块链系统发送的所述验证结果并显示所述验证结果。所述验证结果可以是在客户端的显示屏幕上进行显示,也可以是客户端发送给其他电子设备进行显示。
综上所示,本发明所述的区块链安全交易方法,将区块链数字钱包生成的密钥存储在外接设备中,在发起区块链交易请求时,在客户端中插接所述外接设备,通过外接设备利用所述密钥对携带有交易信息的签名请求进行数字签名并返回签名信息至所述客户端,再由客户端发送携带有所述交易信息和所述签名信息的目标交易请求至区块链系统。由于外接设备不可被读取、无法复制或导出,因而可有效的防止密钥被他人复制窃取,也不受硬盘等硬件故障而丢失,保证了密钥的安全性,从而有利于区块链技术在交易场景下的运用及保证了交易信息的安全。此外,由于外接设备制造成本低,将外接设备插接在客户端中,不会增加整个区块链系统的开销,进一步有利于区块链技术在交易场景下的运用。
实施例二
如图2所示,为本发明实施例揭露的区块链安全交易方法的另一流程图。
所述区块链安全交易方法应用于外接设备中,具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S21,接收客户端发送的携带有交易信息的签名请求。
本实施例中,外接设备插接在客户端中。所述外接设备接收所述客户端发送的签名请求,其中所述签名请求中携带有交易信息。
S22,利用密钥对所述签名请求进行数字签名,得到签名信息。
所述外接设备对所述签名请求进行数字签名是通过预先存储的密钥进行的。所述密钥是由安装在客户端中的区块链数字钱包生成的。
所述数字签名是非对称密钥加密技术与数字摘要技术的应用,只有信息的发送者才能产生别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。
所述外接设备中还预先存储有密码学算法,能对所述签名请求进行数字签名,生成签名字符串,作为签名信息。
所述关于数字签名为现有技术,本发明在此不再阐述。
S23,发送所述签名信息至所述客户端。
外接设备将使用所述密钥对所述签名请求进行数字签名生成的签名信息返回给所述客户端。
在一个可选的实施例中,在所述接收所述客户端发送的携带有交易信息的签名请求的同时,所述方法还包括:
接收所述客户端发送的访问密码;
对所述访问密码进行有效性验证;
当验证所述访问密码有效时,利用所述密钥对所述签名请求进行数字签名,得到签名信息。
本实施例中,所述外接设备中预先存储有访问密码。
所述外接设备在接收到访问密码后,先根据预先存储的访问密码验证所接收到访问密码是否有效。若预先存储的访问密码与所接收到访问密码相同,则确定所接收到访问密码有效;若预先存储的访问密码与所接收到访问密码不相同,则确定所接收到访问密码无效。
在一个可选的实施例中,由于客户端为了确保访问密码不会被篡改或者被窃取,发送给外接设备的访问密码是经过加密的。则外接设备在接收到加密后的访问密码时,可以对加密后的访问密码进行解密,再验证解密后的访问密码是否有效。
本实施例中,所述外接设备只有在验证访问密码有效时,才会利用所述密钥对所述签名请求进行数字签名,得到签名信息。
在一个可选的实施例中,当验证所述访问密码无效后,所述方法还包括:
计算验证所述访问密码无效的次数;
判断所述次数是否小于所述次数阈值;
当所述次数小于所述次数阈值时,再次接收所述客户端发送的访问密码;
当所述次数大于或等于所述次数阈值时,锁定所述外接设备。
本实施例中,为了避免访问密码遭受穷举攻击,所述外接设备还设置有锁定功能。即当所述外接设备验证访问密码无效且无效次数达到上限(所述次数阈值),所述外接设备会被锁定。被锁定后的外接设备不再响应访问密码的输入,也无法使用数字签名等功能。
进一步的,在所述接收所述客户端发送的携带有交易信息的签名请求之后,所述方法还包括:
显示所述外接设备接收到的交易信息;
当接收到所述客户端发送的第一反馈信号时,确认所显示的交易信息正确,利用所述密钥对所述签名请求进行数字签名,得到签名信息;
当接收到所述客户端发送的第二反馈信号时,确认所显示的交易信息错误,再次接收所述客户端发送的携带有交易信息的签名请求。
本实施例中,所述外接设备在接收到交易信息时会显示所接收的交易信息,便于用户查看所显示的交易信息是否为客户端发送的交易信息,避免客户端发送的交易信息在送入外接设备前,被黑客拦截篡改为另外一笔交易信息。
当客户端接收到用户的确认信号时,将与所述确认信号对应的反馈信号发送至外接设备,以便通知外接设备是否使用所述密钥对所述签名请求进行数字签名。
所述外接设备若是接收到与所述第一确认信号对应的第一反馈信号时,表明客户确认外接设备所显示的交易信息正确,则外接设备利用所述密钥对所述签名请求进行数字签名,得到签名信息,并将签名信息返回给客户端;外接设备若是接收到与所述第二确认信号对应的第二反馈信号时,表明客户确认外接设备所显示的交易信息错误,则外接设备不利用所述密钥对所述签名请求进行数字签名,或者再次接收所述客户端发送的携带有交易信息的签名请求等。
综上所示,本发明所述的区块链安全交易方法,将区块链数字钱包生成的密钥存储在外接设备中,在发起区块链交易请求时,在客户端中插接所述外接设备,通过外接设备利用所述密钥对携带有交易信息的签名请求进行数字签名并返回签名信息至所述客户端,再由客户端发送携带有所述交易信息和所述签名信息的目标交易请求至区块链系统。由于外接设备不可被读取、无法复制或导出,因而可有效的防止密钥被他人复制窃取,也不受硬盘等硬件故障而丢失,保证了密钥的安全性,从而有利于区块链技术在交易场景下的运用及保证了交易信息的安全。此外,由于外接设备制造成本低,将外接设备插接在客户端中,不会增加整个区块链系统的开销,进一步有利于区块链技术在交易场景下的运用。
上述图1-2详细介绍了本发明的区块链安全交易方法,下面结合第3~6图,分别对实现所述区块链安全交易方法的软件系统的功能模块以及硬件装置架构进行介绍。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
实施例三
参阅图3所示,为本发明实施例揭露的区块链安全交易装置的功能模块示意图。
在一些实施例中,所述区块链安全交易装置30运行于客户端中。所述区块链安全交易装置30可以包括多个由程序代码段所组成的功能模块。所述区块链安全交易装置30中的各个程序段的程序代码可以存储于客户端的存储器中,并由至少一个处理器所执行,以执行(详见图1描述)区块链安全交易方法。
本实施例中,所述区块链安全交易装置30根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:用户交互模块301、数据管理模块302、外接设备通信模块303及区块链通信模块304。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
用户交互模块301,用于接收交易请求。
其中,所述交易请求可以是用户通过客户端发起的,也可以是客户端接收其他电子设备发送的。
所述交易请求可以是转账请求、合约调用请求等。
本实施例中,所述客户端中插接有外接设备。
所述客户端上预先安装有区块链数字钱包。所述区块链数字钱包是一款软件程序,能生成和保存区块链的密钥和数字钱包地址,能将客户端接入区块链网络中,能发送和接收区块链交易,并能用密钥对用户发送的区块链交易消息进行数字签名等。
所述区块链交易是对账本的一次记录添加操作,例如一次转账交易对应添加一条转账记录。用户对区块链的账本数据只有记录添加和查询两个操作,不能执行删除和修改操作,而所有的记录添加操作都是以交易的形式提交给区块链系统。数字钱包地址:由数字和字母组成的字符串,作用相当于银行卡卡号。在区块链交易中,发送方和收款方通常以数字钱包地址来区分。
当客户端中安装了区块链数字钱包时,即相当于创建了一个新的数字钱包地址,会生成一个私钥和公钥组成的密钥对,数字钱包地址代表一个唯一的公钥广播给区块链系统中的所有节点,私钥则保存在外接设备中。如果使用私钥对区块链交易消息进行签名,区块链系统中的所有节点可以使用与所述私钥对应的公钥验证被所述私钥签名的交易消息的有效性。
数据管理模块302,用于根据所述交易请求生成交易信息。
本实施例中,客户端接收交易请求后,安装在客户端中的区块链数字钱包根据交易请求生成交易消息。
在一个可选的实施例中,所述数据管理模块302根据所述交易请求生成交易信息包括:
根据预设格式对所述交易请求进行编码;
将编码后得到的字符串作为交易信息。
按照预先设置的格式对所述交易请求编码过后生成一串字符串,表示为M。M即为交易信息。
外接设备通信模块303,用于发送携带有所述交易信息的签名请求至所述外接设备。
本实施例中,客户端生成交易信息后,需要将交易信息发送给外接设备进行数字签名。
外接设备可以是一种USB接口或者其他接口的硬件电子设备,例如,USB Key,内置单片机或智能卡芯片,有一定的存储空间。可以通过配套的管理软件存储用户的私钥以及数字证书,进行数字签名或者签名验证,利用内置的公钥算法实现对用户身份的认证。
本实施例中,所述外接设备中预先存储有密钥。所述密钥是由安装在客户端中的区块链数字钱包生成的私钥,用于对客户端发送的交易信息进行数字签名。
在一个可选的实施例中,在所述外接设备通信模块303利用所述外接设备中的所述密钥对所述签名请求进行数字签名,得到签名信息之前,所述外接设备通信模块303还用于:
发送访问密码至所述外接设备中,以使所述外接设备验证所述访问密码的有效性,并在验证所述访问密码有效后执行所述利用所述外接设备中的所述密钥对所述签名请求进行数字签名,得到签名信息。
本实施例中,所述外接设备中还预先存储有访问密码,用于对客户端的身份进行验证,确保客户端的合法性。
客户端可以先发送访问密码给外接设备,再发送携带有所述交易信息的签名请求给外接设备;客户端还可以将携带有所述交易信息的签名请求和访问密码一起发送给外接设备。
所述访问密码可以是客户端接收用户输入的,也可以是客户端接收其他电子设备发送的,还可以是预先存储在客户端中的。
在一个可选的实施例中,为了确保访问密码不会被篡改或者被窃取,在将访问密码发送给外接设备之前,可以先对访问密码进行加密,加密后的访问密码的安全性更高。
所述外接设备通信模块303,还用于利用所述外接设备中的所述密钥对所述签名请求进行数字签名,得到签名信息。
其中,所述签名信息是所述外接设备使用所述密钥对所述签名请求进行数字签名生成的。
所述外接设备在生成签名信息后将所述签名信息返回给所述客户端。
区块链通信模块304,用于发送携带有所述交易信息和所述签名信息的目标交易请求至区块链系统。
本实施例中,客户端接收到外接设备返回的签名信息之后,将携带有所述交易信息和所述签名信息的目标交易请求发送至区块链系统。
进一步的,在所述发送携带有所述交易信息的签名请求至所述外接设备之后,所述用户交互模块301,还用于:
当接收到对所述外接设备上显示的交易信息的第一确认信号时,确认所述外接设备上显示的交易信息正确,发送与所述第一确认信号对应的第一反馈信号至所述外接设备;
当接收到对所述外接设备上显示的交易信息的第二确认信号时,确认所述外接设备上显示的交易信息错误,发送与所述第二确认信号对应的第二反馈信号至所述外接设备。
由于客户端与外接设备在交互过程中,也有可能存在漏洞。例如,客户端的一笔交易信息在送入外接设备前,可能会被黑客拦截篡改为另外一笔交易信息,这样外接设备在客户端不知情的情况下对篡改后的交易信息认证通过。
因而,可以在外接设备接收到交易信息时显示所接收到的交易信息。由客户端用户确认所述外接设备上显示的交易信息是否为客户端发送的交易信息。
当客户端用户确认所述外接设备上显示的交易信息为客户端发送的交易信息,则发送第一确认信号至客户端;当客户端用户确认所述外接设备上显示的交易信息不为客户端发送的交易信息,则发送第二确认信号至客户端。
客户端根据所接收到的确认信号,再次发送与所接收到的确认信号对应的反馈信号至外接设备,以通知外接设备是否利用所述密钥对所述签名请求进行数字签名。
更进一步的,在所述发送携带有所述交易信息和所述签名信息的目标交易请求至区块链系统之后,所述区块链通信模块304,还用于接收所述区块链系统对所述目标交易请求的验证结果。
所述用户交互模块301,还用于显示所述验证结果。
所述区块链系统包括接入层、记账节点等区块链功能节点,接入层接收客户端发送过来的携带有交易消息和签名信息的目标交易请求,然后广播给其它记账节点,记账节点在共识过程中验证签名信息的合法性,若验证通过则执行与交易消息对应的交易操作,同时发送包括验证通过和执行结果的验证结果至客户端。若验证不通过则不执行任何交易操作,同时发送包括验证不通过的验证结果至客户端。
客户端接收所述区块链系统发送的所述验证结果并显示所述验证结果。所述验证结果可以是在客户端的显示屏幕上进行显示,也可以是客户端发送给其他电子设备进行显示。
综上所示,本发明所述的区块链安全交易装置,将区块链数字钱包生成的密钥存储在外接设备中,在发起区块链交易请求时,在客户端中插接所述外接设备,通过外接设备利用所述密钥对携带有交易信息的签名请求进行数字签名并返回签名信息至所述客户端,再由客户端发送携带有所述交易信息和所述签名信息的目标交易请求至区块链系统。由于外接设备不可被读取、无法复制或导出,因而可有效的防止密钥被他人复制窃取,也不受硬盘等硬件故障而丢失,保证了密钥的安全性,从而有利于区块链技术在交易场景下的运用及保证了交易信息的安全。此外,由于外接设备制造成本低,将外接设备插接在客户端中,不会增加整个区块链系统的开销,进一步有利于区块链技术在交易场景下的运用。
实施例四
参阅图4所示,为本发明实施例揭露的区块链安全交易装置的另一功能模块示意图。
在一些实施例中,所述区块链安全交易装置40运行于外接设备中。所述区块链安全交易装置40可以包括多个由程序代码段所组成的功能模块。所述区块链安全交易装置40中的各个程序段的程序代码可以存储于外接设备的存储器中,并由至少一个处理器所执行,以执行(详见图2描述)区块链安全交易方法。
本实施例中,所述区块链安全交易装置40根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:访问控制模块401、密码学算法模块402、锁定模块403及显示模块404。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
访问控制模块401,用于接收客户端发送的携带有交易信息的签名请求。
本实施例中,外接设备插接在客户端中。所述外接设备接收所述客户端发送的签名请求,其中所述签名请求中携带有交易信息。
密码学算法模块402,用于利用密钥对所述签名请求进行数字签名,得到签名信息。
所述外接设备对所述签名请求进行数字签名是通过预先存储的密钥进行的。所述密钥是由安装在客户端中的区块链数字钱包生成的。
所述数字签名是非对称密钥加密技术与数字摘要技术的应用,只有信息的发送者才能产生别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。
所述外接设备中还预先存储有密码学算法,能对所述签名请求进行数字签名,生成签名字符串,作为签名信息。
所述关于数字签名为现有技术,本发明在此不再阐述。
所述访问控制模块401,还用于发送所述签名信息至所述客户端。
外接设备将使用所述密钥对所述签名请求进行数字签名生成的签名信息返回给所述客户端。
在一个可选的实施例中,在所述接收所述客户端发送的携带有交易信息的签名请求的同时,所述访问控制模块401还用于接收所述客户端发送的访问密码;所述密码学算法模块402还用于对所述访问密码进行有效性验证;当验证所述访问密码有效时,利用所述密钥对所述签名请求进行数字签名,得到签名信息。
本实施例中,所述外接设备中预先存储有访问密码。
所述外接设备在接收到访问密码后,先根据预先存储的访问密码验证所接收到访问密码是否有效。若预先存储的访问密码与所接收到访问密码相同,则确定所接收到访问密码有效;若预先存储的访问密码与所接收到访问密码不相同,则确定所接收到访问密码无效。
在一个可选的实施例中,由于客户端为了确保访问密码不会被篡改或者被窃取,发送给外接设备的访问密码是经过加密的。则外接设备在接收到加密后的访问密码时,可以对加密后的访问密码进行解密,再验证解密后的访问密码是否有效。
本实施例中,所述外接设备只有在验证访问密码有效时,才会利用所述密钥对所述签名请求进行数字签名,得到签名信息。
在一个可选的实施例中,当验证所述访问密码无效后,所述密码学算法模块402,还用于:
计算验证所述访问密码无效的次数;判断所述次数是否小于所述次数阈值;
当所述次数小于所述次数阈值时,再次接收所述客户端发送的访问密码。
锁定模块403,用于当所述次数大于或等于所述次数阈值时,锁定所述外接设备。
本实施例中,为了避免访问密码遭受穷举攻击,所述外接设备还设置有锁定功能。即当所述外接设备验证访问密码无效且无效次数达到上限(所述次数阈值),所述外接设备会被锁定。被锁定后的外接设备不再响应访问密码的输入,也无法使用数字签名等功能。
进一步的,在所述接收所述客户端发送的携带有交易信息的签名请求之后,所述装置还包括:
显示模块404,用于显示所述外接设备接收到的交易信息。
所述访问控制模块401,还用于当接收到所述客户端发送的第一反馈信号时,确认所显示的交易信息正确,利用所述密钥对所述签名请求进行数字签名,得到签名信息;当接收到所述客户端发送的第二反馈信号时,确认所显示的交易信息错误,再次接收所述客户端发送的携带有交易信息的签名请求。
本实施例中,所述外接设备在接收到交易信息时会显示所接收的交易信息,便于用户查看所显示的交易信息是否为客户端发送的交易信息,避免客户端发送的交易信息在送入外接设备前,被黑客拦截篡改为另外一笔交易信息。
当客户端接收到用户的确认信号时,将与所述确认信号对应的反馈信号发送至外接设备,以便通知外接设备是否使用所述密钥对所述签名请求进行数字签名。
所述外接设备若是接收到与所述第一确认信号对应的第一反馈信号时,表明客户确认外接设备所显示的交易信息正确,则外接设备利用所述密钥对所述签名请求进行数字签名,得到签名信息,并将签名信息返回给客户端;外接设备若是接收到与所述第二确认信号对应的第二反馈信号时,表明客户确认外接设备所显示的交易信息错误,则外接设备不利用所述密钥对所述签名请求进行数字签名,或者再次接收所述客户端发送的携带有交易信息的签名请求等。
综上所示,本发明所述的区块链安全交易装置,将区块链数字钱包生成的密钥存储在外接设备中,在发起区块链交易请求时,在客户端中插接所述外接设备,通过外接设备利用所述密钥对携带有交易信息的签名请求进行数字签名并返回签名信息至所述客户端,再由客户端发送携带有所述交易信息和所述签名信息的目标交易请求至区块链系统。由于外接设备不可被读取、无法复制或导出,因而可有效的防止密钥被他人复制窃取,也不受硬盘等硬件故障而丢失,保证了密钥的安全性,从而有利于区块链技术在交易场景下的运用及保证了交易信息的安全。此外,由于外接设备制造成本低,将外接设备插接在客户端中,不会增加整个区块链系统的开销,进一步有利于区块链技术在交易场景下的运用。
实施例五
图5为本发明实施例揭露的电子设备的内部结构示意图。
在本实施例中,电子设备5可以是客户端,也可以是外接设备。还可以是包括安装有区块链数字钱包和外接设备的设备,例如,图6所示的电子设备。
所述电子设备5可以包括存储器51、处理器52和总线53。
其中,存储器51至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器51在一些实施例中可以是所述电子设备5的内部存储单元,例如所述电子设备5的硬盘。存储器51在另一些实施例中也可以是所述电子设备5的外部存储电子设备,例如所述电子设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器51还可以既包括所述电子设备5的内部存储单元也包括外部存储电子设备。存储器51不仅可以用于存储安装于所述电子设备5的应用软件及各类数据,例如区块链安全交易装置30或区块链安全交易装置40的代码等及各个模块,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器52在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器51中存储的程序代码或处理数据。
该总线53可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,所述电子设备5还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备5与其他电子设备之间建立通信连接。
可选地,该电子设备5还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在所述电子设备5中处理的消息以及用于显示可视化的用户界面。
图5仅示出了具有组件51-53的所述电子设备5,本领域技术人员可以理解的是,图5示出的结构并不构成对所述电子设备5的限定,既可以是总线型结构,也可以是星形结构,所述电子设备5还可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。