随着物联网IOT的高速发展,越来越多的智能终端在用户层面普及,大到电网的无线供配电,小到家里的智能开关、智能音箱。让人们在手机上随时随地可以查看到自己家的温湿度和图像,手指点点就能控制电器工作。我们在享受便利的同时,却往往忽视了隐私的保护。操作系统的漏洞、应用安全的不完善,都会导致物联设备被恶意代码注入,从而导致个人账号等隐私泄露。那么如何去防范恶意代码攻击呢?
从当前的技术角度来讲,仅仅通过系统层面的应用数据隔离和虚拟化技术,是不足以提供安全的应用运行环境的。代码可以很轻松的访问整个硬件的RAM与ROM,应用间没有数据隔离机制,这样就避免不了恶意代码的越界访问,也无法防范恶意篡改和关键隐私泄露。TEE(Trusted Execution Environment)技术由此应运而生。
TEE 是 Trusted Execution Environment的缩写,即为可信任执行环境。通常用来进行数字版权管理、移动支付和敏感数据保护,安全等级较高。而可信任环境,依赖于可信任硬件,目前各芯片构架厂商均有自己的TEE技术,例如Intel的SGX,ARM的TrustZone。他们的原理各有差异,但均能实现对关键代码和数据的完全隔离与保护,开发者基于可信硬件和可信系统,来开发可信应用,来保障用户隐私。
TrustZone是 ARM于2008年发布的技术,首先应用在Cortex-A芯片上,旨在保护移动端物联网设备的信息安全。TrustZone的原理主要是将RAM与ROM分配为两个部分,安全区和非安全区。非安全区运行普通的操作系统和应用,例如安卓系统和安卓应用,而安全区运行TEE OS和针对特定应用定制的安全代码。安全区代码对全局地址数据均有访问权限,而非安全区只能访问自身,如果想要与安全区进行数据交互,必须通过预留的API接口。这样用户就可以将密钥和加解密过程放入安全区,封装为安全应用,与非安全区进行交互时也不用担心泄露密钥等关键隐私。如今安卓手机的指纹、支付大多都使用了TrustZone技术,关键隐私仅保存于设备本身的安全区,非安全区的应用无法直接访问,仅能通过特定API接口传递信息。即便最坏情况,非安全应用得知了与安全区通信的API接口格式和位置,但安全区传递出来的是经过私钥加密的签名,而非私钥,私钥仅在安全区内使用并且不会对外直接传递,这就从源头上杜绝了隐私泄露。(只要将RSA运算代码和私钥放入安全区,对外仅传递签名而非私钥,就可避免私钥的泄露。这种方法并不能保障用户的账号绝对安全,但可以保证私钥不会泄露。用户账号的安全性如何,取决于账号管理系统的安全措施和TEE安全应用的编写水平。
|