System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据安全,尤其涉及一种密钥更新方法和计算机可读存储介质。
技术介绍
1、很多服务提供商对网关配置中的敏感数据要求加密保护,以免敏感数据泄漏,但随着网络安全重要性逐渐提高,服务提供商经常会要求使用最新的加密算法,因此产品必须支持加密算法更新功能。然而,当设备升级到新版本后,可能会由于新版本存在问题而需要回退到上一个版本,如果直接进行版本回退,由新算法加密的配置文件会无法解密从而导致配置丢失,这是极为严重的工程问题,因此必须支持升级版本回退到旧版本。
2、目前有两种主流方法解决算法升级回退问题:
3、方式一是升级前,当前版本a使用当前算法对配置解密后明文保存,然后重启设备,由升级版本b基于b的加密算法对配置重新加密保存,这样无论算法升级还是算法回退,配置文件都不会丢失。这种方式无关加密算法是升级还是回退,每次更新都解密配置文件,以明文保存,在设备重启后重新加密,虽然明文持续时间短,但依然存在敏感配置被泄漏的可能,比如在升级过程中不停读取配置文件,可能会读到明文配置,或者每次升级都需要解密再加密所有配置,也提高了时间成本;
4、方式二是将设备配置通过ssl通道上传云端,加密算法更新时正常升级版本,如果遇到需要版本回退的场景,先恢复出厂设置,再回退到旧版本,然后从云端通过ssl通道下发配置,使用旧版本的加密算法对配置进行加密。这种方式需要云平台的支持,成本较高,而且需要额外的恢复出厂设置、配置下发这些人工操作,提高了人力成本。
技术实现思路
2、本专利技术技术方案如下:
3、一种密钥更新方法,包括:
4、响应于设备更新指令,向待更新设备中写入升级镜像;
5、读取密钥文件keyfile,所述密钥文件keyfile中记录了当前密钥版本和历次密钥更新时保存的密钥信息,所述密钥信息包括密钥的算法库版本、算法和算法参数;
6、判断当前密钥更新类型,若进行密钥升级,则根据所述升级镜像中部署的密钥更新信息创建新密钥,若进行密钥回退,则从所述密钥文件keyfile中查找与所述升级镜像对应的密钥作为当前密钥。
7、进一步地,向待更新设备中写入升级镜像之前,还包括:编译所述升级镜像;
8、所述编译所述升级镜像,包括:若所述升级镜像与密钥更新无关,编译参数为镜像信息,包括算法库版本;若所述升级镜像与密钥更新相关,编译参数为密钥更新信息,包括算法库版本、算法和算法参数;根据所述编译参数自动生成密钥更新文件kupfile,所述密钥更新文件kupfile用于记录当前编译的所述镜像信息或所述密钥更新信息;将所述密钥更新文件kupfile部署到所述升级镜像的镜像体中。
9、进一步地,所述编译所述升级镜像还包括:自动生成升级镜像头中的标签字节;所述升级镜像头中预留有至少两个标签字节,其中,第一标签字节用于储存升级镜像的算法库版本,第二标签字节用于储存密钥更新与否标志。
10、进一步地,所述自动生成升级镜像头中的标签字节,包括:解析所述密钥更新文件kupfile,将解析得到的算法库版本作为升级镜像的算法库版本写入所述第一标签字节;确定所述密钥更新文件kupfile中是否包含密钥更新信息,若是,则在所述第二标签字节中写入第一标记值作为密钥更新标志,否则在所述第二标签字节中写入第二标记值。
11、进一步地,在判断当前密钥更新类型之前,还包括:根据所述升级镜像头创建临时标志文件kupflag;将所述第一标签字节和所述第二标签字节的内容写入所述标志文件kupflag中。
12、进一步地,所述判断当前密钥更新类型,包括:判断当前密钥的算法库版本是否高于所述升级镜像的算法库版本,若是,则进行密钥回退;重启设备;判断所述标志文件kupflag是否存在;以及,判断所述标志文件kupflag中是否存在所述密钥更新标志;以及,判断所述当前密钥版本是否低于所述升级镜像的镜像版本;上述条件均满足时进行密钥升级,若任一条件不满足,则不进行密钥升级;删除所述标志文件kupflag。
13、进一步地,所述密钥文件keyfile中还记录了curr_keyid和max_keyid;所述根据所述升级镜像中部署的密钥更新信息创建新密钥,包括:从更新后的设备上读取所述密钥更新文件kupfile,并根据所述密钥更新文件kupfile中指定的算法库版本、算法和算法参数创建新密钥;其中,所述新密钥的keyid=max_keyid+1。
14、进一步地,所述方法还包括:将所述新密钥的算法库版本、算法、算法参数及keyid写入所述密钥文件keyfile,并更新所述密钥文件keyfile。
15、进一步地,所述更新所述密钥文件keyfile,包括:curr_keyid=所述新密钥的keyid;max_keyid=max_keyid+1;当前密钥版本=所述升级镜像的镜像版本。
16、进一步地,所述从所述密钥文件keyfile中查找与所述升级镜像对应的密钥作为当前密钥,包括:从所述密钥文件keyfile中找到与所述升级镜像的算法库版本相同且keyid最大的密钥作为当前密钥。
17、基于同一专利技术构思,本专利技术还提供了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令执行时实现前述的密钥更新方法。
18、本专利技术的有益效果如下:
19、1、本专利技术利用升级镜像对设备进行版本更新,保持工程应用中版本更新的方式不变,本专利技术提供的密钥更新方法适用于所有网关设备,也不引入多余操作,降低了成本;
20、2、本专利技术支持密钥和加密算法升级,根据升级镜像中部署的密钥更新信息创建新密钥,并且升级镜像的镜像版本不高于当前密钥版本时不会进行密钥升级,当再次更新密钥时需写入对应的新镜像,从而统一管控密钥及算法更新;
21、3、本专利技术还支持密钥和加密算法回退,利用密钥文件keyfile查找与升级镜像对应的密钥作为当前密钥,且设备重启过程中不存在明文保存的配置,从而避免了敏感配置泄漏或丢失。
22、本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。
本文档来自技高网...【技术保护点】
1.一种密钥更新方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,向待更新设备中写入升级镜像之前,还包括:编译所述升级镜像;
3.根据权利要求2所述的方法,其特征在于,所述编译所述升级镜像还包括:
4.根据权利要求3所述的方法,其特征在于,所述自动生成升级镜像头中的标签字节,包括:
5.根据权利要求4所述的方法,其特征在于,在判断当前密钥更新类型之前,还包括:
6.根据权利要求5所述的方法,其特征在于,所述判断当前密钥更新类型,包括:
7.根据权利要求6所述的方法,其特征在于,所述密钥文件keyfile中还记录了curr_keyid和max_keyid;
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
9.根据权利要求8所述的方法,其特征在于,所述更新所述密钥文件keyfile,包括:
10.根据权利要求1所述的方法,其特征在于,所述从所述密钥文件keyfile中查找与所述升级镜像对应的密钥作为当前密钥,包括:
11.一种计
...【技术特征摘要】
1.一种密钥更新方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,向待更新设备中写入升级镜像之前,还包括:编译所述升级镜像;
3.根据权利要求2所述的方法,其特征在于,所述编译所述升级镜像还包括:
4.根据权利要求3所述的方法,其特征在于,所述自动生成升级镜像头中的标签字节,包括:
5.根据权利要求4所述的方法,其特征在于,在判断当前密钥更新类型之前,还包括:
6.根据权利要求5所述的方法,其特征在于,所述判断当前密钥更新类型,包括:
7.根据权利要求6所述的方法,其特...
【专利技术属性】
技术研发人员:李骏,夏敏,黎子瑄,
申请(专利权)人:烽火通信科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。