物联网IoT设备的安全启动方法、装置、设备及存储介质与流程

xiaoxiao1天前  5


本公开涉及物联网,尤其涉及一种物联网iot设备的安全启动方法、装置、设备及存储介质。


背景技术:

1、相关技术中,物联网iot设备的设备证书信息及秘钥信息通常采取在代码中进行硬编码的方式进行存储,或者明文存储在iot设备的闪存flash中,数据安全性较低且极易被获取。可能导致已认证的iot设备的证书被拷贝到未经认证的iot设备中,使得未经认证的iot设备被伪装为经认证的iot设备。同时设备证书信息及秘钥信息的泄漏,导致能够利用设备证书及秘钥信息进行对iot设备的攻击,降低了iot设备的安全性。


技术实现思路

1、为克服相关技术中存在的问题,本公开提供一种物联网iot设备的安全启动方法、装置、设备及存储介质。

2、根据本公开实施例的第一方面,提供一种物联网iot设备的安全启动方法,所述iot设备为支持至少一种协议的设备,所述方法包括:响应于所述iot设备的系统启动信号,验证引导加载程序bootloader固件的认证签名和应用层app固件的认证签名;在所述bootloader固件的认证签名和所述app固件的认证签名均验证通过时,读取存储在一次性可编程存储器中的加密密钥;其中,所述加密密钥被设置为写保护属性;根据所述加密密钥对所述app固件进行解密,并运行所述解密后的app固件;在读取闪存flash中的加密flash分区数据时,根据所述加密密钥对所述加密flash分区数据进行解密,以安全启动所述iot设备。

3、在一种实现方式中,所述验证引导加载程序bootloader固件的认证签名和应用层app固件的认证签名,包括:读取烧录在所述一次性可编程存储器中的第一公钥和第二公钥;其中,所述第一公钥用于验证所述bootloader固件的认证签名的有效性,所述第二公钥用于验证所述app固件的认证签名的有效性;基于所述第一公钥验证所述bootloader固件的认证签名;在所述bootloader固件的认证签名验证通过时,加载二级引导加载程序并运行;基于所述第二公钥验证所述app固件的认证签名。

4、在一种可选地实现方式中,所述方法还包括:通过所述二级引导加载程序,读取存储在所述一次性可编程存储器中的标志位;其中,所述标志位表征所述app固件是否开启flash加密及所述app固件是否被加密,其中,所述标志位被设置为写保护属性;根据所述标志位,确定所述app固件是否开启flash加密和/或所述app固件是否被加密;在所述app固件开启flash加密,且所述app固件被加密的情况下,执行所述读取存储在一次性可编程存储器中的加密密钥的步骤。

5、可选地,所述方法还包括:在所述app固件开启flash加密,且所述app固件未被加密的情况下,根据所述app固件确定所述flash中的待加密flash分区;随机生成加密密钥,并基于所述加密密钥对所述app固件及所述待加密flash分区中的数据分别进行加密并存储;将所述加密密钥存储至所述一次性可编程存储器中,并将所述加密密钥设置为写保护属性;更新所述一次性可编程存储器中的标志位,并重启所述iot设备。

6、在一种实现方式中,所述读取存储在一次性可编程存储器中的加密密钥,包括:通过硬件模块读取存储在所述一次性可编程存储器中的加密密钥。

7、在一种实现方式中,所述方法还包括:在进入固件升级ota流程时,获取待升级ota固件;其中,所述待升级ota固件中包括所述待升级ota固件的认证签名;重启所述iot设备,并验证所述待升级ota固件的认证签名以进入重启安装阶段;在重启完成后确定所述待升级ota固件升级成功。

8、在一种可选地实现方式中,所述方法还包括:在进入所述待升级ota固件的重启安装阶段过程中,根据所述加密密钥对所述待升级ota固件进行加密。

9、根据本公开实施例的第二方面,提供一种物联网iot设备的安全启动装置,所述iot设备为支持至少一种协议的设备,所述装置包括:验证模块,用于响应于所述iot设备的系统启动信号,验证引导加载程序bootloader固件的认证签名和应用层app固件的认证签名;第一获取模块,用于在所述bootloader固件的认证签名和所述app固件的认证签名均验证通过时,读取存储在一次性可编程存储器中的加密密钥;其中,所述加密密钥被设置为写保护属性;第一处理模块,用于根据所述加密密钥对所述app固件进行解密,并运行所述解密后的app固件;第二处理模块,用于在读取闪存flash中的加密flash分区数据时,根据所述加密密钥对所述加密flash分区数据进行解密,以安全启动所述iot设备。

10、在一种实现方式中,所述验证模块具体用于:读取烧录在所述一次性可编程存储器中的第一公钥和第二公钥;其中,所述第一公钥用于验证所述bootloader固件的认证签名的有效性,所述第二公钥用于验证所述app固件的认证签名的有效性;基于所述第一公钥验证所述bootloader固件的认证签名;在所述bootloader固件的认证签名验证通过时,加载二级引导加载程序并运行;基于所述第二公钥验证所述app固件的认证签名。

11、在一种可选地实现方式中,所述验证模块还用于:通过所述二级引导加载程序,读取存储在所述一次性可编程存储器中的标志位;其中,所述标志位表征所述app固件是否开启flash加密及所述app固件是否被加密,其中,所述标志位被设置为写保护属性;根据所述标志位,确定所述app固件是否开启flash加密和/或所述app固件是否被加密;在所述app固件开启flash加密,且所述app固件被加密的情况下,执行所述读取存储在一次性可编程存储器中的加密密钥的步骤。

12、可选地,所述验证模块还用于:在所述app固件开启flash加密,且所述app固件未被加密的情况下,根据所述app固件确定所述flash中的待加密flash分区;随机生成加密密钥,并基于所述加密密钥对所述app固件及所述待加密flash分区中的数据分别进行加密并存储;将所述加密密钥存储至所述一次性可编程存储器中,并将所述加密密钥设置为写保护属性;更新所述一次性可编程存储器中的标志位,并重启所述iot设备。

13、在一种实现方式中,所述第一获取模块具体用于:通过硬件模块读取存储在所述一次性可编程存储器中的加密密钥。

14、在一种实现方式中,所述装置还包括:第二获取模块,用于在进入固件升级ota流程时,获取待升级ota固件;其中,所述待升级ota固件中包括所述待升级ota固件的认证签名;第三处理模块,用于重启所述iot设备,并验证所述待升级ota固件的认证签名以进入重启安装阶段;确定模块,用于在重启完成后确定所述待升级ota固件升级成功。

15、在一种可选地实现方式中,所述装置还包括:加密模块,用于在进入所述待升级ota固件的重启安装阶段过程中,根据所述加密密钥对所述待升级ota固件进行加密。

16、根据本公开实施例的第三方面,提供一种物联网iot设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如前述第一方面所述的方法。

17、根据本公开实施例的第四方面,提供一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如前述第一方面所述的方法。

18、根据本公开实施例的第五方面,本公开提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面所述方法的步骤。

19、本公开的实施例提供的技术方案可以包括以下有益效果:可以对bootloader固件的认证签名和应用层app固件的认证签名进行验证,并在验证通过的情况下基于一次性可编程存储器中的加密密钥对app固件和flash中的加密flash分区数据进行解密,以安全启动iot设备。可以保证固件来源的可控性,并保护数据安全,从而提升iot设备的安全等级。

20、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。


技术特征:

1.一种物联网iot设备的安全启动方法,其特征在于,所述iot设备为支持至少一种协议的设备,所述方法包括:

2.如权利要求1所述的方法,其特征在于,所述验证引导加载程序bootloader固件的认证签名和应用层app固件的认证签名,包括:

3.如权利要求2所述的方法,其特征在于,所述方法还包括:

4.如权利要求3所述的方法,其特征在于,所述方法还包括:

5.如权利要求1所述的方法,其特征在于,所述读取存储在一次性可编程存储器中的加密密钥,包括:

6.如权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:

7.如权利要求6所述的方法,其特征在于,所述方法还包括:

8.一种物联网iot设备的安全启动装置,其特征在于,所述iot设备为支持至少一种协议的设备,所述装置包括:

9.如权利要求8所述的装置,其特征在于,所述验证模块具体用于:

10.如权利要求9所述的装置,其特征在于,所述验证模块还用于:

11.如权利要求10所述的装置,其特征在于,所述验证模块还用于:

12.如权利要求8所述的装置,其特征在于,所述第一获取模块具体用于:

13.如权利要求8至12中任一项所述的装置,其特征在于,所述装置还包括:

14.如权利要求13所述的装置,其特征在于,所述装置还包括:

15.一种物联网iot设备,其特征在于,所述iot设备为支持至少一种协议的设备,所述设备包括:

16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如权利要求1至7中任一项所述的方法。


技术总结
本公开是关于一种物联网IoT设备的安全启动方法、装置、设备及存储介质。其中,上述IoT设备为支持至少一种协议的设备,上述方法包括:响应于IoT设备的系统启动信号,验证引导加载程序Bootloader固件的认证签名和应用层App固件的认证签名;在Bootloader固件的认证签名和App固件的认证签名均验证通过时,读取存储在一次性可编程存储器中的加密密钥;其中,加密密钥被设置为写保护属性;根据加密密钥对App固件进行解密,并运行解密后的App固件;在读取闪存Flash中的加密Flash分区数据时,根据加密密钥对加密Flash分区数据进行解密,以安全启动IoT设备。通过本公开的技术方案,可以保证IoT设备的固件来源的可控性,并保护数据安全,以提升IoT设备的安全等级。

技术研发人员:金泽
受保护的技术使用者:北京小米移动软件有限公司
技术研发日:
技术公布日:2024/9/23

最新回复(0)