《一种密钥管理方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种密钥管理方法及装置.pdf(16页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104363209 A(43)申请公布日 2015.02.18CN104363209A(21)申请号 201410594438.7(22)申请日 2014.10.29H04L 29/06(2006.01)H04L 9/08(2006.01)(71)申请人中国建设银行股份有限公司地址 100032 北京市西城区金融大街25号(72)发明人李爱宏 郭汉利 陈铭新 张晓东李晓敦 燕召将 闫立志 陈德锋孙显帅 林国养(74)专利代理机构广州三环专利代理有限公司 44202代理人郝传鑫 熊永强(54) 发明名称一种密钥管理方法及装置(57) 摘要本发明实施例涉及信息安全领域,公。
2、开了一种密钥管理方法及装置,该方法包括:安全代理检测共享内存中是否有密钥更新,所述密钥更新包括对密钥进行写操作或散列运算;所述安全代理若检测到所述密钥更新,则对所述共享内存中的密钥进行加锁;所述安全代理判断所述密钥更新是否完成,若是,则对所述共享内存中的密钥进行解锁。本发明实施例只在密钥更新期间对共享内存中的密钥进行加锁操作,提高了密码运算时获取密钥的效率。(51)Int.Cl.权利要求书2页 说明书9页 附图4页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书9页 附图4页(10)申请公布号 CN 104363209 ACN 104363209 A1/2页21.。
3、一种密钥管理方法,其特征在于,包括:安全代理检测共享内存中是否有密钥更新,所述密钥更新包括对密钥进行写操作或散列运算;所述安全代理若检测到所述密钥更新,则对所述共享内存中的密钥进行加锁;所述安全代理判断所述密钥更新是否完成,若是,则对所述共享内存中的密钥进行解锁。2.根据权利要求1所述的方法,其特征在于,所述安全代理检测共享内存中是否有密钥更新之前,还包括:安全代理连接共享内存,并查询所述共享内存是否连接成功;所述安全代理若查询到所述共享内存连接成功,则执行所述的检测共享内存中是否有密钥更新的步骤。3.根据权利要求2所述的方法,其特征在于,还包括:所述安全代理若查询到所述共享内存连接失败,则创。
4、建新的共享内存;所述安全代理在所述的创建新的共享内存之后,执行所述的检测共享内存中是否有密钥更新的步骤。4.根据权利要求13任一项所述的方法,其特征在于,所述安全代理检测共享内存中是否有密钥更新包括:安全代理创建子进程,所述子进程包括轮询进程trigger;所述安全代理调用所述trigger检测共享内存中是否有密钥更新。5.根据权利要求4所述的方法,其特征在于,还包括:所述安全代理检测所述子进程是否意外退出,若是,则触发重新创建所述子进程。6.根据权利要求5所述的方法,其特征在于,还包括:所述安全代理若判断到所述密钥更新完成,则向管理中心发送所述密钥更新的数据。7.根据权利要求6所述的方法,其。
5、特征在于,所述安全代理若判断到所述密钥更新完成,则向管理中心发送所述密钥更新的数据包括:所述安全代理若判断到所述密钥更新完成,则调用所述trigger向管理中心发送所述密钥更新的数据。8.根据权利要求7所述的方法,其特征在于,所述子进程还包括:消息处理进程deal,用于对所述密钥进行写操作;socket处理进程trans,用于对所述密钥进行写操作;其中,所述安全代理若检测到所述密钥更新,则对所述共享内存中的密钥进行加锁包括:所述安全代理若检测到所述trigger、deal或trans任一进程对所述密钥进行写操作,则调用所述trigger对所述共享内存中的密钥进行加锁。9.一种密钥管理装置,其特。
6、征在于,包括:检测单元,用于检测共享内存中是否有密钥更新,所述密钥更新包括对密钥进行写操作或散列运算;加锁单元,用于当所述检测单元的检测结果为是时,对所述共享内存中的密钥进行加锁;权 利 要 求 书CN 104363209 A2/2页3判断单元,用于判断所述密钥更新是否完成;解锁单元,用于当所述判断单元的判断结果为是时,对所述共享内存中的密钥进行解锁。10.根据权利要求9所述的装置,其特征在于,所述装置还包括:连接单元,用于连接共享内存;查询单元,用于查询所述共享内存是否连接成功;其中,所述检测单元具体用于当所述查询单元的查询结果为是时,检测共享内存中是否有密钥更新。11.根据权利要求10所述。
7、的方法,其特征在于,所述装置还包括:新建单元,用于当所述查询单元的查询结果为否时,创建新的共享内存;其中,所述检测单元具体用于在所述新建单元创建新的共享内存之后,检测共享内存中是否有密钥更新。12.根据权利要求911任一项所述的装置,其特征在于,所述检测单元检测共享内存中是否有密钥更新的具体方式为:创建子进程,所述子进程包括轮询进程trigger;调用所述trigger检测共享内存中是否有密钥更新。13.根据权利要求12所述的装置,其特征在于,所述装置还包括:触发单元,用于检测所述子进程是否意外退出,若是,则触发所述检测单元重新创建所述子进程。14.根据权利要求13所述的装置,其特征在于,所述。
8、装置还包括:发送单元,用于当所述判断单元的判断结果为是时,向管理中心发送所述密钥更新的数据。15.根据权利要求14所述的装置,其特征在于,所述发送单元具体用于当所述判断单元的判断结果为是时,调用所述trigger向管理中心发送所述密钥更新的数据。16.根据权利要求14所述的装置,其特征在于,所述子进程还包括:消息处理进程deal,用于对所述密钥进行写操作;socket处理进程trans,用于对所述密钥进行写操作;其中,所述加锁单元具体用于当所述检测单元检测到所述trigger、deal或trans任一进程对所述密钥进行写操作时,调用所述trigger对所述共享内存中的密钥进行加锁。权 利 要 。
9、求 书CN 104363209 A1/9页4一种密钥管理方法及装置技术领域0001 本发明涉及信息安全领域,具体涉及一种密钥管理方法及装置。背景技术0002 安全代理是一种提供密钥管理的安全中间件,能够对共享内存中的密钥进行读写操作。安全插件是一种提供密码运算服务的安全中间件,能在提供密码运算服务时对共享内存中的密钥进行读取操作。现有密钥管理方法中,安全代理与安全插件对密钥的操作很容易产生冲突,例如,安全代理在进行密钥更新并还未完成更新时,安全插件执行获取密钥以提供密码运算服务的操作,此时获取的密钥为更新之前的密钥,而由于各设备的交互具有时延性,可能会出现在执行密码运算时密钥已经更新完成,因此。
10、,安全代理会对共享内存进行长期加锁。在共享内存被加锁的期间内,即密钥的整个生命周期内,安全代理对密钥进行读写操作和安全插件在提供密码运算服务时获取密钥的操作都只能串行的进行,但这样会降低密码运算时获取密钥的效率。发明内容0003 本发明实施例提供一种密钥管理方法及装置,能够大大提高密码运算时获取密钥的效率。0004 本发明第一方面提供了一种密钥管理方法,所述方法包括:0005 安全代理检测共享内存中是否有密钥更新,所述密钥更新包括对密钥进行写操作或散列运算;0006 所述安全代理若检测到所述密钥更新,则对所述共享内存中的密钥进行加锁;0007 所述安全代理判断所述密钥更新是否完成,若是,则对所。
11、述共享内存中的密钥进行解锁。0008 相应的,本发明第二方面提供了一种密钥管理装置,所述装置包括:0009 检测单元,用于检测共享内存中是否有密钥更新,所述密钥更新包括对密钥进行写操作或散列运算;0010 加锁单元,用于当所述检测单元的检测结果为是时,对所述共享内存中的密钥进行加锁;0011 判断单元,用于判断所述密钥更新是否完成;0012 解锁单元,用于当所述判断单元的判断结果为是时,对所述共享内存中的密钥进行解锁。0013 实施本发明实施例,具有如下有益效果:0014 安全代理检测共享内存中是否有密钥更新,若检测到密钥更新,则对共享内存中的密钥进行加锁操作,在加锁期间,安全代理判断密钥更新。
12、是否完成,若是,则对共享内存中的密钥进行解锁操作。通过本发明实施例,安全代理只在密钥更新期间对共享内存中的密钥进行加锁操作,密钥更新结束就会进行解锁操作,这样在密钥非更新期间内,读取密钥说 明 书CN 104363209 A2/9页5的操作就可以并行的进行,进而大大提高了密码运算时获取密钥的效率。附图说明0015 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。0016 图1是本发明实施例。
13、提供的一种密钥管理方法的流程示意图;0017 图2是本发明实施例提供的另一种密钥管理方法的流程示意图;0018 图3是本发明实施例提供的一种密钥管理装置的结构示意图;0019 图4是本发明实施例提供的另一种密钥管理装置的结构示意图。具体实施方式0020 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0021 本发明实施例中,安全代理主要负责密钥管理,如启用、注销、AK密钥协商、检查配。
14、置文件、加载持久化文件、创建共享文件和创建子进程等,为管理中心与密码运算中心提供服务。其中,共享文件是指在多处理器的计算机系统中,可以被不同中央处理器(Central Process Unit,CPU)访问的大容量内存,在本发明实施例中主要用于存储密钥的相关信息。0022 下面将结合图1图2,对本发明实施例提供的密钥管理方法进行详细的介绍。0023 请参阅图1,图1是本发明实施例提供的一种密钥管理方法的流程示意图。如图1所示,该密钥管理方法可以包括以下步骤:0024 S101,安全代理检测共享内存中是否有密钥更新,若是,执行步骤S102;若否,继续执行步骤S101。0025 具体的,安全代理检。
15、测共享内存中是否有密钥更新的操作可以周期性地进行,该周期可以为2分钟、3分钟、5分钟或者8分钟等,该周期的具体时间本发明实施例不作限定。密钥更新可以包括但不限于对密钥进行写操作或散列运算,其中,对密钥进行写操作可以包括对密钥进行增量下载、生命周期管理、强制密钥协商、密钥按需下载、分散密钥协商、集群内密钥同步、分散密钥预启用同步或者分散密钥注销等。对密钥进行写操作在安全代理上进行,主要在安全代理生成的trigger和trans进程里进行。对密钥进行散列运算就是指把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值,这样安全代理只需存储散列值就可以确定密钥。0026 可选的,密钥更。
16、新也可以在安全代理预先设定好的一定时间段内进行,在此期间,安全代理或者安全插件不对密钥进行读取操作。其中,设定密钥更新的时间段可以为凌晨00:0001:00的一个小时或者凌晨00:0002:00的两个小时,也可以为凌晨01:0002:00的一个小时等,该时间段可以根据实际需要来进行设置,以对用户的影响较小为前提,具体时间段本发明实施例不作限定。说 明 书CN 104363209 A3/9页60027 S102,安全代理对共享内存中的密钥进行加锁。0028 具体的,共享内存主要负责保存密钥的相关信息,但其中还保存有安全代理的运行状态、配置信息等,所以安全代理的加锁操作只针对共享内存中的密钥,而共。
17、享内存中的其他信息不受加锁操作的影响,可以随时被读取。安全代理只要检测到存在对密钥进行写操作或者散列运算时,就立刻执行对共享内存中的密钥加锁的操作。在密钥加锁期间内,只能是安全代理对密钥进行写操作,并且安全代理也只能串行的进行相应的操作。同时,如果存在安全代理或者安全插件对密钥进行读操作请求时,该请求只能在密钥更新完成并对密钥进行解锁之后执行。如果安全代理没有检测到密钥更新,则其继续处于检测密钥更新的状态。0029 可选的,由于安全代理可以在预先设定好的时间段内进行密钥更新,所以安全代理对共享内存中的密钥进行加锁的操作可以在该时间段的基础上提前一定的时间。安全代理可以设定2秒或者5秒等,具体时。
18、间本发明实施例不作限定。提前进行加锁能够实现对密钥读取的操作影响最小,进而保证了密钥读取的正确性与完整性。0030 S103,安全代理判断密钥更新是否完成,若是,执行步骤S104;若否,继续执行步骤S103。0031 具体的,安全代理的判断可以周期性的进行,该周期可以为安全代理预先设定的一个时间长度,可以为3分钟、5分钟或者10分钟等,该周期的具体时间长度本发明实施例不作限定。0032 S104,安全代理对共享内存中的密钥进行解锁。0033 具体的,安全代理当判断密钥更新完成时,就会对共享内存中的密钥执行解锁的操作,解锁之后,安全代理不再对密钥进行写操作,安全代理或者安全插件对共享内存中密钥的。
19、读取不再进行加锁,并且读取操作可以同时进行,各操作之间不相互影响。当然,在安全代理判断密钥更新的操作未完成时,会继续对密钥进行加锁直至密钥更新完成为止。0034 可选的,由于安全代理可以在预先设定好的时间段内进行密钥更新,所以安全代理对共享内存中的密钥进行解锁的操作也可以在该时间段的基础上延后一定的时间。安全代理可以设定2秒或者5秒等,该解锁操作延后的时间本发明不作具体限定。延长对密钥的加锁时间能够实现对密钥的更新操作影响最小,进而保证了密钥写入的正确性与完整性。0035 本发明实施例通过检测有密钥更新时,对共享内存中的密钥采用加锁机制,并在密钥更新结束之后对其进行解锁,大大的提高了在非密钥更。
20、新期间安全插件获取密钥的效率,而在密钥更新期间只执行更新操作,减少了各操作之间的冲突。0036 请参阅图2,图2是本发明实施例提供的另一种密钥管理方法的流程示意图。如图2所示,该密钥管理方法可以包括以下步骤:0037 S201,安全代理连接共享内存。0038 具体的,安全代理在启动的时候,首先会连接共享内存,以方便安全代理后续的访问共享内存或者对共享内存中的密钥进行操作。通过连接共享内存节省了安全代理访问共享内存的时间,提高了安全代理的工作效率。0039 S202,安全代理查询共享内存是否连接成功,若是,执行步骤S204;若否,执行步骤S203。0040 S203,安全代理创建新的共享内存。说。
21、 明 书CN 104363209 A4/9页70041 具体的,当安全代理查询到共享内存连接失败时,就需要创建一个新的共享内存为安全代理提供后续服务。0042 S204,安全代理创建子进程。0043 具体的,在安全代理连接共享内存成功后,会根据需要创建子进程。该子进程可以包括轮询进程trigger、消息处理进程deal或者socket处理进程trans。其中,trigger进程主要负责自动触发时间,安全代理每次轮询时会根据共享内存中的内容来主动触发各种业务;trigger进程可执行的业务可以包括:集群内同步签到签退信息、集群内同步分散方式节点间策略、节点状态轮询、增量信息下载、对端公钥证书下载。
22、、AK密钥协商、紧急协商处理、种子协商、种子校验、集群内同步种子、分散方式通知对端同步、种子预启用、种子预启用通知、种子启用、种子启用通知、工作密钥更新、工作密钥更新通知、种子过期、种子过期通知、种子注销、种子注销通知、种子删除、共享内存持久化、重新计算轮询时间等。deal进程主要用于监听消息队列并处理,目前可处理的请求有:强制协商、种子校验、种子下载、按需下载、secapi版本号或用户名上传等。trans进程主要用于监听socket并处理。其中,trigger进程与deal进程为必须创建的子进程,而trans进程则需要在安全代理的协商方式为分散方式的情况下才建立。0044 S205,安全代理。
23、调用trigger进程检测trigger进程、deal进程或者trans进程中任一进程是否有对密钥进行写操作,若是,执行步骤S206;若否,继续执行步骤S205。0045 具体的,对密钥进行写操作主要在trigger和trans进程里执行,而deal进程则在有需要的时候才对密钥进行写操作。其中,trans进程对密钥可执行的业务主要有:分散密钥协商、集群内密钥同步、分散密钥预启用同步与分散密钥注销;deal进程对密钥可执行的业务主要有强制密钥协商与密钥按需下载。检测共享内存中是否有密钥更新的操作是安全代理通过调用trigger进程来执行,主要也是在trigger进程里执行。0046 S206,安。
24、全代理调用trigger进程对共享内存中的密钥进行加锁。0047 具体的,共享内存主要负责保存密钥的相关信息,但其中还保存有安全代理的运行状态、配置信息等,所以安全代理的加锁操作只针对共享内存中的密钥,而共享内存中的其他信息不受加锁操作的影响,可以随时被读取。安全代理只要检测到存在对密钥进行写操作或者散列运算时,就立刻执行对共享内存中的密钥加锁的操作。在密钥加锁期间内,只能是安全代理对密钥进行写操作,并且安全代理也只能串行的进行相应的操作。同时,如果存在安全代理或者安全插件对密钥进行读操作请求时,该请求只能在密钥更新完成并对密钥进行解锁之后执行。如果安全代理没有检测到密钥更新,则其继续处于检测。
25、密钥更新的状态。0048 可选的,由于安全代理可以在预先设定好的时间段内进行密钥更新,所以安全代理对共享内存中的密钥进行加锁的操作可以在该时间段的基础上提前一定的时间。安全代理可以设定2秒或者5秒等,具体时间本发明实施例不作限定。提前进行加锁能够实现对密钥读取的操作影响最小,进而保证了密钥读取的正确性与完整性。0049 S207,安全代理判断密钥更新是否完成,若是,执行步骤S208和步骤S209;若否,继续执行步骤S207。0050 具体的,安全代理的判断可以周期性的进行,该周期可以为安全代理预先设定的一个时间长度,可以为3分钟、5分钟或者10分钟等,该周期的具体时间长度本发明实施例说 明 书。
26、CN 104363209 A5/9页8不作限定。0051 S208,安全代理调用trigger进程向管理中心发送密钥更新的数据。0052 具体的,安全代理向管理中心发送密钥更新的数据具体通过调用trigger进程进行,其目的是:将密钥更新之后的数据在管理中心备份;向管理中心通知有密钥更新的操作并且已经完成。0053 S209,安全代理调用trigger进程对共享内存中的密钥进行解锁。0054 具体的,安全代理当判断密钥更新过程完成之后,就会对共享内存中的密钥执行解锁的操作,解锁之后,安全代理不再对密钥进行写操作,安全代理或者安全插件对共享内存中密钥的读取不再进行加锁,并且读取操作可以同时进行,。
27、各操作之间不相互影响。当然,在安全代理判断密钥更新的操作未完成时,会继续对密钥进行加锁直至密钥更新完成为止。0055 可选的,由于安全代理可以在预先设定好的时间段内进行密钥更新,所以安全代理对共享内存中的密钥进行解锁的操作也可以在该时间段的基础上延后一定的时间。安全代理可以设定2秒或者5秒等,该解锁操作延后的时间本发明不作具体限定。延长对密钥的加锁时间能够实现对密钥的更新操作影响最小,进而保证了密钥写入的正确性与完整性。0056 S210,安全代理检测子进程是否意外退出,若是,则触发执行步骤S204;若否,继续执行步骤S210。0057 具体的,在安全代理的整个工作时间内,对子进程的检测是创建。
28、好子进程之后就一直进行的,本步骤可以在步骤S204之后执行,也可以在S204以后的任意一个步骤之后执行,其具体位置本发明实施例不作限定。在子进程意外退出时,安全代理会立刻触发创建新的子进程,以重新执行步骤S204以后的步骤,从而不影响安全代理的工作。子进程意外退出有多种情况,例如,当某一个子进程在某一个时间点承载的业务量较大,该子进程因无法再如此高负荷下继续工作而退出;又如,安全代理的某个部件出现故障,而该部件是决定其中的一个子进程是否正常工作的关键,因此当该部件出现故障时会立刻导致其对应的子进程退出,当然,即使该部件为决定其中的一个子进程是否正常工作的关键,安全代理会立刻调用备用部件并及时创。
29、建新的子进程以继续工作。0058 下面将结合图3图4,对本发明实施例提供的密钥管理装置进行详细的介绍。0059 请参阅图3,图3是本发明实施例提供的一种密钥管理装置的结构示意图。如图3所示,该密钥管理装置可以包括以下单元:0060 检测单元301,用于检测共享内存中是否有密钥更新,该密钥更新包括对密钥进行写操作或散列运算。0061 具体的,检测单元301检测共享内存中是否有密钥更新的操作可以周期性地进行,该周期可以为2分钟、3分钟、5分钟或者8分钟等,该周期的具体时间本发明实施例不作限定。安全代理对密钥进行写操作可以包括但不限于对密钥进行增量下载、生命周期管理、强制密钥协商、密钥按需下载、分散。
30、密钥协商、集群内密钥同步、分散密钥预启用同步或者分散密钥注销等。对密钥进行写操作在安全代理上进行,主要在安全代理生成的trigger和trans进程里进行。对密钥进行散列运算就是指把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值,这样安全代理只需存储散列值就可以确定密钥。0062 可选的,密钥更新也可以在安全代理预先设定好的一定时间段内进行,在此期间,说 明 书CN 104363209 A6/9页9安全代理或者安全插件不对密钥进行读取操作。其中,设定密钥更新的时间段可以为凌晨00:0001:00的一个小时或者凌晨00:0002:00的两个小时,也可以为凌晨01:0002:0。
31、0的一个小时等,该时间段可以根据需要来进行设置,以对用户的影响较小为前提,具体时间段本发明实施例不作限定。0063 加锁单元302,用于当检测单元301的检测结果为是时,对共享内存中的密钥进行加锁。0064 具体的,共享内存的主要工作是保存密钥的信息,但其中还保存有安全代理的运行状态、配置信息等,所以加锁单元302的加锁操作只针对共享内存中的密钥,而共享内存中的其他信息不受加锁操作的影响,可以随时被读取。检测单元301只要检测到存在对密钥进行写操作或者散列运算时,加锁单元302就立刻执行对共享内存中的密钥加锁的操作。在密钥加锁期间内,只能是安全代理对密钥进行写操作,并且安全代理也只能串行的进行。
32、相应的操作。同时,如果存在安全代理或者安全插件对密钥进行读操作请求时,该请求只能在密钥更新完成并对密钥进行解锁之后执行。如果检测单元301没有检测到密钥更新,则其继续处于检测密钥更新的状态。0065 可选的,由于安全代理可以在预先设定好的时间段内进行密钥更新,所以加锁单元302对共享内存中的密钥进行加锁的操作可以在该时间段的基础上提前一定的时间。安全代理可以设定2秒或者5秒等,具体时间本发明实施例不作限定。提前进行加锁能够实现对密钥读取的操作影响最小,进而保证了密钥读取的正确性与完整性。0066 判断单元303,用于判断密钥更新是否完成。0067 具体的,判断单元303的判断可以周期性的进行,。
33、该周期可以为安全代理预先设定的一个时间长度,可以为3分钟、5分钟或者10分钟等,该周期的具体时间长度本发明实施例不作限定。0068 解锁单元304,用于当判断单元303的判断结果为是时,对共享内存中的密钥进行解锁。0069 具体的,判断单元303当判断密钥更新完成时,解锁单元304就会对共享内存中的密钥执行解锁的操作,解锁之后,安全代理不再对密钥进行写操作,安全代理或者安全插件对共享内存中密钥的读取不再进行加锁,并且读取操作可以同时进行,各操作之间不相互影响。当然,在判断单元303判断密钥更新的操作未完成时,加锁单元302会继续对密钥进行加锁直至密钥更新完成为止。0070 可选的,由于安全代理。
34、可以在预先设定好的时间段内进行密钥更新,所以解锁单元304对共享内存中的密钥进行解锁的操作也可以在该时间段的基础上延后一定的时间。安全代理可以设定2秒或者5秒等,该解锁操作延后的时间本发明不作具体限定。延长对密钥的加锁时间能够实现对密钥的更新操作影响最小,进而保证了密钥写入的正确性与完整性。0071 本发明实施例通过检测有密钥更新时,对共享内存中的密钥采用加锁机制,并在密钥更新结束之后对其进行解锁,大大的提高了在非密钥更新期间安全插件获取密钥的效率,而在密钥更新期间只执行更新操作,减少了各操作之间的冲突。0072 请参阅图4,图4是本发明实施例提供的另一种密钥管理装置的结构示意图。如图4所示,。
35、该密钥管理装置可以包括以下单元:说 明 书CN 104363209 A7/9页100073 连接单元401,用于连接共享内存。0074 具体的,安全代理在启动的时候,首先连接单元401连接共享内存,以方便安全代理后续的访问共享内存或者对共享内存中的密钥进行操作。通过连接共享内存节省了安全代理访问共享内存的时间,提高了安全代理的工作效率。0075 查询单元402,用于查询共享内存是否连接成功。0076 新建单元403,用于当查询单元402的查询结果为否时,创建新的共享内存。0077 具体的,当查询单元402查询连接共享内存失败时,就需要新建单元403创建一个新的共享内存为安全代理提供后续服务。0。
36、078 检测单元404,用于创建子进程,并调用trigger检测共享内存中是否有密钥更新。0079 具体的,子进程可以包括轮询进程trigger、消息处理进程deal或者socket处理进程trans。trigger进程主要负责自动触发时间,安全代理每次轮询时会根据共享内存中的内容来主动触发各种业务;trigger进程可执行的业务可以包括:集群内同步签到签退信息、集群内同步分散方式节点间策略、节点状态轮询、增量信息下载、对端公钥证书下载、AK密钥协商、紧急协商处理、种子协商、种子校验、集群内同步种子、分散方式通知对端同步、种子预启用、种子预启用通知、种子启用、种子启用通知、工作密钥更新、工作密。
37、钥更新通知、种子过期、种子过期通知、种子注销、种子注销通知、种子删除、共享内存持久化、重新计算轮询时间等。deal进程主要用于监听消息队列并处理,目前可处理的请求有:强制协商、种子校验、种子下载、按需下载、secapi版本号或用户名上传等。trans进程主要用于监听socket并处理。其中,trigger进程与deal进程的为必须创建的子进程,而trans进程则需要在安全代理的协商方式为分散方式的情况下才建立。0080 检测单元404调用trigger检测共享内存中是否有密钥更新的方式有:调用trigger进程检测trigger进程、deal进程或者trans进程中任一进程是否有对密钥进行写操。
38、作。其中,对密钥进行写操作主要在trigger和trans进程里执行,而deal进程则在有需要的时候才对密钥进行写操作。其中,trans进程对密钥可请求的业务主要有:分散密钥协商、集群内密钥同步、分散密钥预启用同步与分散密钥注销;deal进程对密钥可请求的业务主要有强制密钥协商与密钥按需下载。而检测共享内存中是否有密钥更新的操作是检测单元404通过调用trigger进程来执行,主要也是在trigger进程里执行。0081 加锁单元405,用于当检测单元404的检测结果为是时,调用trigger进程对共享内存中的密钥进行加锁。0082 具体的,共享内存的主要工作是保存密钥的信息,但其中还保存有安。
39、全代理的运行状态、配置信息等,所以加锁单元405的加锁操作只针对共享内存中的密钥,而共享内存中的其他信息不受加锁操作的影响,可以随时被读取。检测单元404只要检测到存在对密钥进行写操作或者散列运算时,加锁单元405就立刻执行对共享内存中的密钥加锁的操作。在密钥加锁期间内,只能是安全代理对密钥进行写操作,并且安全代理也只能串行的进行相应的操作。同时,如果存在安全代理或者安全插件对密钥进行读操作请求时,该请求只能在密钥更新完成并对密钥进行解锁之后执行。如果检测单元404没有检测到密钥更新,则其继续处于检测密钥更新的状态。0083 可选的,由于安全代理可以在预先设定好的时间段内进行密钥更新,所以加锁单说 明 书CN 104363209 A10。