安全之安全(security²)博客目录导读
目录
一、在传统系统中使用RME IP
1、传统系统中的外设隔离
二、在RME系统中使用传统IP
三、内存热插拔
四、多芯片系统
1、链路保护
2、多芯片RME系统初始化
一、在传统系统中使用RME IP
可能集成在仅支持两种安全状态的系统中的RME IP可以有一个输入绑定(LEGACY_TZ_EN),以启用传统行为。
包含具有LEGACY_TZ_EN输入的RME组件的系统,将在所有组件中驱动一个公共的绑定位输入值。
具有LEGACY_TZ_EN绑定位的IP可能包括处理单元(PE)、SMMU、带有完成端PAS过滤器的组件和执行PAS访问表(表B2.1)的逻辑。
如果LEGACY_TZ_EN为TRUE,任何执行PAS访问表(表B2.1)的逻辑都会将PAS驱动到0b0。
支持LEGACY_TZ_EN绑定位的PE,如果LEGACY_TZ_EN为TRUE,将隐藏RME功能,并恢复所有由RME定义的功能。
1、传统系统中的外设隔离
具有私有完成端PAS过滤器的外设可能用于仅支持两种安全状态的系统中,可以实现LEGACY_TZ_EN输入绑定位。
当设置时,LEGACY_TZ_EN输入绑定位强制外设硬件回退到仅支持两种物理地址空间。 如果LEGACY_TZ_EN为TRUE:
- 位于Root PAS并影响全局功能的外设寄存器被分配到安全PAS。
- 位于Realm PAS的外设寄存器可以分配到非安全PAS或者变得不可访问。
二、在RME系统中使用传统IP
一个RME系统可能包括仅支持两个物理地址空间的传统请求方或完成方。
通过从RME IP的PAS驱动完成方的NS信号,将传统完成方连接到RME IP。
通过从传统请求方的NS信号驱动RME IP的PAS,并将RME IP的PAS驱动到0b0,将传统请求方连接到RME IP。
完全一致性的传统请求方不应接收或响应来自Realm PAS或Root PAS的窥探请求。
三、内存热插拔
如果满足以下条件,RME系统可以支持内存热插拔和热移除操作:
- MSD有一种方法来确定内存插槽是否被占用,并了解内存模块的热插拔事件。
- 访问未占用的内存插槽会产生与MPE完整性错误等效的错误。
一旦内存模块被热插入,MSD可以在确认内存插槽配置正确且该插槽的MPE功能已启用后,将使用此内存的粒度分配给受保护的PAS。
四、多芯片系统
多芯片系统由多个通过芯片间(CTC,chip-to-chip)接口互连的离散节点(主机节点)组成。主机节点可以是计算节点或I/O节点,作为单片SoC或芯片模块实现。CTC接口可能易受物理攻击,特别是如果它暴露在外部。
多芯片RME系统中的CTC接口支持以下所有功能:
- 使用物理地址(PA)指定的任何访问的PAS标签传输。
- 如果RME系统支持MEC,使用PA指定的任何访问的MECID传输。
- RME和MEC指定的CMO和DVM消息的传输。
如果RME系统支持4个MPAM PARTID空间,CTC接口传输MPAM_SP[1:0]指示。
多芯片系统中的RME系统重置会影响所有节点。
1、链路保护
易受物理攻击的CTC接口,例如通过外部探测或流量操纵,支持以加密和完整性保护形式的链路保护。
链路保护的安全级别和加密强度相当于IDE或更高。这意味着:
- 加密算法和加密参数大小(MAC、IV、密钥)与IDE支持的或更好的相同。
- 至少对传输数据包的有效负载数据进行加密。
- 提供防止数据包损坏、丢弃、重放和重排的完整性保护。
对于以下情况,链路保护是强制性的:
- 与根、领域和安全物理地址空间中的PA相关联的事务。
- 不与物理地址空间相关联的事务,例如DVM消息。
对于以下情况,链路保护是强制性的:
以下CTC接口寄存器作为MSD保护寄存器或可测量寄存器实现:
- 允许读取或修改事务参数(如数据包地址或数据)或可能导致数据包损坏、丢弃、重放或重排的CTC编程寄存器,包括:
- 在应用链路保护之前(对外发流量)。
- 在链路保护检查之后(对内入流量)。
- 控制链路保护上下文和属性的CTC编程寄存器,例如密钥编程寄存器和启用位。
链路保护的密钥编程寄存器格式,以及检测和处理链路保护密钥刷新事件的机制,是实现定义的。MSD固件或受信任的子系统可以管理密钥刷新事件。
2、多芯片RME系统初始化
在多芯片RME系统初始化期间,在最早的处理单元(PE)完成PE初始启动之前,SSD或HES必须安全地为以下系统属性建立全局系统状态:
- 系统中任何节点的真实性。
- 系统的外部调试状态。
- 系统的生命周期状态。
- 全局系统内存映射。
建立全局系统状态需符合以下所有要求:
- 如果一个节点启用了调试认证接口信号,则系统也启用了该信号。
- 系统的生命周期状态仅在所有节点均为安全时才设为安全。
- 对于内存映射资源,通过所有节点都能达到的资源的PA值是相同的。
- 所有节点在任何级别的GPT中观察到相同的GPT信息。
在系统初始化期间,建立对所有节点通用的一组根非易失性存储(RNVS)参数。安全协商和解决通用参数集的方法超出了本规范的范围。提供以下指南:
- 如果系统策略允许不同节点在RNVS参数上存在差异,那么任何全局协商的参数必须适用于所有节点。
- 例如,如果不同节点报告不同的LEGACY_TZ_EN值,协商后的值为TRUE,必须被所有节点遵守,无论其本地值为何。
- 只有当系统中的所有节点都支持某个安全功能(例如MEC)时,系统才启用该安全功能。