可信计算机定义(从可信计算到机密计算)
报告回顾了可信计算与机密计算的研究背景,总结了可信计算的技术体系,介绍了团队在可信计算领域的代表性创新成果,概述了可信计算与机密计算的关系以及机密计算的优势和不足,展望了可信计算与机密计算的发展趋势。
关键词:可信计算 机密计算 数据安全
可信计算背景
要想理解“可信计算”首先要理解“可信”的含义,“可信”有很多不同的定义。在可信计算中,“可信”被定义为:如果一个实体的行为总是以预期的方式朝着预期的目标执行,那么它就是可信的。可信计算的理念是以硬件安全芯片为基础,建立可信的计算环境,确保系统实体按照预期的行为执行。可信计算主要实现以下3个功能:
1.建立可信链,构建可信执行环境。保证安全启动,抵抗病毒攻击;构建系统初始可信执行环境,进一步保障系统运行时计算环境可信。
2.标识平台身份,实现平台可信认证。识别平台假冒身份,认证平台运行完整性。
3.保护密钥,确保数据安全。系统密钥盗不走、破解不了;受保护数据拷不走。
可信计算可解决当前计算机核心安全问题,提供主动免疫安全能力。图1展示了可信计算的基本理念。
图1 可信计算的基本理念
早在20世纪90年代中期,国外一些计算机厂商就开始提出可信计算技术方案,基于硬件密码模块和密码技术建立可信根、安全存储和信任链机制。该技术思路于1999年逐步被IT产业界接受和认可,形成可信计算平台联盟(Trusted Computing Platform Alliance,TCPA),2003年,该联盟改组为TCG(Trusted Computing Group),并逐步建立起TCG TPM 1.2技术规范体系,将其思路应用到计算机的各个领域,并在2009年将该规范体系的4个核心标准推广为ISO国际标准。2012年,TCG发布了TPM 2.0 技术规范,并拓展延伸到物联网、云计算、移动互联网等新领域。2015年,可信执行环境(Trusted Execution Environment,TEE)技术开始在云服务、物联网、智能手机等领域广泛应用,例如,英特尔推出SGX(Software Guard Extensions)技术,构建Enclave保障云服务器的代码和数据安全;ARM TrustZone在智能手机的指纹识别、数字钱包等方面应用普遍。2019年,谷歌推出Titan芯片,英特尔发布FPR等技术解决云服务器初始化的固件安全问题;多家IT巨头企业组建“机密计算联盟”,加快了TEE技术的标准化、商用化进程。与此同时,我国也一直高度重视可信计算这一领域,秉承着核心技术自主创新、信息安全自主掌控的理念,积极推进可信计算的研究与发展,于2007年颁布了核心标准《可信计算密码支撑平台功能与接口技术规范》并于2013年成为国家标准,提出两个重要概念,即可信密码模块(Trusted Cryptography Module,TCM)和可信软件模块(Trusted Software Module,TSM),在2019年进行了重新修订。
可信计算技术体系
可信计算技术体系主要由两大方法基础、三大信任核心、四大关键技术组成,如图2所示。
图2 可信计算技术体系
1. 两大方法基础是指密码学方法和形式化方法。可信计算中的所有算法、授权协议、远程证明协议、应用协议,还有数据机密性、代码完整性、设备认证性等都是依靠密码学方法来保证的。而形式化方法主要用来分析验证可信计算平台的安全性,特别是采用自动化分析工具,分析评估隔离环境的TEE安全操作系统和可信应用代码的安全性,减少潜在的代码漏洞和软件风险。总之,密码学方法保障可信,形式化方法分析验证安全。密码学方法从算法和协议角度保障芯片、服务和应用的可信性,而形式化方法从软件安全的角度确保隔离系统自身软件和应用的安全性。
2. 三大信任核心是指信任根、隔离执行和远程证明。第一层信任是在物理层的信任根,它是将权威机构、企业等用户信任锚点固化在系统中的最基础的信任,是一种由权威可信第三方担保并且提供认证证据的绝对可信,或者是无条件可信。如果以嵌入在主板上的TPM/TCM作为硬件信任根,那么信任根就是受物理防篡改保护的最小安全功能组件,具有主动免疫的特性。第二层信任是在系统层的隔离执行,信任根不具备应用软件代码保护能力,因而需要一个基于CPU的隔离受保护运行环境保障应用代码、机密数据的安全性。可信执行环境是实现隔离执行的重要技术手段,它保障了系统隔离、代码验证和策略实施。可信执行环境是一个独立于主系统之外的安全隔离子系统,它上面运行的代码不会受到主系统的影响,即使主系统被病毒、木马等攻陷,可信执行环境仍然是安全的。结合内存页加密、地址随机化、数据执行保护(DEP)、影子栈等安全增强机制,可信执行环境还能够提供更强的系统安全性。代码验证就是由于可信执行环境内部的软件代码数量有限,能够采用形式化方法证明其安全性,减少代码潜在的漏洞和风险。策略实施是TEE对主系统强制执行的安全控制机制,TEE可以对主系统的敏感操作进行安全检查,依据安全策略检测主系统内核和应用程序状态,并且对外证明当前系统的可信性。第三层信任是网络层的远程证明,它是可信计算特有的一种安全机制,将可信计算平台的内部信任通过网络验证拓展到外部。传统的检测(detection)机制是在系统外部检查系统的运行状态是否正常,而可信计算的远程证明机制是系统基于信任根或可信执行环境主动向外部证明自身的运行状态,是一种主动的、可验证的安全机制。
3. 四大关键技术是指安全启动、可信执行环境、度量与证明、可信存储。四大关键技术不仅要支撑可信计算技术体系的三大信任核心的构建,而且要从各个角度保障可信计算平台的整体安全。安全启动是构建可信计算平台信任的第一步,确保系统的初始可信;可信执行环境建立受保护的隔离安全计算环境,确保系统运行时信任;度量与证明是基于信任根或可信执行环境度量系统当前的运行状态,对外认证当前系统和软件可信,确保信任的网络延伸;可信存储是从数据安全的角度,保障系统运行时的各类敏感数据的机密性和完整性,确保系统的数据存储安全。
机密计算概述
2019年8月,Linux基金会启动了机密计算联盟(Confidential Computing Consortium,CCC)技术咨询委员会,旨在为机密计算定义标准,并支持开源工具的开发和使用。数据安全和隐私泄露的风险是制约组织间数据流通的一大障碍,机密计算联盟将专注于方法标准化,以确保在TEE数据处理过程中加密内存数据,而不会导致敏感代码和数据的泄露。机密计算联盟希望解决的问题是数据使用中的安全性。众所周知,使用中的数据是数据加密领域的一个弱点,企业在处理信息时没有任何可靠的方法保护信息,而机密计算就是为了保障计算环境安全,确保数据使用安全。
CCC的成员主要由硬件供应商(CPU厂商)、系统厂商(OS)、云服务提供商和应用解决方案厂商构成。实际上,CCC就是Linux基金会下面共同推进TEE应用的一个技术社区,以开源项目群的方式建立应用生态。CCC所推进的机密计算为破解数据保护与利用之间的矛盾、实现多方信息流通过程中数据的“可用不可见”提供了安全解决方案。其技术目标是快速普及可信执行环境技术和标准。具体目标体现在两方面:一是统一的机密计算软件开发工具包(SDK)或应用程序接口(API),二是推广硬件TEE的应用。目前开源项目有Enarx、Open Enclave SDK、Keystone、Veracruz等,还有更多的开源TEE项目将加入其中。重点应用包括云计算、安全多方计算、区块链、移动计算设备、边缘计算等场景。
CCC将机密计算定义为通过在基于硬件的可信执行环境中执行计算来保护使用中的数据。而可信执行环境被定义为提供一定级别的数据完整性、数据机密性和代码完整性保证的环境。笔者认为,应该将机密计算定义为一种保护使用中的数据安全的计算范式。这样定义机密计算不仅不依赖于可信执行环境,而且含义更广。
机密计算的最大优势在于数据、算法(代码)、平台三者相互独立的安全。通过硬件可信执行环境提供的安全计算环境实施机密计算、隐私计算,可保障不同数据拥有者、应用开发者、平台服务提供者各方的相关利益和隐私。例如,可信执行环境平台可保护深度学习算法、保障医疗AI应用中的病患病历数据等。机密计算技术可与可信计算、隐私计算(如同态加密、安全多方计算)形成有效的安全互补。机密计算在数据安全上具有明显优势:端到可信执行环境的数据安全,允许端到端加密,在处理数据时能保护用户的敏感数据;可信执行环境数据的授权访问,可信执行环境保护敏感数据而避免外部人员的非授权访问;可信执行环境数据的安全迁移,在两个不同环境之间移动数据时,机密计算保证敏感数据受到保护。
机密计算的不足是:其支撑技术SGX等存在侧信道攻击,其信任根因受到厂商控制而受到质疑,且机密计算缺乏统一的技术标准。
机密计算研究的关键问题
目前,机密计算领域重点关注以下关键问题:
1. 开放式机密计算平台架构设计。针对x86、ARM、RISC-V不同的硬件平台架构研究并设计开放式的机密计算平台,力求可信计算平台最小化,为上层应用提供统一的机密计算SDK 或API。基于硬件TEE实现系统隔离、内存保护、密码计算、远程证明等通用安全机制,从计算环境层面保证数据使用安全。
2. 可信执行环境的微架构安全防御技术。以Meltdown、Spectre为代表的瞬态执行攻击,表明CPU可能存在更多未知的微架构漏洞,因此,基于硬件和CPU的TEE侧信道防御机制、微架构防御技术也是机密计算的重要研究方向。
3. 机密计算平台密码应用方案。机密计算与同态加密、安全多方计算、后量子密码等密码方案的集成应用,高效安全地实现数据所有者、平台提供者、算法开发者等多方参与者的数据隐私计算的应用目标。
4. 可信执行环境密钥管理和远程证明机制。某些机密计算平台中的信任根密钥受到CPU厂商的绝对控制,缺乏自主性和可控性,因此开放式的可扩展第三方根密钥的TEE远程证明体系是机密计算证明的重要研究问题;机密计算平台远程证明除了需要证明TEE代码和数据的完整性,还必须保证基于硬件TEE“飞地”(enclave)的真实性证明,而非软件模拟。
机密计算发展的技术路线
目前,机密计算主要围绕以下3条技术路线展开:
1. 打造机密计算平台,包括硬件基础:(1)基础硬件可信、静态可信执行环境、硬件固件安全(Titan、FPR等),基于硬件的可信执行环境提供3方面的安全功能,即隔离(isolation)、硬件信任根(hardware root of trust)和证明(attestation);(2)硬件高级特性:系统动态可信执行环境实现,如Apple SE(Secure Element)、Intel SGX、内存加密等;(3)虚拟化技术:安全Hypervisor,不可信的Hype运行可信的OS等问题,主流的平台,用户是完全信任Hype的;(4)虚拟机和应用安全:机密虚拟机容器/“飞地”等,提供容器中的微服务安全(microservice security)。
2. 发展可信执行环境的技术实现方式,最常见的是英特尔 SGX 可信执行环境,但可信执行环境不仅仅在英特尔硬件平台中可用,还有多种技术实现路线,包括Intel SGX、ARM TrustZone、RISC-V TEE、Microsoft VSM等:OP-TEE基于ARM TrustZone,是运行在Cortex-A内核上的Linux TEE;Keystone TEE:Keystone是一个运行在RSIC-V平台上的开源TEE;虚拟安全模式(VSM):VSM是微软在Hyper-V(Windows系统Hypervisor)上实现的基于软件的TEE,在Windows 10和Windows Server 2016中实现。
3. 推进机密计算的应用,包括人工智能安全(confidential AI)、模型、算法、训练等;机密数据库和分析,如同态加密数据库等;机密多方计算和协作;机密超级账本(hyperledger),如可信执行环境运行可验证的账本。
可信计算与机密计算比较
可信计算与机密计算是两个既有区别又有联系的概念。可信计算是机密计算的平台基础,可信计算与机密计算都包括可信执行环境,但可信计算实现静态可信执行环境,而机密计算可以动态创建、调整、销毁可信执行环境。二者的比较见表1。
可信计算和机密计算未来发展趋势
可信计算引领的整体安全架构和主动免疫安全体系,已经成为网络空间安全技术版图中不可或缺的重要一环。可信计算将以创新理论与技术同系统体系结构、操作系统安全、可信软件深度融合,构建更加有效、灵活的安全防护体系。当前,可信计算呈现出以下发展趋势:
1. 立足于核心关键技术不受制于人,我国可信计算必然朝着国产化、自主可控的规模化应用方向发展。
2. 可信计算技术和标准体系更加健全,可信计算测评体系将更加完善。
3. 以通用可信执行环境为代表的新型可信计算不断拓展应用领域,将为人工智能、区块链、物联网、边缘计算等建立重要的安全基础。
机密计算提供硬件级的系统隔离,保障数据安全,特别是多方参与者下数据使用中的安全。数据安全中,数据传输和数据存储技术相对成熟,而数据使用安全(特别是保障数据所有者数据安全、平台所有方系统安全、数据处理方算法安全)则是新的技术发展趋势。当前,机密计算呈现出以下发展趋势:
1. 应用更加深入。机密计算实现了数据、算法(代码)、平台三者独立的安全,可保障不同数据拥有者、应用开发者、平台服务提供者各方的利益和隐私。机密计算试图破解数据保护与利用之间的矛盾,可以广泛应用于电子政务的跨部门数据安全共享,金融行业的联合风控,医疗领域的医学、药物和基因研究,商业领域的联合营销,等等。
2. 标准化需求更加迫切。机密计算缺乏标准的实现方法。不同厂商实现方式不一样,所以机密计算应用会使专业安全人员产生技术困惑,这也是机密计算联盟开发统一开源SDK的原因。
3. 更需协同发展。机密计算还处在发展初期,需要机密计算硬件(CPU、FPGA)、密码和隐私机制(安全传输层协议和同态加密等)、可信计算机制(硬件信任根、远程证明)、虚拟机和操作系统安全、容器和微服务安全等的协同支持才能变得更有效、更安全。
4. 更加注重实用化研究。机密计算的基础方法的实用化和创新研究十分重要,可为机密计算的发展和进步提供理论基础和科学方法,包括同态加密技术、安全多方计算、不经意传输/混淆电路/秘密共享、差分隐私、联邦学习、可信执行环境等。
(本文根据CNCC2021特邀报告整理而成)
冯登国
CCF会士。中国科学院院士,中国科学院软件所研究员。主要研究方向为可信计算与信息保障、网络与信息安全。fengdg@263.net
特别声明:中国计算机学会(CCF)拥有《中国计算机学会通讯》(CCCF)所刊登内容的所有版权,未经CCF允许,不得转载本刊文字及照片,否则被视为侵权。对于侵权行为,CCF将追究其法律责任
,