机密计算的应用场景有哪些?
存储和处理密钥、秘密信息、凭证以及令牌
密钥、秘密信息、凭证和令牌是保护敏感数据的关键信息资产。过往总需要一个符合当地国家安全标准的本地硬件安全模块(HSM)对这些关键信息资产进行存储和处理,比如这些硬件安全模块要符合美国联邦信息处理标准(FIPS 140-2、140-3)的安全要求。传统HSM硬件的专有性增加了它们的成本,限制了它们的可伸缩性,而且在云计算和边缘计算环境中部署HSM硬件也带来了成本和兼容性的挑战。
目前机密计算已经被独立软件供应商(ISV)和大型组织使用,并通过标准化的计算基础设施存储和处理敏感信息。这些基础设施可用于内部、公有云/混合云,以及边缘网络和IoT。密钥管理应用程序可以在基于硬件的安全TEE中存储和处理密钥、秘密信息和令牌,并提供数据机密性、数据完整性和代码完整性,以实现与传统HSM同等的安全性。
公有云
在传统的公有云场景中,用户需要信任云提供商的计算栈,包括:硬件、核心和外围设备的固件、主机操作系统、hypervisor和云提供商的管控编排系统。虽然公有云提供商在竭尽全力保护该计算栈的安全性,但机密计算提供了额外的安全保证,并显著降低了最终用户对云提供商的信任需求。
对于未经授权的实体来说,即使他们具有对硬件的物理访问权限,或具有对主机OS或hypervisor的root访问权限,或对管控编排系统具有特权,访问受硬件TEE保护的使用中的应用程序和数据变得更为困难。机密计算的目的是允许将云提供商从TCB中移除,以确保在攻击边界内只有硬件和受保护的应用程序本身。
这使得许多业务现在能够迁移到公有云,而在以前,由于安全问题或合规要求,许多业务无法迁移到公有云。
多方计算
新的计算模式正在出现,这使数据集和算力能够在多方之间共享,然而有些数据和计算模型可能是敏感的或受监管的,比如金融服务、医疗保健、政府和非盈利领域。此外,如果要在交易方不信任的平台上共享数据,如何才能保持数据的机密性和完整性?很多组织希望摆脱数据孤岛的限制,但仍然需要平台确保数据源在共享时不会受到损害,并且计算结果只能被事先允许的各方访问到。
例如,私有的多方分析可以应用于这种场景:多个参与方拥有需要组合和分析的私有数据,但又不能向任何其他参与方公开其基础数据或机器学习模型。这项技术可以应用于防止金融服务中的欺诈,检测或开发医疗行业的疾病治疗方法,或生成商业洞察力。举例来说,多家医院可以结合数据来训练机器学习模型,利用放射信息进行更准确的脑肿瘤检测,但病人的个人数据即使是在违规的情况下也总能被保密。
公司和组织可以使用机密计算确保远程系统上的数据不受篡改和破坏(包括来自合作组织的内部威胁),以及验证处理该数据的代码的完整性。数据可以在TEE中进行组合和分析,结果可以以加密格式发送回各参与方。在整个过程中,数据始终受到保护,不管是在传输中,计算时,还是静态存储。
这些功能将有助于推动全球数据共享领域的发展,使企业能够解锁以前未杠杆化的数据集,以便与其他企业进行协作分析和交换,同时降低安全、隐私和监管影响的风险。
区块链
区块链是一个共享的、不可变的账本。它记录了参与者网络之间的数据、数字资产或货币交换。在无需中心化的第三方参与的情况下,区块链提供了记录和验证交易的基础设施。区块链可以为供应链活动提供透明度,促进数字资产的交换或支持合规流程,如客户调查(Know Your Customer,简称KYC)。区块链的一个关键特征是,它确保所有应该拥有一段共同数据的参与者能够看到相同的东西,并且一旦输入到区块链上,数据就是不可变的。通常由应用程序开发人员来确保像个人识别信息(PII)这样的敏感数据不会被存储在不可变的区块链上。
机密计算可用于增强基于区块链的系统的安全性。通过结合保密计算和区块链技术,用户可以利用基于硬件的TEE来提供证明和验证服务,以提升可扩展性、隐私性和安全性。区块链用户之间的数据一致性通常取决于各方独立验证的所有历史数据的有效性,同时也需要考虑这些历史数据集的可见性、数据规模和隐私问题。用户可以在基于硬件的TEE中执行智能合约,而不是自己独立地访问和验证历史数据和与之关联的智能合约的完整性。一旦交易完成,TEE提供证明服务来证明交易的可靠性,这意味着随后的参与者不需要再次进行验证。基于TEE的认证服务也有助于解决协商一致协议产生的一些计算和通信效率低下的问题。
个人移动和计算设备
有关个人设备的使用场景主要涉及应用程序开发人员或移动设备制造商,他们需要保证在共享或处理数据的过程中不会观察到个人数据。从合规性和最佳实践的角度来看,这将设备制造商从责任循环中移除,因为他们可以声称无法看到客户的个人数据。如果TEE能够确保前面提到的可证明性和代码完整性,那么计算功能的正确性(以及计算结果的可信赖性)就可以得到证明,因此应用程序开发人员可以向用户证明他们的个人数据从未离开设备。
例如在持续认证的场景中,设备上的用户帐户登录程序可通过与用户交互来识别用户。这些交互数据可能包括敏感数据,如生物特征或用户与设备交互的物理模式,这些都需要在TEE中进行处理。用户行为引擎只需要识别用户,而不需要将原始用户行为数据暴露给其他设备或TEE外部的代码。
另一个例子是分散式设备模型训练,其目的是改进模型;同时需要在与其他设备共享模型改进的同时,不会泄漏用于训练模型的数据。使用基于硬件的机密计算的协议设计比统计模型(如差分隐私)更易于使用。此外,统计方法仍然依赖于用户信任应用程序开发人员通过注入适量的噪声的方式来充分隐藏敏感数据。相比之下,在设备上运行基于硬件的TEE可以使用户通过双向证明的方式在自己的设备上设置策略和约束条件,以便使用和处理他们的数据。
边缘和IoT
机密计算非常适合的一个场景是内置在家庭路由器中的DDoS检测机制,该机制会对TCP/IP数据包进行本地搜索和过滤。在大多数情况下,这些数据包的内容需要保密,因为可能会推断出敏感的用户行为;其他场景包括边缘机密机器学习处理,如可以减少后端网络延迟和带宽的视频元数据生成技术;还有摄像头监控场景,如提供商需要加载人脸识别库。一旦泄露,则将导致严重的后果;此外还有类似于上述移动环境中的设备上的训练模型数据保护场景,也适用于使用机密计算。
另外,某些设备在物理上可被不可信的实体访问。机密计算技术可用于缓解对设备所实施的物理攻击。
POS机 / 支付
使用基于硬件的TEE在当今的支付行业中已经很常见。能够处理带有芯片密码的信用卡或借记卡的POS机需要对持卡人的敏感信息进行保护,包括信用卡号、PIN码、有效期、CVV等;像收银机这样的设备通常就是通用计算设备;读卡器则用于保护支付处理的代码逻辑免受此类通用计算设备上任何潜在恶意软件的侵害。
为了保护用户输入的信息(如PIN码),还必须对数据的输入方式进行保护,以便用户输入的数据不能被读取或篡改。在安全的实现中,数字键盘是一个被隔离的输入设备,输入仅能被基于硬件的TEE中的代码所读取。通过这种方式,数据可以被安全地操作并用于生成发送到支付交易系统的加密信息,所有这些都是恶意软件或第三方未经授权的实体所无法触及的。
机密计算领域正在迅速发展,为业务和最终用户提供新的工具,以保护敏感数据和代码免受数据在执行期间发生的一类数据安全威胁,而这些威胁在以前是难以防范的。
解决方案提供商经过权衡(比如对TCB大小的考量)开发出了不同的机密计算实现:从将应用程序的代码划分为可信和不可组件,到对应用进行很少或不经修改就能实现应用到TEE的迁移。
这些不同的方法支持各种使用场景,但最终目的都是为了确保敏感的、业务关键的信息和工作负载的机密性和完整性。随着机密计算的不断发展,可能会出现更多的方法,或者是这些方法的演变。机密计算联盟对这一领域的创新持乐观态度。
本文内容来源于机密计算联盟发布的白皮书Confidential Computing: Hardware-Based Trusted Execution for Applications and Data v1.2