利用状态机来管理数字证书的方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种利用状态机来管理数字证书的方法及装置。
背景技术
在互联网技术与应用日益繁盛的今天,信息安全越来越受到各个平台的关注。尤其在支付领域,第三方支付机构需要频繁的与其它机构进行信息互通。因此在平台间通信时,为了提高安全性,需要通信的双方对交换的报文进行加密、解密、签名、验签操作。而秘钥是进行这一切的基础,通过通信双方提前确认好的秘钥,可对通信报文进行加密处理。在本申请文件中,将秘钥统称为数字证书。
为了提高通信的安全性,通信双方的数字证书要做定时更换,在更换数字证书时就会有一个潜在的问题出现:新更换的数字证书不正确。为了不影响外部服务,需要及时、有效对数字证书进行管理。
传统技术中,在新更换的数字证书不正确时,通过人工的方式上传一个老的数字证书来覆盖不正确的数字证书,然而通过人工的方式上传老的数字证书,存在人工误操作的风险;此外,通过人工的方式来管理数字证书往往不能在第一时间解决数字证书不正确的问题,也即实时性差。
发明内容
本申请描述了一种利用状态机来管理数字证书的方法及装置,可以及时、有效地对数字证书进行管理。
第一方面,提供了一种利用状态机来管理数字证书的方法,该方法包括:
检测第一数字证书是否正确,其中,所述第一数字证书的状态机处于生效状态;
若所述第一数字证书不正确,则获取第二数字证书,所述第二数字证书为所述第一数字证书的前一个版本,且所述第二数字证书的状态机处于可回滚状态;
将所述第一数字证书的状态机切换为失效状态,并将所述第二数字证书的状态机切换为待回滚状态;
当第一设置周期到达时,将第二数字证书的状态机切换为生效状态。
第二方面,提供了一种利用状态机来管理数字证书的装置,该装置包括:
检测单元,用于检测第一数字证书是否正确,其中,所述第一数字证书的状态机处于生效状态;
获取单元,用于若所述检测单元检测所述第一数字证书不正确,则获取第二数字证书,所述第二数字证书为所述第一数字证书的前一个版本,且所述第二数字证书的状态机处于可回滚状态;
切换单元,用于将所述第一数字证书的状态机切换为失效状态,并将所述第二数字证书的状态机切换为待回滚状态;
所述切换单元,还用于当第一设置周期到达时,将第二数字证书的状态机切换为生效状态。
本申请提供的利用状态机来管理数字证书的方法及装置,当前生效的数字证书以及前一个版本的数字证书具有对应的状态机,具体地,在检测到当前生效的数字证书不正确时,通过对当前生效的数字证书以及前一个版本的数字证书的状态机的状态的切换,来自动启用前一个版本的数字证书,并关闭不正确的数字证书,由此,可以实现及时、有效的对数字证书进行管理。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请提供的利用状态机来管理数字证书的方法的应用场景示意图;
图2为本申请提供的证书管理中心管理数字证书的方法示意图;
图3为本申请提供的数字证书的状态机的状态切换示意图;
图4为本申请一种实施例提供的利用状态机来管理数字证书的方法流程图;
图5本申请另一种实施例提供的利用状态机来管理数字证书的装置示意图。
具体实施方式
下面结合附图,对本发明的实施例进行描述。
本申请实施例提供的利用状态机来管理数字证书的方法及装置适用于在当前生效的数字证书不正确时,及时、有效地对数字证书进行管理,以确保使用上述数字证书对通信的数据进行加密、解密、签名、验签操作的系统能够正常运行的场景。
如,适用于如图1所示的场景,图1中,第三方支付机构(如,支付宝)主要用于对用户的业务进行处理以及与其它机构(如,第一机构、第二机构以及第N机构)进行通信,而为了提高第三方支付机构与其它机构之间通信的安全性,则需要使用数字证书对两者之间的通信消息执行加密操作、解密操作、签名操作或者验签操作;证书管理中心用于对上述数字证书进行管理,此外,还可以用于实现安全算法(如,执行上述加密操作所用到的加密算法等)。
其中,证书管理中心管理数字证书的过程可参见图2所示,图2中,证书管理中心的数字证书可以是由管理人员根据预设的算法编写好之后上传的(如,私钥),也可以是其它机构生成后发送的(如,公钥)。可以理解的是,证书管理中心的数字证书是与其它机构相对应的,即不同的其它机构,其对应的数字证书是不同的。具体地,当第三方支付机构向某机构发送消息时,第三方支付机构中的域内系统首先从证书管理中心读取与该机构对应的、当前生效的数字证书,之后通过该数字证书对上述消息进行加密,并将加密后的消息发送给上述机构;或者当第三方支付机构的域内系统从某机构接收到消息时,其首先从证书管理中心读取与该机构对应的、当前生效的数字证书,之后通过该数字证书对上述消息进行解密,以获取实际的数据。当然,此处只是对数字证书的使用方式的简单说明,在实际应用中,可能还需要使用数字证书执行签名或者验签等操作,本申请在此不复赘述。
在一种实现方式中,证书管理中心具体是通过对数字证书的状态机的状态进行切换来对其进行管理的,其中,与一个机构对应的数字证书的状态机的状态可以包括:初始化状态、生效状态、可回滚状态、待回滚状态以及失效状态,其中,各状态之间相互切换的示意图可以如图3所示,图3中,证书管理中心最新获取的数字证书的状态机为初始化状态;当到达第二设置周期时,数字证书的状态机切换为生效状态;最新获取的数字证书生效后,原本生效的数字证书的状态机切换为可回滚状态,而原本可回滚的数字证书的状态机切换为失效状态,此处,回滚是指可以从当前版本还原到前一个版本;此外,若检测到最新获取的数字证书不正确,则该最新获取的数字证书的状态机切换为失效状态,而原本生效的数字证书的状态机切换为待回滚状态;当到达第一设置周期时,原本生效的数字证书的状态机再次切换为生效状态。
可以理解的是,为了能正确、有效地对数字证书进行管理,本申请中各个状态的数字证书的数量可以如表1所示。
表1
状态 |
数量 |
初始化状态 |
1 |
生效状态 |
1 |
可回滚状态 |
1 |
待回滚状态 |
1 |
失效状态 |
N |
其中,初始化状态的数字证书只有1个,是为了确保在第二设置周期到达时,只有1个数字证书的状态机可以切换为生效状态;生效状态的数字证书只有1个,是为了确保使用该数字证书进行加密、解密、签名、验签操作的系统能够快速获取到该数字证书;可回滚状态的数字证书只有1个,是为了确保在新更换的数字证书不正确时,有且只有1个数字证书的状态机可以切换为待回滚状态;待回滚状态的数字证书只有1个,是为了确保在第一设置周期到达时,只有1个数字证书的状态机可以切换为生效状态;因为失效状态为状态机的终态,其不可以转换为其它状态,且状态机为失效状态的数字证书起不到任何作用,因此其数量可以为多个。
图4为本申请一种实施例提供的利用状态机来管理数字证书的方法流程图。所述方法的执行主体可以为具有处理能力的设备:服务器或者系统或者装置,如,图1中的证书管理中心,如图4所示,所述方法具体可以包括:
步骤410,检测第一数字证书是否正确。
此处的第一数字证书可以是指管理人员或者其它机构最新上传的数字证书,其具有相应的状态机。在第一数字证书为最新上传的数字证书时,在执行步骤410之前,还可以执行如下步骤:
步骤A:获取第一数字证书,将第一数字证书的状态机设置为初始化状态。
其中,获取第一数字证书包括:接收管理人员上传的第一数字证书或者接收其它机构发送的第一数字证书。可以理解的是,在证书管理中心获取到第一数字证书之后,可以将该第一数字证书的状态机设置为初始化状态。
步骤B:当第二设置周期到达时,将第一数字证书的状态机切换为生效状态,并将原本生效的第二数字证书的状态机切换为可回滚状态。
此处的第二数字证书为第一数字证书的前一个版本(也即第一数字证书为第二数字证书的升级版本),其同样具有相应的状态机。第二数字证书在第一数字证书生效之前生效,也即在将第一数字证书的状态机切换为生效状态之前,第二数字证书的状态机为生效状态。此外,上述第二设置周期可以是由人为预先设定,在一个例子中,可以根据要求数字证书更新的时间来设定,如,可以为一年。
需要说明的是,本申请可以预先配置第一定时任务,该第一定时任务用于扫描并获取状态机为初始化状态的数字证书,其可以与第二设置周期相对应,具体地,当第二设置周期到达时,启动与该第二设置周期对应的第一定时任务,通过该第一定时任务扫描并获取状态机为初始化状态的第一数字证书,将第一数字证书的状态机切换为生效状态。此外,根据表1所示的内容可知,状态机为生效状态的数字证书的数量只能为1个,因此,可以将原本生效的第二数字证书的状态机也进行切换。
而根据图3所示的内容可知,状态机可以从生效状态切换为可回滚状态或者失效状态,而为了保证在第一数字证书不正确时,可以重新启用第二数字证书,可以将原本生效的第二数字证书的状态机切换为可回滚状态,因为状态机可以从可回滚状态切换为待回滚状态,从而进一步切换为生效状态,而状态机的失效状态为终态,不能再切换为其它状态。
可以理解的是,在第二数字证书生效时,也即在第二数字证书的状态机为生效状态时,为了保证第二数字证书不正确时,可以重新启用其它数字证书,可以配置状态机为可回滚状态的第三数字证书,其中,第三数字证书为第二数字证书的前一个版本(也即第二数字证书为第三数字证书的升级版本)。具体地,在将原本生效的第二数字证书的状态机切换为可回滚状态之后,还可以包括如下步骤:
步骤X:判断是否存在第三数字证书。
其中,第三数字证书为第二数字证书的前一个版本,且第三数字证书的状态机为可回滚状态。
步骤Y:若存在第三数字证书,则将第三数字证书的状态机切换为失效状态。
此处,将第三数字证书的状态机切换为失效状态是因为已经存在了状态机为可回滚状态的第二数字证书,也即在第一数字证书不正确时,可以启用第二数字证书。
还需要说明的是,上述步骤A-步骤B以及步骤X-步骤Y也可以称为数字证书的上传流程。
回到步骤410,由于数字证书在使用过程中可能会存在一些问题,尤其是最新获取的数字证书,因此需要对其进行检测,以保证其能够被正确使用。
步骤420,若第一数字证书不正确,则获取第二数字证书。
其中,第二数字证书为第一数字证书的前一个版本,且第二数字证书的状态机处于可回滚状态。
如前所述,为了保证在第一数字证书不正确时,可以重新启用第二数字证书,在将第一数字证书的状态机切换为生效状态时,将第二数字证书的状态机切换为可回滚状态。因此,当检测到第一数字证书不正确时,可以直接获取第二数字证书。
步骤430,将第一数字证书的状态机切换为失效状态,并将第二数字证书的状态机切换为待回滚状态。
根据图3所示的内容,状态机可以从生效状态切换为失效状态,且失效状态为终态。因此,当检测到第一数字证书不正确时,可以将第一数字证书的状态机切换为失效状态。此外,根据图3所示的内容,状态机可以从可回滚状态切换为待回滚状态,从而进一步切换为生效状态,因此,可以将第二数字证书的状态机切换为待回滚状态。
可选地,根据图3所示的内容可知,只有在第一设置周期到达时,状态机才从待回滚状态切换为生效状态,因此,在将第二数字证书的状态机切换为待回滚状态,可以保存状态机为待回滚状态的第二数字证书。
步骤440,当第一设置周期到达时,将第二数字证书的状态机切换为生效状态。
需要说明的是,本申请可以预先配置第二定时任务,该第二定时任务用于扫描并获取状态机为待回滚状态的数字证书,其可以与第一设置周期相对应,具体地,当第一设置周期到达时,启动与该第一设置周期对应的第二定时任务,通过该第二定时任务扫描并获取状态机为待回滚状态的第二数字证书,将第二数字证书的状态机切换为生效状态。此处,第一设置周期也可以由人为预先设定,在一个例子中,其可以根据数字证书的检测周期设定,如,可以为1分钟等。
综上,在第一数字证书不正确的情况下,本申请通过状态机与定时任务相结合的方式,来对第一数字证书以及第二数字证书的状态机的状态进行切换,从而来实现自动启用第二数字证书,由此可以进一步确保使用第一数字证书的系统能够正常运行;此外,通过对状态机的状态切换过程的控制,从而也实现了对数字证书进行及时、有效的管理。
与上述利用状态机来管理数字证书的方法对应地,本申请实施例还提供的一种利用状态机来管理数字证书的装置,如图5所示,该装置包括:
检测单元501,用于检测第一数字证书是否正确,其中,第一数字证书的状态机处于生效状态。
其中,第一数字证书可以为对第三方支付机构与其它机构之间的通信消息执行加密操作、解密操作、签名操作或者验签操作时所使用的数据。
获取单元502,用于若检测单元501检测第一数字证书不正确,则获取第二数字证书,第二数字证书为第一数字证书的前一个版本,且第二数字证书的状态机处于可回滚状态。
切换单元503,用于将第一数字证书的状态机切换为失效状态,并将第二数字证书的状态机切换为待回滚状态。
切换单元503,还用于当第一设置周期到达时,将第二数字证书的状态机切换为生效状态。
可选地,获取单元502,还用于获取第一数字证书,将第一数字证书的状态机设置为初始化状态;
切换单元503,还用于当第二设置周期到达时,将第一数字证书的状态机切换为生效状态,并将原本生效的第二数字证书的状态机切换为可回滚状态。
可选地,该装置还可以包括:
判断单元504,用于判断是否存在第三数字证书,其中,第三数字证书为第二数字证书的前一个版本,且第三数字证书的状态机为可回滚状态;
切换单元503,还用于若判断单元504判断存在第三数字证书,则将第三数字证书的状态机切换为失效状态。
可选地,该装置还可以包括:
保存单元505,用于保存状态机为可回滚状态的第二数字证书;
切换单元503具体用于:
当第一设置周期到达时,启动与第一设置周期相对应的定时任务;
通过定时任务扫描并获取状态机为可回滚状态的第二数字证书;
将第二数字证书的状态机切换为生效状态。
本申请实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本申请提供的装置的具体工作过程,在此不复赘述。
本申请提供的利用状态机来管理数字证书的装置,检测单元501检测第一数字证书是否正确;若检测单元501检测第一数字证书不正确,获取单元502获取第二数字证书;切换单元503将第一数字证书的状态机切换为失效状态,并将第二数字证书的状态机切换为待回滚状态;当第一设置周期到达时,切换单元503将第二数字证书的状态机切换为生效状态。由此,可以实现及时、有效的对数字证书进行管理。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。