Azure静止数据加密

Microsoft Azure包括根据公司安全性和合规性需求保护数据的工具。 本文重点介绍:

  • 如何在Microsoft Azure对静态数据进行保护。
  • 参与数据保护实现的各种组件。
  • 不同密钥管理保护方法的利弊。

静态加密是常见的安全要求。 在Azure中,默认情况下,使用平台管理的密钥对静态数据进行加密。 此方法为组织提供自动加密,无需自定义密钥管理解决方案的风险或成本。 组织可以依赖Azure使用平台管理的密钥完全管理静态加密,或者当需要额外控制加密密钥和密钥管理策略时,他们可以使用客户管理的密钥。

什么是数据静止状态下的加密?

加密是用于保护数据的机密性的数据的安全编码。 Azure静态加密设计使用对称加密,根据简单的概念模型快速加密和解密大量数据:

  • 对称加密密钥在将数据写入存储时对数据进行加密。
  • 同一加密密钥用于解密准备在内存中使用的数据。
  • 可以对数据进行分区,并为每个分区使用不同的键。
  • 必须将密钥存储在实施了基于标识的访问控制和审核策略的安全位置。 如果数据加密密钥存储在安全位置之外,则使用保存在安全位置的密钥加密密钥对其进行加密。

在实践中,密钥管理和控制方案以及规模和可用性保证都需要其他构造。 以下部分介绍了Microsoft Azure静态加密概念和组件。

静态加密的目的

静态加密可保护存储的数据(静态)。 针对静态数据的攻击包括尝试获取对存储数据的硬件的物理访问,然后泄露包含的数据。 在此类攻击中,服务器硬盘可能在维护期间被错误处理,这允许攻击者删除硬盘驱动器。 攻击者随后将硬盘驱动器置于其控制之下的计算机,以尝试访问数据。

静态加密旨在防止攻击者访问未加密的数据,其方法是确保这些数据在磁盘上时是加密的。 如果攻击者获取了包含加密数据的硬盘驱动器但未获取加密密钥,则攻击者必须破解加密才能读取数据。 这种攻击比访问硬盘驱动器上的未加密数据要复杂得多,且消耗的资源也多得多。 因此,强烈建议使用静态加密。对于许多组织来说,这是需要完成的高优先级事项。

组织对数据管理和合规性工作的需求可能还需要静态加密。 行业和政府法规(如 HIPAA、PCI 和 FedRAMP)针对数据保护和加密要求制定具体的保护措施。 要符合这其中的许多法规,静态加密是一种必需的强制措施。

除了满足合规要求以外,静态加密还能提供深层防御保护。 Microsoft Azure为服务、应用程序和数据提供合规的平台。 此外,它还提供综合性的设施和物理安全性、数据访问控制和审核。 但是,如果其他一项安全措施失败,请务必提供额外的“重叠”安全措施。 静态加密提供此类安全措施。

Microsoft致力于跨云服务的静态加密选项,并为客户提供对加密密钥和密钥使用日志的控制。 此外,Microsoft正在努力默认加密所有客户静态数据。

密钥管理选项

Azure提供了两种管理加密密钥的主要方法:

Platform 托管密钥(默认)(有时也称为服务管理的密钥):Azure自动处理加密密钥管理的各个方面,包括密钥生成、存储、轮换和备份。 此方法提供静态数据加密,客户无需进行任何配置,并且默认在 Azure 服务中启用。 平台管理的密钥提供最高级别的便利性,无需额外的成本或管理开销。

Customer 托管密钥(可选):需要更好地控制加密密钥的客户可以选择使用Azure 密钥保管库或Azure托管 HSM 来管理自己的密钥。 此方法允许客户控制密钥生命周期、访问策略和加密作。 客户管理的密钥以增加管理责任和复杂性为代价提供额外的控制。

这些方法之间的选择取决于组织的安全要求、合规性需求和作首选项。 大多数组织都可以依赖平台管理的密钥进行可靠的加密保护,而具有特定法规或安全要求的组织可能会选择客户管理的密钥。

Azure静态加密组件

如前所述,静态加密的目标是使用机密加密密钥对磁盘上保存的数据进行加密。 要实现该目标,必须为加密密钥提供安全的密钥创建、存储、访问控制和管理措施。 尽管详细信息可能有所不同,但Azure静态服务加密实现可按下图所示进行说明。

组件

Azure 密钥保管库

对于静态加密模型来说,最重要的是加密密钥的存储位置以及对这些密钥的访问控制。 你需要高度保护密钥,但使它们可由指定用户管理,并可供特定服务使用。 对于Azure服务,Azure 密钥保管库(高级层)或Azure托管 HSM 是推荐的密钥存储解决方案,提供跨服务的常见管理体验。 可以在密钥保管库中存储和管理密钥,并为用户提供或服务对密钥保管库的访问权限。 Azure 密钥保管库支持客户创建密钥或导入客户密钥,以便在客户管理的加密密钥方案中使用。

Microsoft Entra ID

你可以授予Microsoft Entra帐户权限,以使用存储在Azure 密钥保管库中的密钥来管理或访问它们进行静态加密和解密。

使用密钥层次结构进行信封加密

在静态加密实现中使用多个加密密钥。 将加密密钥存储在Azure 密钥保管库可确保密钥的安全访问和密钥集中管理。 但是,对于批量加密和解密,服务本地对加密密钥的访问效率比与每个数据操作的密钥保管库交互更高效,因此可以增强加密和提高性能。 限制使用单个加密密钥可降低密钥泄露的风险,以及必须替换密钥时重新加密的成本。 Azure 的静态加密模型使用信封加密,其中一个密钥加密密钥用来加密数据加密密钥。 此模型构成一个密钥层次结构,该层次结构可以更好地满足性能和安全要求:

  • 数据加密密钥 (DEK) – 用于加密数据分区或数据块的对称 AES256 密钥,有时也简称为“数据密钥”。 单个资源可以有多个分区和多个数据加密密钥。 使用不同的密钥加密每个数据块可以增加加密分析攻击的难度。 将 DEK 保持在加密和解密数据的服务本地,可最大程度提高性能。
  • 密钥加密密钥 (KEK) - 用于使用信封加密来加密数据加密密钥的加密密钥,也称为包装。 通过使用永不离开密钥保管库的密钥加密密钥,可以加密和控制数据加密密钥。 有权访问 KEK 的实体可以不同于需要 DEK 的实体。 实体可以代理对 DEK 的访问,以限制每个 DEK 对特定分区的访问。 由于需要 KEK 来解密 DEK,因此客户可以通过禁用 KEK 来加密擦除 DEK 和数据。

资源提供程序和应用程序实例将加密的数据加密密钥存储为元数据。 只有有权访问密钥加密密钥的实体才能解密这些数据加密密钥。 支持各种不同的密钥存储模型。 有关详细信息,请参阅数据加密模型

Azure云服务中的静态加密

可在所有三个云模型中使用Microsoft Cloud服务:IaaS、PaaS 和 SaaS。 以下示例演示了它们如何适应每个模型:

  • 软件服务(称为软件即服务或 SaaS),具有云提供的应用程序,例如Microsoft 365。
  • 平台服务,方便客户在其应用程序中将云用于存储、分析和服务总线功能等。
  • 基础结构服务,也称基础结构即服务 (IaaS),方便客户部署托管在云中的操作系统和应用程序,并尽可能利用其他云服务。

针对 SaaS 客户的数据静态加密

软件即服务 (SaaS) 客户通常会在每个服务中启用或提供静态加密。 Microsoft 365有多个选项供客户验证或启用静态加密。 有关 Microsoft 365 服务的信息,请参阅 Microsoft 365 中的加密

适用于 PaaS 客户的数据静态加密

平台即服务(PaaS)客户通常将其数据存储在存储服务中,例如Blob 存储。 但是,数据也可能缓存或存储在应用程序执行环境中,例如虚拟机。 要查看可用的静态加密选项,请查看您所使用的存储和应用平台的数据加密模型

适合 IaaS 客户的静态加密

基础结构即服务(IaaS)客户可以使用各种服务和应用程序。 IaaS 服务可以使用主机级加密在其 Azure 托管虚拟机中实现静态数据加密。

加密的存储

与 PaaS 一样,IaaS 解决方案可以利用存储静态加密数据的其他Azure服务。 在这些情况下,可以启用由每个已使用的Azure服务所提供的静态数据加密机制。 数据加密模型枚举支持的主要存储、服务和应用程序平台以及静态加密模型。

加密的计算

默认情况下,所有托管磁盘、快照和映像都使用存储服务加密和平台管理的密钥进行加密。 此默认加密不需要客户配置或额外费用。 更全面的加密解决方案可确保所有数据永远不会以未加密的形式持久保存。 处理虚拟机上的数据时,系统可以将数据保存到Windows页文件或 Linux 交换文件、故障转储或应用程序日志。 为了确保静态加密此数据,IaaS 应用程序可以在Azure IaaS 虚拟机上的主机上使用加密,该虚拟机默认使用平台管理的密钥,但可以选择使用客户管理的密钥进行配置,以便进行其他控制。

静止状态加密

应尽可能,IaaS 应用程序应利用主机加密和静态数据加密选项,这些选项由所使用的Azure服务提供。 在某些情况下,例如不规则的加密要求或基于非Azure的存储,IaaS 应用程序的开发人员可能需要自行实现加密。 IaaS 解决方案的开发人员可以利用某些Azure组件,更好地与Azure管理和客户期望集成。 具体而言,开发人员应使用 Azure 密钥保管库 服务来提供安全密钥存储,并为客户提供与 Azure 平台服务一致的密钥管理选项。 此外,自定义解决方案应使用Azure托管服务标识,使服务帐户能够访问加密密钥。 有关Azure 密钥保管库和托管服务标识的开发人员信息,请参阅各自的 SDK。

Azure 资源提供程序加密模型支持

Microsoft Azure服务每个服务都支持一个或多个静态加密模型。 但是,对于某些服务,一个或多个加密模型可能不适用。 对于支持客户管理的密钥方案的服务,他们可能仅支持Azure 密钥保管库密钥加密密钥支持的密钥类型的子集。 此外,服务可能会按不同的计划发布对这些方案和关键类型的支持。 本部分介绍在撰写本文时对每个主要的Azure数据存储服务的静止加密支持。

Azure VM 磁盘加密

任何使用Azure基础结构即服务(IaaS)功能的客户都可以通过主机加密来加密其 IaaS VM 磁盘。 有关详细信息,请参阅 主机加密 - VM 的端到端加密

Azure存储

所有Azure 存储服务(Blob 存储、队列存储、表存储和Azure 文件存储)都支持服务器端静态加密,某些服务还支持客户端加密。

Azure SQL 数据库

Azure SQL 数据库目前支持平台托管服务端和客户端加密方案的静态加密。

目前通过名为透明数据加密的 SQL 功能提供对服务器加密的支持。 Azure SQL 数据库客户启用 TDE 后,会自动为其创建和管理密钥。 可以在数据库和服务器级别启用静态加密。 自 2017 年 6 月起,在新建的数据库上默认启用 透明数据加密 (TDE)。 Azure SQL 数据库 支持在 Azure 密钥保管库 中管理的由客户负责的 RSA 2048 位密钥。 有关详细信息,请参阅 支持自定义密钥的透明数据加密(适用于 Azure SQL 数据库和数据仓库)

Always Encrypted 功能支持对Azure SQL 数据库数据的客户端加密。 Always Encrypted 使用客户端创建和存储的密钥。 客户可以将主密钥存储在Windows证书存储、Azure 密钥保管库或本地硬件安全模块中。 使用SQL Server Management Studio,SQL 用户选择要用于加密哪个列的密钥。

结论

保护存储在 Azure Services 中的客户数据对于Microsoft至关重要。 所有Azure托管服务都致力于提供静态加密选项。 Azure服务支持平台管理的密钥、客户管理的密钥或客户端加密。 Azure服务正在广泛增强静态加密可用性,并计划未来几个月推出预览版和正式版的新选项。

后续步骤

  • 请参阅 数据加密模型 ,详细了解平台管理的密钥和客户管理的密钥。
  • 了解Azure如何使用 双倍加密来缓解加密数据带来的威胁。
  • 了解 Microsoft 如何确保涉及硬件和固件建设、集成、上线和修复流程的主机平台完整性和安全性