专栏首页绿盟科技研究通讯物联网终端应用TEE的一些思考

物联网终端应用TEE的一些思考

一、引言

近年来,可信执行的概念在物联网安全领域也逐渐流传。可信执行环境(TEE,Trusted Execution Environment)在智能手机中的应用非常广泛,如OP-TEE[1]、Trusty TEE等开源TEE。几乎所有新上市的安卓手机都有TEE。那问题来了, TEE解决了什么问题?集成在物联网终端中否有必要?如果有,哪些能力能帮助终端或者物联网提升安全等级?

这些都是笔者初次听说TEE这个概念的时候,脑子里出现的一些问题,本文就讲一讲笔者对TEE应用在物联网终端上的一些认识。

二、名词

1认证

一般我们说,认证通过后,才能建立可信的沟通。比如对面一个人说,他是你爸爸,但他蒙着脸,但你还是叫他爸爸,那是因为你听他的声音,看走路的动作,都能识别到他就是你爸爸,你通过他的声音和动作做判断的过程就是一个认证的过程。

OpenSSL集成了许多加密算法,依托密码学来对通信对象做认证,认证通过表示通信对象是可信的。可信任程度则依据密码安全程度、通信场景来确定。一般,我们认为在物联网应用场景中(除军工外),RSA算法的认证方式已经足够强,该算法也被集成到了SSL开源库中,开发者可以根据自身产品需求集成一个合适的SSL库,再基于SSL库编写好相应的认证程序即可。

2OTP Fuse

物联网终端内集成了微控制器、微处理器、应用处理器等作为其运算、控制的核心。这些元件内部往往会有一个比较特别的存储区域。一般存储器提供给我们的基本功能就是读取和写入,但是这个区域中的存储器,可以支持一次性写入后不能第二次写入,也就是说,存储在这个区域里面的数据不会被软件更改。这就提供了一个可信任的基础。因为更改该存储区域的信息是很难的,而且一个每个终端内,该区域的信息是不同的,攻击者攻击了花费很大的时间、金钱来更改这个区域的信息也很难获得很大的利益,所以这个信息在物联网终端中是非常可信的。

OTP全称One-Time-Programmable,是由可以烧断的一个保险丝控制读写逻辑的读写控制技术。我们暂时把这个存储区域叫OTP区域。OTP区域内的数据可以被用来作为硬件唯一ID来用,在OP-TEE中对应HUK(Hardware Unique Key),基于HUK,可以衍生其他密钥,比如SSK(secure storage key)、TSK(Trusted app Storage Key)、FEK(File Encryption Key)等。

3Trust Application

在一个终端上如果需要同时运行两个操作系统,需要对时间和内存分片,分别将资源划分给相应的操作系统,一般像Linux这种非安全操作系统,在OP-TEE里面被称为REE(Rich Execution Environment),与TEE对应。在REE中,如果想对比TEE中的资源,比如指纹,签名,需要通过Secure Monitor这个“独木桥”,如图 1所示。有了这个独木桥,即可对操作信息、数据的合法性做校验,如果不是授权的操作,则不允许访问TEE的服务和资源。而TA则像是一个后台服务,可以与合法的操作进行交互,代替REE访问TEE内的敏感资源,比如把指纹信息接收后,通过比对存储在TEE中的指纹,验证指纹合法性。

图 1 OP-TEE设计结构

与TA交互的应用程序被称为CA(Client Application),比如支付宝,指纹登录等应用程序。CA存储在REE(如Linux)中,具体交互流程网络上已经有相关专家分析[4],这里不再详述。

三、在物联网终端内应用密钥安全存储

一般,嵌入式Linux终端组成结构如下:

图 2 嵌入式系统存储结构

Bootloader、Boot parameters、Kernel、Root filesystem这几部分都存储在终端的硬盘中,具体存储结构如图 2所示。从代码角度看,TEE更像是集成内存分区、读取终端唯一ID、加解密库、校验等功能和机制于一体的代码块,把这个代码块移植到终端的哪个部分是没有定论的,只要能保证代码可信即可。一般,在系统初始化完芯片的频率、中断、总线等以后,就可以使用TEE的代码引导后续的代码了。TEE相当于给bootloader加入了安全能力。如果我们把密钥加密存储在TEE的TA中,那么密钥也就在硬盘里,防护有没有效果,是和攻击者逆向分析能力和对TEE系统的理解程度相关的。这也就决定了TEE只能在软件上做安全存储,无法实现硬件级别的安全存储。在这种认识的前提下,我们怎么基于TEE实现密钥的安全存储呢?

此处,我们假设产品的各种调试接口(JTAG、UART等)已经关闭,攻击者无法连接到芯片上进行调试,并以证书保护为例。一般,运行在REE侧的应用,在连接互联网时,如果考虑到通信安全,会使用强认证来对云端做认证,云端为了认证客户端的合法性,也要验证客户端的证书,所以证书、密钥往往需要得到保护。在使用TEE时,有一个保护的思路,下面分享出来以抛砖引玉:

使用TSK把REE中用到的密钥加密以后放到TA中,使用时,CA向TA发起请求,获取密钥,TA把密钥解密后,传给CA,CA利用密钥进行下阶段的任务。

然而,信息就在终端内,只要能获取终端,信息已经在手,只不过获取信息途径的难度不同。可以暂时分以下三类途径:

1. 把硬盘整个复制出来;

2. 得到设备运行时的root权限,获取CA运行时获取到的解密的密钥信息;

3. 直接利用精密仪器把内存数据读取出来。

对于第一种攻击,如果把设备断电后,拆开设备,取出硬盘或者读出flash芯片,密钥就已经从终端内转存到自己的电脑里面了,我们怎么找到它呢?得明确密钥的位置:密钥在TEE的TA中。

第一种攻击实施成功,需要具备的能力如下:

1.了解TEE启动流程,知道TA中可能存在密钥。

2. 具备很强的逆向分析能力,熟悉芯片结构。

3. 识别加密代码的加密算法和加密模式,找到加密后的密钥的密文。

4. 提取出加密密钥和其他加密参数。解密密钥密文。

所以,如果攻击者没有具备齐全这四个能力,是无法获取密钥明文信息的,信息也就得到了保密。如果攻击者实力强大,这四项能力都能具备,密钥的安全也就无法保证。

第二种攻击中,获取root的形式有两种:一种是获取终端自身的root权限,另一种是通过qemu模拟启动第一种攻击中读取到的硬盘文件。我们假设终端没有在硬件上暴露调试接口,如果芯片的是BGA封装,是没办法引出UART接口到另一台PC机,进而获取root权限的。所以需要把硬盘文件中文件系统中的passwd文件和shadow文件做些调整,并开启telnet服务,这样,终端运行时候联网即可通过网络访问到telnet服务,并获取root权限。然而,在基于TEE的系统中实现这一套攻击流程有一定难度,原因在于:从TEE的第一行代码开始,已经对后续的代码签名。如果更改文件系统,需要把集成在TEE里面用来验证代码合法性的公钥更改,改完再用配套的私钥签名后,重新启动才行。

另一种是用qemu模拟整个系统。用qemu模拟系统是可行的,但是也很有难度。难度之一是TEE本身需要读取到OTP区域的ID作为根密钥。必须要编写一个可以和TEE系统交互的程序配合TEE完成OTP区域的读写过程,才能进入后续阶段[2]。难度之二是这个交互的过程需要逆向分析TEE的代码后才能找到。如果这两步骤完成,系统外设可以正常模拟,那么root权限的shell也就可见了。

获取到root后,启动CA,密钥会被CA读取到内存中,这时只要采集内存信息即可读取到密钥的明文信息。

第三种攻击是可行的,直接读取内存数据,可以用一个可以高速采集的逻辑分析仪读取总线上的数据。然而这种难度只会比前两个更大,一来,这种精密一起比较昂贵。二来,读取出来的数据也要变成可读的,这对攻击者的内存读写技术方面的知识积累要求很高。攻击者必须了解什么时候总线信号在传输地址信号,什么时候总线信号在传输数据,还要分离出密钥的明文。

四、总结

由上可知,在物联网终端上应用安全存储,实际上并不能真正的实现100%的不可读,但是却能提高逆向分析终端的难度。而实际上,随着智能手机应用TEE技术,终端自身的安全问题的确少了许多,但是随着攻击者攻击手段和知识水平的提高,仅仅用TEE做安全存储并不是长久之计。还需要结合比如NXP的Kinetis Security and Flash Protection Features[5],或者ST公司的RDP[6]的思路,把密钥写入到一个真正只有拆解芯片来拍照逆向才能读取的一块区域中,这样才能达到芯片级别的防护。而物联网环境下,达到芯片级别的防护,其破解成本已经足够强,而且能很好的应对前两种攻击手段,因为密钥并不在外部的flash中,在开启读保护的前提下,攻击者只能读内存或者拆芯片来获取密钥。而厂家只需要保证自身产品的升级流程是安全的即可,因为升级过程可以重新刷写芯片内部flash区域,如果攻击者利用了升级漏洞,会把读保护标志位置为可读。

TEE是可信执行环境,在应对敏感数据持久化存储方面尽管不是目前最好的解决办法,但是自身的安全机制已经提高了破解条件。结合其他技术,物联网终端一定可以比较完美地保护起来。

其他因为TEE机制导致的性能损失,可以经过测试后[7],根据自身产品现状决定需不需要采用TEE这样一套机制,或者决定需不需要优化TEE的性能。

笔者接触TEE的时间比较短,如果文章中有些描述或者思路有些错误、不成熟、或者不合理的,希望读者能向作者提出,欢迎指正。

参考链接:

1. OP-TEE官方文档,https://buildmedia.readthedocs.org/media/pdf/optee/latest/optee.pdf

2. Emulating Exynos 4210 BootROM in QEMU,https://fredericb.info/2018/03/emulating-exynos-4210-bootrom-in-qemu.html

3. 构建嵌入式Linux系统,https://goooooouwa.github.io/coding/2012/10/30/%E6%9E%84%E5%BB%BA%E5%B5%8C%E5%85%A5%E5%BC%8FLinux%E7%B3%BB%E7%BB%9F.html

4. TEE 软件交互流程概述,http://kernel.meizu.com/tee.html

5. Using the Kinetis Security and Flash Protection Features,https://www.nxp.com/docs/en/application-note/AN4507.pdf

6. Proprietary Code Read Out Protection on STM32L1 microcontrollers,https://www.st.com/content/ccc/resource/technical/document/application_note/b4/14/62/81/18/57/48/05/DM00075930.pdf/files/DM00075930.pdf/jcr:content/translations/en.DM00075930.pdf

7. Developing Secure Services for IoT with OP-TEE A First Look at Performance and Usability,https://www.researchgate.net/publication/332726463_Developing_Secure_Services_for_IoT_with_OP-TEE_A_First_Look_at_Performance_and_Usability

内容编辑:格物实验室 张克雷 责任编辑:肖晴

本文分享自微信公众号 - 绿盟科技研究通讯(nsfocus_research),作者:格物实验室

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Istio系列二:Envoy组件分析

    Envoy是Istio数据平面核心组件,在Istio架构中起着非常重要的作用,本文首先介绍Envoy的基本概念及工作流程,再从Istio的设计角度出发,对Env...

    绿盟科技研究通讯
  • 倍福PLC安全评估实战

    CX9020是倍福公司生产的PLC,运行Microsoft Windows Embedded Compact 7操作系统,广泛运用在运动控制领域。

    绿盟科技研究通讯
  • 解析5G安全(一):5G网络架构

    5G飞速发展的今天,了解5G的网络结构、建立5G网络全局观是我们进行下一步5G研究工作的基础。本文首先从接入网、传输网、核心网三个部分解析5G网络结构,然后分析...

    绿盟科技研究通讯
  • VEE2019最佳论文:瓶钵团队的TEE虚拟化系统TEEv

    TEE技术在智能设备已经得到广泛普及,在同一个设备上支持多个独立TEE系统的场景和安全性需求也逐步增多,瓶钵团队设计和实现了在移动智能设备上支持多个不同TEE的...

    TEE爱好者
  • GP TEE标准体系一张图

    昨天提到的TEE测试认证,我们知道TEE的功能性测试也就是按照GP TEE API规范的测试,那么我们今天来看看GP TEE的规范有那些。 ...

    安智客
  • 一种不仅仅是BAT都在做的安全技术

    不光是百度、阿里、腾讯,其实Google、微软、华为、高通等等厂商都在重点投入的终端安全技术,想必大家已经知道我要说TEE了!的确,TEE已成为互联网巨头、芯片...

    安智客
  • TEE方案商、开源TEE、以及芯片支持信息

    去年总结过一次TEE方案商 2018年根据最新公开资料统计的TEE方案商信息如下: ? (以上内容排名不分先后) 以上厂商,需要说明的是高通平台TEE为高通自...

    安智客
  • TEE有没有商业模式?

    谈到TEE,许多人非常看好发展前途,但直面现实时又直摇头,有人认为商业模式不清晰,比如盈利模式单一,业务模式太重,发展模式......等等,安智客想对TEE商业...

    安智客
  • TEE技术在物联网芯片上的发展之路

    安全是制约物联网发展的重要因素之一,TEE技术在物联网上的发展是价格与安全性平衡最佳安全实践方案之一。

    安智客
  • TEE相关标准有多少?

    TEE相关技术的快速发展,相关行业标准、企业标准、团体标准也相继推出,本期将罗列2015年以来,TEE行业以及相关组织制定的标准。 ? 以下是一家之言,不一定准...

    安智客

扫码关注云+社区

领取腾讯云代金券