18lickc新利
的意见

建立针对网络攻击的深度防御

确保如果攻击者成功绕过保护机制,他们将面临另一层防御。

受欢迎程度

随着网络攻击的数量和类型,从“简单而廉价”到“昂贵而复杂”,继续以惊人的速度增长,保护芯片和设备必须采用纵深防御策略。通过这种方式,如果攻击者成功绕过了保护机制,他们将面临另一层防御,而不是一条通往他们试图利用的资产的清晰路径。在这篇博客中,我们将讨论一些安全架构师可以用来构建深度防御的保护措施。

固件完整性保护

最简单的逻辑攻击向量之一是用流氓固件替换真正的设备固件。最简单的保护是将所有固件都放在嵌入式ROM中。由于各种原因——包括安全更新——这已经不被接受了。固件升级机制需要允许现场更新和升级设备,包括安全补丁。典型的引导流程从ROM中的一个小型引导加载程序开始,该加载程序从外部Flash或通过其他机制导入后续引导阶段和应用程序代码。健壮的加密数字签名方案可以在允许从数字签名图像引导之前验证数字签名图像。扩展机制还提供固件机密性和防回滚机制。

运行时内存保护

运行时内存保护是一种安全服务,可用于在运行时验证应用程序代码和数据的完整性。内存的完整性检查定期启动或通过事件触发。该服务可用于保护代码和数据不受未经授权的修改,不仅是在启动时(如上述固件完整性保护),而且在应用程序的整个运行时。运行时内存保护可用于验证关键应用程序代码或数据的完整性。通常,对于内容长时间保持不变的内存,运行时内存保护是有意义的。这可能适用的例子包括操作系统代码、中断向量表、中断处理程序或监控软件。另外一层内存保护是对内存中的应用程序数据区域提供机密性、错误检测和防回滚保护。

读出保护

除了对系统完整性至关重要之外,固件还是一种高价值资产,除了完整性和真实性保护之外,可能还需要保密保护,例如,防止它被用于克隆。在将固件存储在片上闪存区域的设备中,固件需要通过读取保护以及对片上闪存的侵入性攻击来抵御许多非侵入性攻击。当使用外部闪存时,安全子系统可能需要提供额外的保护机制,例如实时加密/解密和验证服务,以保护存储在非易失性内存(NVM)中的固件的完整性。

运行时完整性保护

可能需要额外的保护机制来维护引导后的安全状态,即在应用程序执行期间,确保代码不仅像运行时内存保护一样正确地从内存中读取,而且还正确地执行。因此,现代安全子系统可能具有运行时完整性保护机制,例如定期验证正确的代码执行流以验证平台完整性,或者对于基础级安全系统,具有环境安全传感器以监控IC。

隔离处理环境/沙箱

为了减少攻击面,复杂的任务被分解成更小的子任务,然后这些子任务通过各种方法相互隔离。此外,限制对任务不需要的IC资源的访问权限是减少所述任务的攻击面的一种方法。

防止侧通道攻击

存在大量对抗侧通道攻击的对策。这些措施包括特殊的硬件设计,无论计算的是什么,都能平衡功耗,以及经常涉及复杂数学的各种软件对抗措施。对于使用标准硬件组件构建的设备,侧边信道攻击对抗措施的重点依赖于软件方法。从本质上讲,所有这些方法都试图解关联逻辑数字信息(例如。有价值的加密密钥材料)从它的物理位表示。同样,目标是将在这些键上执行的逻辑算法步骤与对比特和字节的实际物理执行的操作解关联。无论如何,这通常涉及到将随机化添加到加密算法的实现中。这里的关键字是掩蔽,隐藏,盲等。

防止故障注入攻击

针对故障注入攻击的基本补救措施是在所有层上为硬件和软件添加冗余和弹性。在某些情况下,这可以非常简单,只需将返回码定义为值,而不是全0或全1,而是两个不平凡的字节。这使得故障攻击更难创建所需的正确返回值。它还有助于添加监测某些关键代码块是否已执行以及是否以正确的顺序执行的度量。对策也将根据故障是短暂的(即仅在短时间内出现)还是准永久性的而有所不同。

运行这样一个保护列表最引人注目的方面之一是,为芯片或设备构建成功的安全架构可能是一项艰巨的任务。幸运的是,有专家提供现成的解决方案可以帮助你。在Rambus,我们拥有近30年的安全专业知识和广泛的安全IP解决方案组合。我们可以帮助您保护您的设计,无论是针对消费者物联网还是最敏感的军事应用。

额外的资源:



留下回复


(注:此名称将公开显示)

Baidu