System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及防止设备固件版本回滚的方法,主要应用于安全启动(secure boot)。
技术介绍
1、随着社会的发展和产品的迭代,包括电脑、手机、手环等设备中,包含越来越多的个人数据,如支付密码,隐私等;需要对这些数据和信息做好安全防护,避免被未授权的第三方访问,为此业界引入了如下两种针对性的防护方案。
2、第一种:安全启动,只启动经过授权的软件方案,不能启动和运行非授权或恶意软件。
3、通过使用散列函数(如sha256)和非对称加密算法(如rsa2048),实现一个安全的启动链;只启动运行经过认证的代码,避免运行恶意代码,进而保护产品和数据。root oftrust,如图1所示,作为整个系统的信任根,一般使用boot rom实现,boot rom是只读不可更改的,一次性生成写入芯片内部。bl1(boot loader stage1,第一级引导),如图2所示,位于外部存储器上,可以去做更新。bl1中包含的签名数据,通过私钥(private key,需要做好保护,不能泄露)生成,boot rom中使用公钥(public key,由private key生成,而通过public key不能反向得到private key)去验证签名。公钥可以公开发布,一般是一次性烧写到芯片内部efuse或otp(one time program,只能一次编程)模块中,不可更改。其存在的不足是1.对于已在客户端使用的产品,无法抹除旧公钥,仍然可以运行旧版本,只能破坏旧公钥,导致soc安全启动机制不可用;2.对于已在客户端使用的
4、第二种:防回滚,进行版本管理,通过更新软件版本号,避免启动和运行旧版本。
5、软件方案开发中,不可避免的会有bug,产品中就需要避免运行该版本,强制更新到新版本;为此需要有防回滚机制,一般设计如图3所示,模块c可以正常加载运行,模块b版本号小于指定版本,可能包含存在风险的代码,就不会被加载运行。其存在的不足是被加载模块的数据存放在soc外部,有可能被篡改或丢失,导致版本比较失效,进而回滚到旧版本。
技术实现思路
1、为了解决上述技术问题,本专利技术提供一种防止设备固件版本回滚的方法,基于公私钥加密体系,只运行使用有效公私钥对并且经过正确签名的代码,其采用如下技术方案:
2、一种防止设备固件版本回滚的方法,包括以下步骤:
3、步骤1.在soc生产时,生成至少两个公私钥对,将公钥或者公钥哈希保存到bootrom中;
4、步骤2.定义一个公钥位图,并且为每个公钥分配一个bit,用于指示其是否有效,公钥的有效性等效于公私钥对的有效性;
5、步骤3.初始状态下所有公钥都默认有效,选取一个公钥对bl1进行验签,当bl1存在漏洞或者风险时,将所用公钥在公钥位图对应位置的bit写为无效,重新选择一个有效的公钥,bl1的验签使用该有效的公钥。
6、本专利技术具有以下有益技术效果:
7、1.efuse/otp需求比较小,只需为每个公私钥对分配一个bit,efuse/otp的烧录出错风险和烧录成本降低。
8、2.boot rom保存公钥或者公钥哈希,boot rom的成本相比efuse/otp更低。
9、3.公钥位图存储于efuse/otp中,通过烧写efuse/otp中的公钥位图,来无效之前使用的公私钥对,即可防止回滚到旧版本。
10、公钥默认都是有效的,使用efuse/otp保存位图时,二者默认初始值是不同的,如使用efuse,默认值为0,烧写为1使之无效;如使用otp,默认值为1,烧写为0使之无效。
11、4.只需烧写1bit,即可防止旧版本的启动,烧录成本和烧录失效风险都比较低。
12、5.对于已发布的产品,更新ic内部efuse/otp上公钥位图,也可以防止回滚到旧版本。
13、6.有多个公私钥对,当遭遇入侵、管理不善、人员变动等原因,导致其中的一个或多个私钥泄露时,重新启用一组有效的公私钥对,将已泄露的公私钥对无效掉即可。
14、7.不同的公私钥生成策略,对应不同的公私钥分配策略,当授权给多个合作方开发或运营时,使用不同的公私钥对。如果某一合作终止,将公钥位图对应位置的bit写为无效即可。
15、8.烧录出错概率低,即使操作出错多烧录了几个bit,也可以通过更新软件使用新的仍有效的公私钥对,避免芯片报废。
本文档来自技高网...【技术保护点】
1.一种防止设备固件版本回滚的方法,包括如下步骤:
2.根据权利要求1所述防止设备固件版本回滚的方法,其中,步骤1中公私钥对生成策略为客户生成公私钥对,私钥客户管理,客户自行对BL1做签名。
3.根据权利要求1所述防止设备固件版本回滚的方法,其中,步骤1中公私钥对生成策略为由可信的第三方生成公私钥对,客户将BL1交由第三方做签名。
4.根据权利要求1所述防止设备固件版本回滚的方法,其中,步骤1中公私钥对生成策略为由SOC设计方生成公私钥对,客户将BL1交由SOC设计方做签名。
5.根据权利要求1所述防止设备固件版本回滚的方法,其中,步骤1中对生成的公钥进行分组。
6.根据权利要求5所述防止设备固件版本回滚的方法,其中,公钥分组的方式为根据不同客户群或者根据不同的签名算法来分组。
7.根据权利要求1所述防止设备固件版本回滚的方法,其中,步骤2中公钥位图写入芯片内部EFUSE或者OTP模块中,在其上定义公钥有效性标记。
【技术特征摘要】
1.一种防止设备固件版本回滚的方法,包括如下步骤:
2.根据权利要求1所述防止设备固件版本回滚的方法,其中,步骤1中公私钥对生成策略为客户生成公私钥对,私钥客户管理,客户自行对bl1做签名。
3.根据权利要求1所述防止设备固件版本回滚的方法,其中,步骤1中公私钥对生成策略为由可信的第三方生成公私钥对,客户将bl1交由第三方做签名。
4.根据权利要求1所述防止设备固件版本回滚的方法,其中,步骤1中公私钥对生成策略...
【专利技术属性】
技术研发人员:张猛,
申请(专利权)人:进迭时空珠海科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。