中文 英语
系统与设计
的意见

芯片安全需要一种新的语言

SystemVerilog断言可以很好地捕获许多硬件需求。然而,安全性验证还需要做更多的工作。

受欢迎程度

文/斯文·拜尔、塞尔吉奥·马尔切斯

安全和安全关键系统,如联网自动驾驶汽车,需要高完整性集成电路(ic)。功能的正确性和安全性是建立集成电路完整性的必要条件,但还不够。安全性是集成电路完整性的另一个关键支柱。使用带有安全漏洞的ic的系统和产品最终会破坏人们的安全和隐私。然而,硬件安全仍处于起步阶段。最近一项针对汽车供应链安全的调查发现,只有47%的公司会在产品发布过程的早期阶段,即需求和设计阶段以及开发和测试阶段评估安全漏洞(见图1)。正如调查报告中所述,“这一过程与SAE J3061网络安全指南的指导相悖,该指南提倡基于风险的,在整个产品开发生命周期中采用流程驱动的网络安全方法。”


图1:在产品发布过程的特定阶段评估汽车软件/技术/组件安全漏洞的公司百分比资料来源:保护现代汽车:汽车行业网络安全实践研究,波耐蒙研究所。

另一方面,汽车安全虽然仍具有挑战性,但已处于较为成熟的状态。这在很大程度上要归功于ISO 26262功能安全标准。该标准在过去十年中得到广泛采用,涵盖了汽车电气和电子(E/E)系统的整个生命周期。它还包括在工程组织中建立和培养安全文化的规定。ISO/SAE 21434“道路车辆-网络安全工程”标准目前正在开发中,预计将于2020年发布,承诺采用类似的方法来解决汽车安全问题。

另一个超越汽车安全范畴的重要举措是Accellera知识产权安全保障工作组(IPSA), OneSpin是该工作组的成员之一。该工作组成立于2018年9月,目标是为硬件ip提供安全保证标准,以减少和管理嵌入式系统集成ip时的安全风险。

在这个高级概述之后,让我们进一步了解硬件安全性的一些基本方面。

信息中央情报局
如今,大多数芯片都包含由软件层利用来实现安全功能的特性。示例包括身份验证、安全无线软件更新的签名处理以及私有数据的快速加密和解密。某些硬件内存区域可能被保留,只有具有高权限级别的应用程序才能访问。有些寄存器可能包含秘密数据,例如加密密钥。更一般地说,硬件必须确保信息安全得到维护。这包括确保信息的机密性、完整性和可用性(CIA)。例如,攻击者可能试图提取密钥,从而破坏信息机密性,有时被称为数据泄漏。他们还可以尝试覆盖密钥,替换锁而不是窃取密钥,从而破坏信息完整性。这有时被称为数据神圣性。信息机密性和完整性都是硬件安全的关键方面,需要严格的硅前验证。

安全需求
在硬件中验证机密性通常包括检查某些寄存器或受保护内存区域的内容不能到达某些输出,无论硬件如何使用。在实践中,需求可能更加复杂,因为只有在授权代理请求时,才允许机密数据到达输出。使用伪代码,可以将此需求表示为“not_propagate (secret_x output_y)”.SystemVerilog硬件描述语言(HDL)提供了许多构造来捕获断言中的硬件需求。这些可以在通过设计仿真、仿真和形式化分析进行功能验证期间使用。然而,在SystemVerilog断言中不容易表达安全需求。

天真的人可以这样写" output_y != secret_x "作为一个断言。即使忽略时间问题(秘密到达输出可能需要几个时钟周期),这个表达式也有两个基本问题。首先,在某个时间点,输出可能在正确操作的情况下意外地具有相同的秘密值,从而导致安全测试期间出现错误失败。这里的问题是,SystemVerilog断言讨论的是值的相等性,而不是导致输出值存在的原因。其次,断言只检查值是否相等。不幸的是,如果秘密通过更复杂的方案泄露,也会违反保密性。例如,秘密位可以被反转,或者经过更复杂的转换。此外,它们可以被分割成几个块,并在一些步骤中流出,而不是一次全部流出。简单的断言不包括这些场景。

了解了完整的设计结构,就可以编写大量断言来检查秘密和输出之间的所有可能路径,一次一个部分。虽然这种方法在理论上是可行的,但在实践中是不可行的,因为即使是一个简单而真实的设计,它也太费力气而且容易出错。工程师需要SystemVerilog扩展或其他标准化语言,以简洁的方式表达这种类型的硬件安全需求。电子设计自动化(EDA)工具可以读取这些需求,并将它们编译成适当的检查。

目前,商业EDA工具为信息流需求提供了专有方法。标准化方法将实现工具互操作性,提高设计迭代中需求的可重用性,并允许半导体ip提供商交付可由SoC集成商独立检查的可执行安全规范,并重用以确保芯片级安全。

结论
现代世界比以往任何时候都更加依赖复杂的电子系统。从自动驾驶汽车到医疗设备,从飞机到关键基础设施,从防御系统到5G网络,人们的安全和隐私取决于用于实现这些系统的芯片的安全性。安全性需要成为硬件开发生命周期中不可分割的一部分。虽然安全专家比以往任何时候都更需要,但也需要更广泛的意识、专业知识和能力。所有开发阶段的工程师都需要具备适当的知识、流程和工具,以便在流程中尽早检测和解决安全漏洞。在硬件级别上简洁地捕获安全信息流需求的标准化方法将支持更健壮的流程,以及工具之间更好的互操作性,同时还简化了专业知识的共享。有关IC安全和信任保证的更多信息,请阅读OneSpin信任和安全解决方案传单

Sergio Marchese是OneSpin Solutions公司的技术营销经理。他拥有20年的电子芯片设计经验,并在欧洲、北美和亚洲部署先进的硬件开发解决方案。他的专业知识包括IC设计,功能验证,安全标准,包括ISO 26262和DO-254,以及硬件木马和安全漏洞检测。他热衷于使下一代高完整性芯片成为物联网、5G、人工智能和自动驾驶汽车的基础。



留下回复


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

Baidu