密钥自动轮换方法、系统、计算机设备和存储介质与流程

文档序号:31565889发布日期:2022-09-20 20:33阅读:189来源:国知局
密钥自动轮换方法、系统、计算机设备和存储介质与流程

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.图1为一个实施例中密钥自动轮换方法的硬件结构图;
38.图2为一个实施例中密钥自动轮换方法的流程图;
39.图3为一个实施例中密钥池栈结构的示意图;
40.图4为另一个实施例中密钥池栈结构的示意图;
41.图5为一个优选实施例中密钥自动轮换方法的流程图;
42.图6为一个实施例中密钥自动轮换系统的结构框图。
43.图中:102、处理器;104、存储器;106、传输设备;108、输入输出设备;610、标记模块;620、轮换模块;630、回收模块。
具体实施方式
44.为更清楚地理解本技术的目的、技术方案和优点,下面结合附图和实施例,对本技术进行了描述和说明。
45.除另作定义外,本技术所涉及的技术术语或者科学术语应具有本技术所属技术领域具备一般技能的人所理解的一般含义。在本技术中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本技术中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本技术中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本技术中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本技术中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
46.在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的密钥自动轮换方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
47.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的密钥自动轮换方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
48.传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
49.在系统认证的过程中,为了保证系统的安全性,轮换加密密钥是十分有效方式,即使发生密钥泄露的情况,但是可以通过自动轮换密钥,定期弃用旧的密钥以减少密钥泄漏导致的系统安全风险。但是在密钥轮换的过程中,密钥永久存储占用资源,尤其这种频繁使用的资源,会预先将密钥存储在内存中,当密钥轮换周期短时,会占用一定内存空间资源,系统不能识别和区分哪些密钥已过期,进而难以进行清除,因此存在过期密钥占用资源的
问题。
50.为了解决以上问题,在本实施例中提供了一种密钥自动轮换方法,图2是本实施例中方法的流程图,如图2所示,该方法包括以下步骤:
51.步骤s210,获取轮换的密钥并标记为有效状态,存入密钥池。
52.具体地,从服务器系统启动开始,每次密钥轮换时,则生成新的密钥并标记为有效状态,存入密钥池。其中,轮换的密钥为对称加密密钥或非对称加密密钥,为了区别不同加密算法生成的密钥,对每种密钥以{id}encryptionkey的格式存储,其中id是用于查找加密算法的标识符,比如rsa、aes以及ec等加密算法,encryptionkey是选定的密钥。另外,在密钥中除了标记(有效状态和过期状态)以外,每个对称加密密钥或非对称加密密钥都还包含唯一标识(kid),此标识使用uuid生成,以保证kid的唯一性,因此密钥中包括标记(有效状态和过期状态)和kid。
53.步骤s220,定期更新密钥池中密钥状态的标记以进行密钥轮换,将轮换后过期的密钥标记为过期状态。
54.具体地,在定期轮换密钥时,更新密钥池中所有密钥的标记,对其中轮换后过期的密钥标记为过期状态,并且还需生成新的密钥并标记为有效状态存入密钥池,通过标记区分密钥池中密钥的状态,其中,定期更新的周期具体可以根据实际应用情况定义,对一些保密要求较高的服务器系统,可以相应缩短定期更新的周期,比如设为每7天轮换更新一次。
55.进一步地,不限于上述两种密钥状态的标记,根据实际需求,还可以在密钥池中引入新的区分密钥状态的标记。
56.步骤s230,遍历密钥池,基于标记回收过期密钥。
57.具体地,密钥回收机制根据预设的回收周期进行持续回收,在执行密钥回收时,遍历密钥池中的所有密钥,基于密钥的标记进行选择性回收,只回收标记为过期状态的密钥,不会回收标记为有效状态的密钥。
58.通过上述步骤,在本实施例中能够在服务器系统中实现一种密钥定期自动轮换的方法,并且在现有技术的基础上进行了有效的补充,通过密钥标记的概念,将密钥分为有效状态和过期状态两个时期,基于标记区分不同时期的密钥状态,每次在回收过期密钥时,只需要关注其中过期状态标记的密钥,以较小的代价回收大量的空间,从而能够解决现有技术在密钥轮换过程中,存在过期密钥占用资源的问题,实现了基于标记回收过期密钥,从而释放占用资源的效果。
59.在其中的一些实施例中,上述定期更新密钥池中密钥状态的标记以进行密钥轮换,将轮换后过期的密钥标记为过期状态,包括以下步骤:
60.在进行密钥轮换时,将密钥池中有效状态密钥的标记轮换后更新为过期状态;生成待轮换密钥并标记为有效状态,存入密钥池。
61.具体地,在进行每次密钥轮换时,先获取密钥池中标记为有效状态的密钥,将有效状态的密钥标记更新为过期状态,过期状态表示该密钥处于回收期,可以通过密钥回收机制进行回收。
62.最后再生成待轮换的密钥并标记为有效状态,存入密钥池,有效状态表示该密钥处于有效期,可以用于生成认证令牌。
63.本实施例中在进行密钥轮换时,定期更新密钥的标记,同时还生成新的有效状态
的密钥存入密钥池,以通过标记区分密钥池中的过期密钥和有效密钥,从而能够回收密钥池中的过期密钥释放服务器系统的内存。
64.在其中的一些实施例中,上述方法还包括以下步骤:
65.基于标记为有效状态的密钥生成认证令牌,并设置有效期;
66.将认证令牌传输给客户端,以在客户端登入服务器系统时进行认证。
67.具体地,从密钥池中获取标记为有效状态的密钥,根据密钥的加密算法生成认证令牌,为认证令牌设置有效期后传输给客户端,使客户端在登入服务器系统时能够通过认证令牌进行认证。
68.其中,对不同加密算法生成的认证令牌的有效期通常进行统一设置,由于认证令牌一旦签发,在有效期内会始终有效,所以难以应对主动失效的问题,因此通常会设置较短的有效期,优选地,可以将有效期设为30分钟。
69.进一步地,jwt(json web token)是目前广泛适用的一种令牌格式,jwt由三部分组成,包括头部、载荷以及签证,签证部分将头部与载荷使用对称加密算法或非对称加密算法进行加密生成,其意义在于保证负载中的信息是可信的、没有被篡改的,但本技术中所有实施例并不限于以jwt格式的令牌进行认证。以jwt令牌为例,从密钥池中获取标记为有效状态的密钥,根据其中的加密算法进行签证加密,得到jwt令牌后传输给客户端。
70.通过本实施例中基于有效状态的密钥生成认证令牌,并传输给客户端在登入服务器系统时进行认证,能够保证在密钥轮换过程中,生成的认证令牌的有效性,以使得客户端在登入服务器系统时能够正常进行认证。
71.在其中的一些实施例中,上述遍历密钥池,基于标记回收过期密钥,包括以下步骤:
72.基于预设周期遍历密钥池,回收标记为过期状态的密钥;预设周期为认证令牌有效期的整数倍。
73.具体地,基于预设周期回收密钥池中标记为过期状态的密钥,预设周期可以为上述实施例中认证令牌有效期的整数倍,并且,在实际应用中还可以根据需求,通过调整认证令牌有效期的倍数来调节预设周期,当预设周期调整得比较长时,能够以较低的频率对密钥池进行回收,兼顾了密钥回收的时间开销和内存空间的有效利用两个方面的平衡。
74.在其中的一些实施例中,上述方法还包括:
75.将密钥以栈结构在密钥池中进行存储;
76.在回收过期密钥后,栈结构底部指针上移,以释放内存。
77.具体地,图3是本实施例中密钥池栈结构的示意图,如图3所示,将密钥以栈结构在密钥池中进行存储,栈结构中每个指针相应指向一个密钥,每个栈内元素以k/v格式存储。根据以上实施例,图3中密钥包括两部分,一部分为标记和唯一标识kid,另一部分为{id}encryptionkey的格式存储,其中id是用于查找加密算法的标识符,比如rsa、aes以及ec等加密算法,encryptionkey是选定的密钥。
78.图中sf的标记表示有效状态,wf的标记表示过期状态,在回收过期密钥后,标记为过期状态(wf)的密钥被回收,密钥池栈结构底部指针上移,释放服务器系统的内存。
79.在其中的一些实施例中,上述定期更新密钥池中密钥状态的标记以进行密钥轮换,将轮换后过期的密钥标记为过期状态,还包括:
80.在进行密钥轮换时,先将标记为有效状态的密钥更新标记为半过期状态;
81.在下一轮密钥轮换时,再将标记为半过期状态的密钥更新标记为过期状态。
82.具体地,本实施例中基于以上实施例中的两种密钥状态的标记,根据实际需求进行扩展,在密钥轮换时,加入一种密钥状态的标记,用于表示密钥的半过期状态,其中,半过期状态可以理解为在密钥轮换后已经过期,但还不能回收的过期密钥。
83.在进行密钥轮换时,先获取标记为有效状态的密钥,将这些密钥的有效状态的标记更新为半过期状态,半过期状态的密钥不会被回收,但是也无法基于半过期状态的密钥生成新的认证令牌,在进行下一轮密钥轮换时,再将标记为半过期状态的密钥更新为过期状态,此时可以通过密钥回收机制进行回收,可以理解为标记为半过期状态的密钥生存周期为一个密钥轮换周期。
84.其次,生成待轮换密钥并标记为有效状态,存入密钥池。图4为本实施例中另一种密钥池栈结构的示意图,在图4中sf的标记表示半过期状态,在回收过期密钥后,标记为过期状态(wf)的密钥被回收,密钥池栈结构底部指针上移,释放服务器系统的内存。
85.进一步地,在客户端进行系统认证时,以认证令牌的格式返回标记为有效状态和半过期状态的密钥;客户端基于返回的密钥在服务器系统中进行令牌认证。
86.具体地,由于在密钥轮换过程中,密钥每次轮换后,目前处于有效状态的密钥会失效,那么对于已经传输给客户端的认证令牌,就会出现客户端在登入服务器系统时出现认证令牌校验不通过的情况,那么又需要重新基于新的有效状态的密钥生成认证令牌重新进行认证。本实施例中通过设置半过期状态的密钥标记,对密钥轮换后的过期密钥不会立即进行回收,在客户端进行服务器系统认证时,以认证令牌的格式返回标记为有效状态和半过期状态的密钥,客户端再基于返回的密钥进行令牌认证,这样既能保证在密钥轮换前短暂时间传输的认证令牌的客户端有效性验证,客户端中基于上一轮密钥生成的认证令牌在一个轮换周期内依然有效,又能保证半过期状态的密钥不再使用,回收后不会影响系统认证功能异常。
87.以上述实施例中jwt格式令牌为例,密钥池中将标记为有效状态(sf)与半过期状态(sf)的密钥以jwk格式返回,客户端根据密钥中的kid获取对应的密钥,以进行jwt令牌验证。
88.下面通过优选实施例对本实施例进行描述和说明。
89.图5是本优选实施例的密钥自动轮换方法的流程图,如图5所示,该方法包括以下步骤:
90.步骤s510,获取轮换的密钥并标记为有效状态,并以栈结构在密钥池中进行存储。
91.步骤s520,在进行定期密钥轮换时,将标记为有效状态的密钥更新标记为半过期状态,将标记为半过期状态的密钥更新标记为过期状态,再生成待轮换密钥并标记为有效状态,存入密钥池。
92.步骤s530,基于标记为有效状态的密钥生成认证令牌,并设置有效期。
93.步骤s540,在客户端进行系统认证时,以认证令牌的格式返回标记为有效状态和半过期状态的密钥;客户端基于返回的密钥在服务器系统中进行令牌认证。
94.步骤s550,以认证令牌有效期的整数倍为回收周期遍历密钥池,回收标记为过期状态的密钥,回收后栈结构底部指针上移,以释放内存。
95.通过本优选实施例,将密钥分为三个有效状态、半过期状态以及过期状态三个不同时期,用于区分不同时期的密钥状态,既能保证在密钥轮换前短暂时间传输的令牌对应客户端的有效性验证,又能保证半过期状态的密钥不再使用,不会继续生成新的认证令牌,回收后不会影响系统认证功能异常。并且,采用上述密钥标记概念,每次回收只需要关注少量的过期状态密钥,以较低代价回收大量的空间,同时密钥回收周期为认证令牌有效期的整数倍,可以调节倍数,使用较低的频率来回收这个区域,这就同时兼顾了密钥回收的时间开销和内存的空间有效利用。
96.需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。例如,步骤s540和步骤s550可以进行互换。
97.在本实施例中还提供了一种密钥自动轮换系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
98.图6是本实施例的密钥轮换系统的结构框图,如图6所示,该系统包括:标记模块610、轮换模块620以及回收模块630;
99.标记模块610,用于获取轮换的密钥并标记为有效状态,存入密钥池;
100.轮换模块620,用于定期更新密钥池中密钥状态的标记以进行密钥轮换,将轮换后过期的密钥标记为过期状态;
101.回收模块630,用于遍历密钥池,基于标记回收过期密钥。
102.通过本实施中提供的系统,在本实施例中能够在服务器系统中实现一种密钥定期自动轮换的系统,并且在现有技术的基础上进行了有效的补充,通过密钥标记的概念,将密钥分为有效状态和过期状态两个时期,基于标记区分不同时期的密钥状态,每次在回收过期密钥时,只需要关注其中过期状态标记的密钥,以较小的代价回收大量的空间,从而能够解决现有技术在密钥轮换过程中,存在过期密钥占用资源的问题,实现了基于标记回收过期密钥,从而释放占用资源的效果。
103.在其中的一些实施例中,上述轮换模块620,还用于:在进行密钥轮换时,先将标记为有效状态的密钥更新标记为半过期状态;
104.在下一轮密钥轮换时,再将标记为半过期状态的密钥更新标记为过期状态。
105.通过本实施例中基于以上实施例中的两种密钥状态的标记,根据实际需求进行扩展,在密钥轮换时,加入一种密钥状态的标记,用于表示密钥的半过期状态,其中,半过期状态可以理解为在密钥轮换后已经过期,但还不能回收的过期密钥,进而能够保证在密钥轮换前短暂时间传输的令牌对应客户端的有效性验证。
106.需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
107.在本实施例中还提供了一种计算机设备,包括存储器和处理器,该存储器中存储
有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
108.可选地,上述计算机设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
109.需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
110.此外,结合上述实施例中提供的密钥自动轮换方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种密钥自动轮换方法。
111.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
112.应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本技术提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本技术保护范围。
113.显然,附图只是本技术的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本技术适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本技术披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本技术公开的内容不足。
[0114]“实施例”一词在本技术中指的是结合实施例描述的具体特征、结构或特性可以包括在本技术的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本技术中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
[0115]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1