一种密钥轮换方法、装置、计算机设备与流程

文档序号:31658522发布日期:2022-09-27 22:41阅读:82来源:国知局
一种密钥轮换方法、装置、计算机设备与流程

1.本技术涉及数据安全管理技术领域,特别是涉及一种密钥轮换方法、装置、计算机设备。


背景技术:

2.随着数据安全管理技术领域的发展,为了保护数据,除了使用独有的密钥或口令外,还可以定期更换密钥。当管理员需要轮换密钥时,会访问服务器并手动更新密钥。
3.目前,常见的方案为直接在服务端生产新密钥,再将新密钥配置到服务端中。但该方案在实际实施过程中,管理员直接将服务端的旧密钥更换为新密钥。没有考虑到在更换过程中,可能会有用户使用旧密钥从客户端登陆,导致认证失败,无法保障密钥更换期间业务的连续性。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种密钥轮换方法、装置、计算机设备,可以在管理员直接将服务端的旧密钥更换为新密钥的情况下,保障密钥更换期间业务的连续性。
5.第一方面,本技术提供了一种密钥轮换方法。所述方法包括:获取密钥轮换请求,所述密钥轮换请求包括生成新密钥和设置旧密钥的过期时间;根据密钥轮换请求,等待预设时间生成新密钥、存储新密钥;接收客户端发送的密钥,验证所述客户端发送的密钥是否为新密钥;若所述客户端发送的密钥不是新密钥,检查是否存在所述旧密钥;若存在所述旧密钥,验证所述客户端发送的密钥是否为所述旧密钥;若所述客户端发送的密钥是所述旧密钥,验证所述旧密钥是否过期;若所述旧密钥过期,删除所述旧密钥。
6.在其中一个实施例中,在所述设置旧密钥的过期时间之后,根据所述旧密钥的过期时间触发过期策略,所述过期策略包括旧密钥自动失效。
7.在其中一个实施例中,在等待预设时间生成新密钥之后,所述方法还包括:向客户端发送生成新密钥的通知消息;和/或,设置提醒消息,所述提醒消息用于客户端控制面获取新密钥、配置新密钥,客户端数据面同步所述新密钥。
8.在其中一个实施例中,所述新密钥通过多轮哈希函数后存储,所述客户端发送的密钥通过多轮哈希函数与新密钥或旧密钥进行比较。
9.第二方面,本技术还提供了一种密钥轮换装置。所述装置包括:获取模块,用于获取密钥轮换请求,所述密钥轮换请求包括生成新密钥和设置旧密钥的过期时间;
存储模块,用于根据密钥轮换请求,等待预设时间生成新密钥、存储新密钥;第一验证模块,用于接收客户端发送的密钥,验证所述客户端发送的密钥是否为新密钥;第二验证模块,用于若所述客户端发送的密钥不是新密钥,检查是否存在所述旧密钥;第三验证模块,用于若存在所述旧密钥,验证所述客户端发送的密钥是否为所述旧密钥;第四验证模块,用于若所述客户端发送的密钥是所述旧密钥,验证所述旧密钥是否过期;删除模块,用于若所述旧密钥过期,删除所述旧密钥。
10.在其中一个实施例中,所述设置旧密钥的过期时间之后,根据所述旧密钥的过期时间触发过期策略,所述过期策略包括旧密钥自动失效。
11.在其中一个实施例中,在等待预设时间生成新密钥之后,所述装置还包括:向客户端发送生成新密钥的通知消息;和/或,设置提醒消息,所述提醒消息用于客户端控制面获取新密钥、配置新密钥,客户端数据面同步所述新密钥。
12.在其中一个实施例中,所述新密钥通过多轮哈希函数后存储,所述客户端发送的密钥通过多轮哈希函数与新密钥或旧密钥进行比较。
13.第三方面,本公开还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现密钥轮换方法的步骤。
14.第四方面,本公开还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现密钥轮换方法的步骤。
15.第五方面,本公开还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现密钥轮换方法的步骤。
16.上述密钥轮换方法,至少包括以下有益效果:本公开提供的实施例方案,在获取到密钥轮换请求的情况下,可以在服务端生成新密钥,并设置旧密钥的过期时间。在密钥轮换过程中,用户可能会在客户端使用新密钥或旧密钥登录。如果旧密钥过期,用户可以使用新密钥登录成功。如果旧密钥未过期,用户可以使用新密钥或旧密钥登录成功。在服务端验证密钥的过程中,服务端首先会使用新密钥验证,如果用户输入旧密钥,而旧密钥超出过期时间,服务端可以删除旧密钥,在之后的密钥验证过程中,服务端可以只使用新密钥验证。通过逻辑验证保证了在密钥轮换期间,服务端生成了新密钥但是客户端还是旧密钥的时候,认证过程正常,保证了业务的连续性。
17.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
18.为了更清楚地说明本公开实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1为一个实施例中密钥轮换方法的应用环境图;图2为一个实施例中密钥轮换方法的流程图;图3为一个实施例中服务端和客户端之间的交互示意图;图4为一个实施例中密钥轮换方法的流程图;图5为一个实施例中旧密钥自动失效的流程图;图6为一个实施例中密钥轮换装置的结构框图;图7为一个实施例中计算机设备的内部结构图;图8为一个实施例中一种服务器的内部结构图。
具体实施方式
20.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
21.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
22.本公开实施例提供一种密钥轮换方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
23.在本公开的一些实施例中,如图2所示,提供了一种密钥轮换方法,以该方法应用于图1中的服务器对密钥进行处理为例进行说明。可以理解的是,该方法可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。具体的一个实施例中,所述方法可以包括以下步骤:s202:获取密钥轮换请求,所述密钥轮换请求包括生成新密钥和设置旧密钥的过期时间。
24.广泛重复的使用一种密钥,可能会影响密钥的安全性。可以定期轮换密钥,确保密
钥的安全性。如图3所示,服务端和客户端可以包括控制面和数据面。控制面可以用于决定如何处理数据,数据面可以用于根据控制面的处理,相应的修改数据。一些复杂的系统可能区分数据面和控制面,在控制面中做的修改需要一定的时间才能在数据面生效,不同的系统,生效的时间可能不同,可以达到10分钟或者更长的时间在数据面生效。一些简单的系统可能不区分数据面和控制面,数据经过修改后,可以直接生效。
25.服务端和客户端可能使用对称密钥,也可能使用非对称密钥。在本公开的一些实施例中,服务端和客户端可以使用对称密钥,服务端生成的密钥与客户端使用的密钥可以是相同的密钥。使用对称密钥可以保障认证过程的计算量小、加密速度快、加密效率高。在本公开的另一些实施例中,在使用非对称密钥验证的情况下,客户端可以生成新公钥与新私钥,然后将新公钥配置在服务端。非对称密钥的轮换过程与对称密钥的轮换过程可以是相似的。在密钥轮换期间内,新私钥、旧私钥都可以验证成功。
26.在服务端的控制面生成新的密钥的情况下,新密钥、旧密钥可能同时存在,可以设置旧密钥的默认过期时间为一个星期,也可以根据实际需求来调整旧密钥的过期时间。
27.在本公开的实施例中,根据密钥轮换的请求,服务端的控制面生成新密钥,可以根据实际需求设置旧密钥的过期时间。
28.s204:根据密钥轮换请求,等待预设时间生成新密钥、存储新密钥。
29.在服务端的控制面生成新密钥的情况下,可以等待预设时间在服务端的数据面生成新密钥。不同的系统,预设时间可能是不一样的。例如,简单的系统,在服务端的控制面生成新密钥后,新密钥可以直接在服务端的数据面生效或等待几秒钟后在服务端的数据面生效。在复杂系统中,新密钥可能需要10分钟或者更长时间才能在服务端的数据面生效,可以通过状态查询的方式查询新密钥是否在服务端的数据面生效。
30.s206:接收客户端发送的密钥,验证所述客户端发送的密钥是否为新密钥。
31.在新密钥、旧密钥同时存在的情况下,客户端可以发送新密钥验证,也可以发送旧密钥验证。在本公开的一些实施例中,服务端可以先使用新密钥验证客户端发送的密钥。
32.在本公开的实施例中,在服务端接收到客户端发送的密钥的情况下,可以先使用新密钥验证客户端发送的密钥,如果客户端发送的是新密钥,可以验证成功。
33.s208:若所述客户端发送的密钥不是新密钥,检查是否存在所述旧密钥。
34.在本公开的实施例中,经过服务端的验证,客户端发送的密钥不是新密钥。在验证失败的情况下,客户端发送的密钥可能是旧密钥,也可能是错误密钥。因为服务端设置了旧密钥的过期时间,在验证过程中,旧密钥可能存在,也可能失效。在服务端不存在旧密钥的情况下,客户端可能发送的是错误密钥,验证失败。
35.s210:若存在所述旧密钥,验证所述客户端发送的密钥是否为所述旧密钥。
36.在本公开的实施例中,在服务端存在旧密钥的情况下,客户端可以发送旧密钥保障验证成功。在客户端发送的密钥不是旧密钥的情况下,验证失败。
37.s212:若所述客户端发送的密钥是所述旧密钥,验证所述旧密钥是否过期。
38.在本公开的实施例中,在客户端发送的密钥是旧密钥的情况下,服务端可以验证旧密钥是否过期。在旧密钥没有过期的情况下,客户端发送旧密钥可以验证成功。在旧密钥已经过期的情况下,客户端发送旧密钥,验证失败。
39.s214:若所述旧密钥过期,删除所述旧密钥。
40.在本公开的实施例中,在旧密钥过期的情况下,客户端可以发送新密钥验证成功,客户端发送旧密钥或错误密钥,可能验证失败。可以将服务端中的旧密钥删除,此时服务端中可以只存在新密钥。在验证客户端发送的密钥的过程中,可以直接验证客户端发送的密钥是否为新密钥,可以减少服务端的验证时间。
41.图4为一个实施例中密钥轮换方法的流程图。展示了新密钥、旧密钥同时存在期间的认证逻辑。在客户端输入未过期旧密钥、新密钥的情况下,服务端可以认证成功。在客户端输入错误密钥、过期旧密钥的情况下,服务端可以认证失败。
42.上述密钥轮换的方法中,服务端的控制面可以生成新密钥并设置旧密钥的过期时间,等待预设时间新密钥可以在服务端数据面生效,服务端数据面同步新密钥。在新密钥、旧密钥同时存在期间,服务端可以先验证客户端发送的密钥是否为新密钥。在验证客户端发送的密钥不是新密钥,并且可能存在旧密钥的情况下,可以验证客户端发送的密钥是否为旧密钥。在客户端发送的密钥是旧密钥的情况下,可以验证旧密钥是否过期,如果旧密钥过期,删除旧密钥。在密钥轮换的过程中,旧密钥可以通过设置过期时间、或检查到旧密钥过期后删除旧密钥的方式,可以保障在新密钥、旧密钥同时存在期间业务的连续性。
43.在本公开的一些实施例中,如图5所示,在所述设置旧密钥的过期时间之后,根据所述旧密钥的过期时间触发过期策略,所述过期策略包括旧密钥自动失效。
44.在设置旧密钥的过期时间的情况下,如果旧密钥未超出过期时间,客户端可以使用新密钥、旧密钥验证。在验证过程中,如果客户端发送的密钥都是新密钥,可能无法触发判断旧密钥是否过期,删除旧密钥的方法。在本公开的一些实施例中,可以通过设置定时器、过期策略等方式确保旧密钥无效。过期策略可以包括定期删除、惰性删除等。不仅可以通过定期删除设置过期时间,抽取密钥检查是否过期,还可以使用惰性删除保障删除超过过期时间的密钥。
45.本公开的实施例中,过期策略可以包括旧密钥自动失效,服务端可以不需要每次在验证客户端发送的密钥不是新密钥的情况下,进入检查是否存在旧密钥或旧密钥是否过期的流程,可以减少验证时间,增加业务的连续性。
46.在本公开的一些实施例中,在等待预设时间生成新密钥之后,所述方法还包括:向客户端发送生成新密钥的通知消息;和/或,设置提醒消息,所述提醒消息用于客户端控制面获取新密钥、配置新密钥,客户端数据面同步所述新密钥。
47.在本公开的某一些实施例中,在服务端生成新密钥的情况下,可以向客户端发送新密钥生成的通知消息。这样,客户端可以发送新密钥或旧密钥验证。并且,在旧密钥过期或被删除的情况下,客户端可以发送新密钥验证。在本公开的另一些实施例中,可以设置提醒消息,客户端控制面获取新密钥,等待预设时间,客户端数据面同步新密钥。一般通过手动更新配置的方式更新密钥,可以使用集群配置系统,可以每次重启一个实例保证业务连续性。如果客户端本身不需要重启,可以支持热更新配置,那么客户端的新密钥可以自动生效。
48.在本公开的一些实施例中,所述新密钥通过多轮哈希函数后存储,所述客户端发送的密钥通过多轮哈希函数与新密钥或旧密钥进行比较。
49.哈希函数(hash)是一种可以将任意长度的消息压缩到某一固定长度的消息摘要
的函数。哈希函数可以包括单向性的特点。
50.在本公开的实施例中,新密钥通过多轮哈希函数后存储,哈希函数的单向性可以保证经过多轮哈希函数后的密钥,可以是难以逆转的,可以保证密钥的安全性。在客户端发送密钥后,服务端可以不使用一般的字符串比较的方式进行比较。服务端可以使用哈希函数转换密钥,比较服务端存储的密钥与客户端发送的密钥,可以保证密钥的安全性。
51.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
52.基于同样的发明构思,本公开实施例还提供了一种用于实现上述所涉及的针对密钥轮换方法的密钥轮换装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的密钥轮换装置实施例中的具体限定可以参见上文中对于密钥轮换方法的限定,在此不再赘述。
53.所述装置可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本公开实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
54.在一个实施例中,如图6所示,提供了一种密钥轮换装置600,所述装置可以为前述服务器,或者集成于所述服务器的模块、组件、器件、单元等。该装置600可以包括:获取模块602,用于获取密钥轮换请求,所述密钥轮换请求包括生成新密钥和设置旧密钥的过期时间;存储模块604,用于根据密钥轮换请求,等待预设时间生成新密钥、存储新密钥;第一验证模块606,用于接收客户端发送的密钥,验证所述客户端发送的密钥是否为新密钥;第二验证模块608,用于若所述客户端发送的密钥不是新密钥,检查是否存在所述旧密钥;第三验证模块610,用于若存在所述旧密钥,验证所述客户端发送的密钥是否为所述旧密钥;第四验证模块612,用于若所述客户端发送的密钥是所述旧密钥,验证所述旧密钥是否过期;删除模块614,用于若所述旧密钥过期,删除所述旧密钥。
55.在一个实施例中,所述设置旧密钥的过期时间之后,根据所述旧密钥的过期时间触发过期策略,所述过期策略包括旧密钥自动失效。
56.在一个实施例中,在等待预设时间生成新密钥之后,所述装置还包括:向客户端发送生成新密钥的通知消息;和/或,设置提醒消息,所述提醒消息用于客户端控制面获取新密钥、配置新密钥,客户端数据面同步所述新密钥。
57.在一个实施例中,所述新密钥通过多轮哈希函数后存储,所述客户端发送的密钥通过多轮哈希函数与新密钥或旧密钥进行比较。
58.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
59.上述针对密钥轮换装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
60.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储密钥。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种密钥轮换方法。
61.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现密钥轮换方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
62.本领域技术人员可以理解,图7、图8中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
63.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现本公开任一实施例所述的方法。
64.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本公开任一实施例所述的方法。
65.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本公开所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本公开所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本公开所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
66.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
67.以上所述实施例仅表达了本公开的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本公开专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开构思的前提下,还可以做出若干变形和改进,这些都属于本公开的保护范围。因此,本公开的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1