Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy Version 1.8 Last Update: 2014-03-14 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 1. Introduction ................................................................................................................. 3 2. Cryptographic Module Specification ............................................................................ 4 3. Cryptographic Module Ports and Interfaces ................................................................ 8 4. Roles, Services and Authentication ............................................................................. 9 4.1. Roles ......................................................................................................................... 9 4.2. Services .................................................................................................................... 9 4.3. Operator Authentication ......................................................................................... 13 4.4. Mechanism and Strength of Authentication ............................................................ 13 5. Finite State Machine .................................................................................................. 14 6. Physical Security ....................................................................................................... 15 7. Operational Environment .......................................................................................... 16 7.1. Policy....................................................................................................................... 16 8. Cryptographic Key Management ............................................................................... 17 8.1. Random Number Generation .................................................................................. 17 8.2. Key Entry and Output .............................................................................................. 17 8.3. Key Storage ............................................................................................................. 17 8.4. Zeroization Procedure ............................................................................................. 17 8.5. Key Establishment................................................................................................... 18 9. Electromagnetic Interference/Electromagnetic Compatibility (EMI/EMC) .................. 19 10. Self Tests ............................................................................................................... 20 10.1. Power-Up Tests ...................................................................................................... 20 10.1.1. Cryptographic algorithm tests (Known Answer Tests) ....................................... 20 10.1.2. Integrity test ..................................................................................................... 21 10.2. Conditional Tests ................................................................................................... 22 10.2.1. Pair-wise consistency test ................................................................................. 22 10.2.2. Continuous random number generator (CRNG) test ......................................... 22 11. Design Assurance .................................................................................................. 23 11.1. Configuration Management .................................................................................. 23 11.2. Delivery and Operation ......................................................................................... 23 12. Mitigation of Other Attacks.................................................................................... 24 13. Glossary and Abbreviations ................................................................................... 25 14. References ............................................................................................................ 26 © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 2 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 1. Introduction This document is a non-proprietary FIPS 140-2 Security Policy for the Samsung OpenSSL Cryptographic Module. It contains a specification of the rules under which the module must operate and describes how this module meets the requirements as specified in FIPS PUB 140-2 (Federal Information Processing Standards Publication 140-2) for a Security Level 1 multi-chip standalone software module. 1.1. Purpose of the Security Policy There are three major reasons that a security policy is required:  For FIPS 140-2 validation  Allows individuals and organizations to determine whether the cryptographic module, as implemented, satisfies the stated security policy  Describes the capabilities, protection, and access rights provided by the cryptographic module, allowing individuals and organizations to determine whether it will meet their security requirements 1.2. Target Audience This document is intended to be part of the package of documents that are submitted for FIPS validation. It is intended for the following people:  Developers working on the release  FIPS 140-2 testing lab  Crypto Module Validation Program (CMVP)  Consumers © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 3 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 2. Cryptographic Module Specification This document is the non-proprietary security policy for the Samsung OpenSSL Cryptographic Module, and was prepared as part of the requirements for conformance to Federal Information Processing Standard (FIPS) 140-2, Level 1. The following section describes the module and how it complies with the FIPS 140-2 standard in each of the required areas. 2.1. Description of Module The Samsung OpenSSL Cryptographic Module is a software only Security Level 1 cryptographic module that provides general-purpose cryptographic services to the applications. The crypto module runs on an ARM processor. The following table shows the overview of the security level for each of the eleven sections of the validation. Security Component Security Level Cryptographic Module Specification 1 Cryptographic Module Ports and Interfaces 1 Roles, Services and Authentication 1 Finite State Model 1 Physical Security N/A Operational Environment 1 Cryptographic Key Management 1 EMI/EMC 3 Self Tests 1 Design Assurance 3 Mitigation of Other Attacks N/A Table 1: Security Levels The module has been tested on the following platforms: Module/Implementation Device O/S & Ver. Samsung OpenSSL Cryptographic Samsung Galaxy Note II Android Jelly Bean 4.1 Module (SecOpenSSL2.0.3) Samsung OpenSSL Cryptographic Samsung Galaxy S4 Android Jelly Bean 4.2 Module (SecOpenSSL2.0.3) Table 2: Tested Platform 2.2. Description of FIPS Approved and Non-FIPS Approved Mode By default, upon initialization, the module performs self-tests and enters the “Non-FIPS” mode. Whenever the external application requires “FIPS-Approved” mode, it needs to invoke all the self- tests by calling FIPS_mode_set(FIPS_MODE_ON). Please note that the self-tests invoked before entering FIPS or Non-FIPS mode are described in section 10.1. © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 4 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy The module can be switched between FIPS-Approved and Non-FIPS mode by invoking the API FIPS_mode_set() using the following parameters: FIPS_MODE_OFF = 0 FIPS_MODE_ON = 1 In FIPS-Approved mode, the module will be initialized with symmetric algorithms, digest algorithms, HMAC, and random generators. In the Approved mode the module provides the following approved functions:  AES (CMAC, CCM, GCM, XTS, CBC, ECB, CFB with 8 bits, CFB with 128 bits, OFB)  SHA-1, SHA-224, SHA-256, SHA-384, SHA-512  RNG (ANSI X9.31)  Triple-DES (CMAC, CBC, ECB, CFB with 8 bits, CFB with 64 bits, OFB)  HMAC (with SHA-1, SHA-224, SHA-256, SHA-384, SHA-512)  DRBGs (SP 800-90A: HASH DRBG, HMAC DRBG, CTR DRBG)  RSA (2048 bits key for all services; 1024 bits key for signature verification only)  DSA (2048 bits key for all services; 1024 bits key for domain parameters verification and signature verification only)  ECDSA (P-224, 256, 384, 521 for all services; P-192 for public key verification and signature verification only)  EC Diffie-Hellman (P-224, 256, 384, 521; K-233, 283, 409, 571; B-233, 283, 409, 571)  RSA Key Transport (2048-4096 bits key) Please see Table 5, “Services” in Section 4.2 for the CAVP certificate numbers. The module implements the following Non-Approved functions, which shall not be used in the FIPS 140-2 approved mode of operation. When invoking one of the non-approved ciphers which are still technically callable as listed above, the module implicitly transitions into non-FIPS mode.  RSA (1024 bits key for key generation and signature generation)  DSA (1024 bits key for key generation, domain parameters generation and signature generation)  ECDSA (P-192 for public key generation and signature generation)  EC Diffie-Hellman (P-192, K-163, B-163)  DRBG (non-compliant; SP 800-90A: Dual EC DRBG)  RSA Key Transport (1024 bits key)  Blowfish  Triple-DES-CTR (non-compliant)  AES-CTR (non-compliant) © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 5 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy  MD4  MD5  MDC-2  RC2  RC4  RIPEMD-160  Diffie-Hellman  md_rand.c (Non Approved RNG) Caveat 1: For the cryptographic security reason, the SP 800-90A Dual EC DRBG has been moved to non-Approved functions list to only operate in non-FIPS mode even though the implementation is validated with CAVS cert. #299 and #321. The use of Dual EC DRBG will cause the module to enter non-FIPS mode implicitly. In the Non-FIPS mode, all the above listed approved and non-approved algorithms except the approved RNG ANSI X9.31 are available for use, although MD5 is allowed for use in TLS only. The non-approved RNG ms_rand.c is available only in the Non-FIPS mode for usage. 2.3. Cryptographic Module Boundary 2.3.1. Software Block Diagram Figure 1: Software Block Diagram © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 6 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy Related documentation:  S/W Detailed Level Design (FIPS_OpenSSL_Func_Design.docx) version 0.14  Samsung OpenSSL Cryptographic Module (Samsung_OpenSSLv1.8.doc) Note: The master component list is provided in Section 6.3 of S/W Detailed Level Design document. 2.3.2. Hardware Block Diagram This figure illustrates the various data, status and control paths through the cryptographic module. Inside, the physical boundary of the module, the mobile device consists of standard integrated circuits, including processors and memory. These do not include any security-relevant, semi- or custom integrated circuits or other active electronic circuit elements. The physical boundary includes power inputs and outputs, and internal power supplies. The logical boundary of the cryptographic module contains only the security-relevant software elements that comprise the module. Physical boundary Figure 2: Hardware Block Diagram © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 7 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 3. Cryptographic Module Ports and Interfaces FIPS Interface Ports Data Input API input parameters Data Output API output parameters Control Input API function calls API function calls, or configuration files on filesystem Status Output Power Input Physical power connector Table 3: Ports and Interfaces © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 8 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 4. Roles, Services and Authentication 4.1. Roles Role Services (see list below) User Encryption, Decryption, Random Numbers Generation, Digest Creation, Key Generation, Signature Generation, Signature Verification, Key Agreement, Key Transport Crypto Officer Configuration, Initialization of Module, Encryption, Decryption, Random Numbers Generation, Digest Creation, Key Generation, Signature Generation, Signature Verification, Key Agreement, Key Transport Table 4: Roles The module meets all FIPS 140-2 Level 1 requirements for Roles and Services, implementing both User and Crypto Officer roles. 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. No further authentication is required. The Crypto Officer can initialize the Module. 4.2. Services Role Algorithm/Ser CSP Modes FIPS Standard Access vice Approved (Read, (Cert #) Write, Execute) AES ECB, CBC, FIPS 197 R, W, EX User, Crypto 128, 192, Cert #2351, 256 bit keys Officer 2411 (encryption and CFB1, CFB8, decryption) CFB128, OFB, CTR XTS with AES 128, 256 bit XTS SP 800-38E R, W, EX User, Crypto Cert#2351, Officer keys 2411 (encryption and decryption) GCM with AES R, W, EX User, Crypto 128, 192, Tag length Cert#2351, SP 800-38D, Officer 256 bit keys, supports 32, 2411 compliant to (encryption and 96 bit IV 64, 96, 104, section 8.2.1 decryption) 112, 120, 128 supported, for IV generation MAX IV length 1024 SP 800-67 R, W, EX User, Crypto Triple-DES 2 Key and 3 CBC, ECB, Cert #1471, Key OFB, CFB Officer 1501 (encryption and decryption) N/A FIPS 198 R, W, EX User, Crypto HMAC (with At least 112 Cert #1458, Officer SHA-1, SHA-224, bits HMAC 1496 SHA-256, SHA- Key 384, SHA-512) (message digest ) © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 9 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy N/A N/A FIPS 180-4 R, W, EX User, Crypto SHA-1 Cert #2026, Officer 2069 SHA-224 SHA-256 SHA-384 SHA-512 (message digest) SP 800-38B User, Crypto CMAC generate 128, 192, Supports 0 Cert#2351, R, W, EX and verify with 256 bit keys length, CMAC Officer 2411 AES length supports Min 2, Max 16 SP 800-38C R, W, EX User, Crypto CCM generate 128, 192, Tag length Cert#2351, Officer and verify with 256 bit keys supports 4, 6, 2411 AES 8, 10, 12, 14, 16 SP 800-38B R, W, EX User, Crypto CMAC generate 3 key Triple- Supports 0 Cert #1471, and verify with DES length Officer 1501 Triple-DES Seed SP 800-90A R, W, EX User, Crypto DRBG HASH_DRBG, Cert #299, Officer 321 (Random HMAC_DRBG, number CTR_DRBG generation) N/A FIPS 186-2, R, W, EX User, Crypto ECDSA Cert #386, P-224, 256, Officer 396 384, 521 FIPS 186-4 (public key generation, signature generation ) N/A FIPS 186-2, R, W, EX User, Crypto ECDSA Cert #386, P-192, 224, Officer 396 256, 384, FIPS 186-4 (public key 521 verification, signature verification) P-224, 256, Section 5.7.1.2 Cert #56, 72 SP 800-56A R, W, EX User, Crypto KASECC Officer Component Test 384, 521 ECC CDH Primitive (key K-233, 283, establishment/ 409, 571 agreement) B-233, 283, 409, 571 N/A FIPS 186-2 R, W. EX User, Crypto RSA 2048 bit Cert #1212, keys Officer 1245 (key generation, signature generation, key transport) © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 10 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy N/A FIPS 186-2 R, W. EX User, Crypto RSA 1024, 2048 Cert #1212, bit keys Officer 1245 (signature verification) N/A FIPS 186-2, R, W, EX User, Crypto DSA 2048 bit Cert #735, Officer keys 753 FIPS 186-4 (key generation, domain parameters generation, signature generation) N/A FIPS 186-2, R, W, EX User, Crypto DSA 1024, 2048 Cert #735, bit keys Officer 753 FIPS 186-4 (domain parameters verification, signature verification) R, W, EX User, Crypto RNG Seed and AES-128, AES- Cert #1171, ANSI X9.31 Officer Seed Key 192, AES-256 1190 ANSI X9.31 N/A N/A - N/A Crypto Officer Initialization N/A N/A N/A - N/A User, Crypto Self Test N/A Officer (self test is executed automatically when device is booted or restarted) N/A N/A - R User, Crypto Check N/A Officer Status/Get State N/A N/A - R, W, EX Crypto Officer Configuration N/A N/A - R, W, EX User, Crypto Zeroization of AES/Triple- N/A Symmetric Keys DES Keys Officer N/A - R, W, EX User, Crypto Zeroization of HMAC Keys N/A Officer HMAC Keys N/A - R, W, EX User, Crypto Zeroization of RSA/DSA/ N/A Officer Asymmetric ECDSA Keys Keys Table 5: Services The API document associated with the Security Functions is provided upon request. Caveat 2: NIST SP 800-131A describes the transition associated with the use of cryptographic algorithms and key lengths. Based on the information included in this publication, the following algorithms implemented in this cryptographic module will become “disallowed” after 2013 or 2015, so their usage is discouraged as they cannot be used in FIPS mode after the transition period: © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 11 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy DSA Key Generation and Digital Signature Generation with keys of length < 2048 bits • RSA Key Generation and Digital Signature Generation with keys of length < 2048 bits • EC Diffie- Hellman’s Key Agreement using elliptic curves with keys of length < 224 bits • RSA Key Wrapping with keys of length < 2048 bits • RNG specified in ANSI X9.31 • SHA-1 for digital signature generation • HMAC with key lengths < 112 bits • Caveat 3: Elliptic Curve Diffie-Hellman (ECDH) with 233-571 bits curves (P-224, P-256, P-384, P- 521, K-233, K-283, K-409, K-571, B-233, B-283, B-409, B-571) providing 112-256 bits of security strength. Caveat 4: RSA Encrypt/Decrypt for Key Wrapping with 2048-4096 bits of keys to provide 112-150 bits of security strength. Caveat 5: The module generates cryptographic keys whose strengths are modified by available entropy. Caveat 6: In case the Module’s power is lost and then restored, the calling application must ensure that the keys used for the AES GCM encryption/decryption are re-distributed. The following table identifies the non-FIPS-approved services: Role Service CSP Access (Read, (Description) Write, Execute) Block Ciphers User, Crypto AES CTR mode 128, 192, 256 bit R, W, EX Officer Symmetric keys (encryption and decryption) User, Crypto Triple-DES CTR mode 2-key and 3-key R, W, EX Officer (encryption and decryption) User, Crypto Blowfish variable key length from 32 R, W, EX Officer (encryption and decryption) bits up to 448 bits User, Crypto RC2 Variable key size from 8 bits R, W, EX Officer (encryption and decryption) up to 1024 bits User, Crypto RC4 Variable key size from 40 R, W, EX Officer (encryption and decryption) bits up to 2048 bits Asymmetric Ciphers User, Crypto RSA (key generation) 1024 bits modulus size R, W, EX Officer User, Crypto RSA (signature generation) 1024 bits modulus size, or R, W, EX Officer using SHA-1 for any modulus size © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 12 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy Role Service CSP Access (Read, (Description) Write, Execute) User, Crypto DSA (domain parameter 1024 bits modulus size R, W, EX Officer generation, key generation and signature generation) User, Crypto ECDSA (P-192 for public key Asymmetric key pair R, W, EX Officer generation and signature generation) Message Digest/Message Authentication Code (MAC) User, Crypto MDC-2 N/A R, W, EX Officer (cryptographic hash) User, Crypto MD4 N/A R, W, EX Officer (cryptographic hash) User, Crypto MD5 N/A R, W, EX Officer (cryptographic hash) User, Crypto RIPEMD-160 N/A R, W, EX Officer (cryptographic hash) Key Establishment User, Crypto Diffie-Hellman (non- Asymmetric key pair, secret R, W, EX Officer compliant) key (Key Agreement) User, Crypto EC Diffie-Hellman (P-192, K- Asymmetric key pair, secret R, W, EX 163, B-163; non-compliant) Officer key (Key Agreement) User, Crypto RSA Key Transport 1024 bits Asymmetric key R, W, EX Officer pair Non-approved RNGs (The following RNGs are available only in Non-approved mode) User, Crypto DRBG (non-compliant; SP Entropy input string, seed R, W, EX Officer 800-90A: Dual EC DRBG) and s User, Crypto md_rand.c (Non Approved Seed R, W, EX Officer RNG) Table 6: Non-Approved Services 4.3. Operator Authentication There is no operator authentication; assumption of role is implicit by action. 4.4. Mechanism and Strength of Authentication No authentication is required at security level 1; authentication is implicit by assumption of the role. © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 13 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 5. Finite State Machine For information pertaining to the Finite State Model, please refer to the Functional Design document. © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 14 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 6. Physical Security The module is comprised of software only and thus does not claim any physical security. © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 15 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 7. Operational Environment This module will operate in a modifiable operational environment per the FIPS 140-2 definition. Please refer to Table 2 in section 2.1 for information on tested configuration and the operational environment. 7.1. Policy The operating system shall be restricted to a single operator mode of operation (i.e., concurrent operators are explicitly excluded). The external application that makes calls to the cryptographic module is the single user of the cryptographic module, even when the application is serving multiple clients. © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 16 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 8. Cryptographic Key Management 8.1. Random Number Generation The Module employs an ANSI X9.31 compliant random number generator and SP 800-90A compliant DRBG services for creation of cryptographic keys and CSPs. For more details on the RNG and DRBG, please refer to the Functional Design document. The calling application is responsible for storage of generated keys returned by the Module. The seeds and entropy input are provided to the Module by the calling application. Module users (the calling application) shall use entropy sources that meet the security strength required for the random number generation mechanism: 128 bits for the RNG based on ANS X9.31, and as shown in Table 2, Table 3, and Table 4 in SP 800-90A for DRBG. The entropy is supplied by means of callback functions. Those functions must return an error if the minimum entropy strength cannot be met. Caveat 7: The encryption strength of AES keys are modified by available entropy of seeds that are provided to the RNG and DRBG. The module uses a FIPS-Approved DRBG or ANSI X9.31 RNG as an input to create the following keys/CSPs:  AES key  Triple-DES key  RSA key pair  DSA key pair  EC Diffie-Hellman CSPs  ECDSA key pair  HMAC key The module does not output intermediate values of keys/CSPs. 8.2. Key Entry and Output The module does not support manual key entry or key output. Keys or other CSPs can only be exchanged between the module and the calling application using appropriate API calls. 8.3. Key Storage Keys are not stored inside the crypto module. A pointer to plaintext key is passed through. Intermediate/temporary key storages are immediately zeroized. 8.4. Zeroization Procedure Zeroization of sensitive data is performed automatically by API function calls for temporarily stored CSPs. All keys and CSPs are ephemeral and are destroyed when released by the appropriate API function calls. In order to zeroize, keys and other CSPs appropriate zeroization APIs are called, which in turn calls another internal API function that overwrites the memory with an algorithm that depends on the pointer to the value, but not the value itself. In regards to key generation, the external application must call the respective zeroization functions. Intermediate key storages are immediately assigned to zero. For more details on zeroization and related APIs, please refer to the Functional Design document. © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 17 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 8.5. Key Establishment The module uses SP 800-56A based on the EC Diffie-Hellman key agreement and RSA for key transport/key wrapping. Please see caveat 3 and 4 for information regarding their security strength. © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 18 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 9. Electromagnetic Interference/Electromagnetic Compatibility (EMI/EMC) Lab Name: PC Engineering Laboratory, Inc FCC Registration: #90864 For information related to FCC ID of the devices, please refer to the Functional Design document. © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 19 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 10. Self Tests The module performs an integrity test, as well as known answer tests upon initialization of the module and before the module becomes usable. If self tests fail, the module is in error state. In error state, no cryptographic operation is allowed, except the invocation of on demand self test. Self test consists of the following tests: 10.1. Power-Up Tests The module performs all power-up self tests during the loading phase of the module. Upon initialization and successful completion of power on self tests, the module then enters Non-FIPS mode and it is ready to be used. In order to switch to FIPS-Approved mode, the module performs the integrity test and all known answer tests (KATs) by invoking the API, FIPS_mode_set(FIPS_MODE_ON). Upon successful execution of KATs as listed in table 6, the module will be in FIPS-Approved mode. Please note that a DSA pair-wise consistency test is implemented instead of a KAT as a part of the power on self tests. The module performs the integrity test, as well as all the KATs in both FIPS-Approved and Non-FIPS mode. The module enters error state if the conditional tests fail in either mode. 10.1.1. Cryptographic algorithm tests (Known Answer Tests) Cryptographic algorithm test using a known answer will be conducted for all cryptographic functions (e.g., encryption, decryption, and random number generation) of each Approved cryptographic algorithm implemented by the module in FIPS-Approved mode. Algorithm Test AES (separate encrypt and decrypt, ECB mode, 128 bit key) KAT AES CCM (separate encrypt and decrypt, 192 key length) KAT AES GCM (separate encrypt and decrypt, 256 key length) KAT AES CMAC (generate and verify CBC mode, 128, 192, 256 key KAT lengths) XTS-AES 128- or 256-bit key size to support XTS-AES-128 or KAT XTS-AES-256 respectively Triple-DES (separate encrypt and decrypt, ECB mode, 3 Key) KAT Triple-DES CMAC generate and verify, CBC mode, 3-Key KAT RSA (signature generation/verification using 2048-bit key, KAT SHA-256) DSA (signature generation/verification using 2048-bit key, Pair-wise consistency test SHA-384) ECC CDH shared secret calculation per section 5.7.1.2 of SP KAT 800-56A, IG 9.6 ECDSA PCT (key generation, signature, and verification using Pair-wise consistency test and KAT © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 20 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy Algorithm Test P-224, K-233 and SHA-512) ANSI X9.31 RNG (128-, 192-, 256-bit AES keys) KAT KAT DRBG 800-90A: CTR_DRBG (AES, 256-bit with and without derivation function) HASH_DRBG (SHA-256) HMAC_DRBG (SHA-256) HMAC-SHA-1 KAT HMAC-SHA-224 KAT HMAC-SHA-256 KAT HMAC-SHA-384 KAT HMAC-SHA-512 KAT SHA-1 KAT SHA-224 Tested as part of HMAC-SHA-224 Tested as part of HMAC-SHA-256 SHA-256 SHA-384 Tested as part of HMAC-SHA-384 Tested as part of HMAC-SHA-512 SHA-512 Table 7: Power-Up Tests 10.1.2. Integrity test The module’s integrity test is performed using HMAC-SHA-256. Build Time  HMAC-SHA-256 calculated on libfips_crypto.so (dynamic library) file o  HMAC appended to libfips_crypto.so file Run Time  libfips_crypto.so is read as a file o When algorithm self tests are completed, integrity test routine is called o Perform HMAC-SHA-256 on the read libfips_crypto.so value in ram  Read stored HMAC located after libfips_crypto.so (last 32 bytes)   If calculated and stored values do not match, set error state, FIPS_R_FINGERPRINT_DOES_NOT_MATCH and the system property as “error_integrity” © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 21 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 10.2. Conditional Tests Algorithm Test DSA Key generation, Pair-wise consistency test ECDSA Key generation, Pair-wise consistency test RSA Key generation, Pair-wise consistency test ANSI X9.31 RNG Continuous test SP 800-90A DRBG Continuous test Table 8: Conditional Tests 10.2.1. Pair-wise consistency test A pair-wise consistency test must be conducted for every key generation. The module implements RSA, DSA and ECDSA pair-wise consistency tests during key generation. If the test fails, it updates the FIPS status to error. 10.2.2. Continuous random number generator (CRNG) test The continuous random number generator test implemented in the DRBG as well as in ANS X9.31 RNG and it is as follows: the CRNG test consists of a priming test which is implemented by using the very first RNG value to initialize the comparing value, discarding the RNG value and obtaining the next round of the RNG for output to the caller. The module performs the CRNG test every time the random number generation service is invoked. The very first random number is stored and it is compared against the second random number. If the two random numbers are the same, then the CRNG test fails and the module enters an error state. If the two random numbers are different, the CRNG test passes. © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 22 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 11. Design Assurance 11.1. Configuration Management All source code is maintained in internal source code servers and the tools, Perforce and SVN, are used as code control. Perforce is used for commercial products and SVN is used for in-development projects. Release is based on the Change List number, which is auto-generated. Every check-in process creates a new change list number. Versions of controlled items include information about each version. For documentation, revision history inside the document provides the current version of the document. Version control maintains the all the previous version and the version control system automatically numbers revisions. For source code, unique information is associated with each version such that source code versions can be associated with binary versions of the final product. 11.2. Delivery and Operation The crypto module is never released as source code. The module sources are stored and maintained at a secure development facility with controlled access. The development team and the manufacturing factory share a secured internal server for exchanging binary software images. The factory is also a secure site with strict access control to the manufacturing facilities. The module binary is installed on the mobile devices (phone and tablets) using direct binary image installation at the factory. The mobile devices are then delivered to mobile service operators. Users cannot install or modify the module. The developer also has the capability to deliver software updates to service operators who in turn can update end-user phones and tablets using Over-The-Air (OTA) updates. Alternatively, the users may bring their mobile devices to service stations where authorized operators may use developer-supplied tools to install software updates on the phone. The developer vets all service providers and establishes secure communication with them for delivery of tools and software updates. If the binary is modified by unauthorized entity, the device has a feature to detect the change and thus not accept the binary modified by an unauthorized entity. © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 23 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 12. Mitigation of Other Attacks No other attacks are mitigated. © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 24 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 13. Glossary and Abbreviations AES Advanced Encryption Specification CAVP Cryptographic Algorithm Validation Program CBC Cypher Block Chaining CCM Counter with Cipher Block Chaining-Message Authentication Code CFB Cypher Feedback CC Common Criteria CMT Cryptographic Module Testing CMVP Cryptographic Module Validation Program CSP Critical Security Parameter CVT Component Verification Testing DES Data Encryption Standard DSA Digital Signature Algorithm EAL Evaluation Assurance Level FSM Finite State Model HMAC Hash Message Authentication Code KAT Known Answer Test MAC Message Authentication Code NIST National Institute of Science and Technology NVLAP National Voluntary Laboratory Accreditation Program OFB Output Feedback O/S Operating System OTA Over-The-Air RNG Random Number Generator RSA Rivest, Shamir, Addleman SDK Software Development Kit SHA Secure Hash Algorithm SHS Secure Hash Standard SLA Service Level Agreement SOF Strength of Function SVT Scenario Verification Testing TDES Triple DES UI User Interface © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 25 of 26 Samsung OpenSSL Cryptographic Module FIPS 140-2 Security Policy 14. References [1] FIPS 140-2 Standard, http://csrc.nist.gov/groups/STM/cmvp/standards.html [2] FIPS 140-2 Implementation Guidance, http://csrc.nist.gov/groups/STM/cmvp/standards.html [3] FIPS 140-2 Derived Test Requirements, http://csrc.nist.gov/groups/STM/cmvp/standards.html [4] FIPS 197 Advanced Encryption Standard, http://csrc.nist.gov/publications/PubsFIPS.html [5] FIPS 180-4 Secure Hash Standard, http://csrc.nist.gov/publications/PubsFIPS.html [6] FIPS 198-1 The Keyed-Hash Message Authentication Code (HMAC), http://csrc.nist.gov/publications/PubsFIPS.html [7] FIPS 186-4 Digital Signature Standard (DSS), http://csrc.nist.gov/publications/PubsFIPS.html © 2014 Samsung/atsec information security. This document can be reproduced and distributed only whole and intact, including this copyright notice. 26 of 26