安全控制器中的 CPU 与存储器一样,都是攻击者感兴趣的攻击点,在设计时需要采用多种安全防护措施。
1.防故障注入攻击
攻击者可能在 CPU 处理过程中找到引入故障的机会,以获取密钥或操纵软件执行。早期保护 CPU 免受故障注入攻击的方式主要是设置探测环境条件的传感器,这些传感器可对时钟、电压、光线或温度等进行感测。但针对CPU 的其他故障,注入攻击仍有可能,如通过激光、电磁辐射进行攻击,或直按通过物理方式实施攻击,如FIB操纵、微探针等技术。
如同存储器系统最初采用的保护方式一样,增强CPU安全性的最初解决方案也是使用奇偶校验位。CPU寄存器中的奇偶校验位非常容易实现,无须从头开始设计安全控制器,但这种简便性是以牺牲安全性为巨大代价的;如同存储器奇偶校验保护一样,CPU奇偶校验保护也存在很显著的缺陷,因此还需要更好的保护CPU的方式。
一种非常简单的CPU防御故障注入攻击的方式是依次进行两次相同的操作,将两次操作的结果进行比较,并在结果不匹配的情况下发出告警。但这种方式会降低CPU性能,攻击者可以通过实施两次故障注入来绕过。如今多故障注入攻击已经是攻击者经常采用的攻击手段,并较多地出现在集成电路的安全性评估和认证过程中。典型的多次操作的防御方法 (在时间刻度上实现冗余)容易被多故障注入攻击彻底击垮,因为相应的攻击设备已经出现,而这些攻击设备能越过微控制器指令和时钟周期的时间刻度,瓦解通过时间刻度冗余进行的安全防范。更安全的应对措施包括使用紧密结合的双CPU内核,利用两个内核持续地互相检查对方的操作和状况。如果CPU能进行加密运算,甚至可让两个内核使用不同的动态密钥,以便大大增强对多时间、多区域的多故障注入攻击的防范。
2.防嗅探
此外,还必须保护CPU免遭嗅探攻击。在近几十年的安全控制器发展历史中,CPU基本采用明文方式工作,这意味着对CPU内部进行窃听的攻击者能够完全获取其中处理的明文数据。早期的嗅探攻击防范措施包括增加数个金属层,保护有价值的信号免遭窃取;后来出现了全面覆盖芯片的屏薇措施,其中一些具有自检功能或动态任意数宇反馈功能,以检查屏蔽的完整性。
如今面对 FIB、微探针、芯片微手术等攻击方式,这些措施的有效性非常有限。此外,还有不需要任何实际操纵就能窃取CPU中内容的攻击方式,如光辐射分析。这是因为硅晶体管在工作时将发射很少量的光,利用这种现象可读取寄存器中的内容。
安全控制器设计者已经认识到增强CPU安全性的必要性。如今所采用的先进方法是CPU采用动态加密的方式进行计算,这样攻击者只能获取被加密的数据。这种方法要求重新进行CPU设计,重新设计并非如对现有CPU 进行修改一般简单,但这种努力会带来很大的安全性能优势。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !