安全SoC用于为系统(硬件和软件)提供身份验证,机密性,完整性,非再现和访问控制。以下是开发安全系统的一些多种架构技术。
通常在安全的SoC中,需要四个关键功能:安全启动,安全内存,运行时数据完整性检查和中央安全漏洞响应。
安全启动
从安全的角度来看,启动是SoC的一个重要且易受攻击的部分。如果黑客能够控制SoC的启动过程,则可以绕过所有其他安全实现以获得未经授权的访问。 SoC架构师开发了多种技术,以在SoC的引导过程中提供安全性。
将控件从硬件转移到软件的链接是黑客最喜欢的目标点之一。安全启动是一种防水技术,可以安全地保护这种联系。信任链是用于实现安全启动的经典技术之一。
信任链被设想为一种安全实现,其中可信/认证的硬件和软件用于链的多个阶段。如果SoC选择部署安全启动,则在每个启动阶段,它将验证要执行的下一个阶段。
安全启动从可信实体(锚点)开始。芯片硬件启动顺序和BootROM是用硅制造的可信实体。因此,几乎不可能改变硬件(可信实体)并且仍然具有功能SoC。
执行对每个后续阶段进行身份验证的过程,以创建信任链,如下图所示。
阶段1表示执行硬件复位序列,有助于SoC上电。此外,序列将控制转移到BootROM,BootROM是一个可信实体。
阶段2表示BootROM执行以及用户应用程序软件的身份验证。身份验证是生成应用程序映像的唯一签名并将其与黄金签名匹配的过程,存储在SoC中的安全区域。
阶段3表示用户应用程序软件的执行。
阶段2的完成确保可以信任用户应用程序软件。如果用户应用程序被非法修改,其身份验证将在阶段2中失败,因此阶段3将不会执行。
安全内存
SoC中的内存可以保护到保留敏感数据,如加密密钥,唯一ID,密码等。
内存可以分为多个分区,每个分区都有一组不同的访问控制。根据存储在分区中的数据的性质,可以将分区指定为安全敏感分区或非敏感分区。包含敏感数据的内存称为安全内存。在发生安全漏洞(例如篡改检测,ecc操作等)的情况下,安全敏感分区的内容可以由控制器本身擦除,而非敏感分区的内容可以保持不变。此类内存控制器称为安全内存控制器。
运行时数据完整性检查
A运行时数据完整性检查用于确保运行时执行期间外围存储器内容的完整性。安全启动序列生成参考文件,该文件包含存储在安全存储器中的各个存储块的内容的散列值。在运行时模式中,完整性检查器读取内存块的内容,等待指定的时间段,然后读取另一个内存块的内容。在此过程中,检查器还计算内存块的哈希值,并将它们与引导时生成的引用文件的内容进行比较。
如果两个哈希值不匹配,则检查程序向中央单元报告安全入侵,该中央单元根据安全策略决定要采取的操作。如果值匹配,则完整性检查程序将重新开始并验证后续内存块的内容。此过程一直持续到SoC运行。完整性检查器的扫描速率应该是可配置的,以便用户可以在存储器块验证速率和存储器带宽利用率之间进行权衡。
内存带宽利用率α1/内存扫描率
中央安全漏洞响应单元
该硬件模块可被视为SoC的中央报告单元,用于安全相关事件,如软件入侵,电压篡改等。此安全相关事件信息允许安全漏洞响应单元确定SoC的下一个状态。可以通过以下状态机最好地解释本机的操作。
安全漏洞响应单元监视安全入侵。如果硬件检测器(如电压,频率和温度监视器)报告了入侵,则响应单元将SoC的状态移至非安全状态。非安全状态的特征在于将其与安全状态区分开的某些限制。向响应单元报告的任何进一步的安全漏洞将使SoC进入失败状态,即非功能状态。在发出上电复位之前,SoC保持在Fail状态。
这里应该注意,安全入侵的响应是根据软件策略。例如,软件可以将某些入侵配置为非致命,因此这些入侵不会导致SoC转移到非安全或失败状态。提供这种可配置性是为了满足SoC应用程序的不同安全要求。
SoC状态的信息被传递到SoC中的其他安全感知部分,例如安全存储器控制器,它可以感知状态并保护敏感数据。
结论
SoC Security对物联网连接设备的安全可靠运行至关重要。使SoC能够执行任务的相同功能还必须使他们能够识别和处理威胁。幸运的是,这不需要革命性的方法,而是现有架构的演变。
有关这些主题的更多信息,请查看以下资源:
飞思卡尔安全技术
汽车安全:从标准到实施
安全与技术汽车IC的安全架构
-
安全性
+关注
关注
0文章
93浏览量
19119 -
PCB打样
+关注
关注
17文章
2968浏览量
21621 -
华强PCB
+关注
关注
8文章
1831浏览量
27695 -
华强pcb线路板打样
+关注
关注
5文章
14629浏览量
42943
发布评论请先 登录
相关推荐
评论