实现MOTOpay的方法、装置及电子设备与流程

文档序号:21601987发布日期:2020-07-24 16:55阅读:856来源:国知局
实现MOTOpay的方法、装置及电子设备与流程

本说明书涉及计算机通信领域,尤其涉及实现motopay的方法、装置及电子设备。



背景技术:

motopay是一种信用卡远程收款系统,可以实现商家与消费者非面对面的消费。例如,消费者通过电话、邮件、传真或者网站等方式订购商品时,只需要输入信用卡信息,即可完成支付。通常,国际电商网站大多支持该支付方式。



技术实现要素:

根据本说明书的第一方面,提供一种实现motopay的方法,应用于终端,所述终端装载有支持motopay支付的客户端,所述方法包括:

客户端响应于用户触发的支付请求,调用终端系统对所述用户进行第一身份验证;

所述终端系统在所述用户通过第一身份验证后,从可信执行环境tee中获取存储的银行卡信息,并将所述银行卡信息返回给所述客户端;

所述客户端基于返回的所述银行卡信息执行所述支付请求。

可选的,所述方法还包括:

所述客户端在获取到所述用户输入的用于motopay支付的银行卡信息后,调用所述终端系统对所述用户进行第二身份验证;

所述终端系统在所述用户通过第二身份验证后,将所述银行卡信息存储到所述tee中。

可选的,所述将所述银行卡信息存储到所述tee中,包括:

在所述用户通过第二身份验证后,在所述tee中生成公钥和私钥;

采用所述公钥对所述银行卡信息进行加密,并将加密银行卡信息存储到所述tee中;

所述从可信执行环境tee中获取存储的银行卡信息,包括:

从所述tee中获取已存储的所述加密银行卡信息;

采用所述客户端对应的私钥对所述加密银行卡信息进行解密,得到所述银行卡信息。

可选的,所述方法还包括:

所述终端系统在生成所述公钥和私钥后,获取用于第二身份验证的验证信息,并对所述验证信息进行加密处理,得到第一加密验证信息;

所述终端系统将所述第一加密验证信息和所述公钥通过所述客户端上传至服务端存储;

所述方法还包括:

所述客户端接收所述服务端在所述用户触发所述支付请求后下发的挑战码;

所述终端系统在所述用户通过第一身份验证后,获取用于第一身份验证的验证信息,并对所述验证信息进行加密处理,得到第二加密验证信息;

所述终端系统采用所述私钥对所述第二加密验证信息和所述挑战码进行签名,并通过所述客户端将签名结果发送给所述服务端,以由所述服务端对所述签名结果进行验证;

所述从可信执行环境tee中获取存储的银行卡信息,包括:

在所述签名结果通过验证时,从tee中获取存储的银行卡信息。

可选的,所述将所述银行卡信息存储到所述tee中,包括:

所述终端系统获取用于所述第二身份验证的身份信息的标识,得到第一标识;

所述终端系统将所述银行卡信息和所述第一标识关联存储到所述tee中;

所述从可信执行环境tee中获取存储的银行卡信息,包括:

所述终端系统获取用于所述第一身份验证的身份信息的标识,得到第二标识,并从tee中获取所述第二标识关联的银行卡信息。

可选的,所述方法还包括:

所述终端系统为存储在所述tee中的银行卡信息设置老化时长;

所述终端系统在检测到所述tee中存储的银行卡信息的老化时长达到时,删除所述银行卡信息;

或者,

所述终端系统在检测到所述银行卡信息的使用情况达到预设使用条件时,删除所述银行卡信息;

或者,

所述客户端在接收到用户的删除指示时,调用终端系统删除所述银行卡信息。

可选的,所述银行卡信息包括如下至少之一:银行卡卡号、姓名、卡有效期、cvv码。

根据本说明书的第二方面,提供一种实现motopay的方法,应用于终端上搭载的支持motopay支付的客户端,所述方法包括:

响应于用户触发的支付请求,向终端系统发送第一系统调用请求,以由所述终端系统响应于所述第一系统调用请求,对所述用户进行第一身份验证,并在所述用户通过第一身份验证后,从可信执行环境tee中获取存储的银行卡信息,并将所述银行卡信息返回给所述客户端;

基于返回的所述银行卡信息执行所述支付请求。

可选的,所述方法还包括:

在获取到所述用户输入的用于motopay支付的银行卡信息后,向终端系统发送第二系统调用请求,以由所述终端系统响应于所述第二系统调用请求,对所述用户进行第二身份验证,并在所述用户通过第二身份验证后,将所述银行卡信息存储到tee中。

可选的,所述tee中还包括:用户终端系统在所述用户通过第二身份验证后生成的公钥和私钥;

所述方法还包括:

在接收到终端系统发送的第一加密验证信息和所述公钥时,将所述第一加密验证信息和所述公钥上传至服务端;所述第一加密验证信息是对所述第二身份验证的验证信息加密处理得到;

接收所述服务端在所述用户触发所述支付请求后下发的挑战码,并将所述挑战码发送给所述终端系统,以由所述终端系统在所述用户通过第一身份验证后,获取用于第一身份验证的验证信息,并对所述验证信息进行加密处理,得到第二加密验证信息,并采用所述私钥对所述第二加密验证信息和所述挑战码进行签名;

接收所述终端系统发送的签名结果,并将所述签名结果发送给所述服务端,以由所述服务端对所述签名结果进行验证,以触发所述终端系统在所述签名结果通过验证时,从所述tee中获取存储的银行卡信息。

根据本说明书的第三方面,提供一种实现motopay的方法,应用于终端的终端系统,所述终端装载有支持motopay支付的客户端,所述方法包括:

响应于所述客户端发送的第一系统调用请求,对于所述用户进行第一身份验证;

在所述用户通过第一身份验证后,从tee中获取存储的银行卡信息;

将所述银行卡信息返回给客户端,以由所述客户端基于所述银行卡信息执行用户触发的支付请求。

可选的,所述方法还包括:

响应于客户端发送的第二系统调用请求,对所述用户进行第二身份验证;所述第二系统调用请求是所述客户端在获取到用户输入的用于motopay支付的银行卡信息后发送的;

在所述用户通过第二身份验证后,将所述银行卡信息存储到所述tee中。

可选的,所述将所述银行卡信息存储到所述tee中,包括:

在所述用户通过第二身份验证后,在tee中生成公钥和私钥;

采用所述公钥对所述银行卡信息进行加密,并将加密银行卡信息存储到tee中;

所述从tee中获取存储的银行卡信息,包括:

从所述tee中获取已存储的所述加密银行卡信息;

采用所述客户端对应的私钥对所述加密银行卡信息进行解密,得到所述银行卡信息。

可选的,所述方法还包括:

在生成所述公钥和私钥后,获取用于第二身份验证的验证信息,并对所述验证信息进行加密处理,得到第一加密验证信息;

将所述第一加密验证信息和所述公钥通过所述客户端上传至服务端存储;

所述方法还包括:

在所述用户通过第一身份验证后,获取用于第一身份验证的验证信息,并对所述验证信息进行加密处理,得到第二加密验证信息;

采用所述私钥对所述第二加密验证信息和已接收到的挑战码进行签名,并通过客户端将签名结果发送给所述服务端,以由所述服务端对所述签名结果进行验证;所述挑战码由所述服务端在所述用户触发所述支付请求后下发;

所述从tee中获取存储的银行卡信息,包括:

在所述签名结果通过验证时,从所述tee中获取存储的银行卡信息。

可选的,所述将所述银行卡信息存储到所述tee中,包括:

获取用于所述第二身份验证的身份信息的标识,得到第一标识;

将所述银行卡信息和所述第一标识关联存储到tee中;

所述从tee中获取存储的银行卡信息,包括:

获取用于所述第一身份验证的身份信息的标识,得到第二标识;

从tee中获取所述第二标识关联的银行卡信息。

可选的,所述方法还包括:

为存储在所述tee中的银行卡信息设置老化时长;

在检测到所述tee中存储的银行卡信息的老化时长达到时,删除所述银行卡信息;

或者,

在检测到所述银行卡信息的使用情况达到预设使用条件时,删除所述银行卡信息。

根据本说明书的第四方面,提供一种实现motopay的装置,应用于终端上搭载的支持motopay支付的客户端,所述装置包括:

发送模块,用于响应于用户触发的支付请求,向终端系统发送第一系统调用请求,以由所述终端系统响应于所述第一系统调用请求,对所述用户进行第一身份验证,并在所述用户通过第一身份验证后,从可信执行环境tee中获取存储的银行卡信息,并将所述银行卡信息返回给所述客户端;

执行模块,用于基于返回的所述银行卡信息执行所述支付请求。

可选的,所述发送模块,用于在获取到所述用户输入的用于motopay支付的银行卡信息后,向终端系统发送第二系统调用请求,以由所述终端系统响应于所述第二系统调用请求,对所述用户进行第二身份验证,并在所述用户通过第二身份验证后,将所述银行卡信息存储到tee中。

可选的,所述tee中还包括:用户终端系统在所述用户通过第二身份验证后生成的公钥和私钥;

所述装置还包括:

上传模块,用于在接收到终端系统发送的第一加密验证信息和所述公钥时,将所述第一加密验证信息和所述公钥上传至服务端;所述第一加密验证信息是由对所述第二身份验证的验证信息加密处理得到;

接收模块,用于接收所述服务端在所述用户触发所述支付请求后下发的挑战码,并将所述挑战码发送给所述终端系统,以由所述终端系统在所述用户通过第一身份验证后,获取用于第一身份验证的验证信息,并对所述验证信息进行加密处理,得到第二加密验证信息,并采用所述私钥对所述第二加密验证信息和所述挑战码进行签名;

所述上传模块,还用于接收所述终端系统发送的签名结果,并将所述签名结果发送给所述服务端,以由所述服务端对所述签名结果进行验证,以触发所述终端系统在所述签名结果通过验证时,从所述tee中获取存储的银行卡信息。

根据本说明书的第五方面,提供一种实现motopay的装置,应用于终端的终端系统,所述终端搭载有支持motopay支付的客户端,所述装置包括:

验证模块,用于响应于所述客户端发送的第一系统调用请求,对于所述用户进行第一身份验证;

获取模块,用于在所述用户通过第一身份验证后,从tee中获取存储的银行卡信息;

返回模块,用于将所述银行卡信息返回给客户端,以由所述客户端基于所述银行卡信息执行用户触发的支付请求。

可选的,所述验证模块,还用于响应于客户端发送的第二系统调用请求,对所述用户进行第二身份验证;所述第二系统调用请求是所述客户端在获取到用户输入的用于motopay支付的银行卡信息后发送的;

所述装置还包括:

存储模块,用于在所述用户通过第二身份验证后,将所述银行卡信息存储到所述tee中。

可选的,所述存储模块,在将所述银行卡信息存储到所述tee中时,用于在所述用户通过第二身份验证后,在tee中生成公钥和私钥;采用所述公钥对所述银行卡信息进行加密,并将加密银行卡信息存储到tee中;

所述获取模块,在从tee中获取存储的银行卡信息时,用于从所述tee中获取已存储的所述加密银行卡信息;采用所述客户端对应的私钥对所述加密银行卡信息进行解密,得到所述银行卡信息。

可选的,所述装置还包括:

加密模块,用于在生成所述公钥和私钥后,获取用于第二身份验证的验证信息,并对所述验证信息进行加密处理,得到第一加密验证信息;将所述第一加密验证信息和所述公钥通过所述客户端上传至服务端存储;

所述装置还包括:

签名模块,用于在所述用户通过第一身份验证后,获取用于第一身份验证的验证信息,并对所述验证信息进行加密处理,得到第二加密验证信息;采用所述私钥对所述第二加密验证信息和已接收到的挑战码进行签名,并通过客户端将签名结果发送给所述服务端,以由所述服务端对所述签名结果进行验证;所述挑战码由所述服务端在所述用户触发所述支付请求后下发;

所述获取模块,在从tee中获取存储的银行卡信息时,用于在所述签名结果通过验证时,从所述tee中获取存储的银行卡信息。

可选的,所述存储模块,在将所述银行卡信息存储到所述tee中时,用于获取用于所述第二身份验证的身份信息的标识,得到第一标识;将所述银行卡信息和所述第一标识关联存储到tee中;

所述获取模块,在从tee中获取存储的银行卡信息时,用于获取用于所述第一身份验证的身份信息的标识,得到第二标识;从tee中获取所述第二标识关联的银行卡信息。

可选的,所述装置还包括:

设置模块,用于为存储在所述tee中的银行卡信息设置老化时长;

删除模块,用于在检测到所述tee中存储的银行卡信息的老化时长达到时,删除所述银行卡信息;或者,在检测到所述银行卡信息的使用情况达到预设使用条件时,删除所述银行卡信息。

根据本说明书的第六方面,提供一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器通过运行所述可执行指令以实现上述实现motopay的方法。

根据本说明书的第七方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现实现上述实现motopay的方法。

由上述描述可知,通过将用户的银行卡信息储存在用户终端的tee中。在用户进行支付时,用户终端可调用tee中的银行卡信息完成支付。

一方面,在本说明书中,用户在采用motopay支付时,只需要输入用户信息,比如按指纹,就可以实现支付,从而实现了国内快捷支付的功能。

另一方面,通过用户信息授权获取终端存取的银行卡信息,保障银行卡信息的安全性。

根据本说明书的第八方面,提供一种身份认证的实现方法,应用于终端,所述终端装载有客户端,所述方法包括:

所述客户端响应于用户触发的身份认证请求,调用所述终端系统对所述用户进行第一本地身份验证;

所述终端系统在所述用户通过第一本地身份验证后,从可信执行环境tee中获取存储的用户认证信息,并将所述用户认证信息返回给客户端;

客户端基于返回的所述用户认证信息执行所述身份认证请求。

可选的,所述方法还包括:

所述客户端在获取到所述用户输入的用于身份认证的用户认证信息后,调用所述终端系统对所述用户进行第二本地身份验证;

所述终端系统在所述用户通过第二本地身份验证后,将所述用户认证信息存储到所述tee中。

可选的,所述将所述用户认证信息存储到所述tee中,包括:

在所述用户通过第二本地身份验证后,在所述tee中生成公钥和私钥;

采用所述公钥对所述用户认证信息进行加密,并将加密用户认证信息存储到所述tee中;

所述从可信执行环境tee中获取存储的用户认证信息,包括:

从所述tee中获取已存储的所述加密用户认证信息;

采用所述客户端对应的私钥对所述加密用户认证信息进行解密,得到所述用户认证信息。

可选的,所述方法还包括:

所述终端系统在生成所述公钥和私钥后,获取用于第二本地身份验证的验证信息,并对所述验证信息进行加密处理,得到第一加密验证信息;

所述终端系统将所述第一加密验证信息和所述公钥通过所述客户端上传至服务端存储;

所述方法还包括:

所述客户端接收所述服务端在所述用户触发所述身份认证请求后下发的挑战码;

所述终端系统在所述用户通过第一本地身份验证后,获取用于第一本地身份验证的验证信息,并对所述验证信息进行加密处理,得到第二加密验证信息;

所述终端系统采用所述私钥对所述第二加密验证信息和所述挑战码进行签名,并通过所述客户端将签名结果发送给所述服务端,以由所述服务端对所述签名结果进行验证;

所述从可信执行环境tee中获取存储的用户认证信息,包括:

在所述签名结果通过验证时,从所述tee中获取存储的用户认证信息。

可选的,所述将所述用户认证信息存储到所述tee中,包括:

所述终端系统获取用于所述第二本地身份验证的身份信息的标识,得到第一标识;

所述终端系统将所述用户认证信息和所述第一标识关联存储到所述tee中;

所述从可信执行环境tee中获取存储的用户认证信息,包括:

所述终端系统获取用于所述第一本地身份验证的生物特征的标识,得到第二标识,并从所述tee中获取所述第二标识关联的用户认证信息。

由上述描述可知,通过将用户的用户认证信息储存在用户终端的tee中。在用户进行身份认证时,用户终端可调用tee中的用户认证信息完成支付。

一方面,在本说明书中,用户在进行身份认证时,只需要用户按指纹等,就可以实现身份认证。

另一方面,通过用户信息(比如用户的指纹等)授权获取终端存取的用户认证信息,保障用户认证信息的安全性。

附图说明

图1是本说明书一示例性实施例示出的一种银行卡信息存储过程的流程图;

图2是本说明书一示例性实施例示出的一种motopay支付方法的流程图;

图3是本说明书一示例性实施例示出的一种实现motopay的方法的流程图;

图4是本说明书一示例性实施例示出的一种实现motopay的方法的流程图;

图5是本说明书一示例性实施例示出的另一种银行卡信息存储方法的流程图;

图6是本说明书一示例性实施例示出的一种motopay支付方法的流程图;

图7是本说明一示例性实施例示出的一种终端的硬件结构图;

图8是本说明书一示例性实施例示出的一种用于实现motopay的装置的框图;

图9是本说明书一示例性实施例示出的另一种实现motopay的装置的框图;

图10是本说明书一示例性实施例示出的一种用户认证信息储存方法的流程图;

图11是本说明书一示例性实施例示出的一种认证实现方法的流程图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

motopay是一种信用卡远程收款系统,可以实现商家与消费者非面对面的消费。例如,消费者通过电话、邮件、传真或者网站等方式订购商品时,只需要输入信用卡信息,即可完成支付。通常,国际电商网站大多支持该支付方式。

然而,在实际应用中,用户往往忘记携带银行卡或者用户记不住所有卡的信息,致使用户无法支付。

有鉴于此,本说明书提出一种实现motopay的方法,通过将用户的银行卡信息储存在用户终端的tee中。在用户进行支付时,用户终端可调用tee中的银行卡信息完成支付,从而解决了用户忘记带银行卡或者忘记银行卡信息所产生的支付问题。

此外,在本说明书中,在将银行卡信息存储在用户终端的tee后,用户在支付时,无需录入银行卡信息,只需录入指纹等身份信就可以实现支付,所以极大地便捷了用户的支付操作,提高了支付效率。

下面对本说明书提供的实现motopay的方法进行详细说明。

本说明书的实现motopay的方法可包括:银行卡信息的存储过程,以及用户支付的过程,下面通过这两方面对本说明书提供的实现motopay的方法进行详细地说明。

1、银行卡信息的存储过程

参见图1,图1是本说明书一示例性实施例示出的一种银行卡信息存储过程的流程图,该方法可应用在该方法可应用在终端上。该终端可包括客户端、以及终端系统。客户端支持motopay支付。

其中,该终端可包括:pc机、可移动终端等。比如可移动终端可包括:用户的手机、ipad、笔记本电脑、掌上电脑等等。这里不对终端、以及可移动终端进行具体地限定。

该方法可包括如下所示步骤。

步骤102:客户端在获取到所述用户输入的用于motopay支付的银行卡信息后,调用终端系统对所述用户进行第二身份验证。

其中,所述银行卡包括:信用卡、借记卡等等,这里只是对银行卡进行示例性地说明,不对其进行具体地限定。

下面通过步骤1021至步骤1022对步骤102进行说明。

步骤1021:客户端获取到用户输入的用于motopay支付的银行卡信息。

在实现时,当用户首次支付,或者用户需要添加银行卡信息,或者终端上存储的已注册用户信息(比如已注册的用户指纹等)发生变化等时,用户可以在该终端上输入用于motopay支付的银行卡信息。客户端可获取用户输入的银行卡信息。

比如,对于用户首次支付,客户端在检测到用户触发的支付请求时,可调用终端系统获取所述用户的用户信息,并依据所述用户信息对所述用户进行身份验证。终端系统在身份验证通过后,可检测tee中是否存储有银行卡信息,若没有存储银行卡信息,则通知客户端。客户端可提示用户录入银行卡信息。然后,客户端可获取用户录入的银行卡信息。

或者,客户端在接收到用户添加银行卡信息的添加指令时,获取该添加指令中携带的银行卡信息。

这里只是对“客户端获取用户输入的用于motopay支付的银行卡信息”的方式进行示例性地说明,不对其进行具体地限定。

步骤1022:客户端调用终端系统对所述用户进行第二身份验证。

在实现时,客户端在获取到该用户输入的用于motopay支付的银行卡信息后,可向终端系统发送第二系统调用请求。终端系统可响应于该第二系统调用请求,获取所述用户的用户信息,并依据该用户信息、以及本地存储的验证信息对所述用户进行第二身份验证。

其中,用户信息可包括:用户的用户名密码等文本信息、或者用户的生物特征信息。比如用户的指纹、用户的人脸特征、用户的虹膜特征等。这里只是对用户信息进行示例性地说明,不对其进行具体地限定。

终端系统本地存储有用户已注册的验证信息,比如用户已注册用户名密码等文本信息、或者用户的生物特征信息,比如已注册的用户指纹、人脸特征,虹膜特征等。这里只是对终端系统本地存储的验证信息进行示例性地说明,不对其进行具体地限定。

在依据该身份信息、以及本地存储的验证信息对该用户进行第二身份验证时,终端系统可检测用户的身份信息与终端系统存储的验证信息是否匹配。若身份信息与验证信息匹配,则确定用户第二身份验证通过,若身份信息与验证信息不匹配,则确定用户第二身份验证不通过。

步骤104:终端系统在所述用户通过第二身份验证后,将所述银行卡信息存储到所述tee中。

下面介绍几种将银行卡信息存储到tee的方式。

方式一:在将银行卡信息储存在tee中时,终端系统可以只将银行卡信息储存至tee中,用户的任何身份信息都可以调用该tee中的银行卡信息。

以指纹为例,假设终端系统中包括用户的拇指指纹、食指指纹。终端系统可以只将银行卡信息存储在tee中。在后续用户支付时,无论用户输入拇指指纹、或者食指指纹进行第一身份验证,调用均是tee中存储的一个或者多个银行卡信息。

方式二:终端系统可获取用于所述第二身份验证的身份信息的标识,得到第一标识。然后,终端系统可将加密后的银行卡信息和所述第一标识关联储存在tee中。

这样的关联存储可以使得用户的身份信息标识和银行卡一一绑定。在后续用户支付时,可以基于该用户的不同身份信息调用不同的银行卡。

以用户的身份信息为指纹为例进行说明。

假设,用户在客户端输入的用于支付motopay的银行卡信息为中国银行的银行卡信息,用户是采用拇指指纹进行第二身份认证的。终端系统在确定第二身份认证通过时,将该用户的拇指指纹与该中国银行的银行卡信息关联存储在tee中。假设,用户又在客户端输入的用于支付motopay的银行卡信息为建设银行的银行卡信息,用户是采用食指指纹进行第二身份认证的。终端系统在确定第二身份认证通过时,将该用户的食指指纹与该建设银行的银行卡信息关联存储在tee中。

在用户支付时,若用户输入拇指指纹进行第一身份验证,则为用户返回的是中国银行的银行卡信息。若用户输入食指指纹进行第一身份验证,则为用户返回建设银行的银行卡信息。

此外,为了保证银行卡信息的安全性,无论是直接将银行卡信息存储在tee中,还是将银行卡信息与第二身份验证的身份信息标识关联存储至tee中,终端系统可采用生成的公钥对该银行卡信息进行加密,并将加密银行卡信息通过上述两种方式存储在tee中。

具体地,为了保障银行卡信息的安全性,终端系统可生成公钥、私钥的密钥对。该生成的密钥对可以与客户端对应,也可以与用户对应,这里不对该密钥对的对应关系进行具体地限定。

当密钥与客户端绑定时,其他客户端不能访问该密钥对。当该密钥与用户绑定时,该客户端的其他用户或者其他客户端无法访问该密钥对,从而可以保证银行卡信息的安全性。

终端系统可采用公钥对银行卡信息进行加密,并将加密后的银行卡信息存储到tee中。

2、motopay支付过程

参见图2,图2是本说明书一示例性实施例示出的一种motopay支付方法的流程图,该方法可应用在终端上。该终端可包括客户端、以及终端系统。客户端支持motopay支付。

其中,该终端可包括:pc机、可移动终端等。比如可移动终端可包括:用户的手机、ipad、笔记本电脑、掌上电脑等等。这里不对终端、以及可移动终端进行具体地限定。

该方法可包括如下所示步骤:

步骤202:客户端响应于用户触发的支付请求,调用终端系统对于所述用户进行第一身份验证。

在实现时,当客户端检测到用户触发的支付请求后,可响应于该支付请求,向终端系统发送第二系统调用消息。

终端系统可响应于该第二系统调用消息,通过tui获取用户输入的身份信息,并依据该身份信息、以及本地存储的验证信息对该用户的进行第一身份验证。

在依据该身份信息对该用户进行第一身份验证时,终端系统可检测用户的身份信息与终端系统存储的验证信息是否匹配。若身份信息与验证信息匹配,则确定用户第一身份验证通过,若身份信息与验证信息不匹配,则确定用户第一身份验证不通过。

步骤204:终端系统在所述用户通过第一身份验证后,从可信执行环境tee中获取存储的银行卡信息,并将所述银行卡信息返回给客户端。

与上述步骤104对应,步骤204可通过多种实现方式实现。

方式一:当终端系统在确定用户通过第二身份验证后,只将用户输入的银行卡信息储存在tee中时,该步骤204实现方式为:终端系统在确定用户通过第一身份验证后,可直接从tee中获取银行卡信息,并将银行卡信息返回给客户端。

以指纹为例,假设终端系统中包括用户的拇指指纹、食指指纹。用户通过拇指指纹进行第二身份验证,终端系统在确定用户通过身份验证后,可以只将用户输入的中国银行的银行卡信息存储在tee中。

在后续用户支付时,无论用户输入拇指指纹、或者食指指纹进行第一身份验证,在第一身份验证通过后,终端系统从tee中获取到的均是中国银行的银行卡信息。

方式二:当终端系统在确定用户通过第二身份验证后,将该用于所述第二身份验证的身份信息的标识与该银行卡信息关联存储到tee中时,该步骤204的实现方式为:终端系统获取用于所述第一身份验证的身份信息的标识,得到第二标识;从tee中获取所述第二标识关联的银行卡信息。

以指纹为例,假设,用户在客户端输入的用于支付motopay的银行卡信息为中国银行的银行卡信息,用户是采用拇指指纹进行第二身份认证的。终端系统在确定第二身份认证通过时,将该用户的拇指指纹与该中国银行的银行卡信息关联存储在tee中。假设,用户又在客户端输入的用于支付motopay的银行卡信息为建设银行的银行卡信息,用户是采用食指指纹进行第二身份认证的。终端系统在确定第二身份认证通过时,将该用户的食指指纹与该建设银行的银行卡信息关联存储在tee中。

在用户支付时,若用户输入拇指指纹进行第一身份验证,终端系统则可从tee中获取与拇指指纹对应的中国银行的银行卡信息,并将中国银行卡信息返回给客户端。若用户输入食指指纹进行第一身份验证,终端系统则可从tee中获取与食指指纹对应的建设银行的银行卡信息,并将建设银行卡信息返回给客户端。

此外,为了保证银行卡信息的安全性,无论是直接将银行卡信息存储在tee中,还是将银行卡信息与第二身份验证的身份信息标识关联存储至tee中,终端系统可采用生成的公钥对该银行卡信息进行加密,并将加密银行卡信息通过上述两种方式存储在tee中。

同理,无论是直接从tee中获取银行卡信息,或者从tee中获取与该第一身份认证的身份信息标识对应的银行卡信息,若终端系统从tee中获取到的是加密银行卡信息,则可采用私钥对该银行卡信息进行解密,并将解密后的银行卡信息返回给客户端。

步骤206:客户端基于返回的所述银行卡信息执行所述支付请求。

若客户端接收到终端系统返回的银行卡信息为一个时,可直接基于该银行卡信息执行该支付请求。

若该客户端接收到的终端系统返回的银行卡信息为多个时,客户端可向用户展示该多个银行卡信息,以由用户选择用于此次支付的银行卡信息。然后,客户端可基于用户选择出的银行卡信息执行该支付请求。

或者,若该客户端接收到的终端系统返回的银行卡信息为多个时,客户端可依据预设的选择算法,选择一个银行卡信息,并基于选择出的银行卡信息执行该支付请求。

其中,该预设的选择算法可以包括:随机选择,或者选择tee中最近存储的银行卡信息等等。这里只是对预设的选择算法进行示例性地说明,不对其进行具体地限定。

在执行支付请求时,客户端可以基于该银行卡信息生成支付消息,然后将支付消息发送给银行信息,以由银行系统向商品购买方进行转账,以完成支付。这里只是对执行支付请求进行示例性地说明,不对其进行具体地限定。

此外,在本说明书实施例中,为了保证银行卡信息的安全,当用户新增或者删除用户信息(如指纹)时,用户都要重新输入银行卡信息。为了实现该“用户新增或者删除用户信息时,用户都要重新输入银行卡信息”的功能,可采用如下方式实现。

在实现时,终端系统在生成公钥和私钥后,可获取用于第二身份验证的验证信息。换句话来说,终端系统可获取本地当前所存储的已注册的用户身份信息。

然后,终端系统可将该第二身份验证的验证信息进行加密处理,得到第一加密验证信息。比如,终端系统可计算该第二身份验证的验证信息的哈希值,然后将该哈希值作为第一加密验证信息。当然,终端系统还可以采用其他加密处理方法,这里不进行具体地限定。

终端系统可将第一加密验证信息和所述公钥发送给客户端,客户端可将第一加密验证信息和公钥发送给服务端进行存储。

在用户触发支付请求后,客户端可接收服务端下发的挑战码。其中,该挑战码可以是客户端在检测到用户的支付请求后,向服务端发送挑战码获取请求,以使得服务端响应于该挑战码获取请求,向客户端下发挑战码。当然,也该挑战码也可以是服务端在用户触发支付请求后的其他时机下下发的,这里不进行具体地限定。

此外,在用户触发支付请求后,客户端可向终端系统发送第一系统调用请求,终端系统可对用户进行第一身份验证。终端系统在用户通过第一身份验证后,可获取第一身份验证的验证信息。换句话来说,终端系统可获取当前本地存储的已注册用户身份信息。

然后,终端系统可将该第一身份验证的验证信息进行加密处理,得到第二加密验证信息。比如,终端系统可计算该第一身份验证的验证信息的哈希值,然后将该哈希值作为第二加密验证信息。当然,终端系统还可以采用其他加密处理方法,这里不进行具体地限定。

终端系统采用所述私钥对第二加密验证信息和所述挑战码进行签名,并将签名结果发送给客户端。客户端将该签名结果发送给服务端,以由服务端对所述签名结果进行验证。

在验证签名结果时,服务端可采用之前存储的公钥对该签名进行解密,得到第二加密验证信息和挑战码。

服务端可检测第二加密验证信息和之前存储的第一加密验证信息是否一致,以及解密得到的挑战码与下发的挑战码是否一致。

若第二加密验证信息和之前存储的第一加密验证信息一致,以及解密得到的挑战码与下发的挑战码一致,则向客户端返回签名结果通过的消息。客户端可将该签名结果通过的消息发送给终端系统,终端系统在接收到该签名结果通过的消息可确定签名结果通过,并执行上述从tee中获取存储的银行卡信息的步骤。

若第二加密验证信息和之前存储的第一加密验证信息不一致,和/或解密得到的挑战码与下发的挑战码不一致,则向客户端返回签名结果不通过的消息。客户端可将该签名结果不通过的消息发送给终端系统,终端系统在接收到该签名结果不通过的消息时,可确定签名结果不通过,终端系统不执行上述从tee中获取存储的银行卡信息的步骤。可选的,终端系统在接收到签名结果不通过的消息时,还可从tee中删除已存储的银行卡信息。

此外,客户端可向用户发送提示信息,以使得用户重新输入银行卡信息。在用户输入银行卡信息后可执行上述银行卡信息的存储过程,这里不再赘述。

例如,假设当前终端系统存储身份信息为有用户的拇指指纹。

客户端在获取到所述用户输入的用于motopay支付的银行卡信息后,调用终端系统对所述用户进行第二身份验证,假设第二身份验证的验证信息为当前终端系统存储的拇指指纹。

然后,在用户第二身份验证通过后,终端系统可生成公钥、和私钥。终端系统一方面可采用公钥对该银行卡信息进行加密,并将加密银行卡信息存储至tee中。另一方面,终端系统可将该拇指指纹进行哈希运算,得到该拇指指纹的哈希值,并将该拇指指纹的哈希值以及公钥通过客户端上传至服务端进行存储。

1)假设,在用户输入银行卡信息到用户触发支付的这段时间里,用户没有在用户终端上新增或者删除指纹,则在当前终端系统存储的身份信息为用户的拇指指纹。

客户端响应于用户触发的支付请求,调用终端系统对于所述用户进行第一身份验证,该第一身份验证的验证信息为当前终端系统存储的拇指指纹。

此外,在用户触发支付请求后,客户端可获取到服务端下发的挑战码,客户端可将挑战码发送给终端系统。

终端系统在用户通过第一身份验证后,对第一身份验证的验证信息(即拇指指纹)进行哈希运算,得到拇指指纹的哈希值。

然后,终端系统可对该拇指指纹的哈希值以及挑战码进行签名,并将签名结果通过客户端发送给服务端。服务端利用之前存储的公钥对该签名结果进行解密,得到拇指哈希指纹以及挑战码,由于解密得到的拇指哈希指纹(即第二加密验证信息)与之前存储的拇指哈希指纹(即第一加密验证信息)一致,且解密得到的挑战码与下发的挑战码一致,服务端可确定签名结果通过,并向客户端返回签名结果通过的消息。终端系统在接收到客户端返回的签名结果通过的消息后,可从tee中获取银行卡信息,并返回给客户端。

2)假设,在用户输入银行卡信息到用户触发支付的这段时间里,用户在用户终端上新增了食指指纹,则在当前终端系统存储的身份信息为用户的拇指指纹、食指指纹。

客户端响应于用户触发的支付请求,调用终端系统对于所述用户进行第一身份验证,该第一身份验证的验证信息为当前终端系统存储的拇指指纹、食指指纹。

此外,在用户触发支付请求后,客户端可获取到服务端下发的挑战码,客户端可将挑战码发送给终端系统。

终端系统在用户通过第一身份验证后,对第一身份验证的验证信息(即拇指指纹、食指指纹)进行哈希运算,得到拇指指纹和食指指纹的哈希值。

然后,终端系统可对该拇指指纹和食指指纹的哈希值以及挑战码进行签名,并将签名结果通过客户端发送给服务端。服务端利用之前存储的公钥对该签名结果进行解密,得到拇指指纹和食指指纹的哈希值以及挑战码,由于解密得到的拇指指纹和食指指纹的哈希值(即第二加密验证信息)与之前存储的拇指指纹的哈希值(即第一加密验证信息)不一致,且解密得到的挑战码与下发的挑战码一致,服务端可确定签名结果不通过,并向客户端返回签名结果不通过的消息。终端系统在接收到客户端返回的签名结果不通过的消息后,不从tee中获取银行卡信息。同时,客户端向用户发送提示信息,以提示用户重新输入银行卡信息。

由此可见通过上述方式可实现当用户新增或者删除指纹时,用户都要重新输入银行卡信息。

由上述描述可知,通过将用户的银行卡信息储存在用户终端的tee中。在用户进行支付时,用户终端可调用tee中的银行卡信息完成支付。

一方面,在本说明书中,用户在采用motopay支付时,只需要输入身份信息,比如按指纹,就可以实现支付,从而实现了国内快捷支付的功能。

另一方面,在本说明书中,通过与服务端交互,实现当用户新增或者删除终端系统中已注册的身份信息时,用户都需要重新输入银行卡信息,从而保障了银行卡信息的安全性。比如,用户新增或者删除指纹时,都需要重新输入银行卡信息。

面,银行卡信息存储在用户终端的tee中,以及用户通过身份验证才能录入银行卡信息,以及调用银行卡信息,从而极大地保证了银行卡信息的安全性。

参见图3,图3是本说明书一示例性实施例示出的一种实现motopay的方法的流程图,该方法可应用在终端上搭载的支持motopay支付的客户端,该方法可包括如下所示步骤。

步骤302:客户端响应于用户触发的支付请求,向终端系统发送第一系统调用请求,以由所述终端系统响应于所述第一系统调用请求,对所述用户进行第一身份验证,并在用户通过第一身份验证后,从可信执行环境tee中获取存储的银行卡信息,并将所述银行卡信息返回给客户端。

具体可参见上述步骤202-步骤204中的描述,这里不再赘述。

步骤304:客户端基于返回的所述银行卡信息执行所述支付请求。

具体可参见上述步骤206中的描述,这里不再赘述。

此外,在本说明书实施例中,客户端在获取到所述用户输入的用于motopay支付的银行卡信息后,向终端系统发送第二系统调用请求,以由所述终端系统响应于所述第二系统调用请求,对所述用户进行第二身份验证,并在用户通过第二身份验证后,将所述银行卡信息存储到tee中。

具体可参见上述步骤102至104中的描述,这里不再赘述。

由上述描述可知,通过将用户的银行卡信息储存在用户终端的tee中。在用户进行支付时,用户终端可调用tee中的银行卡信息完成支付。

在本说明书中,用户在采用motopay支付时,只需要输入用户信息,比如按指纹,就可以实现支付,从而实现了国内快捷支付的功能。

参见图4,图4是本说明书一示例性实施例示出的一种实现motopay的方法的流程图,该方法可应用在终端的终端系统,该终端搭载有支持motopay支付的客户端。

步骤402:终端系统响应于客户端发送的第一系统调用请求,对于所述用户进行第一身份验证;

具体可参见上述步骤202,这里不再赘述。

步骤404:终端系统在所述用户通过第一身份验证后,从tee中获取存储的银行卡信息;

具体可参见上述步骤204,这里不再赘述。

步骤406:终端系统将所述银行卡信息返回给客户端,以由所述客户端基于所述银行卡信息执行用户触发的支付请求。

具体可参见上述步骤206,这里不再赘述。

此外,在本说明书实施例中,终端系统还可响应于客户端发送的第二系统调用请求,对所述用户进行第二身份验证;所述第二系统调用请求是所述客户端在获取到用户输入的用于motopay支付的银行卡信息后发送的,在所述用户通过第二身份验证后,将所述银行卡信息存储到所述tee中。

具体可参见上述步骤102至104,这里不再赘述。

由上述描述可知,通过将用户的银行卡信息储存在用户终端的tee中。在用户进行支付时,用户终端可调用tee中的银行卡信息完成支付。

在本说明书中,用户在采用motopay支付时,只需要输入用户信息,比如按指纹,就可以实现支付,从而实现了国内快捷支付的功能。

下面参考图5、图6介绍另一种实现motopay的方法。

参见图5,图5是本说明书一示例性实施例示出的另一种银行卡信息存储方法的流程图,该方法可应用在终端。终端包括:支持motopay支付的客户端、终端系统。该方法可包括如下所示步骤。

步骤501:客户端获取到所述用户输入的用于motopay支付的银行卡信息;

步骤502:客户端向终端系统发送第一系统调用请求;

步骤503:终端系统响应于第一系统调用请求,对用户进行第二身份验证;

步骤504:终端系统在第二身份验证通过后,终端系统生成公钥和私钥。

步骤505:终端系统采用公钥对银行卡信息进行加密,并将加密银行卡信息存储在tee中,以及获取第二身份验证的验证信息,并对该验证信息进行加密处理,得到第一加密验证信息。

步骤506:终端系统向客户端发送第一加密验证信息和公钥;

步骤507:客户端向服务端发送第一加密验证信息和公钥;

步骤508:服务端存储第一加密验证信息和公钥。

参见图6,图6是本说明书一示例性实施例示出的一种motopay支付方法的流程图,该方法可应用在终端。终端包括:支持motopay支付的客户端、终端系统。该方法可包括如下所示步骤。

步骤601:客户端检测到用户触发的支付请求。

步骤602:客户端响应于该支付请求,向服务端发送挑战码获取请求。

步骤603:服务端响应于挑战码获取请求,向客户端发送挑战码。

步骤604:客户端响应于该支付请求,向终端系统发送第二系统调用请求、挑战码。

在实现时,客户端可将第二系统调用请求和挑战码同时发送给终端系统。

客户端也可以在检测到用户触发的支付请求时,向终端系统发送第二系统调用请求。客户端在接收到服务端下发的挑战码后,将挑战码发送给终端系统。这里并不对两者的发送进行具体地限定,只要符合逻辑即可。

步骤605:终端系统响应于第二系统调用请求,对用户进行第一身份验证。

步骤606:终端系统在用户第一身份验证通过时,获取用于第一身份验证的验证信息,并对所述验证信息进行加密处理,得到第二加密验证信息。

步骤607:终端系统采用私钥对所述第二加密验证信息和挑战码进行签名。

步骤608:终端系统将签名结果发送给客户端。

步骤609:客户端将签名结果发送给服务端。

步骤610:服务端采用已存储的公钥对签名结果进行解密,得到第二加密验证信息和挑战码。

步骤611:服务端在第二加密验证信息和已存储的第一加密验证信息一致、且解密得到的挑战码与下发的挑战码一致,则向客户端发送签名结果通过的消息。

步骤612:客户端向终端系统发送签名结果通过的消息。

步骤613:终端系统在接收到该签名结果通过的消息后,从tee中获取银行卡信息。

步骤614:终端系统向客户端返回银行卡信息。

步骤615:客户端基于银行卡信息执行支付请求。

需要说明的是,本说明书不对上述步骤的时序进行限定,只要步骤之间符合逻辑关系即可。

由上述描述可知,通过将用户的银行卡信息储存在用户终端的tee中。在用户进行支付时,用户终端可调用tee中的银行卡信息完成支付。

一方面,在本说明书中,用户在采用motopay支付时,只需要输入身份信息,比如按指纹,就可以实现支付,从而实现了国内快捷支付的功能。

另一方面,在本说明书中,通过与服务端交互,实现当用户新增或者删除终端系统中已注册的身份信息时,用户都需要重新输入银行卡信息,从而保障了银行卡信息的安全性。比如,用户新增或者删除指纹时,都需要重新输入银行卡信息。

面,银行卡信息存储在用户终端的tee中,以及用户通过身份验证才能录入银行卡信息,以及调用银行卡信息,从而极大地保证了银行卡信息的安全性。

与前述实现motopay的方法的实施例相对应,本说明书还提供了实现motopay的装置的实施例。

本说明书实现motopay的装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本说明书实现motopay的装置所在电子设备的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。

参见图8,图8是本说明书一示例性实施例示出的一种用于实现motopay的装置的框图。该装置应用于终端上搭载的支持motopay支付的客户端,所述装置包括:

发送模块801,用于响应于用户触发的支付请求,向终端系统发送第一系统调用请求,以由所述终端系统响应于所述第一系统调用请求,对所述用户进行第一身份验证,并在用户通过第一身份验证后,从可信执行环境tee中获取存储的银行卡信息,并将所述银行卡信息返回给客户端;

执行模块802,用于基于返回的所述银行卡信息执行所述支付请求。

可选的,所述发送模块801,用于在获取到所述用户输入的用于motopay支付的银行卡信息后,向终端系统发送第二系统调用请求,以由所述终端系统响应于所述第二系统调用请求,对所述用户进行第二身份验证,并在用户通过第二身份验证后,将所述银行卡信息存储到tee中。

可选的,所述tee中还包括:用户终端系统在所述用户通过第二身份验证后生成的公钥和私钥;

所述装置还包括:

上传模块(图8中未示出),用于在接收到终端系统发送的第一加密验证信息和所述公钥时,将所述第一加密验证信息和所述公钥上传至服务端;所述第一加密验证信息是由对所述第二身份验证的验证信息加密处理得到;

接收模块(图8中未示出),用于接收服务端在用户触发所述支付请求后下发的挑战码,并将所述挑战码发送给终端系统,以由所述终端系统在所述用户通过第一身份验证后,获取用于第一身份验证的验证信息,并对所述验证信息进行加密处理,得到第二加密验证信息,并采用所述私钥对所述第二加密验证信息和所述挑战码进行签名;

所述上传模块,还用于接收终端系统发送的签名结果,并将签名结果发送给服务端,以由服务端对所述签名结果进行验证,以触发所述终端系统在所述签名结果通过验证时,从所述tee中获取存储的银行卡信息。

参见图9,图9是本说明书一示例性实施例示出的另一种实现motopay的装置的框图。

该装置应用于终端的终端系统,所述终端装载有支持motopay支付的客户端,所述装置包括:

验证模块901,用于响应于客户端发送的第一系统调用请求,对于所述用户进行第一身份验证;

获取模块902,用于在所述用户通过第一身份验证后,从tee中获取存储的银行卡信息;

返回模块903,用于将所述银行卡信息返回给客户端,以由所述客户端基于所述银行卡信息执行用户触发的支付请求。

可选的,所述验证模块,还用于响应于客户端发送的第二系统调用请求,对所述用户进行第二身份验证;所述第二系统调用请求是所述客户端在获取到用户输入的用于motopay支付的银行卡信息后发送的;

所述装置还包括:

存储模块(图9中未示出),用于在所述用户通过第二身份验证后,将所述银行卡信息存储到所述tee中。

可选的,存储模块,在将所述银行卡信息存储到所述tee中,用于在用户通过第二身份验证后,在tee中生成公钥和私钥;采用所述公钥对所述银行卡信息进行加密,并将加密后的银行卡信息存储到tee中;

所述获取模块902,在从所述tee中获取已存储的加密银行卡信息时,用于采用所述客户端对应的私钥对所述加密银行卡信息进行解密,得到所述银行卡信息。

可选的,所述装置还包括:

加密模块(图9中未示出),用于在生成所述公钥和私钥后,获取用于第二身份验证的验证信息,并对所述验证信息进行加密处理,得到第一加密验证信息;将所述第一加密验证信息和所述公钥通过所述客户端上传至服务端存储;

所述装置还包括:

签名模块(图9中未示出),用于在用户通过第一身份验证后,获取用于第一身份验证的验证信息,并对所述验证信息进行加密处理,得到第二加密验证信息;采用所述私钥对所述第二加密验证信息和所述挑战码进行签名,并通过客户端将签名结果发送给服务端,以由服务端对所述签名结果进行验证;所述挑战码由所述服务端在用户触发所述支付请求后下发;

所述获取模块902,在从tee中获取存储的银行卡信息时,用于在所述签名结果通过验证时,从所述tee中获取存储的银行卡信息。

可选的,所述存储模块,在将所述银行卡信息存储到所述tee中时,用于获取用于所述第二身份验证的身份信息的标识,得到第一标识;将所述银行卡信息和所述第一标识关联存储到tee中;

所述获取模块902,在从tee中获取存储的银行卡信息时,用于获取用于所述第一身份验证的身份信息的标识,得到第二标识;从tee中获取所述第二标识关联的银行卡信息。

可选的,所述装置还包括:

设置模块(图9中未示出),用于为存储在tee中的银行卡信息设置老化时长;

删除模块(图9中未示出),用于在检测到tee中存储的银行卡信息的老化时长达到时,删除所述银行卡信息;或者,在检测到所述银行卡信息的使用情况达到预设使用条件时,删除所述银行卡信息。

此外本说明书还提供一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器通过运行所述可执行指令以实现上述实现motopay的方法。

本说明书还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述实现motopay的方法。

此外,在实际应用中,当用户通过终端设备进行身份认证时,比如用户某一app时,需要输入用户的身份信息,该app的后台服务器对该用户的身份信息进行认证,才允许登录该app。然而,每次登录,用户均要输入用户认证信息,不仅降低了登录效率,还不便于用户登录。

有鉴于此,本说明书提供了一种身份认证的实现方法,用于使得用户在进行身份认证时,不需要输入用户认证信息,只需输入指纹等生物特征就可以实现身份认证。

下面从用户认证信息的存储过程、身份认证过程两方面,对本说明书提供的身份认证的实现方式进行详细地说明。

1、用户认证信息的存储过程

参见图10,图10是本说明书一示例性实施例示出的一种用户认证信息储存方法的流程图,该方法可应用在该方法可应用在终端上。该终端可包括客户端、以及终端系统。其中,该终端可包括:pc机、可移动终端等。比如可移动终端可包括:用户的手机、ipad、笔记本电脑、掌上电脑等等。这里不对终端、以及可移动终端进行具体地限定。

该方法可包括如下所示步骤。

步骤1002:客户端在获取到所述用户输入的用于身份认证的用户认证信息后,调用终端系统对所述用户进行第二本地身份验证。

其中,用户认证信息包括:用户的证件号码、用户的身份隐私信息,比如用户名、密码等等。这里只是对用户认证信息进行示例性地说明,不对其进行具体地限定。

用户在首次登录应用时,可在终端的客户端上输入用户认证信息。客户端在获取到用户认证信息后,可向终端系统发送第二系统调用请求。终端系统可响应于该第二系统调用请求,获取所述用户的用户信息,并依据该用户信息、以及本地存储的验证信息对所述用户进行第二本地身份验证。

其中,用户信息可包括:用户的生物特征等信息。比如用户的指纹、用户的人脸特征、用户的虹膜特征等。这里只是对用户信息进行示例性地说明,不对其进行具体地限定。

终端系统本地存储有用户已注册的验证信息,比如用户已注册用户的生物特征信息,比如已注册的用户指纹、人脸特征,虹膜特征等。这里只是对终端系统本地存储的验证信息进行示例性地说明,不对其进行具体地限定。

在依据该身份信息、以及本地存储的验证信息对该用户进行第二本地身份验证时,终端系统可检测用户的身份信息与终端系统存储的验证信息是否匹配。若身份信息与验证信息匹配,则确定用户第二本地身份验证通过,若身份信息与验证信息不匹配,则确定用户第二本地身份验证不通过。

步骤1004:终端系统在所述用户通过第二本地身份验证后,将所述用户认证信息存储到所述tee中。

下面介绍几种将用户认证信息存储到tee的方式。

方式一:在将用户认证信息储存在tee中时,终端系统可以只将用户认证信息储存至tee中,用户的任何生物特征都可以调用该tee中的用户认证信息。

以指纹为例,假设终端系统中包括用户的拇指指纹、食指指纹。假设用户输入的用户认证信息为身份证号,终端系统可以只将用户认证信息存储在tee中。在后续用户进行身份认证时,无论用户输入拇指指纹、或者食指指纹进行第一本地身份验证,调用均是tee中存储的身份证号。

方式二:终端系统可获取用于所述第二本地身份验证的生物特征的标识,得到第一标识。然后,终端系统可将加密后的用户认证信息和所述第一标识关联储存在tee中。

这样的关联存储可以使得用户的生物特征标识和不同的用户认证信息一一绑定。在后续用户进行身份认证时,可以基于该用户的不同生物特征调用不同的用户认证信息。

比如,用户生物特征包括拇指指纹、食指指纹,用户认证信息包括:用户的身份号号码、用户的社保卡号码。

在本例中,将拇指指纹与用户的身份证号码关联储存在tee中,将食指指纹和用户的社保卡号码关联储存在tee中。当在用户进行身份认证时,用户输入拇指指纹,可获取到用户的身份证号码进行身份认证,用户输入食指指纹,可获取到用户的社保卡号码进行身份认证。

此外,为了保证用户认证信息的安全性,无论是直接将用户认证信息存储在tee中,还是将用户认证信息与第二本地身份验证的生物特征标识关联存储至tee中,终端系统可采用生成的公钥对该用户认证信息进行加密,并将加密用户认证信息通过上述两种方式存储在tee中。

具体地,为了保障用户认证信息的安全性,终端系统可生成公钥、私钥的密钥对。该生成的密钥对可以与客户端对应,也可以与用户对应,这里不对该密钥对的对应关系进行具体地限定。

当密钥与客户端绑定时,其他客户端不能访问该密钥对。当该密钥与用户绑定时,该客户端的其他用户或者其他客户端无法访问该密钥对,从而可以保证用户认证信息的安全性。

终端系统可采用公钥对用户认证信息进行加密,并将加密后的用户认证信息存储到tee中。

2、身份认证

参见图11,图11是本说明书一示例性实施例示出的一种认证实现方法的流程图。该方法可应用在终端上。该终端可包括客户端、以及终端系统。

该方法可包括如下所示步骤:

步骤1102:客户端响应于用户触发的身份认证请求,调用终端系统对所述用户进行本地第一本地身份验证。

在实现时,当客户端检测到用户触发的身份认证请求后,可响应于该身份认证请求,向终端系统发送第二系统调用消息。

终端系统可响应于该第二系统调用消息,通过tui获取用户输入的生物特征,并依据该生物特征、以及本地存储的验证信息对该用户的进行第一本地身份验证。

在依据该生物特征对该用户进行第一本地身份验证时,终端系统可检测用户的生物特征与终端系统存储的验证信息是否匹配。若生物特征与验证信息匹配,则确定本地第一本地身份验证通过,若生物特征与验证信息不匹配,则确定本地第一本地身份验证不通过。

步骤1104:终端系统在所述用户通过第一本地身份验证后,从可信执行环境tee中获取存储的用户认证信息,并将所述用户认证信息返回给客户端。

与上述步骤1004对应,步骤1104可通过多种实现方式实现。

方式一:当终端系统在确定用户通过第二本地身份验证后,只将用户输入的用户认证信息储存在tee中时,该步骤1104实现方式为:终端系统在确定用户通过第一本地身份验证后,可直接从tee中获取用户认证信息,并将用户认证信息返回给客户端。

以指纹为例,假设终端系统中包括用户的拇指指纹、食指指纹。用户通过拇指指纹进行第二本地身份验证,终端系统在确定用户通过身份验证后,可以只将用户输入的身份证号码存储在tee中。

在后续用户支付时,无论用户输入拇指指纹、或者食指指纹进行第一本地身份验证,在第一本地身份验证通过后,终端系统从tee中获取到的均是用户的身份证号码。

方式二:当终端系统在确定用户通过第二本地身份验证后,将该用于所述第二本地身份验证的生物特征的标识与该用户认证信息关联存储到tee中时,该步骤1104的实现方式为:终端系统获取用于所述第一本地身份验证的生物特征的标识,得到第二标识;从tee中获取所述第二标识关联的用户认证信息。

比如,用户生物特征包括拇指指纹、食指指纹,用户认证信息包括:用户的身份号号码、用户的社保卡号码。

在本例中,将拇指指纹与用户的身份证号码关联储存在tee中,将食指指纹和用户的社保卡号码关联储存在tee中。当在用户进行身份认证时,用户输入拇指指纹,可获取到用户的身份证号码进行身份认证,用户输入食指指纹,可获取到用户的社保卡号码进行身份认证。

此外,为了保证用户认证信息的安全性,无论是直接将用户认证信息存储在tee中,还是将用户认证信息与第二本地身份验证的生物特征标识关联存储至tee中,终端系统可采用生成的公钥对该用户认证信息进行加密,并将加密用户认证信息通过上述两种方式存储在tee中。

同理,无论是直接从tee中获取用户认证信息,或者从tee中获取与该第一身份认证的生物特征标识对应的用户认证信息,若终端系统从tee中获取到的是加密用户认证信息,则可采用私钥对该用户认证信息进行解密,并将解密后的用户认证信息返回给客户端。

步骤1106:客户端基于返回的所述用户认证信息执行所述身份认证请求。

在执行支付请求身份认证请求时,客户端可以基于该银行卡信息用户认证信息生成支付消息身份认证消息,然后将支付消息身份认证消息发送给服务器,以由服务器进行身份认证。

此外,在本说明书实施例中,为了保证用户认证信息的安全,当用户新增或者删除生物特征(比如指纹)时,用户都要重新输入用户认证信息。为了实现该“用户新增或者删除生物特征时,用户都要重新输入用户认证信息”的功能,可采用如下方式实现。

在实现时,终端系统在生成公钥和私钥后,可获取用于第二本地身份验证的验证信息。换句话来说,终端系统可获取本地当前所存储的已注册的用户生物特征。

然后,终端系统可将该第二本地身份验证的验证信息进行加密处理,得到第一加密验证信息。比如,终端系统可计算该第二本地身份验证的验证信息的哈希值,然后将该哈希值作为第一加密验证信息。当然,终端系统还可以采用其他加密处理方法,这里不进行具体地限定。

终端系统可将第一加密验证信息和所述公钥发送给客户端,客户端可将第一加密验证信息和公钥发送给服务端进行存储。

在用户触发身份认证请求后,客户端可接收服务端下发的挑战码。其中,该挑战码可以是客户端在检测到用户的身份认证请求后,向服务端发送挑战码获取请求,以使得服务端响应于该挑战码获取请求,向客户端下发挑战码。当然,也该挑战码也可以是服务端在用户触发身份认证请求后的其他时机下下发的,这里不进行具体地限定。

此外,在用户触发身份认证请求后,客户端可向终端系统发送第一系统调用请求,终端系统可对用户进行第一本地身份验证。终端系统在用户通过第一本地身份验证后,可获取第一本地身份验证的验证信息。换句话来说,终端系统可获取当前本地存储的已注册用户生物特征。

然后,终端系统可将该第一本地身份验证的验证信息进行加密处理,得到第二加密验证信息。比如,终端系统可计算该第一本地身份验证的验证信息的哈希值,然后将该哈希值作为第二加密验证信息。当然,终端系统还可以采用其他加密处理方法,这里不进行具体地限定。

终端系统采用所述私钥对第二加密验证信息和所述挑战码进行签名,并将签名结果发送给客户端。客户端将该签名结果发送给服务端,以由服务端对所述签名结果进行验证。

在验证签名结果时,服务端可采用之前存储的公钥对该签名进行解密,得到第二加密验证信息和挑战码。

服务端可检测第二加密验证信息和之前存储的第一加密验证信息是否一致,以及解密得到的挑战码与下发的挑战码是否一致。

若第二加密验证信息和之前存储的第一加密验证信息一致,以及解密得到的挑战码与下发的挑战码一致,则向客户端返回签名结果通过的消息。客户端可将该签名结果通过的消息发送给终端系统,终端系统在接收到该签名结果通过的消息可确定签名结果通过,并执行上述从tee中获取存储的用户认证信息的步骤。

若第二加密验证信息和之前存储的第一加密验证信息不一致,和/或解密得到的挑战码与下发的挑战码不一致,则向客户端返回签名结果不通过的消息。客户端可将该签名结果不通过的消息发送给终端系统,终端系统在接收到该签名结果不通过的消息时,可确定签名结果不通过,终端系统不执行上述从tee中获取存储的用户认证信息的步骤。可选的,终端系统在接收到签名结果不通过的消息时,还可从tee中删除已存储的用户认证信息。

由上述描述可知,一方面,在本说明书中,用户在进行身份认证时,只需要用户按指纹等,就可以实现身份认证。

另一方面,通过用户信息(比如用户的指纹等)授权获取终端存取的用户认证信息,保障用户认证信息的安全性。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

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