0


Efuse介绍及安全启动浅析

+ - [4.1 bootROM](#41_bootROM_40)
    - [4.2 iRAM](#42_iRAM_46)
    - [4.3 eFUSE](#43_eFUSE_52)
    - [4.4 Security Engine](#44_Security_Engine_60)
    - [4.5 First Stage Bootloader(FSBL)](#45_First_Stage_BootloaderFSBL_64)
    - [4.6 根信任建立](#46__68)

1、Efuse是什么

eFuse(electronic fuse)

:电子保险丝,熔丝性的一种器件,属于一次性可编程存储器。

之所以成为

eFuse

,因为其原理像电子保险丝一样,

CPU

出厂后,这片

eFuse

空间内所有比特全为

1

,如果向一位比特写入

0

,那么就彻底烧死这个比特了,再也无法改变它的值,也就是再也回不去

1

了。

一般

OEM

CPU

厂商购买芯片后,一般都要烧写

eFuse

,用于标识自己公司的版本信息,运行模式等相关信息。
同时,由于其一次性编程的特性,我们又将其用在

Secure Boot

安全启动中。

2、OTP是什么

了解完

eFuse

后,我们就顺便了解一下

OTP
OTP(One Time Programmable)

是反熔丝的一种器件,就是说,当

OTP

存储单元未击穿时,它的逻辑状态为

0

;当击穿时,它的逻辑状态为

1

,也属于一次性可编程存储器

它的物理状态和逻辑状态正好和eFuse相反。

两者区别如下:

  • 从成本上讲,eFuse器件基本上是各个Foundry厂自己提供,因此通常意味着免费或者很少的费用,而OTP器件则通常是第三方IP厂家提供,这就要收费。
  • 从器件面积上讲,eFusecell的面积更大,所以仅仅有小容量的器件可以考虑。当然如果需要大容量的,也可以多个eFuse Macro拼接,但是这意味着芯片面积的增加,成本也会增加;OTPcell面积很小,所有相对来讲,可以提供更大容量的Macro可供使用。
  • OTPeFuse 安全性更好,eFuse的编程位可以通过电子显微镜看到,因此其存储的内容可以被轻易破解,但OTP在显微镜下无法区分编程位和未编程位,因此无法读取数据。
  • eFuse默认导通,存储的是"1",而OTP默认是断开,存储的是"0",因此OTP功耗也较eFuse小,面积也较eFuse

3、什么是Secure Boot

上面我们也了解过了,

efuse

主要用于记录一些

OEM

的产品信息,并且也会用于安全启动,那么安全启动是什么,为什么要做安全启动?

安全启动

Secure Boot

,其主要目的是:以限制消费者能力,防止消费者从软硬件层面,对产品的部分关键系统进行读写,调试等高级权限,达到对产品的商业保密,知识产权的保护。

安全启动的安全模型是建立在消费者是攻击者的假设之上,一般常见的操作有:

  • 刷机安装自定义的操作系统
  • 绕过厂家封闭的支付平台
  • 绕过系统保护,复制厂家保护的数字产品。

除此之外呢,有的比较专业的消费者,还可以:

  • 使用数字示波器监听 CPURAMeMMC 之间的数据传输来读取非常底层的数据传输。
  • 而且像 eMMC 这种芯片通常都是业界标准化的,攻击者甚至可以把芯片拆下来,然后用市面上现成的通用 eMMC 编程工具来读写上面的内容。

安全启动等级也有一个上限:这个上限通常是认为攻击者不至于能够剥离芯片的封装,然后用电子显微镜等纳米级别精度的显像设备来逆向芯片的内部结构。

简单来说:能成功攻破芯片安全机制的一次性投资成本至少需要在十万美元以上才可以认为是安全的。

4、CPU内部安全机制

4.1 bootROM
BootROM

是集成在

CPU

芯片的一个

ROM

空间,其主要用于存放一小段可执行程序,出厂的时候被烧录进去写死,不可修改。

CPU

在通电之后,执行的第一条程序就在

BootROM

,用于初始化

Secure Boot

安全机制,加载

Secure Boot Key

密钥,从 存储介质中加载并验证 First Stage Bootloader(FSBL);最后跳转进

FSBL

中。

4.2 iRAM

为了避免使用外部的

RAM

,支持

Secure Boot

CPU

都会内置一块很小的

RAM

,通常只有 16KB 到 64KB ,我们称之为 iRAM

这块

iRAM

上的空间非常宝贵,

bootROM

一般会用 4KB 的

iRAM

作为它的堆栈。

FSBL

也会被直接加载到

iRAM

上执行。

4.3 eFUSE

如上面所述,在

Secure Boot

中存放的是根密钥,用于安全启动的验证。

一般有两种根密钥:一个是加密解密用的对称密钥 Secure Boot Key,一般是 AES 128 的,每台设备都是随机生成不一样的;

标签: 安全 网络 java

本文转载自: https://blog.csdn.net/2401_86640535/article/details/141980576
版权归原作者 2401_86640535 所有, 如有侵权,请联系我们删除。

“Efuse介绍及安全启动浅析”的评论:

还没有评论