CN111275419B - 一种区块链钱包签名确权方法、装置及系统 - Google Patents
一种区块链钱包签名确权方法、装置及系统 Download PDFInfo
- Publication number
- CN111275419B CN111275419B CN202010057151.6A CN202010057151A CN111275419B CN 111275419 B CN111275419 B CN 111275419B CN 202010057151 A CN202010057151 A CN 202010057151A CN 111275419 B CN111275419 B CN 111275419B
- Authority
- CN
- China
- Prior art keywords
- verification code
- key
- public
- signature value
- private key
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Economics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种区块链钱包签名确权方法、装置及系统,该区块链钱包签名确权方法,包括:客户端在钱包生成时先获取第一公私钥对和第二公私钥对,并使用第一私钥对第二公钥签名得到密钥签名值,保存密钥签名值、第二公私钥对和第一公钥;客户端要求钱包确权时,获取服务端发送的验证码,使用第二私钥对至少包括验证码在内的数据进行签名得到验证码签名值,把包含验证码签名值、密钥签名值、第一公钥和第二公钥在内的数据上传至服务端以供服务端用第一公钥验证密钥签名值来确保第二公钥的有效性,用第二公钥验证验证码签名值来确保验证码的准确性和有效性,用验证码来认证钱包认证的通信过程的安全可信性。本发明安全性高,流程简单。
Description
技术领域
本发明涉及虚拟资产保护和身份确权的安全领域,尤其涉及区块链钱包确权的方法及相关系统。
背景技术
目前,通过向消费者提供账号账号防盗密钥给虚拟资产提供账户安全保护是现有的较为常见安全保护方案。虽然有多种安全保护措施,但是依然存在大量的问题,且无法杜绝盗号的发生。现有的安全保护方案具体分析如下:
1:短信密保,短信密保通过手机向用户发送短信验证码进行身份验证。该方案太简单存在安全隐患。
2:动态令牌,动态令牌基于时间同步生成动态口令保护账号安全,但由于动态令牌的时间漂移问题,通常在一段时间内产生的动态口令全部有效,这使得木马有机会通过镜像等方式实时获取账号的动态口令,由此产生安全问题。
3:个人密钥数字证书。比如,在某专利中公开了一种基于智能密钥与数字证书的虚拟资产离线式保护方法,即通过智能密钥认证个人身份,结合数字证书使用智能密钥作为硬件介质为每个用户签发证书并绑定账号,用户使用智能密钥进行身份认证登录平台,服务器使用服务器端私钥对虚拟资产数据进行签名并打包下发到用户客户端,用户客户端验证虚拟资产及其签名信息后,再使用用户智能密钥对该信息签名,最终将附有服务器端签名及用户签名的虚拟资产信息保存到智能密钥的存储区,同时删除服务器端的用户虚拟资产,但是该方案需要每款平台向其用户发放个人密钥数字证书,导致个人用户需要大量的数字证书硬件,成本高,通用性不足;而且,个人密钥数字证书基本上是U盾形式出现,难以在手机等移动端领域开展。
现有的一些虚拟资产的保护方法的技术使用场景比较单一,不适合在区块链的场景下使用。区块链技术是一种去中心化的分布式互联网数据库,是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。在区块链中,为了保证数据在整个系统中不可篡改,以及保证交易双方的身份真实可靠等原因,需要对交易数据进行签名认证。目前,绝大部分区块链都会采用公开密钥加密算法来生产公钥和私钥,使用公钥对交易做加密处理得到交易密文,在进行交易时,再使用私钥对交易密文进行解密对交易进行签名验证。现有的区块链只支持一种公开密钥加密算法(大多数都采用了SECP256K1算法),而且加密算法一旦确定就无法更改,除非通过不兼容升级才可以更改,也就是说无法在不影响用户体验的前提下更改加密算法。
并且,数字货币在专用区块链上进行发行、流通、交易。数字货币钱包为各种数字货币的使用提供了便利,使用者可根据自己的喜好选择不同供应商服务,自己建立、保管、维护数字货币钱包。比如客户使用数字货币发起一笔支付业务,需登入数字货币钱包,只要输入收款账户、金额,简单操作即可完成。
数字货币钱包核心是用户对私钥的拥有权,通常采用冷存储方式将钱包离线保存,具体来说,使用者在离线的电脑或手机上生成相应数字货币地址和私钥,并将其妥善保存起来。但电脑、手机系统被病毒、木马等多种途径攻击的可能,以任何形式保存的私钥都存在安全风险。目前市场出现了基于硬件载体的数字货币钱包,通过将私钥存储于硬件的安全单元达到提高敏感数据(私钥)的安全性,交易时需连接硬件设备,并在安全单元内完成数据签名。这不仅增加了用户的使用门槛,而且交易时仍然存在安全风险。
也就是说,现有多种的确权方法上仍存在安全风险,需要进行改进。
发明内容
本发明的主要目的是克服现有缺陷,提供区块链钱包签名确权方法及对应的区块链钱包,包含该区块链钱包的系统,解决现有技术中确权过程存在安全风险,提升整个确权的安全性。
本发明提供的技术方案如下:一种区块链钱包签名确权方法,在客户端包括以下步骤:
在钱包生成时先获取第一公私钥对和第二公私钥对,并使用第一私钥对第二公钥签名得到密钥签名值,保存密钥签名值、第二公私钥对和第一公钥;
要求钱包确权时,获取服务端发送的验证码,使用第二私钥对至少包括验证码在内的数据进行签名得到验证码签名值,把包含验证码签名值、密钥签名值、第一公钥和第二公钥在内的数据上传至服务端,以供服务端用第一公钥验证密钥签名值来确保第二公钥的有效性,用第二公钥验证验证码签名值来确保验证码的有效性和准确性,用验证码来认证钱包认证的通信过程的安全可信性。
本发明提供的一种较佳方式:“使用第二私钥对至少包括验证码在内的数据进行签名得到验证码签名值”进一步包括:将包括服务端发送的验证码、钱包ID和时间戳在内的信息按预设规则设置成原始字符串;对原始字符串进行哈希运算得到哈希信息流;使用第二私钥对哈希信息流进行签名得到验证码签名值。
本发明提供的一种较佳方式:“在钱包生成时先获取第一公私钥对和第二公私钥对”进一步包括:对表明用户属性信息的用户数据通过两种不同的密钥衍生算法,生成所述第一公私钥对和第二公私钥对。较佳地,该步骤其进一步包括:将用户助记词通过PBKDF2密钥衍生函数,采用HMAC-SHA512并进行若干次循环,衍生出第一公私钥对;将第一公私钥对通过CKD算法生成第二公私钥对。
一种区块链钱包签名确权方法,在服务端包括以下步骤:
向对应客户端发送验证码;
根据获取自所述客户端的验证码签名值、密钥签名值、第一公钥和第二公钥,使用第一公钥验证所述密钥签名值,确保第二公钥的有效性,其中,密钥签名值由客户端使用第一私钥对第二公钥签名得到,客户端在钱包生成时获取第一公私钥对和第二公私钥对;
使用第二公钥验证验证码签名值来确保验证码的有效性和准确性,验证码签名值由客户端使用第二私钥对至少包括验证码在内的数据进行签名得到;
使用验证码来认证钱包认证的通信过程的安全可信性。
本发明提供的一种较佳方式“使用所述第二公钥验证所述验证码签名值来确保验证码的准确性和有效性”进一步包括:获取预先缓存的验证码,按预先设定的规则设置成字符串,并将该字符串进行哈希运算得到哈希信息流;用第二公钥验证验证码签名值,与本端计算所得的哈希信息流进行对比,验证其验证码的有效性。
一种用于区块链钱包签名确权的客户端装置,包括:
密钥签名生成模块,用于获取第一公私钥对和第二公私钥对,使用第一私钥对所述第二公钥签名得到密钥签名值;
存储模块,与密钥签名生成模块连接,用于存储密钥签名值、第二公私钥对和第一公钥;
确权请求模块,与存储模块连接,用于被要求确权时,获取服务端发送的验证码,使用第二私钥对至少包括验证码在内的数据进行签名得到验证码签名值;
传输模块,分别与存储模块和确权请求模块连接,用于把包含验证码签名值、密钥签名值、第一公钥和第二公钥在内的数据上传;
确权回复模块,用于供服务端用第一公钥验证密钥签名值来确保第二公钥的有效性,用第二公钥验证验证码签名值来确保验证码的有效性和准确性,用验证码来认证钱包认证的通信过程的安全可信性,接收并处理服务端返回的确权结果。
本发明提供的一种较佳方式,确权请求模块还可以进一步包括:
验证码获取子模块,用于获取服务端发送的验证码;
字符串设置子模块,连接验证码获取子模块,用于将包括所述验证码、钱包ID和时间戳在内的信息按预设规则设置成原始字符串;
信息流设置子模块,连接字符串设置子模块,用于对原始字符串进行哈希运算得到哈希信息流;
验证码签名值计算子模块,连接信息流设置子模块和存储模块,用于使用第二私钥对哈希信息流进行签名得到验证码签名值。
一种用于区块链钱包签名确权的服务端装置,包括:
交互模块,用于建立与对应客户端之间的通信;
确权处理模块,连接交互模块,用以用第一公钥验证密钥签名值来确保第二公钥的有效性,用第二公钥验证所述验证码签名值来确保验证码的有效性和准确性,用验证码来认证钱包认证的通信过程的安全可信性,并经由交互模块返回确权结果。
本发明提供的一种较佳方式,确权处理模块还可以包括:
验证码签名值再计算子模块:用于获取预先缓存的验证码,按预先设定的规则设置成字符串,并将该字符串进行哈希运算得到哈希信息流;
验证码验证子模块:用第二公钥验证所述验证码签名值,与验证码签名值再计算子模块计算所得的所述哈希信息流进行对比,验证其验证码的有效性。
本发明还可以提供一种区块链钱包签名确权系统,包括上述提到的至少一种客户端装置及上述提及的至少一服务端装置。
本发明还可以提供一种计算机可读存储介质,计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,按上述区块链钱包签名确权方法被执行。
通过本发明提供的钱包签名确权方案,能够带来以下至少一种有益效果:
首先,本发明通过验证码加多重公私钥对来完成确权,安全系数高。
接着,本发明的区块链上仅传输第一公钥和第二公钥来进行确权处理,不会在区块链上泄露私钥信息,提高安全性。
再次,本发明的第二公私钥对可以在第一公私钥对的基础上生成,第一公私钥对是将用户属性标记(用户助记词等)通过PBKDF2密钥衍生函数,采用HMAC-SHA512并进行若干次循环,衍生出来,安全系数高。
最后,本发明不仅可以进行钱包确权认证,也可以是多个钱包对应的同一用户进行身份认证,给出一种身份认证的途径。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对上述特性、技术特征、优点及其实现方式予以进一步说明。
图1为本发明一种区块链钱包签名确权方法的第一实施例具体流程图;
图2为本发明一种区块链钱包签名确权方法的第二实施例具体流程图;
图3为本发明一种区块链钱包签名确权方法的第三实施例具体流程图;
图4为本发明一种用于区块链钱包签名确权的客户端装置的原理框图;
图5为确权请求模块的一种原理框图;
图6为本发明区块链钱包签名确权系统的原理框图。
图7为确权处理模块的一种原理框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
第一实施例
请参阅图1,其为本发明一种区块链钱包签名确权方法的具体流程图。它包括:
S110:客户端在钱包生成时先获取第一公私钥对和第二公私钥对,并使用第一私钥对第二公钥签名得到密钥签名值,保存密钥签名值、第二公私钥对和第一公钥。
客户端可以是移动终端、电脑等智能设备。钱包可以是指手机银行、数字钱包或者是一个专有应用,该应用可以以APP的形式存在,也可以是一个功能插件。考虑到本发明实现的是身份认证的确权认证,也可以将该功能服务位于移动终端的安全单元内,用来实现支持控制交易流程、安全存储、发行方管理等功能。因此,本发明后续提及的客户端是一个广义的概念,包括实现该功能服务的载体。
一种实现方式为:移动终端在首次下载安装钱包APP时,首先生成第一公私钥对和第二公私钥对,再用第一私钥对第二公钥签名得到密钥签名值。第一公私钥对和第二公私钥对可以用不同的算法生成。在本实例中,将用户属性标记(用户助记词等)通过PBKDF2密钥衍生函数,采用HMAC-SHA512并进行若干次循环,衍生出第一公私钥对;将第一公私钥对通过CKD算法生成第二公私钥对。第一公私钥对和第二公私钥还可以用多种其它算法,只要保证其密钥衍生的安全性即可。在本实例中,基于第一公私钥对来生成第二公私钥对,主要是第一公私钥采用HMAC-SHA512并进行1024次循环而衍生出来的,其安全性很高,通过第一公私钥对来生成第二公私钥对,又保证了第二公私钥对生成的安全性。
使用第一私钥对第二公钥签名得到密钥签名值,保存密钥签名值、第二公私钥对和第一公钥。一般来说,该些密钥签名值、第二公私钥对和第一公钥及钱包ID等保存在钱包APP内。当用户下次启动钱包APP时,预先查询对应的存储单元,若预先存储有该些密钥签名值、第二公私钥对和第一公钥及钱包ID已预存,则不需要重新生成。若没有存储相关内容,则利用上述的密钥衍生算法生成对应的第一公私钥对和第二公私钥对,再使用第一私钥对第二公钥签名得到密钥签名值。
S120:客户端要求钱包确权时,获取服务端发送的验证码,使用第二私钥对至少包括验证码在内的数据进行签名得到验证码签名值,把包含验证码签名值、密钥签名值、第一公钥和第二公钥在内的数据上传至服务端以供服务端用第一公钥验证密钥签名值来确保第二公钥的有效性,用第二公钥验证验证码签名值来确保验证码的有效性和准确性,用验证码来认证钱包认证的通信过程的安全可信性。
当客户端要求进行钱包确权时,首先向服务端发送确权请求指令。服务端一般包括应用服务器和认证中心。当然,也可以将认证中心的功能集成在应用服务器上,本实例也是泛指应用服务器,只需要实现其功能的服务端且不论服务器的个数即包括在本实例的服务端的广义范围。客户端(如移动终端)向服务发送请求指令时是携带移动终端的手机号码,服务端收到该请求生成该手机号码对应的随机数作为验证码发送至客户端。验证码也可以文字码、二维码等具有随机性的标识。
在客户端发送确权请求之前,客户端还可以进行自身钱包的认证,比如发送钱包请求指令,请求获取应用方证书、安全因子等认证信息数据的指令。应用方证书生成后需要服务端将其返回至移动终端,移动终端将应用方证书发送至内部的钱包服务,而钱包服务(如钱包APP)内有一个应用方根证书,钱包服务根据应用方证书的公钥来验证应用方证书是否有效,由此先验证其钱包APP的合法性。但是,除非一些特别重要、安全性要求极高的身份验证需要进行多次双方认证,一般来说,只需要完成后续的钱包确权认证即可。
客户端获取服务端发送的验证码,使用第二私钥对至少包括验证码在内的数据进行签名得到验证码签名值,把包含验证码签名值、密钥签名值、第一公钥和第二公钥在内的数据上传至服务端。
本实例,客户端将包括服务端发送的验证码、钱包ID和时间戳在内的信息按预设规则设置成原始字符串;再对原始字符串进行哈希运算得到哈希信息流;后使用第二私钥对信息流进行签名得到验证码签名值。当验证码是短信随机数验证码时,可以将短信随机数验证码、钱包ID和时间戳按照简单拼接后设置成原始字符串,对原始字符串进行若干次哈希运算后得到哈希信息流。当若将短信随机数验证码、钱包ID和时间戳按照简单拼接法拼接,其字符串的长度超出预值,可以设置简单拼接去除多余长度的计算后,再进行哈希运算。若验证码为文字码或二维码,获取文字码或二维码的标识信息,将其转化为数字信息,再将其转化后的数字信息钱包ID和时间戳按照预设规则设置成原始字符串。
举个例子来说,移动终端将验证码、钱包ID和时间戳该些信息统称为个人化数据。个人化数据包括但不局限上述信息,可以解析个人化数据,并按照规范要求拼装个人化指令流,可以逐条写入钱包服务,完成钱包服务的个人化;利用第二私钥对该些个人化指令流(如上述信息流)进行签名得到验证码签名值。
考虑到有些数据发送需要限额字节,因此每条指令发送的数据可以设定不能超过限额字节(如255字节),可以采用多条不同的指令执行发送命令至服务端。即,客户端包含验证码签名值、密钥签名值、第一公钥和第二公钥在内的数据上传至服务端,可以分一条指令也可以分多条指令进行上传。
在本实例中,服务端用第一公钥验证密钥签名值来确保第二公钥的有效性,用第二公钥验证验证码签名值来确保验证码的有效性和准确性,用验证码来认证钱包认证的通信过程的安全可信性。服务端接收到该些包含验证码签名值、密钥签名值、第一公钥和第二公钥在内的数据,解析出上述数据。
客户端是使用第一私钥对第二公钥签名得到密钥签名值,因此服务器用第一公钥可以验证密钥签名值是否有效,若有效可获得第二公钥。
服务端用第二公钥验证验证码签名值来确保验证码的有效性和准确性可以进一步包括:服务端获取预先缓存的验证码,按预先设定的规则设置成字符串,并将该字符串进行哈希运算得到哈希信息流;用第二公钥验证验证码签名值,与本端计算所得的哈希信息流进行对比,验证其验证码的有效性和准备性。
验证码的作用类似于随机数在密码学里的作用,在调用某一个接口,服务端先生成一个随机数给客户端(例如通过发短信的方式),客户端对随机数加密,这样即使数据在传输过程中被截获,也无法伪造,因为每一次请求随机数都不一样,别人就无法调用这个接口;通过上述方式,即可获知该钱包认证的通信过程的安全可信性,并将该钱包的合法性返回至客户端。
与现有技术相比,本实例中不仅可以通过验证码验证其安全性,而且用第一公私钥对和第二公私钥对,两对不同的公私钥对来配合验证码来完成验证,安全性更高,且流程也相对简单。
第二实施例
本实例的区块链钱包包括比特币钱包(Bitcoin core),其他区块链钱包大多都是仿照比特币钱包做的,比特币钱包是我们管理比特币的工具。比特币钱包里存储着我们的比特币信息,包括比特币地址、私钥,比特币钱包可以存储多个比特币地址以及每个比特币地址所对应的独立私钥。
当区块链钱包包括至少两种不同形态的钱包(如AToken钱包,Jaxx、Kcash、斑马钱包等)时,本发明的区块链钱包签名确权方法可以采用至少两种方案:第一种方案:每一种区块链钱包分别作为不同的客户端向服务端分别进行身份认证,该方案与第一实施例类似。第二种方案,区块链钱包先进行身份核对,把具有相同身份的不同的钱包进行相同的钱包确权,同理完成用户的身份认证。
具体来说,区块链钱包签名确权方法进一步包括(请参阅图2):
S210:客户端在钱包生成时,先判断该客户端相同标识(如手机号码)是否已存在其它形态的钱包,如果是,则进一步判断其是否存在第一公私钥对、第二公私钥对和密钥签名值,若有,直接进入步骤S220,否则就直接生成第一公私钥对和第二公私钥对,并使用第一私钥对第二公钥签名得到密钥签名值,保存密钥签名值、第二公私钥对和第一公钥;
S220:客户端要求身份认证时,只需要在本端找到至少一钱包,进行如步骤S120所说的钱包认证,即可完成身份认证。
第三实施例
请参阅图3,从服务端来进一步说明本发明区块链钱包签名确权方法的流程。在服务端包括以下步骤:
S310:向对应客户端发送验证码。
服务端接收到客户端的确权请求,该确权请求中至少包含该客户端或用户的属性信息,比如,根据用户的手机号码产生随机数验证码发给对应的客户端。
S320:根据获取自客户端的验证码签名值、密钥签名值、第一公钥和第二公钥,使用第一公钥验证密钥签名值,确保第二公钥的有效性,其中,密钥签名值由客户端使用第一私钥对第二公钥签名得到,客户端在钱包生成时获取第一公私钥对和第二公私钥对。
S330:使用第二公钥验证验证码签名值来确保验证码的有效性和准确性,验证码签名值由客户端使用第二私钥对至少包括验证码在内的数据进行签名得到。
使用第二公钥验证验证码签名值来确保验证码的有效性和准确性可以进一步包括:
获取预先缓存的验证码,按预先设定的规则设置成字符串,并将该字符串进行哈希运算得到哈希信息流;
用第二公钥验证验证码签名值,与本端计算所得的哈希信息流进行对比,验证其验证码的有效性。
S340:使用验证码来认证钱包认证的通信过程的安全可信性。
从服务端来看,不需要增设新的硬件,而且在现有的用验证码来进行身份认证的流程上增设步骤S320-S340的认证,可以在现有的服务端通过编程即可实现,完成低成本高安全性的身份验证。
第四实施例
请参阅图4,本发明还提供一种用于区块链钱包签名确权的客户端装置10,该客户端装置10例如位于与服务端交互的客户端中,或更具体地,位于钱包中,或者也可以从物理上体现为安装在钱包的载体上。该客户端装置10包括:
密钥签名生成模块11,用于获取第一公私钥对和第二公私钥对,使用第一私钥对第二公钥签名得到密钥签名值;
存储模块12,与密钥签名生成模块11连接,用于存储密钥签名值、第二公私钥对和第一公钥;
确权请求模块13,与存储模块12连接,用于被要求确权时,获取服务端发送的验证码,使用第二私钥对至少包括验证码在内的数据进行签名得到验证码签名值;
传输模块14,分别与存储模块12和确权请求模块13连接,用于把包含验证码签名值、密钥签名值、第一公钥和第二公钥在内的数据上传;
确权回复模块15,用于供服务端用第一公钥验证密钥签名值来确保第二公钥的有效性,用第二公钥验证验证码签名值来确保验证码的有效性和准确性,用验证码来认证钱包认证的通信过程的安全可信性,接收并处理服务端返回的确权结果。
确权请求模块13(图5)进一步包括:
验证码获取子模块131,用于获取服务端发送的验证码;
字符串设置子模块132,连接验证码获取子模块131,用于将包括验证码、钱包ID和时间戳在内的信息按预设规则设置成原始字符串;
信息流设置子模块133,连接字符串设置子模块132,用于对原始字符串进行哈希运算得到哈希信息流;
验证码签名值计算子模块134,连接信息流设置子模块133和存储模块12,用于使用第二私钥对哈希信息流进行签名得到验证码签名值。
钱包可以是指手机银行、数字钱包或者是一个专有应用,该应用可以以APP的形式存在,也可以是一个功能插件。考虑到本发明实现的是身份认证的确权认证,也可以将该钱包的功能服务位于移动终端的安全单元内。
钱包还可以包括多个公私钥对生成模块16,其连接密钥签名生成模块11,用于生成第一公私钥对和第二公私钥对,比如,将用户属性标记(用户助记词等)通过PBKDF2密钥衍生函数,采用HMAC-SHA512并进行若干次循环,衍生出第一公私钥对;将第一公私钥对通过CKD算法生成第二公私钥对。
第五实施例
请参阅图6,本发明还提供一种区块链钱包签名确权系统,包括至少一客户端装置10和服务端装置20,
客户端装置10进一步包括:
密钥签名生成模块11,用于获取第一公私钥对和第二公私钥对,使用第一私钥对第二公钥签名得到密钥签名值;
存储模块12,与密钥签名生成模块11连接,用于存储密钥签名值、第二公私钥对和第一公钥;
确权请求模块13,与存储模块12连接,用于被要求确权时,获取服务端发送的验证码,使用第二私钥对至少包括验证码在内的数据进行签名得到验证码签名值;
传输模块14,分别与存储模块12和确权请求模块13连接,用于把包含验证码签名值、密钥签名值、第一公钥和第二公钥在内的数据上传;
确权回复模块15,用于供服务端用第一公钥验证密钥签名值来确保第二公钥的有效性,用第二公钥验证验证码签名值来确保验证码的有效性和准确性,用验证码来认证钱包认证的通信过程的安全可信性,接收并处理服务端返回的确权结果。
服务端装置20进一步包括:
交互模块21,用于建立与客户端装置10之间的通信;
确权处理模块22,连接交互模块21,用以用第一公钥验证密钥签名值来确保第二公钥的有效性,用第二公钥验证验证码签名值来确保验证码的有效性和准确性,用验证码来认证钱包认证的通信过程的安全可信性,并经由交互模块21返回确权结果。
确权处理模块22(参阅图7)还包括:
验证码签名值再计算子模块221:用于获取预先缓存的验证码,按预先设定的规则设置成字符串,并将该字符串进行哈希运算得到哈希信息流;
验证码验证子模块222:用第二公钥验证验证码签名值,与验证码签名值再计算子模块221计算所得的哈希信息流进行对比,验证其验证码的有效性。
本领域技术人员应能理解,该系统中的客户端装置10中的确权请求模块13还可进一步包括前述验证码获取子模块131、字符串设置子模块132、信息流设置子模块133、验证码签名值计算子模块134;该客户端装置10还可以包括前述多个公私钥对生成模块16等,其与前述描述相同或基本相同,故此处不再赘述,并通过引用的方式包含于此。
第六实施例
本发明还提供一种用户区块链钱包签名确权的服务端装置,该服务端装置进一步包括:交互模块和确权处理模块,该确权处理模块还包括验证码签名值再计算子模块和验证码验证子模块。这些模块或子模块与前述描述相同或基本相同,故此处不再赘述,并通过引用的方式包含于此。
本发明还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机代码,当计算机代码被执行时,如上述方法被执行。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种区块链钱包签名确权方法,其特征在于,在客户端包括以下步骤:
在钱包生成时先获取第一公私钥对和第二公私钥对,并使用第一私钥对第二公钥签名得到密钥签名值,保存所述密钥签名值、所述第二公私钥对和第一公钥;
要求钱包确权时,获取服务端发送的验证码,使用第二私钥对至少包括所述验证码在内的数据进行签名得到验证码签名值,把包含所述验证码签名值、所述密钥签名值、所述第一公钥和第二公钥在内的数据上传至所述服务端,以供所述服务端用所述第一公钥验证所述密钥签名值来确保所述第二公钥的有效性,用所述第二公钥验证所述验证码签名值来确保所述验证码的有效性和准确性,用所述验证码来认证钱包认证的通信过程的安全可信性。
2.如权利要求1所述的方法,其特征在于,使用所述第二私钥对至少包括验证码在内的数据进行签名得到验证码签名值进一步包括:
将包括所述服务端发送的验证码、钱包ID和时间戳在内的信息按预设规则设置成原始字符串;
对所述原始字符串进行哈希运算得到哈希信息流;
使用所述第二私钥对所述哈希信息流进行签名得到所述验证码签名值。
3.如权利要求1或2所述的方法,其特征在于,在钱包生成时先获取第一公私钥对和第二公私钥对进一步包括:
对表明用户属性信息的用户数据通过两种不同的密钥衍生算法,生成所述第一公私钥对和所述第二公私钥对。
4.如权利要求3所述的方法,其特征在于,其进一步包括:
将用户助记词通过PBKDF2密钥衍生函数,采用HMAC-SHA512并进行若干次循环,衍生出所述第一公私钥对;将所述第一公私钥对通过CKD算法生成所述第二公私钥对。
5.一种区块链钱包签名确权方法,其特征在于,在服务端包括以下步骤:
向对应客户端发送验证码;
根据获取自所述客户端的验证码签名值、密钥签名值、第一公钥和第二公钥,使用所述第一公钥验证所述密钥签名值,确保所述第二公钥的有效性,其中,所述密钥签名值由所述客户端使用第一私钥对第二公钥签名得到,所述客户端在钱包生成时获取第一公私钥对和第二公私钥对;
使用所述第二公钥验证所述验证码签名值来确保所述验证码的有效性和准确性,所述验证码签名值由所述客户端使用第二私钥对至少包括所述验证码在内的数据进行签名得到;
使用所述验证码来认证钱包认证的通信过程的安全可信性。
6.如权利要求5所述的方法,其特征在于,“使用所述第二公钥验证所述验证码签名值来确保验证码的准确性和有效性”进一步包括:
获取预先缓存的验证码,按预先设定的规则设置成字符串,并将该字符串进行哈希运算得到哈希信息流;
用所述第二公钥验证所述验证码签名值,与本端计算所得的所述哈希信息流进行对比,验证其验证码的有效性。
7.一种用于区块链钱包签名确权的客户端装置,其特征在于,包括:
密钥签名生成模块,用于获取第一公私钥对和第二公私钥对,使用第一私钥对第二公钥签名得到密钥签名值;
存储模块,与所述密钥签名生成模块连接,用于存储所述密钥签名值、所述第二公私钥对和第一公钥;
确权请求模块,与所述存储模块连接,用于被要求确权时,获取服务端发送的验证码,使用第二私钥对至少包括所述验证码在内的数据进行签名得到验证码签名值;
传输模块,分别与所述存储模块和所述确权请求模块连接,用于把包含所述验证码签名值、所述密钥签名值、所述第一公钥和第二公钥在内的数据上传;
确权回复模块,用于供所述服务端用所述第一公钥验证所述密钥签名值来确保所述第二公钥的有效性,用所述第二公钥验证所述验证码签名值来确保所述验证码的有效性和准确性,用所述验证码来认证钱包认证的通信过程的安全可信性,接收并处理服务端返回的确权结果。
8.如权利要求7所述的客户端装置,其特征在于,所述确权请求模块进一步包括:
验证码获取子模块,用于获取服务端发送的验证码;
字符串设置子模块,连接所述验证码获取子模块,用于将包括所述验证码、钱包ID和时间戳在内的信息按预设规则设置成原始字符串;
信息流设置子模块,连接所述字符串设置子模块,用于对所述原始字符串进行哈希运算得到哈希信息流;
验证码签名值计算子模块,连接所述信息流设置子模块和所述存储模块,用于使用所述第二私钥对所述哈希信息流进行签名得到验证码签名值。
9.一种用于区块链钱包签名确权的服务端装置,其特征在于,与权利要求7所述的客户端装置配合使用,包括:
交互模块,用于建立与对应的客户端之间的通信;
确权处理模块,连接所述交互模块,用以用所述第一公钥验证所述密钥签名值来确保所述第二公钥的有效性,用所述第二公钥验证所述验证码签名值来确保所述验证码的有效性和准确性,用所述验证码来认证钱包认证的通信过程的安全可信性,并经由所述交互模块返回确权结果。
10.如权利要求9所述的服务端装置,其特征在于,所述确权处理模块还包括:
验证码签名值再计算子模块:用于获取预先缓存的验证码,按预先设定的规则设置成字符串,并将该字符串进行哈希运算得到哈希信息流;
验证码验证子模块:用所述第二公钥验证所述验证码签名值,与验证码签名值再计算子模块计算所得的所述哈希信息流进行对比,验证其验证码的有效性。
11.一种区块链钱包签名确权系统,其特征在于,包括如权利要求7或8所述的客户端装置及如权利要求9或10所述的服务端装置。
12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如权利要求1至4中任一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010057151.6A CN111275419B (zh) | 2020-01-17 | 2020-01-17 | 一种区块链钱包签名确权方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010057151.6A CN111275419B (zh) | 2020-01-17 | 2020-01-17 | 一种区块链钱包签名确权方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111275419A CN111275419A (zh) | 2020-06-12 |
CN111275419B true CN111275419B (zh) | 2023-04-11 |
Family
ID=71003051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010057151.6A Active CN111275419B (zh) | 2020-01-17 | 2020-01-17 | 一种区块链钱包签名确权方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111275419B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949953B (zh) * | 2020-06-23 | 2021-10-22 | 卓尔智联(武汉)研究院有限公司 | 基于区块链的身份认证方法、系统、装置和计算机设备 |
CN111769938B (zh) * | 2020-06-29 | 2023-03-24 | 福建福链科技有限公司 | 一种区块链传感器的密钥管理系统、数据验证系统 |
CN112651835B (zh) * | 2020-12-30 | 2023-05-23 | 成都佳华物链云科技有限公司 | 联盟链的交易方法、装置、电子设备及存储介质 |
CN113128245A (zh) * | 2021-03-24 | 2021-07-16 | 广州智投链码科技有限公司 | 一种企业链码的生成与管理方法 |
CN113487321A (zh) * | 2021-07-06 | 2021-10-08 | 域世安(北京)科技有限公司 | 基于区块链钱包的身份识别与验证方法及系统 |
CN113516473B (zh) * | 2021-07-23 | 2023-03-10 | 西南交通大学 | 一种基于生物特征的区块链托管门限钱包方法 |
CN114282922B (zh) * | 2021-12-23 | 2024-08-13 | 郑州师范学院 | 一种基于冷钱包的区块链交易处理方法及装置 |
CN114679276B (zh) * | 2022-02-18 | 2024-04-23 | 支付宝(杭州)信息技术有限公司 | 基于时间的一次性密码算法的身份认证方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105827412A (zh) * | 2016-03-14 | 2016-08-03 | 中金金融认证中心有限公司 | 认证方法、服务器及客户端 |
CN106936792A (zh) * | 2015-12-30 | 2017-07-07 | 卓望数码技术(深圳)有限公司 | 安全认证方法和系统以及用于安全认证的移动终端 |
CN107292621A (zh) * | 2017-06-22 | 2017-10-24 | 丁江 | 海量数据确权存证方法和节点 |
CN107888382A (zh) * | 2017-11-24 | 2018-04-06 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种基于区块链的数字身份验证的方法、装置和系统 |
CN108737105A (zh) * | 2018-05-07 | 2018-11-02 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 私钥的找回方法、装置、私钥设备和介质 |
CN110335149A (zh) * | 2019-06-19 | 2019-10-15 | 华中科技大学 | 一种基于区块链的资产确权交易实现方法及系统 |
CN110598480A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种数据确权方法以及装置 |
-
2020
- 2020-01-17 CN CN202010057151.6A patent/CN111275419B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106936792A (zh) * | 2015-12-30 | 2017-07-07 | 卓望数码技术(深圳)有限公司 | 安全认证方法和系统以及用于安全认证的移动终端 |
CN105827412A (zh) * | 2016-03-14 | 2016-08-03 | 中金金融认证中心有限公司 | 认证方法、服务器及客户端 |
CN107292621A (zh) * | 2017-06-22 | 2017-10-24 | 丁江 | 海量数据确权存证方法和节点 |
CN107888382A (zh) * | 2017-11-24 | 2018-04-06 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种基于区块链的数字身份验证的方法、装置和系统 |
CN108737105A (zh) * | 2018-05-07 | 2018-11-02 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 私钥的找回方法、装置、私钥设备和介质 |
CN110335149A (zh) * | 2019-06-19 | 2019-10-15 | 华中科技大学 | 一种基于区块链的资产确权交易实现方法及系统 |
CN110598480A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种数据确权方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111275419A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111275419B (zh) | 一种区块链钱包签名确权方法、装置及系统 | |
US11258777B2 (en) | Method for carrying out a two-factor authentication | |
TWI497336B (zh) | 用於資料安全之裝置及電腦程式 | |
JP6586446B2 (ja) | 通信端末および関連システムのユーザーの識別情報を確認するための方法 | |
US9160732B2 (en) | System and methods for online authentication | |
US7689828B2 (en) | System and method for implementing digital signature using one time private keys | |
US8590024B2 (en) | Method for generating digital fingerprint using pseudo random number code | |
CN110990827A (zh) | 一种身份信息验证方法、服务器及存储介质 | |
CN104662864A (zh) | 使用了移动认证应用的用户方便的认证方法和装置 | |
CN107920052B (zh) | 一种加密方法及智能装置 | |
CN111787530A (zh) | 一种基于sim卡的区块链数字身份管理方法 | |
EP1886204B1 (en) | Transaction method and verification method | |
KR20210095093A (ko) | 탈중앙화 아이디 앱을 이용하여 인증 서비스를 제공하는 방법 및 이를 이용한 탈중앙화 아이디 인증 서버 | |
KR102372503B1 (ko) | 탈중앙화 아이디 앱을 이용하여 인증 서비스를 제공하는 방법 및 이를 이용한 탈중앙화 아이디 인증 서버 | |
WO2024011863A9 (zh) | 通信方法、装置、sim卡、电子设备和终端设备 | |
KR102160892B1 (ko) | 공개키 기반의 서비스 인증 방법 및 시스템 | |
CN111541708B (zh) | 一种基于电力配电的身份认证方法 | |
CN111953477B (zh) | 终端设备及其标识令牌的生成方法和客户端的交互方法 | |
CN116132986A (zh) | 一种数据传输方法、电子设备及存储介质 | |
CN115225286A (zh) | 应用访问鉴权方法及装置 | |
CN112822175B (zh) | 一种信息访问方法、装置及电子设备 | |
CN116248280B (zh) | 免密钥发行的安全模组防盗用方法、安全模组及装置 | |
CN112737790B (zh) | 数据传输方法、装置及服务器、客户终端 | |
WO2021019783A1 (ja) | 所有者同一性確認システム、端末および所有者同一性確認方法 | |
CN118764272A (zh) | 一种融合多种加密的超级u盘安全登录互联网云盘方法 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220729 Address after: 201702 room 235, area K, 2 / F, 158 Shuanglian Road, Qingpu District, Shanghai Applicant after: Shanghai Jiansu Network Technology Co.,Ltd. Address before: Room 4058, building 3, No. 495, Yuejin South Road, Xinhai Town, Chongming District, Shanghai 202172 Applicant before: Shanghai pelac Information Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |