金融电子设备主密钥在线分发方法及系统与流程

文档序号:17245976发布日期:2019-03-30 08:49阅读:377来源:国知局
金融电子设备主密钥在线分发方法及系统与流程

本发明涉及金融密钥分发技术领域,特别涉及一种金融电子设备主密钥在线分发方法及系统。



背景技术:

非对称加密算法是一种密钥加密算法,常见的非对称加密算法主要是国际算法rsa和国密算法sm2。非对称加密算法需要两个密钥:公开密钥(简称:公钥)与私有密钥(简称:私钥)。公开密钥与私有密钥是一对。如果用公开密钥进行加密,只有用对应的私有密钥才能解密;如果用私有密钥加密,只有对应的公钥才能解密。

传统的金融电子设备主密钥的分发方案都是通过离线方式进行的。主要流程通常是:由硬件加密模块(hsm)生成一把设备主密钥(tmk),并离散成两个分量,然后通过打印机打印成密码信封;交由两个工作人员各持一个分量,一个监管人员监督,防止持有密钥的两个工作人员互通。持有密钥分量的工作人员分别在金融电子设备上输入相应的分量,由电子设备自己合成后存储。在监管人员的监督下,持有密钥的工作人员及时将密钥分量销毁。这种主密钥的传输方式安全性不足、效率低下。



技术实现要素:

本发明实施例提供了一种金融电子设备主密钥在线分发方法及系统,解决了金融电子设备和金融机构之间主密钥传输的安全性不足、效率低下的技术问题。

本发明实施例提供了一种金融电子设备主密钥在线分发方法,该方法包括:

金融机构密管系统生成并存储第一公私钥对:第一公钥和第一私钥,将所述第一公钥发送至金融电子设备厂商系统;

金融电子设备厂商系统生成并存储第二公私钥对:第二公钥和第二私钥,利用所述第二私钥对所述第一公钥进行签名,获得第一签名信息,将所述第二公钥和所述第一签名信息发送至金融机构密管系统;

金融电子设备生成并存储第三公私钥对:第三公钥和第三私钥,将所述第三公钥发送至金融电子设备厂商系统;

金融电子设备厂商系统利用所述第二私钥对所述第三公钥进行签名,获得第二签名信息,将所述第二公钥和所述第二签名信息发送至金融电子设备;

金融电子设备将所述第三公钥和所述第二签名信息发送至金融机构密管系统;

金融机构密管系统利用所述第二公钥对所述第二签名信息进行验签,验签通过后生成主密钥,利用所述第三公钥对所述主密钥加密得到主密钥密文,利用所述第一私钥对所述主密钥密文进行签名,获得第三签名信息,将所述第三签名信息、所述主密钥密文、所述第一公钥、所述第一签名信息、第一主密钥校验值发送至金融电子设备;

金融电子设备利用所述第二公钥对所述第一签名信息进行验签,验签通过后,利用所述第一公钥对所述第三签名信息进行验签,验签成功后,利用所述第三私钥解密所述主密钥密文得到所述主密钥,根据所述主密钥计算得到第二主密钥校验值,将所述第二主密钥校验值与所述第一主密钥校验值进行比对,如果一致,则将所述主密钥存储。

本发明实施例还提供了一种金融电子设备主密钥在线分发系统,该系统包括:

金融机构密管系统、金融电子设备厂商系统和金融电子设备;

金融机构密管系统用于:生成并存储第一公私钥对:第一公钥和第一私钥,将所述第一公钥发送至金融电子设备厂商系统;

金融电子设备厂商系统用于:生成并存储第二公私钥对:第二公钥和第二私钥,利用所述第二私钥对所述第一公钥进行签名,获得第一签名信息,将所述第二公钥和所述第一签名信息发送至金融机构密管系统;

金融电子设备用于:生成并存储第三公私钥对:第三公钥和第三私钥,将所述第三公钥发送至金融电子设备厂商系统;

金融电子设备厂商系统用于:利用所述第二私钥对所述第三公钥进行签名,获得第二签名信息,将所述第二公钥和所述第二签名信息发送至金融电子设备;

金融电子设备用于:将所述第三公钥和所述第二签名信息发送至金融机构密管系统;

金融机构密管系统用于:所述第二公钥对所述第二签名信息进行验签,验签通过后生成主密钥,利用所述第三公钥对所述主密钥加密得到主密钥密文,利用所述第一私钥对所述主密钥密文进行签名,获得第三签名信息,将所述第三签名信息、所述主密钥密文、所述第一公钥、所述第一签名信息、第一主密钥校验值发送至金融电子设备;

金融电子设备用于:利用所述第二公钥对所述第一签名信息进行验签,验签通过后,利用所述第一公钥对所述第三签名信息进行验签,验签成功后,利用所述第三私钥解密所述主密钥密文得到所述主密钥,根据所述主密钥计算得到第二主密钥校验值,将所述第二主密钥校验值与所述第一主密钥校验值进行比对,如果一致,则将所述主密钥存储。

本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述金融电子设备主密钥在线分发方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述所述金融电子设备主密钥在线分发方法的计算机程序。

本发明实施例还提供了一种金融电子设备主密钥在线分发方法,该方法包括:

金融机构密管系统生成对称密钥,将所述对称密钥发送至金融电子设备厂商系统;

金融电子设备厂商系统将所述对称密钥发送至金融电子设备;

金融电子设备生成离散因子,将所述离散因子发送至金融机构密管系统;

金融机构密管系统根据所述对称密钥、所述离散因子和预设的离散密钥算法获得保护密钥,利用所述保护密钥对主密钥进行加密,获得加密后的主密钥,将所述加密后的主密钥发送至金融电子设备;

金融电子设备根据所述对称密钥、所述离散因子和预设的离散密钥算法获得保护密钥,使用所述保护密钥对所述加密后的主密钥进行离散解密,获得主密钥明文。

本发明实施例还提供了一种金融电子设备主密钥在线分发系统,该系统包括:

金融机构密管系统、金融电子设备厂商系统和金融电子设备;

金融机构密管系统用于:生成对称密钥,将所述对称密钥发送至金融电子设备厂商系统;

金融电子设备厂商系统用于:将所述对称密钥发送至金融电子设备;

金融电子设备用于:生成离散因子,将所述离散因子发送至金融机构密管系统;

金融机构密管系统用于:根据所述对称密钥、所述离散因子和预设的离散密钥算法获得保护密钥,利用所述保护密钥对主密钥进行加密,获得加密后的主密钥,将所述加密后的主密钥发送至金融电子设备;

金融电子设备用于:根据所述对称密钥、所述离散因子和预设的离散密钥算法获得保护密钥,使用所述保护密钥对所述加密后的主密钥进行离散解密,获得主密钥明文。

本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述金融电子设备主密钥在线分发方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述所述金融电子设备主密钥在线分发方法的计算机程序。

在本发明实施例中,引入电子设备本身的公钥身份、电子设备制造商的公钥身份以及金融机构公钥身份,提出了金融机构密管系统、金融电子设备厂商系统和金融电子设备三者的交互流程,通过在线的双向认证方式,解决金融电子设备和金融机构之间主密钥传输的风险和性能难题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种金融电子设备主密钥在线分发系统结构及信息交互框图(一);

图2是本发明实施例提供的一种金融电子设备主密钥在线分发方法流程图;

图3是本发明实施例提供的一种金融电子设备主密钥在线分发系统结构及信息交互框图(二)。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明对于非对称加密算法的使用包括两种方式:

①公钥加密,私钥解密。本发明要求使用硬件加密模块(hsm),私钥都不允许输出对应的加密模块。公钥加密之后,只有对应的硬件加密模块才能进行解密,不会被其他模块解密。实现了信息的加密传输。

②私钥加签,公钥验签。用私钥进行签名,获得对应公钥的相关方都可以进行验签,以确认信息的来源。

基于此,在本发明实施例中,提供了一种金融电子设备主密钥在线分发系统,如图1所示,该系统包括:金融机构密管系统、金融电子设备厂商系统(主要说的是签名系统)和金融电子设备,这三者之间的信息传递是双向交互的。具体的,三者的信息交互图如图1所示,其中交互的信息包括:

pk_vnd:厂商公钥,厂商签名系统产生的一把公钥;

sk_vnd:厂商私钥,厂商签名系统产生的一把私钥,与pk_vnd构成一对公私钥对;

pk_bank:金融机构公钥。金融机构密管系统产生的一把公钥;

sk_bank:金融机构私钥。金融机构密管系统产生的一把私钥,与pk_bank构成一对公私钥对;

pk_epp:金融电子设备自身产生的一把公钥;

sk_epp:金融电子设备产生的一把私钥,与pk_epp构成一对公私钥对;

sig(sk_vnd)[pk_bank]:厂商私钥对金融机构公钥的签名值;

sig(sk_vnd)[pk_epp]:厂商私钥对设备公钥的签名值;

crypt(pk_epp)[tmk]:金融电子设备公钥对金融电子设备主密钥加密的值;

sig(sk_bank)[crypt(pk_epp)[tmk]]:金融机构私钥对crypt(pk_epp)[mk]的签名值。

具体的,该金融电子设备主密钥在线分发系统进行主密钥在线分发的具体方法流程如图2所示,该方法包括:

(1)金融电子设备厂商与金融机构交换信息:

步骤201:金融机构密管系统生成并存储第一公私钥对:第一公钥pk_bank和第一私钥sk_bank,并保证确保私钥不能输出硬件加密模块,然后将所述第一公钥pk_bank发送至金融电子设备厂商系统;

步骤202:金融电子设备厂商系统通过硬件加密模块随机生成并存储第二公私钥对:第二公钥pk_vnd和第二私钥sk_vnd,利用所述第二私钥sk_vnd对所述第一公钥pk_bank进行签名,获得第一签名信息sig(sk_vnd)[pk_bank],将所述第二公钥pk_vnd和所述第一签名信息sig(sk_vnd)[pk_bank]发送至金融机构密管系统进行存储;

(2)金融电子设备与金融电子设备厂商交换信息:

步骤203:金融电子设备利用设备内的安全芯片随机生成并存储第三公私钥对:第三公钥pk_epp和第三私钥sk_epp,私钥保证不能输出电子设备的安全芯片,将所述第三公钥pk_epp发送至金融电子设备厂商系统;

步骤204:金融电子设备厂商系统利用所述第二私钥sk_vnd对所述第三公钥pk_epp进行签名,获得第二签名信息sig(sk_vnd)[pk_epp],将所述第二公钥pk_vnd和所述第二签名信息sig(sk_vnd)[pk_epp]发送至金融电子设备进行存储;

(3)金融电子设备主密钥下发:

步骤205:金融电子设备接入金融机构的网络后,将所述第三公钥pk_epp和所述第二签名信息sig(sk_vnd)[pk_epp]发送至金融机构密管系统;

步骤206:金融机构密管系统在数据中找到并利用所述第二公钥pk_vnd对所述第二签名信息sig(sk_vnd)[pk_epp]验签,验签通过后随机生成主密钥tmk,同时生成第一主密钥校验值checkvalue,利用所述第三公钥pk_epp对所述主密钥tmk加密得到主密钥密文crypt(pk_epp)[tmk],利用所述第一私钥sk_bank对所述主密钥密文crypt(pk_epp)[tmk]进行签名,获得第三签名信息sig(sk_bank)[crypt(pk_epp)[mk]],将所述第三签名信息sig(sk_bank)[crypt(pk_epp)[mk]]、所述主密钥密文crypt(pk_epp)[tmk]、所述第一公钥pk_bank、所述第一签名信息sig(sk_vnd)[pk_bank]、第一主密钥校验值checkvalue发送至金融电子设备;

步骤207:金融电子设备利用所述第二公钥pk_vnd对所述第一签名信息sig(sk_vnd)[pk_bank]进行验签,验签通过后,利用所述第一公钥pk_bank对所述第三签名信息sig(sk_bank)[crypt(pk_epp)[mk]]进行验签,验签成功后,利用所述第三私钥sk_epp解密所述主密钥密文crypt(pk_epp)[tmk]得到所述主密钥tmk,根据所述主密钥计算得到第二主密钥校验值,将所述第二主密钥校验值与所述第一主密钥校验值checkvalue进行比对,如果一致,则将所述主密钥tmk存储。

举例说明,当金融电子设备包括多个时,该方法按照如下方式实现:

某银行从金融电子设备制造商采购一批智能pos机,在合同签署之后,银行通过自己的密钥管理系统的硬件加密模块生成一对公私钥,将公钥明文导出交由业务人员。业务人员取得银行公钥后,通过邮件的方式将公钥及pos机厂商的编号提供给智能pos机制造商。智能pos机厂商使用自家的密管系统中硬件加密模块也生成一对公私钥,调用加密机指令,使用私钥对银行邮件中的公钥进行签名,并将签名值与自家密管系统生成的公钥写到邮件中回复给银行。银行收到邮件后,将自家公钥签名值与pos机厂商公钥以及厂商编号写入自家密管系统数据库中。pos机厂商每生产一台pos机后,就调用pos机内的安全芯片生成一把公私钥,并调用安全芯片指令将内部的公钥导出。pos机厂商同样用自己的私钥对pos机公钥加签,并将签名值、厂商公钥以及厂商编号写回到pos机。待pos机交货到银行,并连入银行网络后,自动将内置的pos机公钥、pos机厂商编号、pos机厂商私钥对pos机公钥的签名值上送银行密管系统。银行密管系统通过厂商编号检索出厂商公钥,对pos机公钥的签名值进行验签,验签通过即完成银行对pos机的单向认证。然后银行密管系统使用信任的pos机公钥对随机生成的pos机主秘钥加密,然后加签,并将加密后的主密钥、加密值的签名、银行自己的公钥、以及pos机厂商对银行公钥的签名一起返回给pos机。pos机使用安全芯片和内置的pos机厂商公钥对银行公钥进行验签,验签通过即达成pos机对银行密管系统的单向认证。在相信银行的公钥身份后,使用银行公钥验证pos机公钥加密的主密钥,验签通过后进行私钥解密,最终取到设备的主密钥明文。

本发明还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述金融电子设备主密钥在线分发方法。

基于上述这种方法,本发明还提出了一种计算机可读存储介质,所述计算机可读存储介质存储有执行所述金融电子设备主密钥在线分发方法的计算机程序。

本发明提出的上述系统和方法是通过在pos机和金融机构的密管系统内置第三方签名和公钥的方法达到了在线交互主密钥的方法。在安全性要求较低或者金融设备使用场景可控的情况下,金融电子设备主密钥在线分发系统还可以按照如下方式实现交互。

如图3所示,该系统还是包括金融机构密管系统、金融电子设备厂商系统(主要说的是签名系统)和金融电子设备,此时,这三者之间的信息传递就不都是双向交互的,其中,金融机构密管系统和金融电子设备之间是双向交互的,而金融机构密管系统和金融电子设备厂商系统、金融电子设备厂商系统和金融电子设备之间是单向交互的。

具体的,三者的交互信息包括:

basekey:对称密钥,由金融机构随机初始化;

securitycode:离散因子,由金融电子设备随机生成;

离散密钥算法:由金融机构和金融电子厂商约定的一种结合basekey和离散因子(securitycode)的离散密钥算法,金融电子设备(即pos机)都内置此种离散算法。

具体的,该金融电子设备主密钥在线分发系统进行主密钥在线分发的具体方法流程如下:

金融机构随机初始化一把对称密钥(basekey),并将basekey交给金融电子设备厂商写入金融电子设备内。并且金融机构和金融电子厂商约定一种结合basekey和离散因子(securitycode)的离散密钥算法,从该金融电子设备厂商订购的pos机都内置此种离散算法。

当pos机接入金融机构的密管网络后,随机生成一份securitycode,并将securitycode发往金融机构密管系统,金融机构使用basekey、securitycode和与厂商约定的离散密钥算法生成主密钥,并用主密钥加密随机产生的工作密钥下发至金融电子设备。

金融电子设备拿到加密后的工作密钥后,同样使用basekey、securitycode和约定离散密钥算法恢复主密钥(使用同样的方法生成相同的主密钥),然后解密出工作密钥,并保存在设备内部。

由于此种方案缺乏金融电子设备与金融机构密管系统之间的双向认证过程,存在伪造双方中的一方达到控制和破坏另一方的风险。因此只适合用于相对可控的场景。

本发明还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述金融电子设备主密钥在线分发方法。

基于上述这种方法,本发明还提出了一种计算机可读存储介质,所述计算机可读存储介质存储有执行所述金融电子设备主密钥在线分发方法的计算机程序。

综上所述,采用本发明提出的第一种金融电子设备主密钥在线分发方法及系统进行电子密钥的在线分发,可以得到以下有益效果:

设计了金融电子设备、金融电子设备厂商和金融机构的交互过程,利用金融电子设备厂商作为中介,达成金融电子设备和金融机构之间的双向认证。通过在金融电子设备出厂之前内置相关公私钥信息和签名,大大降低了金融机构在设备使用当中的维护资源,节省了大量人力。并且主密钥的传输过程中不存在明文,大大降低了主密钥泄露的风险。而且在线的主密钥分发对金融电子设备的使用者(例如使用pos机的商户)是无感的,给客户带来了更好的使用体验。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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