机密计算简介与现状
数据安全与机密计算
数据在整个生命周期有三种状态:At-Rest(静态)、In-Transit(传输中)和 In-Use(使用中)。
• At-Rest 状态下,一般会把数据存放在硬盘、闪存或其他的存储设备中。保护 At-Rest 状态的数据有很多方法,比如对文件加密后再存放或者对存储设备加密。
• In-Transit 是指通过公网或私网把数据从一个地方传输到其他地方,用户可以在传输之前对文件加密或者采用安全的传输协议保证数据在传输中的安全,比如HTTPS、SSL、TLS、FTPS 等。
• In-Use 是指正在使用的数据。即便数据在传输过程中是被加密的,但只有把数据解密后才能进行计算和使用。也就意味着,如果数据在使用时没有被保护的话,仍然有数据泄露和被篡改的风险。
在这个世界上,我们不断地存储、使用和共享各种敏感数据:从信用卡数据到病历,从防火墙配置到地理位置数据。保护处于所有状态中的敏感数据比以往任何时候都更为重要。如今被广泛使用的加密技术可以用来提供数据机密性(防止未经授权的访问)和数据完整性(防止或检测未经授权的修改),但目前这些技术主要被用于保护传输中和静止状态的数据,目前对数据的第三个状态“使用中”提供安全防护的技术仍旧属于新的前沿领域。
机密计算指使用基于硬件的可信执行环境(Trusted Execution Environment,TEE)对使用中的数据提供保护。 通过使用机密计算,我们现在能够针对“使用中”的数据提供保护。
机密计算的核心功能有:
• 保护 In-Use 数据的机密性。未经授权的实体(主机上的应用程序、主机操作系统和Hypervisor、系统管理员或对硬件具有物理访问权限的任何其他人。)无法查看在TEE中使用的数据,内存中的数据是被加密的,即便被攻击者窃取到内存数据也不会泄露数据。
• 保护 In-Use 数据的完整性。防止未经授权的实体篡改正在处理中的数据,度量值保证了数据和代码的完整性,使用中有任何数据或代码的改动都会引起度量值的变化。
• 可证明性。通常 TEE 可以提供其起源和当前状态的证据或度量值,以便让另一方进行验证,并决定是否信任 TEE 中运行的代码。最重要的是,此类证据是由硬件签名,并且制造商能够提供证明,因此验证证据的一方就可以在一定程度上保证证据是可靠的,而不是由恶意软件或其他未经授权的实体生成的。
机密计算的现状与困境
业界内的诸多厂商就已经开始关注并投入到机密计算中。各大芯片厂家和云服务提供商(Cloud Service Provider,简称 CSP)都在机密计算领域投入研发资源,并组建了“机密计算联盟”。该联盟专门针对云服务及硬件生态,致力于保护计算时的数据安全。
目前机密计算正处于百花齐发和百家争鸣的阶段,市场和商业化潜力非常巨大。 但机密计算在云原生场景中还有一些不足:
1、用户心智不足。用户普遍对机密计算这项新技术的认知感不足,难以将其与自己的业务直接联系起来,导致需求不够旺盛。
2、技术门槛高。目前,相比传统开发方式,主流的机密计算技术的编程模型给人们对机密计算技术的印象是学习和使用门槛高,用户需要使用机密计算技术对业务进行改造,令很多开发者望而生畏。
3、应用场景缺乏普适性。目前,机密计算主要被应用于具有特定行业壁垒或行业特征的场景,如隐私计算和金融等。这些复杂场景让普通用户很难触达机密计算技术,也难以为普通用户打造典型应用场景。同时,不同厂商的CPU TEE虽各自具有自身的特点,但都无法解决异构计算算力不足的问题,限制了机密计算的应用域。
4、信任根和信任模型问题。在信创、数据安全和安全合规等政策性要求对CPU TEE的信任根存在自主可控的诉求;与此同时,虽然有部分用户愿意信任云厂商和第三方提供的解决方案,但多数用户对云厂商和第三方不完全信任,要求将机密计算技术方案从租户TCB中完全移除。
总之,目前已有的机密计算技术方案存在以上困境,不能够完全满足用户不同场景的安全需求。为了解决以
上四个问题,云原生机密计算SIG应运而生,主要可概括为四点:
1、推广机密计算技术。
• 邀请参与方在龙蜥大讲堂介绍和推广机密计算技术与解决方案。
• 与芯片厂商合作,未来可以通过龙蜥实验室让外部用户体验机密计算技术,对机密计算有一个更深入化的了解。
2、提高机密计算技术的可用性。
• 支持多种机密计算硬件。
• 提供多种运行时底座和编程框架供用户选择。
3、提升机密计算技术的泛用性
• 为最有代表性的通用计算场景打造解决方案和案例(特性即产品)。
• 积极拥抱并参与到机密计算前沿技术领域的探索与实践,加速创新技术的落地。
4、澄清误会并增加用户信心
• 发布机密计算技术白皮书。
• 与社区和业界合作,未来提供结合了软件供应链安全的远程证明服务体系。