MPX 14000 FIPS appliances

Important:

Configuration steps for NetScaler MPX 14000 FIPS and NetScaler MPX 9700/10500/12500/15500 FIPS appliances are different. MPX 14000 FIPS appliances do not use firmware v2.2. A FIPS key created on the HSM cannot be transferred from MPX 9700 platform to MPX 14000 platform. However, if you have imported an RSA key as a FIPS key, you can copy the RSA key to the MPX 14000 platform, and then import it as a FIPS key. Only 2048-bit and 3072-bit keys are supported.

A FIPS appliance is equipped with a tamper-proof (tamper-evident) cryptographic module—a Cavium CNN3560-NFBE-G—designed to comply with the FIPS 140-2 Level-3 specifications (from release 12.0 build 56.x). The Critical Security Parameters (CSPs), primarily the server’s private-key, are securely stored and generated inside the cryptographic module, also referred to as the Hardware Security Module (HSM). The CSPs are never accessed outside the boundaries of the HSM. Only the superuser (nsroot) can perform operations on the keys stored inside the HSM.

Before configuring a FIPS appliance, you must check the state of the FIPS card and then initialize the card. Create a FIPS key and server certificate, and add any additional SSL configuration.

For information about the FIPS ciphers supported, see FIPS Approved Algorithms and Ciphers.

For information about configuring FIPS appliances in a high availability setup, see Configuring FIPS Appliances in a High Availability Setup.

Limitations

  1. SSL renegotiation using the SSLv3 protocol is not supported on the back end of an MPX FIPS appliance.
  2. 1024-bit and 4096-bit keys and exponent value of 3 are not supported.

Configure the HSM

Before configuring the HSM on an MPX 14000 FIPS appliance, you must check the state of your FIPS card to verify that the driver loaded correctly, and then initialize the card.

At the command prompt, type:

show fips

FIPS Card is not configured

Done

The message “ERROR: Operation not permitted - no FIPS card present in the system” appears if the driver is not loaded correctly.

Initialize the FIPS card

The appliance must be restarted three times for proper initialization of the FIPS card.

Important

  • Verify that the /nsconfig/fips directory has been successfully created on the appliance.
  • Do not save the configuration before you restart the appliance for the 3rd time.

Perform the following steps to initialize the FIPS card:

  1. Reset the FIPS card.
  2. Restart the appliance.
  3. Set the security officer password for partitions 0 and 1, and the user password for partition 1.
    Note: The set or reset command takes more than 60 seconds to run.
  4. Save the configuration.
  5. Verify that the password encrypted key for the master partition (master_pek.key) has been created in the /nsconfig/fips/ directory.
  6. Restart the appliance.
  7. Verify that the password encrypted key for the default partition (default_pek.key) has been created in the /nsconfig/fips/ directory.
  8. Restart the appliance.
  9. Verify that the FIPS card is UP.

Initialize the FIPS card by using the CLI

At the command prompt, type the following commands:

reset fips
Done

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

Done

Note: The following message appears when you run the set fips command:

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
Done

reboot

reboot

show fips

        FIPS HSM Info:

                 HSM Label              : NSFIPS

                 Initialization         : FIPS-140-2 Level-2

                 HSM Serial Number      : 3.0G1501-ICM000083

                 HSM State              : 2

                 HSM Model              : No Model Info

                 Hardware Version       : 0.0-G

                 Firmware Version       : 1.0

                 Firmware Build         : NFBE-FW-1.0-39

                 Max FIPS Key Memory    : 102235

                 Free FIPS Key Memory   : 102233

                 Total SRAM Memory      : 557396

                 Free SRAM Memory       : 255456

                 Total Crypto Cores     : 63

                 Enabled Crypto Cores   : 63

Done

Create FIPS keys

You can create a FIPS key on your MPX 14000 FIPS appliance or import an existing FIPS key to the appliance. The MPX 14000 FIPS appliance supports only 2048-bit and 3072-bit keys and an exponent value of F4. For PEM keys, an exponent is not required. Verify that the FIPS key is created correctly. Create a certificate signing request and a server certificate. Finally, add the certificate-key pair to your appliance.

You must specify the key type (RSA or ECDSA) and specify the curve for ECDSA keys.

Note

1024-bit and 4096-bit keys and an exponent value of 3 are not supported.

Create a FIPS key by using the CLI

At the command prompt, type:

create ssl fipsKey <fipsKeyName> -keytype ( RSA | ECDSA ) [-exponent ( 3 | F4 )] [-modulus <positive_integer>] [-curve ( P_256 | P_384 )]

Example:

create fipsKey f1 -keytype RSA -modulus 2048 -exponent F4

Done

show ssl fipskey ddvws

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

Done

Import a FIPS key by using the CLI

At the command prompt, type:

import ssl fipsKey <fipsKeyName> -key <string> [-inform <inform>] [-wrapKeyName <string>] [-iv<string>] -exponent  F4 ]

Example:

import fipskey Key-FIPS-2 -key Key-FIPS-2.key -inform SIM -exponent F4
Done
import fipskey Key-FIPS-2 -key Key-FIPS-2.key -inform PEM
Done

Verify that the FIPS key is created or imported correctly by running the show fipskey command.

show fipskey
1)      FIPS Key Name: Key-FIPS-2
Done

Create a certificate signing request by using the CLI

At the command prompt, type:

create ssl certReq <reqFile> (-keyFile <input_filename> | -fipsKeyName <string>) [-keyform ( DER | PEM )  {-PEMPassPhrase }] -countryName <string> -stateName <string> -organizationName<string> [-organizationUnitName <string>] [-localityName <string>] [-commonName <string>] [-emailAddress <string>] {-challengePassword } [-companyName <string>] [-digestMethod ( SHA1 | SHA256 )]

Example:

create certreq f1.req –fipsKeyName  f1 -countryName US  -stateName CA -organizationName Citrix -companyName Citrix -commonName ctx -emailAddress test@example.com
Done

Create a server certificate by using the CLI

At the command prompt, type:

create ssl cert <certFile> <reqFile> <certType> [-keyFile <input_filename>] [-keyform ( DER | PEM ) {-PEMPassPhrase }] [-days <positive_integer>] [-certForm ( DER | PEM )] [-CAcert <input_filename>] [-CAcertForm ( DER | PEM )] [-CAkey <input_filename>][-CAkeyForm ( DER | PEM )] [-CAserial <output_filename>]

Example:

create cert f1.cert f1.req SRVR_CERT -CAcert ns-root.cert -CAkey ns-root.key -CAserial ns-root.srl -days 1000
Done

The above example creates a server certificate using a local root CA on the appliance.

Add a certificate-key pair by using the CLI

At the command prompt, type:

add ssl certKey <certkeyName> (-cert <string> [-password]) [-key <string> | -fipsKey <string> | -hsmKey <string>] [-inform <inform>][-expiryMonitor ( ENABLED | DISABLED ) [-notificationPeriod <positive_integer>]] [-bundle ( YES | NO )]

Example:

add certkey cert1 -cert f1.cert -fipsKey f1
Done

After creating the FIPS key and server certificate, you can add the generic SSL configuration. Enable the features that are required for your deployment. Add servers, services, and SSL virtual servers. Bind the certificate-key pair and the service to the SSL virtual server. Save the configuration.

enable ns feature SSL LB
Done
add server s1 10.217.2.5
Done
add service sr1 s1 HTTP 80
Done
add lb vserver v1 SSL 10.217.2.172 443
Done
bind ssl vserver v1 –certkeyName cert1
Done
bind lb vserver v1 sr1
Done
saveconfig
Done

The basic configuration of your MPX 14000 FIPS appliance is now complete.

For information about configuring secure HTTPS, click here.

For information about configuring secure RPC, click here.

Support for hybrid FIPS mode on the MPX 14000 FIPS and SDX 14000 FIPS platforms

Note:

This feature is supported only on the new MPX/SDX 14000 FIPS platform containing one primary FIPS card and one or more secondary cards. It is not supported on a VPX platform or a platform containing only one type of hardware card.

On a FIPS platform, all the encryption and decryption (asymmetric and symmetric) is performed on the FIPS card for security reasons. However, you can perform part of this activity (asymmetric) on a FIPS card and offload the bulk encryption and decryption (symmetric) to another card without compromising the security of your keys.

The new MPX/SDX 14000 FIPS platform contains one primary card and one or more secondary cards. If you enable the hybrid FIPS mode, the pre-master secret decryption commands are run on the primary card because the private key is stored on this card, but the bulk encryption and decryption is offloaded to the secondary card. This significantly increases the bulk encryption throughput on an MPX/SDX 14000 FIPS platform as compared to non-hybrid FIPS mode and the existing MPX 9700/10500/12500/15000 FIPS platform. Enabling the hybrid FIPS mode also improves the SSL transaction per second on this platform.

The hybrid FIPS mode is disabled by default to meet the strict certification requirements where all the crypto-computation must be done inside a FIPS certified module. You must enable the hybrid mode to offload the bulk encryption and decryption to the secondary card.

Note:

On an SDX 14000 FIPS platform, you must first assign an SSL chip to the VPX instance before you enable the hybrid mode.

Enable hybrid FIPS mode by using the CLI

At the command prompt, type:

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
    . . . . . . . . . . . .
    Done
    >

Enable hybrid FIPS mode by using the GUI

  1. Navigate to Traffic Management > SSL.
  2. In the details pane, under Settings, click Change advanced SSL settings.
  3. In the Change Advanced SSL Settings dialog box, select Hybrid FIPS Mode.

Limitations:

  1. Renegotiation is not supported.

  2. The “stat ssl parameter” command on an SDX 14000 platform does not display the correct secondary card utilization percentage. It always displays 0.00% utilization.

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