麻雀虽老五脏俱全,不以年龄论英雄:剖析仍然非常能打的用在数十亿智能终端设备上的可信执行环境TEE和TrustZone技术(1)
2023-8-14 23:17:51 Author: mp.weixin.qq.com(查看原文) 阅读量:4 收藏

源起
人们的生活越发离不开智能终端特别是智能手机,其上承载了大量的照片、视频、聊天记录、生物识别信息、支付信息等隐私数据。对绝大部分用户而言,智能终端上的隐私数据的价值远远大于设备本身的价值。如何保护用户的隐私数据,是各大智能终端厂商必须担负起来的使命和责任,也是厂商间进行差异化市场竞争的必由之路,避无可避。
如何保护隐私数据,特别是敏感的隐私数据?方法有千千万万,但最符合人类直觉的是——隔离,即在终端设备这座“房子”里,隔离出一个安全可信的“保险箱”,专门用于保存敏感用户数据,即使终端设备这座“房子”的门窗被打破了,坏人进来了(被root了),但只要拿保险箱没办法也就没事。
在安全技术上,怎么实现隔离?工程上,大致有三种主流方案。
第一种,是诸如同态加密、多方计算等基于密码算法和协议的方案,由于该类方法基于严密的数学算法,因此可以证明其有较高的安全性,可以通过“加密”这一安全领域的万能钥匙,把数据使用起来的同时,又能“隔离”数据,做到数据的可用不可见。但缺点也是由于基于大量的数学计算,性能动辄有上百倍的损耗,难以在智能终端场景大规模落地。
第二种,是基于安全芯片(安全模块)的“硬”隔离。安全芯片¹ ,是指实现了一种或多种密码算法或协议,使用密码技术来保护密钥和敏感信息的集成电路芯片(也有工程上把安全芯片定义为可信任平台模块TPM的)。安全芯片往往具备独立的CPU、内存以及存储单元,可实现与不可信操作系统、应用软件执行环境的物理隔离,因此有较高的安全性。
传统的安全芯片主要应用于智能IC卡、SIM卡、U盾等产品中,提供支付认证等功能。目前,安全芯片则主要以安全单元(SE)的形式广泛应用于手机、车机、电视机等智能终端设备中,实现安全启动、安全存储、保护认证信息等核心的安全功能,保障智能终端的安全性。
智能终端安全芯片主要分三类:第一类是独立芯片,其本身有完整的安全操作系统和为了处理各种安全事务而配置的软硬件资源,如Google Titan M与苹果T2等;第二类,是如高通的SPU,虽然也在同一颗SoC上实现,但SPU有独立的CPU与RAM等硬件资源,还有独立的安全操作系统,可以说是“半独立”安全芯片;第三类,则是如苹果iPhone在SoC中整合的Secure Enclave,与一般操作系统和应用共用硬件资源,软件独立实现。
如果对安全芯片本身的保护是足够的,基于安全芯片的隔离方案当然是很安全的,但由于一般安全芯片用SoC空间、成本高、TTM周期长、对平台的依赖、性能有限、存储空间小、一旦出问题就难以修复等等,只能处理最敏感的密钥和短数据。
安全芯片并不是在设备里用得越多越好,因为安全芯片能发挥作用的前提是假设安全芯片本身是足够安全的、可信赖的,但安全芯片设计得不安全、不可信的案例比比皆是(感兴趣可以网上搜搜)。所以安全芯片的设计和使用要遵循一个原则,那就是“极简”,在核心场景的核心环节用上就行,不要言必称芯片。
上面这么一说下来,TEE的诞生和流行就有其必然:为什么一定要用TEE承载关键的用户安全需求和场景,它的安全性也不是最高的?因为TEE安全/性能/兼容性这个“性价比”最高,对用户最“友好”!
所以,第三种,也就是我们要重点介绍的可信执行环境(Trusted execution environment,TEE)。TEE是一个具备安全计算和安全存储功能的独立计算环境,硬件为其分配一块安全内存,所有计算都在安全内存中进行,除了授权的接口,系统其他的部分没有权限访问安全内存中的信息。其本质是利用软硬件隔离技术,在不可信的富文本环境(Rich-Execution Environment,REE)隔离出一个“可信任环境”。REE之所叫富文本环境,是相对TEE而言,其计算、内存等资源都很丰富故得名

发展
TEE相关技术的最早可追溯到1999年。TEE技术发展的几个里程碑是:
1999年,康柏、HP、IBM、Intel、微软等公司发起成立了可信计算平台联盟TCPA,于2003年改组为可信计算组织TCG,并制定了可信平台模块TPM、可信存储和可信网络链接等技术规范³
2006年,开放移动终端平台(Open Mobile Terminal Platform ,以下简称 OMTP))率先提出,在多媒体操作系统外,再提供一个基于硬件隔离的安全操作用于专门处理敏感数据。
2006年,在 OMTP 方案的基础上,ARM 公司提出了一种硬件虚拟化技术 TrustZone²及其相关的硬件实现方案,并于 2008 年发布了技术白皮书,从那时开始主导了智能终端TEE 技术的发展:高通的骁龙 835/845 系列芯片,海思的麒麟 950/960 系列芯片,联发科的 HelioX20、X25、X30,三星的 Exynos8890、7420、5433 等TEE 技术都基于 ARM的TEE架构实现。
2010 年 ,全球最主要的智能卡多应用管理规范的组织Global Platform(GP)正式提出了 TEE 的概念,并从 2011 年开始起草制定相关的 TEE 规范标准,虽然没有在标准里明说,但是显然参照了ARM的设计,设计了一系列TEE实现规范,如安全存储、身份认证等,并联合开发了基于GP TEE标准的可信操作系统。因此,如今大多数基于TEE技术的Trust OS都遵循GP的标准规范。
经多年的发展,TEE技术已较为成熟,主要实现方案有ARM TrustZone、Intel SGX、ARM TrustZone、AMD SEV等。由于我们关注智能终端安全领域,因此主要探讨TrustZone。
技术为用户服务
从2006年TEE概念的提出和实现,过去了17年。在IT界,有17年历史的一个技术,简直可以用“古老”来形容,有的同学会问:TEE技术是否还有学习和研究的必要?当然有!。理由有四:
第一,TEE技术目前还广泛的使用在数十亿计的终端和服务器中,为保护用户的数据努力着。
第二,TEE技术虽然不是完美的,也有一些安全漏洞,但安全/性能/兼容性这个“性价比”最高,没有完美的安全,只有相对平衡的安全。
第三,虽然TEE技术相对成熟,但新的技术,如Hypervisor目前还没有显示出可以代替TEE技术的显著优势,现时最多是结合起来使用,比如Hypervisor上运行一个TEE。
第四,无论未来兴起什么新的安全隔离技术,对TEE的理念、实践和应用场景,几乎肯定可以用在新兴技术上面,因为诸如Hypervisor或者别的硬件隔离技术上无论是承载TEE或别的TA,一样需要具备深刻的安全需求洞察能力、安全认知和安全工程落地能力,而TEE“麻雀虽老”,五脏是非常全的,值得我们好好拿来研究。
其实,一切技术,没有新旧好坏之分,只要它能在某些场景下,妥当的解决用户需求,那么我们就要说,看,那是个好技术,而不要以年龄论英雄。
以上是篇章一,后续的篇章二和篇章三,我们将以TrustZone为例,详细的分析TEE的实现原理和应用。
参考资料
[1]王文浩老师《安全芯片技术》
[2]Building a Secure System using TrustZone® Technology
[3]https://www.infoq.cn/article/spd7szzwip6zsr8jaaqb
[4]https://www.cyzone.cn/article/636160.html

文章来源: https://mp.weixin.qq.com/s?__biz=MzAxMjIyNDE4Mg==&mid=2651759258&idx=1&sn=c46930bf2c7ee1433e7ac3df8496b3f5&chksm=804f1143b7389855834843c25225becd6981523af871d626ca5b2845398ecb452f0c5ff2b83a&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh