基于混淆的PCB保护框架

基于混淆的印刷电路板未经授权操作与逆向工程保护框架

1. 引言

印刷电路板(PCBs)为电子元器件和芯片之间的机械支撑和电气连接提供了基础。因此,它们几乎被用于所有现代电子产品中,包括智能设备、个人计算机、家用电器、汽车、工业控制系统等。近年来,针对印刷电路板的攻击以及相应对策的开发引起了越来越多的关注[Tehranipoor et al. 2015]。现代印刷电路板是包含关键设计信息和知识产权(IP)的复杂多层结构,但实际上缺乏保护。任何人都可以从市场上购买含有印刷电路板的印刷电路板或系统并进行克隆、篡改和未经授权的操作。此外,印刷电路板设计、制造和装配新兴的商业模式倾向于外包[Ghosh et al. 2014],,这进一步加剧了印刷电路板/系统盗版和篡改的威胁。

克隆可以由合法购买产品的最终用户或捕获军用系统的敌对方实施 [Hartmann 和 Steup 2013]。克隆的第一步是逆向工程印刷电路板/系统,即识别印刷电路板上的芯片及其连接方式。已有大量先前研究表明,即使使用低成本的家庭解决方案,对印刷电路板进行逆向工程(RE)也相对简单 [Grand 2014]。此外,也可通过X射线计算机断层扫描实现成本更高但自动化的逆向工程方法 [Asadizanjani 2015]。如今大多数系统均由商用现成组件(COTS)构成,因此很容易制造出系统的克隆版本,并作为正品在市场上销售。即便是iPhone也已被克隆,在一些国家市场上有成千上万的假冒产品在销售 [Pacific 2011]。

过度生产是指拥有详细印刷电路板(PCB)设计的代工厂生产了超出授权数量的PCB。这些PCB可用于制造类似于克隆产品的假冒产品。无论是克隆还是过度生产,产品的知识产权所有者都会遭受重大的利润损失。然而,克隆可能造成更大的危害。例如,克隆产品若采用了低质量芯片、篡改过的电子元件和/或额外的功能(新的走线和组件、隐藏过孔等) [Ghosh 等人 2014]可能会意外失效,从而损害知识产权所有者的声誉。在最坏的情况下,此类产品甚至可能导致人员伤亡。篡改攻击还可用于获取系统中存储的机密数据,或绕过保护机制(例如数字版权管理 [奥唐奈,2013年;Fitzgerald 2005])。这些目标可以通过直接窃听芯片间通信,或使用专用设备探测这些连接来实现。最后,未经授权的操作意味着攻击者在未经许可的情况下使用或操纵设备。一些设备对此类攻击的保护机制较弱。例如,智能手机在使用前需要输入密码解锁,但这些密码通常较短且容易被观察到。

针对这些攻击的对策有多种形式。Ravi 等人 [2004]将嵌入式系统上的攻击分为三类:隐私攻击,包括窃听;完整性攻击,包括功耗/时序/电磁分析和故障注入;以及可用性攻击,包括软件木马。Anderson 和 Kuhn [1998]提出了一种针对 RSA 公钥密码系统、数据加密标准(DES)和分组密码的低成本攻击。Weingart [2000]列出了一系列应对篡改攻击的方法。然而,这些防篡改技术仅关注如何防止攻击者在设备运行期间获取密钥信息,但并未解决印刷电路板的逆向工程、克隆和过度生产问题。最近,Ghosh 等人 [2014]分析了印刷电路板在木马攻击下的安全性,并讨论了印刷电路板反向工程防护。然而,作者并未展示任何详细的印刷电路板实现设计流程,也未对其性能进行量化。

Tehranipoor 等人[2015]和 Guin 等人 [2014]提出了一种针对假冒集成电路 (IC) 的全面分类和表示框架。“脱氧核糖核酸 (DNA) 标记” [Hayward 和 Meraglia 2011]由应用DNA科学公司开发,可将独特且不可克隆的植物DNA嵌入产品中。在特定光照下,通过检测IC标记的荧光以及供应链中的DNA信息,可用于识别正品芯片。Yang 等人 [2015]提出了一种基于射频识别的方法,用于电子元器件及系统假冒检测。板上所有芯片的标识 (IDs) 共同生成板卡ID。然而,这些技术仅关注检测板上的假冒芯片,而非印刷电路板本身。

据我们所知,防止未经授权系统操作的研究非常有限,但可能对商业和军事应用中的隐私保护产生重大影响。最广泛使用的策略依赖于软件/固件授权机制,这需要加密系统和额外存储器的支持 [Simpson 和 Schaumont 2006]。然而,这些要求带来了进一步的安全隐患,例如密钥信息提取和授权系统的绕过 [Brijbasi 2003]。

在本文中,我们提出了首个板级混淆方法,旨在保护印刷电路板免受克隆、过度生产、逆向工程和未经授权的操作。我们的主要贡献总结如下: (1)板级混淆: 所提出方案通过在可编程组件(例如微控制器单元(MCUs)、数字信号处理器(DSPs)或现场可编程门阵列(FPGAs))与非可编程组件之间添加一个置换模块,来混淆它们之间的连接。该置换模块仅在提供正确密钥时才使印刷电路板正常工作。由于连接被隐藏,印刷电路板无法被逆向工程。此外,通过保留密钥,可以缓解印刷电路板的克隆和过度生产问题。最后,如果密钥仅提供给系统所有者/用户,则可以防止系统的未经授权的操作。在所有情况下,密钥无需永久存储在印刷电路板中,从而增强了对物理攻击的抵御能力。 (2) 实现: 我们考察了置换网络的不同实现方式,并确定Benes网络是最有前景的候选方案。研究了两种配置场景。 (3) 抵抗暴力破解攻击:我们开发了度量方法,用于评估在不同场景下针对暴力破解攻击的混淆性能:(1) 应用所有可能的输入/输出组合;(2) 向Benes网络应用随机密钥。对12个工业参考设计的结果表明,在任一情况下均无法破解该混淆。比较这两种场景,密钥方法在平均情况和最坏情况下所需时间更长。 (4) 物理攻击与对策:我们针对本方法可能遭受的攻击进行了研究,并根据攻击者资源对其进行分类。在对策方面,我们为不同应用提出了三个级别的安全要求。我们利用球栅阵列 (BGA)封装用于可编程组件和置换模块,并隐藏它们之间的连接,以防止硬件探测。我们讨论了将一种新颖的板级物理不可克隆功能(PUF)与所提出的混淆方案结合,以提供额外的保护。

本文的其余部分组织如下。第2节介绍了混淆及其关键要素。在第2.1节中,介绍了 PCB混淆的基本思想。详细的方案、实现方法以及性能评估度量在第3节和第4节中给出。第5节提供了潜在的攻击场景并对其进行分类。针对这些攻击,在同一节中讨论了相应的对策和安全性要求级别。第6节展示了以多个印刷电路板作为基准的混淆性能评估。最后,第 7节包含未来工作和结论。

2. 基于混淆的保护

在本节中,我们对硬件混淆进行了更广泛的描述。我们还讨论了芯片级混淆技术及其为何不适用于印刷电路板。

硬件混淆的总体思路如图1所示。实心矩形表示属于原始设计的组件。在芯片级别,这些组件可以是逻辑门或寄存器。在板级,这些组件可以

示意图0

电路板上存在芯片。在原始设计中,这些组件直接连接到固定的导线或走线上。由于所有组件间连接均已建立,因此无法对硬件功能进行控制。具备芯片级或板级逆向工程能力的攻击者可以获取该设计。图1中的问号表示由混淆引入的模糊性,这种模糊性可表现为互连排列、信号连接修改,或两者的组合,从而防止简单的逆向工程。在硬件混淆中,通常使用密钥来消除这种模糊性,使设计能够按原始预期运行。

现有的芯片级方法利用混淆来隐藏功能,并旨在使芯片仅在授权权限下工作。广义上讲,我们可以将芯片级方法分为两类:门级技术和寄存器传输级技术 [查克拉博蒂和巴尼亚2009;Desai 等 2013]。门级技术可能是基于逻辑混淆或基于排列的 [拉杰德拉等 2013;Roy 等 2008]。

尽管上述技术非常适合芯片级保护,但芯片与印刷电路板之间存在根本性差异,使得这些技术无法适用于印刷电路板。印刷电路板更容易被探测,且添加附加组件的成本更高。用于加密和解密可编程组件与非可编程组件之间信号的加密模块很容易被移除。逻辑置换方法[Zamanzadeh 和 Jahanian 2013]若不进行必要修改,则无法应用于板级,因为组件与芯片之间的信号保持不变。

2.1. 提出的PCB混淆概述

考虑到之前描述的系统级问题(过度生产、克隆和未经授权的操作),印刷电路板级混淆是一种有趣的解决方案。通过对设计进行混淆并 withholding其密钥,可以缓解印刷电路板的克隆和过度生产问题。即使系统上的商用现成芯片可以被识别,没有密钥的情况下,经过混淆的系统仍然无法工作。此外,如果唯一密钥仅提供给系统所有者/用户,则未经授权的操作也能得到覆盖。本节讨论了我们提出的混淆方案的一般硬件实现。

在实施混淆方案之前,我们针对每个应用将电路板上的组件分类为可编程组件和非可编程组件。pro-grammable component是最关键的组件,负责执行嵌入式系统的主要功能。通常每块电路板上至少有一个此类组件。

该组件可以是MCU、DSP或FPGA。non-programmable components是指电路板上除可编程组件之外的其他组件。这些组件通常由可编程组件控制,并执行特定功能,例如定时器、显示驱动器等。

为了说明整体方法,图2(a)和(b)分别展示了原始设计和混淆设计。在原始设计中,虚线矩形内组件之间的连接对设计者是已知的,拥有该系统的攻击者也可以通过逆向工程确定这些连接。在混淆设计(所提出的方法)中,组件之间的连接被置换模块隐藏。具体而言,我们插入一个permutation block,使设计者能够隐藏这些连接。置换模块是添加到电路板上的额外组件,用于实现混淆。该组件可通过复杂可编程逻辑器件(CPLD)、现场可编程门阵列(FPGA)或专用集成电路(ASIC)实现。

在图2(b)中,由系统的可信用户施加一个密钥来配置置换模块,从而使系统正常工作。只有正确的密钥才能实现可编程组件与非可编程组件之间的正确连接。该密钥可以通过多种方式在板上或板外生成。板上密钥可以从某些模拟信号(如生物特征,包括指纹、语音等)生成,以实现更强的保护。系统可集成密钥提取模块,从这些模拟信号中提取密钥。板外密钥可通过键盘输入或来自安全令牌(例如智能卡)。

图2还说明了可用于引脚/端口的一些其他重要特征/场景。真实端口表示可编程组件中用于在原始设计(混淆前)连接非可编程组件的引脚。置换模块隐藏了组件之间的这些连接。此外还有虚拟端口,它们代表原始设计中未使用的端口。在混淆设计(所提出的方法)中,虚拟端口可用于增加攻击者需要搜索的状态空间。直观上,作为置换模块输入的真实端口和虚拟端口的数量决定了攻击者必须研究的连接组合数量。

示意图1

图2提供了所提出的混淆实现的总体思路。所提出的PCB混淆的实现与评估包括三个部分。 —端口选择框架: 并非所有可编程组件的端口都可用于混淆。原因在第2.2节的功能逆向工程攻击中给出。本文提出了一个三阶段框架,用于选择适合进行混淆的端口。该框架包括预处理阶段、分组阶段和度量计算阶段。 —混淆强度评估: 提出了用于评估所提出混淆方案性能的定量指标。这些指标表明了攻击者通过暴力破解中断混淆的可能性。 —多密钥计算: 我们研究了在置换模块中实现的置换网络的特性。分析了一种称为多密钥效应的现象。由于该现象影响破解概率,因此对混淆强度进行了重新评估和比较。

2.2. 针对PCB混淆的攻击

在本文中,我们考虑了针对PCB混淆的多种攻击。这些攻击中的任何一种都可能导致攻击者能够解锁系统或克隆/过度生产系统,从而破坏所提出的方法的目的。因此,我们还将在后续章节中讨论缓解这些攻击的方法。

(1) 功能逆向工程: 由于板载组件都有详细的文档,攻击者可以通过研究端口的功能来部分发现正确的连接排列。尽管攻击者从可编程组件中获得的信息有限,但他们可以从非可编程组件中了解连接的功能,特别是那些在可编程组件上具有专用端口的组件。因此,应利用通用输入/输出(GPIOs)以及其他具有设计特定功能的端口来抵御此类攻击。幸运的是,许多印刷电路板包含微控制器单元(MCUs)、数字信号处理器(DSPs)和现场可编程门阵列 (FGPAs),这些器件包含大量通用输入/输出(GPIOs)(详见第6节)。在混淆中利用这些端口会使攻击者通过暴力破解方式找出真实互连变得极为困难。因此,我们应更加关注 GPIOs。选择合适的端口进行混淆以及评估该方法性能的选项将在第4.1节中讨论。

(2) 对正确连接和/或密钥的物理逆向工程: 攻击者可以使用多种物理攻击来中断所提出的混淆方案。例如,攻击者可能尝试同时采用板级和芯片级逆向工程来获取芯片间的正确连接。在板级,可以通过探测识别进出置换芯片的信号。通过这些信息,攻击者可以克隆设计、进行过度生产等操作。或者,通过攻击置换芯片,攻击者可能能够提取密钥。针对具备不同能力范围的攻击者的缓解措施将在第5.1节中讨论。

(3) 暴力破解攻击:如果上述攻击被成功阻止,那么攻击者唯一的选择就是进行暴力破解搜索(穷举搜索)。本文中存在两种可能的暴力破解方法:(i) 连接组合 和 (ii) 针对混淆芯片的密钥条目。在第一种情况下,攻击者会测试所有可能的芯片间连接,以确定能够实现系统正常运行的连接;在第二种情况下,攻击者通过混淆模块接口测试所有可能的密钥输入,直到系统正确运行为止。请注意,这种情况与第一种不同,因为它完全取决于置换网络的实现方式(即密钥与输入/输出组合之间的关系)。在第4节中,我们将建立评估方法来估算破解概率。

3. 置换网络实现

在本节中,介绍了各种置换网络的背景,并选出了实现所提出混淆方案的最佳候选方案。根据所选的置换网络,我们提供了不同场景下的配置方法。

3.1. 置换网络介绍

在我们的保护方案中,选择合适的置换网络并在置换模块中实现它起着至关重要的作用。在我们的应用中,置换网络的输入是连接到可编程组件的信号,输出则连接到非可编程组件。根据实现全部输入/输出置换的能力,置换网络可分为阻塞和非阻塞网络 [Waksman 1968]。

阻塞置换网络指的是该网络只能实现部分输入/输出组合。蝶形网络 [Thamarakuzhi 和 Chandy 2010]以及基本Omega网络 [Mitra 和 Cieslak 1987]是阻塞置换网络的两个例子。

非阻塞置换网络表示该网络能够实现所有输入/输出组合,无论是否有约束。这种置换网络类别

包含三个子类别。(i)严格意义无阻塞网络[Giacomazzi 和 Trecordi 1995]能够在不依赖任何已建立路径的情况下,构建一条连接未连接输入和输出的新路径。(ii)广义无阻塞网络[Feldman 等人 1988]不提供像严格意义无阻塞网络那样的严格独立性保证,但仍可通过特定算法将任意未使用的输入连接到任意未使用的输出。(iii)最弱的非阻塞置换网络概念是可重排无阻塞网络[Pippenger 1978]。这类网络在缺乏输入和输出顺序的先验知识时,无法完全实现网络配置。Benes网络[Chang 和 Melhem 1997]就是这类网络的一个示例。

我们在三种置换网络之间进行了比较:欧米伽网络(阻塞型)、基于多路复用的网络 (严格无阻塞型)和Benes网络(可重排无阻塞型)。这些网络使用Quartus II软件进行综合,并在Altera MAX V CPLD上实现。目标CPLD包含570个逻辑单元(LE),这是 CPLD中的基本逻辑单元。面积开销通过已使用逻辑单元的百分比来表示。结果表明, Benes网络使用的逻辑单元为60%,而基于多路复用的网络则为115%。除了面积开销外, 还估算了功耗开销和传播延迟。这些开销是基于在MAX V CPLD上实现的32位Benes网络 进行估算的。功耗开销为0.04毫瓦,平均引脚到引脚延迟测量为20.5纳秒。

为了抵御暴力破解攻击的鲁棒性,所需的最小置换网络维度为32个输入和32个输出 (详见第6节)。我们决定在本文余下的部分中重点实现Benes网络作为置换模块,原因如下:(i)显然,阻塞置换网络并不合适,因为它们产生的输入/输出组合有限。例如,一个 32位欧米伽网络仅提供1.2379E+ 27种输入/输出组合。而32个输入的完全打乱应为32的阶乘,即2.6313E+ 35。因此,欧米伽网络仅实现了总计输入/输出组合中的1/2.1256E+08。与阻塞网络相比,无阻塞网络(如Benes网络)能够实现所有可能的输入/输出组合。就本例而言,设计者应从无阻塞网络中选择候选方案。(ii)考虑到硬件面积开销, Benes网络远优于基于多路复用器的网络。对于本应用,严格意义无阻塞网络具有显著的开销,而其优势在我们的使用场景中并不需要。

3.2. 置换网络配置

最基本的Benes网络单元是一个如图3(a)所示的1位控制的2到2开关。这些开关在两种模式下工作:当控制位为0时处于直通模式,当控制位为1时处于交换模式。混淆密钥中的位被用作每个开关的控制位。我们将每一列开关定义为一级。Benes网络的对称性在配置过程中起着关键作用。该性质意味着Benes网络在中心级上具有旋转对称性。根据此性质,中心级左侧的级称为前向级,右侧的级称为后向级。这些级类别如图3(b)所示。设计者可以利用这些性质来简化配置。

示意图2 8输入Benes网络 和 (b) 阶段划分。)

网络配置可以根据先验知识和目标分为两种情况。

情况1:设计者旨在根据输入顺序和预定义密钥的知识来确定输出顺序。由于Benes网络具有旋转对称性,它始终由奇数级组成。级数(S)可以通过以下方式求得 S= 2∗log2N−1,其中N是网络维度(即Benes网络的输入数量)。每一级都可以通过由密钥导出的方形置换矩阵(PM)进行数学表示。置换矩阵在每行/列中恰好有一个“1”,其余为“0”。每个置换矩阵表示置换后的输入通过相应级的过程。相乘置换矩阵表示连贯地通过多个阶段。对称性特性有助于设计者简化置换矩阵的计算。在计算出置换矩阵和输入顺序(I)后,我们可以将输出顺序(O)形式化如下:

$$ O= I × \prod_{i=1}^{\log_2 N−1} PM_i $$

其中N表示输入数量。在已知输出顺序和密钥的情况下,可以采用相同的步骤来计算输入顺序。

情况2: 设计者的目标是找到一个或多个密钥以实现所需的输入/输出置换。此过程也称为网络路由。先前的研究,例如Nassimi和Sahni [1982]提出了一种基于搜索环路(下文定义)的外级的高效路由算法。外级(OS)被定义为如图3(b)中第0级和第4级这样的镜像级对。外级数量K根据输入数量N按如下方式定义:

$$ K= \log_2 N −1 $$

环结构如图4所示。以网络输入为[0 1 2 3 4 5 6 7]、输出为[3 7 1 0 4 2 5 6]为例。为了确定环路,所提出的方法将每个开关表示为一个节点,标记为x0, y0,等,如图4(b)所示。节点间的连接基于输入/输出顺序构建。一个环路由所有互连节点组成。在同一环路中,一个节点可以通过它们之间的互连到达任意节点(包括其自身)。如果两个节点是直接连接的 (例如,x1和y0)或间接连接的(例如,x2和y0),则它们应被归入同一个环路中。例如,虚线环由节点x0和y1组成。一个环内的节点不应与该环之外的节点相连。除了由第0级和第4级形式化的外层阶段外,在图3(b)中的子阶段1.1和子阶段3.1等其他外级中也可发现类似的环结构。配置可通过为每个节点(开关)分配“0”或“1”来完成。如Nassimi和 Sahni [1982],所述,每个环路可分配两个等效的密钥配置。这两种配置是互补二进制链,例如“1011”和“0100”。

这种多配置现象可能导致多个密钥实现相同的输入/输出组合。在本文中,我们将此现象称为

示意图3 开关连接和(b) 组说明。)

多密钥效应。这种效应可能通过增加破解概率(即通过穷举搜索获得正确配置的概率)而削弱保护强度。

4. 混淆与评估方法论

在第2.1节中,介绍了基于置换的混淆的整体思路。如前所述,真实/虚拟端口由置换模块进行置换。如第2.2节所述,并非所有原始连接都可用于混淆。本节提出了一种端口选择框架,用于选择适合混淆的端口。根据所选端口的类型和数量,确定破解概率。最后,我们提出了一种针对多个密钥数量的概率计算方法。

4.1. 端口选择框架

所提出的框架包含三个阶段:(i)预处理阶段,在此阶段确定用于混淆的端口候选;(ii)分组阶段,在此阶段我们根据可编程组件和非可编程组件的端口描述对端口进行分组;以及(iii)度量计算阶段,在此阶段计算混淆强度。混淆强度推断了攻击者通过暴力破解学习正确连接/密钥的难度。

在本节中,我们提供了恩智浦在图5中的参考设计。该图展示了基于飞思卡尔 ColdFire V1 MCF51MM256CLL MCU [Fre 2014]的活动监视器参考设计的框图。这是一个无创采集系统,集成了计步器、心电图、饮食摄入表、数据存储、无线通信、定时器和计时器。该参考设计将作为预处理阶段和分组阶段后续讨论的示例。它可以被视为图2的一个实际实现。其中,可编程组件为ColdFire V1 MCF51MM256CLL MCU,非可编程组件以紫色表示。在所有非可编程组件中,只有触摸感应装置和显示模块的连接可以参与混淆(原因见下文的预处理阶段)。

示意图4

预处理阶段 :首先,我们将未使用的端口分组,并将该集合命名为虚拟端口集(组D)。在所有连接的端口中,我们排除用于以下用途的端口:模拟输入/输出(因为置换模块只能处理数字信号);串行或并行通信端口(因为它们具有可预测用途,因此对混淆无用);以及任何对时序要求严格的端口(因为置换模块可能会引入额外延迟)。剩余的连接端口将被命名为真实端口集(组R)。

分组阶段 : 分组的原因是为了评估混淆的强度。分组不会影响实际的硬件实现。这是必要的,因为智能攻击者可能从可编程和非可编程组件的端口描述中获得一些信息(参见第 2.2节中的功能逆向工程)。对于非可编程组件,大多数端口的功能是专用的。例如,如图 5所示,触摸感应模块将通过快速通用输入输出(RGPIO)与微控制器单元通信。并非该微控制器上的所有端口都具备作为RGPIO工作的能力(实际上只有16个端口)。在这种情况下,攻击者可以通过从16个端口中而非微控制器的所有端口中搜索触摸感应装置的正确连接来缩小搜索范围。在度量计算阶段之前进行端口分组有助于我们避免高估混淆强度。

分组阶段有两个步骤: 步骤1 包括对 SetR 中的真实端口进行分组。由于非可编程组件的端口具有更专用的功能,我们的目标是在可编程组件上找到具有对应功能的端口。图6基于图5中的设计给出了一个示例。图6的左侧是微控制器单元的端口描述,可从其手册或数据表中轻松获取。X/Y /…/Z表示该端口可能具有多个可能的功能。对于图6所示的端口描述,PTXX(PTH2、PTE1等)表示该端口具有通用输入输出功能,RGPIOX(RGPIO2、RGPIO3等)表示该端口具有可重构通用输入输出功能。图6的右侧展示了两个连接到微控制器单元的非可编程组件。这些芯片的端口名称(T_DWN、LCD_CS等)可从其文档中获知。与微控制器单元的端口描述不同,这些端口的功能是专用的。

示意图5

在图6中,以粗体显示的端口描述表示攻击者可以根据非可编程组件的信息,从所有可能的功能中轻松确定该端口的功能。例如,攻击者可能知道微控制器单元上的某些端口应作为触摸感应装置所需的可重构通用输入输出端口工作。

本示例中的功能组为SetR(RGPIO)和SetR(GPIO),如图6所示。组SetR(RGPIO)包含原始设计中作为可重构通用输入输出的微控制器单元的所有端口。除了可重构通用输入输出外,其他微控制器单元还可具有其他功能组。例如,飞思卡尔MKM34Z128CLL5微控制器有45个端口用于液晶显示器。飞思卡尔Kinetis KEA128微控制器上有10个灵活定时器(FTM)端口可用于生成脉宽调制器(PWM)信号。德州仪器TMS320F2837xD微控制器有24个端口用于生成PWM信号。微芯科技PIC32MZEC系列微控制器有5个端口作为外部中断。来自不同制造商的许多微控制器单元和数字信号处理器具有上述功能组,但端口名称不同。除了这些具有专用功能的端口外,其余端口仅需要通用输入输出。这些端口被分组在SetR(GPIO)中。

步骤2 :在从步骤1获得若干组之后,我们基于此信息分析虚拟端口。我们有两种类型的虚拟端口,如下所示: —虚拟端口在步骤1中只能用于唯一一个功能(单功能虚拟端口),例如 PTA2/KBI1P1/RX1/ADP4PTA3/KBI1P2/FB D6/ADP5. —虚拟端口可在步骤1中用于两个或更多功能(多功能虚拟端口),例如PTB6/KBI1P3/RGPIOP0/FB AD17 PTB7/KBI1P4/RGPIOP1/FB AD0._

如图5所示的示例中,共有33个虚拟端口。其中4个可同时用作GPIO和RGPIO;29个仅为GPIO。攻击者可以任意猜测如何将多功能虚拟端口分配到不同的组中。不同的虚拟端口分配方式会产生不同的混淆强度估计值。

度量计算阶段 : 在此阶段,我们计算混淆强度。此步骤可用于在资源限制(例如置换块输入输出数量和时序约束)下确定产生最佳混淆效果的端口。相关度量将在第4.2节中讨论。

对于包含多个可编程组件的印刷电路板,端口选择框架可以分别应用于每个可编程组件。来自多个可编程组件的选定端口由同一个置换模块进行置换。

4.2. 混淆强度

攻击者的目标是找出芯片之间的正确连接。为实现这一目标,攻击者可以直接检查置换模块的输入/输出组合,或检查密钥。攻击者达成此目标的难度被定义为混淆强度,可用破解概率来表示。在本文中,当攻击者尝试输入/输出组合时,破解概率表示为Pcom;当攻击者尝试密钥时,破解概率表示为Pkey。Pcom与Pkey相等的条件是输入/输出组合与密钥之间存在一一对应关系。

在本节的其余部分,提出了一种流程来估算Pcom。如第4.1节所述,可以使用不同的方法对虚拟端口进行分组。攻击者可能在所有可能性中对如何分组虚拟端口进行盲目猜测。他任意选择一种方式对虚拟端口进行分组。这种选择可能导致需要尝试的最小数量的暴力组合。这正是本节旨在估算的混淆强度的下界。当攻击者检查输入/输出组合时,在分析混淆强度时需考虑不同情况。

情况1 :仅使用真实端口进行混淆。根据有限的信息(已在第4.1节中说明),真实端口可以被划分为M(M ≥1)个组。设每个组包含Rk(1 ≤ k ≤ M)个端口。我们以图5中的应用为例。在预处理阶段和分组阶段之后,仅剩触摸感应装置和显示模块的连接需要进行混淆(M= 2)。R1= 6,因为微控制器单元上有6个真实端口与触摸感应装置通信;R2= 13,因为显示模块需要微控制器单元上的13个端口。

我们还定义了两种子情况,称为单组测试可行(IGTP)和单组测试不可行(IGTI)。IGTP 意味着攻击者只需研究组内的连接即可确定正确性,而无需考虑所有其他组的连接。这将导致攻击者需要考虑的组合数量减少,从而降低混淆强度。另一方面,IGTI 意味着一组的连接可能与其他组的连接对攻击者而言产生混淆,这会增强混淆强度。For IGTP该度量由公式(3)给出,而IGTI由公式(4)给出,

$$ CR_{IGTP} = \sum_{k=1}^{M_1} R_k! $$

$$ CR_{IGTI} = \prod_{k=1}^{M_2} R_k! $$

其中M1(1 ≤ s ≤ t ≤ e)是IGTP组的数量,M2(M2 ≤ M)是IGTI组的数量。可以很容易地看出M= M1+ M2。

情况2 :同时包含真实端口和虚拟端口的混淆。这与情况1类似,但还为每组额外包含Dk(1 ≤ k ≤M)个虚拟端口。对于IGTP,该度量由公式(5)给出。对于IGTI,该度量由公式(6)给出。

$$ CD\&R_{IGTP} = \sum_{k=1}^{M_1} \binom{D_k + R_k}{R_k} R_k! $$

$$ CD\&R_{IGTI} = \prod_{k=1}^{M_2} \binom{D_k + R_k}{R_k} R_k! $$

在情况1和情况2中,IGTP组可能不存在。在这种情况下,我们可以将组合数C写为

$$ C = CD\&R_{IGTP} + CD\&R_{IGTI} \quad \text{OR} \quad C = CR_{IGTP} + CR_{IGTI} $$

在图5所示的示例中,Dk对于相同的k可能具有不同的值,因为攻击者可以以多种不同方式分配多功能虚拟端口。这意味着组合总数可能有多个值。我们可以将其形式化为一个优化问题,以求得混淆强度的最坏情况估计。公式(8)是目标函数,其形式如公式(7)所示。我们需要在混淆中使用所有虚拟端口(TD),如公式(9)所示。公式(10)表示每个变量( Dh)的取值范围应从对应组的单功能虚拟端口数量(TDUh)到对应组的多功能和单功能虚拟端口总数(TDAh)。公式(11)表示任意两个不同变量之和应小于或等于这两个对应组端口并集的数量(TDAi,j)。公式(12)对于增加一个组的情况也是相同的。如果组的数量更多,约束数量将增加。该优化问题可通过在线性约束下寻找多项式的最小值来求解。然而,我们发现组的数量很少,因此可以轻松枚举所有解以确定最小值。注意,上述问题的解代表了本节开头提到的混淆性能的下界。

$$ \text{Minimize } C $$

$$ \text{Subject to } \sum_{k=1}^{M} D_k = TD $$

$$ TDU_h \leq D_h \leq TDA_h, \forall h \in[1, M] $$

$$ D_i + D_j \leq TDA_{i,j}, \forall(i,j) \in[1, M] \text{ and } i \neq j $$

$$ D_i + D_j + D_h \leq TDA_{i,j,h}, \forall(i,j, h) \in[1, M], \text{ and } i \neq j, j \neq h, i \neq h $$

当攻击者尝试检查输入/输出组合时,破解概率(Pcom)可通过公式(13)计算。

$$ P_{com} = \frac{1}{C} $$

4.3 多密钥计算

如本节前面所述,仅当密钥与输入/输出组合之间存在一一对应关系时,Pkey才等于Pcom。然而,当实现某些置换网络(如Benes网络)时,这种情况并不成立。当攻击者选择检查密钥时,破解概率可通过公式(14)计算。

$$ P_{key} = \frac{\text{Number of correct keys}}{\text{Total number of keys}} $$

由于密钥总数超过了输入/输出组合的总数,多密钥效应可能会或可能不会增加中断概率。第3.2节中的第二种配置情况意味着在已知输入/输出顺序的情况下计算密钥。在此配置中,每个环路内的开关可以有两种配置方式,例如“1101”和“0010”。这些开关的配置连接在一起形成密钥。一般来说,环

基于混淆的印刷电路板未经授权操作与逆向工程保护框架

5. 安全分析

攻击受保护的设备时,攻击者试图实现三个目标:过度生产、克隆或未经授权的操作。在本节中,我们将讨论实现这些目标的潜在攻击及对策。

5.1. 潜在攻击与攻击级别

为实现上述攻击目标,攻击者试图获取正确密钥或输入/输出置换。攻击者可实施以下攻击,其中一些攻击可直接向攻击者提供此信息,而另一些攻击则用于加强其他攻击。

暴力破解攻击 :这是最直接的方法,涉及攻击者尝试所有密钥或输入/输出置换。此类攻击的成功与否在很大程度上取决于破解概率(无论是Pcom还是Pkey)以及验证系统正确行为所需的时间。我们在第6节中提供了在最坏情况假设下的验证时间定量结果,即最坏情况是攻击者可以在一个时钟周期内验证每个密钥或输入/输出置换。根据第6节所示的结果,攻击者通过暴力破解方式难以破解我们的混淆方法。

表面走线探测攻击 : 对于每个系统而言,置换模块输入与相应输出之间的波形完全相同,即使密钥可能不同。拥有正常工作系统的攻击者可以使用多通道逻辑分析仪探测置换模块的所有输入/输出。通过简单匹配所探测信号的波形,攻击者就能找出可编程和非可编程组件之间的实际连接。

内存泄露攻击 :存储在外部非易失性存储器(通常是闪存)中的数据可通过多种商业工具提取。外部存储器指位于电路板上的片外存储器,且所有端口均暴露在外。当密钥存储在该存储器中时,攻击者可通过实施此类攻击获取密钥,并利用该密钥操作其他受保护设备。为对外部存储器实施此攻击,攻击者可遵循以下步骤:(i)识别调试端口;(ii)提取并分析固件;(iii)查找密钥信息。为识别调试端口,需要使用简单的焊接台、万用表或逻辑分析仪。通过分析逻辑分析仪报告的数据,可以确定各端口的功能。如果能找到被攻击闪存芯片的详细数据手册,则此步骤可跳过。根据第一步中识别出的端口,攻击者可在存储器与台式电脑之间建立串行/并行通信通道。该通道使攻击者能够向闪存发送命令。最后一步中,为找到密钥信息,攻击者需从闪存中检索数据。根据闪存的接口类型(串行或并行),可向闪存发送适当的读取命令以获取内容。可利用逻辑分析仪监控闪存的响应,通过分析该响应即可恢复密钥。

CPLD重新安装攻击 : 攻击者可以将置换模块(通常是CPLD)从电路板上卸下,并将其重新安装到其他平台或使用合适的载板适配器重新安装到相同的PCB上。此攻击不应损坏封装,可通过以下步骤完成。首先,可通过热风加热移除BGA芯片。接下来,可使用吸锡带清除焊料残留。然后,攻击者可以选择以下两种方式之一重新安装BGA芯片:(i) 安装到另一块定制的PCB上;(ii) 使用合适的载板适配器重新安装到同一块PCB上(例如, Ironwood Electronics [Ironwood 2016]的商用产品)。重新安装拆下的CPLD使得硬件探测成为可能。此攻击不会直接向攻击者提供密钥信息。然而,结合此攻击可使硬件探测攻击更加强大。

示意图6

中间层探测攻击 : 攻击者可以通过非破坏性逆向工程技术(如基于X射线的技术 [Asadizan‐jani 2015;Ahi等 2015])来发现完整的PCB布局。在布局信息的引导下,攻击者可以铣出用于探测每个CPLD端口的孔。这些孔使攻击者能够访问CPLD端口,而不会损坏电路板上的其他走线。

集成电路逆向工程攻击 :攻击者可以完全逆向工程电路板上的任何芯片,并完全获取存储在这些芯片中的秘密信息。此类机密信息包括用于解锁置换网络的密钥、可编程组件的固件、置换网络结构等。逆向工程攻击的具体方式将根据置换芯片的实现形式(专用集成电路、现场可编程门阵列、复杂可编程逻辑器件等)以及攻击者想要提取的内容(密钥、比特流等)而有所不同。如果密钥或固件存储在外部非易失性存储器中,则可采用上述内存泄露攻击。如果密钥或固件存储在片上,则需要耗时的逆向工程过程,该过程可能需要多个芯片(样本)以及数百万美元设备(湿法或干法刻蚀设备、扫描电子显微镜(SEM) 或聚焦离子束(FIB)、探针台等)。

通用逆向工程流程如下:(i)使用一个或多个芯片逆向工程其物理布局和连接。此步骤需要去封装以暴露芯片。由于芯片是多层结构,应通过扫描电子显微镜(SEM)对每一层进行逐层剥离和成像,并随后进行图像拼接。由于该过程容易出错,可能需要多个芯片才能正确提取网表。(ii)在提取的布局/网表中确定所需信息的位置。获得网表后,下一步取决于存储数据的非易失性存储器类型(例如闪存和电子熔丝)。如果使用的是电子熔丝,则密钥/固件可能直接从上一步获取的图像中识别出来,从而结束攻击。对于闪存,则利用逆向工程得到的网表来识别携带所需数据的总线或网络。(iii)使用聚焦离子束探针台进行探测以提取密钥信息。人工操作员在新的(未逐层剥离的)样品上定位前一步骤中找到的内部总线/网络,然后通过聚焦离子束在目标位置进行铣削并沉积金属,以建立物理接触,再通过探针台读取密钥信息。需要注意的是,为成功读取数据,可能需要通过或避开芯片内的各种防篡改机制。上述所有步骤执行起来均非易事,且需要大量投入。

在IBM的一篇知名文章[Abraham等人 1991],中,作者建议可根据攻击者的预期能力和攻击强度将其分为三类:

—I类(聪明的外部人员):他们通常很聪明,但可能对系统的了解不足。他们只能使用中等复杂程度的设备。他们通常试图利用系统中已存在的弱点,而不是尝试制造新的漏洞。

—II类(有知识的内部人员):他们具有丰富的专业技术教育背景和经验。他们对系统的某些部分有不同程度的了解,并可能接触到系统的大部分内容。他们通常能够使用高度精密的分析工具和仪器。

—III类(有资金支持的组织): 他们能够组建由具备相关且互补技能的专家组成的团队,并拥有充足的资金资源支持。他们有能力对系统进行深入分析,设计复杂的攻击,并使用最先进的分析工具。他们可能会将II类攻击者作为攻击团队的一部分。

示意图7

I类攻击者可以实施暴力破解攻击和表面探测攻击。由于这些攻击者对系统的了解有限,暴力破解攻击是最直接的方法。配备示波器后,这类攻击者能够完成表面探测攻击。利用一些低成本设备(如加热系统和BGA载板适配器),这些攻击者还可以实现CPLD重新安装攻击。如果密钥存储在电路板上,则I类攻击者也可以发动内存泄露攻击。与I类攻击者相比,第二类攻击者能够使用更精密的仪器进行中间层探测攻击。实施此类攻击所需的工具应具备对多层PCB进行非破坏性逆向工程和钻孔的能力。第三类攻击者由于拥有最先进的分析工具和充足的资源,因此能够实施集成电路逆向工程攻击。

5.2. 安全等级和攻击覆盖范围

考虑到不同类别的攻击者及其能力,将对策分为三个安全需求等级。

低级别安全需求 :满足此安全要求级别的设备直接将相同的密钥存储在非易失性存储器中。为实现低级别安全需求,我们建议可编程组件和置换模块均采用BGA封装,并在印刷电路板中至少使用一个中间层进行连接布线。图8(a)展示了BGA封装的一个示例。由于当前印刷电路板的复杂性,多层要求较容易满足。关于BGA封装的要求,表二中的统计结果显示,在引脚数大于或等于64的可编程组件中,有很大部分的混淆候选对象采用了 BGA/VTLA(VTLA是微芯科技使用的一种与BGA封装非常相似的封装标准)封装(原因将在第6节中解释)。使用BGA封装不会引入额外的面积和功耗开销,且对于同一型号的芯片,BGA封装与其他封装的成本相同。在进行PCB布线时,我们识别出可编程组件与置换模块之间的所有连接,并将其布线于中间层。该布线要求在本文后续部分称为中间层布线。图8(b)展示了一个隐藏连接的示例。此步骤旨在降低攻击者通过探测工作设备来识别芯片间连接的可能性。还应应用低成本的防篡改技术[Karri 等人 2010;Skorobogatov2006]。除了封装和布线要求外,隐藏每个密钥位与开关之间的关系可以进一步增加破解难度。为了实现这一点,在配置置换网络之前,应使用安全哈希函数对密钥进行预处理。

示意图8

中等级别安全需求 :对于大多数工业系统和消费电子产品而言,系统重启是不可避免的。由于每次重启后重新应用密钥在此情况下往往不切实际,这些系统需要将密钥存储在非易失性存储器中,并在重启前自动重新加载。这种行为为攻击者提供了通过某些技术(如CPLD重新安装攻击)中断混淆的机会。

为了满足中等级别安全需求,需要采用球栅阵列封装和中间层布线。此外,我们建议使用一种板级物理不可克隆函数,并结合外部密钥(输入)在置换模块内计算出内部密钥。为此,应修改置换模块的固件,以集成用于板级物理不可克隆函数的测量模块[张等, 2015;Wei 等 2015]。该板级物理不可克隆函数利用印制电路板制造过程中的工艺差异,这些工艺差异包括走线宽度/厚度等的变化。这些差异会导致相同走线在不同印刷电路板上的阻抗/电容发生变化。置换模块可从这些走线中生成签名。例如,可将走线构造成环形振荡器电路,并将其频率作为签名进行测量。板级物理不可克隆函数应对任何影响其阻抗的变化保持敏感:对走线、焊料或芯片的任何结构变化都应被物理不可克隆函数检测到。对走线的更改可能指对走线进行探测。使用示波器等设备对走线进行探测时,应导致物理不可克隆功能输出发生显著变化。对焊料的更改表示有人从印刷电路板上移除或添加焊料。移除芯片要求攻击者将焊料从该芯片的焊盘上去除。如果任何板级物理不可克隆函数连接到这些焊盘,则其输出应随之改变。对芯片的更改意味着芯片被替换。这种替换包括攻击者安装探测系统(即插座)以使芯片可被探测的情况。

设计者在开发板级物理不可克隆函数时应考虑一些挑战。这些挑战包括鲁棒性和分辨率。鲁棒性是指PUF输出在各种环境条件(例如温度和电压)下的稳定性。若无结构变化,置换模块应接收到稳定的PUF响应。然而,环境变化可能引入错误,因此可能需要某些纠错码来消除这些错误。另一个挑战是分辨率。板级物理不可克隆功能应对PUF走线的最小变化都足够敏感。请注意,如何实现板级PUF的具体讨论超出了本文范围,被视为正在进行的研究。

实现中等级别安全需求的一般流程如图9所示。首先,用于读取PUF输出的专用固件被下载到置换模块中。然后,置换模块将加密的PUF读数发送回设计者。设计者根据接收到的PUF输出修改置换固件,并将该固件发送至装配环节,以重新加载到置换模块中。当印刷电路板/系统在实际使用环境中时,该修改后的置换固件仅在接收到正确的PUF读数时才能正常工作。此机制可防范CPLD重新安装攻击,因为在攻击者的平台上获取的PUF读数与原始电路板上的不同。由于PUF读数不同,密钥无法生成正确的输入/输出置换。

或者,可以利用多种其他方法来实现基于置换的混淆。详细的描述和定义如下所示。

—统一固件:相同的固件直接加载到任意置换模块中,并且它们共享相同的密钥。

—基于密钥的方法:密钥信息(例如可编程组件的输出顺序)嵌入在固件中。每个置换模块和可编程组件接收不同的固件,且密钥也是唯一的。

—芯片签名:在置换模块的标识符中使用芯片级PUF(例如,静态随机存取存储器物理不可克隆函数或环形振荡器物理不可克隆函数)。所有置换模块加载相同的固件,但输出不同的PUF读数。这些加密的PUF读数将被发送给设计者。设计者可以计算出密钥,并将其发送回系统。

—板级签名:板级签名(板级物理不可克隆函数读数)存储在置换模块中。需要使用比较器将上述存储的物理不可克隆函数签名与实际板级物理不可克隆函数输出进行比较。如果实际读数与存储值匹配,则系统可以被激活。

与所提出的板级物理不可克隆函数+置换方案相比,这些替代方法存在若干缺点:

— 统一固件和基于密钥的方法即使面对低成本攻击(如CPLD重新安装攻击和内存泄露攻击)也容易受到攻击。

—芯片签名方法可以消除内存泄露攻击,但容易受到CPLD重新安装攻击。作为合法用户的攻击者可以重新安装置换模块,并将正确的密钥加载到其中。

— 板级签名方法容易受到重放攻击,因为PUF读数存储在芯片中。通过攻破内存,攻击者可以恢复存储的PUF读数,并在系统获取板级物理不可克隆函数时无论何时都可重放相同的值。这样一来,即使复杂可编程逻辑器件被从原始位置移除,攻击者仍能正确配置置换模块,从而实现CPLD重新安装攻击。

—此外,该方法需要一个比较器来比较上述存储的物理不可克隆函数签名与实际板级物理不可克隆函数输出。这很容易被故障注入攻击绕过,从而导致在没有正确物理不可克隆功能签名的情况下电路板仍可正常工作。

板级物理不可克隆函数提供了系统完整性检查(即确保复杂可编程逻辑器件附着在原始印刷电路板上)以及为不同印刷电路板提供唯一密钥等优势。因此,利用物理不可克隆功能增强了基于置换的混淆,同时基于置换的优点仍起着主要作用。与上述替代方法相比,实现所提出的板级物理不可克隆函数对于消除各种低成本攻击至关重要。

高级安全要求 :在这种情况下,密钥不会存储在系统的非易失性存储器中,并且在重启后需要重新输入系统。满足此安全要求的设备应能够抵御所有已知攻击。关键应用(如军事设施和存储敏感数据的商用设备)需要此级别的保护。此外,这些设备的密钥应得到妥善保护。可以利用操作员生物特征(例如指纹、虹膜等)来生成密钥 [Beng 等人 2008]。生物特征难以被复制或窃取 [Wayman 等人 2005]。当结合所提出的保护

示意图9

将框架与基于生物特征的密钥生成技术结合,密钥与操作员绑定。由于密钥未存储在非易失性存储器中,因此利用D触发器链在CPLD中构成移位寄存器。CPLD上的一个专用端口被设计为串行密钥输入。移位寄存器的每一位配置一个Benes网络开关。当CPLD断电时,D触发器丢失其值,密钥也随之被销毁。每次系统重启时,用户都需要重新向 CPLD输入密钥。我们还需要考虑电路板断电后的数据残留现象[Drimer 2009](触发器可能带有偏置),尤其是在低温环境中。为了实现更高安全级别,可以开发定制CPLD,以在断电后彻底销毁密钥。

针对所有级别的安全要求,我们假设可编程组件的固件可以通过互联网以加密形式下载。解密密钥存储在微控制器单元中用于解密固件(例如RSA私钥)。若攻击者无法获知解密密钥,则无法对固件进行逆向工程。此外,存储在可编程组件片上闪存中的固件也应得到妥善保护。目前,已有多种商业工具[科德2016;威尔金森 2015]为微控制器单元/现场可编程门阵列提供此类保护。例如,恩智浦的CodeWarrior [科德 2016]可以设置安全位,一旦发生未授权读取固件的行为,整个闪存将被擦除。

考虑到各类攻击者的能力以及上述安全要求级别,我们在图10中全面分析了防护覆盖范围。满足低级别安全需求的设备可部分消除I类攻击者所实施的攻击(暴力破解攻击和硬件探测攻击)。由于混淆连接隐藏在中间层,硬件探测攻击无法实施。然而,由于相同的密钥存储在板载非易失性存储器中,I类攻击者可以提取该密钥,并将其用于激活其他印刷电路板(存储器泄露攻击)。这些攻击者还可以将置换模块重新安装到自己的平台,或使用载波适配器将其重新安装回原始印刷电路板(CPLD重新安装攻击),以实施硬件探测攻击。

如果设备符合中等级别安全需求,则可以消除内存泄露攻击和CPLD重新安装攻击。在此级别安全要求下的设备结合了带有板级唯一标识符(板级物理不可克隆函数 [张等, 2015;Wei等 2015])的混淆方案。该组合可确保以下内容:

—置换模块仅在直接连接到其原始印刷电路板时,才能使用预存密钥解锁系统。—密钥在不同印刷电路板之间各不相同。

要求“原始PCB”表明,如果将CPLD安装在另一个定制的印刷电路板上,它将接收到不同的PUF响应。另一个要求“直接连接”意味着,如果使用适配器/插座将CPLD与原始PCB连接,板级PUF响应将会改变。原因是适配器/插座会为板级PUF引入额外的阻抗。

不幸的是,系统重启后自动加载密钥再次使得中间层探测攻击成为可能。此类攻击不会重新分配置换模块,而是通过X射线等非破坏性技术提取电路板布局[Asadizanjani 2015]。掌握该信息后,第二类攻击者可以创建孔洞以探测置换模块的引脚。此攻击可在运行时完成,无需对印刷电路板进行逐层剥离。即使由于中间层极为复杂而无法实现中间层探测攻击,第三类攻击者仍可通过逆向工程芯片来获取密钥。

为了最终防止所有已知攻击,系统在断电时应销毁密钥。高级安全要求通过将密钥存储在易失性记忆体(嵌入式D触发器链)中,使设备能够实现这一目标。由于II类和III类攻击者在重启后需要一个工作设备,因此他们无法对断电后密钥被销毁的设备实施攻击。

6. 实验结果

在本节中,我们将根据多个标准评估所提出的混淆方法的性能。我们从飞思卡尔 [Fre 2014] 和德州仪器 [Tex 2016] 选取了12个参考设计,作为混淆方案的目标。这些参考设计如下: (1) 基于高性能微控制器的步进电机驱动参考设计 (2) 具备近场通信接口的超低功耗多传感器数据记录仪参考设计 (3) 集成功率因数校正的单轴电机控制参考设计 (4) SimpleLink多标准CC2650传感器标签参考设计 (5) 用于隔离低功耗应用的高效电源与数据传输参考设计 (6) 超声波水流量测量参考设计 (7) 基于铁电存储器微控制器的恒温器实现参考设计 (8) 三相无刷直流电机无传感器控制参考设计 (9) 双相计量参考设计 (10) 灯光控制模块参考设计 (11) 活动监视器参考设计 (12) 三相交流感应矢量控制参考设计

对于每个参考设计,我们在本节中进行以下分析:(i)涉及不同类型端口的混淆场景(即仅真实端口,或真实端口与虚拟端口两者),(ii)参与混淆的输入输出数量,以及(iii)从验证时间角度衡量的混淆强度。这些数据在同一表格中进行比较。除了这些比较之外,本节末尾还讨论了多密钥效应对混淆强度的影响。

6.1. 混淆强度总结

所有参考设计的混淆强度汇总如表III所示。在该表中,可编程组件列提供了这些组件的型号。输入/输出列表示置换模块所需的总输入/输出数量。组合列指出了攻击者需要检查的置换模块输入/输出组合的数量。仅限R表示仅使用真实端口进行混淆。D&R表示在混淆中同时使用了真实端口和虚拟端口。列分组条件指的是计算时所依据的条件

示意图10

组合(C)通过公式(7)计算。IGTI表示所有组都相互依赖。因此,C的计算应基于公式 (4)和(6)。IGTP表示所有组都相互独立。因此,C的计算应基于公式(3)和(5)。Both表示 IGTP和IGTI组均存在。破解概率列可通过公式(13)计算。较小的破解概率意味着更强的混淆性能。时钟频率列表示可编程组件能够提供的最大时钟频率。我们将攻击者确定所应用的输入/输出组合是否正确所需的时间定义为验证时间。验证时间可通过T=组合(C)×微控制器单元工作时钟频率(f)计算得出。在计算该值时,假设攻击者可在一个时钟周期内验证每个组合。然而,在现实世界中,当攻击者应用新的输入/输出组合时,需要观察电路板的行为以判断该组合是否正确。此过程将远慢于一个时钟周期。因此,该假设应被视为悲观估计。

灰色背景中的验证时间明显短于其他情况。相应案例具有一个共同特征,即混淆仅涉及真实端口,而虚拟端口存在。因此,在某些仅使用真实端口进行混淆无法提供满意混淆强度的情况下,我们需要利用虚拟端口来增强混淆强度。除了验证时间非常短的案例外,其余案例的验证时间都非常长(至少数千年)。在这些案例中,我们可以看到它们的置换模块输入端口均超过30个(如I/Os列所示)。在这些案例中,真实端口的最小数量为13。一般来说,为了获得满意的混淆强度,我们认为应存在至少15到20个虚拟端口和10到15个真实端口。如果仅使用真实端口,则需要超过20个真实端口用于混淆。上述要求很容易通过包含具有等于或超过64引脚的可编程组件的印刷电路板来满足(详细内容将在第6.2节中展示)。

6.2. 适用性

表III中的第4号和第12号参考设计具有较高的中断概率且验证时间极短。与其他混淆性能较强的参考设计相比,这些设计采用的是端口少于32个的小型微控制器单元。这些微控制器单元通常无法提供足够的端口数量用于混淆。例如,大多数端口用作通信端口和模拟通道,无法在所提出方案中加以利用。对于更大的电路板,例如可编程组件具有大于或等于64引脚的情况,其混淆强度将会更好。这一要求在用于更复杂应用的电路板上很容易满足。

我们调查了一些主要的微控制器和数字信号处理器制造商。结果表明,所提出的混淆方法可应用于每个制造商的大部分微控制器单元,如表四所列。因此,我们的混淆方案可以保护大量印刷电路板。对于包含少于64引脚可编程组件的设计,制造商可以选择将其替换为更大的组件,以实现对逆向工程的保护,同时付出合理的开销。

6.3. 多密钥效应

在本节中,我们提供仿真值和理论值结果以及它们之间的比较。我们将结果分为三个阶段进行展示:第一外层阶段结果和条件概率估计:首先,给出了8位和32位Benes网络在第一外级中环路数量的概率分布。理论结果是根据第4.3.1节中描述的算法计算得出的。其次,通过模拟1E4组随机输入/输出组合来估计条件概率Pr(·|·),如第4.3.2节所述。完整网络结果: 基于第一外层阶段结果和条件概率,根据第4.3.3节中提供的方法计算多个密钥数量的分布。将所提出的方法得到的理论结果与仿真结果进行比较。仿真结果来自1E6次随机输入/输出组合的仿真,是用于条件概率估计的仿真次数的100倍。对混淆强度的影响: 当攻击者检查密钥时(Pkey),根据密钥数量的理论分布计算出破解概率的最小值、最大值和均值。这些值与攻击者检查输入/输出组合时的破解概率( Pcom)进行比较。

6.3.1. 第一外级和条件概率估计

对于一个8位Benes网络,总的输入/输出组合为8! = 40,320,这在时间上是可行的完整的仿真。评估了所有输入/输出组合,并记录了第一外级贡献的环路数量。基于此,表五展示了环路数量的概率。表五的最后一列显示了所有环路数量的累积概率。该值必须为1,以表明所有可能的环路数量均已被考虑。同一列中仿真值与理论值相同,表明我们的方法能够实现精确的概率计算。

对于一个32位Benes网络,输入/输出组合的总数大于2.6E+ 35,进行全面仿真是不可行的。我们在时间可行性的意义上完成了最大试验次数(1E+ 6),并在表六中将其与理论结果进行比较。由于仿真并不全面,仿真值与理论值略有差异。受限于仿真中的试验次数,小于1E−6的仿真概率被报告为零。然而,理论概率具有高分辨率。理论概率与仿真概率之间的平均误差为0.001。

6.3.2. 完整网络结果

展示了32位Benes网络中多个密钥的概率分布。根据公式(2),一个32位Benes网络包含四个外层阶段,每个阶段包含16个开关。每个外层阶段贡献的最大循环数为16,即任意一级中的开关数量。显然,每个外层阶段的最小循环数为1。因此,整个网络所表示的最小和最大循环数分别为 1 ∗ 4= 4和16 ∗4= 64。总环路数量(公式(22)中的L)从4变化到64,并计算相应的概率(Pr(L))。最后,理论结果以红色圆圈的形式在图11(a)中展示。仿真概率基于1E6次随机输入/输出组合获得,并在同一图中以柱状图形式显示。

第一外级中的环路数量概率无法通过少量的部分输入/输出组合仿真精确估计。然而,这些概率可以使用所提出的理论算法准确计算。这一优势使得全网络环路数量分布的计算更加精确。环路数量与多重密钥的数量之间的关系遵循公式(15)。网络包含L个环路的概率等于 2L个密钥产生相同输入/输出组合的概率。因此,多重密钥分布(Pr(2L))可直接由Pr(L)映射得到。

6.3.3. 对混淆强度的影响

为了通过暴力破解来中断所提出的板级混淆,攻击者将从以下两种策略中进行选择:策略(i),即检查输入/输出顺序组合,或策略(ii),即检查密钥。由于多个密钥具有相同的置换结果,攻击者在选择策略(ii)时只需找出其中一个密钥即可。

通过比较应用策略(i)和策略(ii)的破解概率,研究了多个密钥对混淆强度的影响。应用策略(i)时,32位Benes网络的破解概率为 1/32! = 3.8004E − 36。对于策略(ii),破解概率可通过将多个密钥的数量除以密钥总数来计算。图11(b)给出了采用策略(ii)时破解概率的分布情况。应用策略(i)时的破解概率在同一图中以虚线表示。该虚线将策略(ii)的破解概率分为两部分。如果设计者采用的输入/输出组合的破解概率大于3.8004E −36(即图11(b)中虚线右侧区域),则攻击者通过应用策略(ii)将获得优势。

表七总结了策略(i)和策略(ii)下的破解概率。# of multiplekeys行表示策略(ii)下多个密钥的最小、最大和均值数量,这些值可从环路数量分布中获得。Probability行显示了相应的破解概率,这些概率可从图11(b)中获取。平均破解概率是基于Benes网络输入/输出组合的均匀分布假设计算得出的。由于在应用策略(ii)时,不同的输入/输出组合会导致破解概率不同,因此我们将平均破解概率与策略(i)下的破解概率进行比较。根据表七,利用Benes网络的多个密钥效应可降低预期破解概率。这意味着与策略(i)相比,执行策略(ii)更加困难。

7. 结论与未来工作

提出了一种板级混淆技术,以防止印刷电路板遭受克隆、过度生产和未经授权的操作。此外,研究了详细的置换网络实现与配置及其对混淆强度的影响。结果表明,所提出的方法能够为大量印刷电路板实现良好的混淆性能。我们还深入分析了针对所提出的混淆方案的潜在攻击,并提供了相应的对策。该所提出的方法在许多系统中显得非常有前景且实用。然而,对于具有高级安全要求的设备,尽管如此,实施该混淆框架的设计者仍应考虑若干限制因素。

密钥不会存储在系统中,应防止其被盗。设计者还需要分发固件的加密版本。由于涉及板级物理不可克隆函数,应利用纠错码来应对潜在错误。实现纠错码会为置换模块带来额外的面积开销。在未来的工作中,我们计划制造一块混淆电路板,以评估其在实际环境中的性能。我们还将更详细地研究所提出的对抗措施及其有效性。最后,我们将研究新的优化问题,以在不同约束条件下(例如时序、功耗、布线等)确定最佳的混淆方案。

基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值