基于SGX的云外包计算信任问题解决方案研究

2022-10-09 04:07
信息安全研究 2022年10期
关键词:服务提供商密钥云端

王 冠 尹 煜

(北京工业大学信息学部 北京 100124)

(可信计算北京重点实验室 北京 100124)

(wangguan@bjut.edu.cn)

分布式计算系统的研究始于Google公司发表的3大论文GFS(Google文件系统)[1]、Map/Reduce(编程环境)[2]、Big Table(数据模型)[3],奠定了云大数据计算基础架构.

云计算环境主要是指将分布式的计算资源通过互联网整合,实现软硬件资源共享和协调调度的一种虚拟计算系统,具有快速部署、易于度量、终端开销低等特征.时至今日,云计算技术在民用领域及军事领域都得到了大规模的运用,世界各国都投入巨大的资源进行云计算的研究工作[4].在这种环境中,云计算用户的数据和资源完全依赖于不可靠的网络通信和半可信的云存储服务器,例如:云端数据的存放位置、数据加密机制、数据恢复机制、完整性保护、第三方监管和审计、虚拟机安全、内存安全等,使得用户对云计算环境的安全性普遍存在质疑,导致云计算的普及难以深入[5].

目前针对云计算环境安全的技术主要是基于硬件的可信云技术,包括VC3[6],SecureCloud[7],SCONE[8],Slalom[9],MesaTEE[10]等.这些技术都通过Intel SGX技术创建可信执行环境来保证各种场景下云计算数据和代码的正确性和完备性.但是由于云计算环境自身的结构特点,对用户来说云服务器依然是一个“黑匣子”.云环境的安全保证一般都很模糊和抽象并且缺乏统一的安全标准,难以使用户信任云计算环境[11].

为了解决用户对云环境的信任问题,引入了可信第三方.可信第三方是类似于CA认证机构的权威机构,作为网络服务中受信任的第三方,承担对云计算服务提供商的安全认证与统一的安全标准制定.基于可信第三方和SGX技术设计安全方案,在保证数据和代码安全性的同时解决用户对云平台的信任问题.

1 相关技术

Intel SGX[12-13]是Intel架构新的扩展, 在原有架构上增加了一组新的指令集和内存访问机制[14].通过这组指令集与访问控制机制,实现一个与外部隔离的可信执行环境——Enclave. Enclave是一种可信计算技术[15],是一个被保护的内容容器, 用于存放应用程序敏感数据和代码[16].SGX的可信计算基仅包含CPU和Enclave本身[17],具有较小的可信计算基.应用程序需要将代码和数据分为可信部分与不可信部分,在把可信部分的代码和数据加载到Enclave中时必须进行检查和分析,保证其内容没有被篡改.当应用程序的可信部分加载到Enclave后,由SGX保护它们不被外部软件所访问.

在应用程序使用过程中会遇到需要长久保存数据的情况,但由于Enclave在任务执行后会被销毁,其内存中所保存的信息也会一并删除.为了解决这个问题,SGX技术提供了密封机制.当数据被密封时数据在安全区内用密钥加密,这个密钥是直接从CPU中取得的,加密数据只能在创建它的那个电脑上解封,且加密过程可以保证数据的安全性、完整性、真实性.密封机制拥有2种密钥策略安全区标识(MRENCLAVE)和密封标识(MRSIGNER),前者只有同一Enclave才能解封机密数据,后者只要是同一软件开发商就可解封.

SGX技术提供了2种类型的身份认证方式:第1种用于同一平台内部Enclave间的认证,用来确认2个本地Enclave是否运行在同一个平台上;第2种是平台之间的远程认证[17],用于网络环境中确认对方是否正确运行在SGX支持的配置环境中.通过SGX身份认证2个Enclave间可以安全地传输身份信息与数据.

2 基于SGX的云外包计算安全方案设计

通过对云外包计算及现有可信云技术的分析可知,现有可信云方案存在以下3个问题:1)现有的可信云方案基本是站在云服务提供商的角度,以云端自身建立一个可信执行环境为目的,只解决代码执行时的安全性,并没有站在用户的角度考虑数据在传输时的保密性.使用提供商自己生成的密钥加密数据或直接明文传输,存在敏感信息泄露问题,容易遭受来自云端内部的窃听.2)现有的方案都是云服务提供商自己进行远程证明,给出的认证结果很容易被伪造.并且大多使用的安全协议都很不清晰,对用户来说云端依然是一个不透明的“黑匣子”,无法保证其正确运行在可信环境中.3)现有的方案缺乏统一的安全标准与管理,无法向用户保证云端计算的可信性,导致用户难以信任云服务提供商.

引入第三方可信机构可以实现如下功能:1)第三方可信机构(类似CA认证机构)定期对云端集群硬件基础进行检查,确保SGX可以正常运行,并进行相关配置及记录.2)对集群SGX创建的Enclave进行远程认证并与硬件信息核对,确保Enclave正确运行在SGX的硬件环境下.3)向用户提供集群安全情况以及远程认证结果,并为用户提供集群证书(私钥由SGX密封在集群).用户使用证书中的公钥上传自己的对称密钥进行分布式计算与存储.4)对用户的代码进行包装或提供接口,以满足集群分布式计算运行规范.

安全方案设计的总目标是在使用云端计算资源的同时不向云端泄露任何隐私信息,通过可信第三方使云环境更加清晰安全,让用户可以信任云环境.

2.1 总体架构

基于SGX的云外包计算安全方案总体架构如图1所示:在硬件层,CPU通过Intel SGX技术的拓展指令集和EPCM结构维护并提供EPC这块物理隔离的内存区域.再基于Enclave内存访问语义的变化与应用程序地址映射关系的保护,这2项功能共同完成对Enclave内部代码与数据的机密性和完整性的保护.

图1 基于SGX的云外包计算安全方案总体架构

在内核层,SGX驱动为应用程序提供大量接口服务,例如Enclave的创建销毁、可信密码学库、数据密封、远程认证等功能.

在应用层,在安全区中通过可信密码学库对用户代码及数据进行加解密,保证用户代码及数据只在安全区时为明文状态,在云端存储时保持加密状态.

该方案能够实现以下功能:

1) 用户的数据在SGX技术提供的安全容器Enclave中执行,可以有效防止来自云端内部攻击者使用特权软件进行攻击,确保了机密性和完整性.

2) 借由SGX驱动所提供的密码学库与密封机制生成集群证书,通过第三方可信机构形成一套安全高效的数据传输加解密方案,保证用户代码及数据在云端传输中始终由用户生成的密钥加密,只有在安全区中才进行解密并执行.解决了传统可信云中明文传输或使用云提供商自己生成的密钥加密数据,导致容易受到内部嗅探攻击的问题.

3) 通过第三方可信机构的认证与维护,可以保证云平台软硬件环境的安全性.同时通过第三方可信机构进行远程认证,保证了云平台可信环境的真实有效,解决了传统可信云中存在虚假证明、结果伪造、身份冒充的问题.

4) 通过Enclave的隔离机制、安全的数据传输方案、第三方可信机构统一的安全标准及认证,达到使用云平台计算资源且不向云平台泄露信息的目的,让用户信任.

5) 只把敏感的用户代码及数据放在安全区执行,尽可能减少使用SGX技术所带来的性能开销.

根据基于SGX的云外包计算安全方案总体架构,安全方案具体流程主要分为2个阶段:注册阶段和工作阶段.

2.2 注册阶段

注册阶段是云服务提供商向第三方可信机构注册阶段.在这个阶段中主要由第三方可信机构根据统一的安全标准对云服务提供商的软硬件环境进行检验与维护,使云端环境可以满足SGX技术条件.其次,第三方可信机构还统一负责在云端配置可信执行环境Enclave并进行远程认证,确保Enclave正确运行在支持SGX的软硬件环境中.在Enclave通过可信密码学库生成公私钥对后,将私钥使用密封机制存储在云端文件系统中(只有相同配置的Enclave才能解封),公钥则与集群信息一同生成集群证书.安全方案注册阶段流程如图2所示:

图2 安全方案注册阶段流程图

具体步骤:

1) 满足SGX硬件基础的云服务提供商向第三方可信机构申请注册.

2) 第三方可信机构对云服务提供商的软硬件环境进行验证和配置,确保其满足SGX应用运行环境要求.

3) 第三方可信机构在各个云端节点创建Enclave.

4) 各个云端节点创建的Enclave通过第三方可信机构使用英特尔认证服务IAS进行远程认证.保证Enclave正确地运行在支持SGX技术的硬件之上.

5) 远程认证通过后,在Enclave中调用可信密码学库生成公私钥对.私钥使用SGX密封机制密封到磁盘.根据SGX密封机制,只有同一配置的Enclave才能解封私钥.

6) Enclave将生成的公钥加密传输给第三方可信机构.

7) 第三方可信机构根据集群信息与公钥生成集群特有的集群证书.

2.3 工作阶段

工作阶段是用户使用云外包计算服务的阶段.主要是确保用户提交的分布式计算作业环境与注册阶段由第三方可信机构配置的环境相同,该可信计算环境对云服务提供商内部也是保密状态,一切明文计算都将在其中进行.根据密封机制,只有相同配置的Enclave才能将密封的私钥解封,并且SGX技术提供的远程认证拥有伪匿名模式,可以追溯到Enclave的身份是否与第三方可信机构的配置相同.从而可以保证代码及数据只在可信执行环境中处于明文状态执行计算,在云端各个节点中的传输过程中始终处于使用用户密钥的加密状态.工作阶段流程如图3所示.

具体步骤:

1) 用户向云服务提供商申请服务.

2) 云服务提供商通过第三方可信机构向用户传输集群证书.

3) 为保证加解密效率用户首先生成对称密钥对数据及代码进行加密,再通过集群证书中的公钥对对称密钥加密,并一同上传到云端指定目录.

4) 云端节点启动,向第三方可信机构进行远程认证,确保Enclave是注册阶段经过认证的同一配置的Enclave,保证云节点计算环境的安全可信.

5) 认证通过后,云端节点的Enclave通过加载密封私钥(只有相同配置的Enclave才能解封),解密用户上传的对称密钥,再用对称密钥解密用户代码及数据进行执行.

6) 计算完成后云计算节点Enclave使用对称密钥对计算后的数据进行加密,输出加密结果到云端系统.

图3 安全方案工作阶段流程图

2.4 数据传输安全方案

Hadoop[19]是目前常用的大数据计算框架,其解决了大数据并行计算、存储、管理等关键问题.将基于SGX的云外包计算安全方案在Hadoop架构下实现应用.

Hadoop Streaming[20]是Hadoop架构中提供的一个工具,它可以为用户创建和运行一类特殊的Map-Reduce作业,这类特殊的Map-Reduce作业可以由编译好的可执行文件或脚本文件充当Mapper或者Reducer.

可以使用C/C++编译包含SGX技术的可执行文件作为Hadoop Streaming中的Mapper与Reducer,以此解决两者使用不同语言编译的问题.

对于Hadoop Map-Reduce作业来说,主要涉及的计算环节有Map阶段与Reduce阶段.而数据传输阶段分为Map阶段前、Map阶段、Reduce阶段、Reduce阶段后.根据前文所述的安全方案,在云端系统中要保证数据在传输过程中为加密状态,在可行执行环境中才解密计算,所以总体过程如图4所示:

图4 Hadoop架构中数据传输流程

3 实验结果与分析

3.1 性能分析

基于SGX的云外包计算安全方案相比标准的Map-Reduce程序可能出现的性能损耗体现在2个方面:1)Hadoop Streaming工具在云节点进行读写时采用管道技术,将数据通过管道以标准输入/标准输出的形式在云节点上传输,可能会导致读写性能损耗;2)SGX技术的使用额外创建了Enclave,并使用SHA256,AES_GCM,Base64编码等算法保证数据传输的安全性,会导致程序额外的资源消耗.

主要对比标准Map-Reduce作业、使用Hadoop Streaming的Map-Reduce作业、使用SGX技术与Hadoop Streaming技术的安全方案作业在运行性能上的表现.因远程认证涉及英特尔在线认证的注册问题,本次实验并未加入远程认证模块.

实验使用Hadoop 3.1.3架构,共使用3个虚拟机(Hadoop106,Hadoop107,Hadoop108)在局域网环境构建云计算集群,每个云节点最多启动1个容器,同时运行1个计算任务.Hadoop集群部署规划如表1所示:

表1 集群规划表

以WordCount(统计数据中出现的单词数)作业为例,输入数据为100个单词.对上述3种作业各进行10次计算,统计平均作业用时.所得结果如表2所示:

表2 3种作业运行时间表

从数据来看标准Map-Reduce作业所用时间与使用Hadoop Streaming所用时间基本没有差距,而同时使用SGX技术与Hadoop Streaming后Map阶段所用时间大幅增加,Reduce阶段所用时间提升不大.

Map阶段主要涉及的功能为输入数据分片与节点计算.本次实验在使用SGX时默认的加密输出长度为100 B,编码输出长度为139 B.这使得输入数据相较原始数长度大幅增加,导致在分片阶段分区变多启动了更多的Map节点,并且程序在处理数据时的计算量大幅增加,导致Map阶段用时增长明显.Reduce阶段经过Shuffle处理,相同Key值的数据被合并处理,使数据量大幅减少,导致性能损耗不明显.

3.2 安全性分析

对比现有的传统可信云技术,本文提出的基于SGX的云外包计算安全方案具有以下优点:

1) 现有的可信云方案基本是站在云服务提供商的角度以云端自身建立一个可信执行环境为目的,只解决了代码执行时的安全性,并没有站在用户的角度考虑数据在传输时的保密性.使用提供商自己生成的密钥加密数据或直接明文传输,存在敏感信息泄露问题,容易遭受到来自云端内部的窃听.本文方案通过SGX技术提供的密码学库设计了一套安全的数据加密方案,可以有效保证在数据传输过程中始终处于使用用户密钥加密的状态,用户通过集群证书上的公钥加密数据,且只有Enclave内部密封的私钥才能解密,实现重要数据对不可信的云端环境隐藏的目的,保证了数据的安全性.

2) 现有的方案都是云服务提供商自己进行远程证明,给出的可信报告很容易被伪造.对用户来说云端依然是一个不透明的“黑匣子”,无法保证其正确运行在可信环境中.通过引入第三方可信机构,可以有效地对云服务提供商的硬件基础进行检验,并在注册阶段与工作阶段对Enclave进行远程认证,确保其正确运行在支持SGX技术的运行环境中.用户通过第三方可信机构可以详细了解云服务提供商的安全信息,让云环境更加透明.

3) 现有的方案缺乏统一的安全标准与管理,无法向用户保证云端计算的可信性,导致用户难以信任云服务提供商.本文提出的安全方案通过引入第三方可信机构与SGX技术相结合,达到安全标准的统一制定、可信环境的构建保障、密钥的定期更新、数据传输的安全高效,实现使用云服务提供的计算资源,又不向云端透露代码及数据的目的.在第三方可信机构认证与清晰的安全方案保证下,使用户可以信任云计算环境.

4 结束语

由于传统的可信云缺乏统一的安全标准,存在身份伪造、虚假证明、容易受到来自内部的攻击等问题,导致用户难以信任云环境.本文提出了一种针对云计算环境的基于SGX技术的安全方案,引入了可信第三方作为中间人,通过包含注册阶段与工作阶段的流程设计保证了云计算环境的可信性.同时,利用密码学原理确保用户数据在传输过程中的安全性,解决了传统可信云存在的敏感信息泄露问题.对Hadoop架构下性能损耗与安全性进行了分析,实验结果表明,该方案的性能损耗较小,对比传统可信云的安全性更高,并有效地缓解了用户对云计算环境的不信任问题.

猜你喜欢
服务提供商密钥云端
四海心连·云端汇聚
幻中邂逅之金色密钥
幻中邂逅之金色密钥
在云端永生
论品牌出海服务型跨境电商运营模式
最新调查:约三成云服务提供商正迅速改变其业务模式
Android密钥库简析
网络非中立下内容提供商与服务提供商合作策略研究
在云端
《云端三公尺》:下一个天亮,谁在等你