CN109088902B - 注册方法及装置、认证方法及装置 - Google Patents
注册方法及装置、认证方法及装置 Download PDFInfo
- Publication number
- CN109088902B CN109088902B CN201811309425.5A CN201811309425A CN109088902B CN 109088902 B CN109088902 B CN 109088902B CN 201811309425 A CN201811309425 A CN 201811309425A CN 109088902 B CN109088902 B CN 109088902B
- Authority
- CN
- China
- Prior art keywords
- key
- handle
- public
- index 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了注册方法及装置、认证方法及装置,其中,注册方法包括如下步骤:基于获取的根密钥和索引值,确定第一公私密钥对;基于第一私钥确定原密钥句柄;基于索引值确定目标索引;根据目标索引和原密钥句柄,确定第一密钥句柄。相应的在认证过程中,获取第一密钥句柄,如果第一密钥句柄未被存储,解析第一密钥句柄得到索引值;基于获取的根密钥和索引值,确定第二公私密钥对;利用第二公私密钥对进行认证。本申请实施例提供的注册方法及装置、认证方法及装置,在注册时基于索引值确定第一密钥句柄,因此在认证时,如需基于索引值恢复公私密钥对,可以方便的从第一密钥句柄中确定索引值,提升了注册装置和认证装置的安全性、可靠性。
Description
技术领域
本申请涉及信息安全技术领域,尤其是涉及注册方法及装置、认证方法及装置。
背景技术
为满足网上身份认证要求,保障用户隐私安全,现有技术中提供了使用密码和能与用户交互的设备来保护用户账户和隐私安全的协议。因为其具有更好的安全性、便捷性以及适配性,结合日趋成熟的生物特征识别技术,有可能替代传统的静/动态口令验证方式而成为身份认证的最佳方法。
现有技术中进行身份认证的设备具有注册和认证的功能。申请人在研究中发现,现有的身份认证技术中,生成的密钥句柄(Key Handle)主要起标识作用,如果公私密钥对丢失,需要重新恢复公私密钥对时,无法很方便的获取恢复公私密钥对所需的索引值等安全数据,因此,现有的身份认证技术安全性和可靠性较低。
发明内容
有鉴于此,本申请的目的在于提供注册方法及装置、认证方法及装置,在注册时基于索引值确定第一密钥句柄,因此在认证时,如需基于索引值恢复公私密钥对,可以方便的从第一密钥句柄中确定索引值,实现了安全数据的可恢复性,提升了注册装置和认证装置的安全性、可靠性。
第一方面,本申请实施例提供了一种注册方法,包括如下步骤:
基于获取的根密钥和索引值,确定包括第一公钥和第一私钥的第一公私密钥对;
基于所述第一私钥确定原密钥句柄;
基于所述索引值确定目标索引;
根据所述目标索引和原密钥句柄,确定与所述第一公私密钥对对应的第一密钥句柄。
结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,其中,所述确定目标索引,包括如下步骤:
基于所述原密钥句柄的预定字节,确定位置偏移量;
基于所述位置偏移量和所述原密钥句柄,确定异或因子;
基于所述索引值和所述异或因子,确定所述目标索引。
结合第一方面,本申请实施例提供了第一方面的第二种可能的实施方式,其中,确定所述第一密钥句柄,包括如下步骤:
获取所述目标索引的位置因子;
基于所述位置因子,将所述目标索引与所述原密钥句柄进行拼接,得到所述第一密钥句柄。
结合第一方面,本申请实施例提供了第一方面的第三种可能的实施方式,其中,还包括如下步骤:
在重新确定所述根密钥的情况下,重新确定所述索引值。
第二方面,本申请实施例还提供一种认证方法,包括如下步骤:
获取第一密钥句柄;
在所述第一密钥句柄未被存储的情况下,解析所述第一密钥句柄得到目标索引,并根据所述目标索引确定对应的索引值;
基于获取的根密钥和所述索引值,确定包括第二公钥和第二私钥的第二公私密钥对;
利用所述第二公私密钥对进行认证。
结合第二方面,本申请实施例提供了第二方面的第一种可能的实施方式,其中,还包括如下步骤:
根据所述第二私钥和所述索引值确定第二密钥句柄;
在所述第二密钥句柄与第一密钥句柄相同的情况下,利用所述第二公私密钥对进行认证。
结合第二方面,本申请实施例提供了第二方面的第二种可能的实施方式,其中,还包括如下步骤:
如果所述第一密钥句柄存在,获取所述第一密钥句柄对应的第一公私密钥对;
利用所述第一公私密钥对进行认证。
结合第二方面,本申请实施例提供了第二方面的第三种可能的实施方式,其中,所述确定对应的索引值,具体包括如下步骤:
获取目标索引的位置因子;
基于所述位置因子对所述第一密钥句柄进行解析,得到所述目标索引和原密钥句柄;
基于所述原密钥句柄的预定字节,确定位置偏移量;
基于所述位置偏移量和所述原密钥句柄,确定异或因子;
基于所述目标索引和所述异或因子,确定所述索引值。
第三方面,一种注册装置,包括获取模块、密钥生成模块和句柄生成模块:
所述获取模块,用于获取根密钥和索引值;
所述密钥生成模块,用于基于所述根密钥和所述索引值,确定包括第一公钥和第一私钥的第一公私密钥对;
所述句柄生成模块,用于基于所述第一私钥确定原密钥句柄、基于所述索引值确定目标索引;还用于根据所述目标索引和原密钥句柄,确定与所述第一公私密钥对对应的第一密钥句柄。
第四方面,本申请实施例还提供一种认证装置,包括获取模块、索引恢复模块、密钥恢复模块和认证模块:
所述获取模块,用于获取第一密钥句柄;
所述索引恢复模块,用于在所述第一密钥句柄未被存储的情况下,解析所述第一密钥句柄得到目标索引,并根据所述目标索引确定对应的索引值;
所述密钥恢复模块,用于基于获取的根密钥和所述索引值,确定包括第二公钥和第二私钥的第二公私密钥对;
所述认证模块,用于判断所述第一密钥句柄是否存在;还用于利用所述第二公私密钥对进行认证。
第五方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,第二方面,第一方面或第二方面任一种可能的实施方式中的步骤。
第六方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,第二方面,第一方面或第二方面任一种可能的实施方式中的步骤。
本申请实施例提供的注册方法及装置、认证方法及装置,与现有技术中注册方法和认证方法相比,在注册时基于索引值确定第一密钥句柄,因此在认证时,如需基于索引值恢复公私密钥对,可以方便的从第一密钥句柄中确定索引值,实现了安全数据的可恢复性,提升了注册装置和认证装置的安全性和可靠性。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种注册方法的流程图;
图2示出了通过分层确定性钱包方法初始化根密钥的实现方式;
图3示出了硬化衍生子密钥生成算法原理图;
图4示出了本申请实施例具体应用于FIDO协议的注册方法流程图;
图5示出了本申请实施例所提供的一种认证方法的流程图;
图6示出了本申请实施例具体应用于FIDO协议的认证方法流程图;
图7示出了本申请实施例所提供的一种注册装置的结构框图;
图8示出了本申请实施例所提供的一种认证装置的结构框图。
图9示出了现有技术中FIDO U2F应用的工作流程图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种注册方法进行详细介绍。
实施例一
本申请实施例一提供了一种注册方法,所述注册方法主要应用于身份验证***中,具体地,例如使用线上快速身份验证协议进行注册和认证的情况。
线上快速身份验证协议(Fast Identity Online,以下简称FIDO协议),是一种使用双因子保护用户账户和隐私的协议,即使用密码和能与用户交互的设备保护用户账户和隐私,FIDO协议包括Universal 2nd Factor(以下简称U2F)和Universal AuthenticationFramework(以下简称UAF)两种子协议。满足FIDO协议的设备称之为FIDO设备,而FIDO设备中实现认证功能的应用,称之为FIDO应用。
优选的,本申请实施例提供的注册方法及装置、认证方法及装置可以应用于FIDO协议中,以FIDO U2F协议为例,如图9所示,现有技术中FIDO协议的工作流程包括如下步骤:
步骤1、FIDO客户端向服务器端发起注册或认证请求,服务器端返回随机数;客户端利用随机数以及从服务器端获取或自己生成其他相关数据组成向FIDO U2F应用发送的请求数据报文;
步骤2、客户端将上一步组织的请求报文发送给FIDO U2F应用,FIDO U2F应用经过一系列算法操作后,返回相应的响应数据给客户端;
步骤3、客户端将FIDO U2F应用返回的响应数据发送给服务器端。服务器端在接收到从客户端传来的FIDO U2F响应数据后,进行数据验证,如签名验证等。如果验证成功,则表示对应的注册或认证操作成功;否则操作失败。
现有技术中FIDO协议应用公私密钥对进行数据验证,但FIDO设备一旦损毁,所有公私密钥对信息全部丢失。本申请引入分层确定性钱包技术,引入了根密钥概念,采用硬化衍生子密钥生成算法生成子公私密钥对,并且基于索引值确定第一密钥句柄,使得公私密钥对可以被备份和恢复,大大增加了使用FIDO协议进行身份验证的安全性、可靠性。
如图1所示,本申请实施例一提供的方法包括如下步骤:
S101:基于获取的根密钥和索引值,确定包括第一公钥和第一私钥的第一公私密钥对。
这里,在第一次进行注册之前,可以进行初始化操作,生成根密钥,例如,将本实施例的注册方法应用于FIDO协议的情况下,可以使用分层确定性钱包方法初始化根密钥。
具体地,图2示出了通过分层确定性钱包方法初始化根密钥的实现方式,分层确定性钱包使用路径的方式标识密钥,例如子公私密钥对的路径为M/44’/index,M表示根密钥,44’表示算法分支,index为索引值,这里,索引值为16进制4字节的数据。这里,采用分层确定性钱包的分散方式生成公私密钥对时,使用索引值作为密钥分散因子。
首先,根据随机数生成种子和助记词,最后根据种子生成根密钥。初始化后,将助记词和/或种子保存在外置的存储设备中,以便在设备丢失时,通过助记词或种子恢复根密钥。也可以直接将根密钥保存在内存、服务器等存储设备中,恢复时直接获取保存的根密钥。
具体地,例如将本实施例所述注册方法应用于FIDO协议的情况下,在FIDO应用的注册功能中生成公私密钥对时,通过根密钥衍生子公私密钥对的方法,使所有的子公私密钥对都拥有同一个根密钥。只要能够保存或恢复根密钥,则可以很方便的对FIDO应用中所有密钥数据进行恢复。
这里,在重新确定所述根密钥的情况下,重新确定所述索引值。具体地,例如将本实施例所述注册方法应用于FIDO协议的情况下,如果当前FIDO应用使用恢复后重新确定的根密钥生成子公私密钥对,并且当前索引值为0x00000000,将索引值重新置为0x00001000。
这里,可以采用任一密钥生成算法生成第一公私密钥对。具体地,例如,将本实施例所述注册方法应用于FIDO协议的情况下,可以采用图3所示的硬化衍生的算法,根据根密钥和索引值确定第一公私密钥对。硬化衍生子密钥生成算法根据父私钥、父链码和索引值生成子私钥、子公钥和子链码,这里的父私钥和父链码为根密钥的私钥和链码。因此,在已知根密钥和索引值的情况下,可以恢复出任一子公私密钥对。
这里,每注册一组第一公私密钥对,所述索引值加1。
S102:基于所述第一私钥确定原密钥句柄。
这里,基于所述第一私钥和应用参数确定原密钥句柄。
这里,应用参数通常为输入参数,可以基于需要进行注册操作的网站信息来确定。具体的,确定应用参数包括如下步骤:获取需要进行注册的网站对应的应用标识;获取所述应用标识中每个字符的ASCII码;根据所述每个字符的ASCII码确定所述应用参数。例如,将本实施例所述注册方法应用于FIDO协议的情况下,可以使用SHA-256算法根据所述每个字符的ASCII码确定所述应用参数。
这里,为了防止钓鱼网站,原密钥句柄需要根据所述第一私钥和应用参数加密生成,具体地,例如,将本实施例所述注册方法应用于FIDO协议的情况下,可以利用SHA-256算法根据第一私钥和应用参数生成原密钥句柄,这里生成的原密钥句柄为哈希值。
S103:基于所述索引值确定目标索引。
这里,基于所述索引值确定目标索引,具体包括如下步骤:基于所述原密钥句柄的预定字节,确定位置偏移量;基于所述位置偏移量和所述原密钥句柄,确定异或因子;基于所述索引值和所述异或因子,确定所述目标索引。
S104:根据所述目标索引和原密钥句柄,确定与所述第一公私密钥对对应的第一密钥句柄。
这里,确定所述第一密钥句柄的过程包括如下步骤:获取所述目标索引的位置因子;基于所述位置因子,将所述目标索引与所述原密钥句柄进行拼接,得到所述第一密钥句柄。
这里,每生成一对公私密钥对,将所述第一密钥句柄和第一公私密钥对等数据保存在内存、服务器等存储设备中。
实施例二
如图4所示,本申请实施例具体应用于FIDO协议的注册方法流程图。
S401:开始注册。
在流程开始时,需要获取根密钥和索引值,并且,在第一次进行注册之前,需要进行初始化操作,生成助记词、种子和根密钥。
注册开始后,判断当前应用是否为恢复后的应用,并且判断当前索引值是否为0x00000000。
S402:如果当前FIDO应用使用恢复后重新确定的根密钥生成子公私密钥对,并且当前索引值为0x00000000,将索引值重新置为0x00001000。
S403:根据所述根密钥和索引值,确定包含第一公钥和第一私钥的第一公私密钥对。
具体地,采用硬化衍生的算法生成第一公私密钥对。
S404:根据所述第一私钥、应用参数和索引值确定第一密钥句柄。
这里,首先根据所述第一私钥和应用参数确定原密钥句柄,具体地,可以使用SHA-256算法对第一私钥和应用参数进行计算,计算得到的原密钥句柄Keyhandle为哈希值。
这里,所述应用参数的确定过程如下:获取需要进行注册的网站对应的应用标识,例如需要注册的网站的网址;获取所述应用标识中每个字符的ASCII码;根据所述每个字符的ASCII码确定所述应用参数。具体地,可以使用SHA-256对应用标识中每个字符的ASCII码进行计算,得到的应用参数为哈希值。
之后基于所述索引值确定目标索引。
这里,基于所述索引值确定目标索引,具体包括如下步骤:基于所述原密钥句柄的预定字节,确定位置偏移量;基于所述位置偏移量和所述原密钥句柄,确定异或因子;基于所述索引值和所述异或因子,确定所述目标索引。
具体地例如,可以获取所述原密钥句柄的第一个字节和第二个字节,所述第一个字节和第二个字节的每半个字节标识了待取字节在原密钥句柄的后30个字节中的位置偏移量,根据位置偏移量按序取出4个字节,之后将上述4个字节合并为异或因子。
具体地例如,如果原密钥句柄为“3659C2E3555576530C16A0E2D598AB20CBCE6D4C352F5B6B8868EF522E5B36A7”,索引值为“000F5A31”。获取所述原密钥句柄的第一个字节为“36”和第二个字节为“59”,则原密钥句柄结构如表1所示。
表1原密钥句柄结构
由于原密钥句柄的第一个字节和第二个字节为“3659”,则分别取原密钥句柄后30个字节中的第3字节,第6字节,第5字节和第9字节的数据,即“55”,“53”,“76”和“A0”,将上述4个字节组合在一起得到异或因子,即“555376A0”。
基于上述异或因子和索引值,确定所述目标索引,具体地,可以将异或因子与索引值进行异或,得到目标索引。即,
异或因子“555376A0”xor索引值“000F5A31”=目标索引“555C2C91”
将目标索引与原密钥句柄拼接,得到第一密钥句柄。这里,获取所述目标索引的位置因子;基于所述位置因子,将所述目标索引与所述原密钥句柄进行拼接,得到所述第一密钥句柄。具体地例如,位置因子可以为第0位,此时将目标索引置于原密钥句柄的前面,并将所述目标索引与所述原密钥句柄进行拼接,得到所述第一密钥句柄如下:
“555C2C913659C2E3555576530C16A0E2D598AB20CBCE6D4C352F5B6B8868EF522E5B36A7”
采用上述方法生成第一密钥句柄,就可以在认证时从第一密钥句柄中恢复出索引值。
S405:索引值加1。
S406:返回第一公钥、第一密钥句柄等响应数据。
这里,第一密钥对、第一密钥句柄等数据均被保存在内存、服务器等存储设备中。
S407:注册流程结束。
实施例三
本申请实施例一提供了一种认证方法,所述认证方法主要应用于使用双因子协议进行认证的情况下,具体地,例如使用FIDO协议进行认证的情况。
如图5所示,本申请实施例一提供的方法包括如下步骤:
S501:获取第一密钥句柄。
认证开始时,需要获取第一密钥句柄。
S502:在所述第一密钥句柄未被存储的情况下,解析所述第一密钥句柄得到目标索引,并根据所述目标索引确定对应的索引值。
这里,如果公私密钥对、第一密钥句柄等数据丢失或损坏,会造成第一密钥句柄在内存、服务器等存储设备中不存在的情况,即所述第一密钥句柄未被存储的情况。此时,需要启动恢复过程。进一步的,如果进行身份验证的设备丢失或数据损毁,全部数据丢失,需要根据在外置存储设备中存储的种子或助记词重新生成根密钥,然后根据重新恢复的根密钥重新生成子公私密钥对。或者直接获取存储的根密钥,然后根据存储的根密钥重新生成子公私密钥对。
所述确定对应的索引值,具体包括如下步骤:获取目标索引的位置因子;基于所述位置因子对所述第一密钥句柄进行解析,得到所述目标索引和原密钥句柄;基于所述原密钥句柄的预定字节,确定位置偏移量;基于所述位置偏移量和所述原密钥句柄,确定异或因子;基于所述目标索引和所述异或因子,确定所述索引值。
这里,如果所述第一密钥句柄存在,获取所述第一密钥句柄对应的第一公私密钥对;利用所述第一公私密钥对进行认证。
S503:基于获取的根密钥和所述索引值,确定包括第二公钥和第二私钥的第二公私密钥对。
这里,确定第二公私密钥对与本申请实施例提供的注册方法中确定第一公私密钥对的方法相同。也可以使用任一常用的密钥生成方法,具体地例如,硬化衍生子密钥生成算法。
S504:利用所述第二公私密钥对进行认证。
这里,首先根据所述第二私钥和所述索引值确定第二密钥句柄;
在所述第二密钥句柄与第一密钥句柄相同的情况下,利用所述第二公私密钥对进行认证。
这里,根据所述第二私钥和所述索引值确定第二密钥句柄的方法,与本申请实施例提供的注册方法中,确定与所述第一公私密钥对对应的第一密钥句柄的方法相同,具体包括如下步骤:
基于所述第二私钥确定原密钥句柄;基于所述索引值确定目标索引;根据所述目标索引和原密钥句柄,确定与所述第二公私密钥对对应的第二密钥句柄。
这里,基于所述第二私钥和应用参数确定原密钥句柄。
这里,应用参数通常为输入参数,可以基于需要进行注册操作的网站信息来确定。具体的,确定应用参数包括如下步骤:获取需要进行认证的网站对应的应用标识;获取所述应用标识中每个字符的ASCII码;根据所述每个字符的ASCII码确定所述应用参数。例如,将本实施例所述注册方法应用于FIDO协议的情况下,可以使用SHA-256算法根据所述每个字符的ASCII码确定所述应用参数。
这里,为了防止钓鱼网站,原密钥句柄需要根据所述第二私钥和应用参数加密生成,具体地,例如,将本实施例所述注册方法应用于FIDO协议的情况下,可以利用SHA-256算法根据第二私钥和应用参数生成原密钥句柄,这里生成的原密钥句柄为哈希值。
这里,基于所述索引值确定目标索引,具体包括如下步骤:基于所述原密钥句柄的预定字节,确定位置偏移量;基于所述位置偏移量和所述原密钥句柄,确定异或因子;基于所述索引值和所述异或因子,确定所述目标索引。
这里,确定所述第二密钥句柄的过程包括如下步骤:获取所述目标索引的位置因子;基于所述位置因子,将所述目标索引与所述原密钥句柄进行拼接,得到所述第二密钥句柄。
这里,使用所述第二私钥生成签名,使用第二公钥对签名进行认证。
这里,将第二公私密钥对和第二密钥句柄保存在内存、服务器等存储设备中。
这里,在重新确定所述根密钥的情况下,重新确定所述索引值。具体地,例如将本实施例所述注册方法应用于FIDO协议的情况下,如果当前FIDO应用使用恢复后重新确定的根密钥生成子公私密钥对,并且认证计数值为0x00000000,将所述认证计数值置为0x00010000。并且,每进行一次认证过程,所述认证计数值加1。
实施例四
如图6所示,本申请实施例具体应用于FIDO协议的认证方法流程图。
S601:开始认证。
在流程开始时,获取第一密钥句柄和第一公私密钥对,并且确定需要进行认证的网站对应的应用参数。
S602:如果所述第一密钥句柄未被存储,重新生成包括第二公钥和第二私钥的第二公私密钥对。
这里,如果公私密钥对、第一密钥句柄等数据丢失或损坏,会造成第一密钥句柄在内存、服务器等存储设备中不存在的情况,即所述第一密钥句柄未被存储的情况。此时,需要启动恢复过程。进一步的,如果进行身份验证的设备丢失或数据损毁,需要先采用分层确定性钱包技术,根据存储的种子或助记词重新生成根密钥,然后根据重新恢复的根密钥重新生成子公私密钥对。根据根密钥重新生成子公私密钥对的过程在认证过程中实现,因此,本实施例中子公私密钥对的恢复方式为被动恢复方式,即,收到一次认证申请和一个密钥句柄恢复一组公私密钥对,而不是一次性的将所有密钥数据都恢复出来。
这里,首先根据所述第一密钥句柄确定索引值,具体地,包括如下步骤:
获取目标索引的位置因子;基于所述位置因子对所述第一密钥句柄进行解析,得到所述目标索引和原密钥句柄;基于所述原密钥句柄的预定字节,确定位置偏移量;基于所述位置偏移量和所述原密钥句柄,确定异或因子;基于所述目标索引和所述异或因子,确定所述索引值。
这里,根据根密钥和索引值重新生成第二公私密钥对,例如,可以使用硬化衍生子密钥生成算法生成第二公私密钥对。
S603:重新生成与所述第二公私密钥对对应的第二密钥句柄。
重新生成第二密钥句柄的方法与本申请的注册方法中确定与所述第一公私密钥对对应的第一密钥句柄的方法相同。
包括如下步骤,基于第二私钥确定原密钥句柄;基于所述索引值确定目标索引;根据所述目标索引和原密钥句柄,确定与所述第二公私密钥对对应的第二密钥句柄。每一步的实现方式也与确定第一密钥句柄的方法相同,此处不再赘述。
S604:将第一密钥句柄和第二密钥句柄进行对比,验证第二密钥句柄的正确性。
如果第一密钥句柄和第二密钥句柄不相同,则第一密钥句柄被确认为非法数据,提示错误并结束认证流程。
S605:如果第一密钥句柄和第二密钥句柄相同,保存第二密钥句柄和第二公钥对
S606:生成签名。
这里,如果所述第一密钥句柄不存在,使用所述第二私钥生成签名,使用第二公钥对签名进行认证。
这里,如果所述第一密钥句柄存在,使用所述第一私钥生成签名,使用第一公钥对签名进行认证。
S607:如果当前FIDO应用使用恢复后重新确定的根密钥生成子公私密钥对,并且认证计数值为0x00000000,将所述认证计数值置为0x00010000。
S608:认证计数值加1。
S609:返回认证计数值和签名等响应数据,认证过程结束。
本申请实施例提供的注册方法和认证方法的数据结构如表2所示。
表2注册方法和认证方法的数据结构
本申请实施例提供的注册方法和认证方法数据恢复前后的数据说明如表3所示。
表3注册方法和认证方法数据恢复前后的数据
基于相同的技术构思,本申请实施例还提供注册装置和认证装置,具体可参见以下实施例。
实施例五
如图7所示是一种注册装置700,其特征在于,包括获取模块701和密钥生成模块702和句柄生成模块703:
获取模块701,用于获取根密钥和索引值。
密钥生成模块702,用于基于所述根密钥和所述索引值,确定包括第一公钥和第一私钥的第一公私密钥对。
句柄生成模块703,用于基于所述第一私钥确定原密钥句柄、基于所述索引值确定目标索引;还用于根据所述目标索引和原密钥句柄,确定与所述第一公私密钥对对应的第一密钥句柄。
实施例六
如图8所示是一种认证装置800,包括获取模块801、索引恢复模块802、密钥恢复模块803和认证模块804:
获取模块801,用于获取第一密钥句柄;
索引恢复模块802,用于在所述第一密钥句柄未被存储的情况下,解析所述第一密钥句柄得到目标索引,并根据所述目标索引确定对应的索引值
密钥恢复模块803,用于基于获取的根密钥和所述索引值,确定包括第二公钥和第二私钥的第二公私密钥对。
认证模块804,用于判断所述第一密钥句柄是否存在;还用于利用所述第二公私密钥对进行认证。
实施例七
本实施例公开了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信。
所述机器可读指令被所述处理器执行时执行上述实施例的注册方法中的步骤,或执行上述实施例的认证方法中的步骤。
其中,存储器可能包含高速随机存取存储器(Random Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩充工业标准总结结构(Extended Industry Standard Architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。
其中,存储器用于存储程序,所述处理器在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器中,或者由处理器实现。
处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
本发明实施例提供的注册装置、认证装置及电子设备,与上述实施例提供的注册方法、认证方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
实施例八
本实施例公开了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述实施例的注册方法中的步骤,或执行上述实施例的认证方法中的步骤。
本申请实施例所提供的进行注册方法及装置、认证方法及装置的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (9)
1.一种注册方法,其特征在于,包括如下步骤:
基于获取的根密钥和索引值,确定包括第一公钥和第一私钥的第一公私密钥对;
基于所述第一私钥确定原密钥句柄;
基于所述索引值确定目标索引;
根据所述目标索引和原密钥句柄,确定与所述第一公私密钥对对应的第一密钥句柄;
将所述第一公钥和所述第一密钥句柄发送给认证服务器,以使所述认证服务器根据所述第一公钥和所述第一密钥句柄进行注册;
在基于获取的根密钥和索引值,确定包括第一公钥和第一私钥的第一公私密钥对之前,还包括:
获取在外置设备内预先存储的助记词和/或种子;
通过所述助记词或所述种子恢复所述根密钥;
根据所述根密钥生成子公私密钥对时的当前索引值,确定所述索引值。
2.根据权利要求1所述的方法,其特征在于,所述确定目标索引,包括如下步骤:
基于所述原密钥句柄的预定字节,确定位置偏移量;
基于所述位置偏移量和所述原密钥句柄,确定异或因子;
基于所述索引值和所述异或因子,确定所述目标索引。
3.根据权利要求1所述的方法,其特征在于,确定所述第一密钥句柄,包括如下步骤:
获取所述目标索引的位置因子;
基于所述位置因子,将所述目标索引与所述原密钥句柄进行拼接,得到所述第一密钥句柄。
4.根据权利要求1所述的方法,其特征在于,还包括如下步骤:
在重新确定所述根密钥的情况下,重新确定所述索引值。
5.一种认证方法,其特征在于,包括如下步骤:
获取第一密钥句柄;
在所述第一密钥句柄未被存储的情况下,解析所述第一密钥句柄得到目标索引,并根据所述目标索引确定对应的索引值;
基于获取的根密钥和所述索引值,确定包括第二公钥和第二私钥的第二公私密钥对;
利用所述第二公私密钥对进行认证;
所述确定对应的索引值,具体包括如下步骤:
获取目标索引的位置因子;
基于所述位置因子对所述第一密钥句柄进行解析,得到所述目标索引和原密钥句柄;
基于所述原密钥句柄的预定字节,确定位置偏移量;
基于所述位置偏移量和所述原密钥句柄,确定异或因子;
基于所述目标索引和所述异或因子,确定所述索引值;
其中,在确定包括第二公钥和第二私钥的第二公私密钥对之前,还包括获取根密钥的方法步骤:
获取外置存储设备中存储的所述根密钥,或,根据所述外置存储设备中存储的种子或助记词重新生成所述根密钥。
6.根据权利要求5所述的方法,其特征在于,还包括如下步骤:
根据所述第二私钥和所述索引值确定第二密钥句柄;
在所述第二密钥句柄与第一密钥句柄相同的情况下,利用所述第二公私密钥对进行认证。
7.根据权利要求5所述的方法,其特征在于,还包括如下步骤:
如果所述第一密钥句柄存在,获取所述第一密钥句柄对应的第一公私密钥对;
利用所述第一公私密钥对进行认证。
8.一种注册装置,其特征在于,包括获取模块、密钥生成模块和句柄生成模块:
所述获取模块,用于获取根密钥和索引值;其中,在第一密钥句柄未被存储的情况下,获取在外置设备内预先存储的助记词和/或种子;通过所述助记词或所述种子恢复所述根密钥;根据所述根密钥生成子公私密钥对时的当前索引值,确定所述索引值;
所述密钥生成模块,用于基于所述根密钥和所述索引值,确定包括第一公钥和第一私钥的第一公私密钥对;
所述句柄生成模块,用于基于所述第一私钥确定原密钥句柄、基于所述索引值确定目标索引;还用于根据所述目标索引和原密钥句柄,确定与所述第一公私密钥对对应的第一密钥句柄;将所述第一公钥和所述第一密钥句柄发送给认证服务器,以使所述认证服务器根据所述第一公钥和所述第一密钥句柄进行注册。
9.一种认证装置,其特征在于,包括获取模块、索引恢复模块、密钥恢复模块和认证模块:
所述获取模块,用于获取第一密钥句柄;
所述索引恢复模块,用于在所述第一密钥句柄未被存储的情况下,解析所述第一密钥句柄得到目标索引,并根据所述目标索引确定对应的索引值;
所述密钥恢复模块,用于基于获取的根密钥和所述索引值,确定包括第二公钥和第二私钥的第二公私密钥对;
所述认证模块,用于判断所述第一密钥句柄是否存在;还用于利用所述第二公私密钥对进行认证;
所述索引恢复模块,具体用于获取目标索引的位置因子;
基于所述位置因子对所述第一密钥句柄进行解析,得到所述目标索引和原密钥句柄;
基于所述原密钥句柄的预定字节,确定位置偏移量;
基于所述位置偏移量和所述原密钥句柄,确定异或因子;
基于所述目标索引和所述异或因子,确定所述索引值;
所述密钥恢复模块,还用于获取外置存储设备中存储的所述根密钥,或,根据所述外置存储设备中存储的种子或助记词重新生成所述根密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811309425.5A CN109088902B (zh) | 2018-11-05 | 2018-11-05 | 注册方法及装置、认证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811309425.5A CN109088902B (zh) | 2018-11-05 | 2018-11-05 | 注册方法及装置、认证方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109088902A CN109088902A (zh) | 2018-12-25 |
CN109088902B true CN109088902B (zh) | 2019-10-25 |
Family
ID=64844748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811309425.5A Active CN109088902B (zh) | 2018-11-05 | 2018-11-05 | 注册方法及装置、认证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109088902B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109741511A (zh) * | 2018-12-26 | 2019-05-10 | 复旦大学 | 基于区块链和层次化确定性钱包的投票***及其使用方法 |
CN110401663B (zh) * | 2019-07-30 | 2021-08-31 | 飞天诚信科技股份有限公司 | 一种快速注册认证器的方法及*** |
CN112001717A (zh) * | 2020-10-27 | 2020-11-27 | 四川泰立科技股份有限公司 | 一种数字电视的加密货币计算方法、***及存储介质 |
CN112311558B (zh) * | 2020-12-28 | 2021-04-06 | 飞天诚信科技股份有限公司 | 一种密钥设备的工作方法及密钥设备 |
CN113965321B (zh) * | 2021-10-15 | 2024-05-28 | 杭州安恒信息技术股份有限公司 | 基于密钥流池的实时加解密方法、***、计算机和存储介质 |
CN114697019B (zh) * | 2022-02-24 | 2023-12-15 | 南京工程学院 | 一种用户账号隐私保护方法及*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105827655A (zh) * | 2016-05-27 | 2016-08-03 | 飞天诚信科技股份有限公司 | 一种智能密钥设备及其工作方法 |
CN108092776A (zh) * | 2017-12-04 | 2018-05-29 | 南京南瑞信息通信科技有限公司 | 一种身份认证服务器和身份认证令牌 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8886964B1 (en) * | 2014-04-24 | 2014-11-11 | Flexera Software Llc | Protecting remote asset against data exploits utilizing an embedded key generator |
CN105162785B (zh) * | 2015-09-07 | 2019-01-04 | 飞天诚信科技股份有限公司 | 一种基于认证设备进行注册的方法和设备 |
CN107276756A (zh) * | 2017-07-27 | 2017-10-20 | 深圳市金立通信设备有限公司 | 一种获取根密钥的方法及服务器 |
CN108365952A (zh) * | 2018-01-25 | 2018-08-03 | 深圳市文鼎创数据科技有限公司 | 一种注册的方法、***及智能密钥安全设备 |
-
2018
- 2018-11-05 CN CN201811309425.5A patent/CN109088902B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105827655A (zh) * | 2016-05-27 | 2016-08-03 | 飞天诚信科技股份有限公司 | 一种智能密钥设备及其工作方法 |
CN108092776A (zh) * | 2017-12-04 | 2018-05-29 | 南京南瑞信息通信科技有限公司 | 一种身份认证服务器和身份认证令牌 |
Also Published As
Publication number | Publication date |
---|---|
CN109088902A (zh) | 2018-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109088902B (zh) | 注册方法及装置、认证方法及装置 | |
CN110493202B (zh) | 登录令牌的生成及验证方法、装置和服务器 | |
US10790976B1 (en) | System and method of blockchain wallet recovery | |
ES2818199T3 (es) | Método de verificación de seguridad con base en una característica biométrica, un terminal de cliente y un servidor | |
CN111914027B (zh) | 一种区块链交易关键字可搜索加密方法及*** | |
US10474823B2 (en) | Controlled secure code authentication | |
US9350728B2 (en) | Method and system for generating and authorizing dynamic password | |
CN108900471A (zh) | 用于传输数据的服务器、客户端、网络***及方法 | |
EP3069249A2 (en) | Authenticatable device | |
CN106612180A (zh) | 实现会话标识同步的方法及装置 | |
CN104113411B (zh) | 一种ic卡脱机pin验证方法以及ic卡脱机验证*** | |
CN112989426B (zh) | 授权认证方法及装置、资源访问令牌的获取方法 | |
KR20150059347A (ko) | 휴대 단말기, 단말기 및 보안쿠키를 이용한 인증 방법 | |
US20100241865A1 (en) | One-Time Password System Capable of Defending Against Phishing Attacks | |
CN101216915A (zh) | 安全移动支付方法 | |
CN109067544A (zh) | 一种软硬结合的私钥验证方法、装置及*** | |
CN109508529B (zh) | 一种支付终端安全启动校验的实现方法 | |
CN109302442A (zh) | 一种数据存储证明方法及相关设备 | |
CN111859424B (zh) | 物理管理平台的数据加密方法、***、终端及存储介质 | |
CN107026729B (zh) | 用于传输软件的方法和装置 | |
CN111628985A (zh) | 安全访问控制方法、装置、计算机设备和存储介质 | |
CN110750303B (zh) | 基于fpga的流水线式指令读取方法及装置 | |
CN107645382A (zh) | 一种身份标识设备及其工作方法 | |
CN107277054A (zh) | 一种数据完整性验证的方法及*** | |
JP6203556B2 (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 |