什么是机密计算?
机密计算是由机密计算联盟 (CCC) 定义的一个行业术语,CCC 是专注于定义并加速机密计算落地的基金会。 CCC 给机密计算的定义是:通过在基于硬件的可信执行环境 (TEE) 中执行计算来保护使用中的数据。
TEE 是是一个只能执行授权代码并对齐进行保护的环境,TEE 外部的任何代码都无法读取或篡改该环境中的任何数据。 机密计算威胁模型旨在消减云提供商和运营商以及租户域中的其他行动者访问正在执行的代码和数据的能力。
数据加密能够对数据存储和数据传输进行保护,但是加密最大的挑战是保护运行中数据;而机密计算可以和数据加密联合起来一起对数据的整个生命周期进行保护。运行时敏感数据、高价值数据、以及安全计算平台上的工作负载,都可以通过机密计算来保护,即机密计算将保护从数据保护扩展到了业务逻辑保护,比如业务逻辑资产保护、分析函数保护、机器学习算法保护以及整个应用程序保护。
减少对云的信任
在云上运行的负载(业务)需要对云上各供应商的信任来实现应用的功能,这些提供商包括:
-
应用软件供应商 通过本地部署、使用源码或者本地构建的应用程序来信任软件供应商
-
硬件供应商 只在本地或内部使用硬件来信任硬件供应商
-
基础设施供应商 相信云供应商或者是自己本地数据中心
机密计算技术就是需要减少以往云计算中对其他方的信任,通常是通过技术手段实现
减少攻击面
可信计算基础 TCB 指的是系统中提供安全环境的所有硬件、固件以及软件。TCB 中的部件是非常关键的,如果某部件被破解,那么整个系统的安全就塌陷了。TCB 越小,安全性就越高,因为暴露于各种漏洞、恶意软件、攻击和恶意人员的风险较小。
Azure 上的机密计算
微软将机密计算全面扩展到了 IaaS、PaaS,以及支持开发者云上数据和代码机密性的工具。
Azure 已经提供了很多工具来保护静态数据,比如客户端加密和服务端加密。此外,Azure 也提供了相关机制通过 TLS、Https 等安全协议对传输数据进行加密。这部分主要讲述对数据的第三种保护,即对使用中的数据进行保护。
使用 Azure 机密计算可以降低对云基础设施各方面的信任需求从而更轻松的相信云提供商,同时将对主机操作系统内核、hypervisor、虚拟机管理员以及系统管理员的信任最小化。
Azure 机密计算能够帮助我们:
-
防止非授权访问:可以在云上运行敏感数据。相信 Azure 能够提供最好的数据保护,同时对业务修改也很少
-
满足合规要求:迁移到云的同时能够保持对数据的完全控制,满足政府部门对于个人数据隐私和组织知识产品的保护的要求。
-
保证安全、非信任方间的合作:通过机密计算,能够使得行业内互相不信任的相关方甚至竞争对手能够围绕数据、处理、使用等方面进行合作,从而突破行业数据应用的规模限制。说白了就是让数据、业务、结果在非信任方之间转起来。
-
处理过程隔离:通过一系列新产品保证处理过程的安全性,消除对数据隐私的责任,服务提供商甚至都无法触碰到用户数据。
Azure 机密计算新增功能
验证应用程序是否机密的运行构成了机密计算的基础,这些验证是需要多方面合作才能实现的,Azure 提供了以下服务实现:
-
微软 Azure 证明服务,证明服务是用来证明各可信执行环境 TEEs以及 TEE 内部各二进制程序完整性的服务
-
Azure HSM 密钥保险柜,是一个完全可控、可靠、单租户、符合标准的云服务,能够保证应用程序密钥的安全,HSM 符合 FIPS 140-2 Level 3
-
可信硬件身份管理,该服务用于处理驻留在 Azure 中的所有 TEE 的证书缓存管理,并提供可信计算基 (TCB) 信息,以实现证明服务的最小安全基线
-
可信运行,可信运行在第二代虚拟机上都是可用了,第二代虚拟机自带安全机制:安全启动、虚拟 TPM、启动完整监控,防止 boot kits、rootkits 以及内核可疑代码攻击
-
Azure 机密账簿,ACL 是一个防篡改寄存器,用于存储敏感数据以满足记录保管和审计要求,或者在多方方案中实现数据透明度。 它提供“一次写入,多次读取”保证,使数据不可擦除且不可修改。 该服务构建在 Microsoft Research 的机密联盟框架的基础之上
-
Azure IoT Edge 支持在物联网 (IoT) 设备上的安全区内运行的机密应用程序。 IoT 设备很容易遭到篡改和伪造,因为恶意行为者能够以物理方式对其进行访问。 机密 IoT Edge 设备在边缘添加了信任和完整性,可以保护对设备本身捕获的、在流式传输到云之前存储在设备内部中的数据的访问
-
Azure SQL 中使用安全区的 Always Encrypted。 直接在 TEE 内运行 SQL 查询,可以保护敏感数据的机密性,防止恶意软件和高权限未经授权的用户访问数据。
-
使用 Intel SGX 应用程序安全区的 VM。 Azure 提供基于 Intel SGX 技术的 DCsv2、DCsv3 和 DCdsv3 系列用于创建基于硬件的安全区。 你可以构建基于安全区的应用程序以在一系列 VM 中运行,从而保护使用中的应用程序数据和代码。
-
在 Azure Kubernetes 服务 (AKS) 上运行的 App-enclave 感知容器。 AKS 上的机密计算节点使用 Intel SGX 在每个容器应用程序之间的节点中创建隔离的安全区环境。
-
基于 AMD SEV-SNP 技术的机密 VM 支持现有工作负载的直接迁移,并通过 VM 级机密性保护云操作员的数据。
-
机密推理 ONNX 运行时,这是一个机器学习 (ML) 推理服务器,可以限制 ML 托管方访问推理请求及其相应的响应。
机密计算用例与应用场景
机密计算适用于监管行业(例如政府、金融服务和医疗保健机构)中的各种数据保护用例。 例如,阻止访问敏感数据有助于保护公民的身份信息免受所有相关方的影响,包括存储它的云提供商。 其他敏感数据可能包含生物识别数据,这些数据用于查找和删除已知的儿童图像、防止非法贩卖人口以及协助数字取证调查。
保护多方计算
业务事务和项目协作要求多方共享信息。 通常,共享的数据是机密数据。 数据可能是个人信息、财务记录、医疗记录、私人公民数据等。公共和私有组织要求保护其数据免受未经授权的访问。 有时,这些组织甚至希望保护数据免受计算基础结构操作员或工程师、安全架构师、业务顾问和数据科学家的影响。
例如,我们可以访问医疗设备捕获的患者较大数据集和图像,因此机器学习在医疗保健服务方面的运用得到了极大发展。 疾病诊断和药品研发得益于多种数据源。 医院和卫生机构可以通过集中式受信任执行环境 (TEE) 来共享患者的医疗记录,从而实现协作。 在 TEE 中运行的机器学习服务会聚合和分析数据。 这种聚合数据分析提供基于合并数据集的训练模型,可以提供更高的预测准确度。 借助机密计算,医院可以最大程度降低患者隐私泄露的风险。
通过 Azure 机密计算,可以处理来自多个源的数据,而不会向其他方公开输入数据。 这种类型的安全计算支持反洗钱、欺诈检测和医疗保健数据安全分析等方案。
多个源可以将其数据上传到虚拟机中的一个 enclave。 一方告诉 Enclave 对数据执行计算或处理。 任何一方(甚至执行分析的一方)都看不到已上传到 Enclave 中的其他方的数据。
在安全的多方计算中,已加密的数据将进入 Enclave。 Enclave 使用密钥解密数据,执行分析,获取结果,并发送回一方可以使用指定密钥进行解密的加密结果。
反洗钱
在这个安全的多方计算示例中,多个银行彼此共享数据,不会公开其客户的个人数据。 银行对合并的敏感数据集运行经过一致同意的分析。 对聚合数据集的分析可以检测一个用户在多个银行之间的资金流动,各银行之间不会互相访问数据。
通过机密计算,这些金融机构可以提高欺诈检测率,处理洗钱场景,减少误报,并持续从较大数据集中学习。
医疗保健行业的药物研发
相互合作的医疗保健机构提供专用医疗保健数据集来训练 ML 模型。 每个机构只能看到自己的数据集。 没有其他机构能够看到数据或训练模型,甚至云提供商也不能。 所有机构都可通过使用经过训练的模型获益。 通过使用更多数据创建模型,模型变得更准确。 参与训练模型的每个机构都可以使用该模型并收到有用的结果。
使用 IoT 和智能建筑解决方案保护隐私
许多国家/地区就收集和使用建筑物内人员的存在和移动情况数据,颁布了严格的隐私法。 其中可能包括从闭路电视或安全徽章扫描便可直接识别个人身份的数据。 也包括可以间接识别身份的数据,即各组不同的传感器数据组合在一起时可视为可识别个人身份。
组织需要权衡隐私保护与成本和环境需求,因为组织渴望了解占用/移动情况,以便最有效地利用能源来为建筑物供暖和照明。
要确定公司各部门的员工未充分利用或过度利用了公司大楼哪些区域的空间,通常需要处理一些可以识别个人身份的数据以及不那么偏个人隐私的数据,如温度和光传感器。
在此用例中,主要目标是在不向任何人公开原始聚合数据的情况下,分析占用情况数据和温度传感器以及闭路电视运动跟踪传感器和徽章刷卡数据,以了解使用情况。
在本文中,将(本示例中在机密容器实例上运行的)分析应用程序放置受信任的执行环境中,使用中的数据在其中会受到加密保护,从而使用机密计算。
多种类型的传感器和数据源的聚合数据集在 Azure SQL Always Encrypted with Enclaves 数据库中进行管理,这通过在内存中加密正在使用的查询来保护这些查询。 这会阻止服务器管理员在查询和分析聚合数据集时访问该数据集。
法律或司法要求
通常适用于 FSI 和医疗保健,在这些领域存在法律或法规要求,限制了可处理和静态存储某些工作负载的位置。
在此用例中,我们将 Azure 机密计算技术与 Azure Policy、网络安全组 (NSG) 和 Azure Active Directory 条件访问相结合,确保在现有应用程序“直接迁移”方面达到下列保护目标:
- 通过机密计算,保护应用程序在使用时不受云操作员的破坏
- 应用程序资源只能部署在西欧 Azure 区域
- 通过新式身份验证协议进行身份验证的应用程序使用者可映射到其发起连接的主权区域,并且访问遭到拒绝,除非他们位于允许的区域。
- 使用管理协议(RDP、SSH 等)进行的访问仅限于从与 Privileged Identity Management (PIM) 集成的 Azure Bastion 服务进行访问。 PIM 策略需要一个条件访问策略,用于验证管理员从哪个主权区域进行访问。
- 所有服务都会将操作记录到 Azure Monitor。
制造 - IP 保护
制造组织会保护与其制造流程和技术相关的 IP,制造通常会外包给第三方,由第三方来处理实际生产流程,而这些流程可能会被视为存在盗用该 IP 的主动威胁的“恶意”环境。
在本例中,Tailspin Toys 正在开发一条新的玩具生产线,玩具的具体尺寸和创新设计是公司专有的,他们希望保证这些信息的安全,同时可以灵活地选择哪家公司来实际生产他们的玩具原型。
Contoso 是一家高质量的 3D 打印和测试公司,它提供了系统来实际大规模地打印原型和通过安全审批所需的安全测试运行这些原型。
Contoso 在 Contoso 租户中部署客户管理的容器化应用程序和数据,该租户通过 IoT 类型的 API 使用其 3D 打印机器。
Contoso 使用来自实际制造系统的遥测数据来驱动其计费、计划和材料订购系统,而 Tailspin Toys 则使用来自其应用程序套件的遥测数据来确定其玩具制造的成功程度和缺陷率。
Contoso 操作员能够使用通过 Internet 提供的容器映像将 Tailspin Toys 应用程序套件加载到 Contoso 租户中。
Tailspin Toys 配置策略要求在启用了机密计算的硬件上进行部署,以便所有 Tailspin 应用程序服务器和数据库在使用时不受 Contoso 管理员的破坏,即使它们在 Contoso 租户中运行也是如此。
例如,如果 Contoso 的一名恶意管理员尝试将 Tailspin Toys 提供的容器移动到无法提供受信任执行环境的常规 x86 计算硬件,这可能意味着机密 IP 的潜在暴露。
在这种情况下,如果证明调用显示无法满足策略要求,Azure 容器实例策略引擎将拒绝释放解密密钥或拒绝启动容器,从而确保 Tailspin Toys IP 在使用中和在静态时受到保护。
Tailspin Toys 应用程序本身被编码为定期调用证明服务,并通过 Internet 将结果报告回 Tailspin Toys,以确保有持续的安全状态检测信号。
证明服务会从支持 Contoso 租户的硬件返回经过加密签名的详细信息,以验证工作负载是否按预期在机密 enclave 内运行,证明不受 Contoso 管理员的控制,并且基于机密计算提供的硬件信任根。
增强的客户数据隐私
尽管 Microsoft Azure 提供的安全级别正迅速成为客户采纳云计算的主要驱动因素之一,但客户对其提供商的信任程度各有不同。 客户要求:
- 针对敏感工作负载配备最少的硬件、软件和运行 TCB(受信任计算基础)。
- 使用技术强制手段,而不只是业务策略和流程。
- 知晓其获得的保障、残留风险和缓解措施。
机密计算通过允许客户对用于运行其云工作负载的 TCB 进行增量控制,来满足这些要求。 Azure 机密计算支持客户精确定义访问其工作负载(数据和代码)的所有硬件和软件,并提供技术机制以可验证的方式强制实施这种保障。 简而言之,客户对其机密保留完全控制权。
数据主权
对于政府和公共机构,Azure 机密计算是一种提升公有云数据主权保护能力信任度的解决方案。 此外,Azure PaaS 服务越来越多地采用机密计算功能,降低了对公有云服务创新能力的影响,因而更加提升了这种信任度。 将保护数据主权与降低对创新能力的影响相结合,使得 Azure 机密计算能够非常有效地响应政府服务对主权和数字转换的需求。
减少信任链
机密计算领域的巨额投资和革命性创新使得云服务提供商脱离信任链,达到了前所未有的程度。 Azure 机密计算提供当今市场最高级别的主权。 这能够满足客户和政府目前对主权的需求,并使其在未来仍能从创新中获益。
机密计算能够提高用于公有云部署的工作负载量, 便于快速采用公共服务完成迁移和新的工作负载,迅速提高客户安全态势,并快速实现创新方案。
BYOK(创建自己的密钥)方案
使用硬件安全模块 (HSM) 可将密钥和证书安全传输到受保护的云存储空间 - Azure Key Vault 托管 HSM - 而无需云服务提供商访问此类敏感信息。 传输的机密永远不会以明文形式保存在 HSM 之外,从而实现客户端生成和管理的密钥和证书的主权方案,但仍使用基于云的安全存储。
保护区块链
区块链网络是节点的分散网络。 这些节点由操作员或验证员运行和维护,他们希望确保完整性并在网络状态上达成共识。 节点本身是账本的副本,用于跟踪区块链事务。 每个节点都有事务历史记录的完整副本,确保分布式网络中的完整性和可用性。
基于机密计算的区块链技术可以使用基于硬件的隐私来实现数据机密性和安全计算。 在某些情况下,整个账本是加密的,以保护数据访问。 有时,事务本身可以出现在节点中的 enclave 内的计算模块中。