简明Secure boot介绍

预备知识:

请参考本博客的另外一篇文章:
https://www.cnblogs.com/linuxcat/p/10575765.html

名词介绍:
OTP : One time programming
RSA : 一种非对称加密方式,公钥和私钥必须配对使用
Sign : 签名
Verify : 对签名的文件进行检验

安全是一个链条,并非单一的环节。 每一个节点的漏洞都可能导致前功尽弃。所以在secure boot flow中,对于敏感程序及数据部分都要做签名校验的动作。

可以看下面的图示,一个最简化的流程:

  1. Chip加电运行OTP中的程序,同时校验Boot code;
  2. Boot code中包括了:
    平台启动的关键数据,例如DDR参数,缺少这些数据的加载,平台就无法启动;
    以及校对Loader用的key, 用于在跳转Loader前,校验Loader程序是否有被篡改过
  3. Loader校验Kernel,这个环节并非必须。根据实际情况决定是否需要这一步

假设有骇客非法修改了Boot程序或是Loader程序, 在启动过程中都会因为校对失败,从而启动不成功。
同时,因为OTP只能是写一次,这上面的程序是无法纂改的,并且IC关闭了读取OTP数据的一切接口,确保了第一步校验的安全性;

原文地址:https://www.cnblogs.com/linuxcat/p/14457698.html