zoukankan      html  css  js  c++  java
  • 什么是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/

  • 相关阅读:
    Leetcode Excel Sheet Column Number
    AlgorithmsI PA2: Randomized Queues and Deques Subset
    AlgorithmsI PA2: Randomized Queues and Deques RandomizedQueue
    AlgorithmsI PA2: Randomized Queues and Deques Deque
    AlgorithmsI Programming Assignment 1: PercolationStats.java
    hdu多校第四场 1003 (hdu6616) Divide the Stones 机智题
    hdu多校第四场 1007 (hdu6620) Just an Old Puzzle 逆序对
    hdu多校第四场1001 (hdu6614) AND Minimum Spanning Tree 签到
    hdu多校第三场 1007 (hdu6609) Find the answer 线段树
    hdu多校第三场 1006 (hdu6608) Fansblog Miller-Rabin素性检测
  • 原文地址:https://www.cnblogs.com/dakewei/p/10267774.html
Copyright © 2011-2022 走看看