Citrix ADC

MPX 9700/10500/12500/15500 FIPS 设备

由美国国家标准和技术研究所发布的联邦信息处理标准 (FIPS) 规定了安全系统中使用的加密模块的安全要求。Citrix ADC FIPS 设备符合该标准的第二个版本,FIPS 140-2。

注: 从此以后,所有提到 FIPS 的内容都意味着 FIPS-140-2。

FIPS 设备配备了防篡改(防篡改)加密模块,并在 MPX 9700/10500/12500/15500 FIPS 设备上配备了一个 Cavium CN1620-NFBE3-2.0-G,旨在符合 FIPS 140-2 级 2 规范的要求。关键安全参数 (CSP)(主要是服务器的私钥)安全地存储和生成在加密模块(也称为硬件安全模块 (HSM))中。CSP 永远不会在 HSM 边界之外访问。只有超级用户 (nsroot) 可以对存储在 HSM 中的密钥执行操作。

下表总结了标准 Citrix ADC 和 Citrix ADC FIPS 设备之间的差异。

设置 Citrix ADC 设备 Citrix ADC FIPS 设备
密钥存储 在硬盘上 在 FIPS 卡上
密码支持 所有密码 FIPS 批准的密码
访问密钥 从硬盘 无法访问

配置 FIPS 设备涉及在完成通用配置过程后立即配置 HSM。然后,您可以创建或导入 FIPS 密钥。创建 FIPS 密钥后,您应该将其导出以进行备份。您可能还需要导出 FIPS 密钥,以便将其导入到其他设备。例如,在高可用性 (HA) 设置中配置 FIPS 设备需要在完成标准 HA 设置后立即将 FIPS 密钥从主节点传输到辅助节点。

您可以将 FIPS 卡上的固件版本从 4.6.0 升级到 4.6.1,并且可以重置已锁定的 HSM 以防止未经授权的登录。Citrix ADC FIPS 设备上仅支持经 FIPS 批准的密码。

HSM 配置

必须先完成初始硬件配置,然后才能配置 Citrix ADC FIPS 设备的 HSM。有关 MPX 设备的更多信息,请参阅初始配置。有关 SDX 设备的信息,请单击此处

配置 Citrix ADC FIPS 设备的 HSM 会擦除 HSM 上的所有现有数据。要配置 HSM,您必须以超级用户(nsroot 帐户)身份登录到设备。HSM 已预配置为安全官员 (SO) 密码和用户密码的默认值,您可以使用它们配置 HSM 或重置锁定的 HSM。密码允许的最大长度为 14 个字母数字字符。不允许使用符号。

重要提示: 如果不首先 重置 FIPS 卡并重新启动 MPX FIPS 设备,请勿执行 set ssl fips 命令。

尽管 FIPS 设备可以与默认密码值一起使用,但您应在使用该设备之前对其进行修改。仅当您以超级用户身份登录到设备并指定 SO 密码和用户密码时,才能配置 HSM。

重要提示: 由于安全限制,设备不提供检索 SO 密码的方法。安全地存储密码副本。如果您需要重新初始化 HSM,则需要将此密码指定为旧的 SO 密码。

在初始化 HSM 之前,您可以升级到软件的最新版本。要升级到最新版本,请参阅升级或降级系统软件

升级后,验证是否已在设备上成功创建 /nsconfig/fips 目录。

使用 CLI 在 MPX 9700/10500/12500/15500 FIPS 设备上配置 HSM

以超级用户身份登录设备并完成初始配置后,在命令提示符下键入以下命令来配置 HSM 并验证配置:

show ssl fips

reset ssl fips

reboot

set ssl fips -initHSM Level-2 <newSOpassword> <oldSOpassword> <userPassword> [-hsmLabel <string>]

save ns config

reboot

show ssl fips

示例:

show fips

    FIPS Card is not configured
    Done
    reset fips
    reboot
    Are you sure you want to restart NetScaler (Y/N)? [N]:y

    set ssl fips -initHSM Level-2 sopin12345 so12345 user123 -hsmLabel cavium

    This command will erase all data on the FIPS card. You must save the configuration

    (saveconfig) after executing this command.


    Do you want to continue?(Y/N)y
    Done

    save ns config

    reboot

    Are you sure you want to restart NetScaler (Y/N)? [N]:y

    show fips

            FIPS HSM Info:
    HSM Label              : Citrix ADC FIPS
    Initialization         : FIPS-140-2 Level-2
    HSM Serial Number      : 2.1G1008-IC000021
    HSM State              : 2
    HSM Model              : NITROX XL CN1620-NFBE
    Firmware Version       : 1.1
    Firmware Release Date  : Jun04,2010
    Max FIPS Key Memory    : 3996
    Free FIPS Key Memory   : 3994
    Total SRAM Memory      : 467348
    Free SRAM Memory       : 62564
    Total Crypto Cores      : 3
    Enabled Crypto Cores    : 1
    Done

    Note: If you upgrade the firmware to version 2.2, the firmware release date is replaced with the firmware build.



    > show fips

    FIPS HSM Info:

    HSM Label                : Citrix ADC FIPS
    Initialization              : FIPS-140-2 Level-2
    HSM Serial Number    : 3.0G1235-ICM000264
    HSM State                : 2
    HSM Model               : NITROX XL CN1620-NFBE
    Hardware Version       : 2.0-G
    Firmware Version        : 2.2
    Firmware Build           : NFBE-FW-2.2-130009
    Max FIPS Key Memory : 3996
    Free FIPS Key Memory : 3958
    Total SRAM Memory    : 467348
    Free SRAM Memory     : 50524
    Total Crypto Cores      : 3
    Enabled Crypto Cores  : 3
    Done

在 MPX 9700/10500/12500/15500 FIPS 设备上配置 HSM 通过使用 GUI

  1. 导航到流量管理 > SSL > FIPS。

  2. 在详细信息窗格中的 FIPS 信息选项卡上,单击重置 FIPS。

  3. 在导航窗格中,单击系统。

  4. 在详细信息窗格中,单击重新启动。

  5. 在详细信息窗格中的 FIPS 信息选项卡上,单击初始化 HSM。

  6. 在“初始化 HSM”对话框中,为以下参数指定值:

    • 保安人员 (SO) 密码*— 新的 SO 密码
    • 旧 SO 密码*— 旧 SO 密码
    • 用户密码*— 用户密码
    • 级别 — initHSM(当前设置为级别 2,无法更改)
    • HSM 标签 — hsmLabel

    *必填参数

  7. 单击确定。

  8. 在详细信息窗格中,单击保存。

  9. 在导航窗格中,单击系统。

  10. 在详细信息窗格中,单击重新启动。

  11. 在 FIPS HSM 信息下,验证您刚刚配置的 FIPS HSM 显示的信息是否正确。

创建和传输 FIPS 密钥

配置 FIPS 设备的 HSM 后,您可以创建 FIPS 密钥。FIPS 密钥在设备的 HSM 中创建。然后,您可以将 FIPS 密钥导出到设备的 CompactFlash 卡作为安全备份。通过导出密钥,您还可以通过将其复制到另一个设备的/闪存,然后将其导入该设备的 HSM 来传输密钥。在导出和传输密钥之前,必须在两个独立节点之间启用 SIM。在 HA 设置中,如果其中一个节点被替换为新设备,则必须在此新设备和 HA 设置的现有设备之间启用 SIM,然后才能导出或导入 FIPS 密钥。

您可以导入现有的 FIPS 密钥或导入外部密钥作为 FIPS 密钥,而不是创建 FIPS 密钥。如果要在 MPX 9700/10500/12500/15500 FIPS 设备上添加 2048 位的证书密钥对,请确保您具有正确的证书和密钥对。

注意: 如果您正在计划 HA 设置,请确保在创建 FIPS 密钥之前在 HA 设置中配置 FIPS 设备。

创建 FIPS 密钥

创建 FIPS 密钥前,确保已配置 HSM。

您必须指定密钥类型(RSA 或 ECDSA),并指定 ECDSA 密钥的曲线。

通过使用 GUI 创建 FIPS 密钥

  1. 导航到流量管理 > SSL > FIPS。
  2. 在详细信息窗格中的 FIPS 密钥选项卡上,单击添加。
  3. 在“创建 FIPS 密钥”对话框中,为以下参数指定值:

    • FIPS 密钥名称*— fipsKeyName
    • 模量*— 模量
    • 指数* — 指数

    *必填参数

  4. 单击 创建,然后单击 关闭。
  5. 在 FIPS 密钥选项卡上,验证您刚刚创建的 FIPS 密钥显示的设置是否正确。

使用 CLI 创建 FIPS 密钥

在命令提示符下,键入以下命令以创建 FIPS 密钥并验证设置:

create ssl fipsKey <fipsKeyName> -modulus <positive_integer> [-exponent ( 3 | F4 )]

show ssl fipsKey [<fipsKeyName>]

示例:

    create fipskey Key-FIPS-1 -keytype RSA -modulus 2048 -exponent 3

    show ssl fipsKey Key-FIPS-1

                FIPS Key Name: Key-FIPS-1 Key Type: RSA Modulus: 2048   Public Exponent: F4 (Hex: 0x10001)

导出 FIPS 密钥

Citrix 建议您创建在 FIPS HSM 中创建的任何密钥的备份。如果 HSM 中的密钥被删除,则无法再次创建相同的密钥,并且所有与其关联的证书都将无用。

除了将密钥导出为备份之外,您可能需要导出密钥才能传输到另一台设备。

以下过程提供了有关将 FIPS 密钥导出到设备的 CompactFlash 上的 /nsconfig/ssl 文件夹以及使用强非对称密钥加密方法保护导出密钥的说明。

使用 CLI 导出 FIPS 密钥

在命令提示窗口中,键入:

export ssl fipsKey <fipsKeyName> -key <string>

示例:

export fipskey Key-FIPS-1 -key Key-FIPS-1.key

使用 GUI 导出 FIPS 密钥

  1. 导航到流量管理 > SSL > FIPS

  2. 在详细信息窗格中的 FIPS 密钥选项卡上,单击导出。

  3. 在“将 FIPS 键导出到文件”对话框中,为以下参数指定值:

    • FIPS 密钥名称*— fipsKeyName
    • 文件名*— 键(要将文件放在默认位置以外的位置,您可以指定完整路径或单击“浏览”按钮并导航到某个位置。)

    *必填参数

  4. 单击导出,然后单击关闭。

导入现有的 FIPS 密钥

要将现有 FIPS 密钥与 FIPS 设备结合使用,您需要将 FIPS 密钥从设备的硬盘传输到其 HSM。

注意: 要避免导入 FIPS 密钥时出现错误,请确保导入的密钥的名称与创建时的原始密钥名称相同。

通过使用 CLI 在 MPX 9700/10500/12500/15500 FIPS 设备上导入 FIPS 密钥

在命令提示符下,键入以下命令以导入 FIPS 密钥并验证设置:

-  import ssl fipsKey <fipsKeyName> -key <string> -inform SIM -exponent (F4 | 3)
-  show ssl fipskey <fipsKeyName>

示例:

import fipskey Key-FIPS-2 -key Key-FIPS-2.key -inform SIM -exponent F4
show ssl fipskey key-FIPS-2
FIPS Key Name: Key-FIPS-2 Modulus: 2048   Public Exponent: F4 (Hex value 0x10001)

通过使用 GUI 导入 FIPS 密钥

  1. 导航到流量管理 > SSL > FIPS

  2. 在详细信息窗格中的 FIPS 密钥选项卡上,单击导入。

  3. 在“导入为 FIPS 密钥”对话框中,选择 FIPS 密钥文件并为以下参数设置值:

    • FIPS 密钥名称*
    • 密钥文件名称* — 要将文件放在默认位置以外的位置,您可以指定完整路径或单击“浏览”并导航到某个位置。
    • 指数*

    *必填参数

  4. 单击 Import(导入),然后单击 Close(关闭)。

  5. 在 FIPS 密钥选项卡上,验证您刚刚导入的 FIPS 密钥显示的设置是否正确。

导入外部密钥

除了传输在 Citrix ADC 设备的 HSM 中创建的 FIPS 密钥外,还可以将外部私钥(例如在标准 Citrix ADC、Apache 或 IIS 上创建的私钥)传输到 FIPS Citrix ADC 设备。外部密钥是通过使用 OpenSSL 等工具在 HSM 之外创建的。将外部密钥导入 HSM 之前,请将其复制到 /nsconfig/SSl 下的设备闪存驱动器。

在 MPX 9700/10500/12500/15500 FIPS 设备上,导入外部密钥时不需要导入 ssl fipskey 命令中的-指数参数。导入密钥时会自动检测到正确的公共指数,并忽略-指数参数的值。

Citrix ADC FIPS 设备不支持具有 3 或 F4 以外的公共指数的外部密钥。

您不需要在 MPX 9700/10500/12500/15500 FIPS 设备上的包装密钥。

您不能将外部加密的 FIPS 密钥直接导入到 MPX 9700/10500/12500/15500 FIPS 设备。要导入密钥,您需要先解密密钥,然后导入密钥。要解密密钥,请在 shell 提示符处键入:

openssl rsa -in <EncryptedKey.key> > <DecryptedKey.out>

注意: 如果将 RSA 密钥导入为 FIPS 密钥,Citrix 建议您从设备中删除 RSA 密钥,出于安全考虑。

通过使用 CLI 将外部密钥作为 FIPS 密钥导入到 MPX 9700/10500/12500/15500 FIPS 设备

  1. 将外部密钥复制到设备的闪存驱动器。
  2. 如果密钥是 .pfx 格式,则必须先将其转换为 PEM 格式。在命令提示窗口中,键入:

    convert ssl pkcs12 <output file> -import -pkcs12File <input .pfx file name> -password <password>
    
  3. 在命令提示符下,键入以下命令以将外部密钥导入为 FIPS 密钥并验证设置:

    import ssl fipsKey <fipsKeyName> -key <string> -informPEM
    show ssl fipskey<fipsKeyName>
    

示例:

convert ssl pkcs12 iis.pem -password 123456 -import -pkcs12File iis.pfx

import fipskey Key-FIPS-2 -key iis.pem -inform PEM

show ssl fipskey key-FIPS-2

FIPS Key Name: Key-FIPS-2 Modulus: 0   Public Exponent: F4 (Hex value 0x10001)

通过使用 GUI 将外部密钥作为 FIPS 密钥导入到 MPX 9700/10500/12500/15500 FIPS 设备

  1. 如果密钥是 .pfx 格式,则必须先将其转换为 PEM 格式。

    1. 导航到 流量管理 > SSL 。
    2. 在详细信息窗格的工具下,单击导入 PKCS #12。
    3. 在“导入 PKCS12 文件”对话框中,设置以下参数:
      • 输出文件名*
      • PKCS12 文件名* — 指定 .pfx 文件名。
      • 导入密码*
      • 编码格式 * 必填参数
  2. 导航到流量管理 > SSL > FIPS

  3. 在详细信息窗格中的 FIPS 密钥选项卡上,单击导入。

  4. 在“导入为 FIPS 键”对话框中,选择 PEM 文件,并为以下参数设置值:

    • FIPS 密钥名称*
    • 密钥文件名称* — 要将文件放在默认位置以外的位置,您可以指定完整路径或单击“浏览”并导航到某个位置。

    *必填参数

  5. 单击 Import(导入),然后单击 Close(关闭)。

  6. 在 FIPS 密钥选项卡上,验证您刚刚导入的 FIPS 密钥显示的设置是否正确。

MPX 9700/10500/12500/15500 FIPS 设备