博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
可信任执行环境 TEE(Trusted Execution Environment)
阅读量:7052 次
发布时间:2019-06-28

本文共 1738 字,大约阅读时间需要 5 分钟。

hot3.png

可信任 (Trusty) 是一套支持可信任执行环境的软件组件(TEE)。TEE 可在移动设备运行。

Trusty 包括几个部分:

安全操作系统。一个运行在处理器上的安全操作系统 (Trusty OS)用以提供 TEE 环境 驱动程序。为Android linux kernel 服务的驱动程序,以便于运行在安全操作系统的 应用程序进行通信 一组运行库。为Android 系统软件和运行在安全操作系统的应用程序提供通信便利。 安全操作系统依赖于内核驱动程序。 任何 TEE OS都可以用来进行 TEE 实现。换言之, TEE 是一个规范。具体的实现可以不同。 TEE 处理器通常是系统中一个独立的处理器,或者是主处理器的一个虚拟化实例。TEE 处理器利用硬件支持的内存和 I/O 保护机制,实现和系统其他部分的隔离。

现代移动设备中,TEE 处理器方式已经被广泛使用。一般而言,移动设备中的主处理器被认为是“不安全的 (untrusted) ”, 并且不能访问某些特定的内存、硬件寄存器、OTP/Fuse等。OTP/Fuse 硬件组件一般可以用于保存设备相关的加密密钥等信息)。运行在主处理器上面的软件把需要访问秘密数据的任何操作都委托给 TEE 处理器代理操作。

一个典型的并被广泛使用的 TEE 例子就是 版权管理机制 DRM。主处理器只能看见加密后的内容;TEE 处理器则可以访问解密密文所需要的设备特定密钥。此模型提供了一个可防范软件攻击的高级别安全保护机制。

除此以外,还有许多利用了 TEE 的场景案例:

移动支付 / mobile payments 银行安全 / secure banking 磁盘加密 / full-disk encryption 多级授权 / multi-factor authentication 重置保护 / device reset protection 无线显示 / wireless display, screen cast 安全密码 / secure PIN 指纹识别 / fingerprint recognition 木马检测 / malware detection Trusty 提供API, 可用于两类应用程序的开发:

运行在 TEE 处理器的可信任应用程序或服务 普通/未信任应用程序,其运行在主处理器并且利用 TEE 处理器提供的服务 运行在主处理器的程序利用 Trusty API 连接受信任的应用程序以交换任意信息, 仿佛通过基于 IP 的网络服务一样。应用程序自己定义信息交换的格式和语法。 信息的可靠传输是通过 Trusty 基础架构来保证的,该信息传输是完全异步的。

受信任程序在 TEE 操作系统内核中以隔离的进程方式运行。每个进程运行在自身的 虚拟内存沙盒中,该沙盒利用 TEE 处理器的 MMU 机制实现。内核被一个受保护的 时钟节拍器驱动, 采用基于优先级的,循环算法调度机制。在当前的安卓 Trusty 实 现中,所有进程共享同一优先级。

所有 Trusty 应用程序都是单线程。目前不支持多线程。 Trusty 应用程序一旦被加载,则仅初始化一次并常驻内存,直到系统再次重启。 Trusty 应用程序不支持动态加载和动态卸载。 Trusty 应用程序被设计成事件驱动型的服务器模式(event-driven server),它等待 来自其他 TEE 处理器程序或者主处理器程序的命令。受信任程序也可以被设计成 其他服务器程序的客户端。

当前所有Trusty 程序都是由同一组织开发并同 Trusty 内核映像进行打包,产生一个 完整的签名软件映像。在开机的时候,bootloader 会进行签名验证。目前 Trusty 尚 不支持第三方开发应用程序。

尽管 Trusty OS 支持新应用程序的开发,但是需要极度小心此类开发。每个新应用程序 都将增大系统受信任计算环境 (Trusted Computing Base) 的区域。受信任程序可以访问 设备秘密信息并且执行相关的计算和数据传输。

相关文档:

转载于:https://my.oschina.net/weichou/blog/1036513

你可能感兴趣的文章
探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探
查看>>
(栈)栈 给定push序列,判断给定序列是否是pop序列
查看>>
我的第一篇博客 ——【ToDoList】小程序开发
查看>>
深入理解java集合
查看>>
微信小程序--动态添加class样式
查看>>
P20:难度增加的抽签问题
查看>>
jsp、HTML全页面刷新方法
查看>>
网络爬虫:异常处理
查看>>
关于获取客户端Mac地址
查看>>
紫书 例题 10-9 UVa 1636 (概率计算)
查看>>
51nod 01背包
查看>>
outlook anywhere 配置
查看>>
关于android帮助文档打开慢
查看>>
损失函数(loss function) 转
查看>>
MatLab2012b/MatLab2013b 分类器大全(svm,knn,随机森林等)
查看>>
js中apply,call的用法
查看>>
SCU 4444 Travel
查看>>
POJ 3280 Cheapest Palindrome
查看>>
BaLaBaLa
查看>>
Share SDK分享
查看>>