您的位置:首页 > 运维架构 > Linux

TrustZone——市场普及——TEE组成部分浅析

2016-12-17 14:15 417 查看
近几年,随着苹果支付、三星支付、支付宝普及、华为支付、小米支付的普及,基本代表从2012年从三星推出S3。然后是KNOX,苹果支付入华,支付宝和微信大面积线下推广。今年华为和小米退出各自的支付。逐渐证明着安卓市场TrustZone技术的普及。尽管也暴露了几个漏洞,市场还是在往前走着。就连北京公交集团,明年计划支持各种支付,推广中国公交一卡通,俨然一张公交卡走遍中国都不怕的节奏。目前首批计划支持京津冀地区。在这些市场的背后,还是需要安全的保证,谁也不希望自己辛苦挣来的钱被别人花吧(土豪除外)。

先说说大体方案,目前根据CPU使用情况可以分为两个阵营。

1、独立安全芯片。类似虚拟化多系统运行。毕竟现在手机的配置都快超过我用的台式机了。4G内存,2G的主频。运行两个系统也很轻松,而且毕竟安全系统相对来讲一般以COS或linux为主,大部分是嵌入式系统功能比较简单。例如:金立M6

2、共享CPU内核。主要以TEE为主。利用虚拟化技术,独占或者共享主芯片内核。例如:三星,华为,小米,谷歌。。。。。。

从TEE角度说,这里又分出来几个实现方式。主要是接口层面。

1、linaro倡导的GP接口,主要产品是:optee,华为

2、三星和G&D,主要产品是:G&D的TEE接口,三星芯片为主

3、高通,主要产品是:使用高通芯片的手机,三星,小米,谷歌......

来点儿干活。让大家了解手机里的哪些部分是为了支持这些安全服务的。有些部分,分析的不够透彻,还请谅解。

先来看一下ARM的TrustZone架构图。



根据上面的分析,整理了主要厂商的产品。



从接口层面,三星一套,高通一套,GP标准推广这么就,也没能统一市场。

ARM在boot方面,提供了开源代码。便于统一安全启动流程。

描述了这么半天,也没有说清楚重点吧。

如果你想开发一个应用与安全有关的话。你就要使用到上面的五部分。

GP标准比较好,定义了外部接口和内部接口。你就可以忽略中间的这几部分,直接写CA和TA就好。其他两类由于非开源,不好推测,理论上应该也是一样的。

相当于普通系统这边的安卓应用,一个接口调用。要经过如下流程:

安卓应用==>JNI==>libteec.so==>tee-supplicant==>optee.ko==>secureos==>TrustApp

这样大家就应该能够明白如何编写相关的应用了。如果两边接口能够对应。中间部分一般是芯片厂商提供的BSP里就做好了。当然还是有些部署和目录调整工作要自己完成的了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息