Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

使用 GCP KMS (HSM) 的 vSRX 虚拟防火墙 3.0 保护数据

本主题介绍 vSRX 虚拟防火墙 3.0 与 GCP(Google Cloud Platform)密钥管理服务 (KMS) 的集成,以保护机密信息(如必须存储在 FIPS 边界内的私钥)的安全。GCP 为 vSRX 虚拟防火墙 3.0 等应用程序使用的 KMS 提供支持,以保护和管理加密密钥。

概述

Junos 中提供了一个包装库,使 VPN 和其他应用程序(如 mgd)能够与基于云的 KMS 集成并与之通信。此包装器库使用 PKCS#11 API 提供密钥管理服务 (KMS) 的接口。Junos 应用程序使用此包装库并更新了对 GCP 的支持,以便与 KMS 通信。为了支持 PKCS#11 API,GCP 团队为瞻博网络提供了一个库,充当 Junos 应用程序和云 KMS 服务之间的中介。此库作为 vSRX 虚拟防火墙 3.0 Junos 软件包的一部分添加。您无需执行任何操作即可启用库。

启用 KMS 服务后,您需要使用 request security hsm master-encryption-password set plain-text-password 命令指定主加密密钥 (MEK)。 然后,vSRX 虚拟防火墙 3.0 会在 KMS 中创建 RSA 2048 密钥对主绑定密钥 (MBK),并使用 KMS 中的 MBK 加密 MEK。然后,MEK 用作加密静态数据的密钥,例如配置哈希、私钥对文件和主密码文件。

使用 GCP KMS 的 vSRX 虚拟防火墙具有以下限制:

  • vSRX 虚拟防火墙使用管理接口访问 KMS 服务。如果未启用或配置管理接口,则无法从 vSRX 虚拟防火墙使用 KMS 服务。

  • 启用 HSM 后,SSL 代理、Sky-ATP、IDP 签名下载或任何其他使用基于证书的连接的模块将不起作用。

  • 具有密钥 ID 的 RSA 密钥对只能生成一次。它不能用于其他密钥对以生成或创建请求、已删除的密钥 ID 或其他新密钥请求。

图 1 显示了 vSRX 虚拟防火墙 3.0 中的密钥清单。

图 1:vSRX 虚拟防火墙 3.0 Supply of Keys in vSRX Virtual Firewall 3.0 中的密钥供应

支持在 GCP 云 KMS 中生成公钥基础设施 (PKI) 密钥对,并且任何需要所生成密钥对的私钥的请求(如 RSA SIGN)都将发送到 GCP 云 KMS。具体而言,以下操作已卸载到 KMS:

  • 在设备上运行的 PKI 守护程序 (PKID) 中创建证书签名请求 (CSR) 期间进行私钥签名。

  • 在验证从 PKID 中的 CA 服务器收到的证书期间进行私钥签名。

  • 在密钥管理守护程序 (KMD) 进行 IKE 协商期间进行私钥签名,KMD(设备上运行的 IKE 守护程序)。

所有 VPN 应用程序(PKID 和 KMD)都将使用包装库与 KMS 服务通信,以在 RSA 密钥上创建、管理和执行加密操作。

图 2 说明了 VPN 应用程序如何访问 KMS 服务。

图 2:访问 KMS 服务的 VPN Applications Accessing KMS Service VPN 应用程序

您可以使用 GCP KMS 通过 vSRX 虚拟防火墙 3.0 保护静态数据并实现配置完整性。执行本主题中给出的步骤,为 vSRX 虚拟防火墙 3.0 设置 GCP 云 KMS 服务和密钥环。

密钥环是 KMS 服务中的一个组件,Junos 应用程序创建的密钥将驻留在该组件中。密钥环用于整理特定 Google Cloud 营业地点的密钥,并允许您管理对密钥组的访问控制。密钥环的名称在 Google Cloud 项目中不必唯一,但在给定位置必须是唯一的。创建后,无法删除密钥环。钥匙圈不会产生存储成本。

将 GCP KMS 与 vSRX 虚拟防火墙 3.0 集成

启用和设置 vSRX 虚拟防火墙 3.0 以访问 GCP 上的 KMS。

  1. 在 GCP 中启动 vSRX 虚拟防火墙 3.0 实例。请参阅 在 Google Cloud Platform 上部署 vSRX 虚拟防火墙在 Google Cloud Platform 中部署 vSRX

  2. 为 vSRX 虚拟防火墙 3.0 设置 GCP KMS。

    在启用 vSRX 虚拟防火墙 3.0 与 KMS 服务通信之前,您需要确保 vSRX 虚拟防火墙 3.0 实例已经过身份验证并有权访问 GCP 云 KMS 服务。要设置 GCP 环境或帐户,请执行以下操作:

    1. 创建服务帐户。

      服务帐号是一种特殊类型的 Google 帐号,用于代表非人类用户(例如虚拟机 (VM),这些用户需要进行身份验证并获得访问 Google API 中数据的授权。

      vSRX 虚拟防火墙 3.0 使用 GCP 提供的 PKCS#11 库访问云 KMS 服务。库使用服务帐户使用服务帐户凭据进行身份验证。

      1. 要创建新的服务帐户以用于 vSRX 虚拟防火墙 3.0 以访问云 KMS,请参阅

        身份验证入门。如果您已有服务帐户,请参阅 作为服务帐户进行身份验证

      2. 为服务账户创建 IAM 角色以启用对 vSRX 虚拟防火墙 3.0 实例的访问。

        设置服务账户后,向账户授予一个或多个具有以下 IAM 权限的角色:

        • cloudkms.cryptoKeys.list on all configure KeyRings.

        • cloudkms.cryptoKeyVersions.list on all CryptoKeys in each Configuration KeyRing。

        • cloudkms.cryptoKeyVersions.viewPublicKey,用于所有已配置的密钥圈中包含的所有非对称密钥。

        • cloudkms.cryptoKeyVersions.use to Decrypt 或 cloudkms.cryptoKeyVersions.use 对要用于解密或签名的任何密钥进行签名。

        • cloudkms.cryptoKeys.create 如果您打算创建密钥。

        • cloudkms.cryptoKeyVersions.destroy 如果您打算销毁密钥。

        您还可以使用下面列出的预定义 IAM 角色组来授予服务账户所需的权限。有关与上述每个组关联的角色的详细信息,请参阅 权限和角色

      3. 从 GUI 或使用 GCP CLI 将 IAM 角色附加到 vSRX 虚拟防火墙 3.0 实例。

        如上所述,创建服务账户并授予所需的 IAM 角色后,您可以使用此服务账户创建新的 vSRX 虚拟防火墙 3.0 实例,也可以将现有的 vSRX 虚拟防火墙 3.0 实例设置为使用该服务账户。

        有关更多信息,请参阅 为实例创建和启用服务帐户

      4. 创建钥匙圈

        为 vSRX 虚拟防火墙 3.0 实例授予与 KMS 通信所需的访问权限后,您需要创建密钥环,这是 KMS 服务中的一个组件,vSRX 虚拟防火墙 3.0 创建的密钥将驻留在该组件中。

        密钥环可以使用 gcloud 或从控制台创建。有关详细信息,请参阅 创建密钥环

        .

        此外,GCP KMS 不允许使用之前已使用和创建的 ID 创建密钥。GCP KMS 也不允许删除现有密钥和创建另一个同名密钥。

        注意:

        可以在一个特定区域、双区域或多区域位置创建密钥环。位置是指将在其中保存密钥的数据中心。如果使用一个特定区域键,则仅位于该位置。对于双区域,密钥将复制到其他区域,这同样意味着多区域位置。有关更多信息,请参阅 云 KMS 位置

        创建密钥环后,请记下密钥环的资源 ID,因为使用 CLI 输入到 vSRX 虚拟防火墙 3.0 时需要该资源 ID。vSRX 虚拟防火墙 3.0 上的 GCP PKCS#11 KMS 库将使用此资源 ID 与 KMS 通信。在密钥环中创建的密钥名称可以包含字母、数字、下划线 (_) 和连字符 (-)。

  3. 使用命令提供 request security hsm set gcp project <name_of_project> location <location_of_key_ring> key-ring <name_of_key_ring> GCP 密钥环资源信息。有关更多信息,请参阅 获取云 KMS 资源 ID

  4. 启用 KMS 服务后,您需要使用 vSRX 虚拟防火墙 3.0 上的命令指定 request security hsm master-encryption-password set plain-text-password 主加密密钥 (MEK)。

    指定 MEK 后,vSRX 虚拟防火墙 3.0 将在 KMS 中创建 RSA 2048 密钥对 (MBK),并使用 KMS 中的主绑定密钥 (MBK) 加密 MEK。然后,MEK 用作加密静态数据的密钥,例如配置哈希、私钥对文件和主密码文件。

  5. 更改主加密密码。

    如果要更改主加密密码,则可以从操作模式运行 request security hsm master-encryption-password set plain-text-password 命令:

    注意:

    建议在更改主加密密码时不要进行任何配置更改。

    系统检查是否已配置主加密密码。如果配置了主加密密码,则系统会提示您输入当前的主加密密码。

    输入的主加密密码将根据当前主加密密码进行验证,以确保这些主加密密码匹配。如果验证成功,系统将提示您以纯文本形式输入新的主加密密码。系统将要求您输入密钥两次以验证密码。

    然后,系统继续使用新的主加密密码重新加密敏感数据。您必须等待此重新加密过程完成,然后才能再次尝试更改主加密密码。

    如果加密的主加密密码文件丢失或损坏,系统将无法解密敏感数据。系统只能通过以明文形式重新导入敏感数据并重新加密来恢复。

  6. 使用命令检查 show security hsm status HSM 状态以检查 KMS 是否已启用且可访问,还显示正在使用的密钥环的资源 ID、主绑定密钥 (MBK) 和主加密密钥 (MEK) 状态。

验证 HSM 的状态

目的

检查与 HSM 的连接。

行动

您可以使用命令 show security hsm status 验证 HSM 的状态。将显示以下信息:

  • 如果 HSM 已启用且可访问或禁用

  • 是否在 HSM 中创建主绑定密钥(RSA 密钥对)

  • 是否配置了主加密密钥 - 主加密密码状态(设置或未设置)

  • 云供应商信息

显示安全 HSM 状态

语法

发布信息

在 Junos OS 19.4R1 版中引入的命令。

描述

显示硬件安全模块 (HSM) 的当前状态。您可以使用此 show security hsm status 命令检查 HSM 的状态、主绑定密钥、主加密密码和云供应商详细信息。

选项

此命令没有选项。

所需权限级别

安全

输出字段

表 1 列出了命令 show security hsm status 的输出字段。

表 1:显示安全 HSM 状态输出字段

字段名称

字段说明

Enabled

指定是启用还是禁用 HSM。

Master Binding Key

显示 HSM 的主绑定密钥状态,无论是否在 HSM 中创建。HSM 生成加密密钥并对其进行加密,以便这些密钥只能由 HSM 解密。此过程称为绑定。每个 HSM 都有一个主绑定密钥,也称为存储根密钥。

Master Encryption Key

显示主加密配置状态,无论是否设置。配置的加密数据和哈希由使用 Microsoft 密钥保管库 (HSM) 服务的 vSRX 虚拟防火墙保护。

Cloud vendor Details

显示特定于云供应商的详细信息。

示例输出

显示安全 HSM 状态(vSRX 虚拟防火墙最初启动但未启用 GCP KMS 功能时输出的 HSM 状态命令)

显示安全 HSM 状态(与 GCP KMS 成功集成后的 HSM 状态命令输出)

请求安全 HSM 主加密密码

语法

发布信息

在 Junos OS 19.4R1 版中引入的命令。

描述

使用此命令设置或替换密码(纯文本)。

选项

plain-text-password

设置或替换密码(纯文本)。

所需权限级别

维护

输出字段

输入此命令时,系统会提供有关请求状态的反馈。

示例输出

请求安全 HSM 主加密密码设置纯文本密码