基于可信执行环境的5G边缘计算安全研究
2023-01-05鲍聪颖曹松钱卢秋呈
鲍聪颖 吴 昊 陆 凯 曹松钱 卢秋呈
1(宁波永耀电力投资集团有限公司 浙江宁波 315099) 2(国网浙江省电力有限公司宁波供电公司 浙江宁波 315016) 3(上海交通大学宁波人工智能研究院 浙江宁波 315000) 4(上海交通大学电子信息与电气工程学院 上海 200240)
随着物联网技术和第5代移动通信技术(5th generation, 5G)网络架构的快速发展,各类新型服务模式和业务不断涌现,多接入边缘计算(multi-access edge computing, MEC)技术兴起,在用户终端与数据中心之间架起了桥梁.5G边缘计算网络架构由第3代移动通信伙伴项目(3rd Generation Partner Project, 3GPP)制定,如图1所示[1].基于服务化架构(service based architecture, SBA),实现数据路由与能力开放;边缘计算平台具有数据网络(data network, DN)和应用功能(application function, AF)的能力;用户面功能(user plane function, UPF)衔接起5G核心网、MEC和用户终端,根据不同业务的需求实现数据分流,满足边缘场景下的移动性管理、合法监听、计费、服务质量(quality of service, QoS)保障等功能[2].
图1 5G边缘计算网络架构
MEC以其较高的开放性为垂直行业的发展拓宽了产业生态,授权第三方可以灵活、便捷地使用MEC平台提供的服务.但是,MEC在带来更快的数据处理、更低的时延的同时,其较高的开放性使得其安全风险增加,安全攻击面也随之增加.另一方面,MEC基于虚拟化技术部署,安全防护的边界较模糊,且边缘节点计算资源有限,MEC如何在安全防护与计算效率之间找到平衡成为难题.综上,传统安全防护措施难以直接应用于MEC,MEC安全急需一套定制化的安全防护体系.
可信计算组织(trusted computing group, TCG)这样定义可信:一个实体如果它的行为总是以预期的方式达到预期的目标,则这个实体就是可信的[3].可信计算利用集成的硬件模块形成信任锚点,再建立一条基于密码学的信任链,这条信任链贯穿底层的硬件到上层的应用,从而构建可信的系统运行环境.作为一种主动防御技术,可信计算建立了一个隔离的、安全的运行环境,不同于防火墙的被动防御,可信计算能主动发现并排除安全隐患,旨在从根本上解决平台的安全性问题.
MEC硬件平台采用通用计算技术和基本输入输出系统(basic input output system, BIOS)启动并加载操作系统,基于虚拟化技术搭建云平台,MEC和可信计算的软硬件组织架构是一脉相承的,这使得利用可信计算加强MEC安全成为一种可能[4].但是,由于MEC组件多、结构复杂,暴露出的攻击面大,面临的安全风险多,当前基于可信计算的MEC安全研究大多聚焦在某一方面或几方面的安全风险,缺乏整体思维,尚无一套完整的利用可信计算相关技术加强MEC安全的方案.
基于以上背景,下面本文将阐述MEC面临的安全风险;介绍相关可信执行环境技术;基于可信执行环境进行MEC安全策略研究.
1 MEC安全风险分析
欧洲电信标准协会(European Telecommunications Standards Institute, ETSI)定义了MEC的平台架构,该架构包括MEC系统级和MEC主机级2部分,如图2所示[5].其中,MEC系统级以MEC编排器(MEC orchestrator, MEO)为核心,对MEC系统具有全局管理和调度能力;MEC主机级包括MEC主机、MEC平台管理器(mobile edge platform manager, MEPM)和虚拟化基础设施管理器(virtualized infrastructure manager, VIM).其中,MEPM和VIM接受MEO的统一管理调度,实现MEC主机和应用相关功能的管理,并对MEC平台和应用提供虚拟化资源.MEC平台则提供系统功能服务、服务注册、流量规则控制和DNS域名解析处理等能力.
图2 ETSI MEC架构
根据3GPP和ETSI定义的MEC架构,MEC各部件的安全威胁如图3所示[6]:
图3 MEC安全威胁
1) 用户面安全风险.
UPF作为衔接终端、5G核心网和MEC的锚点,安全防护需求大.攻击者可直接攻击UPF并对数据进行拦截、伪造;攻击者攻击MEC平台,非法入侵MEC平台后再非授权访问用户面接口,窃取用户数据[7].用户面安全关键问题在于恶意计费问题、DDoS攻击问题、移动场景下的边缘数据面安全问题[8].
2) 基础设施安全风险.
MEC基于虚拟化基础设施,安全边界模糊,资源越权访问风险较大,且存在被物理攻击的风险;若服务器I/O接口信息暴露,敏感数据易被窃取;攻击者可利用虚拟化软件漏洞对MEC主机发起攻击,进一步蔓延到整个MEC平台;MEC应用大多采用基于容器的微服务架构,容器与宿主机之间、容器与容器之间隔离存在安全风险[9].
3) 平台安全风险.
MEC平台和APP的通信数据可能被篡改、拦截、重放;攻击者可利用第三方APP对平台发起非授权访问,从而发起DDoS攻击或窃取平台敏感数据;平台的系统配置如果被恶意更改,APP可能越权访问,进而影响其他APP和MEC主机的运行;还可能导致用户数据被转发给非授权的第三方APP,造成用户数据泄露.
4) 应用安全风险.
由于MEC下沉到网络边缘,其应用会接触到海量终端的包括身份、位置在内的隐私数据,从而面临极大的隐私安全防护挑战.
不同APP运行于同一MEC主机上,安全攻击面增多;不同APP之间隔离不当可能带来安全隐患;不同APP共享MEC平台提供的虚拟化资源,存在资源恶意侵占、资源分配不当等问题;APP能力在对外开放过程中可能会被滥用;在APP的生命周期中可能被非法创建、删除、更新.
5) 编排管理安全风险.
MEC编排管理包括MEC编排器(MEO)、MEC平台管理器(MEPM)及虚拟化基础设施管理器(VIM),实现MEC节点编排管理和灵活部署.
MEC编排管理网元(MEO,MEPM,VIM)与MEC主机之间的通信数据可能会被窃取、篡改、拦截和重放;攻击者可利用大量恶意APP不断地向用户APP生命周期管理代理发送请求,从而发起DDoS攻击;MEC编排管理如果被攻击者非法控制、仿冒,攻击者则可以非法获取MEC资源控制权限或者相关管理信息,进一步非法控制MEC节点资源,导致编排管理失效.
目前基于MEC安全问题,有如下解决方案:基于杀病毒、防火墙和入侵检测传统“老三样”手段,增强系统网络边界的安全防护能力,将攻击者隔绝在网络边界之外,但这些常规的安全手段通常都是从已经发生的攻击事件中学习建立起来的,属于被动的防御措施,面对未知攻击时效果不佳.因此需另辟蹊径,引入可信执行环境,基于可信计算构筑MEC自身的内生安全防护体系.
2 可信执行环境
2.1 可信执行环境的含义
可信执行环境(trusted execution environment, TEE)建立在可信计算的基础上,基于内存隔离的方式,在不可信的环境中为安全需求高的敏感数据和代码提供了一个安全的、完整的独立处理环境.
TEE主要由安全启动、安全调度、跨环境交流、安全存储和可信的I/O路径几大核心模块构成[10].其中,安全启动确保TEE只加载具有特定属性且未被修改的代码.安全调度保证TEE对系统资源的管理调度,并保证资源调度不受外界环境的影响.跨环境交流实现了TEE与非可信环境之间的数据传输.安全存储保证了完整、安全的存储,还对数据的访问作了限制,禁止非授权实体的访问.可信的I/O路径保证了外围输入输出设备与TEE通信的机密性,确保通信数据不被窃取或篡改.将可信执行环境技术应用于MEC可以有效地提高其安全性和机密性.
2.2 可信执行环境相关安全技术
ARM TrustZone是支持可信执行环境的硬件平台,其系统架构如图4所示[11].TrustZone在同一处理器上隔离出2个环境:处理一般事务的普通环境和处理敏感事务的可信环境,2个环境通过特定的硬件架构来保证在内存上的隔离.系统不能随意地从一个环境切换到另一个环境,除非调用安全监视指令.可信环境与普通环境通过一个名为Monitor Mode的模式实现环境转换,该模式会保存当前环境下的工作状态来实现上下文的切换.2个环境通过消息包传递来实现通信和同步,通过访问同一块内存实现数据共享.
图4 ARM TrustZone架构
Intel SGX(software guard extensions)是Intel推出的支持可信执行环境的处理器技术,它在内存中隔离出一个硬件支持的安全区域,来保障敏感代码和数据的安全.其架构如图5所示[12].Enclave(围圈)是处理器内置的隔离存储区域,SGX将可信函数放在围圈中执行,防止不可信程序对其进行调用,围圈即可看作一个可信执行环境.SGX中可信函数的调用流程如下:SGX首先在系统中创建围圈并提供函数调用接口,当外界需要访问围圈中的可信函数时,需要经过SGX认证后再调用.函数执行过程在围圈中被保护,恶意程序无法访问,函数结果将返回给调用方.
图5 Intel SGX架构
除了上述支持可信执行环境的硬件技术外,文献[13]介绍了一个软件支持的可信执行环境TrustVisor,其主要目标是使应用程序的逻辑块(piece of application logic, PAL)的执行与操作系统完全隔离.TrustVisor为敏感代码提供了安全的执行环境,这个环境通过可信度量根初始化,可信度量根与一个基于软件的微可信平台模块(trusted platform module, TPM)交互,每个应用注册的逻辑块都在TrustVisor上有自己对应的微TPM(μTPM)实例,作为逻辑块注册过程的一部分创建,用于与不可信应用的隔离.TrustVisor的可信计算基(trusted computing base, TCB)较小,且一半以上用于微TPM的加密操作,适用于敏感代码量较小的情况.TrustVisor体系结构中的信任关系如图6所示[13].
图6 TrustVisor体系结构中的信任关系
目前适用于MEC的可信执行环境相关安全方案大多因为MEC自身资源的限制存在局限性.如果不加限制地增大TCB会暴露更大的攻击面.TrustVisor具备更小的TCB,有效提升了安全性,但无法避免基于软件的TCB自身存在的软件安全漏洞风险.Intel SGX成本、能耗均较高,更适用于云端数据中心.TrustZone的TCB仅包括硬件,进一步增强了安全性,成本、能耗更低,且性能也较为出色,较适用于边缘节点.但基于TrustZone的安全方案对物理攻击、侧信道攻击等的防御较为薄弱.因此,目前主流的TEE安全方案应用于边缘都存在局限性,基于可信执行环境的MEC安全发展仍处于初期阶段.
3 利用可信执行环境加强MEC安全
3.1 基于可信执行环境的MEC安全方案
3.1.1 安全方案总体设计
为了实现5G网络场景的多样化,3GPP定义了5G网络应用3大场景,不同场景下的业务对网络部署、网络安全等方面的要求存在差异.为了满足不同的业务需求,MEC的部署模式也必须呈现出差异化,对于数据量大、能耗需求大的应用场景,MEC主机可以采用Intel x86架构,以满足更大的性能需求;对于数据量小、能耗需求小的应用场景,MEC主机可以采用ARM架构,以追求更高的能效比.对于2种应用场景都存在的情况(比如工厂,既有控制类业务也有视频类业务),MEC在部署时可以综合实际使用情况灵活部署.
下面给出一个基于可信执行环境的MEC安全方案,该方案包括可信硬件模块、TrustVisor模块和信任链模块.利用以上3个模块保障MEC虚拟化基础设施、平台、应用、编排管理安全,方法整体架构如图7所示.信任链模块保障MEC虚拟化基础设施的安全;TrustVisor模块保障MEC应用安全;根据MEC主机不同的架构,可信硬件模块可具体化为TrustZone模块(ARM架构)或Intel SGX模块(x86架构),保障MEC平台以及MEC编排管理安全.
图7 利用TEE加强MEC安全方案
3.1.2 安全方案模块说明
基于上述MEC安全方案,其中各个模块具体说明如下(信任链模块和TrustVisor模块在ARM架构和x86架构下具有通用性,因此先说明这2个模块.而针对不同架构实现MEC平台和编排管理的安全方案再另作说明):
1) 信任链模块.
MEC基础设施为边缘节点提供了软硬件基础,作为边缘计算的基本保障,MEC基础设施安全须包括从启动到运行整个过程中的设备、硬件、虚拟化和操作系统安全[14].
基于TPM对信任链进行完整性度量和可信检测,保障MEC系统的虚拟化基础设施的安全.其中信任链是指MEC系统的BIOS→OS Loader(操作系统载入程序)→Hypervisor(虚拟机管理程序)→虚拟机→应用;信任链模块把TPM芯片作为信任根,嵌入MEC系统的硬件,将对BIOS固件进行哈希计算,得到当前度量值并进行保存,产生相应度量日志[15],将当前度量值与历史度量值进行对比,若当前度量值与历史度量值相等,可信链继续下一级验证,否则终止MEC系统启动,并产生警告信息;以此类推,完成信任链的完整性度量可信检测.可信验证的流程如图8所示.
图8 信任链在MEC主机中的传递
2) TrustVisor模块.
MEC应用安全旨在防止不可信第三方应用对MEC平台及其他应用的安全威胁,目标是保证应用之间的严格隔离.
图9 利用TrustVisor加强MEC应用隔离
TrustVisor保障MEC应用安全的具体实现,如图9所示.在TrustVisor支持下,MEC应用可以注册自身逻辑块PAL,与此同时,TrustVisor会创建一个与PAL相对应的微TPM实例和可信度量根.MEC应用暴露给外界的唯一接口即自身PAL对应的微TPM,与外界的信息交流由对应的可信度量根维护,如此实现应用与应用、应用和MEC平台之间的隔离.TrustVisor设计了特殊的注册机制,一旦注册就可以多次调用PAL,而不需要更新可信度量根.此特性很好地避免了边缘终端的重复接入导致的计算、存储资源浪费.TrustVisor通过与每个PAL关联的可信度量根和微TPM实现了PAL远程认证和长期受保护存储.
3) 可信硬件模块.
对于可信硬件模块,当MEC系统为ARM架构时,基于TrustZone技术,将MEC系统的运行环境划分为可信环境和普通环境,MEC平台相关能力和MEC应用在可信环境中执行,不可信应用在普通环境中运行,如图10所示;如果不可信应用需要临时调用MEC平台的相关能力,通过实施双向认证或者白名单接入,得到Monitor的可信认证后,2个环境通过Monitor Mode进行转换,并通过消息传递和共享内存进行信息交流,从而实现MEC平台对应用的能力开放.当MEO执行编排管理操作时,把对MEC系统资源的调度、对虚拟化基础设施资源分配的敏感操作放在可信环境中进行,并在可信环境下记录、保存编排管理操作日志.
图10 TrustZone在MEC主机中的部署
当MEC系统为x86架构时,基于Intel SGX技术实现敏感代码的隔离运行,使关键代码和数据的机密性与完整性免受恶意软件的攻击和泄露,具体实现如图11所示.Intel SGX创建MEC平台围圈(围圈1)及MEO围圈(围圈2),当MEC应用调用MEC平台能力时,通过围圈1提供的函数接口调用MEC平台可信函数,数据在围圈1被处理后得到的结果将返回给MEC应用,保证MEC平台敏感代码在能力开放时的安全执行,不被恶意程序访问;当边缘计算编排器为MEC应用分配平台资源及虚拟化资源时,通过围圈2提供的函数接口调用MEO可信函数进行编排管理操作,保证操作信息、数据的完整性与机密性,并在围圈2中保存操作日志.
图11 Intel SGX在MEC主机中的部署
3.2 编排管理远程证明协议
可信计算技术涵盖了3大信任核心:信任根、隔离执行和远程证明[16].它们从不同层次保障可信:信任根是第1层信任,它在物理层保障了软硬件的可信;隔离执行是第2层,保障了系统内部运行时的安全;远程证明作为第3层信任,将内部可信拓展至整个外部网络.本文已经通过基于TPM的信任链实现了第1层物理层的信任,它保障了MEC从启动到运行、从虚拟化基础设施到应用之间的安全可信;通过可信硬件模块分别隔离了MEC平台和MEC编排管理,TrustVisor模块隔离MEC应用,保障了MEC内部安全,实现了第2层信任,即系统层的隔离执行.MEC编排管理的过程中可能被非法控制,为了防止MEC编排管理系统被入侵,编排管理双方网元(MEO和MEC节点)进行双向认证.下面介绍一种双向远程证明协议,从而实现第3层信任网络层的远程证明.
MEO对MEC节点发起编排管理操作请求时,MEC节点将对MEO进行安全验证,以确保编排管理指令来自安全合法的MEO,其过程涉及双方平台间可信度量与通信密钥协商2方面[17],如图12所示,下面分别说明.
图12 MEC节点与MEO的远程证明
1) 平台间可信度量.
首先,MEC节点为了验证编排管理指令的合法性,向MEO发起远程证明挑战信息PCM:
然后,MEO提供远程证明响应信息PRO:
MEC节点收到远程证明响应信息后,将进行与上述过程相似的验证过程.双方完成平台间可信度量后,继续协商双方通信所用密钥KS,过程如下:
2) 通信密钥协商.
MEC节点提供密钥协商信息PK为
RandomM‖SEQM,
其中RandomM为MEC节点生成的随机数.MEC节点使用MEO的数字证书CO所含的公钥信息对PK进行签名,得到Sign(PK),并发送给MEO,当MEO收到Sign(PK)后,通过自身公钥解密并验证PK的有效性,验证通过后,MEO提供密钥协商反馈信息PKO:
RandomM‖RandomO‖KS,
其中RandomO为MEO生成的随机数,KS为双方通信密钥.MEO使用MEC节点的数字证书CM所含的公钥信息对PKO进行签名,得到Sign(PKO),并发送给MEC节点,当MEC节点收到Sign(PKO)后,通过自身公钥解密并验证PKO的有效性,即验证RandomM是否一致,若一致,则用密钥KS加密RandomO,发送给MEO;MEO解密验证RandomO是否一致,若一致,双方密钥协商完成,后续双方通信将以KS作为密钥.
4 实验验证
本节将对Intelx 86架构和ARM架构下的可信执行环境技术应用于边缘计算进行可行性分析.由于可信执行环境基于内存隔离,在硬件层面保证了其安全性和隔离性,因此,针对边缘计算对性能较为敏感的特点,本节将聚焦于可信执行环境的引入对边缘计算节点带来的计算开销.
4.1 Intel SGX
根据Intel SGX官方配置网站[18]的相关信息,通过在Windows 10系统下配置Intel SGX管理引擎和软件开发工具包,在Visual Studio 2017专业版中搭建Intel SGX运行环境.在该环境下,首先需要定义可信函数,该函数被封装在围圈中,保存在可信类,并通过ECALLs接口访问围圈来进行函数的调用.在主函数中经过创建围圈、调用围圈(ECALLs)、调用可信函数、释放围圈、结束程度的过程,实现可信函数的调用,保证其安全性与保密性.
为了测试在Intel SGX环境下运行代码带来的计算开销,模拟边缘计算节点的计算任务,我们在围圈中定义MD5加密函数,将其作为可信函数进行调用,并计算其在Intel SGX环境中和普通环境中的运行时间,通过比较二者的差距来验证引入可信执行环境带来的性能损耗.
在实验中,让MD5加密函数加密100组长度为500个字母的字符串,并比较在不同环境下代码的运行时间,重复这一实验100次,记录每次代码运行时间,得到的实验结果如图13所示.实验结果表明,普通环境下平均用时为0.671 s,95%置信空间为[0.671, 0.671];Intel SGX环境下MD5代码加密平均用时为0.695 s,95%置信空间为[0.694, 0.697],平均用时仅比普通环境多出3.6%.2组数据的95%置信空间较小,证明实验数据波动性较小,实验偶然性较低;平均值差距小足以说明引入Intel SGX环境对计算开销影响很小,带来的性能降低几乎可以忽略.
图13 普通环境和Intel SGX环境下代码运行时间
4.2 ARM TrustZone
ARM公司为开发者提供了开源可移植可信执行环境(open-source portable trusted execution environment, OP-TEE),在Ubuntu 16以上的环境下可通过安装TrustZone开发工具和下载OP-TEE源码搭建ARM TrustZone运行环境.ARM开发团队开发了一个运行在普通环境上的客户应用(client application, CA)和一个运行在OP-TEE上的可信应用(trusted application, TA).CA使用TEE client API与TA通信,并且从TA获取安全服务.CA和TA使用共享内存进行通信.
为了测试在ARM TrustZone环境下运行代码带来的计算开销,同样地,利用MD5加密算法在CA和TA中的运行时间,通过比较二者的差距来验证引入可信执行环境带来的性能损耗.
在实验中,同样让MD5加密函数加密100组长度为500个字母的字符串,重复这一实验100次,记录代码运行时间,得到的实验结果如图14所示.实验结果表明,普通环境下平均用时为0.311 s,95%置信空间为[0.311, 0.311];ARM TrustZone环境下MD5代码加密平均用时为0.325 s,95%置信空间为[0.324, 0.325],平均用时仅比普通环境多出4.5%.2组数据的95%置信空间较小,证明实验数据波动性较小,实验偶然性较低;平均值差距小足以说明引入ARM TrustZone带来的性能降低几乎可以忽略.
图14 普通环境和ARM TrustZone环境下代码运行时间
引入可信执行环境除了对代码运行速度带来影响外,文献[19]还验证了可信执行环境的模式对切换时间的影响,实验结果证明模式切换时间对整体系统性能的影响也几乎可以忽略不计.
5 结束语
MEC架起了一座在移动边缘与数据中心之间的桥梁,将原来集中在中心云的数据计算、存储、网络能力转移到网络的边缘,使终端数据在近用户侧就能得到及时处理.由于MEC更靠近用户,大量隐私、敏感数据不可避免地汇聚在边缘节点,因此,MEC安全的重要性不言而喻.但同时,由于边缘节点计算、存储资源的匮乏,适用于云中心的传统安全方案并不能直接照搬.第1节分析了基于3GPP和ETSI定义的MEC架构下的安全风险;第2节介绍了可信计算与可信执行环境,并分析了可信执行环境应用于MEC安全的可能性与现状;第3节提出了一个完整的利用可信执行环境加强MEC安全方案,还介绍了一种MEO与MEC节点之间双向认证过程,进而完善了3个层次的信任.第4节通过实验验证的方式,比较不同环境下的MD5代码运行时间,说明了引入可行执行环境对边缘计算节点能效的影响甚微,证明了可信执行环境用于边缘计算的可行性.可信计算从提出以来理论、应用不断发展,我国已进入可信3.0时代,可信计算的理论研究超前于产业现状,由于研发难度、硬件成本等问题,可信计算在产业上的发展缓慢,把可信应用于边缘安全的相关研究较少,基于可信计算的MEC安全研究还任重道远.