arm可信操作系统与普通操作系统有何不同?

时间:2018-04-30 03:49:16

标签: operating-system arm processor

我正在通过此链接https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/firmware-design.rst进行手臂可信固件架构,我很困惑。我有以下查询: -

  1. 可信操作系统的需求是什么?
  2. 它与普通世界操作系统有何不同?
  3. 如果受信任的操作系统是安全的,那么为什么不只使用受信任的操作系统并删除正常的操作系统?
  4. 来自可信操作系统给予安全性的威胁以及如何?
  5. 何时需要在受信任的操作系统和普通世界之间切换?

1 个答案:

答案 0 :(得分:3)

我建议你先阅读关于Wikipedia的介绍性文章,然后阅读notice about OP-TEE,这是一个在Cortex-A处理器上运行的实现,现在由Linaro维护,然后提供各种文档{ {3}},最后查看here本身。

现在,对你的问题的简明回答可能是:

1)可信操作系统的需求是什么?
需要防止资源从与例如具有root权限的通用OS的用户同时运行的通用OS直接访问。

2)它与普通世界操作系统有何不同?
它设计很小,并且运行时比通用操作系统具有更多特权访问硬件。在ARMv8-a系统上,可信操作系统的某些部分将在EL3上运行,此时虚拟机管理程序将在EL2上运行,而Linux则在EL1上运行。

3)如果受信任的操作系统是安全的,那么为什么不仅使用受信任的操作系统并删除正常的操作系统?
由于其范围有限:其目的不是取代Linux,它拥有数百万行工作/经过良好测试的代码,而是以较低的成本保护Linux用户的资源。

4)受信任的操作系统提供安全性的威胁和方式?
来自通才操作系统用户的尝试,无论是合法的还是非法的(例如黑客已经破坏了通用操作系统),都可以访问受信任操作系统保护的资源/服务。

5)何时需要在可信操作系统和普通世界之间切换?
当在通用操作系统的上下文中运行的某些代码将需要访问由可信操作系统管理的资源时,例如,使用仅可由可信操作系统访问的密钥来解密某些加密内容时,需要它。这确实涉及(我认为)使用SMC指令。

这种开关的另一个发生是当需要处理硬件中断时:EL3,EL2和EL1有自己的中断向量表,并且EL2或EL1上发生的中断可以路由到EL3,这样可以安全地处理中断处理在可信赖的执行环境中 - 感谢无形的噪音提醒我这件事。