首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TrustZone提供主要安全特性所需的额外功能

TrustZone提供主要安全特性所需的额外功能
EN

Security用户
提问于 2019-01-23 18:55:18
回答 1查看 862关注 0票数 3

论文移动设备上的可信执行:我的移动平台能给我什么安全属性?描述了移动设备所需的5个安全特性:

  1. 孤立执行
  2. 安全存储
  3. 远程认证
  4. 安全供应
  5. 可信路径

如果我正确理解,我们就无法设计一个仅利用TrustZone的裸功能来提供这些功能的系统。

我的问题是:

需要哪些额外的特性(对于使用TrustZone的系统)才能提供这些安全特性?

我目前的理解如下(注意:这里有许多错误,如@Gilles 指出):

  • 安全启动是一个must. I,在启动时,在设备上运行的第一个代码必须是可信的(例如,制造商将其刻录到ROM芯片中),然后在运行之前对每一段代码进行验证,至少直到控制转移到正常的world.为止。
  • 结合安全引导和TrustZone就足以提供独立的执行和可信的路径。
  • 可以利用孤立的执行和受信任的路径来提供基于用户只知道的秘密的安全存储,例如:
    • 安全世界中可信的应用程序提示用户输入一个秘密密码。
    • 该应用程序从密码中派生对称密钥,并从内存中删除密码。
    • 该应用程序使用密钥加密一些秘密数据(或其他密钥),并将其存储在磁盘上。
    • 该应用程序从内存中删除密钥(从密码派生)。
    • 稍后,当用户希望访问他们的秘密数据时,受信任的应用程序会提示用户输入密码,然后使用它来派生密钥并解密秘密数据。

  • 为了提供远程认证,以及基于对此特定设备的密封数据的安全存储,需要一个只允许可信*安全世界代码访问设备唯一密钥的功能,例如三星诺克斯的设备-独特的硬件密钥(杜克)。(这在这个答案中也有讨论)*‘可信’可能意味着这段代码在安全引导之后运行。例如,诺克斯白纸解释说,在三星诺克斯设备中,如果“设备曾经被引导到未经批准的状态”,DUHK就变得不可访问。
  • 最后,可以利用远程认证来提供安全配置,例如:
    • 安全世界中可信的应用程序生成非对称密钥对。
    • 该应用程序创建了一个远程认证,其中包括公钥签名。
    • 该应用程序将经过认证的签名与公钥一起发送到远程计算机,远程计算机只保存在安全世界中只能提供给受信任应用程序的数据。
EN

回答 1

Security用户

发布于 2019-02-10 01:52:16

严格地说,您不能对TrustZone本身做任何事情。TrustZone本身是CPU核心的一个隔离特性。它为进程之间的隔离增加了另一个层次:除了用户/内核或用户/内核/管理程序之外,还有正常用户、正常内核、正常管理程序、安全用户和安全内核。但是,由于普通内核模式(或者在使用虚拟机管理程序时使用常规管理程序模式)可以访问整个RAM,所以没有地方可以将代码和数据放在正常世界之外。要对TrustZone做一些有用的事情,您不仅需要一个带有TZ的内核(这是所有Cortex-A CPU的情况),而且还需要一个信任区感知的CPU内存控制器(一些制造商省略了这个控制器)。TZ感知的内存控制器可以对内存区域进行防火墙,以阻止CPU处于正常模式时访问某个区域。此外,DMA控制器还应该是TrustZone感知的,否则正常的世界可能能够通过利用外围设备来规避内存保护(例如,在安全世界使用的内存和闪存控制器之间设置DMA,然后从闪存读取内容)。

如果您的CPU包括一个TZ感知内存控制器,它支持隔离执行.但是,这本身是有限的,因为没有其他特性,孤立的执行环境只运行在隔离设置时存在的任何代码,并且不能将任何东西保存在重新启动之后。

安全引导,其中启动过程的每一阶段都在允许下一阶段在安全世界中运行之前验证下一阶段的签名,允许控制ROM的人控制在安全世界中运行的内容。所有Cortex-处理器从ROM启动(如在实际只读存储器中,而不是闪存或EEPROM).

这仍然是有限的,因为您有一个安全的环境…。做什么?如果安全环境所拥有的唯一特权是访问RAM中的特定区域,那就没有任何用处。

另外,利用TrustZone的CPU还拥有一个只有安全世界才能访问的密钥。见ARM TrustZone技术是否支持在代码哈希下密封私钥?硬件中的安全密钥。通过安全引导(用于代码完整性),再加上孤立的执行,加上一个引导特权(访问一个秘密密钥),在安全世界中运行的软件可以实现诸如远程认证和有限形式的安全存储等功能。

安全世界可以通过加密和认证数据并让正常世界负责存储加密的小块来持久地存储数据。这保证了数据的机密性和真实性,但不能保证数据的完整性。正常的世界仍然可以删除数据,并将其回滚。为了防止回滚,安全世界至少需要少量的回滚保护存储。实际上,在移动设备上,这是在闪存控制器的配合下完成的。闪存控制器将一个分区专用于安全世界,称为重放保护内存块(RPMB),并使用RPMB协议与主CPU上的安全世界通信,使用设备制造时建立的共享密钥。安全存储根本不需要涉及设备用户:安全世界已经有了一个秘密密钥,它不需要从密码中派生出一个密钥,这个密码会更弱(即使应用了增强,典型的密码也比普通的128位密钥弱)。

此上下文中的“可信路径”指CPU和外围设备之间的隔离通道。一个可信的路径需要在CPU内部支持,不仅是TrustZone,而且是一个外围设备,它可以放在一个只服从安全世界的安全模式中,而中间的总线(Es)需要隔离通信。在移动设备上部署的最受信任的路径是使用显示子系统,将DRM应用于视频渲染。为用户输入和显示提供可信路径在技术上是困难的,而且没有广泛部署。

安全配置不需要远程认证:服务器可以发送只有特定设备才能解密的密钥加密的数据,不需要从设备接收认证。它可能希望获得认证,要么是因为这样才能发现设备的公钥,要么是因为它希望在认证中获得更多的内容(例如,知道正在运行的软件版本)。

你忽略的最重要的事情是:是谁控制了所有这些特性?最终控制属于谁决定谁签署了ROM愿意加载的代码,这通常是chi制造商,他们只允许来自设备制造商的代码。在移动电话和平板电脑上,终端用户通常无法进入安全的世界。

票数 4
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/202055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档