[读书笔记] 硬件安全 - 从 SoC 设计到系统级防御

硬件安全 - 从 SoC 设计到系统级防御

原作名《HARDWARE SECRURITY - A HANDS-ON LEARNING APPROACH》

机械工业出版社 China Machine Press

作者 : Swarup Bhunia and Mark Tehranipoor

建议直接看飞书文档,更加清晰,CSDN的md格式有点问题。

飞书链接:https://tq6ulf6ag1s.feishu.cn/docx/D6IXdmuSYoypOhxdzxPc9Pkjnoc

[读书笔记] 硬件安全 - 从 SoC 设计到系统级防御_第1张图片

本书中的英文缩写

HDL 指硬件描述语言(Hardware Description Language)

译者序

  • 讲了一个新闻事件:2018 年的 Meltdown(熔断)和 Spectre(幽灵)两个处理器新型漏洞被发现利用。1、影响范围大,影响了几乎所有的 Inter CPU 、AMD CPU 和主流的 ARM CPU 。2、难以修复,漏洞是由芯片底层设计的缺陷导致的,需要依赖 OS 级的修复程序,且修复程序本身具有诸多问题。3、漏洞的隐蔽性强:两个漏洞的存在时间均超过 20 年,是“一代处理器都存在潜在的灾难性缺陷”。
  • 本书为硬件安全入门学习材料

第一章 硬件安全概述

主要讲述计算系统概述,硬件安全和硬件信任,IC 设计流程中的安全问题,硬件安全史

硬件安全的硬件专指硬件。
安全的类别:1、硬件安全:关注硬件的攻击和保护,它是系统安全性的基础,为与之交互的系统的其他元件提供了可信基础。确保软件栈的安全可靠运行,保护存储的资产,提供相应的隔离。
2、软件安全:关注针对软件的恶意攻击,以及在潜在安全风险下确保软件可靠运行的技术。
3、网络安全:研究针对连接多个计算机的网络的攻击行为,以及在潜在攻击下的可靠性。
4、信息安全:侧重于通过防止信息的非法访问、使用、修改或销毁以确保其机密性和可用性。主要基于各种密码措施。

一、计算系统概述

二、计算系统的不同层次

[读书笔记] 硬件安全 - 从 SoC 设计到系统级防御_第2张图片

二、电子硬件:层级:所有硬件 -> 印制电路板 -> 电子元件

三、硬件安全

针对硬件安全的研究相对较晚,因此硬件常被用作系统的信任锚(i.e.,信任根)。随着电子硬件生产的新趋势,基于 IP 核的芯片设计、长且分散的电子元件制造分销链,导致了众多安全问题。

四、攻击、漏洞和对策

[读书笔记] 硬件安全 - 从 SoC 设计到系统级防御_第3张图片
[读书笔记] 硬件安全 - 从 SoC 设计到系统级防御_第4张图片

五、硬件安全发展史


第一部分 电子硬件的背景知识

第二章 电子硬件概览

一、数字逻辑:指用数字表示数字电路的信号和序列。

1、二进制逻辑:正电压表示为逻辑1、高、真(true);无电压表示为逻辑0、低、假(false)

2、数字逻辑门:放图

[读书笔记] 硬件安全 - 从 SoC 设计到系统级防御_第5张图片

3、布尔代数:放图

[读书笔记] 硬件安全 - 从 SoC 设计到系统级防御_第6张图片

4、时序电路:现代数字逻辑电路分为组合逻辑和顺序逻辑(有存储功能)

①时序电路元件:触发器(锁存器),D型、T型(反转)、JK型

②计时参数:设置时间、保持时间、传输延迟

二、ASIC 和 FPGA

1、ASIC(Application - Specific Integrated Circuit)专用集成电路

为特定用途制造的集成电路,性能高、功能复杂、功率消耗低、单元较小、单位成本低,但开发周期长、设计流复杂、初始成本高、偶发成本高,在大批量生产上具有优势

2、FPGA(Field-Programmable Gate Array)现场可编程门阵列

对已制造完成的芯片进行配置的集成电路,由一组可编程的逻辑块和可重构连接器构成,是现场可编程的。逻辑块可通过重新配置连接器进行连接,配置不同的功能。其灵活、上市时间快、设计简单、可升级而不改变硬件,但功率消耗高、性能中等、单元成本高、资源浪费。在中等批量的生产上具有优势。

三、印制电路板PCB - Printed Circuit Board )

1、PCB的设计流程:放图

[读书笔记] 硬件安全 - 从 SoC 设计到系统级防御_第7张图片

2、PCB生产流程:轮廓、创建铜线路、钻孔、焊上元件、Gerber文件

四、嵌入式系统:基于微处理器或微控制器的系统,为特定功能而设计。微控制器是一个整体,包括 CPU。其搭载的软件通常需要工作在内存较少的简单环境中。

五、硬件-固件-软件交互


第三章 片上系统的设计与测试

本章讲述 SoC 的设计流程、SoC 测试验证的流程和原理

一、基于 IP 的 SoC 生命周期

SoC(system on chip)片上系统 是一个包含给定系统所需所有元件的集成电路,通常包括模拟、数字和混合信号 IP 核心。①②③④⑤⑥⑦⑧⑨⑩

  • 1、SoC的生命周期

①设计:制定设计规范,随后将所有IP内核集成,并植入DFT结构,生成网表和GDSII格式文件

②制造:在晶圆片上进行光刻和化学处理,剔除缺陷产品

③装配:即IC封装,装上外壳,并提供电气连接和散热的热路径,以保护芯片

④发行:分销

⑤系统集成:与多个器件一同集成为一个系统

⑥退役

  • 2、SoC的设计流程

        ①制订设计规范,并指定一个IP列表实现既定规范。(3PIP的购买:软IP核以HDL交付;硬IP核以GDSII交付;固定IP核使用通用库交付。
    
        ②将所有IP集成,加入DFT结构,生成RTL描述(完整的系统级数字电路描述)和网表。
    
        ③门级网表被转换为基于逻辑单元格和I/O几何图形的物理布局
    
        ④进行测试,测试完毕后,发往代工厂进行制造
    

二、SoC 的验证测试流程

验证阶段又称硅前验证,即在流片前确保从设计规范到网表的功能正确和正确转换的过程;

测试阶段,是流片后的制造测试和生产测试的过程。

  • 1、SoC的验证流程

        ①对IP进行单独验证。
    
        ②基于接口协议,对芯片中各块接口进行验证
    
        ③系统级验证,通过仿真软件进行硬件和软件的验证。分别进行功能验证和结构验证。
    
        ④对IC的物理布局进行验证。验证完成。
    
  • 2、SoC的测试流程

        ①晶圆测试,为晶圆提供电气刺激进行测试
    
        ②识别制造缺陷或故障,使用自动测试模式生成工具ATPG
    
        ③对芯片进行表征,找出芯片的理想工作参数
    
        ④功能测试和结构测试
    
        ⑤封装模具的老化应力测试
    

三、调试性设计

SoC 调试,即硅后验证,在第一个硅制造后进行。调试支持由芯片上的调试性设计架构和软件组成。其策略是将接入点放置在系统中,由它的接口获得和控制芯片内部信号。电子系统中有三种元件需要测试:数字逻辑、内存块、模拟或混合信号电路。制造测试成本主要取决于测试数据的数量和测试时间

  • 1、DFT调试技术概览

        ①扫描:对所有在扫描设计中的存储元件进行访问和控制。
    
        ②扫描触发器(SFF):性能开销低,但速度慢
    
        ③扫描链:将扫描触发器连成一串,然后将扫描值与SO值(扫描输出值)进行比较
    
        ④扫描测试压缩:利用少量的测试的重要值来减少测试数据和测试时间
    
        ⑤边界扫描:边界扫描技术利用边界扫描链,在芯片内部的信号线上插入测试信号,从而实现对芯片内部电路的测试和诊断。有效降低了PCB制造成本。
    
  • 2、全速延迟测试:用于检测计时相关故障的方法

        ①故障类型:转换故障(慢升和慢降造成的延迟),路径延迟故障(路径上的累计延迟)
    
        ②两种方法:LOS和LOC
    

第四章 印制电路板 :设计与测试

本章讲述 PCB 的历史、生命周期、设计验证、装配流程

一、PCB 的历史

在 PCB 量产前,通常使用点对点的飞线连接;早期 PCB 是在电路板材料上钻孔,并在孔中植入黄铜。20 世纪 20 年代,PCB 诞生,申请了第一个专利;20 世纪 30 年代到 40 年代,PCB 在二战中得到广泛运用;20 世纪 50 年代,发明了酸刻蚀铜金属电路板的方法;20 世纪 80 年代,表面贴装技术(Surface Mount Technology,SMT)的发展在 1980 年代引入了新的 PCB 制造和组装方法;现代,三维 PCB、柔性 PCB。

二、PCB 的生命周期

PCB 的生命周期与 SoC 的生命周期类似,设计规范->PCB 设计->PCB 原理图->PCB 布局-> 制造和装配-> 检测验证

三、PCB 的设计验证

恶意攻击者可以利用当今复炸而高度集成的 PCB 设计,借助隐藏孔或无源嵌入式元件,以硬件木马的形式篡改或植入额外的恶意电路,目前行业并无有效的安全措施来防御。

  • 1、PCB检查

        ①自动光学检查(AOI):多次拍照,拼接成一个完整的大图像,与设计图进行比对。
    
        ②自动X射线检查:利用不同材料对X射线的吸收率不同,对PCB进行检查
    
  • 2、PCB测试

        ①芯片内测试:万用表原理
    
        ②功能测试
    
        ③JTAG边界扫描测试
    

第二部分 硬件攻击:分析、示例和威胁模型

第五章 硬件木马

本章主要讲述了 SoC 的设计制造流程中的硬件木马(Hardware Trojan)插入威胁、HT 特性、FPGA 中的 HT、HT 的分类、信任基准、硬件木马的防御。由于硬件木马的硬件级别的植入,软件级别的对此可能不足以应对由硬件造成的威胁。

①②③④⑤⑥⑦⑧⑨⑩

一、SoC 的设计制造流程中的硬件木马(Hardware Trojan)插入威胁

详情见第三章

二、硬件木马的特性

硬件木马(Hardware Trojan)指对电路设计的恶意的、故意的修改,在部署电路时会导致恶意行为(例如通过 I/O 输出密钥、通过侧信道功率输出重要信息、增加系统延迟、减半加密轮数)。

  • 1、结构:基本结构有两个:触发器和攻击载荷。当触发器监测到预期的事件,攻击载荷就会执行恶意行为。触发条件可以是某内部节点上的 n 位值、重复发生某事件 210 次、到达某个温度等,以增加反检测能力。

  • 2、硬件木马示例

        ①加密引擎中的木马:攻击载荷可以是由攻击者自定义的虚拟密钥而不是用于敏感加密的实际加密密钥,通过侧信道泄露硬件密钥。例如恶意片外泄露技术(MOLES),通过功率侧信道泄露硬件密钥。
    
        ②通用处理器中的木马:攻击者在系统中植入后门,根据攻击者的命令输入禁用安全启动机制。并在硬件木马的帮助下实现深层次攻击,如利用缓冲区溢出攻击绕过内存保护机制或通过认证绕过漏洞来访问特定资产。
    

三、FPGA 中的硬件木马

FPGA 用途广泛,从电信系统到导弹制导都有应用。但 FPGA 的木马可以通过 IP 核的形式载入通用 FPGA 结构中,并且有大量可被控制的可重构逻辑单元,攻击者从而利用 FPGA 通用系统进行攻击。存在 IP 依赖木马和非 IP 依赖木马。

四、硬件木马的分类

分类的主要依据是硬件木马的物理、激活、功能特性。

放图

五、信任基准

信任基准是一种基准电路测试,在难以检测、影响较大的位置故意添加木马,用以比较木马带来的影响和不同木马检测技术的有效性。

  • 1、基准命名约定:DesignName - Tn#$,e.g.,MC8051-T1010:木马 10 号被插入 MC8051 的 1 号位置,版本为 0

  • 2、信任基准样例

        ①开发制造阶段的基准样例:EthernetMAC10GE-T710,由组合器触发的木马程序,查找特定的16位向量
    

六、硬件木马的防御

  • 1、木马检测:木马检测时最简单、常用的方法,分为硅前、硅后两阶段。

        ①硅后检测:1、破坏性逆向工程:检测能力强,可以检测到任意恶意修改
    
                           2、功能测试:检测能力弱,难以触发木马
    
                           3、侧信道信号分析:测量硬件参数来检测硬件木马(如延迟、功率、温度、辐射),将其与正常的(破坏性逆向工程得到的结果)进行对比
    
        ②硅前检测:1、代码覆盖率分析:即在设计阶段的功能验证期间执行代码行的百分比。木马可能逃脱
    
                          2、形式验证:如符号执行、模型检查、信息流,在验证3PIP方面有效。
    
                          3、结构分析:用定向指标将低激活概率的信号或门电路标记为可疑。
    
  • 2、信任设计:检测静默的、低功率消耗的硬件木马更有效的一种方式。

        ①促进测试:字面意思,如增加运行时监控模块
    
        ②木马植入防范:逻辑混淆、伪装、功能性填充单元(将布局填满)。通过重新排序逻辑门、加入额外的逻辑功能或者使用不同的设计方法来实现。
    
        ③可信计算:软件级别的检测,是基于不可信元件的可信计算,是最后一道防线。主要有TPM (受信任的平台模块)、安全启动 (Secure Boot)、远程验证 (Remote Attestation)、封装 (Sealing)组成。
    
        ④分割制造:字面意思,降低代工厂的不可信水平
    

第六章 电子供应链

本章主要讲述电子供应链上的安全隐患及应对措施。

一、安全隐患

  • 1、硬件木马
  • 2、CAD工具:CAD 工具只注意可能无意间引入漏洞,CAD 设计主要考虑传统指标(如面积、产量、可测试性),而忽略了安全性。
  • 3、测试/调试工具:无法避免其在电子元件上的使用,但其允许攻击者观察或控制其内部状态。

二、信任问题

  • 1、IP滥用:即生产超过约定数量的元件
  • 2、IP盗版:非法复制和修改
  • 3、零件不合格
  • 4、集成电路****逆向工程:RE
  • 5、文档伪造:即数据造假
  • 6、集成电路再标记、回收:放图

三、对策

  • 1、木马检测、安全检查

  • 2、IP加密

        ①硬件锁:硬件锁通常是一个外部USB设备,其内部包含了一个芯片,这个芯片具有独特的识别码、加密功能和存储能力。软件开发者可以将授权信息、加密算法和关键数据存储到硬件锁中,然后将这些功能与其开发的软件绑定在一起。软件启动时,会与连接的硬件锁进行通信,验证硬件锁的身份。这通常包括向硬件锁发送请求,硬件锁返回唯一的识别码供软件进行验证。只有在硬件锁通过验证后,软件才会继续运行。
    
        ②时间锁:类似硬件锁,通常与硬件锁结合使用。
    
        ③追踪/水印技术:将特定的标识信息嵌入到IP中,以便在未经授权使用的情况下进行追踪。提取水印后进行水印比对,例如物理不可克隆函数(Physical Unclonable Function, PUF)利用微小的物理变异来生成唯一的标识信息。这些微小的变异是由制造过程中的随机性和不均匀性引起的,使得每个硬件实例都具有独特的特性。PUF可以用于实现设备的唯一标识、认证和密钥生成。
    
  • 3、电气测试、物理检查


第七章 硬件 IP 盗版和逆向工程

一、硬件 IP

不再赘述

二、FPGA 的安全问题

  • 1、FPGA 的设计

        ①将总设计拆分成小段,每一段都适合于FPGA内部特定的可编程硬件元件,随后合成,输出一个门级网表
    
        ②将几个门合并成一个LUT(以十六进制显示)作为配置位,放置并路由该网表
    
        ③配置位连接成一个文件,即位流
    
  • 2、FPGA 系统的生命周期:与硬件 IP 类似

三、FPGA 位流攻击

  • 1、IP窃取

        ①克隆:配置不当导致可实现位流回读;基于SRAM的电子探针拦截位流传输的位流探测;窃取解密密钥
    
        ②位流逆向工程:厂商没有标准化位流格式,逆向难度较大
    
        ③IP滥用:#
    
  • 2、IP篡改

        ①故障注入:有意引入系统的故障来削弱或破坏目标系统的功能、机密性、完整性或可用性。这种攻击方法通常是为了绕过系统的安全措施、窃取敏感信息或造成系统崩溃。故障注入攻击可以利用系统对故障的不恰当处理来获得攻击者所需的结果。
    
        ②直接篡改:篡改未加密的位流以实现硬件木马,重点修改未使用的资源(常为一串0,有助于轻松修改)
    
        ③硬件木马:#
    
        ④未经授权的重新编程:字面意思
    

第八章 侧信道攻击

侧信道攻击(Side-Channel Attack,SCA)是一种利用系统在运行过程中产生的辅助信息(侧信道)来获取敏感信息的攻击方式。侧信道攻击通过分析系统在其他方面的物理特性,如功耗、电磁辐射、执行时间等,来获得额外的信息,从而窃取敏感数据。测信道攻击对加密设备,尤其是智能卡和物联网设备构成重大威胁。

一、侧信道攻击的历史

[读书笔记] 硬件安全 - 从 SoC 设计到系统级防御_第8张图片

二、功率分析攻击

需要对设备进行物理访问,主要用于提取密码系统的密钥,分为简单功率分析(SPA)、差分功率分析(DPA)、相关功率分析(CPA)等。功率跟踪指分析过程中捕获的每个功率信号

  • 1、功率消耗侧信道泄露的来源:影响设备功率的因素有两个:动态功率、漏功率(无用)。动态功率由器件内晶体管开关活动引起。e.g.:逆变器功率 P 10 P_{10} P10 P 01 P_{01} P01产生的功率远大于 P 00 P_{00} P00 P 11 P_{11} P11,后两者功率消耗约等于 0。
  • 2、功率信号采集:将示波器连接在电源和目标器件的 Vdd 或 Gnd 引脚之间的精密电阻,测量其的压降。利用算法消除噪声,使信号清晰。
  • 3、简单功率分析 (Simple Power Analysis - SPA):通过目视观察即可直观的识别出信息。
  • 4、差分功率分析 (Differential Power Analysis - DPA )

用于窃取密码设备或加密系统中的秘密信息,如密钥。DPA 利用了加密设备在执行加密操作时所消耗的电力或功率的变化,以及这些变化与密钥相关的关系。DPA 的基本思想是通过测量设备在不同密钥值下的电力消耗来分析其差异。当设备执行加密操作时,其电路状态和开关活动会因密钥的不同而产生微小的变化,进而影响电力消耗。从而通过对比不同操作状态下产生的信号差异来获取敏感信息。

  • 5、对策
  1. 噪音引入:在设备的电路中引入噪音可以使功耗模式变得更加复杂,从而减少攻击者分析的准确性。这可以通过在电路中添加噪音电路、频率变化电路等方式实现。
  2. 电源噪音过滤:通过使用电源噪音过滤器可以减少来自电源的干扰,从而使功耗数据更加干净,难以分析。这有助于降低攻击的成功率。
  3. 随机化操作:在加密操作中引入随机性,使每次操作的功耗模式不同。这会使攻击者难以从多次操作中获取一致的功耗模式。
  4. 硬件隔离:将敏感的加密操作或密钥存储在物理隔离的硬件模块中,以减少攻击者通过功耗分析获取信息的可能性。
  5. 功耗平衡技术:在执行加密操作时,通过控制电路的开关活动和功耗分布,使得不同操作之间的功耗变化相对均匀。这样攻击者难以分辨不同操作之间的功耗模式。
  6. 使用低功耗算法:选择使用低功耗的加密算法,这样攻击者获取的功耗数据中的变化会更加微弱,难以分析。
  7. 协议级防御:在通信协议中引入随机性、模糊性,或者使用对抗攻击的防御策略,从而使攻击者难以从通信流量中获取有用的信息。
  8. 密钥分割和散列:将密钥分成多个部分,在执行加密操作时,只有部分密钥被用到,从而减少攻击者获取完整密钥的可能性。

三、电磁侧信道攻击

电磁测信道攻击主要测量运行中集成电路发出的电磁波,通过电磁分析能够捕捉空间信息,识别电磁信号位置。电磁信号可以通过近场探头或天线截取,并转化为电流信号。去除噪声后限制频带即可应用于电磁分析。

  • 1、简单电磁分析(Simple Electromagnetic Analysis - SEMA):在简单电磁分析(SEMA)攻击中,攻击者通过观察痕迹直接推断出密钥。它对于非对称加密实现非常有效。通常,只需要一些痕迹,尽管攻击者需要对加密设备和加密算法的实现有深入的了解。易受 SEMA 攻击的实现将根据该位是否执行不同的操作密钥的值是 0 或 1,这将使用不同的功率和/或不同的芯片组件。
  • 2、差分电磁分析(Differential Electromagnetic Analysis - DEMA):差分电磁分析 (DEMA) 攻击更为复杂,但对于对称加密实现有效。差分体现在对设备在不同操作状态下产生的电磁泄漏信号的比较上。
  • 3、对策:与应对功率分析的对策基本一致

四、故障注入技术

故障注入攻击 (Fault Injection Attack) 是一种攻击手段,通过引入故障来改变系统的正常运行,从而达到攻击目的。这种攻击方法通常针对硬件组件,但也可以针对软件。故障注入可以通过多种方式实现,例如通过电磁干扰、电压变化、温度变化或特定的软件指令。

  • 1、 常见的故障注入攻击方法:

    1. 电压毛刺:基本的故障注入技术,通过产生电压的异常(例如尖端放电)来实现故障。
    2. 温度注入:通过改变设备的温度,引起设备的故障。
    3. 电磁注入:使用强磁场干扰设备的电子信号,会均匀的影响整个电路。
    4. 篡改时钟引脚:通过干扰系统时钟,发送故障的时钟信号,引发设备的故障。
    5. 软件注入:利用软件漏洞或特定的指令序列来引发故障。
  • 2、对策

    1. 基于关键操作的复制:重复加密操作,并比较两个输出,若不同则系统进入故障注入防御状态。复制可以在时间和空间上完成。空间复制即利用冗余的电路块来重新计算特定的加密任务;时间复制即在不同时间执行重新计算。
    2. 基于错误检测方案:当设备检测到系统在故障中运行时,将会禁用设备的关键功能。(效率较低)

五、时序攻击

时序攻击(Timing Attack)是基于目标系统响应时间的测量来获取有关其内部操作的信息。通过分析这些时序信息,攻击者可能能够推导出加密密钥或其他敏感信息。

时序攻击的基本思路是:当计算机执行不同的操作时,所需的时间可能会有所不同。例如,某些密码算法在处理特定的输入或特定的密钥部分时可能需要更长或更短的时间。攻击者可以通过测量处理不同输入时的响应时间来获得有关系统内部操作的信息。通常与其他方法共同使用。

1、时序攻击的例子:

2、如何防御时序攻击:

六、隐蔽信道

“隐蔽信道”(Covert Channel)是一个计算机安全术语,指的是在计算机系统中,不被预期用于通信的途径或机制被用于传递信息。这种通信途径可能会被攻击者用于绕过安全策略或机制,从而秘密地传输信息。隐蔽信道常常是安全体系中的一个难以处理的问题,因为它们常常利用了正常操作或功能的副作用来传递信息。较难利用。

1、隐蔽信道的类型


第九章 面向测试的攻击

可测试性和安全性本质上是相互矛盾的。安全性依赖于使信息变得模糊和难以理解。扫描可以将电路设置为任何状态,并将芯片停止在任何中间状态进行分析,扫描链成为密码分析容易利用的测信道。

一、基于扫描的攻击

  • 1、基于扫描的可观测性攻击:可以随时获取系统快照,寻找重要寄存器,从而获得密钥。
  • 2、基于扫描的可观测性/可控性攻击:除了方法一外,还能使扫描链成为故障注入攻击点,使得攻击很容易重复。
  • 3、威胁模型:扫描辅助差分攻击
    [读书笔记] 硬件安全 - 从 SoC 设计到系统级防御_第9张图片
  • 4、防御策略 : 动态模糊测试、低成本安全扫描、开发锁、扫描接口加密(加密输出)

二、基于 JTAG(边界扫描)的攻击

JTAG(Joint Test Action Group)是一种用于测试和调试电子设备的标准接口,通常用于在生产和维护过程中进行测试、调试和编程。

  • 1、JTAG攻击:JTAG 不知道芯片对外部命令的反应,JTAG 很容易在软件层面被控制。例如绕过 Xbox 的认证和入侵 iPhone 等。

  • 2、JTAG防御
    1、使用后销毁 JTAG
    2、JTAG 密码保护

    3、将 JTAG 隐藏在系统控制器后


第十章 逆向工程(物理攻击与对策)

逆向工程(Reverse Engineering)是一种通过分析已有的产品、软件或系统,来了解其设计、功能和工作原理的过程。逆向工程可以应用在各种领域,包括软件、硬件、网络和电子设备等。

一、芯片级逆向工程

芯片通常由裸片、引线框架、引线接合和成型封装材料组成。通常使用倒装芯片的方法,其中的电气连接靠导电溶胶来实现。在芯片级,逆向工程的目标是找到封装材料、引线接合、不同的金属层、触点、通孔和有源层及金属层之间的互联。

[读书笔记] 硬件安全 - 从 SoC 设计到系统级防御_第10张图片

  • 1、解封装

芯片解封装是将芯片封装材料(如塑料或陶瓷)移除,暴露出内部电路和结构的过程。这允许对芯片的内部设计、功能和连接进行详细分析和研究,通常用于逆向工程、芯片验证和安全研究。解封装需要使用化学、热或机械方法,但需要注意可能会破坏芯片样本。

  • 2、分层

现代芯片由几个金属层、钝化层、通孔、触点、多晶硅和有源层组成。逆向工程师必须对芯片进行横截面成像,使用 SEM 或 TEM 来识别层数、金属材料、层厚、通孔和触点。横截面成像的知识非常关键(即层的厚度),因为它决定了分层必须如何进行。

  • 3、成像:即拍照、X 光

  • 4、后处理

        ①图像处理:形成各层的图像
    
        ②注释:记录晶体管等元件位置,各层的互联、通孔和触点。
    
        ③门级原理图提取
    
        ④从门级原理图中提取高级网表
    

二、芯片级反逆向工程

  • 1、伪装:布局层次的技术,例如单元伪装和虚拟触点。让攻击者无法识别其功能。
  • 2、混淆:通过内部设计转换某元件功能,实现混淆

三、探测攻击

描述

探测攻击是一种通过观察芯片的物理硅实现来绕过安全措施的侵入方法。作为一种侵入式攻击,攻击者可以直接访问目标设备的内部线路和连接并提取敏感信息。与逆向工程相结合,这构成了严重的威胁。典型的探测攻击将从解封装开始,以暴露硅芯片。完成后,攻击者就可以开始对设备进行逆向工程。通过提取网表,人们可以开始了解功能并识别目标信号。一旦攻击者找到目标信号并将其映射到设备上的坐标,他们就可以开始铣削。通过铣削,它们暴露了设备的内部电线。然后他们可以形成电气连接并开始提取信息。为了防止此类攻击,设计人员必须识别可能的目标并采取适当的措施。此类目标的示例包括:

  • 加密密钥
  • 固件和配置比特流
  • 设备上受保护的数据
  • 加密随机数

一些常见的对策包括屏蔽和 T 专用电路。屏蔽层包含一层电线,其信号被监控以防止铣削引起的干扰。T 专用电路旨在按顺序分割信号,或者通过要求攻击者使用 t + 1 个探测器来提取 1 位信息来耗尽攻击者的资源。其他方法包括用于检测解封的光传感器和用于防止重复模式的扰线信号。

四、侵入性故障注入

聚焦离子束(FIB)是最精确和最强大的故障注入技术之一,攻击者可以编辑电路、重建丢失的总线、切断现有的导线,其工作精度为 1nm。


第十一章 PCB 攻击:安全挑战和脆弱性

一、现场更改 PCB

中断或恶意更改 PCB 的功能。例如:在 PCB 信号线上添加电容使其电气连接中断、将 PCB 信号轨迹的宽度变窄以增加其电阻、外接恶意 IC、通过重新连接路由电路以避开或替换安全块等。

二、破解芯片攻击

破解芯片攻击是现场更改 PCB 的重要应用。例如绕过 Xbox 的安全检测。

[读书笔记] 硬件安全 - 从 SoC 设计到系统级防御_第11张图片


第三部分 硬件攻击防范对策

第十二章 硬件安全原语

硬件安全原语是一些基本的、可信赖的硬件组件或技术,用于构建安全的计算机系统和设备。它们通常设计用于提供硬件级别的保护,以确保系统的安全性和可靠性。作为安全环境的硬件级构建模块,在确保电子芯片和系统可信、真实、完整方面扮演着重要角色。

根据柯克霍夫原则,密码系统的安全性应该完全依赖于密钥,而不是系统设计(即没有实现上的系统缺陷或测信道泄露)。因此,密钥的强度直接决定了安全系统的强度。

一、前置知识

  1. CMOS 器件的性能:CMOS 是 “Complementary Metal-Oxide Semiconductor” 的缩写,翻译为"互补金属氧化物半导体"。它是一种广泛用于集成电路(IC)制造中的半导体技术。CMOS 设备正面临着制程变异和性能降级。制程变异,即器件制造过程中产生的大量系统和随机误差。实时/环境波动、老化/磨损机制。

二、PUF(物理不可克隆函数/physical uncloneable function)

  • 1、概述:PUF 能够利用设备内在的固有特征生成数字指纹。理想情况下,它是一种密码学安全的单向函数,输入与输出之间没有任何可预测的映射关系。PUF 的熵来自器件制造过程中的固有误差。

  • 2、PUF的进步性:PUF 消除了密钥存储的要求,密钥可以通过输入触发器按需生成。加密的安全性在于密钥的保密性,PUF 不需要存储密钥,不存在密钥被窃取的风险。此外,任何针对 PUF 的物理攻击,都会改变 PUF 的内在固有特征来彻底改变 PUF 的响应。

  • 3、PUF的分类:大致可分为强 PUF 和弱 PUF。强 PUF 能够抵抗任何碰撞和重放攻击。一般会在 PUF 上再加一层封装,提高安全性。

  • 4、PUF 的评估标准:PUF 的不可克隆性表明它不能被软件模型替换而生成相同的响应,且其自身必须难以被复制。PUF 应当具有攻击弹性,即当 PUF 被控制时,不能按照攻击者的意愿生成正确的响应。PUF 的错误率应该为 0。PUF 还应具有不可预见性、扩散性。

  • 5、常见的 PUF 架构:

    1. 仲裁器 PUF:利用仲裁器来实现随机 01
    2. RO PUF:利用环形振荡器来实现随机 01
    3. SRAM PUF
    4. 蝴蝶 PUF
    5. 轻量级 PUF
    6. 双稳态环 PUF
  • 6、PUF 的应用:

    1. 密钥生成
    2. 设备认证
    3. 软件和 IP 许可
    4. 硬件测量

三、TRNG(硬件随机数生成器 / True Random Number Generator)

  • 1、概述:TRNG 是一种硬件设备或软件程序,用于生成真正的随机数,这些随机数是通过物理过程或环境噪声等随机事件产生的。TRNG 生成的随机数具有高度的不可预测性和不可重复性,因此在密码学、模拟和模型验证等领域中被广泛应用。与伪随机数生成器(PRNG)不同,TRNG 不依赖于算法或种子,因此更加安全可靠。

  • 2、TRNG 的评估标准:主要取决于随机性,应该不具有可预测性。

  • 3、常见的 TRNG 架构:

    1. 基于噪声的 TRNG
    2. 基于振荡器的 TRNG
    3. 基于存储器的 TRNG
  • 4、TRNG 的应用:与 PUF 类似

四、已知的挑战和攻击

  • 1、针对 PUF:
  1. 针对 PUF 的强建模攻击
  2. 环境和老化对 PUF 的影响:出错率增加,PUF 的输出不再可靠
  3. 克隆 SRAM-PUF
  • 2、针对 TPNG:
  1. 环境和老化对 TRNG 的影响:熵源的随机性下降,TRNG 的输出不再可靠

第十三章 安全评估与安全设计

本章内容重复过多,不再展开。

第十四章 硬件混淆

一、引言

  • 1、定义:“混淆”表示模糊或者掩盖信息的真实内容或产品的功能行为以保护内在 IP 的方法。在密码学和软件中,混淆器 Z 的表现形式是“编译器”,它将程序重构为混淆形式 Z§。Z§和 P 具有同样的功能,但攻击者无法通过 Z§构造 P。

二、混淆技术概述

  • 1、RTL(Register-Transfer Level 寄存器传输级别)混淆

基于密钥的软件 IP 混淆。

  • 2、门级混淆

同样为基于密钥的软件 IP 混淆。

  • 3、指令集混淆:每个处理器都有底层指令集架构(Instruction Set Architecture,ISA),ISA 描述命令和数据的类型、地址空间和支持的操作码。ISA 充当计算机软件和硬件交互的媒介。

    1. 为了降低 ISA 的可预测性,我们进行指令集混淆,对指令集进行加密(或者某种编码),即使代码仅能够在当前计算机上运行,而在其他计算机上保持锁定状态,保证了漏洞(如缓冲区溢出)难以扩散。
    2. 指令集混淆还可以通过在代码指令流中特意插入垃圾字节,导致反汇编的失败,而不影响指令的运行(因为没有那些指令)。
  • 4、布局级混淆:硬件混淆方法。

    1. 分割制造技术:将高精尖的部分分割交由代工厂制造,再用可信任的技术相对落后的可信任工厂进行拼接,很好的保护了硬件的连接信息,从而保护了 IP。
    2. 伪装:在关键部件处使用可配置单元,实现伪装。
    3. 2.5D/3D IC 混淆:通过"Wire-lifting”线路提升技术,增加布线和门,实现混淆。
  • 5、PCB混淆:在板上插入置换块,密钥正确时才能正常工作。

三、硬件混淆方法

  • 1、逻辑锁定

硬件混淆中的逻辑锁定(Logic Locking)通过在设计中引入附加逻辑门和控制信号,使得仅有授权用户能够正确配置电路,从而增强了硬件的安全性。

  1. 逻辑锁定单元(LLUs):逻辑锁定单元是逻辑锁定的基本单元,通常是一组逻辑门和相关的控制逻辑。LLUs 会对电路的某些部分进行锁定,使其在未提供正确的解锁密钥或配置之前无法正常工作。
  2. 解锁密钥(Unlock Key):解锁密钥是用于配置逻辑锁定单元的密码或密钥。只有具有正确解锁密钥的用户或设备才能解锁电路并使其正常工作。
  3. 功能保持性:逻辑锁定单元不仅用于锁定电路,还可以用于保持电路的某些功能,以便在解锁后继续正常运行。这有助于确保合法用户能够使用电路。
  4. 虚假路径(False Paths):虚假路径是一种路径,它不会对电路的正常功能产生影响,但可能会干扰对电路的逆向工程尝试。通过引入虚假路径,可以增加电路的复杂性和混淆度,使逆向工程变得更加困难。
  5. 多层逻辑锁定:有些设计使用多层逻辑锁定,其中多个逻辑锁定单元级联使用,以增加安全性。在这种情况下,要解锁电路,用户必须提供多个解锁密钥。

逻辑锁定技术已知攻击威胁:

① 密钥致敏攻击(Key Sensing Attack是一种密码分析攻击方法,旨在通过监测或感知目标系统的电磁辐射、功耗、电流波形等物理信号,以获取密钥或密码信息。这种攻击方法利用目标系统在执行密码操作时产生的物理信号的微小变化来推断密码或密钥的值。密钥致敏攻击通常需要专业的实验设备和技能,因此属于高级威胁。

以下是密钥致敏攻击的一般步骤和特点:

  1. 监测目标系统:攻击者需要物理接触目标系统或在较短的距离内监测目标系统的物理信号。这可以通过放置传感器或监测设备来实现。
  2. 收集信号数据:攻击者收集目标系统在执行密码操作时产生的物理信号数据。这可能包括电磁波辐射、电流消耗、功耗变化等。
  3. 信号分析:攻击者对收集到的信号数据进行分析,以检测与密码或密钥相关的模式或特征。这可能涉及信号处理和数据挖掘技术。
  4. 推断密码或密钥:通过分析物理信号的微小变化,攻击者试图推断出目标系统使用的密码或密钥的值。

密钥致敏攻击的成功取决于多个因素,包括目标系统的物理特性、密码算法的实现方式以及攻击者的技能水平。防御此类攻击的方法包括物理层面上的安全措施,如屏蔽、隔离和干扰物理信号,以减少泄漏的信息。

② 布尔可满足性攻击(Boolean Satisfiability Attack,通常缩写为 SAT 攻击)能够有效的从混淆设计中发现正确密钥。它旨在通过求解布尔可满足性问题来破解密码或攻击密码系统。SAT 攻击通常用于密码破解、硬件验证和形式方法等领域。

SAT 攻击的基本思想是将密码或密码系统的特定属性表示为布尔方程,然后使用 SAT 求解器来查找方程的解。如果方程有解,那么找到的解可能对密码进行破解或攻击密码系统具有重要意义。

以下是 SAT 攻击的一般步骤和特点:

  1. 建立布尔方程:攻击者将密码或密码系统的特定属性转化为布尔方程。这可以包括密码的比特表示、密码验证条件、访问控制规则等。
  2. 选择 SAT 求解器:攻击者选择适当的 SAT 求解器,这是一种用于解决布尔可满足性问题的计算工具。SAT 求解器尝试找到方程的满足解(如果存在)。
  3. 求解方程:攻击者使用 SAT 求解器来求解布尔方程。如果求解器找到一个满足方程的解,那么这个解可能包含了密码的信息或用于攻击密码系统的关键信息。
  4. 分析结果:攻击者分析求解器的输出,以确定是否找到了密码或对密码系统的有利信息。如果找到了密码,攻击者可以成功破解密码或绕过密码验证。

SAT 攻击的有效性取决于多个因素,包括密码系统的复杂性、方程的表示方式和 SAT 求解器的性能。一些密码系统和应用程序使用形式方法进行验证,以抵御 SAT 攻击,这些方法可以帮助发现并修复潜在的布尔方程漏洞。

需要注意的是,SAT 攻击通常需要大量计算资源,特别是对于复杂的密码系统。因此,合理选择密码算法、密码长度和密码策略等安全实践可以减小 SAT 攻击的风险。

  • 2、基于门伪装的混淆

基于门伪装的混淆(Gate-Level Obfuscation)通过在电路中引入伪装门(Obfuscation Gates)来干扰和困惑攻击者,使其难以理解电路的真实功能和结构。

  1. 伪装门:伪装门是一种特殊类型的逻辑门,其功能与标准逻辑门相同,但其内部结构经过修改,使其在逆向工程中更难以分析。伪装门通常通过改变门的布尔逻辑表达式、添加无关的输入、重新排列输入等方式来实现。
  2. 混淆技术:混淆技术包括引入伪装门、重排逻辑门、添加虚假逻辑路径、嵌入陷阱电路等方法。这些技术旨在使电路结构更加复杂,增加攻击者的分析难度。
  3. 解锁密钥:与逻辑锁定类似,基于门伪装的混淆通常需要解锁密钥或密码来恢复电路的原始功能。只有授权用户才能提供正确的解锁密钥。
  4. 功能保持性:与逻辑锁定类似,门伪装混淆也可以实现功能保持性,确保合法用户能够正常使用电路。
  • 3、基于FSM的硬件混淆

基于有限状态机(Finite State Machine,FSM)的硬件混淆是一种用于增强硬件电路安全性的技术。它的基本思想是通过引入多余的状态、转移和控制逻辑,使电路的行为变得模糊和复杂,从而增加攻击者分析和逆向工程的难度。以下是有关基于 FSM 的硬件混淆的一些关键概念和原理:

  1. 有限状态机(FSM):有限状态机是一种用于描述电路行为的形式化模型,它包括一组状态、输入和状态转移函数。在硬件设计中,FSM 通常用于控制电路的行为。

  2. 硬件混淆:硬件混淆是指在硬件电路中引入额外的逻辑、状态或控制,以增加电路的复杂性和难以理解性,从而提高安全性。

  3. 混淆技术:基于 FSM 的硬件混淆技术通常包括以下方法:

    • 状态增加:引入多余的状态以增加状态空间的大小,使电路的行为变得复杂。
    • 控制逻辑复杂化:修改状态转移逻辑,使其更加复杂和难以分析。
    • 输入混淆:对输入信号进行变换或混淆,使其对应的状态转移关系变得不明显。
    • 输出混淆:对输出信号进行变换,使其不易被攻击者识别。
  4. 安全性增强:基于 FSM 的硬件混淆可以增强电路的安全性,因为攻击者需要更多的时间和资源来理解电路的行为和逻辑。这种混淆技术适用于各种硬件安全应用,如防止逆向工程、防止硬件仿制和保护知识产权等。

  5. 性能影响:硬件混淆可能会导致电路性能下降,因为引入了额外的逻辑和状态。因此,在设计时需要权衡安全性和性能。

四、新兴的混淆方法

  • 1、FPGA 位流加密:FPGA 位流加密是指对 FPGA 的位流文件进行加密,以确保只有具有正确密钥或授权的用户能够解密和使用该位流文件。这样,即使攻击者获取了位流文件,也无法理解其内容或将其用于未经授权的设备。

第十五章 PCB 认证和完整性验证

本章个人觉得没意思。

第十六章 系统级攻击和防御对策

本章内容重复过多,不再展开。

你可能感兴趣的:(硬件工程,安全威胁分析,安全架构)