gpt4 book ai didi

linux - 如何使用 TrustZone 从安全世界反省正常世界?

转载 作者:太空狗 更新时间:2023-10-29 12:42:45 28 4
gpt4 key购买 nike

我了解到安全世界可以保护关键数据不被正常世界访问,但我不明白的是如何衡量正常世界与安全世界的完整性。

我在三星 TZ-RKP 和 SierraTEE 中找到了一些相关工作,其中他们都实现了可以衡量正常世界完整性的功能。但他们没有提供技术细节。我有两个问题,如果有人能给我一些线索,我将不胜感激。

  1. 假设我想查看正常世界中正在运行的进程,是否必须使用正常世界中的内核模块来帮助我执行此操作?如果是这样,我如何确保它已将正确的结果传递给安全世界?准确来说,如何判断内核是否被入侵?

  2. 假设我有一个 RSA key 对并且我将私钥保存在安全的世界中。当进程请求解密某些数据时,安全世界如何知道请求是否来自立法进程?白名单机制可能会有所帮助,但如果正常世界中的内核已被破坏并且对手假装是立法者怎么办?安全世界似乎对正常世界中发生的事情一无所知。

即使可以确定它来自立法程序并且它使用私钥解密数据,解密后的数据仍然会以某种方式(即共享内存)返回到正常世界区域并且解密后的数据仍然可能被泄露。那么在安全世界中保存私钥有什么意义呢?

顺便说一句,我使用的是 armv8 开发板。

提前致谢。如果您能提供一些示例,那就太好了。

最佳答案

Trust-zone 本身并不是一个安全系统。你必须设计它。此外,还有许多不同类型的安全性。例如,您假设是软件攻击,但系统存在许多物理攻击(就像我猜您描述的那样)。某些东西必须是可信计算基础 (TCB);即,您认为无法泄露的某些代码。一个正常的世界内核可能太大而不能成为 TCB 的一部分,但它可以成为很好的第一道防线。针对它的利用只是从用户到主管的特权提升。您的 TrustZone API 应该期待不受信任的数据(即正常世界内核尝试缓冲区溢出和 API 误用等)。

这里的关键点是 TZASC 和其他总线外设可以授予安全世界访问权限以读/写普通世界内存。对于像 Linux 这样的成熟操作系统,您必须验证 MMU 表和其他数据结构。模块加载、进程运行等都需要验证。但是,如果您在正常世界中有一个简单得多的系统,则可以验证它。很可能你必须接受其中的一部分。 PC 的随机抽样可能会起到威慑作用;但除非正常世界证明携带代码,否则没有什么是万无一失的。

  1. Suppose I want to see what processes are running in the normal world, do I have to use a kernel module in the normal world to help me do this? If so, how do I make sure that it has passed the right result to the secure world? To be precise, how do I check that whether the kernel has been comprimised?

您的安全世界可以包含一个操作系统(或原始调度程序),它将定期检查正常世界代码的完整性。有像 RTIC 等硬件模块。您还可以使用 TZASC 将内核代码锁定为只读的普通用户(无访问权限)和普通主管。 comprimised 是一个重载的词。在某些时候,您必须信任某些东西。如果正常的 super 被破坏,私钥可以复制吗?您必须定义您的安全目标。在任何意义上,正常世界的内核当然会受到损害。您没有完整的行为规范来从安全的世界进行验证。

  1. Suppose I have a RSA key pair and I keep the private key in the secure world. When a process request to decrypt some data, how does secure world get to know whether the request is from a legislative process? A whitelist mechanism might help, but what if the kernel in normal world has been compromised and the adversary pretend to be legislative? The secure world seems to know nothing about what is happening in the normal world.

您的安全世界可能需要加密实体的一些合作。例如,您可以在不进行某些验证的情况下限制解密的数量。看来最有值(value)的东西就是RSA私钥了。如果您允许正常世界请求解密,那是您的问题而不是 Trustzone 的问题?您必须使用带有密码学和未知/不受信任主机的正常机制来处理此问题。 RSA key 对是全局的还是每个设备?是否支持吊销等。它在你的系统中,TrustZone只是其中的一部分。

关于linux - 如何使用 TrustZone 从安全世界反省正常世界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36288422/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com