本说明书一个或多个实施例涉及联合数据处理,尤其涉及一种多方协同生成密钥证书以及进行支付认证的方法及装置。
背景技术:
1、支付场景对于数据安全具有极高的要求。为了避免盗用、数据篡改、数据劫持等不安全事件的发生,常常会在支付客户端安装数字证书。对于支付交易,特别是支付金额超过一定限额需要确认的交易,需要利用数字证书对交易进行签名,以备后续对数据真实性和完整性进行验证。然而,数字证书本身的存储仍存在一定的安全隐患,有待进一步加强。
2、因此,希望能有改进的方案,进一步增强支付场景中密钥证书的安全性以及支付认证的有效性。
技术实现思路
1、本说明书一个或多个实施例描述了一种多方协同生成密钥证书以及协同进行支付认证的方法,可以增加支付场景中密钥证书的安全性以及支付认证的有效性。
2、根据第一方面,提供一种密钥证书生成方法,包括:
3、第一支付平台的第一服务端根据预设密钥生成算法,生成针对目标用户的第一密钥对,其中包括第一私钥部分和第一公钥部分;
4、所述第一服务端向所述目标用户对应的第二支付客户端发送第一请求,其中,所述第二支付客户端是第二支付平台的客户端,其中嵌入有所述第一支付平台对应的第一支付客户端的插件;所述第一请求中包括所述第一公钥部分;
5、第二支付客户端调用所述插件,所述插件生成第二私钥部分,并根据所述第一公钥部分和所述第二私钥部分,生成协同公钥;
6、所述插件经由所述第二支付客户端,向所述第一服务端发送第一响应,其中包括所述协同公钥;
7、所述第一服务端向所述第二支付客户端发送密钥证书,所述密钥证书基于所述协同公钥生成;
8、所述第二支付客户端调用所述插件安装所述密钥证书。
9、在一个实施例中,第二支付客户端为所在终端设备的厂商提供的客户端,所述第一支付平台为第三方支付平台。
10、根据一个实施例,在第一服务端生成针对目标用户的第一密钥对之前,上述方法还包括:第一服务端接收第二支付客户端的开通请求,所述开通请求用于指示所述目标用户请求开通在所述第二支付客户端中利用第一支付客户端的支付服务的功能。其中,该支付服务可以是,展示付款码或收款码。
11、根据一种实施方式,预设密钥生成算法为基于椭圆曲线的密钥生成算法;在这样的情况下,可以如下生成第一密钥对:先生成第一私钥部分,基于所述第一私钥部分对椭圆曲线的基点进行倍乘操作,得到所述第一公钥部分。生成协同公钥的过程可以包括:基于第二私钥部分对第一公钥部分进行倍乘操作,基于倍乘操作结果确定所述协同公钥。
12、根据第二方面,提供了一种密钥证书生成方法,通过第一支付平台的第一服务端执行,包括:
13、根据预设密钥算法,生成针对目标用户的第一密钥对,其中包括第一私钥部分和第一公钥部分;
14、向所述目标用户对应的第二支付客户端发送第一请求,其中,所述第二支付客户端是第二支付平台的客户端,其中嵌入有所述第一支付平台对应的第一支付客户端的插件;所述第一请求中包括所述第一公钥部分;
15、接收所述插件经由所述第二支付客户端发送的第一响应,其中包括协同公钥,所述协同公钥由所述插件根据所述第一公钥部分,和其自身生成的第二私钥部分生成;
16、向所述第二支付客户端发送密钥证书,使得所述第二支付客户端调用所述插件安装所述密钥证书,所述密钥证书基于所述协同公钥生成。
17、根据第三方面,提供了一种用于生成密钥证书的方法,通过目标用户的第二支付客户端执行,所述第二支付客户端是第二支付平台提供的客户端,其中嵌入有第一支付平台对应的第一支付客户端的插件;所述方法包括:
18、从所述第一支付平台对应的第一服务端接收第一请求,其中包括第一公钥部分;所述第一公钥部分是所述第一服务端根据预设密钥算法针对目标用户生成的第一密钥对中的公钥,所述第一密钥对还包括第一私钥部分;
19、根据所述第一请求调用所述插件,使其生成第二私钥部分,并根据所述第一公钥部分和所述第二私钥部分,生成协同公钥;
20、从所述插件获得所述协同公钥,并向所述第一服务端发送第一响应,其中包括所述协同公钥;
21、从所述第一服务端接收密钥证书,所述密钥证书基于所述协同公钥生成;
22、调用所述插件安装所述密钥证书。
23、根据第四方面,提供了一种用于生成密钥证书的方法,通过第一支付平台提供的第一支付客户端的插件执行,所述插件嵌入在目标用户对应的第二支付客户端中,所述第二支付客户端是第二支付平台的客户端,所述方法包括:
24、接收所述第二支付客户端的第一调用请求,其中包括第二支付客户端从第一支付平台的第一服务端接收的第一公钥部分,所述第一公钥部分是所述第一服务端根据预设密钥算法针对目标用户生成的第一密钥对中的公钥,所述第一密钥对还包括第一私钥部分;
25、响应于所述第一调用请求,生成第二私钥部分,并根据所述第一公钥部分和所述第二私钥部分,生成协同公钥;
26、经由所述第二支付客户端,向所述第一服务端发送第一响应,其中包括所述协同公钥;
27、接收所述第二支付客户端的第二调用请求,其中包括第二支付客户端从所述第一服务端接收的密钥证书,所述密钥证书基于所述协同公钥生成;
28、响应于所述第二调用请求,安装所述密钥证书。
29、根据第五方面,提供了一种支付认证方法,包括:
30、第一支付平台的第一服务端向目标用户对应的第二支付客户端发送签名请求,其中,所述第二支付客户端是第二支付平台的客户端,其中嵌入有所述第一支付平台对应的第一支付客户端的插件;所述签名请求包括所述目标用户发起的目标交易;
31、第二支付客户端响应于所述签名请求调用所述插件,所述插件针对所述目标交易,利用第二私钥部分执行第二签名操作,得到第二签名部分;所述第二私钥部分是所述目标用户的密钥证书所对应的私钥的一部分;
32、所述插件经由所述第二支付客户端,向所述第一服务端发送签名响应,其中包括所述第二签名部分;
33、所述第一服务端根据所述目标交易和所述第二签名部分,利用第一私钥部分执行第一签名操作,得到协同签名;所述第一私钥部分是所述密钥证书所对应的私钥的另一部分;所述协同签名用于验证所述目标交易。
34、在一个实施例中,第一服务端响应于来自第二支付客户端的通知消息,发送所述签名请求,其中,该通知消息是所述第二支付客户端在检测到所述目标交易存在风险时发出的。
35、根据一种实施方式,第二签名操作具体包括:利用预设哈希函数计算所述目标交易的摘要信息;利用所述第二私钥部分和预设加密算法,加密所述摘要信息,得到第二签名部分。
36、在一个实施例中,该方法还包括:第一服务端将所述目标交易和所述协同签名发送至验证设备,使其基于所述密钥证书的协同公钥对所述目标交易和协同签名进行验证。
37、根据第六方面,提供了一种支付认证方法,通过第一支付平台的第一服务端执行,包括:
38、向目标用户对应的第二支付客户端发送签名请求,其中,所述第二支付客户端是第二支付平台的客户端,其中嵌入有所述第一支付平台对应的第一支付客户端的插件;所述签名请求包括所述目标用户发起的目标交易;
39、接收所述插件经由所述第二支付客户端发送的签名响应,其中包括第二签名部分,所述第二签名部分是所述插件针对所述目标交易,利用第二私钥部分执行第二签名操作得到的;所述第二私钥部分是所述目标用户的密钥证书所对应的私钥的一部分;
40、根据所述目标交易和所述第二签名部分,利用第一私钥部分执行第一签名操作,得到协同签名;所述第一私钥部分是所述密钥证书所对应的私钥的另一部分;所述协同签名用于验证所述目标交易。
41、根据第七方面,提供了一种支付认证方法,通过目标用户的第二支付客户端执行,所述第二支付客户端是第二支付平台提供的客户端,其中嵌入有第一支付平台对应的第一支付客户端的插件;所述方法包括:
42、从第一支付平台的第一服务端接收签名请求,所述签名请求包括所述目标用户发起的目标交易;
43、响应于所述签名请求调用所述插件,使得所述插件针对所述目标交易,利用第二私钥部分执行第二签名操作,得到第二签名部分;所述第二私钥部分是所述目标用户的密钥证书所对应的私钥的一部分;
44、从所述插件获得签名响应,其中包括所述第二签名部分;
45、将所述签名响应转发给第一服务端,使得所述第一服务端根据所述目标交易和所述第二签名部分,利用第一私钥部分执行第一签名操作,得到协同签名;所述第一私钥部分是所述密钥证书所对应的私钥的另一部分;所述协同签名用于验证所述目标交易。
46、根据第八方面,提供了一种支付认证方法,通过第一支付平台提供的第一支付客户端的插件执行,所述插件嵌入在目标用户对应的第二支付客户端中,所述第二支付客户端是第二支付平台的客户端,所述方法包括:
47、接收所述第二支付客户端的第三调用请求,其中包括第二支付客户端从第一支付平台的第一服务端接收的签名请求,所述签名请求包括所述目标用户发起的目标交易;
48、响应于所述第三调用请求,针对所述目标交易,利用第二私钥部分执行第二签名操作,得到第二签名部分;所述第二私钥部分是所述目标用户的密钥证书所对应的私钥的一部分;
49、经由所述第二支付客户端,向所述第一服务端发送签名响应,其中包括所述第二签名部分;以使得所述第一服务端根据所述目标交易和所述第二签名部分,利用第一私钥部分执行第一签名操作,得到协同签名;所述第一私钥部分是所述密钥证书所对应的私钥的另一部分;所述协同签名用于验证所述目标交易。
50、根据第九方面,提供了一种支付认证方法,包括:
51、第一支付平台的第一服务端针对目标用户发起的目标交易,利用第一私钥部分执行第一签名操作,得到第一签名部分;所述第一私钥部分是所述目标用户的密钥证书所对应的私钥的一部分;
52、所述第一服务端向所述目标用户对应的第二支付客户端发送签名请求,其中,所述第二支付客户端是第二支付平台的客户端,其中嵌入有所述第一支付平台对应的第一支付客户端的插件;所述签名请求包括所述目标交易和所述第一签名部分;
53、第二支付客户端响应于所述签名请求调用所述插件,所述插件根据所述目标交易和所述第一签名部分,利用第二私钥部分执行第二签名操作,得到协同签名;所述第二私钥部分是所述目标用户的密钥证书所对应的私钥的另一部分;
54、所述插件经由所述第二支付客户端,向所述第一服务端发送签名响应,其中包括所述协同签名;所述协同签名用于验证所述目标交易。
55、根据第十方面,提供了一种用于生成密钥证书的装置,部署在第一支付平台的第一服务端中,包括:
56、密钥生成单元,配置为根据预设密钥算法,生成针对目标用户的第一密钥对,其中包括第一私钥部分和第一公钥部分;
57、第一发送单元,配置为向所述目标用户对应的第二支付客户端发送第一请求,其中,所述第二支付客户端是第二支付平台的客户端,其中嵌入有所述第一支付平台对应的第一支付客户端的插件;所述第一请求中包括所述第一公钥部分;
58、接收单元,配置为接收所述插件经由所述第二支付客户端发送的第一响应,其中包括协同公钥,所述协同公钥由所述插件根据所述第一公钥部分,和其自身生成的第二私钥部分生成;
59、第二发送单元,配置为向所述第二支付客户端发送密钥证书,使得所述第二支付客户端调用所述插件安装所述密钥证书,所述密钥证书基于所述协同公钥生成。
60、根据第十一方面,提供了一种用于生成密钥证书的装置,部署在目标用户的第二支付客户端中,所述第二支付客户端是第二支付平台提供的客户端,其中嵌入有第一支付平台对应的第一支付客户端的插件;所述装置包括:
61、第一接收单元,配置为从所述第一支付平台对应的第一服务端接收第一请求,其中包括第一公钥部分;所述第一公钥部分是所述第一服务端根据预设密钥算法针对目标用户生成的第一密钥对中的公钥,所述第一密钥对还包括第一私钥部分;
62、第一调用单元,配置为根据所述第一请求调用所述插件,使其生成第二私钥部分,并根据所述第一公钥部分和所述第二私钥部分,生成协同公钥;
63、转发单元,配置为从所述插件获得所述协同公钥,并向所述第一服务端发送第一响应,其中包括所述协同公钥;
64、第二接收单元,配置为从所述第一服务端接收密钥证书,所述密钥证书基于所述协同公钥生成;
65、第二调用单元,配置为调用所述插件安装所述密钥证书。
66、根据第十二方面,提供了一种用于生成密钥证书的装置,部署在第一支付平台提供的第一支付客户端的插件中,所述插件嵌入在目标用户对应的第二支付客户端中,所述第二支付客户端是第二支付平台的客户端,所述装置包括:
67、第一接收单元,配置为接收所述第二支付客户端的第一调用请求,其中包括第二支付客户端从第一支付平台的第一服务端接收的第一公钥部分,所述第一公钥部分是所述第一服务端根据预设密钥算法针对目标用户生成的第一密钥对中的公钥,所述第一密钥对还包括第一私钥部分;
68、密钥生成单元,配置为响应于所述第一调用请求,生成第二私钥部分,并根据所述第一公钥部分和所述第二私钥部分,生成协同公钥;
69、第一发送单元,配置为经由所述第二支付客户端,向所述第一服务端发送第一响应,其中包括所述协同公钥;
70、第二接收单元,配置为接收所述第二支付客户端的第二调用请求,其中包括第二支付客户端从所述第一服务端接收的密钥证书,所述密钥证书基于所述协同公钥生成;
71、安装单元,配置为响应于所述第二调用请求,安装所述密钥证书。
72、根据第十三方面,提供了一种支付认证装置,部署在第一支付平台的第一服务端,包括:
73、发送单元,配置为向目标用户对应的第二支付客户端发送签名请求,其中,所述第二支付客户端是第二支付平台的客户端,其中嵌入有所述第一支付平台对应的第一支付客户端的插件;所述签名请求包括所述目标用户发起的目标交易;
74、接收单元,配置为接收所述插件经由所述第二支付客户端发送的签名响应,其中包括第二签名部分,所述第二签名部分是所述插件针对所述目标交易,利用第二私钥部分执行第二签名操作得到的;所述第二私钥部分是所述目标用户的密钥证书所对应的私钥的一部分;
75、第一签名部分单元,配置为根据所述目标交易和所述第二签名部分,利用第一私钥部分执行第一签名操作,得到协同签名;所述第一私钥部分是所述密钥证书所对应的私钥的另一部分;所述协同签名用于验证所述目标交易。
76、根据第十四方面,提供了一种支付认证装置,部署在目标用户的第二支付客户端中,所述第二支付客户端是第二支付平台提供的客户端,其中嵌入有第一支付平台对应的第一支付客户端的插件;所述装置包括:
77、签名接收单元,配置为从第一支付平台的第一服务端接收签名请求,所述签名请求包括所述目标用户发起的目标交易;
78、调用单元,配置为响应于所述签名请求调用所述插件,使得所述插件针对所述目标交易,利用第二私钥部分执行第二签名操作,得到第二签名部分;所述第二私钥部分是所述目标用户的密钥证书所对应的私钥的一部分;
79、获取单元,配置为从所述插件获得签名响应,其中包括所述第二签名部分;
80、签名转发单元,配置为将所述签名响应转发给第一服务端,使得所述第一服务端根据所述目标交易和所述第二签名部分,利用第一私钥部分执行第一签名操作,得到协同签名;所述第一私钥部分是所述密钥证书所对应的私钥的另一部分;所述协同签名用于验证所述目标交易。
81、根据第十五方面,提供了一种支付认证装置,部署在第一支付平台提供的第一支付客户端的插件中,所述插件嵌入在目标用户对应的第二支付客户端中,所述第二支付客户端是第二支付平台的客户端,所述装置包括:
82、调用接收单元,配置为接收所述第二支付客户端的第一调用请求,其中包括第二支付客户端从第一支付平台的第一服务端接收的签名请求,所述签名请求包括所述目标用户发起的目标交易;
83、第二签名单元,配置为响应于所述第一调用请求,针对所述目标交易,利用第二私钥部分执行第二签名操作,得到第二签名部分;所述第二私钥部分是所述目标用户的密钥证书所对应的私钥的一部分;
84、发送单元,配置为经由所述第二支付客户端,向所述第一服务端发送签名响应,其中包括所述第二签名部分;以使得所述第一服务端根据所述目标交易和所述第二签名部分,利用第一私钥部分执行第一签名操作,得到协同签名;所述第一私钥部分是所述密钥证书所对应的私钥的另一部分;所述协同签名用于验证所述目标交易。
85、根据第十六方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面到第九方面中任一方面所述的方法。
86、在本说明书实施例提供的场景中,第一支付平台具有第一服务端并对应提供第一支付客户端的插件;第二支付平台对应提供有第二支付客户端,其中嵌入有第一支付客户端的插件。针对该场景,在密钥证书生成和分发过程中,第一支付平台的服务端和客户端插件,各自生成并持有密钥证书私钥的一部分,形成两段式、分布式密钥,并基于两部分私钥共同确定出协同公钥,作为密钥证书的公钥。在支付认证过程中,第一支付平台的服务端和客户端插件,各自利用其保有的一部分私钥进行签名,得到协同签名,用于目标交易的认证。仅持有一部分私钥并不能得到协同签名,也无法通过基于协同公钥的认证。因此,即使第一支付客户端的插件由于嵌入在其他支付客户端中而存在被调取私钥的风险,其他支付客户端也无法单独利用调取的私钥私自签名,由此保证了密钥证书的存储安全性和支付交易的认证安全性。