可信计算在区块链行业中的应用及投资逻辑.pdf
可信计算在区块链行业中的应用及投资逻辑 Frank 李硕淼 1 什么是可信计算 . 4 1.1可信计算核心技术 . 4 1.2 可信计算发展 . 5 1.3 TPM安全芯片、 SGX及 TrustZone . 6 1.3.1 TPM安全芯片 . 6 1.3.2 Intel SGX . 6 1.3.3 ARM TrustZone . 7 1.3.4 SGX与 TrustZone的差异 . 7 1.4 SGX面临的问题 . 8 2 区块链与可信计算 . 9 2.1 SGX类似技术 . 9 2.2 各类技术的应用 . 10 3 总结及个人相关领域投资逻辑 . 11 1 什么是可信计算 可信计算( Trusted Computing) 可以 定义为“ 在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台,以提高系统整体的安全性。 ” 1. 早期可信计算的 发展 主要是以 TCG(国际可信计算工作组)组织 为主。 1.1可信计算核心技术 可信计算是一个 由多种计算机相关技术组合而成的 , 其实 有 5个 技术 概念 是可信计算的核心 : 1. Endorsement key 签注密钥 , 签注密钥是一个 2048位的 RSA公共和私有密钥对,它在芯片出厂时随机生成并且不能改变。这个私有密钥永远在芯片里,而公共密钥用来认证及加密发送到该芯片的敏感数据 2. Secure input and output 安全输入输出 安全输入输出是指电脑用户和他们认为与之交互的软件间受保护的路径。当前,电脑系统上恶意软件有许多方式来拦截用户和软件进程间传送的数据。例如键盘监听和截屏。 3. Memory curtaining 储存器屏蔽 储存器屏蔽拓展了一般的储存保护技术,提供了完全独立的储存区域。例如,包含密钥的位置。即使操作系统自身也没有被屏蔽储存的完全访问权限,所以入侵者即便控制了操作系统信息也是安全的。 4. Sealed storage 密封 存储 密封存储通过把私有信息和使用的软硬件平台配置信息捆绑在一起来保护私有信息。意味着该数据只能在相同的软硬件组合环境下读取。例如,某个用户在他们的电脑上保存一首歌曲,而他们的电脑没有播放这首歌的许可证,他们就不能播放这首歌。 5. Remote atestation 远程认证 远程认证准许用户电脑上的改变被授权方感知。例如,软件公司可以避免用户干扰他们的软件以规避技术保护措施。它通过让硬件生成当前软件的证明书。随后电脑将这个证明书传送给远程被授权方来显示该软件公司的软件尚未被干扰(尝试破解)。 这 5个关键技术是一个完备的可信计算系统所应该拥有 的 。 1.2 可信计算发展 可信计算最初期 发展方向为 TPM硬件芯片 。 TPM全称为 Trusted Platform Modular( 可信赖 平台模块),是可信计算领域的规范标准。此 规范由可信赖计算组织( Trusted Computing Group, TCG)制定。 TCG的前身为信赖运算平台联盟( Trusted Computing Platform Aliance, TCPA) ,于 199年 10月份由多家 IT巨头联合发起成立,初期加入者有 康柏 、 HP 、 IBM、 Intel、微软等,该联盟致力于促成新一代具有安全且可信赖的硬件运算平台。 2003年 3月, TCPA增加了诺基亚 、索尼等厂家的加入,并改组为可信赖计算组织( Trusted Computing Group,TCG),该组织希望从跨平台和操作环境的硬件和软件两方面,制定可信赖电脑相关标准和规范,因此提出了 TPM规范。其中 TPM1.2规范比较经典,大多数厂家的芯片都以 TMP1.2为标准,该规范 现 已经升级到 2.0,也称之为“ Trusted Platform Module Library Specification” 2。 随着可信计算的发展,可信计算的研究方向 已经 由传统硬件芯片模式转向了可信执行环境( TEE, Trusted Execution Environment) 这种更容易被广泛应用的模式 ,基于 Intel芯片的 SGX以及 基于 ARM开源框架的 TrustZone是可信执行环境中最被广泛认知且应用的 。 1.3 TPM安全芯片 、 SGX及 TrustZone 1.3.1 TPM安全芯片 TPM安全芯片是指符合 TPM(可信赖平台模块)标准的安全芯片,它能有效的保护 PC,防止非法用户访问。 安全芯片 主要是 针对商业 用户 ,需要配合软件进行使用。主要拥有下列 几 个应用场景 1. 存储、管理 BIOS开机密码以及硬盘密码 :将 密钥 存储于固化在芯片的 存储单元 中 , 使其 安全性要大为提高。 2. TPM安全芯片可以进行范围较广的加密 :除了开机密码,硬盘密码的储存,用户也可以将应用软件密码存入芯片当中。 3. 加密硬盘的任意分区 :配合软件可以在加密硬盘中的任意一部分,并将敏感数据存入其中。电脑的备份恢复功能是该功能的一种应用。 1.3.2 Intel SGX Intel SGX全称 Intel Software Guard Extensions,是对因特尔体系( IA)的一个扩展,用于增强软件的安全性。将合法软件的安全操作封装在 enclaves(飞地) 中,保护其不受恶意软件的攻击,特权或者非特权的软件都无法访问 enclaves,也就是说,一旦软件和数据位于容器中,即便操作系统或者和 VMM( Hypervisor)被攻破,也无法影响容器里面的代码和数据。 一个 CPU中可以有多个安全 enclaves。 Intel SGX的最大优势在于其只信任自己和 Intel CPU,此机制将 SGX的可信级别提高到了硬件级别。软件层面的攻击甚至操作系统层级的攻击都无法威胁到 SGX创造的可信环境。 此架构很利于用户使用目前基于多租户云服务架构下的软件, 因为 即使黑客通过云端植入向 PC控制 底层操作系统( OS) , 因为 SGX只信任自己和 Intel CPU的属性,也无法操纵底层操作系统对 SGX进行攻击。 目前, Intel 在6代酷睿处理器之后全部配备了 SGX可信环境。 1.3.3 ARM TrustZone 相对于基于 Intel系统特有的可信计算环境 SGX, TrustZone是 ARM处理器所特有的安全计算环境。 不同于 Intel SGX可以生成多个完全封装的 enclaves, TrustZone将一个 CPU划分为两个平行且隔离的处理环境,一个为普通运行环境,另一个为可信运行环境。 因为 两个环境被隔离, 所以 很难跨环境操作 代码及资源。同时 在程序想要进入可信运行环境中时,需要执行 安全监控中断指令,让操作系统检查其安全性只有 通过 检验的程序才能进入安全区。 此机制确保了 TrustZone的安全性,但也意味着 整个系统的安全性由底层操作系统( OS)来 全权 负责。 随着 ARM芯片的普及, TrustZone可信环境 获得了更加 广泛的应用 。目前 应用 主要集中在机顶盒 、 车载设备以及最常见的智能手机 尤其是配备 Android系统的 。 例如高通的 Qcomse、 三星的 Trustonic以及 Google的 Trusty。苹果的 IOS是个特例,因为他虽然使用 ARM处理器,但是不使用 TrustZone。而是使用自己研发的类似于 Intel SGX机制的 Secure Enclave(安全飞地)来处理其安全相关的任务。 1.3.4 SGX与 TrustZone的差异 比较 SGX和 TrustZone,两种安全环境还是有些不同的。主要表现为 以下 几点: 1. SGX是 Intel处理器中的可信环境, TrustZone为 ARM处理器中的可信环境。两个应用场景存在不同, Intel主要为 PC而 ARM主要为手机 、 机顶盒等小型移动设备。 2. SGX的理论安全性相对于 TrustZone更高,因为 SGX的安全威胁处于操作系统下的硬件层,而 TrustZone的安全威胁可以来自于操作系统层。 3. 一个 Intel CPU中可以存在多 enclaves可信环境,而 TrustZone不同 , 只有两个环境分别为普通环境以及安全环境。 4. 使用 TrustZone,开发难度相对来说较小。因为其本质为将可信资源 与 非可信资源在硬件上实现隔离。而 SGX不同,开发者需要重构代码。虽然 Intel提供了SGX的 SDK来协助对接,但是对接的工作量依然很大,因此由于开发造成的安全问题是 SGX开发者需要面对的一个大问题。 1.4 SGX面临的问题 对方的负担 1. SGX是一个高度中心化的技术,其内嵌于 Intel芯片,同时也是 Intel公司的一项商用产品。这就意味着如果 Intel芯片或其服务器 出现问题 , 或者 Intel关闭此项功能 , 将会影响到 SGX的使用 , 基于其所做的项目将无法运转。 2. 同时因为 SGX被 Intel所控制,如果想将 SGX进行商用 , 节点使用 SGX是需要同Intel签署协议并付费,同时需要基于 SDK进行大量的代码开发 , 这样使 SGX的使用成本较高 。 3. SGX虽然同其他技术相比比较快, 但 效率 仍然很难满足大规模的商业应用 。因为 CPU本身的空间较小,而且因为 SGX在硬件层,意味着 pages在进入以及 离开硬盘的时候都需要进行加密, 因此 运行速度还是比较慢的, 并且 提速的难度较大。 4. SGX到目前为止已经爆发过两个较大的漏洞。 (1)第一个是 SgxSpectre攻击, SgxSpectre是典型的侧道攻击(侧道攻击是指在电子设备运行过程中,通过其时间消耗,电磁辐射等附加信息泄漏而对其攻击 ,这类攻击的有效性远高于密码分析的数学方法)。这类攻击之所以出现是因为软件库中存在的具体代码模式允许开发人员在应用中添加 SGX支持,攻击者可以通过在 SGX的 SDK中引入重复性代码执行,并在执行中不断查看缓存的大小变化来去进行攻击。研究人员指出 “SgxSpectre攻击完全能攻破 SGX封装的机密性, 由于存在易受攻击的代码模式并 难以清除,因此 攻击者可以发动针对任意封装程序的攻击 ” , 此种攻击是非常有效的。 Intel目前已经进行补丁修复但难以完全解决。 (2)第二个是近期爆出来 Foreshadow漏斗, Foreshadow的漏洞的原理在于虽然病毒无法攻破 SGX的防护,但是可以控制除 SGX以外 的信息, 以及 SGX与外界的信息交互。在这种情况下病毒可以创建一个虚假的 SGX环境 ,同时病毒可以使其控制的环境相信其伪造环境为真实的 ,这样之后所有本该进入 SGX处理的进程,将会进入 由 病毒创建的虚假环境。通过这种方式,攻击者可以达到攻击目的并获得隐私信息。 Intel目前正在研究此种漏洞,并试图发行 补丁,解决 此 问题。 2 区块链与 可信计算 可信计算保护数据隐私性的属性,使 其 变为区块链技术生态中 的重要 一环 。可信计算相关技术目前多与分布式计算类项目 、 数据类项目以及 layer2链下解决方案相结合。目前, 此类项目的关注重点多在于 PC端 CPU,因此 SGX在区块链领域相比于TrustZone, 应用更加 广泛。后文中, SGX将被作为重点进行分析。 2.1 SGX类似技术 在区块链相关生态中,与 SGX相类似的技术还有 如下三个。 1. 同态加密( Homomorphic encryption) 同态加密 的概念由 Rivest等人在 20世纪 70年代首先提出,同态加密是指经过同态加密的数据进行运算得到一个结果,将结果进行解密,可以得到的与同一方法处理未加密的原始数据所得到的结果相同的密码学技术。同态加密又分加法同态 、 乘法同态以及全同态加密。全同态加密 直到 2009年才由 Graig Gentry提出。 2. 安全 多方计算( multi party computation) 安全多方计算由我国唯一图灵奖得主姚期智院士提出,其提出场景为百万富翁问题 暨“ 在没有可信第三方的前提下,两个百万富翁如何在不泄漏自己真实财产的状态下比较谁更有钱”。及多个持有私有数据的参与方,共同执行一个计算逻辑并获得计算结果。但在过程中,参与的每一方均不泄漏各自数据的计算。 3. 零知识证明( zero knowledge prove)。 零知识证明,是由 S.Goldwaser、 S.Mical及 C.Rackof在 20世纪 80年代初提出的。它指的是证明着能够在不向验证者提供任何有用的信息的情况下,是验证者相信某 个论断是正确的。 去数学证明不同,零知识证明是概率证明,也就是说可能会存在小概率的误差。 2.2 各类技术的应用 在目前区块链行业的发展中, SGX和零知识证明被较为广泛的应用。同态加密和安全多方计算因为其技术本身的难度 较大且效率较低,现阶段很难在真实的应用场景中落地。而 SGX和零知识证明已经与区块链技术相结合, 下面分别列举使用这两个 技术的代表性项目: 1. SGX相关的区块链项目在 2018年 5月份之后如雨后春笋般冒出,大多数项目落地的 场景 为 分布式计算 、 AI等方向。 Covalent(简称 Cova)为其中较早提出使用 SGX技术的, Cova想要通过区块链以及 SGX技术来解决传统 AI、 ML(机器学习)领域 training(训练)的问题。 在 AI领域,一个成熟的算法模型需要使用大量数据的训练。但是许多数据因为其本身私密性较强且价值巨大,无法直接提供给第三方用来训练算法模型。所以造成了算法模型拥有方有强烈的数据使用需求却无法获得有效数据,而数据持有方想要将数据进行变现却也因为数 据的隐私性而无法 交易数据。而且常常大型的研究机构 既是 算法模型拥有方又是数据持有方。在这样的背景下, Cova项目专注于解决在保证数据隐私性的前提下让