金色观察|TEE是怎么帮助区块链的?
隐私计算区块链的细分赛道里,有很多项目使用了TEE作为隐私计算的方向,这是一个通过软硬件结合完成对数据的物理保护的综合方案。
TEE本身是一个硬件的安全区域,和密码学以及区块链结合后,可以加入了软件安全结构。我们还可以发现,在TEE被提出时,一直还是配合一些操作系统使用的,曾经也有很多人把区块链比喻为操作系统,这其中是有一些共通性的。
可信执行环境(TEE,Trusted Execution Environment)是由Global Platform(GP)提出的概念。主要针对移动设备在开放环境的安全问题。
TEE是可以与设备上的OS例如Android并存的运行环境,并且给OS提供安全服务。它具有其自身的执行空间,比OS的安全级别更高。能够满足大多数应用的安全需求。从成本上也可以达到安全和成本的平衡。
其在安全方面主要作用如下:
在开放环境的使用,使得设备不暴漏于各种攻击之下;
保护隐私,个人信息如联系人,短消息,照片,视频等,保护不被盗窃,丢失或者受到恶意软件的攻击;
公司数据,例如一些凭据类数据的保护;
连接性保护,在3G,4G,wifi,乃至NFC等方面,密钥资源的保护;
保护金融类数据,保护金融交易中的用户交互数据(交易内容,交易额,用户输入PIN等)。
在其运行的时候,TEE给授权安全软件(可信应用,TA)提供了安全执行环境,同时也保护TA的资源和数据的保密性,完整性和访问权限。为了保证TEE本身的可信根,TEE在安全启动过程中是要通过验证并且与OS隔离。
再来看TEE内部API,主要包含了密钥管理,密码算法,安全存储,安全时钟资源和服务,还有扩展的可信UI等API。可信UI是指在关键信息的显示和用户关键数据(如口令)输入时,屏幕显示和键盘等硬件资源完全由TEE控制和访问,意味着资源都由TEE控制,而外部OS中的软件不能访问。
不过TEE在设计后,也会存在一些较难的部分。其概念是基于ARM的TrustZone技术的,在处理器核和调试功能等方面都需要充分的功能性和安全性考虑。
在这样的框架里,如何实现外部OS与TEE的通信机制,高效的内存共享机制,以及多核架构带来的问题等,都是需要攻克的。
综合以上的内容,TEE的功能很明显,需要完善的部分也很明显。其安全能力和对于算力、存储、通信上的难点似乎都会在区块链领域找到答案。
试想,如果把OS换成一个区块链网络,两者似乎就具备了天然的融合能力。
因为TEE完成的一系列安全的功能,可以作为区块链共识层下执行层的可信部分。
以下5个技术概念是TEE主要的核心能力:
1、签注密钥
签注密钥必须随机生成并且不能被改变。其中私有密钥必须被安全保存,除了指定接口调用,无法通过任何方式获得。而公共密钥用来认证及加密待发送的敏感数据。
2、安全输入输出
输入输出是指用户与系统之间的交互,其途径包括键盘、外设、网络接口等。安全输入输出是指,从系统用户到访问的进程间存在一条受保护的路径。
3、储存器屏蔽
储存器屏蔽拓展了一般的储存保护技术,提供了完全独立的储存区域。即便是操作系统自身也没有屏蔽区的去完全访问权限,因此入侵者即便控制了操作系统,运行时(Run Time)的数据也是安全的。
4、密封存储
密封存储通过把私有信息和用户使用的平台环境配置信息捆绑在一起来保护私有信息。意味着被密封存储的数据只能在相同的安全环境下读取。
5、远程认证
远程认证是指,由签注密钥生成当前系统的软件证明书,系统上的任何改变可以通过证明书被远程授权方感知和校验,从而使得系统的执行逻辑安全可信。
那这样来看,如果把TEE的硬件设备作为区块链网络组网的节点,是极为合适的。区块链网络本身的共识机制,数据分享,以及授权,准入等等。
而当把具备TEE的网络搭建起来后,借助TEE区的安全算力、安全存储,区块链上的智能合约、用户的密钥都可以在TEE里保存、运行。
物理隔离让TEE与外界沟通必须通过合法性的查询,这保证了智能合约、用户数据等足够的安全性。
并且区块链的共识机制,让TEE设备之间通过区块链规则成功组网。也完成了前文说的多个处理器之间的协作问题。并且,这种方式也是一种扩容的方式,类似一种多分片的模型。
最后,笔者认为TEE在区块链领域有很深的使用潜力,目前TEE的区块链解决方案,其主要限制还是在于区块链技术和平台发展。例如应用种类的限制以及产品成熟度的限制。现在可以确定的是,基于TEE的隐私计算区块链会是隐私计算赛道的重要组成部分。