ZHCAEP3 November   2024 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2需要全面的安全方法
  6. 3加密功能
    1. 3.1 加密和解密
    2. 3.2 哈希、数字签名和身份验证
    3. 3.3 随机数发生器 (RNG)
  7. 4建立信任根
    1. 4.1 机密的安全存储
    2. 4.2 保持密钥和代码安全性
    3. 4.3 安全启动
  8. 5安全执行环境
  9. 6安全对策
  10. 7调试安全性
  11. 8结语

保持密钥和代码安全性

许多用户在部署嵌入式系统时面临的一个挑战是如何在整个制造过程中保持代码、机密和知识产权的安全性。称为安全配置的过程涉及在不安全环境中将机密加密密钥编程到微控制器中。这些密钥随后用于对传入的应用程序代码进行身份验证和解密。在许多情况下,配置过程中由第三方制造和编程设施负责;即使签署了保密协议,恶意行为者仍有可能截取和窃取机密,或在微控制器上安装受到攻击的软件。因此,必须建立一个过程来在所有阶段保持密钥、证书和代码的机密性、完整性和真实性,从获取这些资产的服务器开始,到成功解密和对微控制器中的资产进行编程。

 通过安全配置流程建立信任根图 4-1 通过安全配置流程建立信任根

安全配置流程从用于获取加密密钥和数据的 IT 基础设施开始。用于执行加密和解密的密钥必须存储在安全容器中,并在只能由密钥人员访问的可信执行环境中进行处理。在这种可信执行环境中,准备了用户密钥配置包,使用芯片制造商的密钥对用户密钥进行加密和签名。然后,将该软件包安全地传输到工厂并编程到器件中,从而在整个过程中对用户密钥保密。配置用户加密密钥后,可将应用程序代码编程到器件中。此过程与密钥配置过程类似,主要区别在于,用户代码现在使用之前编程到器件安全存储中的用户密钥进行加密和签名。对于具有内部闪存存储器的器件来说还有一个额外的安全优势:代码保持加密状态并且在被编程到器件中之前不可访问。然后可以对其进行解密并以纯文本形式存储,以更大限度地提高代码执行性能,因为使用器件级安全控制措施来保持机密性。另一方面,依赖于外部闪存芯片的器件可以使用每个器件特有的对称密钥来对外部闪存和内部 RAM 之间传输的代码进行加密和解密。为了加强安全性,在运送到客户编程设施之前,可以在器件中预先编程一个唯一的客户 ID。此唯一 ID 可进一步用于验证正版器件,并协助消除恶意第三方创建未经授权克隆的风险。