资讯详情

基于地址加扰的嵌入式系统安全防护研究

随着嵌入式系统的广泛应用,其安全保障越来越迫切,尤其是存储器中的数据和指令。目前,片外存储器的安全保护Execute-Only Memory(XOM)[1]、PE-ICE/TEC-tree[2]、AES-TAC[3]等技术的原理是通过加密存储[4]对数据进行安全保护。

由于特定型号处理器使用的初始代码具有相对固定的格式,编译后获得的指令序列相对固定,攻击者在探测到处理器型号后获得了一些指令序列。攻击者对指令序列的攻击从唯密文攻击转变为已知明文攻击,芯片的安全性将受到严重挑战。

针对上述问题,本文在嵌入式系统内存加密技术的基础上,提出了地址加扰安全防护措施。CPU访问逻辑地址与存储器物理地址之间增加了复杂的映射关系,隐藏了系统代码的规律性,大大提高了嵌入式系统的安全性。

1 嵌入式系统地址总线攻击分析

芯片和片外存储器的接口引脚是嵌入式系统中最薄弱的环节之一。攻击者可以从这些引脚中收集数据进行分析,并获得有效的信息。此外,电影上的总线[5]用于使用所有电影IP链接,跨度大,布局规则,容易成为攻击者施加探针的攻击点。SoC如图1所示,芯片容易受到攻击威胁,标记①标记存储器引脚攻击点②电影上总线探针攻击点。

c21d37b214a242a645d45d3ded7c34ad.gif

可通过嵌入比特置换模块混乱地址映射关系,从而加强防护能力。通过干扰存储器引脚上传输的地址,存储器内部的逻辑地址与物理地址不一致,攻击者无法从存储器开始攻击关键信息。通过在地址总线两端添加替换模块,地址总线不直接传输地址明文,防止攻击者通过差分攻击获得总线和引脚上地址之间的映射关系,防止攻击者建立明密文对应关系。

2 地址扰安全防护方案

2.1 加扰总线地址需求

存储器的每个地址对应一个存储单元,地址和存储单元之间必须有一个映射关系,干扰后的地址也必须有这个映射规则。根据地址信息解码总线,Flash存储器的读写也取决于地址信息,因此地址的加扰必须控制在一定的空间内,即加扰深度必须与总线配置一致。总线中数据和地址的传输必须符合总线的传输协议,因此地址的加扰不能带来额外的时钟延迟,即加扰必须保证实时性。

因此,加扰地址数据必须满足以下三个要求:(1)地址加扰后仍能一一映射;(2)加扰深度可控;(3)加解扰无延迟。

2.2 总线地址加扰方案

如图2所示。为了保护地址,使地址信号不直接出现在信道中,即使攻击者进入信道,也无法获得所有地址信息,必须在信道两端添加地址重映射模块。N1、N二是替换网络,实现电影中主要从设备和信道之间的地址重映射,即地址的加扰和解扰。其控制模块是由处理器控制的独立硬件电路,负责所有替换网络的参数配置和功能控制。加解扰操作如式(1)所示:

E是加扰运算,D解扰运算,a加扰前的地址,h添加干扰后的地址。使用相同的硬件模块件模块,但配置参数不同,k一是加扰参数,k二是解扰参数。

置换网络N1、N2可用Benes[6]实现二进制可重排非阻塞网络。令N表示重排数据位宽,m表示网络级数,r表示开关单元数,有N=2m。用2×2的基本开关单元构成N输入N输出的互联网,可以实现N!输入输出之间的替换记录为B(m)(m=logN)。通过递归构造Benes网络,可以通过一级N/2个开关单元继两个相同类型的子网络B(m-1)最后加一级,N由两个开关单元组成,附加级内部开关单元数r=N/2=2m-一、如式(2)所示。所以共有2logN-1级,每级有N总共有两个开关单元NlogN-N/2个开关单元,需要NlogN-N/2 bit配置参数。

其中,m=logN。

Benes可以实现替换网络N!全置换保证了任意置换深度的实现。非阻塞网络保证置换满足映射关系。更换网络为纯组合电路,不增加干路延迟。

2.3 加扰分析存储器地址

地址干扰方案的最终保护目标是系统存储器中的敏感数据。系统存储器主要包括系统内存和非易失存储器,并根据使用需要对存储设备进行分区。每个分区的特性如表1所示。

通常使用系统内存RAM。RAM最小读写单位为字节或单词,主要设备为RAM当执行n拍触发读写时,总线将继续给出n个连续地址。加入地址加扰机制后,总线给出的n个地址将不再连续,但RAM收到这些地址后,仍然可以正常找到地址。因此,地址不会受到干扰RAM影响使用。

通常使用非易失存储器Flash。Flash页面的基本结构(Page)、扇区(Sector)、块(Block)和宏。页面的大小一般为256 B,也是连续寻址的最大空间。扇区由16页组成,通常是擦除操作的最小单位空间。添加地址加扰模块后,即使将加扰深度控制在页面上,处理器也无法触发搜索地址,因为Flash只能根据实际物理地址连续读写。除非将在系统中Flash当整个数据(指令)移动到内存时,可以使用连续读写或Flash读写访问设置缓存,否则增加地址干扰后Flash只支持单拍读写功能。

3 地址加扰设计与实现

3.1 参数发生器设计

总线地址加扰系统配备了参数发生器和参数动态更新控制电路,以提高总线地址加扰的安全性。参数发生器负责生成更换网络动态配置所需的参数,使系统能够根据需要动态更换更换网络的配置参数,从而达到更好的安全防护效果。本文以32 bit以位宽地址总线为例,N=2m=共有144个开关单元,每次配置需要144个 bit配置参数。

参数发生器包括三个线性反馈移位寄存器(LFSR)。每个线性反馈多项式均为原始多项式,分别为:LFSR-42(42,7,3,0)LFSR-48(48,9,7,4LFSR-54(54、8、6、3、0),线性反馈移位寄存器的周期分别为242、248和254。LFSR-42、LFSR-48和LFSR-多项式反馈54f1(x)、f2(x)和f3(x)如式(3)所示:

使用钟控模型控制参数发生器的控制部分。以下是三个LFSR钟控方式。LFSR-42将当前时刻第21级寄存器的比特作为X1,LFSR-48以当前时刻第24级寄存器的比特为例X2,LFSR-54以当前时刻第27级寄存器的比特为例X3,X1、X2、X三个比特用于控制三个LFSR动作与否。选多原则采用控制方式,如公式(4)所示:

通过钟控操作,3个LFSR最终周期为2144。因此,只需从寄存器中提取随机序列,并根据参数配置规则填充替换网络,即可满足替换网络的配置需求。

通过2.根据第2节的分析,替换网络实际上是利用多组选择开关来改变数据中每个比特的排列顺序,最终成为与配置信息相关的重排列。如果恢复原始地址,重新排列后的地址可以逆向重新排列,使其返回初始状态。输入为32 bit位宽的Benes替换网络由9列和16行组成,每列分别配置信息R0~R8.每列配置信息Rn包含16 bit,加解扰的配置参数k1和k如式(5)所示,相互倒置。

3.2 替换网络应用

为了实现地址信息和系统信息的混乱,确保系统程序的动态更换和安全保密,地址扰动系统应包含多种不同功能的置换网络,分别实现扰动控制、存储器扰动、非存储器扰动等功能。

根据嵌入式系统的特点,本文设计了四种置换网络,即连接处理器的置换网络N0.连接普通主设备的置换网络N1.从设备替换网络连接非存储器N2.连接存储器的替换网络N3.系统中这四种置换网络的分布如图3所示。

N在实现加扰功能的基础上,0网络还实现了控制信息的分析。N1和N网络实现了地址总线的加扰和解扰,保证了总线地址数据的混乱和系统设备的可用性。N该网络专门用于替换存储器,目的是确保存储器中的数据地址混乱。

主设备(包括处理器)发出的地址a经过N0、N更换1后,添加新地址h′,并输入地址总线;总线将地址信息传输到网络;N2.还原地址a,从而实现了地址在总线中的安全传输。如果目标设备是存储器,则需要进入置换网络N3.重新添加地址h″,然后实现了存储器的混乱存储。

图4是配置加扰功能后系统的访问控制流程图。由于系统的读写访问控制操作CPU处理器启动并更换网络,以判断它是否是网络的控制指令。如果是控制指令,则根据指令控制干扰系统;否则,在输出时首先干扰地址并恢复干扰。如果设备是存储器,则地址将再次干扰,然后访问存储器;否则,直接从设备发送。

3.3 系统初始化流程

为了使系统指令始终保持混乱的存储顺序,并确保攻击者无法获得系统指令的加密序列,必须预处理系统程序。指令的预处理与初始化过程中的替换地址相结合,以确保系统程序的安全。

系统存储器包括系统内存和非易失存储器。非易失存储器不仅存储系统启动代码[7](BootLoader)、系统程序(SoftWare)用户关键数据(UserData),还存储了存储器专用置换网络的配置参数(KeyData)。如图5所示。

系统程序装载的操作步骤是:将高级语言编译成汇编语言;将汇编语言编译成处理器指令流;将指令流序列重拍成混乱序列;将混乱序列装载到系统非易失存储器中;系统启动并初始化。

为了实现系统程序的安全保护,使攻击者无法从系统程序中获得有效的信息,必须修改系统初始化过程,扰乱进入存储器的地址,使系统程序以混乱的形式存储在非易失存储器和系统内存中。

如图6所示,修改后的系统初始化操作步骤为:系统上电,从非易失存储器零地址开始;将SoftWare中间的系统指令移动到RAM零地址;将UserData移动用户参数RAM;从KeyDat中获取置换参数,并注入置换网络;复位系统,地址重映射,并从RAM的零地址执行代码。

4 实验结果

为了综合评估该方案的资源消耗,本文使用Verilog硬件描述语言和C语言设计并实现了整体方案,利用综合工具在0.18 nm工艺下对各硬件模块进行了综合,资源消耗如表2所示。地址加扰安全防护系统的资源消耗总和取决于地址加扰的防护对象数量,防护的目标越多,需要的置换网络也越多。设N1和N2数量的总和为m,N3的个数为n。

测试环境的构建基于某嵌入式SoC芯片原型系统,芯片原型内共有15个主从设备和2个存储器,m取值14,n取值2。地址加扰对芯片的资源消耗如表3所示,其中逻辑资源不包含存储器等存储资源,地址加扰模块对整个芯片的资源仅占芯片总资源的1.09%。

从综合分析测试结果可知,地址加扰能有效保护地址信息,其参数的复杂度为2144,且地址只以加扰状态出现在攻击薄弱点;地址加扰的资源消耗非常少,地址加扰效率极高,操作控制简单,且在干路中不造成延时,保证了数据传输的实时性。

为了提高嵌入式系统安全防护能力,本文结合地址总线的传输特性,提出了基于Benes置换网络的地址加扰方案。测试验证结果证明,本文所提出的地址加扰方案能有效提高嵌入式系统的安全防护能力。目前地址总线的加扰应用还不够广泛,地址总线加扰还可能面临其他潜在威胁,需要在应用过程中收集更多的数据来完善总线地址加扰的理论。

参考文献

[1] LIE D,THEKKATH C,HOROWITZ M.Implementing an untrusted operating system on trusted hardware[C].In:SOSP′03:Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles,2003:178-192.

[2] ELBAZ R,CHAMPAGNE D,LEE R B,et al.Tec-tree: A low cost and parallelizable tree for efficient defense against memory replay attacks[C].In:CHES′07: Workshop on Cryptographic Hardware and Embedded Systems,2007:289-302.

[3] VASLIN R.Hardware core for off-chip memory security management in embedded system[D].Leuven:Katholieke Universiteit Leuven,2008.

[4] DURAHIM A O,SAVAS E,SUNAR B,et al.Transparent code authentication at the processor level[J].Comput DigitalTech。,IET,2009,3(4):354-372.

[5] 陈驰,冯登国.信息安全产品安全保证量化评估研究[J].电子学报,2007,35(10):1886-1891.

[6] Zhong Jiling.Upper bound analysis and routing in optical benes networks[D].Atlanla,GA,Georgia State University,2005.

[7] 赵鹏,王大伟,李思昆.面向SoC任务分配的应用程序存储需求量分析方法[J].电子学报,2010,38(3):541-545.

标签: k2an继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台