一种密钥管理方法及装置制造方法

文档序号:7818226阅读:292来源:国知局
一种密钥管理方法及装置制造方法
【专利摘要】本发明实施例涉及信息安全领域,公开了一种密钥管理方法及装置,该方法包括:安全代理检测共享内存中是否有密钥更新,所述密钥更新包括对密钥进行写操作或散列运算;所述安全代理若检测到所述密钥更新,则对所述共享内存中的密钥进行加锁;所述安全代理判断所述密钥更新是否完成,若是,则对所述共享内存中的密钥进行解锁。本发明实施例只在密钥更新期间对共享内存中的密钥进行加锁操作,提高了密码运算时获取密钥的效率。
【专利说明】一种密钥管理方法及装置

【技术领域】
[0001]本发明涉及信息安全领域,具体涉及一种密钥管理方法及装置。

【背景技术】
[0002]安全代理是一种提供密钥管理的安全中间件,能够对共享内存中的密钥进行读写操作。安全插件是一种提供密码运算服务的安全中间件,能在提供密码运算服务时对共享内存中的密钥进行读取操作。现有密钥管理方法中,安全代理与安全插件对密钥的操作很容易产生冲突,例如,安全代理在进行密钥更新并还未完成更新时,安全插件执行获取密钥以提供密码运算服务的操作,此时获取的密钥为更新之前的密钥,而由于各设备的交互具有时延性,可能会出现在执行密码运算时密钥已经更新完成,因此,安全代理会对共享内存进行长期加锁。在共享内存被加锁的期间内,即密钥的整个生命周期内,安全代理对密钥进行读写操作和安全插件在提供密码运算服务时获取密钥的操作都只能串行的进行,但这样会降低密码运算时获取密钥的效率。


【发明内容】

[0003]本发明实施例提供一种密钥管理方法及装置,能够大大提高密码运算时获取密钥的效率。
[0004]本发明第一方面提供了一种密钥管理方法,所述方法包括:
[0005]安全代理检测共享内存中是否有密钥更新,所述密钥更新包括对密钥进行写操作或散列运算;
[0006]所述安全代理若检测到所述密钥更新,则对所述共享内存中的密钥进行加锁;
[0007]所述安全代理判断所述密钥更新是否完成,若是,则对所述共享内存中的密钥进行解锁。
[0008]相应的,本发明第二方面提供了一种密钥管理装置,所述装置包括:
[0009]检测单元,用于检测共享内存中是否有密钥更新,所述密钥更新包括对密钥进行写操作或散列运算;
[0010]加锁单元,用于当所述检测单元的检测结果为是时,对所述共享内存中的密钥进行加锁;
[0011]判断单元,用于判断所述密钥更新是否完成;
[0012]解锁单元,用于当所述判断单元的判断结果为是时,对所述共享内存中的密钥进行解锁。
[0013]实施本发明实施例,具有如下有益效果:
[0014]安全代理检测共享内存中是否有密钥更新,若检测到密钥更新,则对共享内存中的密钥进行加锁操作,在加锁期间,安全代理判断密钥更新是否完成,若是,则对共享内存中的密钥进行解锁操作。通过本发明实施例,安全代理只在密钥更新期间对共享内存中的密钥进行加锁操作,密钥更新结束就会进行解锁操作,这样在密钥非更新期间内,读取密钥的操作就可以并行的进行,进而大大提高了密码运算时获取密钥的效率。

【专利附图】

【附图说明】
[0015]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016]图1是本发明实施例提供的一种密钥管理方法的流程示意图;
[0017]图2是本发明实施例提供的另一种密钥管理方法的流程示意图;
[0018]图3是本发明实施例提供的一种密钥管理装置的结构示意图;
[0019]图4是本发明实施例提供的另一种密钥管理装置的结构示意图。

【具体实施方式】
[0020]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0021〕 本发明实施例中,安全代理主要负责密钥管理,如启用、注销、狀密钥协商、检查配置文件、加载持久化文件、创建共享文件和创建子进程等,为管理中心与密码运算中心提供服务。其中,共享文件是指在多处理器的计算机系统中,可以被不同中央处理器?1~00688 0?^访问的大容量内存,在本发明实施例中主要用于存储密钥的相关信息。
[0022]下面将结合图1?图2,对本发明实施例提供的密钥管理方法进行详细的介绍。
[0023]请参阅图1,图1是本发明实施例提供的一种密钥管理方法的流程示意图。如图1所示,该密钥管理方法可以包括以下步骤:
[0024]3101,安全代理检测共享内存中是否有密钥更新,若是,执行步骤3102 ;若否,继续执行步骤3101。
[0025]具体的,安全代理检测共享内存中是否有密钥更新的操作可以周期性地进行,该周期可以为2分钟、3分钟、5分钟或者8分钟等,该周期的具体时间本发明实施例不作限定。密钥更新可以包括但不限于对密钥进行写操作或散列运算,其中,对密钥进行写操作可以包括对密钥进行增量下载、生命周期管理、强制密钥协商、密钥按需下载、分散密钥协商、集群内密钥同步、分散密钥预启用同步或者分散密钥注销等。对密钥进行写操作在安全代理上进行,主要在安全代理生成的廿1狀虹和廿册8进程里进行。对密钥进行散列运算就是指把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值,这样安全代理只需存储散列值就可以确定密钥。
[0026]可选的,密钥更新也可以在安全代理预先设定好的一定时间段内进行,在此期间,安全代理或者安全插件不对密钥进行读取操作。其中,设定密钥更新的时间段可以为凌晨00:00?01:00的一个小时或者凌晨00:00?02:00的两个小时,也可以为凌晨01:00?02:00的一个小时等,该时间段可以根据实际需要来进行设置,以对用户的影响较小为前提,具体时间段本发明实施例不作限定。
[0027]3102,安全代理对共享内存中的密钥进行加锁。
[0028]具体的,共享内存主要负责保存密钥的相关信息,但其中还保存有安全代理的运行状态、配置信息等,所以安全代理的加锁操作只针对共享内存中的密钥,而共享内存中的其他信息不受加锁操作的影响,可以随时被读取。安全代理只要检测到存在对密钥进行写操作或者散列运算时,就立刻执行对共享内存中的密钥加锁的操作。在密钥加锁期间内,只能是安全代理对密钥进行写操作,并且安全代理也只能串行的进行相应的操作。同时,如果存在安全代理或者安全插件对密钥进行读操作请求时,该请求只能在密钥更新完成并对密钥进行解锁之后执行。如果安全代理没有检测到密钥更新,则其继续处于检测密钥更新的状态。
[0029]可选的,由于安全代理可以在预先设定好的时间段内进行密钥更新,所以安全代理对共享内存中的密钥进行加锁的操作可以在该时间段的基础上提前一定的时间。安全代理可以设定2秒或者5秒等,具体时间本发明实施例不作限定。提前进行加锁能够实现对密钥读取的操作影响最小,进而保证了密钥读取的正确性与完整性。
[0030]8103,安全代理判断密钥更新是否完成,若是,执行步骤3104 ;若否,继续执行步骤 3103。
[0031]具体的,安全代理的判断可以周期性的进行,该周期可以为安全代理预先设定的一个时间长度,可以为3分钟、5分钟或者10分钟等,该周期的具体时间长度本发明实施例不作限定。
[0032]8104,安全代理对共享内存中的密钥进行解锁。
[0033]具体的,安全代理当判断密钥更新完成时,就会对共享内存中的密钥执行解锁的操作,解锁之后,安全代理不再对密钥进行写操作,安全代理或者安全插件对共享内存中密钥的读取不再进行加锁,并且读取操作可以同时进行,各操作之间不相互影响。当然,在安全代理判断密钥更新的操作未完成时,会继续对密钥进行加锁直至密钥更新完成为止。
[0034]可选的,由于安全代理可以在预先设定好的时间段内进行密钥更新,所以安全代理对共享内存中的密钥进行解锁的操作也可以在该时间段的基础上延后一定的时间。安全代理可以设定2秒或者5秒等,该解锁操作延后的时间本发明不作具体限定。延长对密钥的加锁时间能够实现对密钥的更新操作影响最小,进而保证了密钥写入的正确性与完整性。
[0035]本发明实施例通过检测有密钥更新时,对共享内存中的密钥采用加锁机制,并在密钥更新结束之后对其进行解锁,大大的提高了在非密钥更新期间安全插件获取密钥的效率,而在密钥更新期间只执行更新操作,减少了各操作之间的冲突。
[0036]请参阅图2,图2是本发明实施例提供的另一种密钥管理方法的流程示意图。如图2所示,该密钥管理方法可以包括以下步骤:
[0037]3201,安全代理连接共享内存。
[0038]具体的,安全代理在启动的时候,首先会连接共享内存,以方便安全代理后续的访问共享内存或者对共享内存中的密钥进行操作。通过连接共享内存节省了安全代理访问共享内存的时间,提高了安全代理的工作效率。
[0039]3202,安全代理查询共享内存是否连接成功,若是,执行步骤3204 ;若否,执行步骤 3203。
[0040]3203,安全代理创建新的共享内存。
[0041]具体的,当安全代理查询到共享内存连接失败时,就需要创建一个新的共享内存为安全代理提供后续服务。
[0042]3204,安全代理创建子进程。
[0043]具体的,在安全代理连接共享内存成功后,会根据需要创建子进程。该子进程可以包括轮询进程廿1狀61'、消息处理进程或者80461:处理进程丨以仙。其中,廿1狀61~进程主要负责自动触发时间,安全代理每次轮询时会根据共享内存中的内容来主动触发各种业务;廿18阴!'进程可执行的业务可以包括:集群内同步签到签退信息、集群内同步分散方式节点间策略、节点状态轮询、增量信息下载、对端公钥证书下载、狀密钥协商、紧急协商处理、种子协商、种子校验、集群内同步种子、分散方式通知对端同步、种子预启用、种子预启用通知、种子启用、种子启用通知、工作密钥更新、工作密钥更新通知、种子过期、种子过期通知、种子注销、种子注销通知、种子删除、共享内存持久化、重新计算轮询时间等。进程主要用于监听消息队列并处理,目前可处理的请求有:强制协商、种子校验、种子下载、按需下载、860叩1版本号或用户名上传等。1:1^118进程主要用于监听80461:并处理。其中,
进程与4册1进程为必须创建的子进程,而进程则需要在安全代理的协商方式为分散方式的情况下才建立。
[0044]8205,安全代理调用廿丨狀一!"进程检测廿丨狀一!"进程、进程或者丨以仙进程中任一进程是否有对密钥进行写操作,若是,执行步骤3206 ;若否,继续执行步骤3205。
[0045]具体的,对密钥进行写操作主要在1:1*18861和1^21118进程里执行,而(1631进程则在有需要的时候才对密钥进行写操作。其中,廿矶8进程对密钥可执行的业务主要有:分散密钥协商、集群内密钥同步、分散密钥预启用同步与分散密钥注销360进程对密钥可执行的业务主要有强制密钥协商与密钥按需下载。检测共享内存中是否有密钥更新的操作是安全代理通过调用1:1*18861进程来执行,主要也是在1:1*18861进程里执行。
[0046]3206,安全代理调用廿匕阴!'进程对共享内存中的密钥进行加锁。
[0047]具体的,共享内存主要负责保存密钥的相关信息,但其中还保存有安全代理的运行状态、配置信息等,所以安全代理的加锁操作只针对共享内存中的密钥,而共享内存中的其他信息不受加锁操作的影响,可以随时被读取。安全代理只要检测到存在对密钥进行写操作或者散列运算时,就立刻执行对共享内存中的密钥加锁的操作。在密钥加锁期间内,只能是安全代理对密钥进行写操作,并且安全代理也只能串行的进行相应的操作。同时,如果存在安全代理或者安全插件对密钥进行读操作请求时,该请求只能在密钥更新完成并对密钥进行解锁之后执行。如果安全代理没有检测到密钥更新,则其继续处于检测密钥更新的状态。
[0048]可选的,由于安全代理可以在预先设定好的时间段内进行密钥更新,所以安全代理对共享内存中的密钥进行加锁的操作可以在该时间段的基础上提前一定的时间。安全代理可以设定2秒或者5秒等,具体时间本发明实施例不作限定。提前进行加锁能够实现对密钥读取的操作影响最小,进而保证了密钥读取的正确性与完整性。
[0049]3207,安全代理判断密钥更新是否完成,若是,执行步骤3208和步骤3209 ;若否,继续执行步骤3207。
[0050]具体的,安全代理的判断可以周期性的进行,该周期可以为安全代理预先设定的一个时间长度,可以为3分钟、5分钟或者10分钟等,该周期的具体时间长度本发明实施例不作限定。
[0051]3208,安全代理调用廿1狀61~进程向管理中心发送密钥更新的数据。
[0052]具体的,安全代理向管理中心发送密钥更新的数据具体通过调用廿1狀进程进行,其目的是:将密钥更新之后的数据在管理中心备份;向管理中心通知有密钥更新的操作并且已经完成。
[0053]8209,安全代理调用廿丨狀虹进程对共享内存中的密钥进行解锁。
[0054]具体的,安全代理当判断密钥更新过程完成之后,就会对共享内存中的密钥执行解锁的操作,解锁之后,安全代理不再对密钥进行写操作,安全代理或者安全插件对共享内存中密钥的读取不再进行加锁,并且读取操作可以同时进行,各操作之间不相互影响。当然,在安全代理判断密钥更新的操作未完成时,会继续对密钥进行加锁直至密钥更新完成为止。
[0055]可选的,由于安全代理可以在预先设定好的时间段内进行密钥更新,所以安全代理对共享内存中的密钥进行解锁的操作也可以在该时间段的基础上延后一定的时间。安全代理可以设定2秒或者5秒等,该解锁操作延后的时间本发明不作具体限定。延长对密钥的加锁时间能够实现对密钥的更新操作影响最小,进而保证了密钥写入的正确性与完整性。
[0056]8210,安全代理检测子进程是否意外退出,若是,则触发执行步骤3204 ;若否,继续执行步骤3210。
[0057]具体的,在安全代理的整个工作时间内,对子进程的检测是创建好子进程之后就一直进行的,本步骤可以在步骤3204之后执行,也可以在3204以后的任意一个步骤之后执行,其具体位置本发明实施例不作限定。在子进程意外退出时,安全代理会立刻触发创建新的子进程,以重新执行步骤3204以后的步骤,从而不影响安全代理的工作。子进程意外退出有多种情况,例如,当某一个子进程在某一个时间点承载的业务量较大,该子进程因无法再如此高负荷下继续工作而退出;又如,安全代理的某个部件出现故障,而该部件是决定其中的一个子进程是否正常工作的关键,因此当该部件出现故障时会立刻导致其对应的子进程退出,当然,即使该部件为决定其中的一个子进程是否正常工作的关键,安全代理会立刻调用备用部件并及时创建新的子进程以继续工作。
[0058]下面将结合图3?图4,对本发明实施例提供的密钥管理装置进行详细的介绍。
[0059]请参阅图3,图3是本发明实施例提供的一种密钥管理装置的结构示意图。如图3所示,该密钥管理装置可以包括以下单元:
[0060]检测单元301,用于检测共享内存中是否有密钥更新,该密钥更新包括对密钥进行写操作或散列运算。
[0061]具体的,检测单元301检测共享内存中是否有密钥更新的操作可以周期性地进行,该周期可以为2分钟、3分钟、5分钟或者8分钟等,该周期的具体时间本发明实施例不作限定。安全代理对密钥进行写操作可以包括但不限于对密钥进行增量下载、生命周期管理、强制密钥协商、密钥按需下载、分散密钥协商、集群内密钥同步、分散密钥预启用同步或者分散密钥注销等。对密钥进行写操作在安全代理上进行,主要在安全代理生成的廿1狀61和廿矶8进程里进行。对密钥进行散列运算就是指把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值,这样安全代理只需存储散列值就可以确定密钥。
[0062]可选的,密钥更新也可以在安全代理预先设定好的一定时间段内进行,在此期间,安全代理或者安全插件不对密钥进行读取操作。其中,设定密钥更新的时间段可以为凌晨00:00?01:00的一个小时或者凌晨00:00?02:00的两个小时,也可以为凌晨01:00?02:00的一个小时等,该时间段可以根据需要来进行设置,以对用户的影响较小为前提,具体时间段本发明实施例不作限定。
[0063]加锁单元302,用于当检测单元301的检测结果为是时,对共享内存中的密钥进行加锁。
[0064]具体的,共享内存的主要工作是保存密钥的信息,但其中还保存有安全代理的运行状态、配置信息等,所以加锁单元302的加锁操作只针对共享内存中的密钥,而共享内存中的其他信息不受加锁操作的影响,可以随时被读取。检测单元301只要检测到存在对密钥进行写操作或者散列运算时,加锁单元30 2就立刻执行对共享内存中的密钥加锁的操作。在密钥加锁期间内,只能是安全代理对密钥进行写操作,并且安全代理也只能串行的进行相应的操作。同时,如果存在安全代理或者安全插件对密钥进行读操作请求时,该请求只能在密钥更新完成并对密钥进行解锁之后执行。如果检测单元301没有检测到密钥更新,则其继续处于检测密钥更新的状态。
[0065]可选的,由于安全代理可以在预先设定好的时间段内进行密钥更新,所以加锁单元302对共享内存中的密钥进行加锁的操作可以在该时间段的基础上提前一定的时间。安全代理可以设定2秒或者5秒等,具体时间本发明实施例不作限定。提前进行加锁能够实现对密钥读取的操作影响最小,进而保证了密钥读取的正确性与完整性。
[0066]判断单元303,用于判断密钥更新是否完成。
[0067]具体的,判断单元303的判断可以周期性的进行,该周期可以为安全代理预先设定的一个时间长度,可以为3分钟、5分钟或者10分钟等,该周期的具体时间长度本发明实施例不作限定。
[0068]解锁单元304,用于当判断单元303的判断结果为是时,对共享内存中的密钥进行解锁。
[0069]具体的,判断单元303当判断密钥更新完成时,解锁单元304就会对共享内存中的密钥执行解锁的操作,解锁之后,安全代理不再对密钥进行写操作,安全代理或者安全插件对共享内存中密钥的读取不再进行加锁,并且读取操作可以同时进行,各操作之间不相互影响。当然,在判断单元303判断密钥更新的操作未完成时,加锁单元302会继续对密钥进行加锁直至密钥更新完成为止。
[0070]可选的,由于安全代理可以在预先设定好的时间段内进行密钥更新,所以解锁单元304对共享内存中的密钥进行解锁的操作也可以在该时间段的基础上延后一定的时间。安全代理可以设定2秒或者5秒等,该解锁操作延后的时间本发明不作具体限定。延长对密钥的加锁时间能够实现对密钥的更新操作影响最小,进而保证了密钥写入的正确性与完整性。
[0071]本发明实施例通过检测有密钥更新时,对共享内存中的密钥采用加锁机制,并在密钥更新结束之后对其进行解锁,大大的提高了在非密钥更新期间安全插件获取密钥的效率,而在密钥更新期间只执行更新操作,减少了各操作之间的冲突。
[0072]请参阅图4,图4是本发明实施例提供的另一种密钥管理装置的结构示意图。如图4所示,该密钥管理装置可以包括以下单元:
[0073]连接单元401,用于连接共享内存。
[0074]具体的,安全代理在启动的时候,首先连接单元401连接共享内存,以方便安全代理后续的访问共享内存或者对共享内存中的密钥进行操作。通过连接共享内存节省了安全代理访问共享内存的时间,提高了安全代理的工作效率。
[0075]查询单元402,用于查询共享内存是否连接成功。
[0076]新建单元403,用于当查询单元402的查询结果为否时,创建新的共享内存。
[0077]具体的,当查询单元402查询连接共享内存失败时,就需要新建单元403创建一个新的共享内存为安全代理提供后续服务。
[0078]检测单元404,用于创建子进程,并调用廿阴!'检测共享内存中是否有密钥更新。
[0079]具体的,子进程可以包括轮询进程廿1狀61'、消息处理进程4册1或者804的处理进程1:1^118。进程主要负责自动触发时间,安全代理每次轮询时会根据共享内存中的内容来主动触发各种业务;廿1狀61~进程可执行的业务可以包括:集群内同步签到签退信息、集群内同步分散方式节点间策略、节点状态轮询、增量信息下载、对端公钥证书下载、八X密钥协商、紧急协商处理、种子协商、种子校验、集群内同步种子、分散方式通知对端同步、种子预启用、种子预启用通知、种子启用、种子启用通知、工作密钥更新、工作密钥更新通知、种子过期、种子过期通知、种子注销、种子注销通知、种子删除、共享内存持久化、重新计算轮询时间等。如31进程主要用于监听消息队列并处理,目前可处理的请求有:强制协商、种子校验、种子下载、按需下载、此⑶#版本号或用户名上传等。廿册8进程主要用于监听80461:并处理。其中,进程与进程的为必须创建的子进程,而丨以仙进程则需要在安全代理的协商方式为分散方式的情况下才建立。
[0080]检测单元404调用廿1狀61'检测共享内存中是否有密钥更新的方式有:调用进程检测进程、^6^1进程或者进程中任一进程是否有对密钥进行写操作。其中,对密钥进行写操作主要在廿18861和进程里执行,而(1631进程则在有需要的时候才对密钥进行写操作。其中,廿矶8进程对密钥可请求的业务主要有:分散密钥协商、集群内密钥同步、分散密钥预启用同步与分散密钥注销360进程对密钥可请求的业务主要有强制密钥协商与密钥按需下载。而检测共享内存中是否有密钥更新的操作是检测单元404通过调用1:1*1886^进程来执行,主要也是在1:1*1886^进程里执行。
[0081]加锁单元405,用于当检测单元404的检测结果为是时,调用廿18阴1'进程对共享内存中的密钥进行加锁。
[0082]具体的,共享内存的主要工作是保存密钥的信息,但其中还保存有安全代理的运行状态、配置信息等,所以加锁单元405的加锁操作只针对共享内存中的密钥,而共享内存中的其他信息不受加锁操作的影响,可以随时被读取。检测单元404只要检测到存在对密钥进行写操作或者散列运算时,加锁单元40 5就立刻执行对共享内存中的密钥加锁的操作。在密钥加锁期间内,只能是安全代理对密钥进行写操作,并且安全代理也只能串行的进行相应的操作。同时,如果存在安全代理或者安全插件对密钥进行读操作请求时,该请求只能在密钥更新完成并对密钥进行解锁之后执行。如果检测单元404没有检测到密钥更新,则其继续处于检测密钥更新的状态。
[0083]可选的,由于安全代理可以在预先设定好的时间段内进行密钥更新,所以加锁单元405对共享内存中的密钥进行加锁的操作可以在该时间段的基础上提前一定的时间。安全代理可以设定2秒或者5秒等,具体时间本发明实施例不作限定。提前进行加锁能够实现对密钥读取的操作影响最小,进而保证了密钥读取的正确性与完整性。
[0084]判断单元406,用于判断密钥更新是否完成。
[0085]具体的,判断单元406的判断可以周期性的进行,该周期可以为安全代理预先设定的一个时间长度,可以为3分钟、5分钟或者10分钟等,该周期的具体时间长度本发明实施例不作限定。
[0086]发送单元407,用于当判断单元406的判断结果为是时,向管理中心发送密钥更新的数据。
[0087]具体的,发送单元407向管理中心发送密钥更新的数据具体通过调用廿1狀61'进程进行,其目的是:将密钥更新之后的数据在管理中心备份;向管理中心通知有密钥更新的操作并且已经完成。
[0088]解锁单元408,用于当判断单元406的判断结果为是时,对共享内存中的密钥进行解锁。
[0089]具体的,判断单元406当判断密钥更新完成时,解锁单元408就会对共享内存中的密钥执行解锁的操作,解锁之后,安全代理不再对密钥进行写操作,安全代理或者安全插件对共享内存中密钥的读取不再进行加锁,并且读取操作可以同时进行,各操作之间不相互影响。当然,在判断单元406判断密钥更新的操作未完成时,加锁单元405会继续对密钥进行加锁直至密钥更新完成为止。
[0090]可选的,由于安全代理可以在预先设定好的时间段内进行密钥更新,所以解锁单元408对共享内存中的密钥进行解锁的操作也可以在该时间段的基础上延后一定的时间。安全代理可以设定2秒或者5秒等,该解锁操作延后的时间本发明不作具体限定。延长对密钥的加锁时间能够实现对密钥的更新操作影响最小,进而保证了密钥写入的正确性与完整性。
[0091]触发单元409,用于检测子进程是否意外退出,若是,触发检测单元重新创建子进程;若否,继续检测子进程是否意外退出。
[0092]具体的,触发单元409对子进程的检测是创建好子进程之后就一直进行的,当触发单元409检测到子进程意外退出,则立刻触发检测单元404创建新的子进程,检测单元404以后的单元重新进行工作,从而不影响安全代理的工作。子进程意外退出有多种情况,例如,当某一个子进程在某一个时间点承载的业务量较大,该子进程因无法再如此高负荷下继续工作而退出;又如,安全代理的某个部件出现故障,而该部件是决定其中的一个子进程是否正常工作的关键,因此当该部件出现故障时会立刻导致其对应的子进程退出,当然,即使该部件为决定其中的一个子进程是否正常工作的关键,安全代理会立刻调用备用部件并及时创建新的子进程以继续工作。
[0093]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(0651(1-01117 1611101*7,^01)或随机存储记忆体^00688161110等。
[0094]以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【权利要求】
1.一种密钥管理方法,其特征在于,包括: 安全代理检测共享内存中是否有密钥更新,所述密钥更新包括对密钥进行写操作或散列运算; 所述安全代理若检测到所述密钥更新,则对所述共享内存中的密钥进行加锁; 所述安全代理判断所述密钥更新是否完成,若是,则对所述共享内存中的密钥进行解锁。
2.根据权利要求1所述的方法,其特征在于,所述安全代理检测共享内存中是否有密钥更新之前,还包括: 安全代理连接共享内存,并查询所述共享内存是否连接成功; 所述安全代理若查询到所述共享内存连接成功,则执行所述的检测共享内存中是否有密钥更新的步骤。
3.根据权利要求2所述的方法,其特征在于,还包括: 所述安全代理若查询到所述共享内存连接失败,则创建新的共享内存; 所述安全代理在所述的创建新的共享内存之后,执行所述的检测共享内存中是否有密钥更新的步骤。
4.根据权利要求1?3任一项所述的方法,其特征在于,所述安全代理检测共享内存中是否有密钥更新包括: 安全代理创建子进程,所述子进程包括轮询进程trigger ; 所述安全代理调用所述trigger检测共享内存中是否有密钥更新。
5.根据权利要求4所述的方法,其特征在于,还包括: 所述安全代理检测所述子进程是否意外退出,若是,则触发重新创建所述子进程。
6.根据权利要求5所述的方法,其特征在于,还包括: 所述安全代理若判断到所述密钥更新完成,则向管理中心发送所述密钥更新的数据。
7.根据权利要求6所述的方法,其特征在于,所述安全代理若判断到所述密钥更新完成,则向管理中心发送所述密钥更新的数据包括: 所述安全代理若判断到所述密钥更新完成,则调用所述trigger向管理中心发送所述密钥更新的数据。
8.根据权利要求7所述的方法,其特征在于,所述子进程还包括: 消息处理进程deal,用于对所述密钥进行写操作; socket处理进程trans,用于对所述密钥进行写操作; 其中,所述安全代理若检测到所述密钥更新,则对所述共享内存中的密钥进行加锁包括: 所述安全代理若检测到所述trigger、deal或trans任一进程对所述密钥进行写操作,则调用所述trigger对所述共享内存中的密钥进行加锁。
9.一种密钥管理装置,其特征在于,包括: 检测单元,用于检测共享内存中是否有密钥更新,所述密钥更新包括对密钥进行写操作或散列运算; 加锁单元,用于当所述检测单元的检测结果为是时,对所述共享内存中的密钥进行加锁; 判断单元,用于判断所述密钥更新是否完成; 解锁单元,用于当所述判断单元的判断结果为是时,对所述共享内存中的密钥进行解锁。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括: 连接单元,用于连接共享内存; 查询单元,用于查询所述共享内存是否连接成功; 其中,所述检测单元具体用于当所述查询单元的查询结果为是时,检测共享内存中是否有密钥更新。
11.根据权利要求10所述的方法,其特征在于,所述装置还包括: 新建单元,用于当所述查询单元的查询结果为否时,创建新的共享内存; 其中,所述检测单元具体用于在所述新建单元创建新的共享内存之后,检测共享内存中是否有密钥更新。
12.根据权利要求9?11任一项所述的装置,其特征在于,所述检测单元检测共享内存中是否有密钥更新的具体方式为: 创建子进程,所述子进程包括轮询进程trigger ; 调用所述trigger检测共享内存中是否有密钥更新。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括: 触发单元,用于检测所述子进程是否意外退出,若是,则触发所述检测单元重新创建所述子进程。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括: 发送单元,用于当所述判断单元的判断结果为是时,向管理中心发送所述密钥更新的数据。
15.根据权利要求14所述的装置,其特征在于,所述发送单元具体用于当所述判断单元的判断结果为是时,调用所述trigger向管理中心发送所述密钥更新的数据。
16.根据权利要求14所述的装置,其特征在于,所述子进程还包括: 消息处理进程deal,用于对所述密钥进行写操作; socket处理进程trans,用于对所述密钥进行写操作; 其中,所述加锁单元具体用于当所述检测单元检测到所述trigger、deal或trans任一进程对所述密钥进行写操作时,调用所述trigger对所述共享内存中的密钥进行加锁。
【文档编号】H04L29/06GK104363209SQ201410594438
【公开日】2015年2月18日 申请日期:2014年10月29日 优先权日:2014年10月29日
【发明者】李爱宏, 郭汉利, 陈铭新, 张晓东, 李晓敦, 燕召将, 闫立志, 陈德锋, 孙显帅, 林国养 申请人:中国建设银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1