MPX 14000 FIPS 设备
重要:
MPX 9700/10500/12500/15500 FIPS 平台已经到达使用寿命的终点。
NetScaler MPX 14000 FIPS 和 NetScaler MPX 9700/10500/12500/15500 FIPS 设备的配置步骤是不同的。MPX 14000 FIPS 设备不使用固件版本 2.2。在 MPX 9700 平台的硬件安全模块 (HSM) 上创建的 FIPS 密钥不能传输到 MPX 14000 平台的 HSM。另一种方式也不受支持。但是,如果您已将 RSA 密钥作为 FIPS 密钥导入,则可以将 RSA 密钥复制到 MPX 14000 平台。然后将其作为 FIPS 密钥导入。只支持 2048 位和 3072 位密钥。
MPX 14000 FIPS 或 SDX 14000 FIPS 平台不支持Citrix ADC 下载页面中“Citrix ADC 版本 12.1-FIPS”和“Citrix ADC 版本 12.1-ndCPP”下列出的固件版本。这些平台可以使用下载页面上提供的其他最新 Citrix ADC 固件版本。
FIPS 设备配备了防篡改加密模块 Cavium CNN3560-NFBE-G,设计符合 FIPS 140-2 级 3 规范(自版本 12.0 内部版本 56.x 起)。关键安全参数 (CSP),主要是服务器的私钥,在加密模块(也称为 HSM)中安全地存储和生成。CSP 永远不会在 HSM 边界之外访问。只有超级用户 (nsroot
) 可以对存储在 HSM 中的密钥执行操作。
在配置 FIPS 设备之前,必须检查 FIPS 卡的状态,然后初始化该卡。创建 FIPS 密钥和服务器证书,并添加任何其他 SSL 配置。
有关所支持的 FIPS 密码的信息,请参阅FIPS 批准的算法和密码。
有关在 HA 设置中配置 FIPS 装置的信息,请参阅在 HA 设置中在设备上配置 FIPS。
限制
- MPX FIPS 设备的后端不支持使用 SSLv3 协议进行 SSL 重新协商。
- 不支持 1024 位和 4096 位密钥以及指数值 3。
- 不支持 4096 位服务器证书。
- 不支持 4096 位客户端证书(如果在后端服务器上启用了客户端身份验证)。
配置 HSM
在 MPX 14000 FIPS 设备上配置 HSM 之前,请检查 FIPS 卡的状态以验证驱动程序是否已正确加载。然后初始化卡。
在命令提示符下,键入:
show fips FIPS Card is not configured
如果驱动程序未正确加载,则会显示消息 “错误:不允许操作-系统中没有 FIPS 卡”。
初始化 FIPS 卡
必须重新启动设备三次才能正确初始化 FIPS 卡。
重要
- 验证目
/nsconfig/fips
录是否已在设备上成功创建。- 在第三次重新启动设备之前,请勿保存配置。
执行以下步骤初始化 FIPS 卡:
- 重置 FIPS 卡 (
reset fips
)。 - 重新启动设备 (
reboot
)。 为分区 0 和 1 设置安全管理人员密码,为分区设置用户密码 (
set fips -initHSM Level-2
)。-hsmLabel NSFIPS 注意:set 或 reset 命令需要 60 秒以上的时间才能运行。
- 保存配置 (
saveconfig
)。 - 验证主分区 (master_pek.key) 的密码加密密钥是否已在
/nsconfig/fips/
目录中创建。 - 重新启动设备 (
reboot
)。 - 验证默认分区 (default_pek.key) 的密码加密密钥是否已在
/nsconfig/fips/
目录中创建。 - 重新启动设备 (
reboot
)。 - 验证 FIPS 卡是否已启用 (
show fips
)。
使用 CLI 初始化 FIPS 卡
该set fips
命令初始化 FIPS 卡上的硬件安全模块 (HSM),并设置新的安全管理员密码和用户密码。
警告:此命令将擦除 FIPS 卡上的所有数据。在继续执行命令之前,系统会提示您。运行此命令之前和之后都需要重新启动才能应用更改。在运行此命令之后和重新启动设备之前保存配置。
在命令提示符下,键入以下命令:
reset fips reboot set fips -initHSM Level-2 so12345 so12345 user123 -hsmLabel NSFIPS 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
注意:运行set fips
命令时将显示以下消息:
This command will erase all data on the FIPS card. You must save the configuration (saveconfig) after executing this command. [Note: On MPX/SDX 14xxx FIPS platform, the FIPS security is at Level-3 by default, and the -initHSM Level-2 option is internally converted to Level-3] Do you want to continue?(Y/N)y saveconfig reboot reboot show fips FIPS HSM Info: HSM Label : NetScaler FIPS Initialization : FIPS-140-2 Level-3 HSM Serial Number : 3.1G1836-ICM000136 HSM State : 2 HSM Model : NITROX-III CNN35XX-NFBE Hardware Version : 0.0-G Firmware Version : 1.0 Firmware Build : NFBE-FW-1.0-48 Max FIPS Key Memory : 102235 Free FIPS Key Memory : 102231 Total SRAM Memory : 557396 Free SRAM Memory : 262780 Total Crypto Cores : 63 Enabled Crypto Cores : 63
创建 FIPS 密钥
您可以在 MPX 14000 FIPS 设备上创建 FIPS 密钥,或将现有 FIPS 密钥导入设备。MPX 14000 FIPS 设备仅支持 2048 位和 3072 位密钥以及 F4 的指数值(其值为 65537)。对于 PEM 密钥,不需要指数。验证 FIPS 密钥是否已正确创建。创建证书签名请求和服务器证书。最后,将证书密钥对添加到您的设备。
指定密钥类型(RSA 或 ECDSA)。对于 ECDSA 键,请仅指定曲线。支持使用曲线 P_256 和 P_384 创建 ECDSA 密钥。
注意:
不支持 1024 位和 4096 位密钥以及指数值 3。
使用 CLI 创建 FIPS 密钥
在命令提示符下,键入:
create ssl fipsKey -keytype ( RSA | ECDSA ) [-exponent ( 3 | F4 )] [-modulus ] [-curve ( P_256 | P_384 )]
示例 1:
创建fipsKey f1 -keytype RSA -modulus 2048 -exponent F4 show ssl fipskey f1 FIPS Key Name: f1 Key Type: RSA Modulus: 2048 Public Exponent: F4 (Hex: 0x10001)
示例 2:
> create fipskey f2 -keytype ECDSA -curve P_256 > sh fipskey f2 FIPS Key Name: f2 Key Type: ECDSA Curve: P_256
通过使用 GUI 创建 FIPS 密钥
- 导航到流量管理 > SSL > FIPS。
- 在详细信息窗格中的 FIPS 密钥选项卡上,单击添加。
在 “创建 FIPS 密钥” 对话框中,为以下参数指定值:
- FIPS 键名 *— FIPS 密钥名称
- 模数 *— 模量
- 指数 *— 指数
*必需的参数
- 单击“创建”,然后单击“关闭”。
- 在 FIPS 密钥选项卡上,验证为您创建的 FIPS 密钥显示的设置是否正确。
导入 FIPS 密钥
要将现有 FIPS 密钥与 FIPS 设备结合使用,您需要将 FIPS 密钥从设备的硬盘传输到其 HSM。
注意:为避免导入 FIPS 密钥时出现错误,请确保导入的密钥的名称与创建时的原始密钥名称相同。
使用 CLI 导入 FIPS 密钥
在命令提示符下,键入:
import ssl fipsKey -key [-inform ] [-wrapKeyName ] [-iv] -exponent F4 ]
示例:
import fipskey Key-FIPS-2 -key Key-FIPS-2.key -inform SIM -exponent F4 import fipskey Key-FIPS-2 -key Key-FIPS-2.key -inform PEM
通过运行show fipskey
命令验证 FIPS 密钥是否已正确创建或导入。
show fipskey 1) FIPS Key Name: Key-FIPS-2
通过使用 GUI 导入 FIPS 密钥
导航到流量管理 > SSL > FIPS。
在详细信息窗格的 FIPS 密钥选项卡上,单击导入。
在 “作为 FIPS 密钥导入” 对话框中,选择 FIPS 密钥文件并为以下参数设置值:
- FIPS 密钥名称*
- 键文件名 * — 要将文件放在默认位置以外的位置,请指定完整路径或单击浏览并导航到某个位置。
- 指数*
*必需的参数
单击Import(导入),然后单击Close(关闭)。
在 FIPS 密钥选项卡上,验证为导入的 FIPS 密钥显示的设置是否正确。
导出 FIPS 密钥
Citrix 建议您创建在 FIPS HSM 中创建的任何密钥的备份。如果删除 HSM 中的密钥,则无法再次创建同一个密钥,并且与该密钥关联的所有证书都将失去用处。
除了将密钥导出为备份之外,您可能需要导出密钥才能传输到另一台设备。
以下过程提供了有关将 FIPS 密钥导出到设备 CompactFlash 上的/nsconfig/ssl
文件夹以及使用强非对称密钥加密方法保护导出的密钥的说明。
使用 CLI 导出 FIPS 密钥
在命令提示符下,键入:
export ssl fipsKey -key
示例:
出口fipskey Key-FIPS-1关键Key-FIPS-1。关键< !--NeedCopy-->
使用 GUI 导出 FIPS 密钥
导航到流量管理 > SSL > FIPS。
在详细信息窗格中的 FIPS 密钥选项卡上,单击导出。
在 “将 FIPS 密钥导出到文件” 对话框中,为以下参数指定值:
- FIPS 键名 *— FIPS 密钥名称
- 文件名 *— 键(要将文件放置在默认位置以外的其他位置,可以指定完整路径或单击 “浏览” 按钮并导航到某个位置。)
*必需的参数
单击 “导出”,然后单击 “关闭”。
导入外部密钥
您可以传输在 Citrix ADC 设备的 HSM 中创建的 FIPS 密钥。您还可以将外部私钥(例如在标准 Citrix ADC、Apache 或 IIS 上创建的密钥)转移到 Citrix ADC FIPS 设备。外部密钥是通过使用 OpenSSL 之类的工具在 HSM 之外创建的。在将外部密钥导入 HSM 之前,请将其复制到设备的闪存驱动器中/nsconfig/ssl
。
在 MPX 14000 FIPS 设备上,导入外部密钥时不需要import ssl fipskey
命令中的-指数参数。导入密钥时会自动检测到正确的公共指数,并忽略-指数参数的值。
Citrix ADC FIPS 设备不支持具有 3 或 F4 以外的公共指数的外部密钥。
你不需要在 MPX 14000 FIPS 设备上使用包装键。
不能将外部、加密的 FIPS 密钥直接导入 MPX 14000 FIPS 设备。要导入密钥,您需要先解密密钥,然后导入密钥。要解密密钥,请在 shell 提示符下键入:
openssl rsa -in >
注意:如果将 RSA 密钥导入为 FIPS 密钥,Citrix 建议您从设备中删除 RSA 密钥,出于安全考虑。
使用 CLI 将外部密钥作为 FIPS 密钥导入
- 将外部密钥复制到设备的闪存驱动器。
如果密钥是 .pfx 格式,则必须先将其转换为 PEM 格式。在命令提示符下,键入:
convert ssl pkcs12
在命令提示符下,键入以下命令以将外部密钥导入为 FIPS 密钥并验证设置:
import ssl fipsKey
-key -informPEM show ssl fipskey
示例:
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 密钥
如果密钥是 .pfx 格式,则必须先将其转换为 PEM 格式。
- 导航到流量管理 > SSL。
- 在详细信息窗格的 “工具” 下,单击 “导入 PKCS #12”。
- 在 “导入 PKCS12 文件” 对话框中,设置以下参数:
- 输出文件名 *
- PKCS12 文件名 *— 指定 .pfx 文件名。
- 导入密码 *
- 编码格式 *A 必填参数
导航到流量管理 > SSL > FIPS。
在详细信息窗格的 FIPS 密钥选项卡上,单击导入。
在 “作为 FIPS 密钥导入” 对话框中,选择 PEM 文件,然后为以下参数设置值:
- FIPS 密钥名称*
- 密钥文件名 *-要将文件放置在默认位置以外的其他位置,可以指定完整路径或单击 “浏览” 并导航到某个位置。
*必需的参数
单击Import(导入),然后单击Close(关闭)。
在 FIPS 密钥选项卡上,验证为导入的 FIPS 密钥显示的设置是否正确。
在 HA 设置中在设备上配置 FIPS
您可以将一个 HA 对中的两个装置配置为 FIPS 装置。
必备条件
注意:
Citrix 建议您对此过程使用配置实用程序 (GUI)。如果您使用命令行 (CLI),请确保仔细遵循过程中列出的步骤。更改步骤顺序或指定错误的输入文件可能会导致不一致,需要重新启动设备。此外,如果使用 CLI,则该
create ssl fipskey
命令不会传播到辅助节点。在两个不同的 FIPS 设备上使用相同的模数大小和指数输入值运行命令时,生成的密钥将不相同。在其中一个节点上创建 FIPS 密钥,然后将其传输到另一个节点。但是,如果使用配置实用程序在 HA 设置中配置 FIPS 设备,则创建的 FIPS 密钥将自动传输到辅助节点。管理和传输 FIPS 密钥的过程称为安全信息管理 (SIM)。
重要提示:HA 设置必须在六分钟内完成。如果该过程在任何步骤失败,请执行以下操作:
- 重新启动设备或等待 10 分钟。
- 删除该过程创建的所有文件。
- 重复 HA 设置过程。
不要重复使用现有的文件名。
在以下过程中,设备 A 是主节点,设备 B 是辅助节点。
使用 CLI 在 HA 设置中的设备上配置 FIPS
下图总结了 CLI 上的传输过程。
图 1. 转移 FIPS 密钥摘要
在设备 A 上,使用 SSH 客户端(如 PuTTY)打开与设备的 SSH 连接。
使用管理员凭据登录设备。
将设备 A 初始化为源设备。在命令提示符下,键入:
init ssl fipsSIMsource
示例:
init fipsSIMsource /nsconfig/ssl/nodeA.cert
将此
文件复制到 /nconfig/ssl 文件夹中的装置 B。示例:
scp /nsconfig/ssl/nodeA.cert nsroot@198.51.100.10:/nsconfig/ssl
在设备 B 上,使用 SSH 客户端(如 PuTTY)打开与设备之间的 SSH 连接。
使用管理员凭据登录设备。
将装置 B 初始化为目标装置。在命令提示符下,键入:
init ssl fipsSIMtarget
示例:
init fipsSIMtarget /nsconfig/ssl/nodeA.cert /nsconfig/ssl/nodeB.key /nsconfig/ssl/nodeB.secret
将此
文件复制到装置 A。示例:
scp /nsconfig/ssl/fipslbdal0801b.secret nsroot@198.51.100.20:/nsconfig/ssl
在设备 A上,启用设备 A 作为源设备。在命令提示符下,键入:
enable ssl fipsSIMSource
示例:
enable fipsSIMsource /nsconfig/ssl/nodeB.secret /nsconfig/ssl/nodeA.secret
将此
文件复制到装置 B。示例:
scp /nsconfig/ssl/fipslbdal0801b.secret nsroot@198.51.100.10:/nsconfig/ssl
在设备 B上,启用装置 B 作为目标设备。在命令提示符下,键入:
enable ssl fipsSIMtarget
示例:
enable fipsSIMtarget /nsconfig/ssl/nodeB.key /nsconfig/ssl/nodeA.secret
在设备 A 上,创建 FIPS 密钥,如创建 FIPS 密钥中所述。
如导出 FIPS 密钥中所述,将FIPS 密钥导出到设备的硬盘。
使用安全文件传输实用程序(如 SCP)将 FIPS 密钥复制到辅助设备的硬盘。
在装置 B 上,将 FIPS 密钥从硬盘导入设备的 HSM,如导入 FIPS 密钥中所述。
使用 GUI 在 HA 设置中的装置上配置 FIPS
- 在要配置为源(主)设备的设备上,导航到“流量管理”>“SSL”>“FIPS”。
- 在详细信息窗格的 FIPS 信息选项卡上,单击启用 SIM卡。
- 在 “为 HA Pair 启用 SIM 卡” 对话框的 “证书文件名” 文本框中,键入文件名。文件名必须包含 FIPS 证书必须存储在源设备上的位置的路径。
- 在关键矢量文件名文本框中,键入文件名。文件名必须包含 FIPS 密钥矢量必须存储在源设备上的位置的路径。
- 在目标密钥文件名文本框中,键入用于在目标设备上存储机密数据的位置。
- 在源密钥文件名文本框中,键入用于在源设备上存储密钥数据的位置。
- 在辅助系统登录凭据下,输入用户名和密码的值。
- 单击确定。FIPS 设备现在配置为 HA 模式。
注意:在 HA 中配置设备后,请创建 FIPS 密钥,如创建 FIPS 密钥中所述。FIPS 密钥会自动从主设备传输到辅助设备。
使用 CLI 创建证书签名请求
在命令提示符下,键入:
create ssl certReq (-keyFile | -fipsKeyName ) [-keyform ( DER | PEM ) {-PEMPassPhrase }] -countryName -stateName -organizationName [-organizationUnitName ] [-localityName ] [-commonName ] [-emailAddress ] {-challengePassword } [-companyName ] [-digestMethod ( SHA1 | SHA256 )]
示例:
>create certreq f1.req –fipsKeyName f1 -countryName US -stateName CA -organizationName Citrix -companyName Citrix -commonName ctx -emailAddress test@example.com Done
使用 CLI 创建服务器证书
在命令提示符下,键入:
create ssl cert [-keyFile ] [-keyform ( DER | PEM ) {-PEMPassPhrase }] [-days ] [-certForm ( DER | PEM )] [-CAcert ] [-CAcertForm ( DER | PEM )] [-CAkey ][-CAkeyForm ( DER | PEM )] [-CAserial ]
示例:
create cert f1.cert f1.req SRVR_CERT -CAcert ns-root.cert -CAkey ns-root.key -CAserial ns-root.srl -days 1000 Done
上面的示例使用设备上的本地根 CA 创建服务器证书。
使用 CLI 添加证书密钥对
在命令提示符下,键入:
添加ssl certKey < certkeyName > (cert <字符串> (password]) [-key | -fipsKey | -hsmKey ] [-inform ][-expiryMonitor ( ENABLED | DISABLED ) [-notificationPeriod ]] [-bundle ( YES | NO )]
示例:
add certkey cert1 -cert f1.cert -fipsKey f1
创建 FIPS 密钥和服务器证书后,可以添加通用 SSL 配置。启用部署所需的功能。添加服务器、服务和 SSL 虚拟服务器。将证书密钥对和服务绑定到 SSL 虚拟服务器。保存配置。
enable ns feature SSL LB add server s1 10.217.2.5 add service sr1 s1 HTTP 80 add lb vserver v1 SSL 10.217.2.172 443 bind ssl vserver v1 –certkeyName cert1 bind lb vserver v1 sr1 saveconfig
MPX 14000 FIPS 设备的基本配置现已完成。
有关配置安全 HTTPS 的信息,请单击配置 FIPS。
有关配置安全 RPC 的信息,请首次单击配置 FIPS。
更新 MPX 14000 FIPS 设备上的许可证
在此平台上对许可证进行任何更新都需要重新启动两次。
- 更新文
/nsconfig/license
件夹中的许可证。 - 重新启动设备。
- 登录到设备。
- 再次重新启动设备。注意:在第二次重启之前,请勿添加新命令、保存配置或检查系统状态。
- 登录设备并确保通过运行
show ssl fips
命令初始化 FIPS。
在 MPX 14000 FIPS 和 SDX 14000 FIPS 平台上支持混合 FIPS 模式
注意:
此功能仅在包含一个主 FIPS 卡和一个或多个辅助卡的新 MPX/SDX 14000 FIPS 平台上受支持。VPX 平台或仅包含一种硬件卡的平台不支持此功能。
出于安全原因,在 FIPS 平台上,将在 FIPS 卡上执行非对称和对称加密和解密。但是,您可以在 FIPS 卡上执行部分活动(非对称),然后将批量加密和解密(对称)卸载到另一张卡,而不会影响密钥的安全性。
新的 MPX/SDX 14000 FIPS 平台包含一个主卡和一个或多个辅助卡。如果启用混合 FIPS 模式,则会在主卡上运行预主密钥解密命令,因为私钥存储在此卡上。但是,批量加密和解密将卸载到辅助卡上。与非混合 FIPS 模式和现有的 MPX 9700/10500/12500/15000 FIPS 平台相比,这种卸载大大提高了 MPX/SDX 14000 FIPS 平台上的批量加密吞吐量。启用混合 FIPS 模式还可以提高该平台上每秒 SSL 事务的速度。
注意:
默认情况下,混合 FIPS 模式处于禁用状态,以满足严格的认证要求,其中所有加密货币计算都必须在 FIPS 认证的模块内完成。启用混合模式将批量加密和解密卸载到辅助卡。
在 SDX 14000 FIPS 平台上,必须先为 VPX 实例分配 SSL 芯片,然后才能启用混合模式。
使用 CLI 启用混合 FIPS 模式
在命令提示符下,键入:
set SSL parameter -hybridFIPSMode {ENABLED|DISABLED} Arguments hybridFIPSMode When this mode is enabled, system will use additional crypto hardware to accelerate symmetric crypto operations. Possible values: ENABLED, DISABLED Default value: DISABLED
示例:
set SSL parameter -hybridFIPSMode ENABLED show SSL parameter Advanced SSL Parameters ----------------------- . . . . . . . . . . . . Hybrid FIPS Mode : ENABLED . . . . . . . . . . . .
使用 GUI 启用混合 FIPS 模式
- 导航到流量管理 > SSL。
- 在详细信息窗格的 “设置” 下,单击 “更改高级 SSL 设置”。
- 在 “更改高级 SSL 设置” 对话框中,选择 “混合 FIPS 模式”。
局限性:
不支持重新协商。
SDX 14000 平台上的
stat ssl parameter
命令不会显示正确的辅助卡利用率百分比。它始终显示 0.00% 的利用率。
stat ssl SSL Summary # SSL cards present 1 # SSL cards UP 1 # Secondary SSL cards present 4 # Secondary SSL cards UP 4 SSL engine status 1 SSL sessions (Rate) 963 Secondary card utilization (%) 0.00