CN114338052A - 一种身份认证的实现方法及装置 - Google Patents
一种身份认证的实现方法及装置 Download PDFInfo
- Publication number
- CN114338052A CN114338052A CN202210256868.2A CN202210256868A CN114338052A CN 114338052 A CN114338052 A CN 114338052A CN 202210256868 A CN202210256868 A CN 202210256868A CN 114338052 A CN114338052 A CN 114338052A
- Authority
- CN
- China
- Prior art keywords
- authentication
- upper computer
- instruction
- identification
- identifier
- 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
Abstract
本发明公开一种身份认证的实现方法及装置,该方法包括:当接收到获取密钥指令时生成认证设备密钥对并保存,将认证设备公钥返回给上位机;当接收到设置PIN码指令时保存该指令中的PIN码哈希值,给上位机返回设置成功响应;当接收到第一获取认证标识指令时生成认证标识并将认证标识与第一获取认证标识指令中的第三方标识、使用权限信息对应保存,设置认证标识的有效期,将加密后的认证标识返回给上位机;当接收到认证指令时判断认证指令中的认证标识是否在有效期内且判断是否具有执行认证操作的权限,如均为是则使用认证标识对认证指令中的认证数据进行签名并将签名结果返回给上位机。本技术方案使用户使用应用时更加灵活方便、安全可靠。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种身份认证的实现方法及装置。
背景技术
随着互联网技术的快速发展,根据用户的不同需求产生各种FIDO应用(例如操作系统、浏览器等),为了保证FIDO应用及用户身份信息的安全,在使用各种FIDO应用时,均需对用户身份进行认证,且认证方式也越来越多。现有技术中,常用的身份认证方式有PIN码认证、生物特征(例如指纹)认证等。每次登录FIDO应用时均需对用户身份进行认证,且每次认证均需输入PIN码或录入生物特征,用户操作繁琐,应用使用不便;在进行每次认证时传输的PIN码或者生物特征也存在被泄露的风险。故亟需提供一种操作简单使用方便且安全可靠的身份认证方法。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种身份认证的实现方法及装置。
第一方面,本发明实施例提供了一种身份认证的实现方法,包括:
步骤A:当接收到获取密钥指令时生成认证设备密钥对并保存,将所述认证设备密钥对中的认证设备公钥返回给上位机,等待接收所述上位机下发的指令,所述认证设备密钥对包括所述认证设备公钥和认证设备私钥;
步骤B:当接收到设置PIN码指令时,判断是否保存有认证设备私钥,是则根据所述认证设备私钥对所述设置PIN码指令进行验证,如验证通过则保存所述设置PIN码指令中的PIN码哈希值,给上位机返回设置成功响应,等待接收所述上位机下发的指令,如验证未通过则报错,等待接收所述上位机下发的指令,否则报错,等待接收所述上位机下发的指令;
步骤C:当接收到第一获取认证标识指令时,判断是否保存有PIN码哈希值和认证设备私钥,是则根据所述PIN码哈希值和所述认证设备私钥对用户身份进行验证,如验证成功则生成认证标识并将所述认证标识与所述第一获取认证标识指令中的第三方标识、使用权限信息对应保存,设置所述认证标识的有效期,对所述认证标识进行加密并将加密后的认证标识返回给上位机,等待接收所述上位机下发的指令,如验证失败则报错,等待接收所述上位机下发的指令,否则报错,等待接收所述上位机下发的指令;
步骤D:当接收到认证指令时,判断是否保存有第三方标识和对应的使用权限信息,是则根据所述第三方标识、所述使用权限信息验证所述认证指令,如验证通过则判断所述认证指令中的认证标识是否在有效期内且判断是否具有执行认证操作的权限,如均为是则使用所述认证标识对所述认证指令中的认证数据进行签名并将签名结果返回给上位机,等待接收所述上位机下发的指令,否则报错,等待接收所述上位机下发的指令,如验证未通过则报错,等待接收所述上位机下发的指令,如未保存则报错,等待接收所述上位机下发的指令。
第二方面,本发明实施例又提供一种身份认证的实现装置, 包括:
获取密钥模块,用于当接收到获取密钥指令时生成认证设备密钥对并保存,将所述认证设备密钥对中的认证设备公钥返回给上位机,所述认证设备密钥对包括所述认证设备公钥和认证设备私钥;
设置身份信息模块,用于当接收到设置PIN码指令时,判断是否保存有认证设备私钥,是则根据所述认证设备私钥对所述设置PIN码指令进行验证,如验证通过则保存所述设置PIN码指令中的PIN码哈希值,给上位机返回设置成功响应,如验证未通过则报错,否则报错;
第一获取认证标识模块,用于当接收到获取认证标识指令时,判断是否保存有PIN码哈希值和认证设备私钥,是则根据所述PIN码哈希值和所述认证设备私钥对用户身份进行验证,如验证成功则生成认证标识并将所述认证标识与所述第一获取认证标识指令中的第三方标识、使用权限信息对应保存,设置所述认证标识的有效期,对所述认证标识进行加密并将加密后的认证标识返回给上位机,如验证失败则报错,否则报错;
认证模块,用于当接收到认证指令时,判断是否保存有第三方标识和对应的使用权限信息,是则根据所述第三方标识、所述使用权限信息验证所述认证指令,如验证通过则判断所述认证指令中的认证标识是否在有效期内且判断是否具有执行认证操作的权限,如均为是则使用所述认证标识对所述认证指令中的认证数据进行签名并将签名结果返回给上位机,否则报错,如验证未通过则报错,如未保存则报错。
第三方面,本发明又提供一种认证设备,所述认证设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现上述的身份认证的实现方法。
第四方面,本发明实施例又提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行上述的身份认证的实现方法。
第五方面,本发明实施例又提供一种芯片,所述芯片与存储器耦合,用于执行所述存储器中存储的计算机程序,以执行上述的身份认证的实现方法。
本发明技术方案中,用户首次使用FIDO应用时先进行设PIN码操作,然后登录FIDO应用会使用PIN码哈希值对用户身份进行验证,验证通过后生成认证标识,后续再使用FIDO应用时使用认证标识对用户身份进行验证,而无需进行验PIN码的操作,使用更加灵活方便,同时减少PIN码的传输,减少多次验证带来的效率负担;通过将认证标识与第三方标识、使用权限信息对用保存,使得不同的认证标识运用在不同的应用和场景中,进一步地提高用户信息的安全性。
附图说明
图1为本发明实施例1提供的一种身份认证的实现方法的流程图;
图2和图3为本发明实施例2提供的一种身份认证的实现方法的流程图;
图4为本发明实施例3提供的设置PIN码过程的流程图;
图5为本发明实施例3提供的录入生物信息过程的流程图;
图6为本发明实施例3提供的设置认证标识过程的一种实现方式流程图;
图7为本发明实施例3提供的设置认证标识过程的第二种实现方式流程图;
图8为本发明实施例3提供的认证过程的流程图;
图9为本发明实施例4提供的一种身份认证的实现装置方框图。
具体实施方式
本申请提出了一种身份认证的实现方法及装置,下面结合附图,对本申请具体实施方式进行详细说明。所述实施例的示例在附图中示出。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明实施方式作进一步地详细描述。
实施例1
本发明实施例1提供了一种身份认证的实现方法,如图1所示,包括如下步骤:
步骤R:等待接收上位机下发的指令;
步骤A:当接收到获取密钥指令时生成认证设备密钥对并保存,将认证设备密钥对中的认证设备公钥返回给上位机,认证设备密钥对包括认证设备公钥和认证设备私钥,返回步骤R;
步骤B:当接收到设置PIN码指令时,判断是否保存有认证设备私钥,是则根据认证设备私钥对设置PIN码指令进行验证,如验证通过则保存所述设置PIN码指令中的PIN码哈希值,给上位机返回设置成功响应,返回步骤R,如验证未通过则报错,返回步骤R,否则报错;
步骤C:当接收到第一获取认证标识指令时,判断是否保存有PIN码哈希值和认证设备私钥,是则根据PIN码哈希值和认证设备私钥对用户身份进行验证,如验证成功则生成认证标识并将认证标识与第一获取认证标识指令中的第三方标识、使用权限信息对应保存,设置认证标识的有效期,对认证标识进行加密并将加密后的认证标识返回给上位机,返回步骤R,如验证失败则报错,返回步骤R,否则报错,返回步骤R;
步骤D:当接收到认证指令时,判断是否保存有第三方标识和对应的使用权限信息,是则根据第三方标识、使用权限信息验证认证指令,如验证通过则判断认证指令中的认证标识是否在有效期内且判断是否具有执行认证操作的权限,如均为是则使用认证标识对认证指令中的认证数据进行签名并将签名结果返回给上位机,返回步骤R,否则报错,返回步骤R,如验证未通过则报错,返回步骤R,如未保存则报错,返回步骤R。
其中,本实施例中的步骤B包括:
步骤B1:当接收到设置PIN码指令时,解析设置PIN码指令得到上位机公钥、PIN码哈希值密文和第一认证参数,判断是否保存有认证设备私钥,是则执行步骤B2,否则向上位机报错,返回步骤R;
步骤B2:使用第一预设算法根据认证设备私钥和上位机公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第一固定数据生成第一共享密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
步骤B3:使用第一共享密钥对第一认证参数进行验证,如验证通过,执行步骤B4,如验证未通过则向上位机报错,返回步骤R;
在本实施例中,使用第一共享密钥对第一认证参数进行验证,具体为:根据第三预设算法对第一共享密钥和PIN码哈希值密文进行哈希运算得到第一摘要值,判断第一摘要值与第一认证参数是否一致,如果是,判定验证通过,否则,判定验证未通过;
步骤B4:使用第二共享密钥解密PIN码哈希值密文得到PIN码哈希值并保存,向上位机返回设置PIN码成功响应,返回步骤R。
其中,本实施例中的步骤C包括:
步骤C1:当接收到第一获取认证标识指令时,解析第一获取认证标识指令得到可信任的第三方标识、使用权限信息、上位机公钥和PIN码哈希值密文,判断是否保存有PIN码哈希值和认证设备私钥,是则执行步骤C2,否则向上位机报错,返回步骤R;
步骤C2:使用第一预设算法根据认证设备私钥和上位机公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
步骤C3:使用第二共享密钥解密PIN码哈希值密文得到PIN码哈希值,判断解密得到的PIN码哈希值与保存的PIN码哈希值是否相同,是则执行步骤C4,否则向上位机报错,返回步骤R;
具体的,在本实施例中,步骤C3包括:使用第二共享密钥解密PIN码哈希值密文得到PIN码哈希值的部分数据,从保存的PIN码哈希值中截取预设字节得到第二数值,判断第二数值与PIN码哈希值的部分数据是否相同,是则执行步骤C4,否则,向上位机报错,返回步骤R;
步骤C4:生成认证标识并将认证标识与第三方标识、使用权限信息对应保存,设置认证标识的有效期,使用第二共享密钥对认证标识进行加密得到认证标识密文,向上位机返回包含认证标识密文的第一获取认证标识响应,返回步骤R。
其中,本实施例中的方法还包括:
步骤E:当接收到录入生物信息指令时,判断是否保存有认证标识,是则使用认证标识对录入生物信息指令进行验证,如验证通过则提示用户录入生物信息,并根据接收到的用户录入的完整生物信息生成生物信息模板并保存,将对应的模板标识返回给上位机,返回步骤R,如验证失败则报错,返回步骤R;否则报错,返回步骤R;
步骤F:当接收到第二获取认证标识指令时,根据第二获取认证标识指令中的模板标识判断是否保存有对应的生物信息模板,是则根据生物信息模板对用户身份进行验证,如验证成功则清除保存的认证标识、第三方标识、使用权限信息和设置的认证标识的有效期,生成认证标识并将认证标识与第二获取认证标识指令中的第三方标识、使用权限信息对应保存,设置认证标识的有效期,对认证标识进行加密并将加密后的认证标识返回给上位机,返回步骤R,如验证失败则报错,返回步骤R;否则报错,返回步骤R。
更进一步地,步骤E包括:
步骤E1:当接收到录入生物信息指令时,解析录入生物信息指令得到第二认证参数,判断是否保存有认证标识和交换密钥,是则执行步骤E2,否则向上位机报错,返回步骤R;
步骤E2:使用认证标识和交换密钥对第二认证参数进行验证,如验证通过,执行步骤E3,如验证未通过则向上位机报错,返回步骤R;
具体的,在本实施例中,步骤E2包括:使用认证标识对交换密钥进行哈希计算得到第二认证参数,判断计算得到的第二认证参数是否与解析得到的第二认证参数一致,是则验证通过,执行步骤E3,否则验证未通过,向上位机报错,返回步骤R;
步骤E3:提示用户录入生物信息,当接收到用户录入的完整生物信息时根据已录入的完整生物信息生成生物信息模板和对应的模板标识,向上位机返回包含模板标识的录入响应,返回步骤R。
更进一步地,步骤F包括:
步骤F1:当接收到第二获取认证标识指令时,解析第二获取认证标识指令得到模板标识加密结果、上位机公钥、可信任的第三方标识和使用权限信息,判断是否保存有认证设备私钥,是则执行步骤F2,否则向上位机报错,返回步骤R;
步骤F2:使用第一预设算法根据认证设备私钥和上位机公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
步骤F3:使用第二共享密钥解密模板标识加密结果得到模板标识,判断是否保存有与模板标识对应的生物信息模板,是则执行步骤F4,否则向上位机报错,返回步骤R;
步骤F4:提示用户录入与模板标识对应的生物信息,当接收到用户录入的完整的生物信息时,判断完整的生物信息是否与生物信息模板匹配,如果是,执行步骤F5,否则,向上位机报错,返回步骤R;
步骤F5:清除保存的认证标识、第三方标识、使用权限信息和设置的认证标识的有效期,生成认证标识并将认证标识与可信任的第三方标识和使用权限信息对应保存,设置认证标识的有效期,;
步骤F6:使用第二共享密钥对认证标识进行加密得到认证标识密文,向上位机返回包含认证标识密文的第二获取认证标识响应,返回步骤R。
其中,本实施例中的步骤D包括:
步骤D1:当接收到认证指令时,解析认证指令得到可信任的第三方标识和认证数据,判断是否保存有第三方标识和对应的使用权限信息,是则执行步骤D2,否则向上位机报错,返回步骤R;
步骤D2:判断保存的可信任的第三方标识与解析得到的可信任的第三方标识是否匹配,如果是,执行步骤D3,否则向上位机报错,返回步骤R;
步骤D3:根据保存的与可信任的第三方标识对应的使用权限信息判断是否可以执行认证操作,如果是,执行步骤D4,否则向上位机报错,返回步骤R;
步骤D4:获取保存的认证标识有效期,根据认证标识有效期判断保存的认证标识是否有效,是则执行步骤D5,否则向上位机报错,返回步骤R;
具体的,在本实施例中,根据认证标识有效期判断保存的认证标识是否有效,具体为:判断当前时间是否小于认证标识有效期,是则保存的认证标识有效,否则保存的认证标识无效;
步骤D5:根据第四预设算法使用认证标识对可信任的第三方标识进行哈希计算得到第三数值,从第三数值中截取预设字节得到验证数据,判断认证数据与验证数据是否相同,如果是,执行步骤D6,否则,向上位机报错,返回步骤R;
步骤D6:使用认证标识对认证数据进行签名得到签名结果,将签名结果返回给上位机,返回步骤R。
本实施例方法中用户首次使用FIDO应用时先进行设PIN码操作,然后登录FIDO应用会使用PIN码哈希值对用户身份进行验证,验证通过后生成认证标识,后续再使用FIDO应用时使用认证标识对用户身份进行验证,而无需进行验PIN码操作,使用更加灵活方便,同时减少PIN码传输,减少多次验证带来的效率负担;通过将认证标识与第三方标识、使用权限信息对用保存,使得不同的认证标识运用在不同的应用和场景中(即同一用户使用某一应用只能使用唯一的认证标识,不同用户可以使用不同的认证标识使用某一应用,同一用户使用不同应用可使用不同的认证标识),进一步地提高用户信息的安全性。
实施例2
本发明实施例2提供了一种身份认证的实现方法,如图2和图3所示,包括如下步骤:
步骤201:认证设备上电,初始化;
步骤202:认证设备等待接收上位机的指令,当接收到上位机的指令时,判断指令类型,如为获取密钥指令,执行步骤203,如为设置PIN码指令,执行步骤204,如为第一获取认证标识指令,执行步骤208,如为录入生物信息指令,执行步骤212,如为第二获取认证标识指令,执行步骤215,如为认证指令,执行步骤221;
步骤203:认证设备生成认证设备密钥对并保存,将认证设备密钥对中的认证设备公钥返回给上位机,返回步骤202;
具体地,本实施例中,认证设备密钥对包含认证设备公钥和认证设备私钥;
可选地,本实施例中,认证设备密钥对是由椭圆曲线算法产生的密钥对;
例如:认证设备密钥对具体为:
D_PriKey:6982569328863289EACCD477EDFBAF1CF54646D18182BF40B05E9E204148AFB7;
D_PubKey:64E1DB81FDB40D521E47A64B80D3D44EFEE007660A4ED3B2736D0C5DEEE8EB629B53B1115AE4901B7FBAF710BD22A1AAA0D9ED4FD23F275490551632A76CA602;
认证设备公钥具体为:
D_PubKey:64E1DB81FDB40D521E47A64B80D3D44EFEE007660A4ED3B2736D0C5DEEE8EB629B53B1115AE4901B7FBAF710BD22A1AAA0D9ED4FD23F275490551632A76CA602;
认证设备私钥具体为:
D_PriKey:6982569328863289EACCD477EDFBAF1CF54646D18182BF40B05E9E204148AFB7;
步骤204:认证设备解析设置PIN码指令得到上位机公钥、PIN码哈希值密文和第一认证参数,判断是否保存有认证设备私钥,是则执行步骤205,否则向上位机报错,返回步骤202;
例如:上位机公钥具体为:
C_PubKey:01A54229D5C5349120CEF6D1292DA95440A1333C97E4315444EDD0FCF3E3C2A96A13F3C9F33C396831A1012755D3785FAFEEE04E31623CEB5B4D8F63A89441C8;
PIN码哈希值密文具体为:5628C7987C11ACB23E61622E26600505FC898C793619C7A5E03254F54C0017076AFE44100E0BA02D91FFA3DFCC339EA383E3AB5B84772406EA724BA3E22C4E69;
第一认证参数具体为:C9D87559A9161C52A18034E0ED0CCADDED08B5F7D15CB84405784DBAC0DFDD14;
例如,该步骤204中返回的错误码为0x31;
步骤205:认证设备使用第一预设算法根据认证设备私钥和上位机公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第一固定数据生成第一共享密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
可选地,本实施例中,第一预设算法具体为ECDH密钥交换算法,第二预设算法具体为HKDF算法;
可选地,本实施例中,第一共享密钥用作MAC(消息认证码)密钥,第二共享密钥用作加密密钥;
具体地,本实施例中,盐值的长度为32字节;
步骤206:认证设备使用第一共享密钥对第一认证参数进行验证,如验证通过,执行步骤207,如验证未通过则向上位机报错,返回步骤202;
可选地,本实施例中,第一认证参数是由上位机根据第三预设算法对第一共享密钥和PIN码哈希值密文进行哈希运算得到的结果;
可选地,本实施例中,第三预设算法具体为HMAC-SHA-256算法;
可选地,本实施例中,认证设备使用第一共享密钥对第一认证参数进行验证,具体为:认证设备根据第三预设算法对第一共享密钥和PIN码哈希值密文进行哈希运算得到第一摘要值,判断第一摘要值与第一认证参数是否一致,如果是,判定验证通过,否则,判定验证未通过;
例如,该步骤206中返回的错误码为0x31;
步骤207:认证设备使用第二共享密钥解密PIN码哈希值密文得到PIN码哈希值并保存,向上位机返回设置PIN码成功响应,返回步骤202;
步骤208:认证设备解析第一获取认证标识指令得到上位机公钥、PIN码哈希值密文、可信任的第三方标识和使用权限信息,判断是否保存有PIN码哈希值和认证设备私钥,是则执行步骤209,否则向上位机报错,返回步骤202;
例如,该步骤208中返回的错误码为0x35;
步骤209: 认证设备使用第一预设算法根据认证设备私钥和上位机公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第一固定数据生成第一共享密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
步骤210:认证设备使用第二共享密钥解密PIN码哈希值密文得到PIN码哈希值,判断解密得到的PIN码哈希值与保存的PIN码哈希值是否相同,如果是,执行步骤211,否则,向上位机报错,返回步骤202;
可选的,在本实施例中,步骤210还可以为:认证设备使用第二共享密钥解密PIN码哈希值密文得到PIN码哈希值的部分数据,从保存的PIN码哈希值中截取预设字节得到第二数值,判断第二数值与PIN码哈希值的部分数据是否相同,如果是,执行步骤211,否则,向上位机报错,返回步骤202;
例如,该步骤210中返回的错误码为0x36;
步骤211:认证设备生成认证标识并将认证标识与可信任的第三方标识和使用权限信息对应保存,设置认证标识的有效期,使用第二共享密钥对认证标识进行加密得到认证标识密文,向上位机返回包含认证标识密文的第一获取认证标识响应,返回步骤202;
步骤212:认证设备解析录入生物信息指令得到第二认证参数,判断是否保存有认证标识和交换密钥,是则执行步骤213,否则向上位机报错,返回步骤202;
例如,该步骤212中返回的错误码为0x31;
步骤213:认证设备使用认证标识和交换密钥对第二认证参数进行验证,如验证通过,执行步骤214,如验证未通过则向上位机报错,返回步骤202;
具体的,在本实施例中,步骤213包括:认证设备使用保存的认证标识对交换密钥进行哈希计算得到第二认证参数,判断计算得到的第二认证参数是否与解析得到的第二认证参数一致,是则验证通过,执行步骤214,否则验证未通过,向上位机报错,返回步骤202;
可选地,本实施例中,步骤213中的认证标识具体为PIN码认证标识;
例如,该步骤213中返回的错误码为0x34;
步骤214:认证设备提示用户录入生物信息,当接收到用户录入的完整生物信息时根据已录入的完整生物信息生成生物信息模板和对应的模板标识,向上位机返回包含模板标识的录入响应,返回步骤202;
可选地,本实施例中,生物信息可以为指纹信息、面部信息、虹膜信息等;
步骤215:认证设备解析第二获取认证标识指令得到模板标识加密结果、上位机公钥、可信任的第三方标识和使用权限信息,判断是否保存有认证设备私钥,是则执行步骤216,否则向上位机报错,返回步骤202;
例如,该步骤215中返回的错误码为0x31;
步骤216: 认证设备使用第一预设算法根据认证设备私钥和上位机公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第一固定数据生成第一共享密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
步骤217:认证设备使用第二共享密钥解密模板标识加密结果得到模板标识,判断是否保存有与模板标识对应的生物信息模板,是则执行步骤218,否则向上位机报错,返回步骤202;
例如,该步骤217中返回的错误码为0x3E;
步骤218:提示用户录入与模板标识对应的生物信息,当接收到用户录入的生物信息时,判断该生物信息是否与保存的生物信息模板匹配,是则执行步骤219,否则,向上位机报错,返回步骤202;
例如,该步骤218中返回的错误码为0x3F;
步骤219:认证设备清除保存的认证标识、第三方标识、使用权限信息和设置的认证标识的有效期,生成认证标识并将认证标识与可信任的第三方标识和使用权限信息对应保存,设置认证标识的有效期;
可选的,在本实施例中,如第一获取认证标识指令与第二获取认证标识指令中的第三方标识相同,则认证设备中只能存在一个认证标识,即步骤219中生成新的认证标识之前会清除已存在的认证标识及相关信息,或者用生成的新的认证标识覆盖已存在的认证标识及相关信息;
步骤220:认证设备使用第二共享密钥对认证标识进行加密得到认证标识密文,向上位机返回包含认证标识密文的第二获取认证标识响应,返回步骤202;
步骤221:认证设备解析认证指令得到可信任的第三方标识和认证数据,判断是否保存有第三方标识和对应的使用权限信息,是则执行步骤222,否则向上位机报错,返回步骤202;
例如,该步骤221中返回的错误码为0x41;
步骤222:认证设备判断保存的可信任的第三方标识与解析得到的可信任的第三方标识是否匹配,如果是,执行步骤223,否则,向上位机报错,返回步骤202;
例如,该步骤222中返回的错误码为0x42;
步骤223:认证设备根据保存的与可信任的第三方标识对应的使用权限信息判断是否可以执行认证操作,如果是,执行步骤224,否则,向上位机报错,返回步骤202;
可选地,在一种可能实现的实施方式中,认证指令为创建凭证指令;
认证设备根据保存的与第三方标识对应的使用权限信息判断是否可以执行认证操作,具体为:认证设备判断保存的与第三方标识对应的使用权限信息是否为认证标识用于创建凭证,如果是,则执行创建凭证操作,否则,不执行创建凭证操作;
可选地,在一种可能实现的实施方式中,认证指令为获取断言指令;
认证设备根据保存的与第三方标识对应的使用权限信息判断是否可以执行认证操作,具体为:认证设备判断保存的与第三方标识对应的使用权限信息是否为认证标识用于获取断言,如果是,则执行获取断言操作,否则,不执行获取断言操作;
例如,该步骤223中返回的错误码为0x40;
步骤224:认证设备获取保存的认证标识有效期,根据认证标识有效期判断保存的认识标识是否有效,是则执行步骤225,否则,向上位机报错,返回步骤202;
例如,该步骤224中返回的错误码为0x34;
步骤225:认证设备根据第四预设算法使用保存的认证标识对可信任的第三方标识进行哈希计算得到第三数值,从第三数值中截取预设字节得到验证数据,判断认证数据与验证数据是否相同,如果是,执行步骤226,否则,向上位机报错,返回步骤202;
例如,该步骤225中返回的错误码为0x2F;
步骤226:认证设备使用保存的认证标识对认证数据进行签名得到签名结果,将签名结果返回给上位机,返回步骤202。
在本实施例中,向上位机报错时通过返回不同的错误码来通知上位机出错的步骤,需要重新进行操作,上位机会下发相应的指令。
本实施例中,用户首次使用FIDO应用时先进行设PIN码操作,然后登录FIDO应用会使用PIN码哈希值对用户身份进行验证,验证通过后生成认证标识,在录入指纹时使用认证标识对用户身份进行验证,验证通过后清除保存的认证标识然后生成一个新的认证标识并保存,后续再使用FIDO应用时使用保存的认证标识对用户身份进行验证,而无需进行验PIN码或验指纹的操作,使用更加灵活方便,同时减少PIN码或指纹信息的传输,减少多次验证带来的效率负担;通过将认证标识与第三方标识、使用权限信息对用保存,使得不同的认证标识运用在不同的应用和场景中,进一步地提高用户信息的安全性。
实施例3
本发明实施例3提供了一种身份认证的实现方法,包括设置PIN码过程、录入生物信息过程、设置认证标识过程以及认证过程。
其中,设置PIN码过程,如图4所示,包括如下步骤:
步骤301:上位机向认证设备发送获取密钥指令;
步骤302:认证设备生成认证设备密钥对并保存,将认证设备密钥对中的认证设备公钥返回给上位机;
具体地,本实施例中,认证设备密钥对包含认证设备公钥和认证设备私钥; 可选的,认证设备每次生成的认证设备密钥可不同;
可选地,本实施例中,认证设备密钥对是由椭圆曲线算法产生的密钥对;
步骤303:上位机接收认证设备发送的认证设备公钥,使用第一预设算法根据上位机私钥和认证设备公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第一固定数据生成第一共享密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
可选地,本实施例中,第一预设算法具体为ECDH密钥交换算法,第二预设算法具体为HKDF算法;
可选地,本实施例中,第一共享密钥用作MAC(消息认证码)密钥,第二共享密钥用作加密密钥;
具体地,本实施例中,盐值的长度为32字节;
步骤304:上位机获取用户录入的PIN码,使用第一共享密钥对PIN码进行哈希计算得到PIN码哈希值,使用第二共享密钥对PIN码哈希值进行加密得到PIN码哈希值密文;根据第一共享密钥和PIN码哈希值密文进行生成第一认证参数;
具体的,在本实施例中,使用第一共享密钥对PIN码进行哈希计算得到PIN码哈希值包括:上位机根据第三预设算法对第一共享密钥和PIN码进行哈希运算得到PIN码哈希值;
根据第一共享密钥和PIN码哈希值密文进行生成第一认证参数,具体为:上位机根据第三预设算法对第一共享密钥和PIN码哈希值密文进行哈希运算得到第一认证参数;
步骤305:上位机获取上位机公钥,根据上位机公钥、PIN码哈希值密文和第一认证参数生成设置PIN码指令,向认证设备发送设置PIN码指令;
步骤306:认证设备接收上位机发送的设置PIN码指令,解析设置PIN码指令得到上位机公钥、PIN码哈希值密文和第一认证参数;
步骤307:认证设备使用第一预设算法根据认证设备私钥和上位机公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第一固定数据生成第一共享密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
步骤308:认证设备使用第一共享密钥对第一认证参数进行验证,如验证通过,执行步骤309,如验证未通过则向上位机报错;
可选地,本实施例中,认证设备使用第一共享密钥对第一认证参数进行验证,具体为:认证设备根据第三预设算法对第一共享密钥和PIN码哈希值密文进行哈希运算得到第一摘要值,判断第一摘要值与第一认证参数是否一致,如果是,判定验证通过,否则,判定验证未通过;
可选地,本实施例中,第三预设算法具体为HMAC-SHA-256算法;
步骤309:认证设备使用第二共享密钥解密PIN码哈希值密文得到PIN码哈希值并保存,向上位机返回设置PIN码成功响应。
其中,录入生物信息过程,如图5所示,包括如下步骤:
步骤401:上位机向认证设备发送获取密钥指令;
步骤402:认证设备生成认证设备密钥对并保存,将认证设备密钥对中的认证设备公钥返回给上位机;
步骤403:上位机接收认证设备发送的认证设备公钥,使用第一预设算法根据上位机私钥和认证设备公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第一固定数据生成第一共享密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
步骤404:上位机获取用户录入的PIN码,根据第四预设算法使用第一共享密钥对PIN码进行哈希计算得到PIN码哈希值并保存,使用第二共享密钥对PIN码哈希值进行加密得到PIN码哈希值密文;
步骤405:上位机根据上位机公钥和PIN码哈希值密文生成第一获取认证标识指令,向认证设备发送第一获取认证标识指令;
步骤406:认证设备解析第一获取认证标识指令得到上位机公钥和PIN码哈希值密文;
步骤407:认证设备使用第一预设算法根据认证设备私钥和上位机公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第一固定数据生成第一共享密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
步骤408:认证设备使用第二共享密钥解密PIN码哈希值密文得到PIN码哈希值,获取保存的PIN码哈希值,判断解密的得到的PIN码哈希值与获取的PIN码哈希值是否相同,如果是,执行步骤409,否则,向上位机报错;
步骤409:认证设备生成认证标识并将认证标识与第一获取认证标识指令中的第三方标识、使用权限信息对应保存,设置认证标识的有效期,使用第二共享密钥对认证标识进行加密得到认证标识密文,向上位机返回包含认证标识密文的获取认证标识响应;
步骤410:上位机接收认证设备发送的获取认证标识响应,解析获取认证标识响应得到认证标识密文,使用第二共享密钥解密认证标识密文得到认证标识并保存;
步骤411:上位机使用认证标识对生成的交换密钥进行哈希计算得到第二认证参数,向认证设备发送包含第二认证参数的录入生物信息指令;
步骤412:认证设备接收上位机发送的录入生物信息指令,解析录入生物信息指令得到第二认证参数;
步骤413:认证设备使用保存的认证标识对第二认证参数进行验证,如验证通过,执行步骤414,否则,向上位机报错;
在本实施例中,步骤413的实现过程与步骤213相同,在此不再赘述;
步骤414:认证设备提示用户录入生物信息,当接收到生物信息时根据已录入的完整生物信息生成生物信息模板和对应的模板标识,向上位机返回包含模板标识的录入响应。
具体的,本实施例中的模板标识为模板编号,例如生物信息为指纹信息,则大拇指对应的模板标识为1,食指对应的模板标识为2,中指对应的模板标识为3,无名指对应的模板标识为4,小拇指对应的模板标识为5;
其中,设置认证标识过程有两种实现方式;
设置认证标识过程的第一种实现方式,如图6所示,包括如下步骤:
步骤501:上位机向认证设备发送获取密钥指令;
步骤502:认证设备生成认证设备密钥对并保存,将认证设备密钥对中的认证设备公钥返回给上位机;
步骤503:上位机接收认证设备发送的认证设备公钥,使用第一预设算法根据上位机私钥和认证设备公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第一固定数据生成第一共享密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
步骤504:上位机获取保存的PIN码哈希值,从PIN码哈希值中截取预设字节得到第一数值,使用第二共享密钥对第一数值进行加密得到PIN码哈希值密文;
步骤505:上位机获取上位机公钥、可信任的第三方标识和使用权限信息,根据上位机公钥、PIN码哈希值密文、可信任的第三方标识和使用权限信息生成第一获取认证标识指令,向认证设备发送第一获取认证标识指令;
步骤506:认证设备接收上位机发送的第一获取认证标识指令,解析第一获取认证标识指令得到上位机公钥、PIN码哈希值密文、可信任的第三方标识和使用权限信息;
步骤507: 认证设备使用第一预设算法根据认证设备私钥和上位机公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第一固定数据生成第一共享密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
步骤508:认证设备使用第二共享密钥解密PIN码哈希值密文得到第一数值,获取保存的PIN码哈希值,从PIN码哈希值中截取预设字节得到第二数值,判断第二数值与解密得到的第一数值是否相同,如果是,执行步骤509,否则,向上位机报错;
步骤509:认证设备生成认证标识并将可信任的第三方标识和使用权限信息与认证标识对应保存,设置认证标识的有效期,使用第二共享密钥对认证标识进行加密得到认证标识密文,向上位机返回包含认证标识密文的第一获取认证标识响应;
步骤510:上位机接收认证设备发送的第一获取认证标识响应,解析第一获取认证标识响应得到认证标识密文,使用第二共享密钥解密认证标识密文得到认证标识并保存。
设置认证标识过程的第二种实现方式,如图7所示,包括如下步骤:
步骤601:上位机向认证设备发送获取密钥指令;
步骤602:认证设备生成认证设备密钥对并保存,将认证设备密钥对中的认证设备公钥返回给上位机;
步骤603:上位机接收认证设备发送的认证设备公钥,使用第一预设算法根据上位机私钥和认证设备公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第一固定数据生成第一共享密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
步骤604:上位机获取保存的模板标识,使用第二共享密钥对模板标识加密得到模板标识加密结果;
步骤605:上位机获取上位机公钥、可信任的第三方标识和使用权限信息,根据模板标识加密结果、上位机公钥、可信任的第三方标识和使用权限信息生成第二获取认证标识指令,向认证设备发送第二获取认证标识指令;
在本实施例中,可信任的第三方标识是上位机通过认证设备配置指令从服务器中获取的;
步骤606:认证设备接收上位机发送的第二获取认证标识指令,解析第二获取认证标识指令得到模板标识加密结果、上位机公钥、可信任的第三方标识和使用权限信息;
步骤607:认证设备使用第一预设算法根据认证设备私钥和上位机公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第一固定数据生成第一共享密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
步骤608:认证设备使用第二共享密钥解密模板标识加密结果得到模板标识,提示用户录入与模板标识对应的生物信息,当接收到用户录入的完整的生物信息时,判断该生物信息是否与保存的生物信息模板匹配,如果是,执行步骤609,否则,向上位机报错;
步骤609:认证设备清除保存的认证标识、第三方标识、使用权限信息和设置的认证标识的有效期,生成认证标识并将解析得到的可信任的第三方标识和使用权限信息与认证标识对应保存,设置认证标识的有效期;
步骤610:认证设备使用第二共享密钥对认证标识进行加密得到认证标识密文,向上位机返回包含认证标识密文的第二获取认证标识响应;
步骤611:上位机接收认证设备发送的第二获取认证标识响应,解析第二获取认证标识响应得到认证标识密文,使用第二共享密钥解密认证标识密文得到认证标识并保存。
其中,认证过程,如图8所示,包括如下步骤:
步骤701:上位机获取保存的可信任的第三方标识,根据第四预设算法使用认证标识对可信任的第三方标识进行哈希计算得到第三哈希值,从第三哈希值中截取预设字节得到认证数据,向认证设备发送包含可信任的第三方标识和认证数据的认证指令;
在本实施例中,可信任的第三方标识是上位机通过认证设备配置指令从服务器中获取的;
步骤702:认证设备接收上位机发送的认证指令,解析认证指令得到可信任的第三方标识和认证数据;
步骤703:认证设备判断保存的可信任的第三方标识与认证指令中的可信任的第三方标识是否匹配,如果是,执行步骤704,否则,向上位机报错;
步骤704:认证设备根据保存的与第三方标识对应的使用权限信息判断是否可以执行认证操作,如果是,执行步骤705,否则,向上位机报错;
可选地,在一种可能实现的实施方式中,认证指令为创建凭证指令;
认证设备根据保存的与第三方标识对应的使用权限信息判断是否可以执行认证操作,具体为:认证设备判断保存的与第三方标识对应的使用权限信息是否为认证标识用于创建凭证,如果是,则执行创建凭证操作,否则,不执行创建凭证操作;
可选地,在一种可能实现的实施方式中,认证指令为获取断言指令;
认证设备根据保存的与第三方标识对应的使用权限信息判断是否可以执行认证操作,具体为:认证设备判断保存的与第三方标识对应的使用权限信息是否为认证标识用于获取断言,如果是,则执行获取断言操作,否则,不执行获取断言操作;
步骤705:认证设备获取保存的认证标识,判断保存的认识标识是否有效,是则执行步骤706,否则,向上位机报错;
步骤706:认证设备根据第四预设算法使用保存的认证标识对可信任的第三方标识进行哈希计算得到第三数值,从第三数值中截取预设字节得到验证数据,判断认证数据与验证数据是否相同,如果是,执行步骤707,否则,向上位机报错;
步骤707:认证设备使用保存的认证标识对认证数据进行签名得到签名结果,将签名结果返回给上位机;
步骤708:上位机接收认证设备发送的签名结果并保存。
在本实施例中,上位机与认证设备之间先通过ECDH协商一个交换密钥,然后再通过HKDF分散出第一共享密钥(即加密密钥)和第二共享密钥(即MAC密钥);通过第一个共享密钥和第二个共享密钥保护PIN码的设置和修改,以及指纹、面部、虹膜等生物特征的录入;上位机和认证设备之间通过PIN码或指纹或其他生物特征验证获取认证标识,在获取认证标识时指定认证标识可以使用到哪些功能上(即将认证标识与可信任的第三方标识和使用权限信息对应保存),同时可以指定认证标识的有效时间;后续需要验证用户身份使用认证标识即可;使用更加灵活方便,同时减少PIN码或生物信息的传输,减少多次验证带来的效率负担;用户可使用不同的认证标识运用在不同的应用和场景中,进一步地提高用户信息的安全性。
实施例4
本发明实施例4提供一种身份认证的实现装置,如图9所示,包括:
获取密钥模块,用于当接收到获取密钥指令时生成认证设备密钥对并保存,将认证设备密钥对中的认证设备公钥返回给上位机,认证设备密钥对包括认证设备公钥和认证设备私钥;
设置身份信息模块,用于当接收到设置PIN码指令时,判断是否保存有认证设备私钥,是则根据认证设备私钥对设置PIN码指令进行验证,如验证通过则保存设置PIN码指令中的PIN码哈希值,给上位机返回设置成功响应,如验证未通过则报错,否则报错;
第一获取认证标识模块,用于当接收到第一获取认证标识指令时,判断是否保存有PIN码哈希值和认证设备私钥,是则根据PIN码哈希值和认证设备私钥对用户身份进行验证,如验证成功则生成认证标识并将认证标识与第一获取认证标识指令中的第三方标识、使用权限信息对应保存,设置认证标识的有效期,对认证标识进行加密并将加密后的认证标识返回给上位机,如验证失败则报错;否则报错;
认证模块,用于当接收到认证指令时,判断是否保存有第三方标识和对应的使用权限信息,是则根据第三方标识、使用权限信息验证认证指令,如验证通过则判断认证指令中的认证标识是否在有效期内且判断是否具有执行认证操作的权限,如均为是则使用认证标识对认证指令中的认证数据进行签名并将签名结果返回给上位机,否则报错,如验证未通过则报错,如未保存则报错。
在本实施例中,设置身份信息模块包括:
第一解析判断单元,用于当接收到设置PIN码指令时,解析设置PIN码指令得到上位机公钥、PIN码哈希值密文和第一认证参数,判断是否保存有认证设备私钥,是则触发第一生成单元,否则向上位机报错;
第一生成单元,用于使用第一预设算法根据认证设备私钥和上位机公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第一固定数据生成第一共享密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
第一验证单元,用于使用第一共享密钥对第一认证参数进行验证,如验证通过则触发第一解密保存单元,如验证未通过则向上位机报错;
其中,在本实施例中,第一验证单元具体用于根据第三预设算法对第一共享密钥和PIN码哈希值密文进行哈希运算得到第一摘要值,判断第一摘要值与第一认证参数是否一致,如果是则触发第一解密保存单元,否则向上位机报错;
第一解密保存单元,用于使用第二共享密钥解密PIN码哈希值密文得到PIN码哈希值并保存,向上位机返回设置PIN码成功响应。
在本实施例中,第一获取认证标识模块包括:
第二解析判断单元,用于当接收到第一获取认证标识指令时,解析第一获取认证标识指令得到可信任的第三方标识、使用权限信息、上位机公钥和PIN码哈希值密文,判断是否保存有PIN码哈希值和认证设备私钥,是则触发第一生成单元,否则向上位机报错;
第二生成单元,用于使用第一预设算法根据认证设备私钥和上位机公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
第一解密判断单元,用于使用第二共享密钥解密PIN码哈希值密文得到PIN码哈希值,判断解密得到的PIN码哈希值与保存的PIN码哈希值是否相同,是则触发第一生成加密单元,否则向上位机报错;
其中,本实施例中的第一解密判断单元具体用于使用第二共享密钥解密PIN码哈希值密文得到PIN码哈希值的部分数据,从保存的PIN码哈希值中截取预设字节得到第二数值,判断第二数值与PIN码哈希值的部分数据是否相同,是则触发第一生成加密单元,否则向上位机报错;
第一生成加密返回单元,用于生成认证标识并将认证标识与第三方标识、使用权限信息对应保存,设置认证标识的有效期,使用第二共享密钥对认证标识进行加密得到认证标识密文,向上位机返回包含认证标识密文的第一获取认证标识响应。
可选的,本实施例的装置还包括:
判断录入模块,用于当接收到录入生物信息指令时,判断是否保存有认证标识,是则使用认证标识对录入生物信息指令进行验证,如验证通过则提示用户录入生物信息,并根据接收到的用户录入的生物信息生成生物信息模板并保存,将对应的模板标识返回给上位机,如验证失败则报错;否则报错;
第二获取认证标识模块,用于当接收到第二获取认证标识指令时,根据第二获取认证标识指令中的模板标识判断是否保存有对应的生物信息模板,是则根据生物信息模板对用户身份进行验证,如验证成功则清除保存的认证标识、第三方标识、使用权限信息和设置的认证标识的有效期,生成认证标识并将认证标识与第二获取认证标识指令中的第三方标识、使用权限信息对应保存,设置认证标识的有效期,对认证标识进行加密并将加密后的认证标识返回给上位机,如验证失败则报错;否则报错。
进一步地,判断录入模块包括:
第三解析判断单元,用于当接收到录入生物信息指令时,解析录入生物信息指令得到第二认证参数,判断是否保存有认证标识和交换密钥,是则触发第二认证单元,否则向上位机报错;
第二认证单元,用于使用认证标识和交换密钥对第二认证参数进行验证,如验证通过,触发录入生成单元,如验证未通过则向上位机报错;
在本实施例中,第二认证单元具体用于使用认证标识对交换密钥进行哈希计算得到第二认证参数,判断计算得到的第二认证参数是否与解析得到的第二认证参数一致,是则验证通过,触发录入生成单元,否则验证未通过,向上位机报错;
录入生成单元,用于提示用户录入生物信息,当接收到用户录入的完整生物信息时根据已录入的完整生物信息生成生物信息模板和对应的模板标识,向上位机返回包含模板标识的录入响应。
进一步地,本实施例中的第二获取认证标识模块,包括:
第二解析判断单元,用于当接收到第二获取认证标识指令时,解析第二获取认证标识指令得到模板标识加密结果、上位机公钥、可信任的第三方标识和使用权限信息,判断是否保存有认证设备私钥,是则触发第三生成单元,否则向上位机报错;
第三生成单元,用于使用第一预设算法根据认证设备私钥和上位机公钥生成交换密钥,使用第二预设算法根据交换密钥、预设盐值、第二固定数据生成第二共享密钥;
第二解密判断单元,用于使用第二共享密钥解密模板标识加密结果得到模板标识,判断是否保存有与模板标识对应的生物信息模板,是则触发第一录入判断单元,否则向上位机报错;
第一录入判断单元,用于提示用户录入与模板标识对应的生物信息,当接收到用户录入的完整的生物信息时,判断完整的生物信息是否与生物信息模板匹配,如果是,触发生成设置保存单元,否则,向上位机报错;
生成设置保存单元,用于清除保存的认证标识、第三方标识、使用权限信息和设置的认证标识的有效期,生成认证标识并将认证标识与可信任的第三方标识和使用权限信息对应保存,设置认证标识的有效期;
第二加密返回单元,用于使用第二共享密钥对认证标识进行加密得到认证标识密文,向上位机返回包含认证标识密文的第二获取认证标识响应。
具体的,本实施例中的生成设置保存单元包括:
第四解析判断单元,用于当接收到认证指令时,解析认证指令得到可信任的第三方标识和认证数据,判断是否保存有第三方标识和对应的使用权限信息,是则触发第一判断单元,否则向上位机报错;
第一判断单元,用于判断保存的可信任的第三方标识与解析得到的可信任的第三方标识是否匹配,如果是,触发第二判断单元,否则向上位机报错;
第二判断单元,用于根据保存的与可信任的第三方标识对应的使用权限信息判断是否可以执行认证操作,如果是,触发获取判断单元,否则向上位机报错;
获取判断单元,用于获取保存的认证标识有效期,根据认证标识有效期判断保存的认证标识是否有效,是则触发计算判断单元,否则向上位机报错;
其中,本实施例中的获取判断单元用于获取保存的认证标识有效期,判断当前时间是否小于认证标识有效期,是则是则触发计算判断单元,否则向上位机报错;
计算判断单元,用于根据第四预设算法使用认证标识对可信任的第三方标识进行哈希计算得到第三数值,从第三数值中截取预设字节得到验证数据,判断认证数据与验证数据是否相同,如果是,触发签名返回模块,否则,向上位机报错;
签名返回模块,用于使用认证标识对认证数据进行签名得到签名结果,将签名结果返回给上位机。
本发明技术方案中,用户首次使用FIDO应用时先进行设PIN码操作,然后登录FIDO应用会使用PIN码哈希值对用户身份进行验证,验证通过后生成认证标识,后续再使用FIDO应用时使用认证标识对用户身份进行验证,而无需进行验PIN码的操作,使用更加灵活方便,同时减少PIN码的传输,减少多次验证带来的效率负担;通过将认证标识与第三方标识、使用权限信息对用保存,使得不同的认证标识运用在不同的应用和场景中,进一步地提高用户信息的安全性。
可选的,本申请的实施例还提供了一种电子设备,电子设备包括至少一个处理器、存储器及存储在该存储器上并可被至少一个处理器执行的指令,至少一个处理器执行该指令以实现上述实施例中的一种身份认证的实现方法。该电子设备是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定;该芯片与存储器耦合,用于执行存储器中存储的计算机程序,以执行上述实施例中公开的一种身份认证的实现方法。
在上述实施例中,可以完整或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以完整或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机程序。在电子设备上加载和执行计算机程序时,完整或部分地产生按照本申请实施例所述的流程或功能。该计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个基站、电子设备、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个基站、电子设备、服务器或数据中心进行传输。所述计算机可读存储介质可以是电子设备能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、 或者半导体介质(例如固态硬盘(solid state disk,SSD))等。本申请实施例中,电子设备可以包括前面所述的装置。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种身份认证的实现方法,其特征在于,包括:
步骤A:当接收到获取密钥指令时生成认证设备密钥对并保存,将所述认证设备密钥对中的认证设备公钥返回给上位机,等待接收所述上位机下发的指令,所述认证设备密钥对包括所述认证设备公钥和认证设备私钥;
步骤B:当接收到设置PIN码指令时,判断是否保存有认证设备私钥,是则根据所述认证设备私钥对所述设置PIN码指令进行验证,如验证通过则保存所述设置PIN码指令中的PIN码哈希值,给上位机返回设置成功响应,等待接收所述上位机下发的指令,如验证未通过则报错,等待接收所述上位机下发的指令,否则报错,等待接收所述上位机下发的指令;
步骤C:当接收到第一获取认证标识指令时,判断是否保存有PIN码哈希值和认证设备私钥,是则根据所述PIN码哈希值和所述认证设备私钥对用户身份进行验证,如验证成功则生成认证标识并将所述认证标识与所述第一获取认证标识指令中的第三方标识、使用权限信息对应保存,设置所述认证标识的有效期,对所述认证标识进行加密并将加密后的认证标识返回给上位机,等待接收所述上位机下发的指令,如验证失败则报错,等待接收所述上位机下发的指令,否则报错,等待接收所述上位机下发的指令;
步骤D:当接收到认证指令时,判断是否保存有第三方标识和对应的使用权限信息,是则根据所述第三方标识、所述使用权限信息验证所述认证指令,如验证通过则判断所述认证指令中的认证标识是否在有效期内且判断是否具有执行认证操作的权限,如均为是则使用所述认证标识对所述认证指令中的认证数据进行签名并将签名结果返回给上位机,等待接收所述上位机下发的指令,否则报错,等待接收所述上位机下发的指令,如验证未通过则报错,等待接收所述上位机下发的指令,如未保存则报错,等待接收所述上位机下发的指令。
2.如权利要求1所述的方法,其特征在于,所述步骤B包括:
步骤B1:当接收到设置PIN码指令时,解析所述设置PIN码指令得到上位机公钥、PIN码哈希值密文和第一认证参数,判断是否保存有认证设备私钥,是则执行步骤B2,否则向所述上位机报错,等待接收所述上位机下发的指令;
步骤B2:使用第一预设算法根据所述认证设备私钥和所述上位机公钥生成交换密钥,使用第二预设算法根据所述交换密钥、预设盐值、第一固定数据生成第一共享密钥,使用所述第二预设算法根据所述交换密钥、所述预设盐值、第二固定数据生成第二共享密钥;
步骤B3:使用所述第一共享密钥对所述第一认证参数进行验证,如验证通过,执行步骤B4,如验证未通过则向所述上位机报错,等待接收所述上位机下发的指令;
步骤B4:使用所述第二共享密钥解密所述PIN码哈希值密文得到所述PIN码哈希值并保存,向所述上位机返回设置PIN码成功响应,等待接收所述上位机下发的指令。
3.如权利要求2所述的方法,其特征在于,所述使用所述第一共享密钥对所述第一认证参数进行验证,具体为:根据第三预设算法对所述第一共享密钥和所述PIN码哈希值密文进行哈希运算得到第一摘要值,判断所述第一摘要值与所述第一认证参数是否一致,如果是,判定验证通过,否则,判定验证未通过。
4.如权利要求1所述的方法,其特征在于,所述步骤C包括:
步骤C1:当接收到第一获取认证标识指令时,解析所述第一获取认证标识指令得到可信任的第三方标识、使用权限信息、上位机公钥和PIN码哈希值密文,判断是否保存有PIN码哈希值和认证设备私钥,是则执行步骤C2,否则向所述上位机报错,等待接收所述上位机下发的指令;
步骤C2:使用第一预设算法根据所述认证设备私钥和上位机公钥生成交换密钥,使用第二预设算法根据所述交换密钥、预设盐值、第二固定数据生成第二共享密钥;
步骤C3:使用所述第二共享密钥解密所述PIN码哈希值密文得到PIN码哈希值,判断解密得到的PIN码哈希值与保存的PIN码哈希值是否相同,是则执行步骤C4,否则向上位机报错,等待接收所述上位机下发的指令;
步骤C4:生成认证标识并将所述认证标识与所述第三方标识、使用权限信息对应保存,设置认证标识的有效期,使用所述第二共享密钥对所述认证标识进行加密得到认证标识密文,向所述上位机返回包含所述认证标识密文的第一获取认证标识响应,等待接收所述上位机下发的指令。
5.如权利要求4所述的方法,其特征在于,所述步骤C3包括:使用所述第二共享密钥解密PIN码哈希值密文得到PIN码哈希值的部分数据,从保存的PIN码哈希值中截取预设字节得到第二数值,判断所述第二数值与所述PIN码哈希值的部分数据是否相同,是则执行步骤C4,否则,向所述上位机报错,等待接收所述上位机下发的指令。
6.如权利要求4所述的方法,其特征在于,还包括:
步骤E:当接收到录入生物信息指令时,判断是否保存有认证标识,是则使用所述认证标识对所述录入生物信息指令进行验证,如验证通过则提示用户录入生物信息,并根据接收到的用户录入的生物信息生成生物信息模板并保存,将对应的模板标识返回给上位机,等待接收所述上位机下发的指令,如验证失败则报错,等待接收所述上位机下发的指令,否则报错,等待接收所述上位机下发的指令。
7.如权利要求6所述的方法,其特征在于,所述步骤E包括:
步骤E1:当接收到录入生物信息指令时,解析所述录入生物信息指令得到第二认证参数,判断是否保存有认证标识和交换密钥,是则执行步骤E2,否则向上位机报错,等待接收所述上位机下发的指令;
步骤E2:使用所述认证标识和所述交换密钥对所述第二认证参数进行验证,如验证通过,执行步骤E3,如验证未通过则向上位机报错,等待接收所述上位机下发的指令;
步骤E3:提示用户录入生物信息,当接收到用户录入的完整生物信息时根据已录入的完整生物信息生成生物信息模板和对应的模板标识,向上位机返回包含所述模板标识的录入响应,等待接收所述上位机下发的指令。
8.如权利要求7所述的方法,其特征在于,所述步骤E2包括:使用所述认证标识对所述交换密钥进行哈希计算得到第二认证参数,判断计算得到的第二认证参数是否与解析得到的第二认证参数一致,是则验证通过,执行步骤E3,否则验证未通过,向上位机报错,等待接收所述上位机下发的指令。
9.如权利要求6所述的方法,其特征在于,还包括:
步骤F:当接收到第二获取认证标识指令时,根据所述第二获取认证标识指令中的模板标识判断是否保存有对应的生物信息模板,是则根据所述生物信息模板对用户身份进行验证,如验证成功则清除保存的认证标识、第三方标识、使用权限信息和设置的认证标识的有效期,生成认证标识并将所述认证标识与所述第二获取认证标识指令中的第三方标识、使用权限信息对应保存,设置所述认证标识的有效期,对所述认证标识进行加密并将加密后的认证标识返回给上位机,等待接收所述上位机下发的指令,如验证失败则报错,等待接收所述上位机下发的指令,否则报错,等待接收所述上位机下发的指令。
10.如权利要求9所述的方法,其特征在于,所述步骤F包括:
步骤F1:当接收到第二获取认证标识指令时,解析所述第二获取认证标识指令得到模板标识加密结果、上位机公钥、可信任的第三方标识和使用权限信息,判断是否保存有认证设备私钥,是则执行步骤F2,否则向所述上位机报错,等待接收所述上位机下发的指令;
步骤F2:使用第一预设算法根据所述认证设备私钥和所述上位机公钥生成交换密钥,使用所述第二预设算法根据所述交换密钥、预设盐值、第二固定数据生成第二共享密钥;
步骤F3:使用所述第二共享密钥解密所述模板标识加密结果得到模板标识,判断是否保存有与所述模板标识对应的生物信息模板,是则执行步骤F4,否则向所述上位机报错,等待接收所述上位机下发的指令;
步骤F4:提示用户录入与所述模板标识对应的生物信息,当接收到用户录入的生物信息时,判断所述生物信息是否与所述生物信息模板匹配,如果是,执行步骤F5,否则,向所述上位机报错,等待接收所述上位机下发的指令;
步骤F5:清除保存的认证标识、第三方标识、使用权限信息和设置的认证标识的有效期,生成认证标识并将认证标识与所述可信任的第三方标识和所述使用权限信息对应保存,设置认证标识的有效期;
步骤F6:使用所述第二共享密钥对所述认证标识进行加密得到认证标识密文,向所述上位机返回包含所述认证标识密文的第二获取认证标识响应,等待接收所述上位机下发的指令。
11.如权利要求1所述的方法,其特征在于,所述步骤D包括:
步骤D1:当接收到认证指令时,解析所述认证指令得到可信任的第三方标识和认证数据,判断是否保存有第三方标识和对应的使用权限信息,是则执行步骤D2,否则向所述上位机报错,等待接收所述上位机下发的指令;
步骤D2:判断保存的可信任的第三方标识与解析得到的可信任的第三方标识是否匹配,如果是,执行步骤D3,否则向所述上位机报错,等待接收所述上位机下发的指令;
步骤D3:根据保存的与所述可信任的第三方标识对应的使用权限信息判断是否可以执行认证操作,如果是,执行步骤D4,否则向上位机报错,等待接收所述上位机下发的指令;
步骤D4:获取保存的认证标识有效期,根据所述认证标识有效期判断保存的认证标识是否有效,是则执行步骤D5,否则向上位机报错,等待接收所述上位机下发的指令;
步骤D5:根据第四预设算法使用所述认证标识对可信任的第三方标识进行哈希计算得到第三数值,从第三数值中截取预设字节得到验证数据,判断所述认证数据与所述验证数据是否相同,如果是,执行步骤D6,否则,向所述上位机报错,等待接收所述上位机下发的指令;
步骤D6:使用所述认证标识对所述认证数据进行签名得到签名结果,将所述签名结果返回给上位机,等待接收所述上位机下发的指令。
12.一种身份认证的实现装置,其特征在于,包括:
获取密钥模块,用于当接收到获取密钥指令时生成认证设备密钥对并保存,将所述认证设备密钥对中的认证设备公钥返回给上位机,所述认证设备密钥对包括所述认证设备公钥和认证设备私钥;
设置身份信息模块,用于当接收到设置PIN码指令时,判断是否保存有认证设备私钥,是则根据所述认证设备私钥对所述设置PIN码指令进行验证,如验证通过则保存所述设置PIN码指令中的PIN码哈希值,给上位机返回设置成功响应,如验证未通过则报错,否则报错;
第一获取认证标识模块,用于当接收到第一获取认证标识指令时,判断是否保存有PIN码哈希值和认证设备私钥,是则根据所述PIN码哈希值和所述认证设备私钥对用户身份进行验证,如验证成功则生成认证标识并将所述认证标识与所述第一获取认证标识指令中的第三方标识、使用权限信息对应保存,设置所述认证标识的有效期,对所述认证标识进行加密并将加密后的认证标识返回给上位机,如验证失败则报错,否则报错;
认证模块,用于当接收到认证指令时,判断是否保存有第三方标识和对应的使用权限信息,是则根据所述第三方标识、所述使用权限信息验证所述认证指令,如验证通过则判断所述认证指令中的认证标识是否在有效期内且判断是否具有执行认证操作的权限,如均为是则使用所述认证标识对所述认证指令中的认证数据进行签名并将签名结果返回给上位机,否则报错,如验证未通过则报错,如未保存则报错。
13.一种认证设备,其特征在于,所述认证设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现权利要求1至11任一项所述的身份认证的实现方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当所述计算机程序在认证设备上运行时,使得所述认证设备执行如权利要求1至11任一项所述的身份认证的实现方法。
15.一种芯片,其特征在于,所述芯片与存储器耦合,用于执行所述存储器中存储的计算机程序,以执行权利要求1-11任一项所述的身份认证的实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210256868.2A CN114338052B (zh) | 2022-03-16 | 2022-03-16 | 一种身份认证的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210256868.2A CN114338052B (zh) | 2022-03-16 | 2022-03-16 | 一种身份认证的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338052A true CN114338052A (zh) | 2022-04-12 |
CN114338052B CN114338052B (zh) | 2022-05-31 |
Family
ID=81033206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210256868.2A Active CN114338052B (zh) | 2022-03-16 | 2022-03-16 | 一种身份认证的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338052B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104901940A (zh) * | 2015-01-13 | 2015-09-09 | 易兴旺 | 一种基于cpk标识认证的802.1x网络接入方法 |
CN105847247A (zh) * | 2016-03-21 | 2016-08-10 | 飞天诚信科技股份有限公司 | 一种认证系统及其工作方法 |
CN106686004A (zh) * | 2017-02-28 | 2017-05-17 | 飞天诚信科技股份有限公司 | 一种登录认证方法及系统 |
CN106713236A (zh) * | 2015-11-17 | 2017-05-24 | 成都腾甲数据服务有限公司 | 一种基于cpk标识认证的端对端身份认证及加密方法 |
US20170171164A1 (en) * | 2015-12-14 | 2017-06-15 | International Business Machines Corporation | Authenticating features of virtual server system |
CN108881310A (zh) * | 2018-08-15 | 2018-11-23 | 飞天诚信科技股份有限公司 | 一种注册系统及其工作方法 |
US20200026857A1 (en) * | 2018-07-23 | 2020-01-23 | Vmware, Inc. | Host software metadata verification during remote attestation |
CN111800377A (zh) * | 2020-05-20 | 2020-10-20 | 中国电力科学研究院有限公司 | 一种基于安全多方计算的移动终端身份认证系统 |
-
2022
- 2022-03-16 CN CN202210256868.2A patent/CN114338052B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104901940A (zh) * | 2015-01-13 | 2015-09-09 | 易兴旺 | 一种基于cpk标识认证的802.1x网络接入方法 |
CN106713236A (zh) * | 2015-11-17 | 2017-05-24 | 成都腾甲数据服务有限公司 | 一种基于cpk标识认证的端对端身份认证及加密方法 |
US20170171164A1 (en) * | 2015-12-14 | 2017-06-15 | International Business Machines Corporation | Authenticating features of virtual server system |
CN105847247A (zh) * | 2016-03-21 | 2016-08-10 | 飞天诚信科技股份有限公司 | 一种认证系统及其工作方法 |
CN106686004A (zh) * | 2017-02-28 | 2017-05-17 | 飞天诚信科技股份有限公司 | 一种登录认证方法及系统 |
US20200026857A1 (en) * | 2018-07-23 | 2020-01-23 | Vmware, Inc. | Host software metadata verification during remote attestation |
CN108881310A (zh) * | 2018-08-15 | 2018-11-23 | 飞天诚信科技股份有限公司 | 一种注册系统及其工作方法 |
CN111800377A (zh) * | 2020-05-20 | 2020-10-20 | 中国电力科学研究院有限公司 | 一种基于安全多方计算的移动终端身份认证系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114338052B (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106330850B (zh) | 一种基于生物特征的安全校验方法及客户端、服务器 | |
US20180082050A1 (en) | Method and a system for secure login to a computer, computer network, and computer website using biometrics and a mobile computing wireless electronic communication device | |
KR101755995B1 (ko) | 동형 암호를 이용한 특성벡터 기반 원격 바이오 인증 방법 및 시스템 | |
CN111931144B (zh) | 一种操作系统与业务应用统一安全登录认证方法及装置 | |
US7934096B2 (en) | Integrity protected smart card transaction | |
WO2017071496A1 (zh) | 实现会话标识同步的方法及装置 | |
US20180241558A1 (en) | 1:n biometric authentication, encryption, signature system | |
CN111435913B (zh) | 一种物联网终端的身份认证方法、装置和存储介质 | |
CN113014539B (zh) | 一种物联网设备安全保护系统及方法 | |
KR101739203B1 (ko) | 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법 | |
KR101897715B1 (ko) | 바이오정보를 이용한 패스워드 없는 전자서명 시스템 | |
IL266535A (en) | A system and method for clear multi-factor authentication and security posture testing | |
EP3206329B1 (en) | Security check method, device, terminal and server | |
CN111954211B (zh) | 一种移动终端新型认证密钥协商系统 | |
US11569991B1 (en) | Biometric authenticated biometric enrollment | |
CN112528257A (zh) | 安全调试方法、装置、电子设备及存储介质 | |
US20200233943A1 (en) | Method of verification of a biometric authentication | |
US20210073359A1 (en) | Secure one-time password (otp) authentication | |
CN108737376A (zh) | 一种基于指纹和数字证书的双因子认证方法及系统 | |
KR20180087543A (ko) | 키 관리 방법 및 fido 소프트웨어 인증장치 | |
WO2020024852A1 (zh) | 一种认证方法及认证设备 | |
CN111291398B (zh) | 基于区块链的认证方法、装置、计算机设备及存储介质 | |
CN114338052B (zh) | 一种身份认证的实现方法及装置 | |
CN114553566B (zh) | 数据加密方法、装置、设备及存储介质 | |
KR101659226B1 (ko) | 완전 동형 암호를 이용한 원격 바이오 인증 방법 및 시스템 |
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 |