一种安全启动控制方法、电子设备及存储介质与流程
本技术涉及嵌入式系统安全,具体涉及一种安全启动控制方法、电子设备及存储介质。
背景技术:
1、在车载控制器、工业控制等嵌入式设备中,为防止软件被恶意篡改或非法替换,通常需要在设备上电启动阶段对固件进行完整性校验。
2、现有的安全启动控制方法往往依赖主处理单元直接执行校验算法,或者仅采用简单的循环冗余校验(crc)及版本号比对机制。然而,该方法存在显著的技术缺陷:一方面,若校验密钥存储于主处理单元可直接访问的存储器中,在调试、刷写或逆向分析过程中极易发生密钥泄露,导致信任根失效;另一方面,随着设备功能复杂化,固件通常划分为代码区、标定数据区等多个独立更新分区,传统单一区域的校验方式难以覆盖多分区、多阶段更新后的启动安全需求,容易出现密钥已更新但校验值未同步、不同分区版本不匹配但仍被错误加载运行的风险,无法满足高安全等级场景下的启动信任要求。
3、因此,有必要提供一种安全启动控制方法、电子设备及存储介质解决上述技术问题。
技术实现思路
1、针对现有技术存在的密钥易泄露及多分区启动信任缺失的问题,本技术通过一种安全启动控制方法、电子设备及存储介质,实现主处理单元与安全处理单元的硬件级隔离交互及多分区独立密码学校验闭环,确保设备启动过程的安全性与可靠性。
2、为实现上述目的,本技术采用如下技术方案:
3、一种安全启动控制方法,应用于包含主处理单元和安全处理单元的设备,当设备启动时,所述主处理单元通过安全交互接口向所述安全处理单元提交针对多个独立更新分区的校验请求;其中,所述安全处理单元具有隔离的密钥存储区,所述主处理单元无法访问所述隔离的密钥存储区;所述安全处理单元在隔离环境中,基于所述校验请求和所述隔离的密钥存储区中的目标密钥,分别计算所述多个独立更新分区的加密校验值,并将校验结果通过所述安全交互接口返回给所述主处理单元;所述主处理单元基于所述校验结果,控制所述设备的软件运行状态。
4、作为优选,所述安全交互接口包括共享存储区和中断触发机制;所述主处理单元通过所述安全交互接口向所述安全处理单元提交针对多个独立更新分区的校验请求,包括:所述主处理单元将包含分区标识和计算参数的请求数据写入所述共享存储区的请求区域,并通过所述中断触发机制向所述安全处理单元发送第一中断信号;所述安全处理单元在隔离环境中,基于所述校验请求和所述隔离的密钥存储区中的目标密钥,分别计算所述多个独立更新分区的加密校验值,并将校验结果通过所述安全交互接口返回给所述主处理单元,包括:所述安全处理单元将包含所述校验结果的反馈数据写入所述共享存储区的反馈区域,并通过所述中断触发机制向所述主处理单元发送第二中断信号。
5、作为优选,所述请求数据和所述反馈数据均至少包括:命令字、密钥标识、分区地址、数据长度和状态码;所述主处理单元将包含所述分区标识和所述计算参数的所述请求数据写入所述共享存储区的所述请求区域,包括:所述主处理单元将所述命令字配置为校验计算指令,将所述密钥标识配置为与所述多个独立更新分区对应的目标密钥标识,将所述分区地址和所述数据长度分别配置为所述多个独立更新分区的物理地址和字节长度,并将配置后的所述请求数据写入所述请求区域;所述通过所述中断触发机制向所述安全处理单元发送第一中断信号,包括:所述主处理单元向预设的命令寄存器写入触发值,触发所述第一中断信号。
6、作为优选,所述多个独立更新分区至少包括一个代码分区和一个数据分区;所述主处理单元基于所述校验结果,控制所述设备的软件运行状态,包括:在设备启动阶段,按照预设的启动顺序依次对所述代码分区和所述数据分区进行加密校验值复核;若所述代码分区和所述数据分区中任一关键分区的所述校验结果指示复核失败,则禁止跳转至所述关键分区对应的软件区域,并执行安全恢复策略;若所述代码分区和所述数据分区的所述校验结果均指示复核成功,则允许跳转至所述代码分区对应的软件区域运行。
7、作为优选,在所述设备启动阶段之前,所述方法还包括:当接收到针对目标分区的刷写完成指令时,所述主处理单元向所述安全处理单元提交校验值生成请求;其中,所述目标分区为所述代码分区或所述数据分区;所述安全处理单元基于所述校验值生成请求,使用与所述目标分区对应的分区密钥对所述目标分区的数据计算消息认证码,并将所述消息认证码写入非易失性存储器中与所述目标分区对应的独立校验槽位;所述安全处理单元在隔离环境中,基于所述校验请求和所述隔离的密钥存储区中的目标密钥,分别计算所述多个独立更新分区的加密校验值,包括:所述安全处理单元从所述独立校验槽位读取存储的所述消息认证码,并在所述隔离环境中重新计算所述目标分区的当前消息认证码,将所述当前消息认证码与所述存储的所述消息认证码进行比对,得到所述校验结果。
8、作为优选,所述方法还包括:所述主处理单元接收外部设备发送的加密密钥更新消息,并将所述加密密钥更新消息透传至所述安全处理单元;所述安全处理单元在所述隔离环境中解析所述加密密钥更新消息,更新所述隔离的密钥存储区中的所述目标密钥;其中,所述主处理单元在透传过程中不执行针对所述加密密钥更新消息的解密操作。
9、作为优选,所述加密密钥更新消息包括:身份认证数据,由设备唯一标识、安全内核标识和认证标识拼接生成;密文数据,使用由认证密钥和第一派生常量派生得到的第一加密密钥,对包含待更新密钥的明文数据进行加密生成;完整性认证码数据,使用由所述认证密钥和第二派生常量派生得到的第二加密密钥,对所述身份认证数据和所述密文数据计算生成;所述安全处理单元在所述隔离环境中解析所述加密密钥更新消息,更新所述隔离的密钥存储区中的所述目标密钥,包括:所述安全处理单元在所述隔离环境中基于所述身份认证数据、所述密文数据和所述完整性认证码数据执行验签和解密操作,提取所述明文数据并写入所述隔离的密钥存储区。
10、作为优选,所述安全恢复策略包括以下至少一种:控制所述设备保持在引导加载程序状态,等待重新刷写;将校验失败状态写入故障记录区域;触发所述设备的受控复位;控制所述设备进入降级运行模式。
11、此外,本技术还提供了一种电子设备,包括:主处理器;安全协处理器,具有隔离的密钥存储区,所述主处理器无法访问所述隔离的密钥存储区;存储器,用于存储计算机程序以及多个独立更新分区的数据;其中,所述主处理器和所述安全协处理器通过安全交互接口通信,所述主处理器执行所述计算机程序时实现如上述方案所述的安全启动控制方法。
12、此外,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述方案所述的安全启动控制方法。
13、有益效果:
14、本技术通过构建主处理单元与安全处理单元之间的安全交互接口,并利用安全处理单元内部隔离的密钥存储区,执行加密校验值的计算,使得主处理单元在整个启动校验流程中仅能传递分区地址、长度等计算参数并获取校验结果,而无法直接接触或访问明文密钥,阻断了因主核软件漏洞、调试接口开放或逆向分析导致的密钥泄露路径,确立了不可篡改的硬件信任根。
15、同时,本技术针对包含代码分区和数据分区的多个独立更新分区,建立了刷写后生成校验值与启动时复核校验值的闭环机制。在数据更新阶段,由安全处理单元在隔离环境中即时生成各分区对应的消息认证码并写入独立槽位;在启动阶段,按预设顺序对各分区进行独立的密码学校验,从而有效解决了现有技术中单一校验无法覆盖多分区异步更新、校验值与软件版本不匹配等技术问题,确保了只有经过授权且完整性未被破坏的代码与数据组合才能被加载运行,显著提升了嵌入式设备在量产、售后刷写及异常恢复等全生命周期场景下的启动安全性。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com