联邦信息处理标准 (Federal Information Processing Standard, FIPS) 140-2 是由美国国家标准与技术研究院 (National Institute of Standards and Technology, NIST) 制订的美国和加拿大政府标准,其中定义了加密模块的安全标准。

FIPS 140-2 标准指定并验证安全系统中保护敏感信息的模块的加密和运行要求。这些模块采用 NIST 批准的安全功能,例如加密算法、密钥大小、密钥管理和身份验证技术。

有关符合 FIPS 140-2 的算法列表,请参见:

在 FIPS 140-2 标准中具有 4 个安全级别,每个级别具有与工具加密设计和实施有关的不同领域。以下是这些安全级别:

  • 级别 1:它定义加密模块中的基本安全功能的标准,并启用 FIPS 批准的密码套件。

  • 级别 2:它定义加密模块的篡改证据物理安全功能和基于角色的身份验证的标准。篡改证据物理安全功能包括提供篡改证据的涂层、密封或防撬锁。

  • 级别 3:它定义防篡改物理安全功能和基于身份的身份验证的标准。硬件设备的内部 HSM 必须具有防篡改功能,例如密封环氧树脂盖,如果去除,则会导致设备无法使用并使密钥无法访问。

  • 级别 4:它要求使用篡改检测电路检测任何设备渗透,并在发生篡改时擦除设备的内容。

VMware 专门对 NSX Advanced Load Balancer 组件中使用的 OpenSSL FIPS 对象模块 v2.0.20-vmw 进行了 FIPS 140-2 验证。

OpenSSL FIPS 对象模块 v2.0.20-vmw 是一种通用的加密模块,它为 VMware 产品和组件提供 FIPS 批准的加密功能和服务。该模块已通过 FIPS 140-2 安全级别 1 验证,并获得了 CMVP 颁发的证书 3550。

注:

安全级别 2-4 是各种物理安全级别特定的,例如:

  • 篡改证据物理安全功能:它包括提供篡改证据的涂层、密封或防撬锁。

  • 防篡改物理安全功能:它包括密封环氧树脂盖等功能以保护硬件设备。

这些安全级别不适用于软件解决方案,其中,使用硬件运行软件解决方案。

有关更多信息,请参见 VMware 中的 FIPS 文档

NSX Advanced Load Balancer 的 FIPS 合规性

NSX Advanced Load Balancer 在整个系统中支持 FIPS 模式,例如,

  • 控制平面,由控制器或控制器集群组成。

  • 数据平面,由服务引擎 (SE) 组成。

NSX Advanced Load Balancer 使用符合 FIPS 140-2 级别 1 加密的 FIPS 容器 2.0.20-vmw

支持的环境

在以下情况下,支持 FIPS:

  • 控制器集群部署在 VMware vSphere 环境中。

  • SE 部署在 VMware vSphere 环境中,具体来说,环境具有以下云连接器:

    • VMware vCenterNSX-T Cloud

    • VMware vSphere 上运行的无 Orchestrator 云。

单控制器部署以及基于控制器集群的部署支持 FIPS。

启用 FIPS 模式 - 注意事项

在为 NSX Advanced Load Balancer 激活 FIPS 模式时,请考虑以下事项:

  • 只能在没有服务引擎的部署上激活 FIPS 模式。

  • FIPS 模式是在整个系统上激活的,无论是在控制器上还是在集群的所有节点上。也会在所有 SE 上激活 FIPS。

  • 没有为特定组件(仅控制器、仅 SE 或特定 SE 组)有选择地启用 FIPS 的选项。

  • NSX Advanced Load Balancer 系统处于 FIPS 模式后,您无法停用 FIPS 模式。

为单控制器部署启用 FIPS 模式

以下是为单控制器部署激活 FIPS 模式的步骤:

  1. 确保控制器没有部署任何 SE。建议停用所有虚拟服务,并删除任何现有的 SE。

  2. 在激活 FIPS 之前,创建控制器集群。

  3. 将相同控制器基本版本的 controller.pkg 文件(升级软件包)上载到控制器节点中。例如,如果使用的控制器版本为 20.1.5,请将 20.1.5 controller.pkg 上载到控制器中。

    有关如何上载的分步说明,请参见《VMware NSX Advanced Load Balancer 管理指南》中的“NSX Advanced Load Balancer 灵活升级”。

  4. 通过 CLI 激活 FIPS 模式:

    [admin:avi-cntrl]: > system compliancemode fips_mode
     +----------------------+------------------------------------------+
     | Field                | Value                                    |
     +----------------------+------------------------------------------+
     | fips_mode            | True                                     |
     | common_criteria_mode | False                                    |
     | force                | False                                    |
     | details[1]           | 'Compliance mode transition started. Use 'show upgrade status' to check the stat                            |
     |                      | us.'                                     |
     +----------------------+------------------------------------------+ 

控制器重新引导并以 FIPS 模式恢复联机。

为控制器集群部署启用 FIPS 模式

  1. 确保控制器没有部署任何 SE。建议停用所有虚拟服务,并删除任何可用的 SE。

  2. 在启用 FIPS 之前,创建控制器集群。

  3. 将相同控制器基本版本的 controller.pkg 文件(升级软件包)上载到主节点中。例如,如果使用的控制器版本为 20.1.5,请将 20.1.5 版本的 controller.pkg 上载到主节点中。

    有关如何上载的分步说明,请参见《VMware NSX Advanced Load Balancer 管理指南》中的 NSX Advanced Load Balancer 灵活升级

  4. 通过 CLI 启用 FIPS 模式:

    > system compliancemode fips_mode
    +----------------------+-------------------------------------------+
    | Field                | Value                                     |
    +----------------------+-------------------------------------------+
    | fips_mode            | True                                      |
    | common_criteria_mode | False                                     |
    | force                | False                                     |
    | details[1]           | 'Compliance mode transition started. Use 'show upgrade status' to check the stat                            |
    |                      | us.'                                      |
    +----------------------+-------------------------------------------+

控制器节点重新引导并以 FIPS 模式恢复联机。

验证 FIPS 模式

您可以使用以下命令验证是否成功激活 FIPS 模式:

[admin:avi-cntrl]: > show version controller
+-----------------+--------------------------------------+-------+------+
| Controller Name | Version                              | Patch | Fips |
+-----------------+--------------------------------------+-------+------+
| 100.65.32.101   | 20.1.5(5000) 2021-04-15 09:36:00 UTC | -     | True |
+-----------------+--------------------------------------+-------+------+
[admin:admin-ctrl-write]: > show version serviceengine
No results.
[admin:avi-cntrl]: > show version serviceengine
+--------------+--------------------------------------+-------+------+
| SE Name      | Version                              | Patch | Fips |
+--------------+--------------------------------------+-------+------+
| Avi-se-rencf | 20.1.5(5000) 2021-04-15 09:36:00 UTC | -     | True |
| Avi-se-nvlwj | 20.1.5(5000) 2021-04-15 09:36:00 UTC | -     | True |
+--------------+--------------------------------------+-------+------+

灾难恢复注意事项

将配置还原到新的控制器集群:

只能在激活了 FIPS 模式的控制器上执行从激活了 FIPS 的部署中还原 NSX Advanced Load Balancer 配置的操作。在执行配置导入之前,请确保目标控制器或控制器集群启用了 FIPS。

将新的控制器节点添加到集群中:

控制器集群要求所有节点激活了 FIPS。如果需要将一个控制器节点替换为新的控制器节点,请确保新节点启用了 FIPS,然后再将其添加到控制器集群中。

升级启用了 FIPS 模式的部署:

在 FIPS 模式下进行的升级和修补程序升级采用与非 FIPS 部署相同的过程。FIPS 部署不需要考虑特殊的事项。

停用 FIPS 模式:

在启用后,不支持停用 FIPS 合规性模式。

在符合 FIPS 的模式下不可用的功能

NSX Advanced Load Balancer 中激活 FIPS 合规性时,将仅使用符合 FIPS 的加密算法。为了符合 FIPS 140-2 标准,以下不合规的模块将不可用:

  • RADIUS 运行状况监控器。

    注:

    支持作为 L4 应用程序的 RADIUS。

  • 在 BGP 中,为对等体设置 md5_secret

  • TLS v1.3 和 0-RTT(SSL 配置文件中的 enable_early_data 选项)。

  • 硬件安全模块(HSM 设备),如 Safenet 和 CloudHSM。

  • 1024 RSA 密钥

  • 根据 VMware 的 OpenSSL FIPS 对象模块不支持的椭圆曲线 (Elliptic Curve, EC) 集。

  • 异步 SSL(这是 SE 组中的一项功能,它与 HSM 配置结合使用。在不允许使用 HSM 时,该功能是不相关的)。

  • L7 边带

  • 使用 NTML 身份验证的 HTTP(S) 运行状况监控器。

  • HTTP Cookie 持久性密钥轮换。

  • 不支持将 flushdb.sh 用于控制器恢复场景。建议使用 clean_cluster.py。必须在 NSX Advanced Load Balancer 支持团队的监督下使用这两个脚本。

注:

可以在符合 FIPS 的模式下使用以下功能。

  • 硬件安全模块(HSM 设备),如 Safenet 和 CloudHSM

  • 异步 SSL(这是 SE 组中的一项功能,它与 HSM 配置结合使用。在不允许使用 HSM 时,该功能是不相关的)。