Intel 或 Arm 是否支持私钥内存?

信息安全 密钥管理 硬件 手臂 英特尔-sgx
2021-09-09 18:09:11

我知道一些安全处理器有一个隔离的总线,您可以在其中存储私钥并将其与硬件加密一起使用,而无需将密钥存储在内存中。有些甚至在隔离总线上的 SoC 内部有密钥存储,因此即使有物理访问和工程师团队也不可能窃取它。例如,此功能通常用于实现 HDCP。

问:我想知道消费级 Intel 或基于 Arm 的平台中是否有类似的功能?

我希望能够编写一个密钥并将其用于加密,几乎不可能恢复它。

2个回答

英特尔可以使用 AES 指令进行寄存器到寄存器加密,并且许多 ARM 芯片具有具有类似功能的加密加速器。

这里有两种攻击:物理窥探外部DRAM 总线,以及从处理器的角度查看内存的软件漏洞。前者实际上最容易通过仅使用片上 RAM 来处理。

处理漏洞是一个问题,因为密钥必须在某个时候对软件可用。ARM 解决方案是 TrustZone,它是一种复杂的防妥协类虚拟化机制,可让您在更大的不安全操作系统之上拥有一个安全的微内核。在 iPhone 上,“安全世界”正在运行 sel4 微内核。

一旦芯片被编程以防止 JTAG 访问和未签名更新,只写“熔断器”用于密封系统。这就是 FBI 对 Apple 的攻击如此严重的部分原因:它涉及强迫他们制作使用他们的密钥签名的不安全版本的软件。

这些处理器不直接支持安全密钥存储器,但它们确实与称为可信平台模块的外部组件合作,它基本上允许您使用未知密钥执行安全加密操作(该组件是密封的,永远不会泄露其密钥,并且经过加固以防篡改)。例如,UEFI 可以将其用于安全启动,而各种软件应用程序(例如 BitLocker)可以将其用于文件或驱动器加密。如果您想使用这些类型的处理器,如果您想要物理上安全的加密,则需要包含一个 TPM。