有一点还是蛮有意思的,TEEOS知道什么什么、ATF知道是什么、Secureboot也大概知道是点什么东西,但是问我TEE是什么?我还是一瞬间不知道该怎么描述,正好手边有一本书:《手机安全和可信应用开发指南》
先下结论:TEE是一套完整的安全解决方案,主要包含正常世界状态的客户端应用(Client Application, CA)、安全世界状态的可信应用,可信硬件驱动(Secure Driver, SD)以及可信内核系统(Trusted Execution Environment Operation System, TEE OS)
其系统配置、内部逻辑、安全设备和安全资源的划分是与CPU的集成电路(Integrated Circuit, IC)设计紧密挂钩的,使用ARM架构设计的不同CPU, TEE的配置完全不一样。
国内外各种TEE解决方案一般都遵循GP(Global Platform)规范进行开发并实现相同的API。GP规范规定了TEE解决方案的架构以及供TA开发使用的API原型,开发者可以使用这些规定的API开发实际的TA并能使其正常运行于不同的TEE解决方案中。
那么看看不同领域的TEE解决方案:
1、现有TEE解决方案
智能手机领域的芯片厂商众多,国外有高通(Qualcomm)、三星(Samsung)、LG,国内有展讯、联发科(MediaTek)、威盛电子(VIA)、华为海思(Hisilicon)等,目前手机厂商和芯片厂商支持的TEE解决关系如图1-1所示。
各家TEE解决方案的内部操作系统的逻辑会不一样,但都能提供GP规范规定的API,对于二级厂商或TA开发人员来说接口都是统一的。(不可能一个应用只能在vivo用不在华为用,不合适对吧)
这些TEE解决方案在智能手机领域主要用于实现在线支付(如微信支付、支付宝支付)、数字版权保护(DRM、Winevine Level 1、China DRM)、用户数据安全保护、安全存储、指纹识别、虹膜识别、人脸识别等其他安全需求。
这样可以降低用户手机在被非法root之后带来的威胁。 Google规定在Android M之后所有的Android设备在使用指纹数据时都需要用TEE来进行保护,否则无法通过Google的CTS认证授权,另外Android也建议使用硬件Keymaster和gatekeeper来强化系统安全性。
2、智能电视领域的TEE
当前的智能电视领域大多是使用Android系统来实现的,(华为现在有了鸿蒙)为保护二级厂商的视频源数据以及各厂家用户会员权益不被盗取,需要使用TEE来实现数字版权保护、会员鉴权、用户账号信息保护等安全功能,而TEE方案一般都是由电视芯片厂商提供的, 且所有的TEE源代码都不对外公开,即使是二级厂商也无法获取到TEE的源代码。(这个源代码可能就是一些安全启动的流程,以及驱动方面的东西,TEE包含的信息很多。)
在我国的智能电视领域,智能电视芯片主要有两家:星辰半导体(Mstar)和华为海思,两家厂商使用的TEE方案都不一样。Mstar早期的TEE方案是在CPU的一个类似于单片机的核上运行Nuttx系统作为TEE OS来实现TEE方案的,但最新的Mstar芯片已经改用OP-TEE方案来实现TEE解决方案。
华为海思的安全操作系统(Secure Operating System, Secure OS)是按照GP规范自主研发的TEE解决方案,其手机芯片和智能电视芯片都是使用这个TEE方案。华为海思的TEE增加了权限校验功能(类似于白名单机制),即在使用华为海思的TEE方案提供的API实现特定安全功能的TA时,需要将调用该TA对应的CA接口的进程或者服务的相关信息提前注册到TEE后方能正常使用,否则会导致调用失败。
3、IoT领域及其他领域的TEE
物联网(Internet of Thing, IoT)领域和车载系统领域将会是未来TEE方案使用的另外一个重要方向,大疆无人机已经使用TEE方案来保护无人机用户的私人数据、航拍数据以及关键的飞控算法。
ARM的M系列也开始支持TrustZone技术,如何针对资源受限的IoT设备实现TEE也是未来TEE的重要发展方向之一。而在车载领域NXP芯片已经集成OP-TEE作为TEE方案,MediaTek的车载芯片也已集成了Trustonic的TEE方案,相信在车载系统领域TEE也将渐渐普及。
4、小结
TEE是一个可信的环境,是一套的解决方案,而是单纯的就是指实现了TrustZone或者具有TEEOS就是TEE环境,这个应该是多范围的东西。
一个环境、一种解决方案。
后面我打算结合结合几个具体的业务场景来学习一下,比如说常说的数字版权保护,指纹等生物体征等相关的涉及到安全的领域,从底层框架到上层的应用,看一下这个是怎么使用的。