secure boot(一)

0.前言

    本系列讲解的是如何在高通的QCA4020开发板上实现secure boot功能,以及一些相关的概念。

 

1.什么是secure boot

    Secure boot指的是建立用于运行已验证应用程序的可信平台的启动序列。它从一个不可变的序列开始,使用密码验证验证代码的源,从而只执行授权的软件。启动序列将设备置于已知的安全状态,并检测软件的二进制操作和反射攻击。

    secure boot系统向启动过程的每个阶段添加加密检查。此过程在设备执行之前验证所有的安全软件镜像。这个额外的检查阻止了任何未经授权或者恶意修改的软件软件在设备上运行。通过一组硬件保险丝来启用secure boot。对于要执行的代码,它必须由硬件保险丝中标识的的可信实体签名。

 

2.实现secure boot的硬件基础

    QCA402x芯片组包含一次可编程(OTP)熔断器。最初所有的保险丝都是0,。一旦写入(或者吹过),保险丝永久地将状态改变为1.将熔断器从吹改为未吹是不可能的。OTP程序员工具在QCA402x SDK中提供的。这个工具可以基于用户提供的输入来编程secure boot保险丝。启用secure boot功能一定要小心,任何的错误的步骤都有可能使你的板称为砖块。

 

3.编程保险丝的工具

     在QCA4020 SDK中包含OTP编程软件工具,可通过编程选择熔断器来启动设备上的secure boot功能。用户可以选择由工具支持的三个设备配置文件中的一个。

    

一个设备配置文件在熔断器被编程之后定义设备的状态,有三种支持的设备配置文件。

    开发配置文件:配置保险丝的最小数量。所有的debug功能都将被打开。所有相关的OTP 读/写区域都可被访问。这个配置文件应该被用于初步开发和bringup。

    产品测试配置文件:类似于使用JTAG调试启用的产品配置文件

    产品配置文件:设计用于生成就绪的设备。相关的OTP读/写区域被锁定,所有的JTAG调试被禁用。

    一旦一个配置文件被编程到一个设备上,它就不可被修改了。因此,如果一个设备使用开发配置文件进行编程,它不能被升级到产品测试配置文件或者产品配置文件。

阅读更多

没有更多推荐了,返回首页