All modules
CMVP Validated Module · FIPS 140-3 Security Policy

Linux Kernel FIPS Object Module (KFOM) Cryptographic Module

Certificate#4744StandardFIPS 140-3Level1TypeFirmware-hybridEmbodimentMulti-Chip Stand AloneStatusActiveVendorCisco Systems, Inc.
Medium review priority  ·  exposes kernel crypto consumer  ·  Linux kernel upstream has published 10212 CVEs since this module's initial validation  ·  last validated 24 months ago. How this is derived →

Certificate

StandardFIPS 140-3
Overall level1
Module typeFirmware-hybrid
EmbodimentMulti-Chip Stand Alone
StatusActive
Sunset date7/28/2029
CaveatNo assurance of the minimum strength of generated SSPs (e.g., keys). No assurance of minimum security of SSPs (e.g., keys, bit strings) that are externally loaded, or of SSPs established with externally loaded SSPs.
VendorCisco Systems, Inc.

Approved Algorithms (44)

AlgorithmACVP Cert
AES-CBCA1182
AES-CBCA1185
AES-CBC-CS3A1182
AES-CBC-CS3A1185
AES-CCMA1182
AES-CCMA1185
AES-CMACA1182
AES-CMACA1185
AES-CTRA1182
AES-CTRA1185
AES-ECBA1182
AES-ECBA1185
AES-GCMA1182
AES-GCMA1185
AES-GMACA1182
AES-GMACA1185
AES-XTSA1182
AES-XTSA1185
Counter DRBGA1182
Counter DRBGA1185
Hash DRBGA1182
Hash DRBGA1185
HMAC DRBGA1182
HMAC DRBGA1185
HMAC-SHA-1A1182
HMAC-SHA-1A1185
HMAC-SHA2-224A1182
HMAC-SHA2-224A1185
HMAC-SHA2-256A1182
HMAC-SHA2-256A1185
HMAC-SHA2-384A1182
HMAC-SHA2-384A1185
HMAC-SHA2-512A1182
HMAC-SHA2-512A1185
SHA-1A1182
SHA-1A1185
SHA2-224A1182
SHA2-224A1185
SHA2-256A1182
SHA2-256A1185
SHA2-384A1182
SHA2-384A1185
SHA2-512A1182
SHA2-512A1185

Derived Review-Risk Graph (review prompts, not findings)

flowchart LR
  %% Deterministic review-risk graph for Linux Kernel FIPS Object Module (KFOM) Cryptographic Module
  %% Review prompts and evidence gaps, NOT vulnerability findings.
  subgraph CMVP["CMVP-disclosed clues"]
    C2["[low] Firmware update / recovery<br/>/ rollback (referenced in<br/>text)<br/><i>update</i>"]
    C3["[low] Self-test / status surface<br/>(referenced in text)<br/><i>status output<br/>Show Status<br/>self-test</i>"]
    C6["[low] Operating system / runtime<br/>referenced (boundary<br/>membership not asserted)<br/><i>operating system<br/>linux<br/>kernel</i>"]
  end
  subgraph Inference["Derived inference"]
    I2["Possible only, trusted<br/>code is reachable through<br/>update and recovery paths."]
    I3["Possible only, some<br/>services may process input<br/>before, or without,<br/>operator authentication."]
    I6["Possible only, a<br/>runtime/OS is referenced,<br/>but its membership in the<br/>cryptographic boundary is<br/>not established."]
  end
  subgraph Risk["Reviewer question"]
    R2["Are update images<br/>authenticated before<br/>parsing, and are<br/>downgrade/rollback paths<br/>constrained?"]
    R3["Can unauthenticated<br/>services leak state,<br/>consume resources, or<br/>transition security state?"]
    R6["If the OS/runtime is<br/>in-boundary, could its<br/>CVEs be hidden by<br/>firmware-only versioning?"]
  end
  subgraph Evidence["Evidence needed to close"]
    E2["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>update image format ·<br/>signature-before-parse<br/>proof · anti-rollback /<br/>downgrade policy"]
    E3["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>pre-auth reachability<br/>matrix · rate limits and<br/>output redaction ·<br/>abuse-case tests"]
    E6["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>runtime identity and<br/>config · kernel/runtime<br/>hardening profile ·<br/>patch/backport manifest"]
  end
  C2 --> I2 --> R2 --> E2
  C3 --> I3 --> R3 --> E3
  C6 --> I6 --> R6 --> E6
  classDef clue fill:#eef3f9,stroke:#6f7f91,color:#1f3a5f;
  classDef infer fill:#fff7e6,stroke:#b98500,color:#6b4e00;
  classDef risk fill:#fbe9e9,stroke:#b02a2a,color:#7a1f1f;
  classDef evidence fill:#e6f4ea,stroke:#1e7d34,color:#14532d;
  class C2,C3,C6 clue;
  class I2,I3,I6 infer;
  class R2,R3,R6 risk;
  class E2,E3,E6 evidence;
Underlying clues
flowchart LR
  %% Deterministic clue tier for Linux Kernel FIPS Object Module (KFOM) Cryptographic Module
  %% confidence: high = structured record field; medium = structured but soft; low (dashed) = bare keyword hit, context unverified
  subgraph CMVP["CMVP-disclosed clues (deterministic)"]
    C2["[low] Firmware update / recovery / rollback (referenced in text)<br/><i>update</i><br/>src: text:keyword"]
    C3["[low] Self-test / status surface (referenced in text)<br/><i>status output<br/>Show Status<br/>self-test</i><br/>src: text:keyword"]
    C6["[low] Operating system / runtime referenced (boundary membership not asserted)<br/><i>operating system<br/>linux<br/>kernel</i><br/>src: text:keyword"]
  end
  classDef clueHigh fill:#eef3f9,stroke:#2f6fb0,stroke-width:2px,color:#1f3a5f;
  classDef clueMedium fill:#eef3f9,stroke:#6f7f91,color:#1f3a5f;
  classDef clueLow fill:#f7f7f7,stroke:#999,stroke-dasharray:4 4,color:#444;
  class C2,C3,C6 clueLow;

Security Policy, page by page

Page 1

Cisco Systems, Inc. FIPS 140-3 and ISO/IEC 19790 Non-Proprietary Security Policy For Linux Kernel FIPS Object Module Cryptographic Module Last Updated: May 31, 2024, Version 1.1 Americas Headquarters: Cisco Systems, Inc., 170 West Tasman Drive, San Jose, CA 95134-1706 USA

Page 2

Table of Content List of Tables List of Figures

Page 3
ISO/IEC 24759 Section 6.FIPS 140-3 Section TitleSecurity Level
1General1
2Cryptographic Module Specification1
3Cryptographic Module Interfaces1
4Roles, Services, and Authentication1
5Software/Firmware Security1
6Operational Environment1
7Physical Security1
8Non-Invasive SecurityN/A
9Sensitive Security Parameter Management1
10Self-Tests1
11Life-Cycle Assurance1
12Mitigation of Other AttacksN/A
Overall Level1

Module Cryptographic Module (hereinafter referred to as KFOM or Module) firmware version 1.0. The following details how this module meets the security requirements of FIPS 140-3, SP The security requirements cover areas related to the design and implementation of a cryptographic module. These areas include cryptographic module specification; cryptographic actual security levels for each area of the cryptographic module. Table 1 - Security Levels The Cisco Linux Kernel FIPS Object Module (KFOM) Cryptographic Module is a firmware hybrid cryptographic library in a multi-chip standalone embodiment that allows for Linux kernel applications to use approved algorithms. It does not implement any security protocols nor create any cryptographic keys. Instead, it only provides Linux kernel applications access to approved algorithms. The module is intended to run on the UCS C220 M5 and MX68W host platforms or any generalpurpose computer, so the physical perimeter of the module is the tested platforms. The cryptographic module comprises the Cisco Linux Kernel FIPS Object Module (KFOM) Cryptographic Module (Firmware Version: 1.0) which is a kernel object file linux_kfom_1_0_0.ko and the processor (Hardware Version: ARMv8 Cortex-A53, Intel Xeon Gold 6138) (only for algorithm acceleration) which only operates in the approved mode of operation which is set at manufacture. The module is validated according to FIPS 140-3 at overall security level 1. Please refer to Table 1 above for the individual areas.

Page 4
#Operating SystemHardware PlatformProcessorPAA/Acceleration
1Linux 4.9MX68CWARMv8 Cortex-A53With PAA
2Ubuntu 18.04UCS C220 M5Intel Xeon Gold 6138With PAA

Cisco UCS C220 M5 unifies computing, networking, management, virtualization, and storage access into a single integrated architecture, enabling end-to-end server visibility, management, and control in both bare metal and virtualized environments. The module has been tested on the following Operational Environments. Table 2 - Tested Operational Environments Figure 1 - UCS C220 M5 Front View Figure 2 - UCS C220 M5 Rear View Figure 3 - MX68CW Front View Figure 4 - MX68CW Rear View

Page 5
#Operating SystemHardware Platform
1Linux 4Z3
2Linux 4Z3C
3Linux 4MX67C
4Linux 4MX67W
5Linux 4MX75
6Linux 4MX85
7Linux 4MX95
8Linux 4MX105
9Linux 4MX250
10Linux 4MX450

Figure 5 - MX68CW Side View Please note that Figures 1-5 are the tested platforms and not the module itself. Figure 6 - Intel Xeon Gold 6138 Figure 7 - ARMv8 Cortex-A53 The following table lists the Vendor affirmed operational environment: Table 3 - Vendor Affirmed Operational Environments

Page 6

The cryptographic module maintains validation compliance when operating on the operating system/mode specified in Table 2 above and on the validation certificate as well as for those specified in Table 3 above (vendor affirmed). For the latter, the CMVP makes no statement as to the correct operation of the module or the security strengths of the generated keys when ported to an operational environment which is not listed on the validation certificate. Cryptographic Boundary The KFOM cryptographic module (red box) is a non-modifiable, multi-chip standalone firmware hybrid cryptographic module providing cryptographic support to the Kernel which takes data in and out from the host application via the API (libkcapi) feeding into the kernel. All processing is done on the listed processors in Table 2 above. The KFOM performs no communications other than with the consuming application. The block diagram below shows the Tested Operational Environment’s Physical Perimeter (TOEPP) being defined as the physical perimeter of the tested platform enclosure around which everything runs. The cryptographic boundary is the KFOM (red box) and the processors (ARMv8 Cortex-A53, Intel Xeon Gold 6138) with PAA. Tested Platform TOEPP Host Platform libkcapi Application Data/Control Data/Control/Status Input Output Kernel Space KFOM Data/Control Input Kernel Static kernel API (Firmware Components component interfaces) Data/Control/Status Registers (Hardware Output component interfaces Processor (PAA) Figure 8 - Block Diagram Firmware component interfaces include: Data Input, Data Output, Control Input and Status Output interfaces.

Page 7
CAVP CertAlgorithm and StandardMode/MethodDescription / Key Size(s) / Key Strength(s)Use / Function
A1182 and A1185AES [FIPS 197, SP800-38A]CBC, ECB, CTRKey length: 128, 192 and 256 bitsBlock cipher providing encryption/decryption with data confidentiality from the modes of operation
A1182 and A1185AES [FIPS 197, SP800-38C]CCMKey length: 128, 192 and 256 bitsBlock cipher providing confidentiality an authentication through Counter with Cipher Block Chaining-Message Authentication Code
A1182 and A1185AES [FIPS 197, SP800-38B]CMACKey length: 128, 192 and 256 bitsA cipher (AES) based MAC providing authentication, encryption and decryption
A1182 and A1185AES [FIPS 197, SP800-38D]GCM, GMACKey length: 128, 192 and 256 bitsAuthentication and encryption. Providing confidentiality of data through authentication, encryption and decryption
A1182 and A1185AES [FIPS 197, SP800- 38A(addendum)]CBC-CS3Key length: 128, 192 and 256 bitsBlock cipher providing encryption/decryption with variant on padding
A1182 and A1185AES [FIPS 197, SP800-38E]XTSKey length: 128 and 256 bitsAuthenticated symmetric encryption and decryption; XTS in approved mode can only be used for cryptographic

Hardware component interfaces include: Input, Output, Control Input and Status registers. By design, the module is only able to support approved mode of operation. Once the module is configured in the approved mode of operation by following the steps in Section 11 of this document, the module will be ready for approved mode of operation. The module doesn’t claim Approved security functions:

Page 8
protection of data on storage devices
A1182 and A1185SHS [FIPS 180-4]SHA-1, SHA2- 224/256/384/512N/AMessage digest; In approved mode, SHA-1 can only be used for non-digital- signature and legacy use. All other SHAs acceptable for hash functions applications
A1182 and A1185HMAC [FIPS 198- 1]HMAC-SHA-1, HMAC-SHA2-224, HMAC-SHA2-256, HMAC-SHA2-384 and HMAC-SHA2- 512Key length: 112 bits or greaterIntegrity based on secret key. Using standard SHA HASH with secret key for calculations and verification
A1182 and A1185DRBG-CTR [SP800-90Arev1]AES-128, AES- 192, AES-256 Derivation Function Enabled; Prediction Resistance: YesN/ADeterministic Random Bit Generators (DRBG); uses an algorithm to produce random output
A1182 and A1185DRBG_HASH [SP800-90Arev1]SHA-1, SHA2- 224/256/384/512N/ADeterministic Random Bit Generators (DRBG); uses an algorithm to produce random output
A1182 and A1185DRBG_HMAC [SP800-90Arev1]HMAC-SHA-1, HMAC-SHA2-224, HMAC-SHA2-256, HMAC-SHA2-384 and HMAC-SHA2- 512N/ADeterministic Random Bit Generators (DRBG); uses an algorithm to produce random output

Table 4 - Approved Algorithms Notes:

Page 9
Physical PortLogical InterfaceData that passes over port/interface
Input registers [Hardware component only]N/A• Data to be encrypted, decrypted or hashed • Keys to be used in cryptographic services
Output registers [Hardware component only]N/A• Data that has been encrypted or decrypted
Control registers [Hardware component only]N/A• Instructions to invoke the PAA operation
Status registers [Hardware component only]N/A• Return values
N/AData Input Interface [Firmware component only]Arguments for an API call that provide the data to be used or processed by the module: • Data to be encrypted, decrypted or hashed • Keys to be used in cryptographic services • Random seed material for the module’s DRBG
N/AData Output Interface [Firmware component only]Arguments output from an API call: • Data that has been encrypted or decrypted • Hashes
N/AControl Input Interface [Firmware component only]Arguments for an API call used to control and configure module operation: • Modes, key sizes, etc. used with cryptographic services
N/AStatus Output Interface [Firmware component only]• Return values • Status information regarding the module • Status information regarding the invoked service/operation

• The check for Key_1 ≠ Key_2 is done before using the keys in the XTS-AES algorithm to process data and is in accordance with IG C.I requirements. The module’s physical perimeter encompasses the case of the tested platform mentioned in Table 2. The module provides its logical interfaces via Application Programming Interface (API) calls. The logical interfaces provided by the module are mapped onto the FIPS 140-3 interfaces (data

Page 10
RoleServiceInputOutput
Crypto OfficerShow StatusAPI call parametersSuccessful output of module’s name and version denotes that the module is active
Crypto OfficerPerform Self-TestsAutomatically executed, or host platform’s shutdown commandOutput on each algorithm running self- test and pass or fail
Crypto OfficerShow VersionAPI call parametersOutput the version
Crypto OfficerConfigure Symmetric EncryptionAPI call parameters, encryption key, plaintext dataLINUX KERNEL FOM followed by the encryption in use and ciphertext data
Crypto OfficerConfigure Symmetric DecryptionAPI call parameters, decryption key, ciphertext dataLINUX KERNEL FOM followed by the decryption in use and plaintext data
Crypto OfficerConfigure Keyed HashAPI call parameters, authentication key, messageLINUX KERNEL FOM followed by the hash in use and keyed hash output
Crypto OfficerConfigure Message DigestAPI call parameters, message to be hashedLINUX KERNEL FOM followed by the digest in use and hashed output
Crypto OfficerConfigure Random Number GenerationAPI call parametersLINUX KERNEL FOM followed by the random strings in use
Crypto OfficerPerform ZeroisationAPI call parameters (for temporary SSPs) and host platform’s shutdown commandN/A

Table 5 - Ports and Interfaces Please note that the module does not support control output interface and is not applicable for this module.

4 Roles, Services, and Authentication

The module supports Crypto Officer (CO) role. The cryptographic module does not provide any authentication methods. The module does not allow concurrent operators. The Crypto Officer is implicitly assumed based on the service requested. The module provides the following services Table 6 - Roles, Service Commands, Input and Output The table below lists all approved services that can be used in the approved mode of operation. The abbreviations of the access rights to keys and SSPs have the following interpretation: G = Generate: The module generates or derives the SSP.

Page 11

R = Read: The SSP is read from the module (e.g. the SSP is output). W = Write: The SSP is updated, imported, or written to the module. E = Execute: The module uses the SSP in performing a cryptographic operation. Z = Zeroise: The module zeroises the SSP. N/A = The service does not access any SSP during its operation.

Page 12
ServiceDescriptionApproved Security FunctionsKeys and/or SSPsRolesAccess Rights to Keys and/or SSPsIndicator1
Show StatusProvide Module’s statusN/AN/ACrypto OfficerN/AGlobal indicator API output as designed by HOST system using the KFOM and output of `echo $?`
Perform Self-TestsExecute the CAST and Health testsNoneAES Key, Authentication , DRBG entropy input, DRBG Seed, DRBG V and C, DRBG KeyCrypto OfficerEGlobal indicator API output as designed by HOST system using the KFOM and output of `echo $?`
Show VersionProvide module’s name and version informationN/AN/ACrypto OfficerN/AGlobal indicator API output as designed by HOST system using the KFOM and output of `echo $?`
Configure Symmetric EncryptionConfigure AES algorithmAES CBC, ECB, CTR, CCM, GCM, CBC-CS3, XTS 128, 192 (except XTS), 256 bitsAES KeyCrypto OfficerW,E,ZGlobal indicator API output as designed by HOST system using the KFOM and output of `echo $?`
AES GCM IVCrypto OfficerW, G, E, Z
Configure Symmetric DecryptionConfigure AES algorithmAES CBC, ECB, CTR, CCM, GCM, CBC-CS3, XTS 128, 192 (except XTS), 256 bitsAES KeyCrypto OfficerW,E,ZGlobal indicator API output as designed by HOST system using the KFOM and
AES GCM IVCrypto OfficerW, G, E, Z

$?` $?` $?` $?` If `echo $?` returns 0, the approved service executed successfully. Any other value = not successful.

Page 13
output of `echo $?`
Configure Keyed HashConfigure HMAC usageHMAC SHA-1, HMAC-SHA2- 224/256/384/ 512AuthenticationCrypto OfficerW,E,ZGlobal indicator API output as designed by HOST system using the KFOM and output of `echo $?`
Configure Message DigestConfigure SHS usageSHA-1, SHA2- 224/256/384/51 2N/ACrypto OfficerN/AGlobal indicator API output as designed by HOST system using the KFOM and output of `echo $?`
Configure Random Number GenerationConfigure DRBG usageDRBG (Hash, HMAC or AES CTR)DRBG entropy inputCrypto OfficerW, E, ZGlobal indicator API output as designed by HOST system using the KFOM and output of `echo $?`
DRBG Seed, DRBG V and C, DRBG KeyCrypto OfficerG, E, Z
Perform ZeroizationPerform ZeroizationN/AAll SSPsCrypto OfficerZNone
5 Software/Firmware Security

Integrity Technique The Module is provided in the form of binary executable code. To ensure firmware security, the Module is protected by HMAC-SHA2-512 (HMAC Certs. #A1182 or #A1185) algorithm. At Module’s initialization, the integrity of the runtime executable is verified using a HMAC-SHA2-

512 digest which is compared to a value computed at build time. If at the load time the MAC

does not match the stored, known MAC value, the Module would enter an Error state with all crypto functionality inhibited. Integrity Test On-Demand The integrity test is performed as part of the Pre-Operational Self-Tests. It is automatically executed at power-on. The operator can initiate the integrity test on demand by power cycling the host platform. The module is a kernel object file linux_kfom_1_0_0.ko

Page 14
Key/SSP Name/ TypeStrengthSecurity Function and Cert. NumberGenerationImport/ ExportEstablish- mentStorageZeroisationUse & Related Keys
DRBG Entropy Input>112 bitsN/AObtained from the Entropy Source within TOEPP (GPS INT Pathways)Import to the module via Module’ s API Export: NoN/AN/A: The module does not provide persistent keys/SSPs storageZeroized when the tested platform is powered downRandom number generation
DRBG Output128 to 512 bitsSP800- 90Arev1 Counter DRBG, Hash DRBG, HMAC DRBG Cert A1182/ A1185Generated using SP800- 90Arev1 DRBGImport: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storagecrypto_free _rng() or power cycle the deviceRandom bits provided for the calling application
DRBG Seed384 bitsSP800- 90Arev1 Counter DRBG, Hash DRBG,Generated using DRBG derivation function that includes theImport: No Export: NoN/AN/A: The module does not provide persistentcrypto_free _rng() or power cycle the deviceInternal state of the DRBG
6 Operational Environment

The module is operated in a non-modifiable operational environment per FIPS 140-3 level 1 specifications. The module is installed within the product for use with the kernel, and the linux kernel cannot be modified. The operating systems and tested platforms can be found in Table 2. application is serving multiple clients. The module’s firmware version running on each tested

7 Physical Security

Per ISO/IEC 19790 and FIPS 140-3 classification, this is a multi-chip standalone cryptographic module. KFOM 1.0 is a firmware hybrid module and runs on a production grade chassis.

8 Non-Invasive Security

This section is not applicable as the cryptographic module does not implement any non-invasive attack mitigation techniques.

9 Sensitive Security Parameters Management

The following table summarizes the Sensitive Security Parameters (SSPs) that are used by the cryptographic services implemented in the module.

Page 15
HMAC DRBG Cert A1182/ A1185entropy inputkeys/SSPs storage
DRBG V128 440/888 bits 160/256/3 84/512 bits)SP800- 90Arev1 Counter DRBG, Hash DRBG, HMAC DRBG Cert A1182/ A1185Generated first during DRBG instantiation and then subsequently updated using the DRBG update functionImport: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storagecrypto_free _rng() or power cycle the deviceInternal state of the DRBG
DRBG C128/192/2 56 440/888 bitsSP800- 90Arev1 Counter DRBG, Hash DRBG Cert A1182/ A1185Generated first during DRBG instantiation and then subsequently updated using the DRBG update functionImport: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storagecrypto_free _rng() or power cycle the deviceInternal state of the DRBG
DRBG Key128/192/2 56 bits 160/256/3 84/512 bitsSP800- 90Arev1 Counter DRBG, HMAC DRBG Cert A1182/ A1185Established per SP 800- 90Arev1 Counter DRBG and HMAC DRBGImport: Yes Export: NoN/AN/A: The module does not provide persistent keys/SSPs storagecrypto_free _rng() or power cycle the deviceInternal state of the DRBG
AES Key128,192,2 56 bitsAES (GCM, GMAC, XTS, CMAC, CCM, CTR, CBC, ECB) Cert A1182/ A1185Generated externally and passed into the moduleImport: Yes Export: NoN/AN/A: The module does not provide persistent keys/SSPs storagecrypto_free _cipher() crypto_free _ablkcipher () crypto_free _blkcipher() crypto_free _skcipher() crypto_free _aead() or power cycle the deviceAES session key
Page 16
AES GCM IV96-bitAES GCM Cert A1182/ A1185Generated externally and passed into the module Generated internally (FIPS 140-3 IG C.H #3)Import: Yes Export: NoN/AN/A: The module does not provide persistent keys/SSPs storagePower cycle the deviceAES GCM session key and decryption
Authentic ation160-512 bitsHMAC (SHA-1, SHA2-224, SHA2-256, SHA2-384, SHA2-512) Cert A1182/ A1185Generated externally and passed into the moduleImport: Yes Export: NoN/AN/A: The module does not provide persistent keys/SSPs storagecrypto_free _shash() crypto_free _ahash() or power cycle the deviceIntegrity assurance
Firmware Integrity Key (not a SSP)160 bitsHMAC- SHA2-512 Cert A1182/ A1185Pre-loaded at the factory (in the module’s binary)Import: No Export: NoN/AStored in the module binary computed during buildThis key is used for firmware integrity test and not subject to key zeroization requirement s according to FIPS140- 3 IG 9.7.BUsed for firmware integrity test. This is not an SSP
Integrity test calculatio n valueN/AHMAC- SHA2-512 Cert A1182/ A1185Calculated during integrity testImport: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storagememzero_e xplicit() call before exiting the integrity test functionCalculated during integrity test

Table 8 - SSPs Even though the module does implement an approved random number generator, it is not used by the module for the generation of the cryptographic keys. All Cryptographic keys are externally generated and imported to the working space assigned by the kernel. The module uses approved DRBG for the generation of random strings and passes them to the calling application only upon their request. The cryptographic module is passed a pointer to the cryptographic keys as API parameters, associated by memory location. The application calling the cryptographic module passes keys in plaintext within the physical perimeter. The module does not perform storage of keys. All SSPs can be zeroized by power cycling the host.

Page 17
Entropy sourcesMinimum number of bits of entropyDetails
Entropy within the TOEPP was passively load into the Module to seed the 800- 90Arev1 DRBG by the operating systemAt least 112 bitsThe entropy and seeding material for the entropy source is provided to it by the external calling application (and not by the module) which is outside the module’s boundary. The minimum effective strength of the SP 800-90Arev1 DRBG seed is required to be at least 112 bits when used in the approved mode of operation, therefore the minimum number of bits of entropy requested when the calling application makes a call to the SP 800-90Arev1 DRBG is 112. Hence the caveat “No assurance of the minimum strength of generated SSPs (e.g., keys)” is applicable. The module does not generate any cryptographic keys but the SP800-90Arev1 DRBGs are used to provide the random strings requested by the calling application. These random strings are not used by the module and is passed to the calling application when requested. The module users (the external calling applications) shall use entropy source which meets the security strength required for the random number generation mechanism as shown in SP 800- 90Arev1 based on Hash DRBG, HMAC DRBG, and Counter DRBG.

Table 9 - Non-Deterministic Random Number Generation Specification

10 Self-Tests

When the Linux kernel is setup properly the self-test solution is that only the kernel module, which has been signed and verified can load in cryptographic algorithms. Once the KFOM is loaded, first the self-test for the algorithm used in the firmware integrity test is run and then the actual firmware integrity test of the module runs for the KFOM, then all the self-tests for the algorithms are run. If a self-test fails, the result from the Linux Crypto Test Manager is a failure. This means the algorithm will not have the self-test flag set. The presence of self-test flag allows the Linux Crypto Framework to utilize the algorithm. A successful log message is provided by the module after the successful completion of the selftests. If an error occurs to a valid approved algorithm during the self-test, the module enters hard error state, and the Linux kernel will print an error message to the console and data output from the data output interface is inhibited. This results in the system shutting down.

Page 18

Pre-Operational Self-tests

Page 19

per Section 11.3 of SP 800-90Arev1)

Page 20
11 Life-Cycle Assurance

Secure Operations The tested operating systems segregate user processes into separate process spaces. Each process space is an independent virtual memory area that is logically separated from all other processes by the operating system firmware and hardware. The module functions entirely within the process space of the process that invokes it, and thus the module runs on a single user mode of operation. The module is copied into the tested operational environments prior to shipping. The operator needs to load the module per the instructions below, and power cycle the platform. At this point, the pre-operational tests are run, followed by the conditional cryptographic algorithm self-tests. Now KFOM will be in approved mode. KFOM Loading: insmod linux_kfom_1_0_0.ko config_file=kfom_priorities ko_file=linux_kfom_1_0_0.ko The operator can verify that the module is in approved mode by executing the “Show Status” service command. If the module outputs name and version, it can be considered that the module is running in approved mode. The guidance document – readme.rtf version 1.0, can be obtained by contacting the vendor using the contact information (posted on the validation certificate).

12 Mitigation of Other Attacks

The requirements under INCITS+ISO+IEC 19790+2012[2014], section 7.12 “Mitigation of other attacks”, are not applicable to the module since the module currently doesn’t support any mitigation of other attacks services.