• 什么是OPTEE-OS


    1. 为什么会出现这种技术?

      为了安全,例如:保护指纹虹膜的生物特征数据

    2. 为了确保数据安全各家公司都做了些什么?

      Arm公司提出的了trustzone技术,用一根安全总线(称为NS位)来判断当前处于secure world还是non-secure world状态,状态的切换由ATF(arm trusted firmware)来完成

    3. 有哪些Normal world os

      Linux,Android

    4. 有哪些secure world os

      OP-TEE,Trusty,QSEE,SierraTEE

    5. 什么是TEE?

      TEE全称为Trusted execute environment,也就是信任执行环境。TEE是基于trustzone技术搭建的安全执行环境

    6. TEE需要硬件支持吗?

      是的,硬件软件缺一不可,两者相辅相成。所谓的硬件是集成到处理器中的功能

    7. TEE硬件视图

     

    8. TEE软件视图

     

    9. TEE OS是统一的吗?

      不是,目前各家厂商和组织都有各自的实现方式,但是所有方案的外部接口都会遵循GP(GlobalPlatform)标准

    10. 各家厂商和组织的TEE OS到底有何区别?

      TA的添加和加载时的校验有所区别

    11. OPTEE-OS属于哪家厂商的?

      属于Trustonic的

    12. OPTEE-OS全称是什么?

      Open-source Portable Trusted Execution Environment OS

    13. 到底是如何实现安全的呢?

      当处于secure world状态,那么就会执行TEE OS部分的代码,当处于non-secure world状态时,就执行linux kernel部分的代码

    14. Linux内核能直接访问TEE部分的资源吗?

      Linux kernel不能直接访问TEE部分的资源

    15. Linux 内核如何才能访问TEE部分的资源呢?

      Linux kernel能通过特定的TA(Trust Appliaction)和CA(Client Application)来访问TEE部分特定的资源

    16. TA都做了些什么?

      处理保密信息,如信用卡pin码,私有密码,客户数据,受DRM (Digital Rights Management,数字版权管理)保护的媒体;

      为正常内核提供服务,以便不用协调正常内核就可以充分利用保密信息

    17. OP-TEE都包括些什么内容?

      Secure world OS(optee_os)、normal world client(optee_client)、test suite(optee_test/xtest)以及linux驱动

    18. OP-TEE软件架构

      产品开发团队负责开发一个运行在linux上的client application(CA)和一个运行在OP-TEE上的trusted application(TA),CA使用TEE client API与TA通信,并且从TA获取安全服务。CA和TA使用共享内存进行通信。

     

    19. TEE启动流程

      理论上来说,在启动过程中,OP-TEE必须尽可能早的启动(bootloader的运行优先于OP-TEE会带来一个缺陷,触碰敏感数据)。在一个典型的linux启动过程中,rom bootloader加载/执行一个第一阶段bootloader(如:SPL,MLO,SBL1,FSBL),这个第一阶段bootloader然后执行一个第二阶段bootloader(如:U-Boot,LittleKernel),这个第二阶段bootloader会执行linux内核,所有的这些过程来自一个安全世界上下文。

    在一个基于ARMv7的处理器上,附有TEE的典型启动流程是SPL加载OP-TEE和U-Boot,然后跳转到OP-TEE,一旦OP-TEE初始化完毕,OP-TEE就会切换到非安全上下文,并且跳转到U-Boot中。OP-TEE代码会继续放在内存中,以便为linux内核提供安全服务。

    在一个基于ARMv8的处理器上,TEE启动流程还涉及到一个SPL加载ARM Trusted firmware的步骤。SPL跳转到arm trusted firmware,这个firmware随后与OP-TEE共同协作,OP-TEE转而跳转到处于非安全上下文的U-Boot中。

    在一个ARMv8平台上,ARM Trusted firmware提供一个监视器代码去管理安全世界和非安全世界之间的切换,而在ARMv7平台上这一功能是被嵌入到OP-TEE中的。

     

    20. OP-TEE对linux的支持情况是怎样的?

    针对OP-TEE的linux内核驱动出现在内核版本4.12及其以上的版本,如果您运行的内核版本较老,那么您需要backport 补丁(https://lwn.net/Articles/716737/)。当然您也需要做以下操作来使能此驱动:

      20.1   设置内核配置项:CONFIG_OPTEE=y

      20.2   添加设备树节点(可以参考这里https://github.com/nodeax/linux-at91/commit/6f4de47f0265d75a7d3a1335b5191d464d611ebe)

      (可选操作:编译OP-TEE OS时使能CFG_DT=y,这样就能在运行时添加必要的节点)

    21. OP-TEE OS为TA提供了安全数据存储设备

      数据要么以某种加密/授权的方式存储在linux文件系统/data/tee中,要么就是存储在一个Emmc RPMB(Replay Protected Memory Block,重放保护内存块)的分区中

    22. TEE能减少硬件成本

      TEE能替代专用的安全芯片。

    23. TEE能最小化应用程序的修改

      为了访问硬件特性,许多安全芯片给用户空间程序提供OpenSSL引擎接口。一个相同的模型能够通过开发一个TEE client app作为OpenSSL引擎与TA之间的接口,因此能够最小化用户空间程序的任何修改。Trusted Application将需要实现密钥管理和加密操作等接口。OP-TEE OS包含libtomcrypt,这个库提供各种各样的对称/非对称/椭圆曲线加密函数,因此TA 大部分工作是负责输入校验和调用合适的OP-TEE 核心API

    24. TEE加密操作架构示例

     

    25. 参考资料

    https://www.timesys.com/security/trusted-software-development-op-tee/

     
     
  • 相关阅读:
    Hadoop Hive概念学习系列之hive里的视图(十二)
    使用COM提供SafeArray数据
    oracle undo 复杂度--oracle核心技术读书笔记四
    【Ruby】Ruby的model学习——Active Record Associations
    远程数据管理端开关
    跟着ZHONGHuan学习设计模式--桥接模式
    UVA 11768
    linux下查看日志基本命令
    java -D參数简化增加多个jar【简化设置classpath】
    23、Cocos2dx 3.0游戏开发找小三之粒子系统:你那里下雪了吗?
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/11057881.html
Copyright © 2020-2023  润新知