ARM TrustZone 技术是否支持在代码哈希下密封私钥?

信息安全 可信计算 手臂
2021-08-24 23:48:51

可信平台模块 (TPM) 芯片的一项极其有价值的功能是它能够将私钥密封在将使用它的代码的哈希下。这意味着一个人可以创建一个私钥,该私钥只能被一段散列到某个值的代码读取。

通过使用这项技术,我们基本上可以在软件中模拟智能卡:我们可以创建一个永远无法读取的私钥;只能要求硬件使用此密钥对消息进行签名。

对我来说,这似乎是 IT 安全方面的一大进步。这主要对用于支付的移动设备很有用。例如,比特币钱包似乎是这项技术的明显用途。

ARM 芯片包含一个称为 TrustZone 的功能。这项技术是否允许执行上述操作——将私钥密封在代码哈希下?

2个回答

是和不是。

严格来说,TrustZone 只是一种处理器功能,它通过 MMU 和内存总线提供任务之间的隔离。您可以将其视为穷人的虚拟化:只有管理程序(TZ 安全世界)和常规操作系统(TZ 正常世界)。这种架构允许在常规操作系统范围之外操纵敏感数据,但存在一个主要障碍:TrustZone 本身不提供任何存储数据的方式。因此,您可以在安全世界中创建密钥,但不能将其存储在任何地方。

所有高端 ARM 处理器(例如在大多数智能手机和平板电脑上都可以找到)都具有 TrustZone(它是核心处理器架构的一部分),但要使其有用还需要更多的时间。一些处理器包括使 TZ 有用的附加功能,特别是一种存储密钥的方式。这可以采取一些只可由 TZ 安全世界代码访问的一次性写入存储器的形式(例如,熔丝,通常为几百位)。借助受保护的运行时环境以及只有该环境知道的加密密钥,您可以构建一个类似 TPM 的框架来存储和操作包括签名密钥在内的机密数据。可信计算小组正在努力解决这个问题

尽管信息(尤其是可靠的信息)很少,但这已在多个移动设备中使用微软的Surface RT平板电脑基于 ARM 处理器,没有独立的 TPM 芯片,但有一个基于固件的 TPM的 Bitlocker 实现,显然使用了 TrustZone摩托罗拉的几款Android 设备具有使用 TrustZone 中代码的安全功能(当然,如果您放置的代码存在安全漏洞,则使用受保护的环境也无济于事)。您可以在ARM 宣传文献学术 出版物中找到利用 TrustZone 的安全架构的建议

因此,使用 TrustZone 和更多功能,您确实可以构建一个系统架构,其中密钥可以以无法通过纯软件方式提取的方式存储。硬件手段是另一回事(与智能卡不同,智能手机处理器并非设计为在有人刮擦包装包装时自毁)。

来自:https ://web.archive.org/web/20151116162016/http://www.liwenhaosuper.com/blog/2014/05/26/tee-and-arm-trustzone/

ARM TrustZone 可以直接用作 TPM 吗?ARM TrustZone 是否提供安全的密钥存储?

恐怕没有。问题在于缺乏安全存储,因为 TrustZone 规范没有提供任何实现安全存储的机制。但是,TrustZone 功能:仅将特定外围设备分配给安全的世界访问是关键点,但由 Soc 供应商或 TEE 开发人员决定将哪些外围设备用作安全存储介质。