140 SP 2388
140 SP 2388
Version 1.5
1 INTRODUCTION.................................................................................................................... 3
1.1 PURPOSE ............................................................................................................................. 3
1.2 MODULE VALIDATION LEVEL ............................................................................................ 3
1.3 REFERENCES ....................................................................................................................... 3
1.4 TERMINOLOGY ................................................................................................................... 4
1.5 DOCUMENT ORGANIZATION ............................................................................................... 4
2 CISCO IOS COMMON CRYPTOGRAPHIC MODULE (IC2M) ................................... 5
2.1 CRYPTOGRAPHIC MODULE CHARACTERISTICS ................................................................... 5
2.2 MODULE INTERFACES ......................................................................................................... 6
2.3 ROLES AND SERVICES ......................................................................................................... 7
2.4 PHYSICAL SECURITY........................................................................................................... 8
2.5 CRYPTOGRAPHIC KEY MANAGEMENT ................................................................................ 8
2.6 CRYPTOGRAPHIC ALGORITHMS ........................................................................................ 11
2.7 SELF-TESTS ...................................................................................................................... 12
2.8 AES GCM IV GENERATION ............................................................................................. 14
3 SECURE OPERATION OF THE IC2M ........................................................................... 14
4 CONSIDERATIONS FOR USING IC2M .......................................................................... 15
1 Introduction
1.1 Purpose
This is a non-proprietary Cryptographic Module Security Policy for Cisco’s IOS Common
Cryptographic Module (IC2M) Version Rel 5, This security policy describes how the module
meets the security requirements of FIPS 140-2 Level 1 and how to run the modules in a FIPS
140-2 mode of operation and may be freely distributed.
1.3 References
This document deals only with operations and capabilities of the IC2M listed above in section 1
in the technical terms of a FIPS 140-2 cryptographic module security policy. More information
is available on the routers from the following sources:
For answers to technical or sales related questions please refer to the contacts listed on
the Cisco Systems website at www.cisco.com.
This document may be freely reproduced and distributed whole and intact including this Copyright Notice.
1.4 Terminology
In this document, Cisco IOS Common Cryptographic Module is referred to as IC2M or the
module.
This document provides an overview of the IC2M identified in section 1 above and explains the
secure configuration and operation of the module. This introduction section is followed by
Section 2, which details the general features and functionality of the appliances. Section 3
specifically addresses the required configuration for the FIPS-mode of operation.
With the exception of this Non-Proprietary Security Policy, the FIPS 140-2 Validation
Submission Documentation is Cisco-proprietary and is releasable only under appropriate non-
disclosure agreements. For access to these documents, please contact Cisco Systems.
This document may be freely reproduced and distributed whole and intact including this Copyright Notice.
2 Cisco IOS Common Cryptographic Module (IC2M)
This module provides the FIPS validated cryptographic algorithms for services requiring those
algorithms. The module does not implement any protocols directly. Instead, it provides the
cryptographic primitives and functions to allow IOS to implement those various protocols.
The IC2M is a single binary object file, sub_crypto_ic2m_k9.o (Cisco IOS) classed as a multi-
chip standalone firmware, cryptographic module. It is capable of being utilized and is validated
on any platform running Cisco IOS containing the hardware listed in table 2:
This document may be freely reproduced and distributed whole and intact including this Copyright Notice.
MIPS64 IOS-XE 16.3.2 Cisco Catalyst 3850
PPC 405 IOS 15.2(4)E Cisco IE2000
PPC 465 IOS 15.2(4)E Cisco Catalyst 3560CX
PPC e5500 IOS-XE 3.9.0E Cisco Catalyst 4000 with SUP8LE
PPC e500 IOS 15.4(1)SY1 Cisco Catalyst 6000 with SUP2T
Intel Pentium IOS 15.4 Cisco Catalyst 6840
Intel Xeon IOS 16.3.2 Cisco ASR1K RP1
Intel Core i3 IOS 15.4(1)SY1 Cisco Catalyst 6000 with SUP6T
Intel Atom IOS 16.3.2 Cisco ISR 4321
Table 2 - Tested Platforms
The physical ports of the Module are the same as the system on which it is executing. The logical
interface is a C-language application program interface (API).
The Data Input interface consists of the input parameters of the API functions. The Data Output
interface consists of the output parameters of the API functions. The Control Input interface
consists of the actual API functions. The Status Output interface includes the return values of the
API functions.
The module provides logical interfaces to the system, and is mapped to the following FIPS 140-2
defined logical interfaces: data input, data output, control input, status output, and power. The
logical interfaces and their mapping are described in the following table:
Interface Description
Date Input API input parameters
This document may be freely reproduced and distributed whole and intact including this Copyright Notice.
2.3 Roles and Services
The Module meets all FIPS 140-2 level 1 requirements for Roles and Services, implementing
both Crypto Officer and User roles, which are classed as processes. As allowed by FIPS 140-2,
the Module does not support user authentication for these roles, which is handled by the system
implementing IC2M. Only one role may be active at a time and the Module does not allow
concurrent operators.
The User and Crypto Officer roles are implicitly assumed by the entity accessing services
implemented by the Module.
• Installation of the Crypto Module which is embedded in the IOS image and installed on
the IOS platform is assumed implicitly as the Crypto Officer when install occurs.
The services available only in FIPS mode to the Crypto Officer and User roles consist of the
following:
This document may be freely reproduced and distributed whole and intact including this Copyright Notice.
Zeroization execute Symmetric key, asymmetric key, X X
HMAC-SHA-1 key, seed, skeyid,
skeyid_d, IKE session encrypt
key, IKE session authentication
key, IPsec encryption key, IPsec
authentication key, SSH Session
Key, TLS pre-master secret, TLS
session encryption key, TLS
session integrity key, SNMPv3
Password, snmpEngineID, SNMP
session key, sRTP master key,
sRTP encryption key, sRTP
authentication key
Table 4 – Services
Note: Services marked with a single asterisk (*) may use non-compliant encryption algorithms
(DES, RC2, RC4, or SEAL). Use of these algorithms are prohibited in a FIPS-approved mode of
operation.
Note: Services marked with a double asterisk (**) may use non-compliant hashing algorithms
(HMAC-MD5, MD2, or MD5). Use of these non-compliant hashing algorithms are prohibited in
a FIPS-approved mode of operation and shall not be used.
Note: Services marked with a triple asterisk (***) may use non-compliant encryption strengths
for EC Diffie-Hellman, Diffie-Hellman and RSA. Use of these non-compliant encryption
strengths are prohibited in a FIPS-approved mode of operation and shall not be used. Refer to
section 2.6 for descriptions of the minimum required encryption strengths for compliance.
Keys that reside in internally allocated data structures can only be accessed using the Module
defined API. The operating system protects memory and process space from unauthorized
access. Zeroization of sensitive data is performed automatically by API function calls for
intermediate data items, and on demand by the calling process using the module provided API
function calls provided for that purpose.
Zeroization consists of overwriting the memory that store the key or refreshing the volatile
memory. Keys can also be zeroized by cycling the power.
This document may be freely reproduced and distributed whole and intact including this Copyright Notice.
The module supports the following keys and critical security parameters (CSPs):
HMAC-SHS Key FIPS 198 SHA-1, 256, 384 and Stored and zeroized
512 outside the module in
Message authentication the host OS
code key
Symmetric Key AES, Triple-DES AES: 128, 192, 256 Stored and zeroized
bits outside the module in
Triple-DES: 168 bits the host OS
Used for symmetric
encryption/decryption
DRBG entropy SP 800-90A This is the entropy for Zeroized with
input CTR_DRBG SP 800-90A RNG. generation of new seed
This document may be freely reproduced and distributed whole and intact including this Copyright Notice.
skeyid HMAC-SHA-1 Value derived from the Stored and zeroized
(160-bits) shared secret within outside the module in
IKE exchange. the host OS
Zeroized when IKE
session is terminated.
skeyid_d HMAC-SHA-1 The IKE key derivation Stored and zeroized
(160-bits) key for non ISAKMP outside the module in
security associations. the host OS
IKE session Triple-DES (168- The IKE session Stored and zeroized
encrypt key bits/AES encrypt key. outside the module in
(128/192/256-bits) the host OS
IKE session HMAC-SHA-1 The IKE session Stored and zeroized
authentication key (160-bits) authentication key. outside the module in
the host OS
IPsec encryption Triple-DES (168- The IPSec encryption Stored and zeroized
key bits/AES key. outside the module in
(128/192/256-bits) the host OS
IPsec HMAC-SHA-1 The IPSec Stored and zeroized
authentication key (160-bits) authentication key. outside the module in
the host OS
SSH Session Key Triple-DES (168- This is the SSH v2 Stored and zeroized
bits/AES session key. outside the module in
(128/192/256-bits) the host OS
TLS pre-master Shared Secret Shared Secret created Stored and zeroized
secret (384-bits) using asymmetric outside the module in
cryptography from the host OS
which new TLS session
keys can be created
TLS session Triple-DES (168- Key used to encrypt Stored and zeroized
encryption key bits/AES TLS session data outside the module in
(128/192/256-bits) the host OS
TLS session HMAC-SHA-1 HMAC-SHA-1 used Stored and zeroized
integrity key (160-bits) for TLS data integrity outside the module in
protection the host OS
SNMPv3 Shared Secret ( 8 The password use to Stored and zeroized
Password – 25 characters) setup SNMP v3 outside the module in
connection. the host OS
snmpEngineID Shared Secret (32- A unique string used to Stored and zeroized
bits) identify the SNMP outside the module in
engine. the host OS
SNMP session key AES Encryption key used to Stored and zeroized
(128 bits) protect SNMP traffic. outside the module in
the host OS
sRTP master key AES Key used to generate Stored and zeroized
(128 bits) sRTP session keys outside the module in
the host OS
sRTP encryption AES Key used to Stored and zeroized
key (128 bits) encrypt/decrypt sRTP outside the module in
packets the host OS
This document may be freely reproduced and distributed whole and intact including this Copyright Notice.
Note: The minimum 256-bits of random data from application will be required to be loaded.
Failure to do this will result in an error when the DRBG is instantiated. No assurance of the
minimum strength of generated key.
All cryptographic keys are provided to the Module by the calling process and are destroyed when
released by the appropriate API function calls. The Module does not perform persistent storage
of keys.
1
KTS (AES Cert. #3278; key establishment methodology provides 128 bits of encryption strength)
KTS (AES Cert. #4583; key establishment methodology provides between 128 and 256 bits of encryption strength)
2
The resulting symmetric key or a generated seed is an unmodified output from the DRBG.
This document may be freely reproduced and distributed whole and intact including this Copyright Notice.
Non-FIPS Approved Algorithms Allowed in FIPS Mode:
The module supports the following non-FIPS approved algorithms which are permitted for use in
the FIPS approved mode:
• Diffie-Hellman (CVL Certs. #252 and #1257, key agreement; key establishment
methodology provides between 112 and 150 bits of encryption strength; non-compliant
less than 112 bits of encryption strength)
• EC Diffie-Hellman (CVL Certs. #252 and #1257, key agreement; key establishment
methodology provides 128 or 192 bits of encryption strength; non-compliant less than
128 bits of encryption strength)
• RSA (key wrapping; key establishment methodology provides 112 or 128 bits of
encryption strength; non-compliant less than 112 bits of encryption strength)
• DES
• HMAC-MD5
• MD2
• MD5
• RC2
• RC4
• SEAL
2.7 Self-Tests
The modules include an array of self-tests that are run automatically during startup and
periodically when called during operations to prevent any secure data from being released and to
insure all components are functioning correctly.
Self-tests performed
• IC2M Self Tests
o POSTs - IOS Common Crypto Module algorithm implementation
• Firmware Integrity Test (HMAC SHA-256)
• AES-CBC (encrypt/decrypt) KATs
• AES-GCM (encrypt/decrypt) KATs
• AES-CMAC KAT
• DRBG KAT
• ECDSA Sign/Verify PWCT
• HMAC-SHA-1 KAT
• HMAC-SHA-256 KAT
This document may be freely reproduced and distributed whole and intact including this Copyright Notice.
• HMAC-SHA-384 KAT
• HMAC-SHA-512 KAT
• ECC Primitive “Z” KAT
• FFC Primitive “Z” KAT
• RSA KAT
• SHA-1 KAT
• SHA-256 KAT
• SHA-384 KAT
• SHA-512 KAT
• Triple-DES (encrypt/decrypt) KATs
• KBKDF KAT
• Conditional tests
▪ Pairwise consistency test for RSA Sign/Verify
▪ Pairwise consistency test for RSA Key Wrapping
▪ Pairwise consistency test for ECDSA
▪ Continuous random number generation test for approved DRBG
The module inhibits all access to cryptographic algorithms during initialization and self-tests due
to the process architecture in use. Additionally, the power-on self-tests are performed after the
cryptographic systems are initialized but prior to the underlying OS initialization of external
interfaces; this prevents the security appliances from passing any data before completing self-
tests and entering FIPS mode. In the event of a power-on self-test failure, the cryptographic
module will force the IOS platform to reload and reinitialize the operating system and
cryptographic module. This operation ensures no cryptographic algorithms can be accessed
unless all power on self-tests are successful.
In addition to the automatic operation at cryptographic module initialization time, self-tests can
also be initiated on demand by the Crypto Officer or User by issuing the operating system
command which invokes the module’s “crypto_engine_nist_run_self_tests() function.”
This document may be freely reproduced and distributed whole and intact including this Copyright Notice.
2.8 AES GCM IV Generation
The module’s AES-GCM implementation conforms to IG A.5, scenario #3: When operating in a
FIPS approved mode of operation, the IV is constructed in its entirety internally
deterministically, consisting of 96 bits as specified in SP800-38D, section 8.2.1.3
The Module functions entirely within the process space of the process that invokes it, and thus
satisfies the FIPS 140-2 requirement for a single user mode of operation.
The following policy must always be followed in order to achieve a FIPS 140-2 mode of
operation:
• Calling the function ic2m_init() initializes the cryptographic module and place the module in
the FIPS-approved mode of operation. During system bring up the O/S(IOS) will call init
functions for each of its subsystems, in this case ic2m_init(). ic2m_init() is the default entry
point for IC2M. ic2m_init() then calls the POST and does not return to the O/S until the POST
completes. No other tasks are being run at this time, so no data is passed.
• Only FIPS approved or allowed algorithms and key sizes shall be used. Please refer to section
2.6 for more information.
• In the event that the Module power is lost and restored, a new key for use with the AES GCM
encryption/decryption shall be established.
• In accordance with CMVP IG A.13, when operating in a FIPS approved mode of operation, the
same Triple-DES key shall not be used to encrypt more than 2^20 64-bit data blocks. Each of
TLS, SSH and IPSec protocols governs the generation of the respective Triple- DES keys. Refer
to RFC 5246 (TLS), RFC 4253 (SSH) and RFC 6071 (IPSec) for details relevant to the
generation of the individual Triple-DES encryption keys. The user is responsible for ensuring the
module limits the number of encryptions with the same key to 2^20.
Upon power-up the Module, the module will run its power-up self-tests. Successful completion
of the power-up self-tests indicates the module has passed the self-tests and is ready within the
IOS. If an error occurs during the self-test the module outputs the following message:
3
The module uses 32 bits of the IV field as a name and uses 64 bits as a deterministic non-repetitive counter for
combined IV length of 96 bits.
This document may be freely reproduced and distributed whole and intact including this Copyright Notice.
requesting a reload of the OS. %CRYPTO-0-SELF_TEST_FAILURE: Encryption self-test
failed (<failing test description>) where <failing test description> identifies the name of the
self-test that failed.
By printing or making a copy of this document, the user agrees to use this information for
product evaluation purposes only. Sale of this information in whole or in part is not
authorized by Cisco Systems.
This document may be freely reproduced and distributed whole and intact including this Copyright Notice.