前言
最近在学习OP-TEE,把自己学习的东西写下来,就能更容易发现自己不透彻的地方。这里写的是关于公开资料以及官方代码的内容。
简介
OP-TEE(Open Portable TEE),项目官方文档链接 ,Linaro官方介绍 ,Linaro OP-TEE Wiki ,GitHub 上面的文档更多。下面是通俗解释,大家都熟悉的事件是:
宇宙大爆炸→人类出现→人类主升智力,发展科技→第一台计算机→GNU-Linux操作系统计算机→GNU-Linux操作系统设备
GNU-Linux操作系统(简称Linux操作系统)设备太常见了,比如一般人都熟悉的安卓手机,智能电视和电视盒,一些VR一体机等,凡是安卓设备底层都是Linux核心,当然还有各种非安卓系统的,不那么“智能”的设备。
随着Linux操作系统设备的流行和信息泛滥,设备的信息安全就备受重视,如何保护手机存储的指纹特征等个人信息不被盗用?如何保护智能电视收看到的节目不被非法盗用?所以就有了如下推演:
设备信息安全隐患→TrustZone技术/TEE标准→基于TrustZone技术与符合TEE标准的操作系统——OP-TEE OS(OP-TEE操作系统)
TrustZone和TEE(Trusted Execution Environment,可信执行环境)网上介绍很多,这里不展开了,接地气地类比一下:假如人们想看好看的舞蹈(保护信息安全的需求),有人研究发现了什么样的舞蹈人们觉得好看,于是就制作了舞蹈道具(硬件),设计了舞蹈流程(软件),形成了一套解决方案(TrustZone),后来有一个组织(GlobalPlatform)参照这个解决方案抽象出了一些标准(TEE相关标准),即道具不管怎么做,流程不管怎么搞,符合这个标准就行,有了标准,请跳这些舞的人来跳舞的话,主办方就大体知道要预留多少时间,舞台要搭什么框架等基本约定,接洽合作就会非常顺利。
然而,前面提到的道具和流程还不是一个具体的舞蹈,后来有一个舞蹈家,他基于那些道具和舞蹈流程编了一套舞。比如,要求是在木质地板(硬件,假设不在木质地板上舞蹈就不好看)上旋转跳跃闭着眼(软件流程),这个舞蹈家的编舞就是在木质地板上,以特定的那个姿势旋转特定的角度,在特定时间、位置向特定方向跳特定的高度、距离,在特定的时机闭、睁特定的眼,即基于特定的硬件资源,具体实现舞蹈流程,这就是OP-TEE——一个基于TrustZone技术符合TEE标准的软件部分的实现。
这里说OP-TEE指的是Linaro主导的开源软件项目,里面包含了若干软件工程,其中一个工程是OP-TEE OS,还有实现TEE标准和机制的所需要的其他工程。其整体关系如下:
有啥用
这里问的是TEE有啥用?不是问OP-TEE有啥用,因为OP-TEE只是一个实现,世界上还有其他人也在实现,手机、Pad、智能电视或其他设备芯片很多不是ARM的,是高通或是其他公司的,条条大路通罗马,大家都有各自的实现TEE的方法,目的都是保护好个人重要信息,保护好数字版权等,而实现的目标统一在TEE(可信执行环境)这个概念上,即目标是实现一个可靠的软硬件环境,在这个环境中,可以极大加强信息安全。
设想一个恐怖故事,支付宝或者微信把你的指纹信息存储在手机的普通位置,并且取文件名为”xxx的指纹“,如果你这个手机到了某些人手里,他就能盗用指纹信息,疯狂剁你的手。如果这件事被研究得成本很低的话,那些以电信诈骗为业的村子立刻就有了新的致富门路,马云爸爸就没钱拍牛(zhuang)逼的电影了。
TEE就能避免这个故事的发生。比如,你的指纹可能会被加密后存储在手机的普通位置,可能会被存储到特殊的位置,只要这个存储和加密的过程是足够安全的,那么别有用心的人就很难拿到这些信息,即使拿到了也不能用,这样我们才能保证自己的手是自己剁的,安心地看着马云爸爸华山论剑。