一种客户端认证方法、装置和计算机可读存储介质与流程

文档序号:21453618发布日期:2020-07-10 17:47阅读:132来源:国知局
一种客户端认证方法、装置和计算机可读存储介质与流程

本发明涉及移动通信技术领域,尤其涉及一种客户端认证方法、装置和计算机可读存储介质。



背景技术:

随着智能移动终端的普及,在智能移动终端上安装的客户端应用程序(app)越来越多。这些客户端应用程序应用于社交、工作、出行、金融等众多领域,并且多数应用程序都包含大量的用户敏感数据,安全问题极为突出。作为使用客户端应用程序的重点信息,用户登录客户端应用程序的认证数据需要严格的安全保护。

目前常用的客户端登录认证方式有多种,如:静态口令认证、动态口令认证、数字证书方式、生物认证等。为了使用户在使用客户端不必每次都执行登录操作,且确保安全性,服务器仍需对用户进行认证,目前的客户端登录认证方式会存在各种缺陷,如:静态口令会存在被口令字典破解或暴力破解的风险;动态口令认证方式只适合对手机号码的认证,应用较局限;数字证书方式需要向证书授权中心(ca)申请证书,安全性得不到保障,成本较高;生物认证方式需要提前采集生物信息,应用受到局限。



技术实现要素:

有鉴于此,本发明实施例期望提供一种客户端认证方法、装置和计算机可读存储介质。

为达到上述目的,本发明实施例的技术方案是这样实现的:

本发明实施例提供了一种客户端认证方法,该方法应用于客户端,包括:

产生公私钥对以及自签名数字证书,所述自签名数字证书包括:设备信息、和/或客户端信息;

将所述自签名数字证书发送到区块链数字证书系统,用于所述区块链数字证书系统验证并记录所述自签名数字证书;

将用户信息和所述自签名数字证书的信息发送到业务平台;

基于所述私钥和自签名数字证书的信息,并通过与所述区块链数字证书系统和业务平台间的交互完成所述设备和/或客户端的认证。

其中,所述自签名数字证书包括:用户信息、和/或设备信息、和/或客户端信息。

其中,所述用户信息包括:用户身份标识、和/或用户认证凭证。

其中,所述基于所述和自签名数字证书的信息,并通过与所述区块链数字证书系统和业务平台间的交互完成所述设备和/或客户端的认证,包括:

客户端程序启动时,向所述业务平台发送登录请求;

调用与当前客户端用户对应的私钥对所述业务平台发送的随机数进行签名,并将当前客户端用户的证书信息以及签名结果发送给所述业务平台,用于所述业务平台实现对所述设备和/或客户端的认证。

可选的,所述调用与当前客户端用户对应的私钥时,该方法还包括:

采用生物认证或口令认证的方式对私钥进行保护,认证通过后才调用私钥进行签名。

本发明实施例还提供了一种客户端认证方法,该方法应用于业务平台,包括:

接收客户端发送的用户信息和自签名数字证书的信息;所述自签名数字证书由所述客户端产生,包括:设备信息、和/或客户端信息;

基于所述客户端产生的私钥和所述自签名数字证书的信息,并通过与区块链数字证书系统和所述客户端间的交互完成所述设备和/或客户端的认证。

其中,所述基于所述客户端产生的私钥和所述自签名数字证书的信息,并通过与区块链数字证书系统和所述客户端间的交互完成所述设备和/或客户端的认证,包括:

接收客户端发送的登录请求;

向所述客户端发送随机数,所述随机数用于所述客户端进行签名;

接收所述客户端发送的相应用户的证书信息以及签名结果,并进行后续设备和/或客户端的认证流程。

本发明实施例还提供了一种客户端认证装置,该装置应用于客户端,包括:

生成模块,用于产生公私钥对以及自签名数字证书,所述自签名数字证书包括:设备信息、和/或客户端信息;

发送模块,用于将所述自签名数字证书发送到区块链数字证书系统,用于所述区块链数字证书系统验证并记录所述自签名数字证书;将用户信息和所述自签名数字证书的信息发送到业务平台;

第一认证模块,用于基于所述私钥和自签名数字证书的信息,并通过与所述区块链数字证书系统和业务平台间的交互完成所述设备和/或客户端的认证。

本发明实施例还提供了一种客户端认证装置,该装置应用于业务平台,包括:

接收模块,用于接收客户端发送的用户信息和自签名数字证书的信息;所述自签名数字证书由所述客户端产生,包括:设备信息、和/或客户端信息;

第二认证模块,用于基于所述客户端产生的私钥和所述自签名数字证书的信息,并通过与区块链数字证书系统和所述客户端间的交互完成所述设备和/或客户端的认证。

本发明实施例还提供了一种客户端认证装置,该装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,

其中,所述处理器用于运行所述计算机程序时,执行上述方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。

本发明实施例提供的客户端认证方法、装置和计算机可读存储介质,产生公私钥对以及自签名数字证书,所述自签名数字证书包括:设备信息、和/或客户端信息;将所述自签名数字证书发送到区块链数字证书系统,用于所述区块链数字证书系统验证并记录所述自签名数字证书;将用户信息和所述自签名数字证书的信息发送到业务平台;基于所述私钥和自签名数字证书的信息,并通过与所述区块链数字证书系统和业务平台间的交互完成所述设备和/或客户端的认证。本发明实施例客户端自行产生和配置数字证书,无需引入ca或第三方,业务平台(或称为服务端)将用户或/和设备与数字证书进行绑定(存储),从而可通过数字证书实现对客户端用户和/或设备的认证,为用户提供个性化服务,提升用户体验;与口令认证方式相比,可避免口令存储和传输的风险,也避免了弱口令风险,提升安全性;与生物认证方式相比,对终端要求比较低,兼容性高;较传统证书方式相比,不涉及ca或第三方,减少了向第三方ca机构购买证书、或者建设和维护ca的成本。

附图说明

图1为本发明实施例所述客户端认证方法流程示意图一;

图2为本发明实施例所述客户端认证方法流程示意图二;

图3为本发明实施例所述客户端认证装置结构示意图一;

图4为本发明实施例所述客户端认证装置结构示意图二;

图5为本发明实施例所述基于区块链的数字证书系统示意图。

具体实施方式

下面结合附图和实施例对本发明进行描述。

本发明实施例提供了一种客户端认证方法,如图1所示,该方法应用于客户端,包括:

步骤101:产生公私钥对以及自签名数字证书,所述自签名数字证书包括:设备信息、和/或客户端信息;

步骤102:将所述自签名数字证书发送到区块链数字证书系统,用于所述区块链数字证书系统验证并记录所述自签名数字证书;

步骤103:将用户信息和所述自签名数字证书的信息发送到业务平台;

步骤104:基于所述私钥和自签名数字证书的信息,并通过与所述区块链数字证书系统和业务平台间的交互完成所述设备和/或客户端的认证。

这里,所述公钥将体现在自签名数字证书中,私钥用于对自签名数字证书进行签名(自签名数字证书中已经包含公钥信息),签名结果也体现在自签名数字证书中(即:客户端用所述私钥进行签名,业务平台用所述自签名数字证书验证签名),为现有技术,后续不再详述。

本发明实施例客户端自行产生和配置数字证书,无需引入ca或第三方,业务平台(或称为服务端)将用户或/和设备与数字证书进行绑定(存储),从而可通过数字证书实现对客户端用户和/或设备的认证,为用户提供个性化服务,提升用户体验;与口令认证方式相比,可避免口令存储和传输的风险,也避免了弱口令风险,提升安全性;与生物认证方式相比,对终端要求比较低,兼容性高;较传统证书方式相比,不涉及ca或第三方,减少了向第三方ca机构购买证书、或者建设和维护ca的成本。

一个实施例中,所述自签名数字证书还可包括:用户信息、和/或设备信息、和/或客户端信息。

本发明实施例中,所述用户信息包括:用户身份标识、和/或用户认证凭证。

本发明实施例中,所述基于所述私钥和自签名数字证书的信息,并通过与所述区块链数字证书系统和业务平台间的交互完成所述设备和/或客户端的认证,包括:

客户端程序启动时,向所述业务平台发送登录请求;

调用与当前客户端用户对应的私钥对所述业务平台发送的随机数进行签名,并将当前客户端用户的证书信息以及签名结果发送给所述业务平台,用于所述业务平台实现对所述设备和/或客户端的认证。

一个实施例中,所述调用与当前客户端用户对应的私钥时,该方法还包括:

采用生物认证或口令认证的方式对私钥进行保护,认证通过后才调用私钥进行签名。

本发明实施例还提供了一种客户端认证方法,如图2所示,该方法应用于业务平台,包括:

步骤201:接收客户端发送的用户信息和自签名数字证书的信息;所述自签名数字证书由所述客户端产生,包括:设备信息、和/或客户端信息;

步骤202:基于所述客户端产生的私钥和所述自签名数字证书的信息,并通过与区块链数字证书系统和所述客户端间的交互完成所述设备和/或客户端的认证。

本发明实施例中,所述基于所述客户端产生的私钥和所述自签名数字证书的信息,并通过与区块链数字证书系统和所述客户端间的交互完成所述设备和/或客户端的认证,包括:

接收客户端发送的登录请求;

向所述客户端发送随机数,所述随机数用于所述客户端进行签名;

接收所述客户端发送的相应用户的证书信息以及签名结果,并进行后续设备和/或客户端的认证流程。

为了实现上述方法,本发明实施例还提供了一种客户端认证装置,如图3所示,该装置应用于客户端,包括:

生成模块301,用于产生公私钥对以及自签名数字证书,所述自签名数字证书包括:设备信息、和/或客户端信息;

发送模块302,用于将所述自签名数字证书发送到区块链数字证书系统,用于所述区块链数字证书系统验证并记录所述自签名数字证书;将用户信息和所述自签名数字证书的信息发送到业务平台;

第一认证模块303,用于基于所述私钥和自签名数字证书的信息,并通过与所述区块链数字证书系统和业务平台间的交互完成所述设备和/或客户端的认证。

本发明实施例中,所述自签名数字证书包括:用户信息、和/或设备信息、和/或客户端信息。

本发明实施例中,所述用户信息包括:用户身份标识、和/或用户认证凭证。

本发明实施例中,所述第一认证模块303基于所述私钥和自签名数字证书的信息,并通过与所述区块链数字证书系统和业务平台间的交互完成所述设备和/或客户端的认证,包括:

客户端程序启动时,向所述业务平台发送登录请求;

调用与当前客户端用户对应的私钥对所述业务平台发送的随机数进行签名,并将当前客户端用户的证书信息以及签名结果发送给所述业务平台,用于所述业务平台实现对所述设备和/或客户端的认证。

本发明实施例中,所述第一认证模块303调用与当前客户端用户对应的私钥时,还用于采用生物认证或口令认证的方式对私钥进行保护,认证通过后才调用私钥进行签名。

本发明实施例还提供了一种客户端认证装置,如图4所示,该装置应用于业务平台,包括:

接收模块401,用于接收客户端发送的用户信息和自签名数字证书的信息;所述自签名数字证书由所述客户端产生,包括:设备信息、和/或客户端信息;

第二认证模块402,用于基于所述客户端产生的私钥和所述自签名数字证书的信息,并通过与区块链数字证书系统和所述客户端间的交互完成所述设备和/或客户端的认证。

本发明实施例中,所述第二认证模块402基于所述客户端产生的私钥和所述自签名数字证书的信息,并通过与区块链数字证书系统和所述客户端间的交互完成所述设备和/或客户端的认证,包括:

接收客户端发送的登录请求;

向所述客户端发送随机数,所述随机数用于所述客户端进行签名;

接收所述客户端发送的相应用户的证书信息以及签名结果,并进行后续设备和/或客户端的认证流程。

本发明实施例还提供了一种客户端认证装置,该装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,

其中,所述处理器用于运行所述计算机程序时,执行:

产生公私钥对以及自签名数字证书,所述自签名数字证书包括:设备信息、和/或客户端信息;

将所述自签名数字证书发送到区块链数字证书系统,用于所述区块链数字证书系统验证并记录所述自签名数字证书;

将用户信息和所述自签名数字证书的信息发送到业务平台;

基于所述私钥和自签名数字证书的信息,并通过与所述区块链数字证书系统和业务平台间的交互完成所述设备和/或客户端的认证。

其中,所述自签名数字证书包括:用户信息、和/或设备信息、和/或客户端信息。

所述基于所述私钥和自签名数字证书的信息,并通过与所述区块链数字证书系统和业务平台间的交互完成所述设备和/或客户端的认证时,所述处理器还用于运行所述计算机程序时,执行:

客户端程序启动时,向所述业务平台发送登录请求;

调用与当前客户端用户对应的私钥对所述业务平台发送的随机数进行签名,并将当前客户端用户的证书信息以及签名结果发送给所述业务平台,用于所述业务平台实现对所述设备和/或客户端的认证。

所述调用与当前客户端用户对应的私钥时,所述处理器还用于运行所述计算机程序时,执行:

采用生物认证或口令认证的方式对私钥进行保护,认证通过后才调用私钥进行签名。

本发明实施例还提供了一种客户端认证装置,该装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,

其中,所述处理器用于运行所述计算机程序时,执行:

接收客户端发送的用户信息和自签名数字证书的信息;所述自签名数字证书由所述客户端产生,包括:设备信息、和/或客户端信息;

基于所述客户端产生的私钥和所述自签名数字证书的信息,并通过与区块链数字证书系统和所述客户端间的交互完成所述设备和/或客户端的认证。

所述基于所述客户端产生的私钥和所述自签名数字证书的信息,并通过与区块链数字证书系统和所述客户端间的交互完成所述设备和/或客户端的认证时,所述处理器还用于运行所述计算机程序时,执行:

接收客户端发送的登录请求;

向所述客户端发送随机数,所述随机数用于所述客户端进行签名;

接收所述客户端发送的相应用户的证书信息以及签名结果,并进行后续设备和/或客户端的认证流程。

需要说明的是:上述实施例提供的装置在进行客户端认证时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将设备的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的装置与相应方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

在示例性实施例中,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flashmemory、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,执行:

产生公私钥对以及自签名数字证书,所述自签名数字证书包括:设备信息、和/或客户端信息;

将所述自签名数字证书发送到区块链数字证书系统,用于所述区块链数字证书系统验证并记录所述自签名数字证书;

将用户信息和所述自签名数字证书的信息发送到业务平台;

基于所述私钥和自签名数字证书的信息,并通过与所述区块链数字证书系统和业务平台间的交互完成所述设备和/或客户端的认证。

其中,所述自签名数字证书包括:用户信息、和/或设备信息、和/或客户端信息。

所述基于所述私钥和自签名数字证书的信息,并通过与所述区块链数字证书系统和业务平台间的交互完成所述设备和/或客户端的认证时,所述计算机程序被处理器运行时,还执行:

客户端程序启动时,向所述业务平台发送登录请求;

调用与当前客户端用户对应的私钥对所述业务平台发送的随机数进行签名,并将当前客户端用户的证书信息以及签名结果发送给所述业务平台,用于所述业务平台实现对所述设备和/或客户端的认证。

所述调用与当前客户端用户对应的私钥时,所述计算机程序被处理器运行时,还执行:

采用生物认证或口令认证的方式对私钥进行保护,认证通过后才调用私钥进行签名。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,执行:

接收客户端发送的用户信息和自签名数字证书的信息;所述自签名数字证书由所述客户端产生,包括:设备信息、和/或客户端信息;

基于所述客户端产生的私钥和所述自签名数字证书的信息,并通过与区块链数字证书系统和所述客户端间的交互完成所述设备和/或客户端的认证。

所述基于所述客户端产生的私钥和所述自签名数字证书的信息,并通过与区块链数字证书系统和所述客户端间的交互完成所述设备和/或客户端的认证时,所述计算机程序被处理器运行时,还执行:

接收客户端发送的登录请求;

向所述客户端发送随机数,所述随机数用于所述客户端进行签名;

接收所述客户端发送的相应用户的证书信息以及签名结果,并进行后续设备和/或客户端的认证流程。

下面结合场景实施例对本发明进行描述。

本实施例给出了客户端自签名数字证书的产生和使用方法。客户端自行产生和配置数字证书,业务平台(或称为服务端)将用户和/或设备与数字证书进行绑定,从而可通过数字证书实现对客户端用户和/或设备的认证。

实施例一

该实施例为客户端自签名数字证书产生、发送和绑定流程,包括:

步骤一:客户端软件在设备中安装时,客户端产生公私钥对,并产生自签名数字证书。

可选的,为了实现客户端与设备的绑定,该自签名数字证书中还可以包括设备信息和/或客户端信息;其中,设备信息如设备序列号,或者设备的指纹信息,客户端信息如版本号。

步骤二:客户端将该自签名数字证书发送到区块链数字证书系统中。

其中,区块链数字证书系统是已有技术,区块链数字证书系统中的节点对自签名数字证书进行验证,通过共识后将该自签名数字证书记录到区块链数字证书系统中,基于区块链的数字证书系统如图5所示,其中,本实施例中的客户端对应于所述证书用户/设备,本实施例中的业务平台对应于所述验证方,具体不再详述。

步骤三:用户在首次成功登录上述已安装的客户端时,客户端将用户信息和证书信息(可以是完整证书,也可以是证书id,证书的散列值,或其他能够标识出该数字证书的信息)发送到业务平台。

步骤四:业务平台记录用户信息和证书信息的对应关系。

这里,由于自签名数字证书是在客户端安装时产生,因此不具有用户信息,如果多个用户使用同一设备的同一客户端,那么将导致多个用户对应于同一个数字证书,在客户端使用证书登录时,仅使用证书信息无法区分用户,需要辅助使用其他信息才能区分用户,如本地生物校验或口令校验等方式;也可以采用如下实施例二解决上述用户认证问题。

实施例二

本实施例为客户端自签名数字证书产生、发送和绑定流程,包括:

步骤一:客户端软件安装到设备中;

步骤二:用户在首次成功登录上述已安装的客户端时,客户端产生公私钥对,并产生自签名数字证书。

这里,为了实现证书与用户和/或设备和/或客户端的绑定,该自签名数字证书中还可以包括用户信息和/或设备信息和/或客户端信息;其中用户信息如用户id;所述设备信息如设备序列号,或者设备的指纹信息;所述客户端信息如版本号。

步骤三:客户端将该自签名数字证书发送到区块链数字证书系统中。

其中区块链数字证书系统是已有技术,系统中的节点对自签名数字证书进行验证,通过共识后将该自签名数字证书记录到区块链系统中。

步骤四:客户端将用户信息和证书信息(可以是完整证书,也可以是证书id,证书的散列值,或其他能够标识出该数字证书的信息)发送到业务平台。

步骤五:业务平台记录用户信息和证书信息的对应关系。

实施例三

该实施例为客户端自动登录过程,当上述客户端证书产生、发送和绑定流程执行完毕之后,业务平台已经记录用户信息与证书信息的对应关系。该流程包括:

步骤一:用户启动该客户端程序时,客户端向业务平台发送登录请求;

步骤二:业务平台收到登录请求后,向客户端发送随机数;

步骤三:客户端调用与当前客户端用户对应的私钥对收到的随机数进行签名,并将当前客户端用户的证书信息以及签名结果发送给业务平台,其中证书信息可以是完整的数字证书,也可以是证书的id、散列值等可以标识证书的其他信息;

可选的,调用私钥时,还可以采用生物认证或口令认证等方式对私钥加以保护,确定只有认证通过时才可调用私钥进行签名。

步骤四:业务平台利用区块链数字证书系统验证数字证书,验证内容包括证书未被撤销,证书处于有效期等;如果步骤三中未包含完整的数字证书,那么业务平台还可以利用区块链数字证书系统查询到完整的数字证书。

步骤五:业务平台验证客户端的数字签名,若签名正确,则根据数字证书查找到相应的用户和/或设备和/或客户端,从而实现对用户和/或设备和/或客户端的认证。

上述步骤四、五也可参考相关技术。

本实施例客户端自行产生和配置数字证书,无需引入ca或第三方,业务平台(或称为服务端)将用户或/和设备与数字证书进行绑定,从而可通过数字证书实现对客户端用户和/或设备的认证,为用户提供个性化服务,提升用户体验;与口令认证方式相比,可避免口令存储和传输的风险,也避免了弱口令风险,提升安全性;与生物认证方式相比,对终端要求比较低,兼容性高;较传统证书方式相比,不涉及ca或第三方,减少了向第三方ca机构购买证书、或者建设和维护ca的成本。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1