optee系统安全从入门到精通

optee系统安全从入门到精通
共92节 195人在学 课程详情
  • optee基础理论详解

    • 01-Trustzone简介
    • 02-TEE技术简介
    • 03-TEE的生态和应用
    • 04-TrustzoneTEE的学习方法
    • 05-optee技术简介
    • 06-optee系统组件介绍
    • 07-optee系统启动流程
    • 08-optee os启动流程
    • 09-optee os线程向量表及其作用
    • 10-optee的进入和退出
    • 11-optee os的异常向量表和设计模型
    • 12-optee的同步机制
    • 13-大系统的的同步机制
    • 14-optee线程管理
    • 15-optee中的线程调度
    • 16-optee之大系统调度
    • 17-optee os的MMU的使用
    • 18-optee os的根密钥(信任根)
    • 19-optee的系统调用
    • 20-optee的存储系统
    • 21-optee的Timer实现
    • 22-optee中密码学函数的支持
    • 23-optee中的service和init程序
    • 24-optee中的 PTA
    • 25-optee中的 secure driver
    • 26-optee中的 Early TA
    • 27-optee的栈指针和栈内存的介绍
    • 28-optee中使用虚函数(平台客制化)的设计模型
    • 29-optee的panic的实现
    • 30-optee的socket的实现
    • 31-optee的RPC技术
    • 32-optee的RPMB的实现
    • 33-RPMB协议
    • 34-RPMBmmc-util代码导读
    • 35-optee的RPMB实现代码导读
    • 36-CA_TA的开发模型
    • 37-CA到TA的调用
    • 38-TA和PTA的调用
    • 39-uboot和TA的通信
    • 40-linux kernel和TA的通信
    • 41-TEE虚拟化技术简介(场景)
    • 42-TEE安全内存的保护
    • 43-大系统的MMU隔离机制
    • 44-大系统的cache隔离机制
    • 45-TA的加载过程
    • 46-optee中属性的介绍
    • 47-TA是如何校验CA的
    • 48-共享内存的介绍
    • 49-TA链接静态库的方法
    • 50-optee支持动态库
    • 51-TA的签名和验签
    • 52-optee的标准错误码
    • 53-optee的TA防回滚技术
    • 54-Multi instance和Multi Session
    • 55-optee plugins
    • 56-TEE LOG是如何打印的
    • 57-optee的dump stack
    • 58-optee ftrace
    • 59-optee gprof
  • optee代码导读详解

    • 01-组件介绍
    • 02-optee os启动流程
    • 03-02-optee os启动流程(二)
    • 04-optee os的初始化流程
    • 05-optee os线程向量表及其作用
    • 06-进入optee os的十种方式
    • 07-optee os的异常向量表和设计模型
    • 08-optee os对irq中断的处理
    • 09-optee os对fiq中断的处理
    • 10-optee os的内存管理
    • 11-optee os的MMU的使用
    • 12-optee os的根密钥(信任根)
    • 13-optee os的RPC机制
    • 14-optee os的SFS系统
    • 15-optee os的RPMB机制的实现
    • 15-optee os的存储系统
    • 18-optee os的Timer实现
    • 19-optee os中实现的GP API
    • 20-optee os中的系统调度
    • 21-optee os中密码学函数的支持
    • 22-optee os中的线程调度
    • 23-CA&TA的开发模型
    • 24-optee os中的service
    • 25-optee os中的 PTA
    • 26-optee os中的 secure driver
    • 27-optee os中的 Early TA
    • 29-optee中spinlock的实现原理详解
    • 30-optee的栈指针和栈内存的介绍
    • 31-optee中使用虚函数(平台客制化)的设计模型
    • 32-共享内存的介绍
    • 33-optee os的标准错误码
    • 34-TA的签名和验签
    • 35-TA链接静态库的方法

    订阅失败

    optee系统安全从入门到精通
    optee系统安全从入门到精通 ...

    订阅列表已满,请先移出部分订阅内容。

    当前章节需购买后观看
    开通超级会员免费看!专家精选系列课程,满足你从入门到精通!更有问答月卡免费送,你的问题有问必答!
    提交答案

    购买课程

    扫码完成付费,可继续学习全部课程内容

    加载中...
    播放页问题反馈
    视频学习中有任何产品建议都可由此反
    馈,我们将及时处理!

    课时介绍

    TEE,optee,ATF,hafnium,Arm精选,周贺贺,optee系统架构从入门到精通

    课程介绍

    课程大纲

    • 01-Trustzone简介
      什么是TEE?TEE基础科普
      TEE的生态介绍? 有哪些TEE厂商?各有什么特点?

    • 02-TEE技术简介
      什么是TEE?TEE基础科普
      TEE的生态介绍? 有哪些TEE厂商?各有什么特点?

    • 03-TEE的生态和应用
      这么些年过来,TEE为什么一直不温不火?
      TEE在手机生态中表现如何?发展趋势如何?
      TEE在汽车电子领域又是怎样的? 是否大有前途?
      TEE在服务器领域是否有应用?
      TEE在物联网IOT中是否有需求?
      TEE还在哪些领域中有需求?(电视机/机顶盒…)

    • 04-TrustzoneTEE的学习方法
      什么是trustzone? 什么是TEE? 什么是架构?
      Trustzone是硬件吗?是软件吗?
      当前主流的软件和硬件是怎么样子的?有什么标准规范吗?
      如何学习Trustzone/TEE? 学习Trustzone/TEE的最佳路径是怎样的?
      什么是软硬件交互?软硬件是怎样交互的?如何学习软硬件交互的主流框架?

    • 05-optee技术简介
      什么是open tee? 什么是optee?
      什么是TEE? 什么是optee?
      optee是大的系统软件中扮演什么角色?
      optee在架构生态中扮演什么角色?
      optee是谁领导和维护的?

    • 06-optee系统组件介绍
      大系统里都有哪些组件?组件如何理解?
      如何集成一家TEE?
      TEE都有哪些组件?
      组件之间如何交互?

    • 07-optee系统启动流程
      多系统如何理解?
      boottime和runtime如何理解?
      现在主流的系统是怎样的?

    • 08-optee os启动流程
      optee是如何启动的?
      optee是如何被加载到安全内存的?
      cpu是如何跳转到optee内核代码并开始执行的?
      optee os的初始化都干了啥?
      optee的单核启动和多核启动有什么区别?

    • 09-optee os线程向量表及其作用
      REE和TEE如何交互?
      CPU是怎样切到TEE中去的?
      CPU切到TEE后执行的第一行代码是什么?
      在boottime阶段CPU是如何切到TEE中的?
      在runtime阶段CPU是如何切到TEE中的?
      在runtine阶段CPU切换到TEE后怎样找到需要执行的代码?
      线程向量表是啥概念?

    • 10-optee的进入和退出
      cpu是如何进入optee的? 进入optee的入口有哪些?如果一些入口没有实现是怎样的?
      cpu是如何从optee中返回的?
      fast smc call和std smc call有什么区别?是如何区分的?使用场景是怎样定义的?
      多核启动是怎样换成optee os启动多核的?
      optee os是如何响应外部系统中断的?

    • 11-optee os的异常向量表和设计模型
      异常中断如何学习? 要想让异常中断机制正常工作需要注意哪些事项?
      异常、中断、异常中断这些词汇如何理解?有何不同?
      FIQ和IRQ有什么不同?
      在optee中,针对FIQ和IRQ的设计有什么区别?
      optee和商业TEE,在异常中断这块设计有什么区别吗?

    • 12-optee的同步机制
      optee都有哪些同步机制?有什么区别?
      optee要操作uart外设,在开启uart的时候需要操作clk寄存器,而REE侧的驱动程序可能也会操作clk寄存器。两者如果同时修改了,冲突了,怎么办?
      optee的spinlock和mutex有什么区别?
      optee系统里没有sleep函数,也没有schedule函数,那optee的mutex会让出CPU吗

    • 13-大系统的的同步机制
      在不同的操作系统之间,如何实现spinlock?
      在不同的master硬件之间,如何实现spinlock?

    • 14-optee线程管理
      optee os中是否有进程、线程的概念?
      optee os中的thread该如何理解?
      optee os中是否有调度?
      optee os中线程是如何切换的?
      线程切换或调度的本质是什么?它依托的硬件基础是什么?

    • 15-optee中的线程调度
      1、optee中支持多核吗?支持多线程吗?线程是怎样切换的?
      2、TA中呢,TA中是否支持多线程?
      3、你为什么会问TEE是否支持多线程?想必你想问的是TA中是否支持多线程吧。
      4、optee侧的线程之前如何调度的呢?
      5、你能举一个TEE侧线程调度的示例吗?
      6、optee中支持多核吗?支持多线程吗?线程是怎样切换的?
      7、TA中呢,TA中是否支持多线程?
      8、你为什么会问TEE是否支持多线程?想必你想问的是TA中是否支持多线程吧。

    • 16-optee之大系统调度
      cpu是如何在REE/TEE之间来回调度的?
      当CPU在TEE OS中执行的时候,此时来一个想给REE处理的中断(如蓝牙中断),此时CPU是如何响应的?
      CPU切入到TEE后陷入死循环不回来了,会影响到REE的调度吗?
      多系统下如何分配CPU资源?如何做到来回切换的?

    • 17-optee os的MMU的使用
      让MMU工作的五大步骤,optee os中都是怎样实现设计的?
      设置页表基地址TTBR(translation table base address)
      初始化MAIR_EL3 (Memory Attribute Indirection Register)
      配置TCR_EL3 (Configure the translation regime)
      创建页表 (Generate the translation tables)
      Enable the MMU

    • 18-optee os的根密钥(信任根)
      HUK到底是什么? HUK有什么要求?有什么特性?
      一般情况下HUK都是怎么获取? 经典的HUK获取的示例都是怎样的?
      你能想到哪些安全地获取HUK的方法?

    • 19-optee的系统调用
      系统调用的本质是啥?什么是系统调用?
      syscall、system call、utee call有什么区别?
      linux kernel和optee os的系统调用有什么区别?
      在函数调用的时候,传入的参数尽量小于等于8个的原理是啥?
      系统调用是如何实现的?

    • 20-optee的存储系统
      TA之间的安全内存是如何隔离的?
      不同TA之间的存储是如何隔离的?
      如果有一个需求,TA1和TA2想使用共同的证书怎么办?
      TA存储的最终的路径是在哪里?
      optee os支持多少种方式的存储?
      TA支持多少种方式的存储?
      GP规范里定义了多少种规范的存储?
      存储的数据,重新开机后会丢失吗? 刷机或OTA后会丢失吗?格式化后会丢失吗?
      如果想刷机或OTA后不丢失怎么办?如果想丢失又怎么办?
      如果想格式化不丢失怎么办?如果想格式化丢失又怎么办?
      在linux内核态,你想存储一个文件,如何做得到呢?在optee的内核,是否可以调用存储接口?
      TA的存储是怎样通过uuid隔离的? Tee os内核的存储,没有uuid怎么办?
      TA存储的数据是怎样加密的?FEK是怎样生成的?
      TA存储的数据能否防回滚?怎样做到的?

    • 21-optee的Timer实现
      什么是monotonic time ? 什么是 utc time?
      TEE_GetSystemTime和TEE_GetREETime有什么区别?
      optee的TEE_GetSystemTime的实现是否有问题?是否follow了GP规范?
      如果想把TEE_GetSystemTime实现为utc + monotonic time? 需要进行哪些考量?
      如果TEE_GetSystemTime的时间来自REE,如何抵御时间回滚的攻击?
      当前optee中TEE_GetSystemTime的具

    • 22-optee中密码学函数的支持
      optee支持哪些密码学算法?
      在optee中如何新增一个密码学算法?
      在optee中,如何基础一个crypto engine?
      optee中的tomcrypt和mbedtls有什么关系?到底在使用的哪个?
      Optee的密码学算法,是运行在用户空间的,还是运行在kernel空间的?
      分别使用Libtomcrypt和libmbedtls实现的密码学算法,是运行在userspace还是kernel space
      Cryptographic Operations API

    • 23-optee中的service和init程序

    • 24-optee中的 PTA
      什么是PTA? PTA和TA有什么不同?
      optee中有哪些PTA?分别都是什么功能?
      如何编写一个PTA呢?
      PTA存在的意义是什么?为什么说PTA是连接用户TA和secure driver的桥梁?

    • 25-optee中的 secure driver
      什么是安全驱动程序?如何开发一个安全驱动程序?
      安全驱动程序和普通的linux kernel的驱动程序有什么不同?
      在安全驱动程序中,可以读写文件吗?可以调用加解密算法吗?

    • 26-optee中的 Early TA
      什么是Early TA?
      Early TA和普通的TA有什么不同?
      Early TA如何开发?如何使用?它的应用场景什么?
      Early TA是如何打包的?如何启动的?
      Early TA和embed TA有什么不同?

    • 27-optee的栈指针和栈内存的介绍
      什么是栈? 什么是栈指针? 什么是栈内存?
      什么是栈溢出?
      optee有哪些栈内存? 分别是什么作用?
      optee使用了哪些栈指针? 为什么要这样设计?
      optee有哪些类栈内存?分别都是多大?
      堆和栈有什么区别?
      在optee中是否有堆的概念?

    • 28-optee中使用虚函数(平台客制化)的设计模型
      什么是虚函数?
      虚函数在操作系统中的意义什么?
      在optee为何大量使用了虚函数?

    • 29-optee的panic的实现
      TEE_Panic函数是给谁用的?
      TEE_Panic函数的具体实现是什么?
      tee有没有主动panic的函数?

    • 30-optee的socket的实现
      optee是否支持socket接口?是如何实现的呢
      optee是否支持TLS?是如何实现的?

    • 31-optee的RPC技术
      CA可以调用TA? 那TA可以主动调用CA吗?
      optee os内的程序是如何反向调用REE,其技术原理是什么?
      为什么会有TA反向调用REE的需求?
      optee反向调用REE的接口是否开放给TA?
      在TA程序中如何实现反向调用?

    • 32-optee的RPMB的实现
      什么是RPMB?RPMB的重要意义是什么?
      在optee os中如何集成RPMB?
      RPMB的硬件工作原理是什么?
      一般的TEE和TA中都是如何使用RPMB的?有什么标准规范吗?

    • 33-RPMB协议
      RPMB的读写最终落盘是在TEE中还是在REE中?
      为什么说任何人任何程序都可以读RPMB?
      写入RPMB的数据会被自动加密吗?
      读写RPMB有什么标准规范吗?

    • 34-RPMBmmc-util代码导读

    • 35-optee的RPMB实现代码导读

    • 36-CA_TA的开发模型
      什么是TA?TA如何开发?TA可以第三方独立开发吗?
      如何开发一个TA? sdk又是什么?
      如何写一个TA的hello world程序?
      第三方TEE如何开发TA?

    • 37-CA到TA的调用
      【面试必考题】CA到TA的调用流程是什么?
      GP client API和GP internal API有什么不同?
      在不同的TEE OS操作系统上都是如何开发CA/TA的?

    • 38-TA和PTA的调用
      什么是early TA? 使用场景如何?
      什么是PTA? 什么是secstor TA? 什么是User TA ? 什么是REE_FS TA?
      CA如何调用到TA的? CA可以直接调用PTA吗?
      TA如何调用到TA的?TA如何调用到PTA的?
      PTA可以调用TA吗?
      PTA可以调用CA吗?
      TA可以调用CA吗?
      TA或PTA想去调用Linux kernel space如何实现?
      TA或PTA想去调用Linux Userspacce space如何实现?

    • 39-uboot和TA的通信
      uboot可以和optee通信吗?
      uboot可以和TA通信吗?
      uboot是如何调用optee或TA的?有没有标准的API?

    • 40-linux kernel和TA的通信
      在linux kernel中如何调用TA? 有哪些API函数呢?

    • 41-TEE虚拟化技术简介(场景)
      单VM调用TEE模型
      多VM调用TEE模型-直通
      多VM调用TEE模型-代理
      多VM调用多TEE模型
      单VM调用多TEE模型
      硬件隔离的多VM调用多TEE模型

    • 42-TEE安全内存的保护
      TEE怎么就是安全操作系统了的?
      TEE所在的内存怎么就安全了呢?
      TEE的安全内存是怎样硬件隔离的?
      为什么说TEE是安全系统?TEE怎么就安全的?TEE是如何跑到安全内存中的?
      TEE能够访问安全内存?那能否访问非安全内存呢?
      在一个大系统中,哪些内存是安全的?
      安全内存是如何划分的?由谁来管控的?
      说一说以下的概念:安全内存、安全寄存器、安全外设

    • 43-大系统的MMU隔离机制
      在一个大系统中,有多少个MMU?
      MMU和translation regime两者有什么区别?
      当REE和TEE同时使用MMU的时候两者会不会冲突?
      当软件强制修改MMU页表中的NS比特属性的时候,是否有安全攻击的可能性?

    • 44-大系统的cache隔离机制
      cache是否分为安全cache和非安全cache?
      非安全数据的访问是否可以命中安全的cache?
      非安全的cache和安全的cache是如何靠硬件隔离的?
      cache里都有啥? TLB里都有啥?

    • 45-TA的加载过程
      TA是如何被加载到安全内存的?
      TA是如何被验签的?

    • 46-optee中属性的介绍
      optee中也有属性的概念?都有哪些属性呢?
      optee中的属性都是怎么使用的呢,常见的使用场景有哪些呢?

    • 47-TA是如何校验CA的
      TA也是可以校验CA的,常见的方法有哪些?
      什么是LOGIN Flag,都有哪些用法?
      如何设置TA只允许某个TA的调用?

    • 48-共享内存的介绍
      什么是共享内存?
      共享内存的本质是怎样的?
      optee中如何实现和REE的共享内存的?
      什么是静态共享内存?什么是动态共享内存?
      共享内存有多大?在使用时有什么上限吗?

    • 49-TA链接静态库的方法
      optee os支持静态库吗?
      TA支持静态库吗?
      在编译TA的时候如何link一个静态库?
      如何讲一段代码编译出静态库?

    • 50-optee支持动态库
      optee os支持动态库吗?
      TA支持动态库吗?
      在编译TA的时候如何link一个动态库?
      如何讲一段代码编译出动态库?

    • 51-TA的签名和验签
      optee中的TA是如何签名的?支持哪些签名算法?
      TEE OS中是如何打包验签使用的公钥的?
      能否同时支持多把签名密钥?

    • 52-optee的标准错误码
      optee os中的标准错误码是谁定义的?遵循什么规范?
      CA侧和TA侧都有标准错误码,两者有何区别?
      每家TEE厂商都是否完全follow标准错误码呢?

    • 53-optee的TA防回滚技术
      什么是放回滚技术?
      optee_os是否支持防回滚?
      TA是否支持防回滚?
      storage是否支持防回滚?
      secure time是否支持防回滚?
      RPMB对防回滚的支持?

    • 54-Multi instance和Multi Session
      不同的CA调用同一个TA,会怎样? 怎样迸发的?
      什么是multi instance? 什么是multi session?
      什么是single instance? 什么是single session?
      如果配置multi instance或single instance?
      如果是multi instance的TA,那么不同的instance TA之间能够共享数据吗?
      不同的TA调用同时访问存储接口,是如何互斥的?
      同一个TA的不同的instance,能够访问同一个存储吗?
      对于一个single instance TA而言,是如何保障opensession不被调用两次的?
      对于一个single instance TA而言,在CA的主线程重调用opensession后,然后多个线程开始同时调用invoke,这时TEE是如何互斥的,保障只有一个invoke能进来?
      对于一个single instance TA, CA端同时发起两次的opensession的调用,第二次调用的结果如何? 是卡住,还是报错?

    • 55-optee plugins
      什么是optee plugins?
      optee plugins的本质和原理是什么?
      optee plugins为得是解决哪些问题?

    • 56-TEE LOG是如何打印的
      optee的打印log是如何实现的?
      在optee_os中的打印log函数是啥? 有几种log输出级别控制? 能否动态控制?
      在TA中的打印log函数是啥? 有几种log输出级别控制?能否动态控制?
      那如何控制optee os的log输出呢? 如何控制TA的log输出呢?
      除了uart打印log方案,还有别的方案吗?
      uart打印log方案中,串口终端会不会出现乱码,如何解决呢?
      在optee启动很早期的,uart driver还没初始化呢,这个时候如果需要看log有什么办法实现?
      在TA中关闭log后,TA调用到optee_os后,optee_os的log级别是否受TA的trace_level控制?
      在TA中控制log的输出,到底是怎样控制的?是靠宏比较? 还是靠底层C语言代码检查flag?
      如何自己实现一套TA log的输出机制?尽量不依赖平台、不依赖os。

    • 57-optee的dump stack
      optee os有哪些调试技术?是否支持dump stack?

    • 58-optee ftrace
      什么是optee ftrace?
      如何开启optee ftrace?
      optee ftrace和linux ftrace有什么不同?

    • 59-optee gprof
      什么是optee Gprof?
      如何开启optee gprof?
      optee gprof和linux gprof有什么不同?

    • 60-大系统的标准规范介绍
      当前的主流软件框架是怎样的?有什么标准规范吗?
      不同的SOC系统启动时有什么标准规范吗?
      在运行状态跨系统进行电源管理时有什么标准规范吗

    • 61-GP规范的支持

    • 62-PSCI规范的支持

    • 63-SEDI的支持

    • 64-SCMI的支持

    • 65-FF-A架构的支持

    • 66-optee HSM硬核应用介绍

     

    推荐课程

    信息系统项目管理师自考笔记

    李明 · 936人在学

    python从0到1:期货量化交易系统(CTP实战,高频及合成K线数据

    王先生 · 22882人在学

    手把手搭建Java超市管理系统【附源码】(毕设)

    汤小洋 · 4299人在学

    Java毕设springboot外卖点餐系统 毕业设计毕设源码 使用教

    黄菊华 · 840人在学

    基于SSM酒店管理系统(毕设)

    小尼老师 · 903人在学

    java项目实战之购物商城(java毕业设计)

    Long · 5207人在学

    手把手搭建Java求职招聘系统【附源码】(毕设)

    汤小洋 · 1536人在学

    Python Django 深度学习 小程序

    钟翔 · 2419人在学

    城管局门前三包管理系统+微信小程序(vue+springboot)

    赖国荣 · 686人在学

    Vue+Uni-app(uniapp)入门与实战+赠送仿美团点餐小程序

    李杰 · 4089人在学

    正在试验
    后自动删除环境
    课程实验
    本次实验时间已到期 00:00:00
    课件正在飞速打包中,请耐心等待几秒钟~