电子说
、在我之前的专栏中,我们讨论了系统和 SoC 设计人员如何增加和隔离安全硅 IP 信任根 (RoT),以实现其应用程序的超安全性。
这种安全硅 IP 的解决方案是为多个 RoT 提供支持,例如Rambus的 CryptoManager 信任根。提供给这个安全硅 IP 的每个根都有自己的身份和一组权限,这些权限建立了对其执行所需资产的访问权限。加载应用程序时,其请求的权限被编程到硬件寄存器,以便它只能访问其指定的资产。根据硬件中应用的其他应用程序的权限,可以限制在安全硅 IP 内执行的其他应用程序访问原始应用程序的资产。
如果攻击者想要在安全硅 IP 上运行应用程序,他们必须能够访问虚拟根私钥。即使攻击者可以访问另一个应用程序的虚拟根私钥,他们的应用程序也无权访问原始应用程序的资产。
然而,系统或 SoC 设计人员若要拥有此功能,他们必须选择安全硅 IP,为他们提供多个硬件 RoT,每个硬件 RoT 都隔离在安全硅 IP 本身内。这意味着每个实体都依赖于自己的虚拟 RoT 并执行安全功能,而无需信任其他实体。
应用示例 以下
是一些基于此类安全硅 IP 的具体应用示例。示例实体可以是数字版权管理 (DRM)、银行或安全通信应用程序。
每个应用程序都在彼此完全隔离的情况下执行,如上框所示。不太安全的替代方案是所有三个实体共享同一组资产(下框)。
如前所述,系统和 SoC 设计人员需要考虑其设备将支持的潜在客户应用。一些可能的应用包括用于流式视频、银行业务和安全通信的 DRM。这些应用程序中的每一个对安全性和对安全硅 IP 资产的访问都有不同的要求。
DRM 应用程序:在 DRM 应用程序的情况下,需要将派生密钥从安全硅 IP 输出到可以解密和解码视频流的外部引擎。在这种情况下,我们可以使用安全硅 IP 提供的权限模型来确保只有 DRM 应用程序可以导出解密流所需的密钥。此外,我们可以使用安全硅 IP 的权限,仅允许 DRM 应用程序将密钥传送到视频解码块。
图 2 详细说明了 DRM 应用程序可能使用的安全硅 IP。非易失性存储器 (NVM) 包含多个应用程序基本密钥。但是,基于虚拟根权限的 DRM 应用程序无法访问被涂黑的密钥(KB 和 KC)。唯一可以访问的密钥是 DRM 基本密钥 KD。
图 2:将安全硅 IP 用于 DRM 应用程序
在 CPU 上执行的应用程序请求 KDF 使用 KD 导出视频解密密钥 KV。应用程序还要求将 KV 直接输出到 Key Transport 机制,以防止 DRM 应用程序中潜在的软件漏洞泄露 KV。密钥传输机制通过安全总线将 KV 传递给视频解密和解码器模块。视频解密和解码器块然后解密和解码要为用户播放的视频流。
银行凭证应用:图 3 详细说明了安全硅 IP 的第二种应用可能性——保护用户的银行凭证。与之前的 DRM 应用程序一样,银行应用程序必须对 NVM 中的基本密钥 KB 具有独占访问权。此外,银行应用程序无权访问 NVM 中的其他基本密钥。
应用程序可以请求 KDF 使用 KB 导出解密密钥 KA。KA 直接传递给高级加密标准 (AES) 引擎,因此 CPU 永远不会读取其值。然后,应用程序请求 AES 引擎解密存储在系统外部文件系统中的加密银行凭证。一旦凭证被解密,它们就会被传送到安全硅 IP 的 SRAM,以供在主 CPU 上执行的银行应用程序使用。
如果攻击者对在安全硅 IP 内执行的银行应用程序进行逆向工程,攻击者仍然无法检索银行凭证解密密钥 KA。此外,如果攻击者有权访问另一个虚拟根的私钥来签署他们自己的银行应用程序版本,他们的应用程序将无法派生适当的 KA。他们的派生密钥 KA‘ 无法解密银行凭证。
安全通信应用程序:图 4 详细介绍了第三个应用程序示例,即安全通信。安全通信应用程序需要在使用前进行一些设置。安全硅 IP 必须首先使用其安全通信基础密钥 KC 来导出椭圆曲线加密 (ECC) 私钥 KP。然后使用 KP 导出相应的公钥 KU。KU 在证书签名请求中从设备中导出。
图 4:安全硅 IP 用于安全通信应用。
证书颁发机构 (CA) 使用证书签名请求生成由 CA 的私钥签名的数字证书。数字证书被导入到安全硅 IP 中。数字证书 CERT 存储在 NVM 中只能由安全通信应用程序访问的位置。
在与另一方建立安全会话的初始阶段,安全通信应用程序从 NVM 读取 CERT。安全通信应用程序请求 KDF 使用 KC 重新导出私钥 KP,并将 KP 传递给公钥引擎。应用程序接下来使用安全硅 IP 的哈希引擎计算安全通信参数的哈希摘要。得到的安全通信参数的散列摘要被传送到公钥引擎。
安全通信应用程序请求公钥引擎使用 KP 和安全通信参数的散列摘要生成数字签名。数字签名放置在 SRAM 中,在安全处理器的 CPU 上执行的安全通信应用程序可以访问该 SRAM。安全通信应用程序导出 CERT、安全通信参数和数字签名。导出的数据被传输到为其建立安全通道的一方。
随着安全通信协议的发展,安全硅 IP 用于与对方建立共享秘密。此共享机密可与安全硅 IP 的 AES 引擎(或其他对称密码)一起使用,以加密或解密来自或来自另一方的数据块。
结论
您的应用程序保持最高级别的安全性至关重要。此处描述的示例演示了如何在应用程序之间建立完全的资产隔离。
此外,如果某个应用程序已被坚定的攻击者进行了逆向工程,那么他们获得的价值就很小。攻击者必须有权访问应用程序的虚拟根私钥。即使攻击者可以访问另一个应用程序的虚拟根私钥,他们的应用程序也无权访问原始应用程序的资产。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !