Kernel Crypto API Cryptographic Module version 1.0
FIPS 140-2 Non-Proprietary Security Policy
Version 1.3
Last update: 2020-03-02
Prepared by: atsec information security corporation 9130 Jollyville Road, Suite 260 Austin, TX 78759 www.atsec.com
© 2020 Canonical Ltd. / atsec information security
This document can be reproduced and distributed only whole and intact, including this copyright notice.
- Kernel Crypto API Cryptographic Module
- FIPS 140-2 Non-Proprietary Security Policy
Table of Contents
1. Cryptographic Module Specification .....................................................................................................5
1.1. Module Overview .....................................................................................................................................5 1.2. Modes of Operation .................................................................................................................................9
2. Cryptographic Module Ports and Interfaces ........................................................................................10 3. Roles, Services and Authentication .....................................................................................................11
3.1. Roles .......................................................................................................................................................11 3.2. Services...................................................................................................................................................11 3.3. Algorithms ..............................................................................................................................................13
3.3.1. 3.3.2. 3.3.3. 3.3.4.
Ubuntu 16.04 LTS 64-bit Little Endian Running on POWER System...............................................13 Ubuntu 16.04 LTS 64-bit Running on Intel® Xeon® Processor .......................................................17 Ubuntu 16.04 LTS 64-bit Running on z System...............................................................................24 Non-Approved Algorithms..............................................................................................................27
3.4. Operator Authentication ........................................................................................................................29
4. Physical Security ................................................................................................................................30 5. Operational Environment...................................................................................................................31
5.1. Applicability ............................................................................................................................................31 5.2. Policy.......................................................................................................................................................31
6. Cryptographic Key Management.........................................................................................................32
6.1. Random Number Generation.................................................................................................................32 6.2. Key Generation.......................................................................................................................................33 6.3. Key Agreement / Key Transport / Key Derivation ..................................................................................33 6.4. Key Entry / Output..................................................................................................................................33 6.5. Key / CSP Storage....................................................................................................................................33 6.6. Key / CSP Zeroization..............................................................................................................................33
7. Electromagnetic Interference/Electromagnetic Compatibility (EMI/EMC) ............................................34 8. Self-Tests...........................................................................................................................................35
8.1. Power-Up Tests.......................................................................................................................................35
8.1.1. 8.1.2.
Integrity Tests.................................................................................................................................35 Cryptographic Algorithm Tests.......................................................................................................35
8.2. On-Demand Self-Tests............................................................................................................................37 8.3. Conditional Tests ....................................................................................................................................37
© 2020 Canonical Ltd. / atsec information security
- This document can be reproduced and distributed only whole and intact, including this copyright notice.
- 2 of 46
- Kernel Crypto API Cryptographic Module
- FIPS 140-2 Non-Proprietary Security Policy
9. Guidance ...........................................................................................................................................38
9.1. Crypto Officer Guidance.........................................................................................................................38
9.1.1. 9.1.2.
Module Installation.........................................................................................................................38 Operating Environment Configuration...........................................................................................38
9.2. User Guidance ........................................................................................................................................39
9.2.1. 9.2.2. 9.2.3. 9.2.4.
AES GCM IV.....................................................................................................................................39 AES XTS ...........................................................................................................................................40 Triple-DES encryption.....................................................................................................................40 Handling FIPS Related Errors ..........................................................................................................40
10. Mitigation of Other Attacks................................................................................................................41
© 2020 Canonical Ltd. / atsec information security
- This document can be reproduced and distributed only whole and intact, including this copyright notice.
- 3 of 46
- Kernel Crypto API Cryptographic Module
- FIPS 140-2 Non-Proprietary Security Policy
Copyrights and Trademarks
Ubuntu and Canonical are registered trademarks of Canonical Ltd. Linux is a registered trademark of Linus Torvalds.
© 2020 Canonical Ltd. / atsec information security
- This document can be reproduced and distributed only whole and intact, including this copyright notice.
- 4 of 46
- Kernel Crypto API Cryptographic Module
- FIPS 140-2 Non-Proprietary Security Policy
1. Cryptographic Module Specification
This document is the non-proprietary FIPS 140-2 Security Policy for version 1.0 of the Ubuntu Kernel Crypto API Cryptographic Module. It contains the security 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 software module.
The following sections describe the cryptographic module and how it conforms to the FIPS 140-2 specification in each of the required areas.
1.1. Module Overview
The Ubuntu Kernel Crypto API Cryptographic Module (hereafter referred to as “the module”) is a software module running as part of the operating system kernel that provides general purpose cryptographic services. The module provides cryptographic services to kernel applications through a C language Application Program Interface (API) and to applications running in the user space through an AF_ALG socket type interface. The module utilizes processor instructions to optimize and increase the performance of cryptographic algorithms.
For the purpose of the FIPS 140-2 validation, the module is a software-only, multi-chip standalone cryptographic module validated at overall security level 1. The table below shows the security level claimed for each of the eleven sections that comprise the FIPS 140-2 standard.
- FIPS 140-2 Section
- Security
Level
123456789
Cryptographic Module Specification Cryptographic Module Ports and Interfaces Roles, Services and Authentication Finite State Model
1111
- Physical Security
- N/A
- 1
- Operational Environment
Cryptographic Key Management EMI/EMC
11
- Self-Tests
- 1
10 Design Assurance 11 Mitigation of Other Attacks Overall Level
1N/A
1
Table 1 - Security Levels
© 2020 Canonical Ltd. / atsec information security
- This document can be reproduced and distributed only whole and intact, including this copyright notice.
- 5 of 46
- Kernel Crypto API Cryptographic Module
- FIPS 140-2 Non-Proprietary Security Policy
The cryptographic logical boundary consists of all kernel objects and the integrity check files used for Integrity Tests. The table below enumerates the components that comprise the module with their location in the target platform.
- Description
- Components
- Integrity test utility
- /usr/bin/sha512hmac
Integrity check HMAC file for the integrity test utility.
/usr/bin/.sha512hmac.hmac
- Static kernel binary
- On Power system:
/boot/vmlinux-4.4.0-1002-fips
On x86_64 and z system: /boot/vmlinuz-4.4.0-1002-fips
Integrity check HMAC file for static kernel binary
On Power system: /boot/.vmlinux-4.4.0-1002-fips.hmac
On x86_64 and z system: /boot/.vmlinuz-4.4.0-1002-fips.hmac
Cryptographic kernel object files
On Power system: /lib/modules/4.4.0-1002-fips/kernel/crypto/*.ko /lib/modules/4.4.0-1002-fips/kernel/arch/powerpc/crypto/*.ko /lib/modules/4.4.0-1002-fips/kernel/drivers/crypto/vmx/*.ko
On x86_64 system: /lib/modules/4.4.0-1002-fips/kernel/crypto/*.ko /lib/modules/4.4.0-1002-fips/kernel/arch/x86/crypto/*.ko
On z system: /lib/modules/4.4.0-1002-fips/kernel/crypto/*.ko /lib/modules/4.4.0-1002-fips/kernel/arch/s390/crypto/*.ko
Table 2 - Cryptographic Module Components
© 2020 Canonical Ltd. / atsec information security
- This document can be reproduced and distributed only whole and intact, including this copyright notice.
- 6 of 46
- Kernel Crypto API Cryptographic Module
- FIPS 140-2 Non-Proprietary Security Policy
The software block diagram below shows the module, its interfaces with the operational environment and the delimitation of its logical boundary, comprised of all the components within the BLUE box.
Figure 1 - Software Block Diagram
© 2020 Canonical Ltd. / atsec information security
- This document can be reproduced and distributed only whole and intact, including this copyright notice.
- 7 of 46
- Kernel Crypto API Cryptographic Module
- FIPS 140-2 Non-Proprietary Security Policy
The module is aimed to run on a general purpose computer (GPC); the physical boundary of the module is the tested platforms. Figure 2 shows the major components of a GPC.
Figure 2 - Cryptographic Module Physical Boundary
The module has been tested on the test platforms shown below.
- Test Platform
- Processor
- Processor
- Test Configuration
Architecture
IBM Power System S822L (PowerNV 8247-22L)
- POWER8
- Power system
Power system Power system
Ubuntu 16.04 LTS 64-bit Little Endian with/without Power ISA 2.07 (PAA)
IBM Power System S822LC (PowerNV 8001-22C)
POWER8 POWER8
Ubuntu 16.04 LTS 64-bit Little Endian with/without Power ISA 2.07 (PAA)
IBM Power System S822LC (PowerNV 8335-GTB)
Ubuntu 16.04 LTS 64-bit Little Endian with/without Power ISA 2.07 (PAA)
© 2020 Canonical Ltd. / atsec information security
- This document can be reproduced and distributed only whole and intact, including this copyright notice.
- 8 of 46
- Kernel Crypto API Cryptographic Module
- FIPS 140-2 Non-Proprietary Security Policy
- Test Platform
- Processor
- Processor
- Test Configuration
Architecture
Supermicro SYS-5018R-WR IBM z13
Intel® Xeon® CPU x86_64 E5-2620v3
Ubuntu 16.04 LTS 64-bit with/without AES-NI (PAA)
- z13
- z System
x86_64
Ubuntu 16.04 LTS 64-bit running on LPAR with/without CPACF (PAI)
Supermicro A1SAi
Supermicro SMX11SPL-F
- Intel®Atom™
- Ubuntu 16.04 LTS 64-bit with/without
- AES-NI (PAA)
- C2750
Intel® Xeon® Silver 4216
- x86_64
- Ubuntu 16.04 LTS 64-bit with/without
AES-NI (PAA)
Table 3 - Tested Platforms
Note: Per [FIPS 140-2_IG] G.5, the Cryptographic Module Validation Program (CMVP) makes no statement as to the correct operation of the module or the security strengths of the generated keys when this module is ported and executed in an operational environment not listed on the validation certificate.
1.2. Modes of Operation
The module supports two modes of operation:
FIPS mode (the Approved mode of operation): only approved or allowed security functions with sufficient security strength can be used.
non-FIPS mode (the non-Approved mode of operation): only non-approved security functions can be used.
The module enters FIPS mode after power-up tests succeed. Once the module is operational, the mode of operation is implicitly assumed depending on the security function invoked and the security strength of the cryptographic keys.
Critical security parameters used or stored in FIPS mode are not used in non-FIPS mode, and vice versa.
© 2020 Canonical Ltd. / atsec information security
- This document can be reproduced and distributed only whole and intact, including this copyright notice.
- 9 of 46
- Kernel Crypto API Cryptographic Module
- FIPS 140-2 Non-Proprietary Security Policy
2. Cryptographic Module Ports and Interfaces
As a software-only module, the module does not have physical ports. For the purpose of the FIPS 140-2 validation, the physical ports are interpreted to be the physical ports of the hardware platform on which it runs.
The logical interfaces are the API through which kernel modules request services, and the AF_ALG type socket that allows the applications running in the user space to request cryptographic services from the module. The following table summarizes the four logical interfaces:
FIPS Interface
Data Input
- Physical Port
- Logical Interface
Keyboard Display
API input parameters from kernel system calls, AF_ALG type socket.
Data Output
Control Input
API output parameters from kernel system calls, AF_ALG type socket.
- Keyboard
- API function calls, API input parameters for
control from kernel system calls, AF_ALG type socket, kernel command line.
Status Output
Power Input
- Display
- API return codes, AF_ALG type socket,
kernel logs.
- PC Power Supply Port
- N/A
Table 4 - Ports and Interfaces
© 2020 Canonical Ltd. / atsec information security
- This document can be reproduced and distributed only whole and intact, including this copyright notice.
- 10 of 46
- Kernel Crypto API Cryptographic Module
- FIPS 140-2 Non-Proprietary Security Policy
3. Roles, Services and Authentication
3.1. Roles
The module supports the following roles:
User role: performs cryptographic services (in both FIPS mode and non-FIPS mode), key zeroization, show status, and on-demand self-test.
Crypto Officer role: performs module installation and initialization.
The User and Crypto Officer roles are implicitly assumed by the entity accessing the module services.