CN113836506A - 身份认证方法、装置、***、电子设备、存储介质 - Google Patents
身份认证方法、装置、***、电子设备、存储介质 Download PDFInfo
- Publication number
- CN113836506A CN113836506A CN202111163547.XA CN202111163547A CN113836506A CN 113836506 A CN113836506 A CN 113836506A CN 202111163547 A CN202111163547 A CN 202111163547A CN 113836506 A CN113836506 A CN 113836506A
- Authority
- CN
- China
- Prior art keywords
- private key
- information
- client
- server
- signature result
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种身份认证方法、装置、***、电子设备、存储介质,该方法:向服务端发送携带账户信息的访问请求,并接收服务端基于访问请求返回的随机信息;根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥;利用私钥对随机信息进行签名,得到签名结果;将签名结果发送到服务端进行验证。该方案可以避免口令泄露问题、避免复杂口令易遗忘问题、避免口令被破解的问题以及避免口令在传输过程中被截获问题。
Description
技术领域
本申请涉及信息安全技术领域,特别涉及一种身份认证方法、装置、***、电子设备、计算机可读存储介质。
背景技术
目前大部分的互联网应用都属于C/S架构,即client-server架构,瘦客户端胖云端。大部分的业务数据都放在云端,大部分的昂贵高技术也放在云端,客户端只是起到一个UI的作用,即user interface的作用,用户操作界面的作用。即呈现数据、并接受用户的操作输入并把操作结果反馈显示给客户。至于这个操作完成所用到的数据以及可能的复杂的技术处理一般都会放在云端。
***架构如图1所示。这个类型的应用一般会牵涉到三种身份认证:服务器***对客户端***的身份认证。客户端***对服务器***的身份认证。寄居在服务器***上的业务***对用户的身份认证。本申请实施例主要涉及第三种身份认证,即业务***对用户的身份认证。这种举个实际例子,比如使用淘宝客户端登录自己的淘宝账户、比如使用网银客户端登录自己的网银账户、比如使用微信客户端登录自己的微信账户等等。
现有的技术一般采用“用户名+口令”方式实现业务***对用户的在线身份认证,用户首先通过在线服务或网站进行注册,将用户名和口令与用户账户进行绑定,在随后的登录过程中,只需要通过用户名和口令的方式完成用户在线认证。但这种认证方式存在口令易泄露、复杂口令易遗忘、弱口令易破解等问题。
发明内容
本申请实施例提供了一种身份认证方法,用于解决现有“用户名+口令”认证方式口令易泄露、复杂口令易遗忘、弱口令易破解等问题。
本申请实施例提供了一种身份认证方法,包括:
向服务端发送携带账户信息的访问请求,并接收服务端基于所述访问请求返回的随机信息;
根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥;
利用所述私钥对所述随机信息进行签名,得到签名结果;
将所述签名结果发送到所述服务端进行验证。
在一实施例中,所述根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥,包括:
根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥和数字摘要;
所述利用所述私钥对所述随机信息进行签名,得到签名结果,包括:
采用信息摘要算法计算所述私钥对应的信息摘要值;
判断所述信息摘要值与所述数字摘要是否相同,若相同,利用所述私钥对所述随机信息进行签名,得到签名结果。
在一实施例中,所述根据输入的第一身份识别码,对本地保存的私钥文件进行解密,包括:
根据输入的第一身份识别码,通过信息摘要算法计算得到所述第一身份识别码对应的解密密钥;
利用所述解密密钥对本地保存的所述私钥文件进行解密。
在一实施例中,在所述向服务端发送携带账户信息的访问请求之前,所述方法还包括:
生成包含所述私钥的公私密钥对;
将所述公私密钥对中的公钥发送到所述服务端,用于对所述签名结果进行验证;
根据输入的第二身份识别码对所述私钥进行加密,得到所述私钥文件,并将所述私钥文本保存在本地。
在一实施例中,所述根据输入的第二身份识别码对所述私钥进行加密,得到所述私钥文件,包括:
采用信息摘要算法计算所述第二身份识别码对应的加密密钥;
利用所述加密密钥对所述私钥进行加密,得到所述私钥文件。
在一实施例中,所述利用所述加密密钥对所述私钥进行加密,得到所述私钥文件,包括:
采用信息摘要算法计算所述私钥对应的数字摘要;
利用所述加密密钥对所述私钥和所述数字摘要进行加密,得到所述私钥文件。
在一实施例中,在所述根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥之前,所述方法还包括:
在用户界面输出提示用户输入身份识别码的提示信息。
本申请另一实施例提供了一种身份认证方法,包括:
响应于客户端发送的携带账户信息的访问请求,生成随机信息并将所述随机信息返回所述客户端;
接收客户端基于所述随机信息发送的签名结果;所述签名结果是客户端基于所述账户信息对应的私钥对随机信息进行签名得到的;所述私钥是客户端根据输入的第一身份识别码,对本地保存的私钥文件进行解密得到的;
根据与所述账户信息绑定的公钥,利用所述公钥对所述签名结果进行验证。
在一实施例中,所述根据与所述账户信息绑定的公钥,利用所述公钥对所述签名结果进行验证,包括:
根据所述访问请求携带的账户信息,查找到所述账户信息对应的公钥;
利用所述公钥对所述签名结果进行解密,得到所述签名结果包含的信息内容;
比较所述信息内容与所述随机信息是否相同,若相同,验证通过。
本申请实施例提供了一种身份认证***,包括:
客户端,用于向服务端发送携带账户信息的访问请求;
服务端,与所述客户端通信连接,用于响应于客户端发送的携带账户信息的访问请求,生成随机信息并将所述随机信息返回所述客户端;
所述客户端,还用于接收服务端基于所述访问请求返回的随机信息;根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥;利用所述私钥对所述随机信息进行签名,得到签名结果;将所述签名结果发送到所述服务端进行验证;
所述服务端,还用于接收客户端基于所述随机信息发送的签名结果;根据与所述账户信息绑定的公钥,利用所述公钥对所述签名结果进行验证。
本申请实施例提供了一种身份认证装置,包括:
请求发送模块,用于向服务端发送携带账户信息的访问请求,并接收服务端基于所述访问请求返回的随机信息;
私钥获得模块,用于根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥;
信息签名模块,用于利用所述私钥对所述随机信息进行签名,得到签名结果;
签名发送模块,用于将所述签名结果发送到所述服务端进行验证。
本申请实施例提供了一种身份认证装置,包括:
信息生成模块,用于响应于客户端发送的携带账户信息的访问请求,生成随机信息并将所述随机信息返回所述客户端;
结果接收模块,用于接收客户端基于所述随机信息发送的签名结果;所述签名结果是客户端基于所述账户信息对应的私钥对随机信息进行签名得到的;所述私钥是客户端根据输入的第一身份识别码,对本地保存的私钥文件进行解密得到的;
签名验证模块,用于根据与所述账户信息绑定的公钥,利用所述公钥对所述签名结果进行验证。
本申请实施例提供了一种电子设备,电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述身份认证方法。
本申请实施例提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述身份认证方法。
本申请上述实施例提供的技术方案,根据用户输入的第一身份识别码,对本地保存的私钥文件进行解密得到私钥;利用私钥对服务端发送的随机信息进行签名,得到签名结果,将签名结果发送到服务端进行验证。由于身份识别码不出客户端,而私钥也不出客户端,故可以避免口令泄露问题;暴露于公网的服务端如果想攻击得从私钥入手,私钥足够复杂,是非常难以破解的。身份识别码只作用于客户端,客户端一般不对公众开放,受到攻击的机会很少。如果客户端不慎丢失了,4-8位***数字的身份识别码提供的防护强度,其破解时间也足够用户挂失账户。采用这个方案私钥非常长但是却不需要用户记住,身份识别码很简单也能达到很高的安全性能;能够避免复杂口令易遗忘问题。进一步的,口令不在服务端和客户端之间传输,传输的只是随机信息,能够避免口令在传输过程中被截获问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。
图1是背景技术中提到的身份认证的***结构图;
图2为本申请实施例提供的身份认证***的架构图;
图3是本申请实施例提供的电子设备的结构示意图;
图4是本申请实施例提供的身份认证方法的流程示意图;
图5是图4对应实施例的基础上本申请另一实施例提供的身份认证方法的流程示意图;
图6是图5对应实施例中步骤S430的细节流程图;
图7是本申请另一实施例提供的身份认证方法的流程示意图;
图8是本申请另一实施例提供的身份认证方法的详细流程示意图;
图9是本申请实施例提供的身份认证装置的框图;
图10是本申请另一实施例提供的身份认证装置的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图2为本申请实施例提供的身份认证***的架构示意图。如图2所示,该***包括客户端110与服务端120,客户端110与服务端120之间通信连接。客户端110可以是多种应用程序(APP),例如网银客户端、购物客户端、游戏客户端、对话客户端等。服务端120可以是服务器、服务器集群、云计算中心等设备中运行的业务服务。客户端110与服务端120可以执行本申请下述实施例提供的身份认证方法。
客户端110可以向服务端120发送携带账户信息的访问请求。服务端120响应于客户端110发送的携带账户信息的访问请求,生成随机信息并将所述随机信息返回所述客户端110。
所述客户端110可以接收服务端120基于访问请求返回的随机信息;根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥;并利用私钥对随机信息进行签名,得到签名结果;将签名结果发送到所述服务端120进行验证;
服务端120可以接收客户端110基于随机信息发送的签名结果;并根据与所述账户信息绑定的公钥,利用公钥对所述签名结果进行验证。如果验证不通过,则服务端120认为身份认证失败,不向客户端110开放资源,如果验证通过,则服务端120认为身份认证成功,向该客户端110开放该账户信息下对应的资源。
图3是本申请实施例提供的电子设备的结构示意图。该电子设备可以作为客户端110或服务端120。该电子设备200可以用于执行本申请实施例提供的身份认证方法。如图3所示,该电子设备200包括:一个或多个处理器202、一个或多个存储处理器可执行指令的存储器204。其中,所述处理器202被配置为执行本申请下述实施例提供的身份认证方法。
所述处理器202可以是包含中央处理单元(CPU)、图像处理单元(GPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对所述电子设备200中的其它组件的数据进行处理,还可以控制所述电子设备200中的其它组件以执行期望的功能。
所述存储器204可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器202可以运行所述程序指令,以实现下文所述的身份认证方法。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
在一实施例中,图3所示电子设备200还可以包括输入装置206、输出装置208以及数据采集装置210,这些组件通过总线***212和/或其它形式的连接机构(未示出)互连。应当注意,图3所示的电子设备200的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备200也可以具有其他组件和结构。
所述输入装置206可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。所述输出装置208可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。所述数据采集装置210可以采集对象的图像,并且将所采集的图像存储在所述存储器204中以供其它组件使用。示例性地,该数据采集装置210可以为摄像头。
在一实施例中,用于实现本申请实施例的身份认证方法的示例电子设备100中的各器件可以集成设置,也可以分散设置,诸如将处理器202、存储器204、输入装置206和输出装置208集成设置于一体,而将数据采集装置210分离设置。
在一实施例中,用于实现本申请实施例的身份认证方法的示例电子设备200可以被实现为诸如智能手机、计算机、服务器等智能设备。
图4是本申请实施例提供的身份认证方法的流程示意图。该方法可以由客户端执行,如图4所示,该方法包括以下步骤S310-步骤S340。
步骤S310:向服务端发送携带账户信息的访问请求,并接收服务端基于所述访问请求返回的随机信息。
账户信息可以包括账户名称,账户名称可以是用户注册账户时自定义的名称,可以是若干汉字、字母、符号或多种组合,也可以是手机号或邮箱等。账户名称是用户自定义,通常简洁不易遗忘。
客户端为了访问服务端的资源,可以向服务端发送访问请求。访问请求可以携带上述账户信息。
服务端接收到访问请求后,会生成随机信息。随机信息可以是随机数、汉字、符号或多种组合。服务端可以将随机信息发送到客户端。
步骤S320:根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥。
身份识别码可以是PIN码(PersonalIdentification Number),身份识别码可以是4到8位的数字,用户容易记住,不易遗忘。第一身份识别码是指在访问阶段用户输入的身份识别码,为与下文的第二身份识别码进行区分,下文的第二身份识别码是指注册阶段用户输入的身份识别码。正常访问情况下,用户输入的第一身份识别码需与用户输入的第二身份识别码相同。
客户端收到随机信息后,可以通过用户界面UI(user interface)提示用户输入PIN码的提示信息。用户输入PIN码后,可以根据用户输入的PIN码,用一种对称加解密算法(比如SM4、AES、3DES等)解密私钥文件。私钥文件是客户端在注册账户时生成并存储的本地的,采用的是密文文件的形式。对私钥文件进行解密后可以得到客户端的私钥。
步骤S330:利用所述私钥对所述随机信息进行签名,得到签名结果。
客户端使用解密得到的私钥(private_key)使用非对称算法签名服务端发过来的随机信息(nonce)。利用私钥对随机信息进行加密后得到的结果,称为签名结果。
步骤S340:将所述签名结果发送到所述服务端进行验证。
客户端将签名结果发送到服务端之后,服务端可以根据客户端账户信息对应的公钥,对签名结果进行验证。其中,公钥是客户端在账户注册阶段发送到服务端的,公钥私钥是一组非对称密钥。服务端利用公钥对签名结果进行解密,如果解密成功,则表示签名结果确实是客户端发送的。解密签名结果获得随机信息,如果与服务端发送给客户端的随机信息也一致,则表示是服务端给客户端发送的随机信息,验证通过。如果验证不通过,则服务端认为身份认证失败,不向客户端开放资源,如果验证通过,则服务端认为身份认证成功,向这个客户端开放该账户信息下对应的资源。
本申请上述实施例提供的技术方案,根据用户输入的第一身份识别码,对本地保存的私钥文件进行解密得到私钥;利用私钥对服务端发送的随机信息进行签名,得到签名结果,将签名结果发送到服务端进行验证。由于身份识别码不出客户端,而私钥也不出客户端,故可以避免口令泄露问题;暴露于公网的服务端如果想攻击得从私钥入手,私钥足够复杂,是非常难以破解的。身份识别码只作用于客户端,客户端一般不对公众开放,受到攻击的机会很少。如果客户端不慎丢失了,4-8位***数字的身份识别码提供的防护强度,其破解时间也足够用户挂失账户。采用这个方案私钥非常长但是却不需要用户记住,身份识别码很简单也能达到很高的安全性能;能够避免复杂口令易遗忘问题。进一步的,口令不在服务端和客户端之间传输,传输的只是随机信息,能够避免口令在传输过程中被截获问题。
在一实施例中,上述步骤S320具体包括:根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥和数字摘要。
私钥文件的文件格式可以如下所示:
私钥 | Hash |
即在私钥的字段后面加一个数字摘要。数字摘要可以是计算私钥的哈希值,如下所示,可以使用SM3(信息摘要算法)计算私钥的数字摘要:
Hash=SM3(私钥)
故对加密的私钥文件进行解密后,可以得到其中包含的私钥以及数字摘要。
在一实施例中,“根据输入的第一身份识别码,对本地保存的私钥文件进行解密”具体可以包括以下步骤:根据输入的第一身份识别码,通过信息摘要算法计算得到第一身份识别码对应的解密密钥;利用所述解密密钥对本地保存的所述私钥文件进行解密。
其中,信息摘要算法可以是SM3算法,客户端可以根据公式KEY’=SM3(PIN)处理用户输入的PIN(即第一身份识别码)得到KEY’。KEY’可以作为解密密钥。利用KEY’采用相同的对称加解密算法解密私钥文件,即可恢复出二元组<私钥,Hash>。
在上述实施例的基础上,上述步骤S330具体包括:采用信息摘要算法计算所述私钥对应的信息摘要值;判断所述信息摘要值与所述数字摘要是否相同,若相同,利用所述私钥对所述随机信息进行签名,得到签名结果。
为进行区分,采用相同的信息摘要算法根据私钥重新计算得到的数字摘要可以称为信息摘要值。客户端根据公式Hash’=SM3(私钥)计算出信息摘要值(Hash’)。比较信息摘要值(Hash’)和私钥文件中的数字摘要(Hash),如果不同,则身份验证过程结束,身份验证结果为失败,客户端无权访问服务端当前账户信息下的资源。如果Hash’和Hash的值相同,则说明用户输入的身份识别码(PIN)是正确的,因此解密得到的私钥(private_key)也是正确的。由此可以利用私钥对随机信息进行签名,得到签名结果,进而将签名结果发送到服务端继续进行验证。
在一实施例中,在上述步骤S310之前,如图5所示,本申请实施例提供的方法还包括以下步骤S410-步骤S430。
步骤S410:生成包含所述私钥的公私密钥对。
客户端可以基于RSA、ECDSA、SM2等公钥密码算法生成包含私钥和公钥的公私密钥对。
步骤S420:将所述公私密钥对中的公钥发送到所述服务端,用于对所述签名结果进行验证。
客户端可以将生成的公钥发送到服务端。从而便于服务端在接收到客户端发送的签名结果时,利用公钥对签名结果进行验证。
步骤S430:根据输入的第二身份识别码对所述私钥进行加密,得到所述私钥文件,并将所述私钥文本保存在本地。
第二身份识别码是指客户端在发起访问请求之前,在生成私钥文件阶段输入的身份识别码。客户端可以根据用户输入的PIN码(即第二身份识别码)对私钥进行加密,得到私钥文件,并将所述私钥文本保存在本地。从而便于客户端在需要访问服务端时,可以从本地获取私钥文件解密得到私钥。
在一实施例中,如图6所示,上述步骤S430具体包括:步骤S431-步骤S432。
步骤S431:采用信息摘要算法计算第二身份识别码对应的加密密钥。
私钥文件的保存采用密文文件的方式。密文文件加解密可以采用对称密码算法,比如SM4、AES、3DES等。即加密密钥和解密密钥是同一个,记作KEY。其取得方法可以是:KEY=SM3(PIN)。即对PIN求取SM3数字摘要作为私钥文件的加解密密钥。客户端在生成公私密钥对时可以要求用户提供PIN码,之后利用KEY=SM3(PIN)计算得到加密密钥KEY。
步骤S432:利用加密密钥对私钥进行加密,得到所述私钥文件。
由此只要用户输入与注册阶段相同的PIN码,即可在访问阶段,得到正确的解密密钥,之后成功解密私钥文件即可得到其中的私钥,保证私钥的安全性。
在一实施例中,上述步骤S432具体可以包括:采用信息摘要算法计算所述私钥对应的数字摘要;利用所述加密密钥对所述私钥和所述数字摘要进行加密,得到所述私钥文件。
为了进一步进行校验,客户端可以采用信息摘要算法(例如SM3)计算私钥对应的数字摘要,即:
Hash=SM3(私钥)
之后,将计算得到的数字摘要Hash与私钥一起构成的文件,格式如下:
私钥 | Hash |
在用户输入PIN码,求得加密密钥KEY之后,将二元组<私钥,Hash>使用对称加解密算法使用KEY密钥加密,然后以密文文件形式存储入硬盘。而将公钥发送给服务端,使得服务端可以将公钥和用户账户信息绑定,便于之后在接收到客户端发送的访问请求时,可以根据访问请求写到的账户信息,快速确定客户端的公钥,从而在接收到客户端发送的签名结果时可以及时进行验证。
图7是本申请另一实施例提供的身份认证方法的流程示意图。该方法可以由服务端执行,如图7所示,该方法包括:
步骤S610:响应于客户端发送的携带账户信息的访问请求,生成随机信息并将所述随机信息返回所述客户端。
具体的,客户端发送携带账户信息的访问请求到服务端,服务端接收到访问请求后,生成随机信息,并将随机信息返回客户端。
步骤S620:接收客户端基于所述随机信息发送的签名结果;所述签名结果是客户端基于所述账户信息对应的私钥对随机信息进行签名得到的;所述私钥是客户端根据输入的第一身份识别码,对本地保存的私钥文件进行解密得到的。
其中,签名结果的生成方式可以参见客户端侧执行的身份认证方法。客户端在接收到服务端返回的随机信息后,可以在用户界面提示用户输入PIN码。客户端根据用户输入的PIN码(即第一身份识别码),可以得到解密密钥KEY’,利用解密密钥KEY’可以对私钥文件解密得到客户端的私钥。利用私钥对随机信息加密后得到签名结果。客户端将签名结果返回服务端,从而服务端接收到客户端基于随机信息发送的签名结果。
步骤S630:根据与所述账户信息绑定的公钥,利用所述公钥对所述签名结果进行验证。
需要说明的是,服务端可以存储不同账户信息对应的公钥,根据访问请求携带的账户信息,即可从本地查找到该账户信息对应绑定的公钥。具体验证过程如下:服务端利用此公钥可以对签名结果进行解密,得到签名结果包含的信息内容。将此信息内容与步骤S610发送给客户端的随机信息进行比对,如果两者相同,则验证通过。如果利用查找到的公钥无法解密签名结果或者解密得到的信息内容与随机信息不一致,均可认为验证不通过。在验证通过后,服务端可以向客户端返回请求的资源。
图8是本申请另一实施例提供的身份认证方法的详细流程示意图。该方法包括以下步骤:
注册阶段:
步骤S701:客户端利用公钥密码算法生成公私密钥对(包含公钥和私钥);
步骤S702:客户端将公钥发送到服务端,服务端将公钥与客户端的账户信息绑定存储;
步骤S703:客户端根据公式Hash=SM3(私钥),计算私钥的数字摘要Hash;
步骤S704:客户端根据用户输入的PIN码(即第二身份识别码),利用公式KEY=SM3(PIN),生成加密密钥KEY;
步骤S705:客户端将二元组<私钥,Hash>使用对称加解密算法利用KEY密钥加密,得到私钥文件存入硬盘。
访问阶段:
步骤S706:客户端发送携带账户信息的访问请求到服务端。
步骤S707:服务端接收携带账户信息的访问请求,生成随机信息,并将随机信息返回到客户端;
步骤S708:客户端收到随机信息后,通过UI(user interface)提示用户输入PIN。
步骤S709:客户端会根据公式KEY’=SM3(PIN)处理用户输入的PIN(即第一身份识别码)得到解密密钥KEY’;
步骤S710:客户端根据KEY’用相同的对称加解密算法解密私钥文件,恢复出二元组<私钥,Hash>。
步骤S711:客户端根据公式Hash’=SM3(私钥)计算出Hash’,并比较Hash’和Hash的值,如果不同,则身份验证过程结束,身份验证结果为失败,客户端无权访问服务端这个账户下的资源。如果Hash’和Hash的值相同则说明用户输入的PIN是正确的,因此解密得到的私钥(记作private_key)也是正确的。
步骤S712:客户端使用解密得到的私钥private_key使用非对称算法签名服务端发送的随机信息,得到签名结果,并将签名结果返回服务端。
步骤S713:服务端根据账户信息绑定的公钥,利用公钥对客户端发送过来的签名结果进行验证签名,如果验证不通过,则服务端认为身份认证失败,不向客户端开放资源,如果验证通过,则服务端认为身份认证成功,向这个客户端开放这个账户下的资源。
由于PIN有一定长度又不像私钥那样复杂,且PIN码和私钥不在服务端与客户端之间传输,故可以防止PIN码和私钥的泄露,不会被截获,又可以避免PIN码被遗忘。故本申请实施例提供的方案能够避免口令泄露问题,能够避免复杂口令易遗忘问题,能够避免弱口令易破解问题,能够避免口令在传输过程中被截获问题。
图9是本申请实施例提供的身份认证装置的框图,如图9所示,该装置包括:请求发送模块810、私钥获得模块820、信息签名模块830以及签名发送模块840。
请求发送模块810,用于向服务端发送携带账户信息的访问请求,并接收服务端基于所述访问请求返回的随机信息;
私钥获得模块820,用于根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥;
信息签名模块830,用于利用所述私钥对所述随机信息进行签名,得到签名结果;
签名发送模块840,用于将所述签名结果发送到所述服务端进行验证。
图10是本申请另一实施例提供的一种身份认证装置的框图。如图10所示,该装置包括:信息生成模块910、结果接收模块920以及签名验证模块930。
信息生成模块910,用于响应于客户端发送的携带账户信息的访问请求,生成随机信息并将所述随机信息返回所述客户端;
结果接收模块920,用于接收客户端基于所述随机信息发送的签名结果;所述签名结果是客户端基于所述账户信息对应的私钥对随机信息进行签名得到的;所述私钥是客户端根据输入的第一身份识别码,对本地保存的私钥文件进行解密得到的;
签名验证模块930,用于根据与所述账户信息绑定的公钥,利用所述公钥对所述签名结果进行验证。
上述装置中各个模块的功能和作用的实现过程具体详见上述身份认证方法中对应步骤的实现过程,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (14)
1.一种身份认证方法,其特征在于,包括:
向服务端发送携带账户信息的访问请求,并接收服务端基于所述访问请求返回的随机信息;
根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥;
利用所述私钥对所述随机信息进行签名,得到签名结果;
将所述签名结果发送到所述服务端进行验证。
2.根据权利要求1所述的方法,其特征在于,所述根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥,包括:
根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥和数字摘要;
所述利用所述私钥对所述随机信息进行签名,得到签名结果,包括:
采用信息摘要算法计算所述私钥对应的信息摘要值;
判断所述信息摘要值与所述数字摘要是否相同,若相同,利用所述私钥对所述随机信息进行签名,得到签名结果。
3.根据权利要求1或2所述的方法,其特征在于,所述根据输入的第一身份识别码,对本地保存的私钥文件进行解密,包括:
根据输入的第一身份识别码,通过信息摘要算法计算得到所述第一身份识别码对应的解密密钥;
利用所述解密密钥对本地保存的所述私钥文件进行解密。
4.根据权利要求1所述的方法,其特征在于,在所述向服务端发送携带账户信息的访问请求之前,所述方法还包括:
生成包含所述私钥的公私密钥对;
将所述公私密钥对中的公钥发送到所述服务端,用于对所述签名结果进行验证;
根据输入的第二身份识别码对所述私钥进行加密,得到所述私钥文件,并将所述私钥文本保存在本地。
5.根据权利要求4所述的方法,其特征在于,所述根据输入的第二身份识别码对所述私钥进行加密,得到所述私钥文件,包括:
采用信息摘要算法计算所述第二身份识别码对应的加密密钥;
利用所述加密密钥对所述私钥进行加密,得到所述私钥文件。
6.根据权利要求5所述的方法,其特征在于,所述利用所述加密密钥对所述私钥进行加密,得到所述私钥文件,包括:
采用信息摘要算法计算所述私钥对应的数字摘要;
利用所述加密密钥对所述私钥和所述数字摘要进行加密,得到所述私钥文件。
7.根据权利要求1所述的方法,其特征在于,在所述根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥之前,所述方法还包括:
在用户界面输出提示用户输入身份识别码的提示信息。
8.一种身份认证方法,其特征在于,包括:
响应于客户端发送的携带账户信息的访问请求,生成随机信息并将所述随机信息返回所述客户端;
接收客户端基于所述随机信息发送的签名结果;所述签名结果是客户端基于所述账户信息对应的私钥对随机信息进行签名得到的;所述私钥是客户端根据输入的第一身份识别码,对本地保存的私钥文件进行解密得到的;
根据与所述账户信息绑定的公钥,利用所述公钥对所述签名结果进行验证。
9.根据权利要求8所述的方法,其特征在于,所述根据与所述账户信息绑定的公钥,利用所述公钥对所述签名结果进行验证,包括:
根据所述访问请求携带的账户信息,查找到所述账户信息对应的公钥;
利用所述公钥对所述签名结果进行解密,得到所述签名结果包含的信息内容;
比较所述信息内容与所述随机信息是否相同,若相同,验证通过。
10.一种身份认证***,其特征在于,包括:
客户端,用于向服务端发送携带账户信息的访问请求;
服务端,与所述客户端通信连接,用于响应于客户端发送的携带账户信息的访问请求,生成随机信息并将所述随机信息返回所述客户端;
所述客户端,还用于接收服务端基于所述访问请求返回的随机信息;根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥;利用所述私钥对所述随机信息进行签名,得到签名结果;将所述签名结果发送到所述服务端进行验证;
所述服务端,还用于接收客户端基于所述随机信息发送的签名结果;根据与所述账户信息绑定的公钥,利用所述公钥对所述签名结果进行验证。
11.一种身份认证装置,其特征在于,包括:
请求发送模块,用于向服务端发送携带账户信息的访问请求,并接收服务端基于所述访问请求返回的随机信息;
私钥获得模块,用于根据输入的第一身份识别码,对本地保存的私钥文件进行解密,得到私钥;
信息签名模块,用于利用所述私钥对所述随机信息进行签名,得到签名结果;
签名发送模块,用于将所述签名结果发送到所述服务端进行验证。
12.一种身份认证装置,其特征在于,包括:
信息生成模块,用于响应于客户端发送的携带账户信息的访问请求,生成随机信息并将所述随机信息返回所述客户端;
结果接收模块,用于接收客户端基于所述随机信息发送的签名结果;所述签名结果是客户端基于所述账户信息对应的私钥对随机信息进行签名得到的;所述私钥是客户端根据输入的第一身份识别码,对本地保存的私钥文件进行解密得到的;
签名验证模块,用于根据与所述账户信息绑定的公钥,利用所述公钥对所述签名结果进行验证。
13.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-9任意一项所述的身份认证方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求1-9任意一项所述的身份认证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111163547.XA CN113836506A (zh) | 2021-09-30 | 2021-09-30 | 身份认证方法、装置、***、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111163547.XA CN113836506A (zh) | 2021-09-30 | 2021-09-30 | 身份认证方法、装置、***、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113836506A true CN113836506A (zh) | 2021-12-24 |
Family
ID=78967878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111163547.XA Pending CN113836506A (zh) | 2021-09-30 | 2021-09-30 | 身份认证方法、装置、***、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113836506A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114679328A (zh) * | 2022-02-25 | 2022-06-28 | 深圳市中悦科技有限公司 | 一种基于用户的虚拟身份进行访问的IDaaS*** |
CN115378623A (zh) * | 2022-03-17 | 2022-11-22 | ***通信集团有限公司 | 身份认证方法、装置、设备及存储介质 |
CN115473655A (zh) * | 2022-11-07 | 2022-12-13 | 南京易科腾信息技术有限公司 | 接入网络的终端认证方法、装置及存储介质 |
CN115600248A (zh) * | 2022-11-15 | 2023-01-13 | 杭州海康威视数字技术股份有限公司(Cn) | 基于关键信息隐藏的数据隐私保护认证方法、装置及*** |
CN116032655A (zh) * | 2023-02-13 | 2023-04-28 | 杭州天谷信息科技有限公司 | 一种可抵御计时攻击的身份鉴别方法以及*** |
-
2021
- 2021-09-30 CN CN202111163547.XA patent/CN113836506A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114679328A (zh) * | 2022-02-25 | 2022-06-28 | 深圳市中悦科技有限公司 | 一种基于用户的虚拟身份进行访问的IDaaS*** |
CN115378623A (zh) * | 2022-03-17 | 2022-11-22 | ***通信集团有限公司 | 身份认证方法、装置、设备及存储介质 |
CN115378623B (zh) * | 2022-03-17 | 2024-05-07 | ***通信集团有限公司 | 身份认证方法、装置、设备及存储介质 |
CN115473655A (zh) * | 2022-11-07 | 2022-12-13 | 南京易科腾信息技术有限公司 | 接入网络的终端认证方法、装置及存储介质 |
CN115473655B (zh) * | 2022-11-07 | 2023-01-10 | 南京易科腾信息技术有限公司 | 接入网络的终端认证方法、装置及存储介质 |
CN115600248A (zh) * | 2022-11-15 | 2023-01-13 | 杭州海康威视数字技术股份有限公司(Cn) | 基于关键信息隐藏的数据隐私保护认证方法、装置及*** |
CN115600248B (zh) * | 2022-11-15 | 2023-03-28 | 杭州海康威视数字技术股份有限公司 | 基于关键信息隐藏的数据隐私保护认证方法、装置及*** |
CN116032655A (zh) * | 2023-02-13 | 2023-04-28 | 杭州天谷信息科技有限公司 | 一种可抵御计时攻击的身份鉴别方法以及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11799668B2 (en) | Electronic identification verification methods and systems with storage of certification records to a side chain | |
US11683187B2 (en) | User authentication with self-signed certificate and identity verification and migration | |
US10574648B2 (en) | Methods and systems for user authentication | |
EP2999189B1 (en) | Network authentication method for secure electronic transactions | |
CN112637131B (zh) | 用户身份认证方法、装置、设备和存储介质 | |
CN113836506A (zh) | 身份认证方法、装置、***、电子设备、存储介质 | |
US10848304B2 (en) | Public-private key pair protected password manager | |
WO2018145127A1 (en) | Electronic identification verification methods and systems with storage of certification records to a side chain | |
US10924289B2 (en) | Public-private key pair account login and key manager | |
US20170171183A1 (en) | Authentication of access request of a device and protecting confidential information | |
CN108173648B (zh) | 基于私钥托管的数字安全处理方法、设备及存储介质 | |
CN111130798B (zh) | 一种请求鉴权方法及相关设备 | |
CN108199847B (zh) | 数字安全处理方法、计算机设备及存储介质 | |
CN108833431B (zh) | 一种密码重置的方法、装置、设备及存储介质 | |
US20210241270A1 (en) | System and method of blockchain transaction verification | |
CN114244530A (zh) | 资源访问方法及装置、电子设备、计算机可读存储介质 | |
CN113709115A (zh) | 认证方法及装置 | |
CN110417740B (zh) | 用户数据的处理方法、智能终端、服务器及存储介质 | |
CN109246156B (zh) | 登录认证方法及装置、登录方法及装置以及登录认证*** | |
CN114501431A (zh) | 报文传输方法、装置、存储介质及电子设备 | |
CN112862484A (zh) | 一种基于多端交互的安全支付方法及装置 | |
CN110968878A (zh) | 信息传输方法、***、电子设备及可读介质 | |
CN115242471A (zh) | 信息传输方法、装置、电子设备及计算机可读存储介质 | |
CN114117388A (zh) | 设备注册方法、设备注册装置、电子设备以及存储介质 | |
USRE49968E1 (en) | Electronic identification verification methods and systems with storage of certification records to a side chain |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant after: Qianxin Technology Group Co.,Ltd. Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd. Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant before: Qianxin Technology Group Co.,Ltd. Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc. |