一种双系统间的公钥更新方法与流程

文档序号:20838846发布日期:2020-05-22 17:13阅读:215来源:国知局
一种双系统间的公钥更新方法与流程

本发明涉及计算机技术,特别涉及双系统间的公钥更新方法。



背景技术:

现有联机报文系统间需要基于公私钥对的非对称加密算法来实现敏感信息(例如账号、密码等)的加密以及保证报文信息不被篡改。当一方(记为a系统)将自己的公私钥对keypair_a1升级到keypair_a2时,也需通知对方(记为b系统)同步将存储的a系统公钥从publickey_a1升级到publickey_a2。

在现有的联机报文系统间公钥交换的方式一般主要采用以下的两种方式:

(1)人工更新

b系统已在系统中储存publickey_a1。a系统将keypair_a1升级到keypair_a2时,a系统通过非系统的方式线下告知b,如公示、邮件等。b系统需通过获取publickey_a2,并需加载到自己的系统中。当publickey_a2被激活后,可移除publickey_a1。

在该方式下,虽然是a系统更新自己公私钥对,但b系统也需配合进行人工变更操作(获取更新的公钥信息并进行安装)。如b系统未能按时进行更新操作而publickey_a1又被失效,那么a系统与b系统之间系统间的报文交互受到影响。当a系统通知更新公钥后,由于b系统需进行人工变更操作,操作繁琐。

(2)不存储公钥,直接使用交互报文中的公钥字段进行解密

b系统不存储a系统的公钥信息,a系统每次发送报文给b系统时都将公钥信息传递给b系统,b系统在进行报文处理时,永远使用收到报文中的公钥信息进行解密、验签等操作。当a系统更新公钥时,仅需在下一笔报文中传递新的公钥publickey_a2,b系统无需进行任何人工干预,b系统可直接使用新报文中的公钥信息即可。

这种方式下,由于a系统每次发送报文给b系统时,都需携带公钥信息,使得报文长度大大增加,影响交互效率。同时,此传递方式仅适合验证签名,不适用于信息解密。



技术实现要素:

鉴于此,本发明旨在提供一种不需要人工操作并且也无需每笔报文携带公钥的双系统间的公钥更新方法。

本发明一个方面的双系统间的公钥更新方法,其特征在于,包括下述步骤:

查询请求步骤,从第一系统向第二系统发起公钥查询请求;

查询应答步骤,所述第二系统基于所述公钥查询请求向所述第一系统返回公钥查询应答;

公钥更新请求步骤,所述第一系统基于所述公钥查询应答判断是否需要更新当前公钥并且在判断需要更新公钥的情况下向所述第二系统发起公钥更新请求,其中所述公钥更新请求中包含最新公钥;以及

公钥更新应答步骤,所述第二系统基于所述公钥更新请求更新当前公钥并且向所述第一系统返回公钥更新应答。

可选地,从所述第一系统按照规定查询周期向所述第二系统发出公钥查询请求。

可选地,所述规定查询周期设置在双系统间的应用链路探测的周期内。

可选地,在所述公钥更新请求步骤中,所述第一系统基于所述查询应答判断是否需要更新当前公钥或者所述第一系统希望需要更新所述当前公钥的情况下,向所述第二系统发起公钥更新请求。

可选地,所述公钥查询请求中包含所述第二系统的签名公私钥对id和加密公私钥对id,

所述公钥查询应答中包含所述第一系统的签名公私钥对id和加密公私钥对id,

所述公钥更新请求中包含所述最新公钥的签名公私钥对id和签名公钥值。

可选地,在所述公钥更新应答步骤之后进一步设置为:

在规定周期内设置所述第一系统和第二系统能够使用所述最新公钥或者所述当前公钥之一。

可选地,在所述公钥更新应答步骤之后进一步设置为:

在规定周期内设置所述第一系统和第二系统能够使用所述最新公钥或者所述当前公钥之一。

可选地,在所述公钥更新应答步骤之后进一步包括:

报警提示步骤,如果所述公钥更新应答表示更新不成功的情况下在预设的规定时间后发出报警提示。

本发明的一个方面的双系统间的公钥更新方法,其特征在于,包括下述步骤:

查询请求步骤,从第一系统向第二系统发起公钥查询请求;

查询更新步骤,第二系统基于公钥查询请求向第一系统返回公钥查询应答,并且同时,当第二系统基于所述公钥查询请求判断是否需要更新当前公钥并且在判断需要更新公钥的情况下将公钥更新请求返回给第一系统,其中,所述公钥更新请求中包含最新公钥;以及

更新结果通知步骤,第一系统基于公钥更新请求更新公钥后返回第二系统更新结果。

可选地,所述公钥查询请求中包含第二系统的签名公钥id和加密公钥id,

所述公钥查询应答中包含第一系统的签名公私钥对id和加密公私钥对id、最新的签名公私钥对id以及最新的签名公钥值。

本发明的一方面的双系统间的公钥更新方法,其特征在于,包括下述步骤:

报备请求步骤,从第一系统向第二系统发起公钥报备请求;

报备应答步骤,所述第二系统基于所述公钥报备请求判断是否需要更新公钥并且将判断结果作为报备应答返回到第一系统;

公钥更新请求步骤,所述第一系统在需要更新公钥的情况下或者所述报备应答中的判断结果为需要更新公钥的情况下,所述第一系统向所述第二系统发起公钥更新请求,其中所述公钥更新请求中包含最新公钥;以及

公钥更新应答步骤,所述第二系统基于所述公钥更新请求更新当前公钥并且向所述第一系统返回公钥更新应答。

本发明的一方面的计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述的双系统间的公钥更新方法。

本发明的一方面的计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述的双系统间的公钥更新方法。

如上所述,根据本发明的双系统间的公钥更新方法,通过使用系统间的报文交互及处理机制,实现公钥的更新,当第一系统(或者a系统)更新公钥时,第二系统(或者b系统)无需进行相应的人工操作和处理。而且,无需每笔报文携带公钥,可以缩短正常报文的长度,能够提高系统和网络的使用效率。再者,本发明还提出公钥查询及报备机制,能够实现链路应用探测功能,无需单独再开发相关报文。再者,本发明中用公钥查询及报备、及双公钥机制,能够实现较高的系统容错,当一方更新公私钥对,发起更新公钥后,若另一方系统应环境问题无应答,无需人工处理和干预,可自动在下个查询及报备周期实现更新。

通过纳入本文的附图以及随后与附图一起用于说明本发明的某些原理的具体实施方式,本发明的方法和装置所具有的其它特征和优点将更为具体地变得清楚或得以阐明。

附图说明

图1是表示本发明第一实施方式的双系统间的公钥更新方法的流程示意图。

图2是表示本发明第二实施方式的双系统间的公钥更新方法的流程示意图。

图3是表示本发明第三实施方式的双系统间的公钥更新方法的流程示意图。

具体实施方式

下面介绍的是本发明的多个实施例中的一些,旨在提供对本发明的基本了解。并不旨在确认本发明的关键或决定性的要素或限定所要保护的范围。

首先,对于本发明的双系统间的公钥更新方法的发明思想进行说明。在本说明中里提到的a系统和b系统(以及第一系统和第二系统)意味指两个不同的系统,两者之间也可以互换,对此不做任何限定。

在本发明中,双系统间的公钥更新方法可以是采用周期性报备,或者也可以是采用周期查询。具体地,在双方联机系统服务期间,a系统定时将自己存储的b统的keypairid_bx(其中,keypairid表示公私钥对id),通过联机报文发送给b系统。b系统判断keypairid_bx是否与自己系统中存储的最新的公私钥对id一致。如不一致,则向a系统发起publickey_b(其中,publickey表示公钥)的更新请求。b系统将存储的a系统的keypairid_ax,通过联机报文发送给a系统。a系统自动判断是否与系统中存储的最新公私钥对一致。如不一致,则向b系统发起publickey_a的更新请求。

在本发明中,在联机报文中更新公钥。假设a系统更新自己的keypair_a1到keypair_a2(其中,keypair表示公私钥对),在双方联机系统服务期间通过报文将更新的publickey_a2和更新的keypairid_a2发送给b系统,b系统收到后进行系统更新,并应答更新结果。

在本发明中,还提出双公钥机制。例如,a系统更新自己的keypair_a1到keypair_a2时,且b系统已更新publickey_a2成功。双方均需同时在一段时间内支持这两套公私钥对,不得在系统中进行移除原公私钥。在满足规定条件才可失效原公私钥对,例如规定条件有如下:

(1)已有联机报文正常使用新的公私钥对进行加密、解密,报文正常被双方处理;

(2)在交换密钥成功后已有一段时间,比如规定天数。

在本发明中,还提出系统报警功能。例如,b系统长时间更新a的公钥失败,规定天数,则a系统发出报警,提醒运营人员介入。

其中,关于联机报文处理,例如a系统将自己使用的加密公私钥对id即encryptionkeypairid_b及签名公私钥对即idsignaturekeypairid_a在报文中传递给b系统(其中,encryptionkeypair表示加密公私钥对id,signaturekeypairid表示签名公私钥对id),b系统可根据这两id,找出自己系统中存储的加密私钥encryptionprivatekey_b进行行解密,并找出签名公钥signaturepublickey_a进行验签。在本发明中,还提出公钥更新容错机制。例如联机系统之间发生真实报文交互前会经过各类联机测试及功能检测,故异常处理不包括系统本身软硬件的编码、流程、功能、机制等错误,仅包括因网络、系统性能等引起的环境类异常,表现为报文丢失、未收到应答等。例如:

(1)周期性报备及查询失败:如a系统将报文发送给b系统,发送失败。无需任何处理,第二天继续即可。

(2)联机报文更新失败:如a系统更新自己的keypair_a1到keypair_a2成功,更新的报文发送失败,或未收到b系统更新结果的反馈,则a系统在发给b系统的报文中使用keypair_a1,在收到b系统发来的报文时使用b系统传递过来的keypairid进行解密或验签。

双密钥机制保证无论b系统是否更新成功publickey_a2,联机交易均不会受到影响。如b系统更新成功,对于签名公私钥对,在下一个查询及报备周期,a系统会发现b系统已更新成功,则开始使用新的keypair_a2。如b系统更新失败,在下一个查询及报备周期,a系统会发现b更新失败,则发送联机报文更新,再行更新。如连续规定天数b系统更新均失败,则a系统通过系统报警机制,提示a运营人员协调b系统进行处理。

在本发明中,还提出应用链路探测机制。例如,将周期性报备与查询的报文的周期设置在应用链路探测的周期内,即可通过该报文实现链路探测功能。

接着,对于本发明的双系统间的公钥更新方法的实施方式进行说明。

图1是表示本发明第一实施方式的双系统间的公钥更新方法的流程示意图。在该第一实施方式中表示了周期性查询以及公钥更新的情况示例。

如图1所示,第一实施方式的双系统间的公钥更新方法包括下述步骤:

查询请求步骤s11:从第一系统向第二系统发起公钥查询请求,

查询应答步骤s12:第二系统基于公钥查询请求向第一系统返回公钥查询应答;

公钥更新请求步骤s13:第一系统基于公钥查询应答判断是否需要更新当前公钥并且在判断需要更新公钥的情况下或者第一系统自己需要更新公钥的情况下向第二系统发起公钥更新请求,其中所述公钥更新请求中包含最新公钥;以及

公钥更新应答步骤s14:第二系统基于公钥更新请求更新当前公钥并且向第一系统返回公钥更新应答。

接着,对于一个具体示例进行说明。

在查询请求步骤s11中第一系统向第二系统发起公钥查询请求,在请求中携带第二系统的签名公钥id和加密公钥id。例如“公钥查询请求”为:

{“latestsignaturekeypairid”:“signatureb1”,latestencryptionkeypairid”:“encryptionb1”}。

在查询应答步骤s12中,第二系统向第一系统返回公钥查询应答,在应答中携带第一系统的签名公钥id和加密公钥id。例如“公钥查询应答”为:

{“latestsignaturekeypairid”:“signaturea1”,

“latestencryptionkeypairid”:“encryptiona1”}。

在公钥更新请求步骤s13中,当第一系统自己需更新公钥,或在公钥查询中发现第二系统存储的公钥非最新的,则发起公钥更新请求。例如,“公钥更新请求”为:

{“updatedsignaturekeypairid”:“signaturea2”,“updatedsignaturepublickey”:公钥值}。

在公钥更新应答步骤s14中,第二系统更新第一系统的相关公钥后,应答更新结果。例如,“公钥更新应答”为:

{“updatedsignaturekeypairid”:“signaturea2”,“responsecode”:“success”}。

在上述示例中,第一系统对应于“a”,第二系统对应于“b”(下同)。

其中,第二系统亦可向第一系统发起公钥查询请求,不再赘述。且当第二系统发现第一系统公钥查询请求中携带的并非最新公钥时,亦可向第一系统发起公钥更新。

其中,从第一系统按照规定查询周期向第二系统发出公钥查询请求。这里,规定查询周期设置在双系统间的应用链路探测的周期内。如应用长连接设置为12小时,则发起公钥查询的周期可为6小时。

作为一个示例,在公钥更新应答步骤s14之后进一步设置为:在规定周期内设置第一系统和第二系统能够使用最新公钥或者所述当前公钥之一。利用这样的双公钥机制,双方能够同时在一段时间内支持这两套公私钥对,不得在系统中进行移除原公私钥。例如,在满足规定条件才可失效原公私钥对。

作为一个示例,在公钥更新应答步骤s14之后进一步包括:报警提示步骤,如果公钥更新应答表示更新不成功的情况下,可以重复进行上述步骤s11~s14再次进行更新,此期间可使用老的公私钥对进行报文的加密和签名,如在预设的规定时间后仍未更新成功,则系统进行报警,发出报警提示,通知相关人员密钥更新失败。

在双系统间更新了公钥以后继续联机交易处理。

这里简单说明一下联机交易处理的流程。

首先,第一系统给第二系统发送联机报文,包含签名公私钥对id、签名、加密公私钥对id、加密数据等,例如:

{“signaturekeypairid”:“signaturea2”,

“signature”:签名

“encryptionkeypairid”:“encryptionb1”

“encrypteddata”:加密信息,……}。

其次,第二系统用其存储的signaturepublickey_a2,进行验证签名,并用encryptionprivatekey_b1,进行解密,反之亦然。

图2是表示本发明第二实施方式的双系统间的公钥更新方法的流程示意图。在该第二实施方式中表示了周期性查询中查询应答和更新请求融合在一起的示例。

如图2所示,第二实施方式的双系统间的公钥更新方法包括下述步骤:

查询请求步骤s21:从第一系统向第二系统发起公钥查询请求;

查询更新步骤s22:第二系统基于公钥查询请求向第一系统返回公钥查询应答,并且同时,当第二系统基于所述公钥查询请求判断是否需要更新当前公钥并且在判断需要更新公钥的情况下将公钥更新请求返回给第一系统,其中,所述公钥更新请求中包含最新公钥;以及

更新结果通知步骤s23:第一系统基于公钥更新请求更新公钥后返回第二系统更新结果。

接着,对于一个具体示例进行说明。

在查询请求步骤s21中,第一系统向第二系统发起公钥查询请求,在请求中携带第二系统的签名公钥id和加密公钥id。例如,“公钥查询请求”为:

{“latestsignaturekeypairid”:“signatureb1”,

latestencryptionkeypairid”:“encryptionb1”}。

在查询更新步骤s22中,第二系统向第一系统返回公钥查询应答,在应答中携带第一系统的签名公钥id和加密公钥id,同时第二系统发现签名公钥signatureb1不是最新的公钥,则将最新的公钥返回在应答报文中,例如“公钥查询结果返回、及公钥更新请求”为:

{“latestsignaturekeypairid”:“signaturea1”,

“latestencryptionkeypairid”:“encryptiona1”

“updatedsignaturekeypairid”:“signatureb2”,

updatedsignaturepublickey”:公钥值}。

在更新结果通知步骤s23中,第一系统收到后更新公钥,并返回更新公钥的结果。例如“公钥更新结果通知”为:

{“updatedsignaturekeypairid”:“signatureb2”,

responsecode”:“success”}。

其中,从第一系统按照规定查询周期向第二系统发出公钥查询请求。这里,规定查询周期设置在双系统间的应用链路探测的周期内。如应用长连接设置为12小时,则发起公钥查询的周期可为6小时。

作为一个示例,在更新结果通知步骤s23之后进一步设置为:在规定周期内设置第一系统和第二系统能够使用最新公钥或者所述当前公钥之一。利用这样的双公钥机制,双方能够同时在一段时间内支持这两套公私钥对,不得在系统中进行移除原公私钥。例如,在满足规定条件才可失效原公私钥对。

作为一个示例,在更新结果通知步骤s23之后进一步包括:报警提示步骤,如果公钥更新应答表示更新不成功的情况下,可以重复进行上述步骤s21~s23再次进行更新,此期间可使用老的公私钥对进行报文的加密和签名,如在预设的规定时间后仍未更新成功,则系统进行报警,发出报警提示,通知相关人员密钥更新失败。

图3是表示本发明第三实施方式的双系统间的公钥更新方法的流程示意图。在该第三实施方式中表示了公钥报备机制的示例。

如图3所示,第三实施方式的双系统间的公钥更新方法包括下述步骤:

报备请求步骤s31:从第一系统定时向第二系统发起公钥报备请求;

报备应答步骤s32:第二系统基于公钥报备请求判断是否需要更新公钥并且将判断结果作为报备应答返回到第一系统;

公钥更新请求步骤s33:第一系统在需要更新公钥的情况下或者报备应答中的判断结果为需要更新公钥的情况下,向第二系统发起公钥更新请求,其中所述公钥更新请求中包含最新公钥;以及

公钥更新应答步骤s34:第二系统基于公钥更新请求更新当前公钥并且向第一系统返回公钥更新应答。

接着,对于一个具体示例进行说明。

在报备请求步骤s31中,第一系统向第二系统发起公钥报备请求,在请求中携带第一系统的最新的签名公钥id和加密公钥id。“公钥报备请求”例如为:

{“latestsignaturekeypairid”:“signaturea1”,“latestencryptionkeypairid”:“encryptiona1”}。

在报备应答步骤s32中,第二系统检查系统中存储的最新公钥与收到的报备是否一致,在应答报文中体现,“公钥查询应答”例如为:

{“needupdated”:“yes”,}。

在公钥更新请求步骤s33中,如果第一系统自己需更新公钥,或在公钥报备中发现第二系统要求更新公钥,则发起公钥更新请求。则“公钥更新请求”例如为:

{“updatedsignaturekeypairid”:“signaturea2”,updatedsignaturepublickey”:公钥值}。

在公钥更新应答步骤s34中,第二系统更新第一系统的相关公钥后,应答更新结果。例如“公钥更新应答”为:

{“updatedsignaturekeypairid”:“signaturea2”,“responsecode”:“success”}。

其中,第二系统也可以向第一系统发起公钥报备请求,不再赘述。而且当第二系统发现第一系统要求公钥更新时,亦可向第一系统发起公钥更新。

其中,第二系统亦可向第一系统发起公钥查询请求,不再赘述。且当第二系统发现第一系统公钥查询请求中携带的并非最新公钥时,亦可向第一系统发起公钥更新。

其中,从第一系统按照规定查询周期向第二系统发出公钥查询请求。这里,规定查询周期设置在双系统间的应用链路探测的周期内。如应用长连接设置为12小时,则发起公钥查询的周期可为6小时。

作为一个示例,在公钥更新应答步骤s34之后进一步设置为:在规定周期内设置第一系统和第二系统能够使用最新公钥或者所述当前公钥之一。利用这样的双公钥机制,双方能够同时在一段时间内支持这两套公私钥对,不得在系统中进行移除原公私钥。例如,在满足规定条件才可失效原公私钥对。

作为一个示例,在公钥更新应答步骤s34之后进一步包括:报警提示步骤,如果公钥更新应答表示更新不成功的情况下,可以重复进行上述步骤s31~s34再次进行更新,此期间可使用老的公私钥对进行报文的加密和签名,如在预设的规定时间后仍未更新成功,则系统进行报警,发出报警提示,通知相关人员密钥更新失败。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述的双系统间的公钥更新方法。

本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述的双系统间的公钥更新方法。

根据本发明的双系统间的公钥更新方法,通过使用系统间的报文交互及处理机制,实现公钥的更新,当第一系统(或者a系统)更新公钥时,第二系统(或者b系统)无需进行相应的人工操作和处理。而且,无需每笔报文携带公钥,可以缩短正常报文的长度,能够提高系统和网络的使用效率。

再者,本发明还提出公钥查询及报备机制,能够实现链路应用探测功能,无需单独再开发相关报文。再者,本发明中用公钥查询及报备、及双公钥机制,能够实现较高的系统容错,当一方更新公私钥对,发起更新公钥后,若另一方系统应环境问题无应答,无需人工处理和干预,可自动在下个查询及报备周期实现更新。

本发明的双系统间的公钥更新方法在第一系统(或者a系统)与多个第二系统(或者b系统)互联的情况下,第一系统与各系统使用相同的公私钥对,且与各系统之间的沟通成本较高时,能够有明显的效率提升。

以上例子主要说明了本发明的双系统间的公钥更新方法。尽管只对其中一些本发明的具体实施方式进行了描述,但是本领域普通技术人员应当了解,本发明可以在不偏离其主旨与范围内以许多其他的形式实施。因此,所展示的例子与实施方式被视为示意性的而非限制性的,在不脱离如所附各权利要求所定义的本发明精神及范围的情况下,本发明可能涵盖各种的修改与替换。

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