物联网安全与TEE结合探讨

  (一) 物联网安全

  从技术层次来看,物联网有四个层次:感知层、网络层、平台层、应用层。

  感知层,主要是感知信息,比如这个房间的温湿度,窗帘是否打开,空调是否开启等。温湿度传感器、红外检测、摄像头、麦克风等等都可以算在这一层次。这一层涉及到模组、芯片、基站、设备、传感器等

  网络层,传感器读取到信息后,就可以通过网络把数据发送到后台,构建网络的技术就是属于网络层。这一层涉及到网关、各类协议Wifi、BluetoothLE、Zigbee、NFC、RF433、Z-Wave、红外、NB-IoT、SigFox、loRa等

  平台层,处理信息的一个层次,可以理解为云端或后台服务器。网络层把数据传输到后台服务器,服务器根据需要对数据进行存储、计算、分析等等。

  应用层,有人也把物联网分为三个层次,其实是把平台和应用合并为业务层。这里的应用层是指具体业务场景相结合起来的逻辑处理,如智慧城市、智能电网等与具体行的业务相关逻辑处理。

  按照上述分层,每一层都面临各自的安全威胁,同时又面临整体的系统性安全威胁,本文仅针对感知层终端类设备的安全与TEE相结合展开讨论。

  (二) TEE简介

  首先,一句话了解TrustZone。

  ARMTrustZone® 技术是系统范围的安全方法,提供硬件安全架构、SoC软件安全架构、安全内核、安全启动引导的安全方法,简单理解使用TrustZone技术的芯片具备了硬件隔离的安全区域和非安全区域,并具备了可信安全启动的能力保障。

  其次,说说什么是TEE

  TEE,Trusted Execution Environment可信执行环境是Global Platform(GP)提出的概念。 2010年7月份,GlobalPlatform首次宣布了它们自己的TEE标准,首先关注TEE client API(与TEE交互的接口),后来扩展到包含TEE internal API,以及一整套TEE系统体系。GlobalPlatform的TEE规范构成现在TEE环境的基础,任何商业或者开源产品一般都会参考该规范,并按照其定义的各种功能接口进行规范实现。GlobalPlatform包含的规范总结如下:

  TEE Client APISpecification,规范主OS的应用与TEE的可信应用如何通信;

  TEE Systems Architecture,TEE下的软硬件体系结构描述;

  TEE Internal APISpecification,规范如何开发能在TEE内部运行的可信应用;

  TEE Secure Element APISpecification,规定TEE安全元素API的语法语义,适合开发可信apps的软件开发者,为客户端应用提供一个外部可视接口;

  Trusted User Interface APISpecification,规范可信GUI,用户能配置,TEE能安全控制;

  TEE TA Debug Specification,规范GlobalPlatformTEE debug接口和协议。

  TEE是和REE(Rich Execution Environment)相对应的,一般称TEE和REE为Secure World和Normal World。Android跑在Normal World上,有些安全性要求比较高的行为,例如指纹的比对,支付时候用私钥签名的动作等,需要放到Secure World里面去。TEE自身实现为一个独立的OS,运行在SecureWord,具有其自身的执行空间,比Rich OS的安全级别更高,但是比起SE的安全性要低一些。但是TEE能够满足大多数应用的安全需求

  再次,TEE和TrustZone之间是什么关系?

  TEE是一套可信执行环境的规范定义,TrustZone提供硬件安全隔离技术,那么可以基于带有TrustZone技术的芯片上按照TEE标准规范实现一个TEEOS。

  最后, TEE OS列举

  基于ArmTrustZone技术的TEE:高通QSEE,华为TrustCore,豆荚ISEE,TrustTonic等典型代表。

  基于ArmTrustZone优化的苹果Enclave TEE,苹果基于ArmTrustZone进行优化开发了自己的enclave系统,封闭不对外开放

  (三) TEE在物联网安全领域的应用

  首先,对物联网环境中终端设备类型进行分类,对安全级别要求进行分级

  终端类型分类:

  富终端:Android,Linux等操作系统,Cortex-A级芯片

  瘦终端:Native OS,Cortex-M级微处理器

  终端安全分级:

  高级 :金融支付级别。储如个人金融交易(支付密码、账户信息、登录凭证指纹人脸、交易签名),医疗、汽车、交通控制等涉及到人身财产和生命安全的等应用场景中,要求保障交互过程中数据的完整性、私密性、真实性,要求保障密钥和数据存储的安全性。

  中级:一般应用级。储如物联网应用中监测、统计、查看等应用程序的权限管理、身份认识等,要求保障交互过程中数据的完整性、私密性、真实性,对密钥和数据存储的安全性要求一般。

  初级:储如地理、气象、环境等监测应用场景,要求保障密文通讯,有完整性检查,对密钥和数据的存储安全不做要求。

  注:安全分级不代表某些场景、设备、应用中安全不重要,安全是一个系统性的工程,重点需要考虑两个平衡,一是安全防护成本与被攻击造成损失的平衡,二是攻击付出成本与获取到的价值间的平衡。

  终端类安全防护目前主流的技术手段

  SE:Secure Element安全元件,简称SE,通常以芯片形式提供。为防止外部恶意解析攻击,保护数据安全,在芯片中具有加密/解密逻辑电路

  TEE:如上文所述,为可信执行环境。

  软件:软件虚拟化技术制造安全和非安全隔离,自行设计的一些安全规则等

  安全级别:

  SE > TEE > 软件虚拟

  SE安全级别最高,但存一定局限性:被动处理指令,主频率低导致通讯和处理速度慢,没有UI交互界面无法满足某引场景丰富的人机交互需求。

  TEE安全级别次之,基于TrustZone硬件安全隔离技术,相当于EAL2+安全级别,支持丰富的UI交互。

  TEE+SE两者结合能够满足金融支付EAL4+级别的安全要求。

  TEE在物联网领域到底能干些什么?

  首先,结合上面的分类和分级,我们来看看TEE适用的场景

  初级中级高级

  富终端纯软件、自定安全规则TEETEE+SE

  瘦终端纯软件、自定安全规则SE提供算法和密钥存储SE+拆机自毁

  由此可见,TEE适用于基于带有TrustZone的富终端,需要身份识别、权限管理、金融交易等应用场景,例举如下:

  手机端:在物联网生太环境中一般用于系统监测、控制管理、统计分析、权限管理等环节,此过程会涉及到与后台业务系统的登录、访问、会话等,因此,可以考虑将应用做成TA程序,将会话中加解密运算、密钥存储、登录存储等信放在TEE环境中进行保护

  车联网:在车联网中车机一般起动中控枢纽的作用,同时车机一般是基于Android系统进行开发,因此建议将车联网中车主认证、ETC缴费,停车缴费、电子车牌功能放在TEE中加以保护

  随着物联网在各行业应用的落地,储如医疗、交通、工业等等领域,一般来说基于Arm Cortex-A和Cortex-M系列内核的芯片上运行Android或Linux系统的终端设备上都可以考虑利用TEE来进行安全防护,具体的安全应用方案需要结合各行业、应用进行特定的思考和设计,但其总体思路无外乎等敏感数据内容的存储、密钥的安全存储、以及与后端业务系统端端的通讯保护策略,更高安全要求的还可以考虑增加SE来加强安全级别。

 

上一篇:万物链专访 | 物联网x区块链,安全是价值流转的基础

下一篇:怎么防范身边的智能家居被入侵