Trusty TrustZone TEE REE

注:本文不涉及专业技术细节,放心食用


同时运行两个OS

Why

  • 普通操作系统的安全问题:
  • 功能复杂,代码庞大,漏洞高发.
  • 运行着大量的恶意代码,存在大量攻击技术.
  • 管理员权限可以访问APP的所有数据.
  • 没有隔离的能力,无法安全的存储密钥.

How

  • 能不能在设备上同时运行另一个安全的操作系统,
    专门用来存储密钥,运行安全相关敏感代码,
    并且常规操作系统不能随意访问它.

What

Trusty
  • Trusty是一种安全的操作系统(免费开源),
    可为Android提供可信执行环境 (TEE).

  • Trusty与Android在同一CPU上并行运行,
    但Trusty通过硬件和软件与系统的其余组件隔离.

  • Trusty可以访问CPU和内存的全部功能,但完全隔离.
    隔离可以保护Trusty免受用户安装的恶意APP,
    以及可能在Android中发现的潜在漏洞的侵害.

  • 在具有TEE实现的设备上,主处理器通常称为“不可信”处理器.
    这意味着它无法访问制造商用于存储机密数据的特定RAM/硬件寄存器/一次写入Fuse区域.
    在主处理器上运行的软件,会将所有需要使用机密数据的操作,委派给TEE处理器.

  • 应用场景:
    移动支付、安全银行、多重身份验证、设备重置保护、抗重放攻击的持久存储、
    安全 PIN 和指纹处理,甚至还能用于恶意软件检测。

TrustZone技术横向对比

  • TPM
    TPM用于静态完整性度量, 无法确保运行态的安全.

    TrustZone/SGX除了提供程序加载时的完整性验证外,
    还保证程序运行时安全,缓解针对程序运行时的攻击.

  • SGX
    TrustZone中, 通过CPU将系统划分为两个隔离环境, 两者之间通过SMC指令通信,
    一旦Secure world中存在恶意程序, 那么将危害整个系统的安全.
    而SGX中, 一个CPU可以运行多个安全enclaves, 并发执行, 即使某个enclave中存在恶意程序,
    它也不能访问和危害其他enclave的被保护内容.

总结

  • TEE是一个标准/概念,一个可信的执行环境(Trusted execution environment).

  • Trusty是一个实现了TEE标准的操作系统.

  • REE是相对TEE来说的,Andorid系统属于REE,属于不可信的执行环境.

  • TrustZone是ARM处理器的一个特性或者说功能,
    为TEE/TrustyOS的实现提供了硬件基础.

  • 鸿蒙微内核也是一个TEE的实现.

  • 比较新的手机类似解锁之类安全功能,
    通常都使用了TrustZone特性来实现保障安全性.

参考

https://source.android.google.cn/security/trusty/?hl=zh-cn
http://www.jos.org.cn/html/2018/9/5594.htm#outline_anchor_52
https://zhuanlan.zhihu.com/p/53677903

你可能感兴趣的:(Trusty TrustZone TEE REE)