System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及物联网,尤其涉及一种物联网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、在一种实现方式中,所述验证引导加载程序bootload
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设备,包括:至少一本文档来自技高网...
【技术保护点】
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中任一项所述的方法。
...【技术特征摘要】
1.一种物联网iot设备的安全启动方法,其特征在于,所述iot设备为支持至少一种协议的设备,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述验证引导加载程序bootloader固件的认证签名和应用层app固件的认证签名,包括:
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
5.如权利要求1所述的方法,其特征在于,所述读取存储在一次性可编程存储器中的加密密钥,包括:
6.如权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
8.一种物联网iot设备的安全启动装置,其特征在于,所述iot设备为支持至少一种协议...
【专利技术属性】
技术研发人员:金泽,
申请(专利权)人:北京小米移动软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。