secure boot是设备通电后、操作系统加载前由固件执行的强制校验流程,确保每一级启动代码均带合法数字签名,拦截篡改或未授权镜像,构成不可绕过的信任闸门;它防物理接触下的底层篡改、调试接口注入及固件替换,不防网络钓鱼或app漏洞。

Secure Boot(安全启动)是设备通电后、操作系统加载前,由固件执行的一道强制校验流程,它确保每一级启动代码都带有合法数字签名,任何被篡改或未授权的镜像都会在加载前被拦截——这不是可选功能,而是现代嵌入式设备与PC启动链中不可绕过的信任闸门。
Secure Boot到底防什么
它防的是物理接触后的底层篡改:有人拔掉你的SD卡,刷入自己编译的U-Boot或Linux内核,再插回去开机;防的是攻击者利用调试接口(如JTAG)注入恶意引导程序;防的是水货商替换原厂固件后冒充正品销售。这些操作一旦成功,杀毒软件、应用层权限控制全失效,因为系统根本没机会启动到那个层面。
Secure Boot不防网络钓鱼、不防APP漏洞,它只管“谁能在CPU上第一条指令就跑起来”这件事。
信任链怎么一级级建立起来
第一步:芯片出厂时,BL1(BootROM)已固化在CPU内部,【不可擦写、不可覆盖、无法通过任何软件修改】,这是整个信任链的Root of Trust(RoT)。
第二步:BL1从Flash读取BL2镜像→用内置公钥验证BL2签名→验证失败则停机,验证通过则跳转执行BL2。
第三步:BL2初始化内存后加载BL31(ATF)→同样验签→通过后移交控制权。
第四步:BL31加载BL33(U-Boot)→继续验签→最后由U-Boot验证OS镜像(如vmlinuz或bootmgfw.efi)签名。
这个链条不能断:前一级负责验证下一级,而第一级BL1必须硬件固化,否则整条链失去意义。你无法用烧录器改写BL1,因为它不在外部Flash里,而在硅片掩膜中。
签名和密钥到底存在哪儿
方法一:UEFI平台使用四个关键NVRAM变量存储密钥策略——PK(平台密钥)是最高权限密钥,决定Secure Boot开关状态;KEK(密钥交换密钥)用于更新db/dbx;db(签名数据库)存允许加载的公钥或哈希;dbx(吊销列表)存已被废止的签名记录。这四者构成分层授权体系,PK变更需物理按键确认,防止远程篡改。
方法二:ARM嵌入式平台常用eFuse熔丝存储root key哈希值。芯片上电后,PBL(Primary Boot Loader)读取eFuse中烧录的哈希→比对当前镜像签名对应公钥的哈希→不一致则拒绝加载。eFuse一旦熔断不可逆转,所以root key泄露即意味着整批设备信任链崩溃。
注意:db和dbx内容可由OEM厂商动态更新,但PK更换必须进入固件Setup界面手动操作,且多数主板要求同时插入USB密钥+输入管理员密码才能生效。
为什么OEM厂商死守私钥
所有签名都依赖私钥生成,而私钥一旦泄露,攻击者就能伪造任意合法签名的固件。高通、瑞芯微、NXP等芯片方案商把root key私钥锁在独立HSM(硬件安全模块)里,连自家工程师都无权导出;OEM厂商拿到的是经root CA签发的子CA证书,只能签发本厂固件,不能签发其他厂商镜像。这种隔离设计让A厂无法用B厂的签名刷机,也阻止了水货翻新后伪装成行货。
这一步操作起来很简单,直接把文件拖进去就行。











