当前位置:网站首页>嵌入式系统真正安全了吗?[ OneSpin如何为开发团队全面解决IC完整性问题 ]

嵌入式系统真正安全了吗?[ OneSpin如何为开发团队全面解决IC完整性问题 ]

2022-07-07 18:21:00 麦禾信通

吉姆·霍根(Jim Hogan)于2019年9月4日下午12:00提交的IC完整性论文 类别:EDA,Onespin,RISC-V

在这里插入图片描述
功能验证是减少潜伏在半导体产品中的设计漏洞及其相关风险的一个过程。从历史上看,最终产品的市场细分决定了在功能验证中可投入的资金。但是几年前这个长期存在的方程式灾难性地失败了。失败的原因是在于找不到这些漏洞,其中很大的原因是由于嵌入式软件的使用日益增加。与此同时,功能正确性验证在设计总成本的占比也在不断增加。

此外,开发流程现在必须考虑将代码安全性,代码健壮性和代码可信性作为设计需求。代码安全性确保设计在出现随机故障时能够以安全的方式继续运行,代码健壮性确保其预期行为不会因环境危害或恶意活动而受到改变。代码可信性是确保在开发过程中没有木马被注入到设计当中。
在这里插入图片描述
仔细想想,我们的连接系统几乎每天都在遭受破坏,其中包含我们个人或财务数据被盗的问题。同样令人关注的是阻断服务攻击,其中成千上万的连接设备被接管和控制以达到恶意损害的目的。这些是已报告的安全漏洞,但可能还有许多其他我们未曾听说过的安全漏洞。

大型计算机的机场希望确保任何设备故障都不会导致整个系统瘫痪,并且可以在系统继续运行的同时安全可靠地移除故障设备并更换备用组件。

我们还听说过在生产链中将木马病毒注入芯片或系统中,使得芯片或者系统一旦被部署就受到木马病毒的威胁。因此最终设计中代码的可信性验证是至关重要的。

让我们用当今最为典型的驾驶技术的应用(自动驾驶汽车)来说明这一挑战。此技术对于代码安全性、代码健壮性和代码可信性都提出了较高的要求,以便能够及时响应现场故障并确保黑客无法进入出现故障的系统。
在这里插入图片描述
这些是开发团队今天必须面对的现实。现今的开发团队所要面对的现实是业界大多数功能验证采用的工具和方法都不能缓解上述这些问题。这是IC完整性问题。

IC完整性定义

IC完整性是一种状态,在这种状态下,从产品规范到已部署的产品即使处于故障或恶意攻击等的不利条件下,产品设计也能在预期的功能范围内正确、安全和可靠地运行。

IC完整性会影响从SoC级别到实施再到部署的整个开发过程。虽然大多数开发都是在寄存器传输级别(RTL)上完成的,但是一个产品设计在更高的抽象级别上实现的时候,必须结合一些物理层面实现的概念。例如,IC完整性可确保从验证RTL到产品部署的过程中,任何非预期的功能都不会被添加、删除或修改。这可能包括对要下载到FPGA上的比特流执行等效检查。尽管IC完整性严格意义上并不包含软件,但是硬件必须为运行在其中的软件提供安全环境。

遗憾的是现今没有任何一家公司或技术可以实现IC完整性的各个方面。相反,公司需要在整个开发流程中采用多种不同的方法。

我相信,OneSpin Solutions公司代表了一家能够在多个细分市场中了解IC完整性意义的公司。这就是为什么我选择与他们合作的原因。

三大支柱

IC完整性受到三大支柱的支持:
▷功能正确性
▷代码安全性
▷代码可信性与代码健壮性

并非所有行业都以相同的权重看待每个支柱,例如一些行业将功能正确性和代码安全性视为其市场必不可少的,而另一些行业则希望包含功能安全要求。代码安全性和代码健壮性在某种程度上是联系在一起的,因为如果设备不安全,就无法保证其代码安,全如果本应保证安 全的设备是不安全的,那么当故障发生的时候这些设备也就无法保证他们的安全性。因此我们要依靠检测到的故障来防止入侵。

此外,某些行业还存在一些次要问题,例如可靠性问题。尽管从根本上讲,这是代工厂,设计和其他后台任务所要解决的不同问题,但是功能安全性在检测设备故障方面扮演着至关重要的角色,因此安全性成为可靠性的重要方面。

功能正确性

功能正确性是指证明一个设计执行了其功能要求所定义的所有预期功能。需求还可以定义永远不能出现的行为。

对于越来越多的市场和应用程序来说,仅使用仿真来达到验证功能正确性的水平已不再足够。而且从设计中消除系统错误导致设计团队无法采用新的验证方法是因为这种设计错误的规模和复杂性正在不断增加。即使通过硬件增加、通过仿真或物理原型进行补充,仿真也不再足以完成功能验证的任务。由于单处理器性能已经趋于平稳,并且仿真算法不可并行化,因此仿真功能无法扩展。即使以定制硬件的形式加速增加并行性,但是成本却非常高昂。诸如约束随机测试生成之类的普遍方法正变得越来越低效,尤其是没有确定覆盖范围的可靠方法。从根本上讲,这种方法是有缺陷的,因为这些技术永远无法保证功能的正确性,且无法解决IC 完整性所需的代码安全性,代码健壮性和代码可信性方面的问题。

Wilson Research最新研究表明,芯片重新设计的数量正在增长,这表明实现功能验证目标的公司越来越少。渐进式的公司正以越来越快的速度采用形式验证技术,尽管只有少数公司已经发展到可以仅使用形式化工具即可实现签收的程度。
在这里插入图片描述
2018年形式化技术使用量的增长。资料来源:威尔逊研究小组

这种方式需要被改变。自动形式技术的创建有助于加速其应用,但是公司前期必须投入必要的资源,从而使形式化技术取代大部分功能验证方法,便于它可以大大替代使用动态验证方法(如仿真),形式化验证可以大大减少所需要花费的时间。
在这里插入图片描述
形式化验证

功能安全性

功能安全性意味着系统在运行时必须能够检测出随机故障并对其做出适当反应,以防止故障出现。

面向自动驾驶汽车的技术竞争使人们愈加关注安全性。尽管航空电子等某些行业长期以来一直专注于安全性,但他们的方法却是通过大量重复试验来验证安全性的,并且该类行业不认为成本是主要问题。对于汽车行业来说,这是不正确的,因为据估计,电子设备的成本将很快变成汽车成本的一半。使用粗略的方法(例如复制),比较容易证明满足安全,但是当将安全性直接纳入设计时,则需要进行更深入的分析,这也增加了功能验证任务的复杂性。
在这里插入图片描述
安全验证的传统方法是通过故障仿真。这要求在每个潜在故障都注入系统的情况下模拟功能验证套件,以查看设计过程中是否可以检测到故障的存在并做出适当反应。鉴于许多芯片回归套件的运行时间需要几天或几周的时间来运行,因此这显然不是可行的解决方案。即使已经开发出了减少所需测试集大小和需要检查故障数量需求的技术,但是这些仍然代表着巨大的计算量。

如今急迫需要新技术来减少或消除故障仿真,因为SoC级硬件分析和故障模式分析需要自动化实现,并且需要对设计中内置的安全机制进行完全验证。
在这里插入图片描述
故障检测

可信性与健壮性

可信性和健壮性意味着,即使在胁迫情况下,系统也只会执行其预期的功能,并且本应保密的数据仍将以这种方式保留而不被破坏。

在过去的一年中,显而易见的是,处理器设计的性能受到许多安全性的损害。发现新的漏洞,并且针对这些漏洞的修复程序通常意味着处理器性能的下降。

在健壮性设计之前,许多用于连接设备和实现通信的基础架构已经被实现。这基本上意味着,连接到互联网的每个设备都容易受到攻击。我们已经看到许多利用这种方法来访问公司网络并窃取数据的示例,即使这些公司已采用诸如防火墙之类的技术来防止这种入侵。

在芯片内,必须确保处理器上运行的软件也同样受到保护。因为这不仅意味着确保该软件可以被信任,而且特权软件可以需要在用户级应用程序无法访问的环境中运行。这些机制的失败意味着怀有恶意的用户可以危害该设备及所有信任该设备的仪器。

半导体行业依赖于组件的重用,其中某些组件可能是内部开发的,而其他组件则来自第三方公司。人们对这些第三方设备的可信性提出了疑问,尤其是这些设备在外国开发或归外国所有时。在整个设计和实施过程中,这些设备的可信性都需要不断地被审核。

我们还听到了更多有关侧信道攻击的信息,这些攻击通过查看次级特征(包括功率和辐射信息)从系统中提取数据。

不同于功能的正确性和安全性,功能的健壮性和可信性验证不是要证明某件事情正确无误,而是要表明一些没有的东西。这是使用动态技术(例如仿真)永远无法完成的任务。只有通过形式化技术才能确保健壮性和可信性。

达到IC完整性

在设计团队表示已完成并验证了设计与在现场部署该设计,这两者之间会发生很多。

在这里插入图片描述
从需求到芯片的漏洞。资料来源:OneSpin解决方案

这些事主要在两个方面:集成和实现。

当在设计中使用IP时,如果该IP块未正确或合法连接,则该IP块的转移及其集成到大型系统中可能会损害在这三个支柱中的任何一个方面所做出的努力。芯片组装的验证通常涉及数百万个连接,而使用动态验证无法完全验证这些连接。

系统在实施过程中会对设计进行许多转换。这些转换中的每一个都可能损害三个支柱中的任何一个。
在系统中插入测试逻辑可能会损害代码质量。插入功率降低电路可能会影响功能的正确性和安全性。工具可能包含错误的添加或删除行为的错误。即使是安置元件和连接线路也可能因为无法完全理解某些电路板布局而产生侧信道攻击。这些只是可能会损害系统意外更改的示例。

除此以外还有可能会发生恶意行为。最近一些事例表明,一些印制电路板中被添加了流氓组件,从而使远程访问和数据盗窃成为可能。由此工业界越来越担心不合格或假冒零件的使用。在这些情况下,您如何知您道所使用的IP是值得信赖的呢?

FPGA还导致了另一级别的漏洞,因此下载到设备中的比特流必须受到保护。但这需要确保比特数据流在整个开发流程和生命周期当中得到保障。
在这里插入图片描述集成验证

思考范例

为了进一步解释一些问题,值得考虑行业中的一个新兴的示例。开源RISC-V指令集架构(ISA)的迅速崛起引起了整个半导体行业的极大兴趣。一些公司可能选择自己开发处理器实现,其他公司则可能从第三方公司购买处理器。您如何知道处理器是ISA的忠实代表,并且可以被信赖?

RISC-V的开发者正在开发一组合规的验证套件,但这仅表明在有限的条件下,实现与ISA规范相匹配。仅此而已。

完整验证套件的开发是十分昂贵的。许多人将这笔巨款定义为为了购买商业核心所需要支付的大部分“税金”。但是用户如何知道他们的验证是否充分?您如何信任该内核不包含木马病毒程序?您如何知道它是否已通过了必要的程序来确保其安全性和健壮性?

因此RISC-V核的开发人员必须证明该核心符合ISA规范,并且除了指定内容外,该核不做其他任何事情。但是如果验证套件的开发货架式核产品价值的重要组成部分,那么开发人员不太可能将其公开。如此供应商如何证明他们的核心是值得信赖的?有第三方RISC-V完整性解决方案可以提供答案吗?

在这里插入图片描述
RISC-V的形式验证

结论

功能验证将会越来越困难。公司继续尝试使用现有且固有的技术,同时这些技术变得越来越低效。此外,功能正确性现在只是许多公司面临的验证任务之一。功能安全性、健壮性以及可信性的增加加大了验证任务的复杂性,这是旧技术所无法解决的问题。IC完整性正成为越来越多行业(包括嵌入式,云,基础设施和汽车行业)的一种强制性需求。

高级技术的存在能够使这些问题的许多方面都得到解决。最先进的开发团队正在开发和部署新的技术。随着越来越多的公司意识到代码质量,产品的安全性、健壮性和可信性正逐渐成为产品差异化因素,对这些解决方案的需求也在日益有所增长。

(版权所有,抄袭必究)

更多相关信息:http://www.softtest.cn/

原网站

版权声明
本文为[麦禾信通]所创,转载请带上原文链接,感谢
https://softtest.blog.csdn.net/article/details/103008875