中文 英语
18lickc新利
的意见

安全验证处理器的出类拔萃

一个安全处理器本身是不够的,需要一个方法,使系统级安全目标。

受欢迎程度

由路德Derwig和妮可蕨类植物

现代系统的安全是至关重要的。设备制造商包括多个安全特性和攻击保护的硬件和软件设计。然而,最终产品系统安全无法保证使用安全处理器。最终产品安全结果不仅使用证明,安全的硬件组件。此外,配置,集成和额外的软件必须考虑。当将一个安全处理器集成到一个芯片系统(SoC)和开发软件,安全漏洞仍然可以介绍。验证没有这些安全漏洞在硬件和软件组成的系统是一个复杂的工作。

龟岛逻辑的Radix-S利用专利信息流跟踪技术,使验证的安全目标基于机密性和完整性的概念,可以帮助确认设计师集成和程序正确安全特性与最小中断现有验证工作流。

安全验证弧处理器调试锁功能和微处理器配置

使用处理器的系统集成商等IP Synopsys对此DesignWare弧处理器必须确保他们正确配置和管理保护和安全特性,和不引入漏洞。评估复杂的安全,高度结合硬件软件系统,并确保这些系统是免费的从漏洞是困难的因为大多数目标功能验证工具,不安全、验证。龟岛逻辑和Synopsys对此合作展示一种新颖的安全验证方法使一些系统级的安全目标DesignWare弧处理器使用Radix-S验证结合现有的仿真基础设施组成的风投和电弧MetaWare开发工具。

这些安全目标导致的创建和验证三个安全规则。两个模型都是基于威胁相关安全调试期间和一个验证的软件错误的配置弧内存保护单元(微控制器)。这些规则可以很容易地应用于许多项目。下面,我们将描述这些安全规则是如何指定在电弧处理器的硬件/软件模拟和验证。

验证安全调试锁定模式

调试模式下提供更高的可控制性和可观测性的硬件和软件测试;然而,进入设计内部构成安全风险。以确保调试功能只能由授权用户访问,DesignWare弧处理器IP提供选项来配置安全调试特性,包括锁定/解锁机制(图1)。Synopsys对此提供了一个示例解锁模块响应协议基于一个简单的挑战。设计师通常替换的例子和自定义解锁逻辑地址提供必要的安全特定的威胁模型或集成处理器安全调试成一个更大的SoC安全调试设计。

图1:安全调试DesignWare弧EM处理器IP

设计师应该验证锁功能实现了预期行为,没有意想不到的信息流动调试时出现访问端口处于锁定模式。在锁定模式调试器不应该能够访问1)处理器寄存器,或2)处理器内存数据。

Radix-S可以验证一个特定电弧配置满足这个假设在锁定模式通过创建两个安全规则来追踪的流处理器寄存器和数据内存调试端口。这些规则是使用龟岛逻辑的哨兵语言写的。铁卫军的一个独特的特性是能够表达相关的安全需求信息流动的设计,这是必不可少的有效的表达和验证的机密性和完整性属性设计资产。"无"操作符(= / = >)是基本构建块创建规则用于跟踪设计信号之间的信息流动。哨兵关键词“当”和“除非”存在指定条件必须满足之前流跟踪执行,条件允许哪些信号之间的流动,分别。

安全规则# 1:CPU寄存器内容不应该流到调试接口调试时访问端口处于锁定模式。

u_regfile_2r2w。all_outputs美元(! dbg_unlock) = = > dbg。all_outputs美元

u_regfile_2r2w模块,实现了电弧EM注册文件。dbg_unlock是解锁信号从图1,dbg是调试模块本身。的“all_outputs美元”关键字是速记来描述所有输出信号的集合为一个特定的模块实例设计层次结构。规则# 1将会失败如果注册文件内容流调试模块输出调试时处于锁定模式。

安全规则# 2:数据内存不应该流到调试接口调试时访问端口处于锁定模式。

dccm_data_out当(! dbg_unlock) = = > dbg。all_outputs美元

规则# 2将会失败如果数据内存内容(dccm_data_out)可以退出调试调试处于锁定模式时接入端口。注意,弧处理器特性单循环访问数据紧密耦合的记忆(数据和ICCM DCCM指令)。Radix-S可以验证规则# 1和# 2的一部分现有测试流在一个由系统提供保证调试端口不泄漏内部处理器信息在锁定模式。设计师可以编写额外Radix-S哨兵规则来验证自定义解锁模块本身。

验证软件的初始化安全的内存区域

弧SecureShield技术可以分区内存到安全、正常区域应保持完全隔离。图2显示了两种方式实现这样一个分裂成一个正常的执行环境和可信执行环境(三通)。左侧图显示了一个单处理器三通,单个CPU执行信任和非可信应用程序,从彼此孤立的安全和正常CPU特权级别由一个微处理机执行。在右边,一个传统的方法表明,每个环境都有自己的私人CPU和其他资源,比如内存或加密加速器。这种方法被称为“托管三通”,因为正常的应用程序处理器作为主机的三通CPU。例如,居住在安全的内存用于加密的密钥保密信息被未经授权的程序不能访问。未经授权的程序应该只获得正常的内存,和数据安全的记忆中永远不应该在正常的记忆。

图2:可信执行环境在一个处理器(左)或专用处理器(右)

威胁模型能够覆盖恶意未经授权的程序运行在正常模式提供正常的内存区域only-enforced弧微处理器。恶意软件可以识别和利用过程中犯的错误的配置内存区域从程序中提取敏感信息在安全模式下执行(图3)。因为Radix-S提供了一个简洁的机制来描述信息流动特性,设计师可以验证特定内存保护配置和容易适应随着设计要求的发展。此外,规则不检查微控制器直接控制寄存器,而是检查的高级属性,数据安全的记忆最终不应该在正常的记忆。因此,不仅一个特定的错误配置错误检查,但任何错误,可能导致内存泄漏的数据安全正常。

图3:潜在的安全Violation-Flows之间的孤立的内存区域

弧的SecureShield微处理器可编程执行内存区域具有不同的访问权限。这样,“安全”项目可以从“正常”的孤立的项目。可以创建两个数据内存区域:

  1. 安全数据区域:0 0 x801fff x800000
  2. 正常的数据区域:0 0 x81ffff x802000

Radix-S验证这两个内存区域的隔离通过创建一个前哨规则追踪信息的流动从数据存储器的输出与输入数据的内存(之间的数据将通过弧流处理器作为软件执行)。安全规则# 3,下面将会失败如果信息流经路径显示为红色虚线如图4所示。哨兵规则的一个重要方面是,随着时间的推移,通过跟踪信息流动任意组合和时序逻辑转换。数据安全的内存可以管线式或结合其他数据内弧处理器和规则# 3仍然会检测是否有版本的安全数据写进正常的数据区域。

安全规则# 3:数据从安全的内存区域不应该流到正常的内存区域。

(dccm_data_addr > = 0时dccm_data_out x800000 & & dccm_data_addr < 0 x802000) = = > dccm_data_in

除非(dccm_data_addr > = 0 x800000 & & dccm_data_addr < 0 x802000)

规则# 3的输出数据从数据内存模块(dccm_data_out)跟踪阅读时安全的地址范围和规则将会失败如果这些信息传播与输入数据的内存模块(dccm_data_in),除非数据进入内存中写安全地区。这个地址范围的额外检查安全到达的信息dccm_data_in是必要的,因为安全软件可以读取的数据安全区域,然后回到安全的内存写入数据。规则# 3可以检测软件配置错误的设置在安全、正常的内存区域。为了测试这个断言,Synopsys对此和龟岛逻辑测试规则# 3的设计配置了安全区域是32个字节比预期的更短。因为这个错误,任何敏感的特权数据写入最后32个字节的安全区域可以通过程序读取在正常模式下执行。

Radix-S提供多个视图很容易看到信息流和任何规则的失败。例如,视图在图4中显示的路径信息流动从源到目的地的信号。信息流,提出了图形作为路径通过时间和设计层次结构。规则# 3的路径视图显示数据读取内存(从安全dccm_data_out)流经弧的处理器之前,重新在写(通过数据存储器模块dccm_data_in)正常的内存,导致规则失败。路径视图提供了有价值的洞察统治失败的根源,使安全分析的效率。

图4:Radix-S路径查看完整信息流程展示规则失败

结论

龟岛逻辑Radix-S安全验证平台与Synopsys对此DesignWare弧处理器IP复杂问题提供了一个强大的解决方案的硬件软件安全验证。Synopsys对此弧处理器IP, SecureShield技术,使设计师开发一个三通。三通保证代码和数据机密性和完整性保护,提供共享系统资源的能力来处理信任和处理代码。然而,确保整个系统的安全需要硬件和软件的分析。Radix-S是一种强大的工具为弧客户识别并阻止任何安全漏洞所介绍的配置和集成处理器的设计,或所执行的平台和应用软件。弧处理器的编程不当可能导致安全漏洞,和Radix-S可以检测这些漏洞在标准功能验证。Radix-S可以使用作为一个真正的基础硬件安全开发生命周期(SDL),使设计师能够构建安全、高质量的处理器的系统。

有关更多信息,深入阅读这本白皮书:配置、确认船:构建安全处理器的系统更快的上市时间

妮可蕨是一种高级硬件安全工程师在龟岛的逻辑。



留下一个回复


(注意:这个名字会显示公开)

Baidu