| Standard | FIPS 140-3 |
|---|---|
| Overall level | 1 |
| Module type | Software |
| Embodiment | Multi-Chip Stand Alone |
| Status | Active |
| Sunset date | 7/29/2030 |
| Caveat | When operated in approved mode. No assurance of minimum security of SSPs (e.g., keys, bit strings) that are externally loaded, or of SSPs established with externally loaded SSPs. |
| Vendor | Apple Inc. |
flowchart LR
%% Deterministic review-risk graph for Apple corecrypto Module v13.0 [Apple silicon, Kernel, Software, SL1]
%% 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>Recovery</i>"]
C3["[low] Self-test / status surface<br/>(referenced in text)<br/><i>Self-Test<br/>Unauthenticated<br/>UnAuth</i>"]
C5["[low] Protocol / secure-channel<br/>references (may be KDF<br/>names, not a live channel)<br/><i>IKEV<br/>IPSEC<br/>HTTPS</i>"]
C6["[low] Operating system / runtime<br/>referenced (boundary<br/>membership not asserted)<br/><i>operating system<br/>kernel<br/>application</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."]
I5["Possible only, a protocol<br/>is referenced, but whether<br/>it is a live channel or<br/>only a KDF/algorithm name<br/>is unconfirmed."]
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?"]
R5["If a live TLS/SSH/IKE<br/>channel exists, could<br/>library CVEs apply, or is<br/>this only a<br/>KDF/documentation name?"]
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"]
E5["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>library identity and<br/>version ·<br/>certificate-validation<br/>behaviour · protocol-CVE<br/>disposition"]
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
C5 --> I5 --> R5 --> E5
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,C5,C6 clue;
class I2,I3,I5,I6 infer;
class R2,R3,R5,R6 risk;
class E2,E3,E5,E6 evidence;flowchart LR
%% Deterministic clue tier for Apple corecrypto Module v13.0 [Apple silicon, Kernel, Software, SL1]
%% 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>Recovery</i><br/>src: text:keyword"]
C3["[low] Self-test / status surface (referenced in text)<br/><i>Self-Test<br/>Unauthenticated<br/>UnAuth</i><br/>src: text:keyword"]
C5["[low] Protocol / secure-channel references (may be KDF names, not a live channel)<br/><i>IKEV<br/>IPSEC<br/>HTTPS</i><br/>src: text:keyword"]
C6["[low] Operating system / runtime referenced (boundary membership not asserted)<br/><i>operating system<br/>kernel<br/>application</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,C5,C6 clueLow;Apple Inc. Apple corecrypto Module v13.0 [Apple silicon, Kernel, Software, SL1] Prepared for: Apple Inc. One Apple Park Way Cupertino, CA 95014 Prepared by: atsec information security corporation
4516 Seton Center Parkway, Suite 250
Austin, TX 78759 www.atsec.com
| # | Section | Page |
|---|
This document may be reproduced and distributed only in its original entirely without revision.
| Item | Page |
|---|---|
| Table 1: Security Levels | 7 |
| Table 2: Tested Module Identification – Software, Firmware, Hybrid (Executable Code Sets) | 9 |
| Table 3: Tested Operational Environments - Software, Firmware, Hybrid | 11 |
| Table 4: Vendor-Affirmed Operational Environments - Software, Firmware, Hybrid | 12 |
| Table 5: Modes List and Description | 12 |
| Table 6: Approved Algorithms - AES-CBC | 12 |
| Table 7: Approved Algorithms - AES-CCM | 13 |
| Table 8: Approved Algorithms - AES-CFB128 | 13 |
| Table 9: Approved Algorithms - AES-CFB8 | 13 |
| Table 10: Approved Algorithms - AES-CTR | 13 |
| Table 11: Approved Algorithms - AES-ECB | 13 |
| Table 12: Approved Algorithms - AES-GCM | 14 |
| Table 13: Approved Algorithms - AES-KW | 14 |
| Table 14: Approved Algorithms - AES-OFB | 14 |
| Table 15: Approved Algorithms - AES-XTS | 14 |
| Table 16: Approved Algorithms - CTR_DRBG | 14 |
| Table 17: Approved Algorithms - ECDSA-KEYGEN | 14 |
| Table 18: Approved Algorithms - ECDSA-KEYVER | 14 |
| Table 19: Approved Algorithms - ECDSA-SIGGEN | 15 |
| Table 20: Approved Algorithms - ECDSA-SIGVER | 15 |
| Table 21: Approved Algorithms - HMAC-SHA1 | 15 |
| Table 22: Approved Algorithms - HMAC-SHA224 | 15 |
| Table 23: Approved Algorithms - HMAC-SHA256 | 15 |
| Table 24: Approved Algorithms - HMAC-SHA384 | 15 |
| Table 25: Approved Algorithms - HMAC-SHA512 | 16 |
| Table 26: Approved Algorithms - HMAC-SHA512/256 | 16 |
| Table 27: Approved Algorithms - RSA-SIGGEN | 16 |
| Table 28: Approved Algorithms - RSA-SIGVER | 16 |
| Table 29: Approved Algorithms - SHA1 | 16 |
| Table 30: Approved Algorithms - SHA224 | 16 |
| Table 31: Approved Algorithms - SHA256 | 17 |
| Table 32: Approved Algorithms - SHA384 | 17 |
| Table 33: Approved Algorithms - SHA512 | 17 |
| Table 34: Approved Algorithms - SHA512/256 | 17 |
| Table 35: Vendor-Affirmed Algorithms | 17 |
| Table 36: Non-Approved, Not Allowed Algorithms | 18 |
| Table 37: Security Function Implementations | 21 |
| Table 38: Entropy Certificates | 21 |
| Table 39: Entropy Sources | 22 |
| Table 40: Ports and Interfaces | 23 |
| Table 41: Roles | 24 |
List of Figures This document may be reproduced and distributed only in its original entirely without revision.
Trademarks Apple’s trademarks applicable to this document are listed in https://www.apple.com/legal/intellectual-property/trademark/appletmlist.html. Other company, product, and service names may be trademarks or service marks of others. This document may be reproduced and distributed only in its original entirely without revision.
| Section | Title | Security Level |
|---|---|---|
| 1 | General | 1 |
| 2 | Cryptographic module specification | 1 |
| 3 | Cryptographic module interfaces | 1 |
| 4 | Roles, services, and authentication | 1 |
| 5 | Software/Firmware security | 1 |
| 6 | Operational environment | 1 |
| 7 | Physical security | N/A |
| 8 | Non-invasive security | N/A |
| 9 | Sensitive security parameter management | 1 |
| 10 | Self-tests | 1 |
| 11 | Life-cycle assurance | 1 |
| 12 | Mitigation of other attacks | N/A |
This document is the non-proprietary FIPS 140-3 Security Policy for Apple corecrypto Module v13.0 [Apple silicon, Kernel, Software, SL1] 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-3 (Federal Information Processing Standards Publication 140-3) for This document provides all tables and diagrams (when applicable) required by NIST SP 800140Br1.
Overall Level 1 Table 1: Security Levels This document may be reproduced and distributed only in its original entirely without revision.
Purpose and Use: The Apple corecrypto Module v13.0 [Apple silicon, Kernel, Software, SL1] cryptographic module (hereafter referred to as “the module”) provides implementations of lowlevel cryptographic primitives to the Device OS’s kernels (iOS 16, iPadOS 16, watchOS 9, tvOS 16) Security Framework and Common Crypto. The module provides services intended to protect data in transit and at rest. The module is optimized for library use within the Device OS kernel space and does not contain any terminating assertions or exceptions. It is implemented as a Device OS dynamically loadable library. The library is loaded into the Device OS kernel and its cryptographic functions are made available to Device OS kernel services only. Any internal error detected by the module is returned to the caller with an appropriate return code. The calling Device OS kernel service must examine the return code and act accordingly. The module communicates any error status synchronously through the use of its documented return codes, thus indicating the module’s status. Caller-induced or internal errors do not reveal any sensitive material to callers. Module Type: Software Module Embodiment: MultiChipStand Cryptographic Boundary: The module cryptographic boundary is delineated by the dotted green rectangle in the Figure 1 where the Kernel Extension (KEXT) is a bundle that performs low-level tasks. KEXTs run in kernel space, which gives them elevated privileges and the ability to perform tasks that user-space apps can’t. This document may be reproduced and distributed only in its original entirely without revision.
Tested Module Identific Package or File Name
at Version
ion – Software, Firmw Software/ Firmware
a
re, Hybrid (Executable C Features
ode Sets): Integrity Test
| Tested Oper Operating System | ational Environments - Sof Hardware Platform | tware, Firmware, Hybr Processors | id: PAA/PAI | Version(s) | |
|---|---|---|---|---|---|
| Hypervisor | |||||
| or Host | |||||
| OS | |||||
| iPadOS 16 | iPad (5th generation) | Apple A Series A9 | Yes | NA | v13.0 |
| iPadOS 16 iPadOS 16 | iPad Pro 9.7-inch iPad (7th generation) | Apple A Series A9X Apple A Series A10 | Yes Yes | NA NA | v13.0 v13.0 |
Figure 1: Block Diagram Tested Operational Environment’s Physical Perimeter (TOEPP): The physical perimeter is represented by the most exterior black line in the block diagram Figure 1. The module executes within the kernel space of the computing platforms and operating systems listed in the Tested Operational Environments Table section 2.2.
xnu-10002.60.75.0.3 v13.0 N/A HMAC-SHA256 Fusion This document may be reproduced and distributed only in its original entirely without revision.
| Operating System | Hardware Platform | Processors | PAA/PAI | Version(s) | |
|---|---|---|---|---|---|
| Hypervisor | |||||
| or Host | |||||
| iPadOS 16 | iPad mini (5th | Apple A Series A12 | Yes | OS NA | v13.0 |
| iPadOS 16 | generation) iPad Pro 11-inch (1st | Bionic Apple A Series | Yes | NA | v13.0 |
| iPadOS 16 | generation) iPad Pro 11-inch (2nd | A12X Bionic Apple A Series | Yes | NA | v13.0 |
| iPadOS 16 | generation) iPad (9th generation) | A12Z Bionic Apple A Series A13 | Yes | NA | v13.0 |
| iPadOS 16 | iPad Air (4th | Bionic Apple A Series A14 | Yes | NA | v13.0 |
| iPadOS 16 | generation) iPad mini (6th | Bionic Apple A Series A15 | Yes | NA | v13.0 |
| iPadOS 16 | generation) iPad Pro 11-inch (3rd | Bionic Apple M Series M1 | Yes | NA | v13.0 |
| iPadOS 16 | generation) iPad Pro 11-inch (4th | Apple M Series M2 | Yes | NA | v13.0 |
| iOS 16 | generation) iPhone X | Apple A Series A11 | Yes | NA | v13.0 |
| iOS 16 | iPhone XS Max | Bionic Apple A Series A12 | Yes | NA | v13.0 |
| iOS 16 | iPhone 11 Pro | Bionic Apple A Series A13 | Yes | NA | v13.0 |
| iOS 16 | iPhone 12 | Bionic Apple A Series A14 | Yes | NA | v13.0 |
| iOS 16 | iPhone 13 Pro Max | Bionic Apple A Series A15 | Yes | NA | v13.0 |
| iOS 16 | iPhone 14 Pro Max | Bionic Apple A Series A16 | Yes | NA | v13.0 |
| watchOS | Apple Watch Series S4 | Bionic Apple S Series S4 | Yes | NA | v13.0 |
| 9 watchOS | Apple Watch Series S5 | Apple S Series S5 | Yes | NA | v13.0 |
| 9 watchOS | Apple Watch Series S6 | Apple S Series S6 | Yes | NA | v13.0 |
| 9 watchOS | Apple Watch Series S7 | Apple S Series S7 | Yes | NA | v13.0 |
| 9 watchOS | Apple Watch Series S8 | Apple S Series S8 | Yes | NA | v13.0 |
This document may be reproduced and distributed only in its original entirely without revision.
| Operating System | Hardware Platform | Processors | PAA/PAI | Version(s) | |
|---|---|---|---|---|---|
| Hypervisor | |||||
| or Host | |||||
| iPadOS 16 | iPad Pro 10.5-inch | Apple A Series | Yes | OS NA | v13.0 |
| tvOS 16 | Apple TV 4K (2nd | A10X Fusion Apple A Series A12 | Yes | NA | v13.0 |
| tvOS 16 | generation) Apple TV 4K (3rd | Bionic Apple A Series A15 | Yes | NA | v13.0 |
V Operating System iPadOS 16 iPadOS 16 iPadOS 16 iPadOS 16 iPadOS 16 iPadOS 16 iPadOS 16 iPadOS 16 iPadOS 16 iOS 16 iOS 16 iOS 16 iOS 16 iOS 16 iOS 16 iOS 16 iOS 16 iOS 16 iOS 16 iOS 16 iOS 16 iOS 16 iOS 16 watchOS 9 macOS 13 Ventura macOS 13 Ventura macOS 13 Ventura
endor-Affirmed O
p
e Hardware Platform iPad Pro 12.9-inch iPad (6th generation) iPad Pro 12.9-inch (2nd generation) iPad Air (3rd generation) iPad (8th generation) iPad Pro 12.9-inch (3rd generation) iPad Pro 12.9-inch (4th generation) iPad Pro 12.9-inch (5th generation) iPad Pro 12.9-inch (6th generation) iPhone 8 iPhone 8 Plus iPhone XS iPhone XR iPhone 11 iPhone 11 Pro Max iPhone SE (2nd generation) iPhone 12 mini iPhone 12 Pro iPhone 12 Pro Max iPhone 13 mini iPhone 13 iPhone 13 Pro iPhone 14 Pro Apple Watch SE Mac mini iMac (24-inch) MacBook Pro (14-inch, 2021)
rational Environments - Software, Fi
r
Table 3: Tested Operational Environments - Software, Firmware, Hybrid Vendor-Affirmed Operational Environments - Software, Firmware, Hybrid: This document may be reproduced and distributed only in its original entirely without revision.
| Description | Type | Status Indicator | ||
|---|---|---|---|---|
| Mode | ||||
| Name Approved mode | Approved mode of operation is entered when the module utilizes the services that use the security functions listed in the Approved Algorithms Table and the Vendor | Approved | return a '1' from fips_allowed_mode() for block cipher functions and fips_allowed() for all other services to indicate the executed cryptographic algorithm was approved | |
| Non- Approved mode | Affirmed Algorithms Table. Non-Approved mode of operation is entered when the module utilizes non-approved security functions in the Table Non-Approved Algorithms Not Allowed in the Approved | Non- Approved | return a '0' from fips_allowed_mode() for block cipher functions and fips_allowed() for all other services to indicate the executed cryptographic algorithm was non- approved |
| A | ES-CBC | ||
|---|---|---|---|
| Algorithm AES-CBC | CAVP Cert A3682 | Properties Direction - Decrypt, Encrypt | Reference SP 800-38A |
| AES-CBC | A3683 | Key Length - 128, 192, 256 Direction - Decrypt, Encrypt | SP 800-38A |
Table 4: Vendor-Affirmed Operational Environments - Software, Firmware, Hybrid CMVP makes no statement as to the correct operation of the module or the security strengths of the generated keys when so ported if the specific operational environment is not listed on the validation certificate.
None for this module Modes List and Description: This document may be reproduced and distributed only in its original entirely without revision.
| A | ES-CCM | |||
|---|---|---|---|---|
| Algorithm | CAVP Cert | Properties | Reference |
| A | ES-CFB128 | ||
|---|---|---|---|
| Algorithm AES-CFB128 | CAVP Cert A3682 | Properties Direction - Decrypt, Encrypt | Reference SP 800-38A |
| AES-CFB128 | A3683 | Key Length - 128, 192, 256 Direction - Decrypt, Encrypt | SP 800-38A |
| A | ES-CFB8 | |||
|---|---|---|---|---|
| Algorithm AES-CFB8 | CAVP Cert A3683 | Properties Direction - Decrypt, Encrypt | Reference SP 800-38A |
| A | ES-CTR | ||
|---|---|---|---|
| Algorithm AES-CTR | CAVP Cert A3683 | Properties Direction - Decrypt, Encrypt | Reference SP 800-38A |
| AES-CTR | A3685 | Key Length - 128, 192, 256 Direction - Decrypt, Encrypt | SP 800-38A |
| A | ES-ECB | ||
|---|---|---|---|
| Algorithm AES-ECB | CAVP Cert A3682 | Properties Direction - Decrypt, Encrypt | Reference SP 800-38A |
| AES-ECB | A3683 | Key Length - 128, 192, 256 Direction - Decrypt, Encrypt | SP 800-38A |
| AES-ECB | A3685 | Key Length - 128, 192, 256 Direction - Decrypt, Encrypt | SP 800-38A |
| A | ES-GCM | |||
|---|---|---|---|---|
| Algorithm AES-GCM | CAVP Cert A3685 | Properties Direction - Decrypt, Encrypt IV Generation - Internal IV Generation Mode - 8.2.1 | Reference SP 800-38D |
Table 7: Approved Algorithms - AES-CCM Table 8: Approved Algorithms - AES-CFB128 Table 9: Approved Algorithms - AES-CFB8 Table 10: Approved Algorithms - AES-CTR Table 11: Approved Algorithms - AES-ECB This document may be reproduced and distributed only in its original entirely without revision.
| A | ES-KW | |||
|---|---|---|---|---|
| Algorithm AES-KW | CAVP Cert A3683 | Properties Direction - Decrypt, Encrypt | Reference SP 800-38F |
| A | ES-OFB | ||
|---|---|---|---|
| Algorithm AES-OFB | CAVP Cert A3682 | Properties Direction - Decrypt, Encrypt | Reference SP 800-38A |
| AES-OFB | A3683 | Key Length - 128, 192, 256 Direction - Decrypt, Encrypt | SP 800-38A |
| A | ES-XTS | |||
|---|---|---|---|---|
| Algorithm AES-XTS Testing Revision 2.0 | CAVP Cert A3682 | Properties Direction - Decrypt, Encrypt | Reference SP 800-38E |
| C | TR_DRBG | ||
|---|---|---|---|
| Algorithm Counter DRBG | CAVP Cert A3683 | Properties Prediction Resistance - No Mode - AES-128, AES-256 | Reference SP 800-90A Rev. 1 |
| Counter DRBG | A3685 | Derivation Function Enabled - Yes Prediction Resistance - No Mode - AES-128, AES-256 | SP 800-90A Rev. 1 |
| E | CDSA-KEYGEN | |||
|---|---|---|---|---|
| Algorithm ECDSA KeyGen (FIPS186-4) | CAVP Cert A3686 | Properties Curve - P-224, P-256, P-384, P-521 Secret Generation Mode - Testing | Reference FIPS 186-4 |
| E | CDSA-KEYVER | |||
|---|---|---|---|---|
| Algorithm | CAVP Cert | Properties | Reference |
Table 12: Approved Algorithms - AES-GCM Table 13: Approved Algorithms - AES-KW Table 14: Approved Algorithms - AES-OFB Table 15: Approved Algorithms - AES-XTS CTR_DRBG Table 16: Approved Algorithms - CTR_DRBG Candidates Table 17: Approved Algorithms - ECDSA-KEYGEN Table 18: Approved Algorithms - ECDSA-KEYVER This document may be reproduced and distributed only in its original entirely without revision.
| E | CDSA-SIGGEN | |||
|---|---|---|---|---|
| Algorithm ECDSA SigGen (FIPS186-4) | CAVP Cert A3686 | Properties Component - No Curve - P-224, P-256, P-384, P-521 Hash Algorithm - SHA2-224, SHA2-256, | Reference FIPS 186-4 |
| E | CDSA-SIGVER | |||
|---|---|---|---|---|
| Algorithm ECDSA SigVer (FIPS186-4) | CAVP Cert A3686 | Properties Component - No Curve - P-224, P-256, P-384, P-521 Hash Algorithm - SHA-1, SHA2-224, SHA2- | Reference FIPS 186-4 |
| H | MAC-SHA1 | |||
|---|---|---|---|---|
| Algorithm HMAC-SHA- | CAVP Cert A3686 | Properties Key Length - Key Length: 8-262144 Increment | Reference FIPS 198-1 |
| H | MAC-SHA224 | |||
|---|---|---|---|---|
| Algorithm HMAC-SHA2- | CAVP Cert A3686 | Properties Key Length - Key Length: 8-262144 | Reference FIPS 198-1 |
| H | MAC-SHA256 | ||
|---|---|---|---|
| Algorithm HMAC-SHA2- | CAVP Cert A3686 | Properties Key Length - Key Length: 8-262144 | Reference FIPS 198-1 |
| 256 HMAC-SHA2- | A3687 | Increment 8 Key Length - Key Length: 8-262144 | FIPS 198-1 |
| H | MAC-SHA384 | ||
|---|---|---|---|
| Algorithm HMAC-SHA2- | CAVP Cert A3684 | Properties Key Length - Key Length: 8-262144 | Reference FIPS 198-1 |
| 384 HMAC-SHA2- | A3686 | Increment 8 Key Length - Key Length: 8-262144 | FIPS 198-1 |
Table 19: Approved Algorithms - ECDSA-SIGGEN Table 20: Approved Algorithms - ECDSA-SIGVER
1 8
Table 21: Approved Algorithms - HMAC-SHA1 Table 22: Approved Algorithms - HMAC-SHA224 Table 23: Approved Algorithms - HMAC-SHA256 Table 24: Approved Algorithms - HMAC-SHA384 This document may be reproduced and distributed only in its original entirely without revision.
| H | MAC-SHA512 | ||
|---|---|---|---|
| Algorithm HMAC-SHA2- | CAVP Cert A3684 | Properties Key Length - Key Length: 8-262144 | Reference FIPS 198-1 |
| 512 HMAC-SHA2- | A3686 | Increment 8 Key Length - Key Length: 8-262144 | FIPS 198-1 |
| H | MAC-SHA512/256 | ||
|---|---|---|---|
| Algorithm HMAC-SHA2- | CAVP Cert A3684 | Properties Key Length - Key Length: 8-262144 | Reference FIPS 198-1 |
| 512/256 HMAC-SHA2- | A3686 | Increment 8 Key Length - Key Length: 8-262144 | FIPS 198-1 |
| R | SA-SIGGEN | |||
|---|---|---|---|---|
| Algorithm RSA SigGen (FIPS186-4) | CAVP Cert A3686 | Properties Signature Type - PKCS 1.5, PKCSPSS | Reference FIPS 186-4 |
| R | SA-SIGVER | |||
|---|---|---|---|---|
| Algorithm RSA SigVer (FIPS186-4) | CAVP Cert A3686 | Properties Signature Type - PKCS 1.5, PKCSPSS F | Reference IPS 186-4 |
| S | HA1 | |||
|---|---|---|---|---|
| Algorithm SHA-1 | CAVP Cert A3686 | Properties Message Length - Message Length: 0-32768 | Reference FIPS 180-4 |
| S | HA224 | |||
|---|---|---|---|---|
| Algorithm SHA2- | CAVP Cert A3686 | Properties Message Length - Message Length: 0-32768 | Reference FIPS 180-4 |
Table 25: Approved Algorithms - HMAC-SHA512 Table 26: Approved Algorithms - HMAC-SHA512/256 Modulo - 2048, 3072, 4096 Table 27: Approved Algorithms - RSA-SIGGEN Modulo - 1024, 2048, 3072, 4096 Table 28: Approved Algorithms - RSA-SIGVER SHA1 Table 29: Approved Algorithms - SHA1 SHA224
224 Increment 8
Table 30: Approved Algorithms - SHA224 This document may be reproduced and distributed only in its original entirely without revision.
| S | HA256 | ||
|---|---|---|---|
| Algorithm SHA2- | CAVP Cert A3686 | Properties Message Length - Message Length: 0-32768 | Reference FIPS 180-4 |
| 256 SHA2- | A3687 | Increment 8 Message Length - Message Length: 0-32768 | FIPS 180-4 |
| S | HA384 | ||
|---|---|---|---|
| Algorithm SHA2- | CAVP Cert A3684 | Properties Message Length - Message Length: 0-32768 | Reference FIPS 180-4 |
| 384 SHA2- | A3686 | Increment 8 Message Length - Message Length: 0-32768 | FIPS 180-4 |
| S | HA512 | ||
|---|---|---|---|
| Algorithm SHA2- | CAVP Cert A3684 | Properties Message Length - Message Length: 0-32768 | Reference FIPS 180-4 |
| 512 SHA2- | A3686 | Increment 8 Message Length - Message Length: 0-32768 | FIPS 180-4 |
| S | HA512/256 | ||
|---|---|---|---|
| Algorithm SHA2- | CAVP Cert A3684 | Properties Message Length - Message Length: 0-32768 | Reference FIPS 180-4 |
| 512/256 SHA2- | A3686 | Increment 8 Message Length - Message Length: 0-32768 | FIPS 180-4 |
| V | endor | - | A | ffirmed Algorithms: | ||
|---|---|---|---|---|---|---|
| Name | Properties | Implementation | Reference |
SHA256 Table 31: Approved Algorithms - SHA256 SHA384 Table 32: Approved Algorithms - SHA384 SHA512 Table 33: Approved Algorithms - SHA512 SHA512/256 Table 34: Approved Algorithms - SHA512/256 The FIPS 186-4 CAVP tests in the listed ACVP certificates above are mathematically identical to the FIPS 186-5 CAVP tests. Per FIPS 140-3 C.K Additional Comments 2, the module claims compliance with FIPS 186-5 tests. Vendor-Affirmed Algorithms: CKG Key Type:Asymmetric N/A SP800-133rev2 section 4 example 1 Table 35: Vendor-Affirmed Algorithms This document may be reproduced and distributed only in its original entirely without revision.
| Name | Use and Function |
|---|---|
| ANSI X9.63 KDF | Hash based Key Derivation Function |
| Blowfish CAST5 | Encryption / Decryption Encryption / Decryption Key Sizes: 40 to 128 bits in 8-bit increments |
| DES ECDSA | Encryption / Decryption Key Size: 56-bits Generation / Verification / SigGen / SigVer with |
| ECDSA KeyGen | curve P-192 Key Pair Generation for compact point |
| EdDSA | representation of points Key Generation, Signature Generation, Signature Verification with Ed25519 |
| HKDF [SP800-56Crev2] Integrated Encryption Scheme on elliptic curves (ECIES) | Key Derivation Function Encryption / Decryption |
| MD2 | Message Digest size: 128-bit |
| MD4 | Message Digest size: 128-bit |
| OMAC (One-Key CBC MAC) | MAC generation /verification |
| RC2 | Encryption / Decryption Key Sizes 8 to 1024-bits |
| RC4 | Encryption / Decryption Key Sizes 8 to 4096-bits |
| RIPEMD RSA SigGen | Message Digest size: 160-bits PKCS#1 v1.5 and PSS; Signature Generation Key Size < 2048 |
| RSA SigVer | Signature Verification Key Size < 1024 |
| RSA Key Wrapping | OAEP, PKCS#1 v1.5 and -PSS schemes |
| Triple-DES [SP 800-67r2] | CBC, CTR, CFB64, ECB, CFB8, OFB |
| MD5 | Message Digest size: 128-bit |
Non-Approved, Allowed Algorithms: N/A for this module. Non-Approved, Allowed Algorithms with No Security Claimed: N/A for this module. Non-Approved, Not Allowed Algorithms: RFC 6637 Key Derivation SHA-256, SHA-512, AES-128, AES-256 Table 36: Non-Approved, Not Allowed Algorithms
This document may be reproduced and distributed only in its original entirely without revision.
| Name Unauthenticated Symmetric Encryption and Decryption | Type BC-UnAuth | Description Key Size / Key Strength: 128, 192, 256-bits (for all but XTS, which supports 128 and 256 bit keys) | Properties AES [FIPS 197; SP 800- 38A]:ECB, CBC, CFB8, CFB128, OFB, CTR AES [FIPS 197; SP 800-38E]:XTS | Algorithms AES-CBC: (A3682, A3683) AES-CFB128: (A3682, A3683) AES-XTS Testing Revision 2.0: (A3682) AES-ECB: (A3682, A3683, A3685) AES-OFB: (A3682, A3683) AES-CFB8: (A3683) AES-CTR: |
|---|---|---|---|---|
| Authenticated Symmetric Encryption and Decryption | BC-Auth | Key Size/ Key Strength: 128, 192, 256-bits | AES [FIPS 197; SP 800- 38C]:CCM AES [FIPS 197; SP 800- | (A3683, A3685) AES-CCM: (A3685) AES-GCM: (A3685) |
| Random Number Generation | DRBG | Key Length/ Key Strength: 128, 256 | 38D]:GCM CTR_DRBG [SP800- 90ARev1]:AES- 128, AES-256 Derivation Function Enabled No Prediction | Counter DRBG: (A3683, A3685) |
| ECDSA Asymmetric Key Generation | AsymKeyPair- KeyGen CKG | Curve: P-224, P- 256, P-384, P- 521. Key Strength: from 112 to 256 | Resistance key generation method:Testing Candidates Supported Curves:P-224, P- 256, P-384, P- | ECDSA KeyGen (FIPS186-4): (A3686) CKG: () Key Type: Asymmetric |
| ECDSA Public- Key Validation | AsymKeyPair- PubKeyVal | Curve: P-224, P- 256, P-384, P- 521. Key | 521 ECDSA [FIPS 186-5]:Public- Key Validation | ECDSA KeyVer (FIPS186-4): (A3686) |
(PKV) This document may be reproduced and distributed only in its original entirely without revision.
| Name | Type | Description Strength: from | Properties | Algorithms |
|---|---|---|---|---|
| ECDSA Digital Signature Generation | DigSig-SigGen | 112 to 256 Curve: P-224, P- 256, P-384, P- 521. Key Strength: from | ECDSA [FIPS 186-5]:Signature Generation | ECDSA SigGen (FIPS186-4): (A3686) |
| ECDSA Digital Signature Verification | DigSig-SigVer | 112 to 256 Curve: P-224, P- 256, P-384, P- 521. Key Strength: from | ECDSA [FIPS 186-5]:Signature Verification | ECDSA SigVer (FIPS186-4): (A3686) |
| HMAC Message Authentication | MAC | 112 to 256 Key Length 8 - 262144 bits/ Key Strength: 112 to 256 bits | HMAC [FIPS 198] (vng_ltc):SHA-1, SHA-224, SHA- 256, SHA-384, SHA-512, SHA- 512/256 HMAC [FIPS 198] (c_ltc):SHA-384, SHA-512, SHA- 512/256 HMAC [FIPS 198] (vng_neon):SHA- 256 | HMAC-SHA2- 384: (A3684, A3686) HMAC-SHA2- 512: (A3684, A3686) HMAC-SHA2- 512/256: (A3684, A3686) HMAC-SHA2- 256: (A3686, A3687) HMAC-SHA-1: (A3686) HMAC-SHA2- |
| key wrapping / key unwrapping | KTS-Wrap | Key Size/ Key Strength: 128, | KTS (AES) [SP 800-38F]:AES- | 224: (A3686) AES-KW: (A3683) |
| RSA Digital Signature Generation | DigSig-SigGen | 192, 256-bits Modulus: 2048, 3072, 4096. Key Strength: from 112 to 150 | KW RSA [FIPS 186- 5]:Signature Generation (PKCS#1 v1.5) | RSA SigGen (FIPS186-4): (A3686) |
| RSA Digital Signature Verification | DigSig-SigVer | Modulus: 1024 (legacy use per FIPS 140-3 IG C.K), 2048, 3072, | and (PKCS PSS) RSA [FIPS 186- 5]:Signature Verification PKCS#1 v1.5) | RSA SigVer (FIPS186-4): (A3686) |
This document may be reproduced and distributed only in its original entirely without revision.
| Name | Type | Description Strength: from | Properties | Algorithms |
|---|---|---|---|---|
| Message Digest | SHA | 80 to 150 N/A | SHS [FIPS 180- 4] (vng_ltc):SHA- 1, SHA-224, SHA-256, SHA- 384, SHA-512, SHA-512/256 SHS [FIPS 180- 4] (c_ltc):SHA- 384, SHA-512, SHA-512/256 SHS [FIPS 180-4] (vng_neon):SHA- | SHA2-384: (A3684, A3686) SHA2-512: (A3684, A3686) SHA2-512/256: (A3684, A3686) SHA2-224: (A3686) SHA2-256: (A3686, A3687) SHA-1: (A3686) |
| Cert | Vendor |
|---|---|
| Number | Name |
| E14 | apple |
Table 37: Security Function Implementations
AES-GCM AES-GCM IV is constructed in compliance with IG C.H scenario
E15 apple Table 38: Entropy Certificates This document may be reproduced and distributed only in its original entirely without revision.
| Name | Type | Operational Environment | Sample Size | Conditioning Component | |
|---|---|---|---|---|---|
| Entropy | |||||
| per | |||||
| Apple corecrypto physical entropy | Physical | See Tested Operational | 256 bit | Sample 256 bit | SHA-256 [ACVP cert. # C1223] |
| source Apple corecrypto non- physical | Non- Physical | Environment Table See Tested Operational | 256 bit | 256 bit | SHA-256 [ACVP Certs. # A3687] |
Table 39: Entropy Sources Entropy sources: Two entropy sources (one non-physical entropy source and one physical entropy source) residing within the TOEPP provide the random bits. The entropy sources are located within the physical perimeter of the module (TOEPP) but outside the cryptographic boundary of the module. RBGs: The NIST [SP 800-90ARev1] approved deterministic random bit generators (DRBG) used for random number generation is a CTR_DRBG using AES-256 with derivation function and without prediction resistance. The module performs DRBG health tests according to [SP800-90ARev1 section 11.3]. The deterministic random bit generators are seeded by “read_random”. The read_random is the Kernel Space interface. RBG Output: The output of entropy sources provides 256-bits of entropy to seed and reseed SP800-90ARev1 DRBG during initialization (seed) and reseeding (reseed).
See vendor affirmed algorithms (CKG) in section 2.5. The module does not implement symmetric key generation.
No parts of the IPSec, other than those mentioned above, have been tested by the CAVP and CMVP. This document may be reproduced and distributed only in its original entirely without revision.
| Data That Passes | ||||
|---|---|---|---|---|
| Physical | Logical | |||
| Port N/A | Interface(s) Data Input Data | Data inputs/outputs are provided in the variables passed in the C language Kernel Interfaces (KPIs) and callable service invocations, | ||
| N/A | Output Control | generally through caller-supplied buffers Control inputs which control the mode of the module are provided | ||
| N/A | Input Status Output | through dedicated parameters. Status output is provided in return codes and through messages. Documentation for each KPI lists possible return codes. A complete list of all return codes returned by the C language KPIs within the module is provided in the header files and the KPI documentation. |
Table 40: Ports and Interfaces This document may be reproduced and distributed only in its original entirely without revision.
Name
Type
Operator Type
Authentication Methods
| Name | Inputs | Outputs | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Descriptio | Indicat | Security | SSP | |||||||
| AES Encryption/Decrypt ion | n Execute AES- mode encrypt or decrypt operation | or 1 | plaintext data and key / ciphertex t data and key | ciphertext data / plaintext data | Functions Unauthenticat ed Symmetric Encryption and Decryption Authenticated Symmetric Encryption and | Access Crypto Officer - AES key: W,E | ||||
| AES Key Wrapping / Key Unwrapping | Execute AES-key wrapping or unwrappi ng operation | 1 | key wrapping key, unwrapp ed key / Wrapped key, AES key wrapping | wrapped key / unwrappe d key | Decryption key wrapping / key unwrapping | Crypto Officer - AES key- wrappin g key: W,E |
N/A for this module. FIPS 140-3 does not require an authentication mechanism for level 1 modules. Therefore, the module does not support an authentication mechanism for Crypto Officer. The Crypto Officer role is authorized to access all services provided by the module (see Table - Approved Services and Table - Non-Approved Services).
Crypto Officer Role CO None Table 41: Roles
This document may be reproduced and distributed only in its original entirely without revision.
| Name | Inputs | Outputs | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Descriptio | Indicat | Security | SSP | |||||||
| Secure Hash Generation | n Generate a digest for the requested | or 1 | message | digest | Functions Message Digest | Access Crypto Officer | ||||
| Message Authentication Generation | algorithm Generate a MAC digest using the requested SHA | 1 | message, MAC key, MAC algorithm | MAC | HMAC Message Authenticatio n | Crypto Officer - HMAC key: W,E | ||||
| Message Authentication Code Verification | algorithm Verify a MAC digest | 1 | MAC, message, MAC key, MAC | pass/fail | HMAC Message Authenticatio n | Crypto Officer - HMAC key: | ||||
| RSA signature generation and verification | Sign a message with a specified RSA private key. Verify the signature of a message with a specified RSA public | 1 | algorithm SigGen: private key, message, hash function; SigVer: public key, digital signature, message, hash function | SigGen: compute d signature; SigVer: pass/fail result of digital signature verificatio n | RSA Digital Signature Generation RSA Digital Signature Verification | W,E Crypto Officer - RSA key pair: W,E | ||||
| ECDSA signature generation and verification | key. Sign a message with a specified ECDSA private key Verify | 1 | SigGen: private key, message, hash function; SigVer: | SigGen: compute d signature; SigVer: pass/fail result of | ECDSA Digital Signature Generation ECDSA Digital Signature Verification | Crypto Officer - ECDSA key pair: W,E |
This document may be reproduced and distributed only in its original entirely without revision.
| Name | Inputs | Outputs | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Descriptio | Indicat | Security | SSP | |||||||
| n signature of a message with a specified ECDSA | or | key, digital signature, message, hash function | signature verificatio n | Functions | Access | |||||
| Random Number Generation | public key Generate random number | 1 | length of generate d number | random bit-string | Random Number Generation | Crypto Officer - Entropy input string: E - DRBG seed, internal state V value, and key: | ||||
| ECDSA key pair generation and validation | Generate a keypair for a requested elliptic curve and | 1 | domain paramete rs | key pair | ECDSA Asymmetric Key Generation ECDSA Public- Key Validation | G,R,E Crypto Officer - ECDSA key pair: | ||||
| Self-test | validity execute CASTs | 1 | power | pass/fail results | Unauthenticat ed Symmetric Encryption and Decryption Authenticated Symmetric Encryption and Decryption Random Number | G,R,E Crypto Officer - HMAC key: E - AES key: E - AES key- wrappin g key: E - ECDSA |
G,R,E This document may be reproduced and distributed only in its original entirely without revision.
| Name | Inputs | Outputs | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Descriptio | Indicat | Security | SSP | |||||||
| n | or | Functions ECDSA Asymmetric Key Generation ECDSA Public- Key Validation ECDSA Digital Signature Generation ECDSA Digital Signature Verification HMAC Message Authenticatio n key wrapping / key unwrapping RSA Digital Signature Generation RSA Digital Signature Verification Message | Access pair: E - RSA key pair: E - DRBG seed, internal state V value, and key: E | |||||||
| Show Status | Return the module | N/A | N/A | Status output | Digest None | Crypto Officer | ||||
| Show module version info | status Return Module Base Name and Module Version | N/A | N/A | Module informati on | None | Crypto Officer | ||||
| Zeroization | Number SSPs are zeroised | 1 | N/A | N/A | None | Crypto Officer |
n when the - AES This document may be reproduced and distributed only in its original entirely without revision.
| Name | Inputs | Outputs | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Descriptio | Indicat | Security | SSP | |||||||
| n system is powered down, when all resources of symmetric crypto function context, all resources of hash context, all resources of asymmetri c crypto function context are released. | or | Functions | Access key: Z - AES key- wrappin g key: Z - HMAC key: Z - ECDSA key pair: Z - RSA key pair: Z - Entropy input string: Z - DRBG seed, internal state V value, and |
Name Triple-DES encryption /
Description Execute Triple-DES mode
Algorithms Triple-DES [SP 800-
Role CO
Table 42: Approved Services The abbreviations of the access rights to SSPs have the following interpretation: G = Generate: The module generates or derives the SSP. 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
decryption encrypt or decrypt operation. 67r2] This document may be reproduced and distributed only in its original entirely without revision.
| Name RSA Key Encapsulation | Description The CAST does not perform the full KTS, only the raw | Algorithms RSA Key Wrapping | Role CO |
|---|---|---|---|
| RSA Signature Generation | RSA encrypt/decrypt. Sign a message with a non- approved RSA private key | RSA SigGen | CO |
| RSA Signature Verification | size Verify the signature of a message with a non- approved RSA public key | RSA SigVer | CO |
| ECDSA key-pair generation, ECDSA PKV, ECDSA signature generation, ECDSA signature | size For curve P-192 | ECDSA | CO |
| verification ECDSA Key Pair Generation for compact point representation of | For compact point representation of points | ECDSA KeyGen | CO |
| points EdDSA Key Generation, Signature Generation, Signature | Ed25519 | EdDSA | CO |
| Verification ECIES | Elliptic Curve encrypt/ decrypt | Integrated Encryption Scheme on elliptic curves (ECIES) | CO |
| ANSI X9.63 Key Derivation SP800-56Crev2 Key Derivation | SHA-1 hash-based SHA-256 hash-based | ANSI X9.63 KDF HKDF [SP800- | CO CO |
| (HKDF) OMAC Message Authentication | One-Key CBC-MAC using | 56Crev2] OMAC (One-Key | CO |
| Code Generation OMAC Message Authentication | 128-bit key One-Key CBC-MAC using | CBC MAC) OMAC (One-Key | CO |
| Code Verification Message digest generation | 128-bit key Message digest generation using non-approved algorithms | CBC MAC) MD2 MD4 RIPEMD | CO |
| Symmetric encryption / decryption | Symmetric encryption / decryption using non- approved algorithms | MD5 Blowfish CAST5 DES RC2 | CO |
| RFC 6637 KDF | SHA-256, SHA-512, AES-128, | RC4 RFC 6637 Key | CO |
This document may be reproduced and distributed only in its original entirely without revision.
Table 43: Non-Approved Services
N/A This document may be reproduced and distributed only in its original entirely without revision.
A software integrity test is performed on the runtime image of the module. The HMAC-SHA256 implemented in the module is used as the approved algorithm for the integrity test. If the test fails, the module enters an error state where no cryptographic services are provided, and data output is prohibited i.e. the module is not operational.
The module’s integrity test can be performed on demand by power-cycling the computing platform. Integrity test on demand is performed as part of the Pre-Operational Self-Tests, automatically executed at power-on. This document may be reproduced and distributed only in its original entirely without revision.
Type of Operational Environment: Modifiable
The module is supplied as part of Device OS, a commercially available general-purpose operating system executing on the computing platforms specified in section 2.2. This document may be reproduced and distributed only in its original entirely without revision.
The FIPS 140-3 physical security requirements do not apply to the Apple corecrypto Module v13.0 [Apple silicon, Kernel, Software, SL1] since it is a software module. This document may be reproduced and distributed only in its original entirely without revision.
Per IG 12.A, until the requirements of NIST SP 800-140F are defined, non-invasive mechanisms fall under ISO/IEC 19790:2012 Section 7.12 Mitigation of other attacks. The requirements of this area are not applicable to the module. This document may be reproduced and distributed only in its original entirely without revision.
| Description | Persistence Type | |
|---|---|---|
| Storage | ||
| Area | ||
| Name RAM | The module stores ephemeral SSPs in RAM provided by the operational environment. They are received for use or generated by the module only at the command of the calling application. The operating system protects all SSPs through the memory separation and protection mechanisms. No process other than the module itself | Dynamic |
| Name | From | To | Format | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Distribution | Entry | SFI or | |||||||
| KPI input parameters | Operating calling application | Cryptographic module | Type Plaintext | Type Manual | Type Electronic | Algorithm | |||
| KPI output parameters | (TOEPP) Cryptographic module | Operating calling application | Plaintext | Manual | Electronic |
| Description | Rationale | ||||
|---|---|---|---|---|---|
| Zeroization | Operator | ||||
| Method Context object destruction | SSPs are zeroised when the appropriate context object is destroyed | Zeroization when structure is deallocated | Initiation By calling the zeroization function | ||
| Power down | SSPs are zeroised when the system is powered down | SSPs are zeroised when the system is powered down | cc_clear Operator can initiate power |
Table 45: SSP Input-Output Methods
This document may be reproduced and distributed only in its original entirely without revision.
| Description | Rationale | ||||
|---|---|---|---|---|---|
| Zeroization | Operator | ||||
| Method Intermediate value zeroization | Intermediate keygen values are zeroized before the module returns from the | Intermediate keygen values are zeroized before the module returns from the | Initiation N/A |
| Name | Description | Type - Category | Generated By | Establishe d By | Used By | |
|---|---|---|---|---|---|---|
| Size - | ||||||
| Strengt | ||||||
| AES key | AES key | h 128 to 256 bits - 128 to 256 bits | Symmetric - CSP | Unauthenticate d Symmetric Encryption and Decryption Authenticated Symmetric Encryption and | ||
| AES key- wrappin g key | AES KW | 128 to 256 bits - 128 to | symmetric - CSP | Decryption key wrapping / key unwrapping | ||
| HMAC key | HMAC key | 256 bits 128 to 256 - 128 to | MAC - CSP | HMAC Message Authentication | ||
| ECDSA key pair | ECDSA key pair (including intermediat e keygen values) | 256 P-224, P-256, P-384, P-521 - 112 to 256 bits | Asymmetri c - CSP | ECDSA Asymmetri c Key Generation | ECDSA Public- Key Validation ECDSA Digital Signature Generation ECDSA Digital Signature | |
| RSA key pair | RSA key pair | 2048 - 4096 - 112 to | Asymmetri c - CSP | Verification RSA Digital Signature Generation |
Table 46: SSP Zeroization Methods Data output interfaces are inhibited while zeroisation is performed.
h This document may be reproduced and distributed only in its original entirely without revision.
| Name | Description | Type - Category | Generated By | Establishe d By | Used By | |
|---|---|---|---|---|---|---|
| Size - | ||||||
| Strengt | ||||||
| h | Signature | |||||
| Entropy input | Entropy input string | 256 bits - 256 | Entropy input string | Verification Random Number | ||
| string DRBG seed, internal state V value, | DRBG input parameters | bits 256 bits - 256 bits | - CSP DRBG - CSP | Random Number Generation | Generation Random Number Generation |
| Name | Storage | Zeroization | Related SSPs | ||||
|---|---|---|---|---|---|---|---|
| Input - | Storage | ||||||
| AES key | Output KPI input parameters | RAM:Plaintext | Duration From service invocation to service | Context object destruction | |||
| AES key- wrapping key | KPI input parameters | RAM:Plaintext | completion From service invocation to service | Power down Context object destruction | |||
| HMAC key | KPI input parameters | RAM:Plaintext | completion From service invocation to service | Power down Context object destruction | |||
| ECDSA key pair | KPI input parameters KPI output parameters | RAM:Plaintext | completion From service invocation to service completion | Power down Context object destruction Power down Intermediate value | DRBG seed, internal state V value, and key:Used With | ||
| RSA key pair | KPI input parameters | RAM:Plaintext | From service invocation to service completion | zeroization Context object destruction Power down |
h Table 47: SSP Table 1 This document may be reproduced and distributed only in its original entirely without revision.
| Name | Storage | Zeroization | Related SSPs | ||||
|---|---|---|---|---|---|---|---|
| Input - | Storage | ||||||
| Output | Duration | value | |||||
| Entropy input string | RAM:Plaintext | Storage duration during the usage of the | zeroization Power down | DRBG seed, internal state V value, and key:Used With | |||
| DRBG seed, internal state V value, and | CSP Storage duration during the usage of the | Power down | Entropy input string:Used With |
Table 48: SSP Table 2 This document may be reproduced and distributed only in its original entirely without revision.
| Test Method | Indicator | Details | ||||||
|---|---|---|---|---|---|---|---|---|
| Algorithm | Test | Test | ||||||
| or Test HMAC- SHA2-256 (A3687) | Properties 112-bit key | Message Authentication | Type SW/FW Integrity | Module successful execution | The HMAC-SHA2-256 value calculated at runtime is compared with the HMAC-SHA2- 256 value stored in the module, computed at |
| Indicator | Details | Conditions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Algorithm | Test | Test | Test | |||||||
| or Test AES-GCM (A3685) | Properties 128-bit key | Method KAT | Type CAST | Module becomes operational | Authenticated decryption | Test runs at Power-on before the | ||||
| Counter DRBG (A3685) | AES 128-bit key | KAT | CAST | Module becomes operational | Health test per SP800- 90ARev1 section 11.3 | integrity test Test runs at Power-on before the | ||||
| HMAC- SHA2-256 (A3686) | SHA2-256 | KAT | CAST | Module becomes operational | Message authentication | integrity test Test runs at Power-on before the | ||||
| HMAC- SHA-1 | SHA-1 | KAT | CAST | Module becomes | Message authentication | integrity test Test runs at Power-on |
While the module is executing the self-tests, services are not available, and input and output are inhibited.
The module performs a pre-operational software integrity automatically when the module is loaded into memory (i.e., at power on) before the module transitions to the operational state. A used to perform the approved integrity technique. Prior to using HMAC-SHA-256, a Conditional Cryptographic Algorithm Self-Tests (CAST) is performed. compilation time. Table 49: Pre-Operational Self-Tests
This document may be reproduced and distributed only in its original entirely without revision.
| Indicator | Details | Conditions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Algorithm | Test | Test | Test | |||||||
| or Test | Properties | Method | Type | before the | ||||||
| HMAC- SHA2-512 (A3684) | SHA2-512 | KAT | CAST | Module becomes operational | Message authentication | integrity test Test runs at Power-on before the | ||||
| RSA SigGen (FIPS186-4) (A3686) | PKCS#1 v1.5 with 2048 bit key and SHA2- | KAT | CAST | Module becomes operational | Signature Generation service request | integrity test Test runs at Power-on before the integrity test | ||||
| RSA SigVer (FIPS186-4) (A3686) | 256 PKCS#1 v1.5 with 2048 bit key and SHA2- | KAT | CAST | Module becomes operational | Signature Verification service request | Test runs at Power-on before the integrity test | ||||
| ECDSA KeyGen (FIPS186-4) | 256 SHA2-256 and respective | PCT | PCT | Successful key generation | Key generation | Key pair generation. | ||||
| (A3686) ECDSA SigGen (FIPS186-4) | keys P-256 with SHA-256 | KAT | CAST | Module becomes operational | Signature Generation or Key Generation | Test runs at Power-on before the | ||||
| (A3686) ECDSA SigVer (FIPS186-4) | P-224 with SHA-224 | KAT | CAST | Module becomes operational | service request Signature Verification or Key Generation | integrity test Test runs at Power-on before the | ||||
| (A3686) AES-CBC (A3682) | 128-bit key | KAT | CAST | Module becomes operational | service request Encryption and decryption run separately | integrity test Test runs at Power-on before the | ||||
| AES-ECB (A3682) | 128-bit key | KAT | CAST | Module becomes operational | Encryption and decryption run separately | integrity test Test runs at Power-on before the | ||||
| AES-XTS Testing Revision | 128-bit key | KAT | CAST | Module becomes operational | Encryption | integrity test Test runs at Power-on before the |
This document may be reproduced and distributed only in its original entirely without revision.
| Indicator | Details | Conditions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Algorithm | Test | Test | Test | |||||||
| or Test AES-CCM (A3685) | Properties 128-bit key | Method KAT | Type CAST | Module becomes operational | Authenticated encryption / decryption operations are performed | Test runs at Power-on before the integrity test | ||||
| HMAC- SHA2- 512/256 | SHA2- 512/256 | KAT | CAST | Module becomes operational | separately Message authentication | Test runs at Power-on before the |
| Test Method | Test Type | Period | Periodic Method | ||
|---|---|---|---|---|---|
| Algorithm or | |||||
| Test HMAC-SHA2- 256 (A3687) | Message Authentication | SW/FW Integrity | Whenever module is | Upon every power on |
| Test Method | Test Type | Period | Periodic Method | ||
|---|---|---|---|---|---|
| Algorithm or | |||||
| Test AES-GCM | KAT | CAST | On Demand | Manually | |
| (A3685) Counter DRBG | KAT | CAST | On Demand | Manually | |
| (A3685) HMAC-SHA2- | KAT | CAST | On Demand | Manually | |
| 256 (A3686) HMAC-SHA-1 | KAT | CAST | On Demand | Manually | |
| (A3686) HMAC-SHA2- | KAT | CAST | On Demand | Manually | |
| 512 (A3684) RSA SigGen (FIPS186-4) | KAT | CAST | On Demand | Manually | |
| (A3686) RSA SigVer (FIPS186-4) | KAT | CAST | On Demand | Manually |
Table 50: Conditional Self-Tests
powered on Table 51: Pre-Operational Periodic Information This document may be reproduced and distributed only in its original entirely without revision.
| Test Method | Test Type | Period | Periodic Method | ||
|---|---|---|---|---|---|
| Algorithm or | |||||
| Test ECDSA KeyGen (FIPS186-4) | PCT | PCT | Upon generation of an ECDSA key | Upon generation of an ECDSA key | |
| (A3686) ECDSA SigGen (FIPS186-4) | KAT | CAST | pair On Demand | pair Manually | |
| (A3686) ECDSA SigVer (FIPS186-4) | KAT | CAST | On Demand | Manually | |
| (A3686) AES-CBC (A3682) | KAT | CAST | On Demand | Manually | |
| AES-ECB (A3682) AES-XTS Testing Revision 2.0 | KAT KAT | CAST CAST | On Demand On Demand | Manually Manually | |
| (A3682) AES-CCM | KAT | CAST | On Demand | Manually | |
| (A3685) HMAC-SHA2- | KAT | CAST | On Demand | Manually |
| Name | Description | Conditions | Indicator | ||
|---|---|---|---|---|---|
| Recovery | |||||
| Error State | 1) The HMAC- SHA-256 value computed over the module did not match the pre- computed value or 2) The computed value in the invoked Conditional | 1) Pre- operational Software Integrity Test failure or 2) Conditional CAST failure 3) Conditional PCT failure | Method The only method to recover from the error state is to power cycle the device which results in the module being reloaded into memory and reperforming | 1) Print statement "FAILED: fipspost_post_integrity" to stdout or 2) Print statement "FAILED:<event>" to stdout (<event> refers to any of the CASTs listed in Conditional Self-Tests Table. 3) Error code "CCEC_GENERATE_KEY_CONSISTENCY" returned for ECDSA error code |
This document may be reproduced and distributed only in its original entirely without revision.
| Name | Description | Conditions | Indicator | ||
|---|---|---|---|---|---|
| Recovery | |||||
| match the known value or 3) The signature failed to verify successfully in the Conditional PCT. No cryptographic services are provided, and data output is | Method operational software integrity test and the Conditional CASTs. |
prohibited Table 53: Error States
The module permits operators to initiate the pre-operational or conditional self-tests on demand for periodic testing of the module by rebooting the system (i.e., power-cycling). This document may be reproduced and distributed only in its original entirely without revision.
Startup Procedures: The module is built into Device OS defined in section 2 and delivered/ installed with the respective Device OS. There is no standalone delivery of the module as a software library. Installation Process and Authentication Mechanisms: The vendor’s internal development process guarantees that the correct version of module goes with its intended Device OS version. For additional assurance, the module is digitally signed by vendor, and it is verified during the integration into Host Device OS. This digital signature-based integrity protection during the delivery/integration process is not to be confused with the HMAC-256 based integrity check performed by the module itself as part of its pre-operational self- tests.
The Approved mode of operation is configured in the system by default and can only be transitioned into the non-Approved mode by calling one of the non-Approved services listed in Table - Non-Approved Services. If the device starts up successfully, then the module has passed all self-tests and is operating in the Approved mode. The ESV Public Use Document (PUD) reference for physical entropy source is: https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validationprogram/documents/entropy/E14_PublicUse.pdf The ESV Public Use Document (PUD) reference for non-physical entropy source is: https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validationprogram/documents/entropy/E15_PublicUse.pdf Apple Platform Certifications guide [platform certifications] and Apple Platform Security guide [SEC] are provided by Apple which offers IT System Administrators with the necessary technical information to ensure FIPS 140-3 Compliance of the deployed systems. This guide walks the reader through the system’s assertion of cryptographic module integrity and the steps necessary if module integrity requires remediation.
The Crypto Officer shall consider the following requirements and restrictions when using the module.
The module secure sanitization is accomplished through the Lost Mode, remote wipe, and remote lock sections of the provided vendor document [platform certifications]. This document may be reproduced and distributed only in its original entirely without revision.
The module does not claim mitigation of other attacks. This document may be reproduced and distributed only in its original entirely without revision.
Appendix A. Glossary and Abbreviations AES Advanced Encryption Standard CAVP Cryptographic Algorithm Validation Program CAST Cryptographic Algorithm Self-Test CAST5 A symmetric-key 64-bit block cipher with 128-bit key CBC Cipher Block Chaining CCM Counter with Cipher Block Chaining-Message Authentication Code CFB Cipher Feedback CMVP Cryptographic Module Validation Program CSP Critical Security Parameter CTR Counter Mode DRBG Deterministic Random Bit Generator ECB Electronic Code Book ESVP Entropy Source Validation Program FIPS Federal Information Processing Standards Publication GCM Galois Counter Mode HMAC Hash Message Authentication Code KAT Known Answer Test KDF Key Derivation Function KEXT Kernel Extension KW AES Key Wrap MAC Message Authentication Code KPI Kernel Programming Interface NIST National Institute of Science and Technology OFB Output Feedback PAA Processor Algorithm Acceleration PKG Key-Pair Generation PKV Public Key Validation PSS Probabilistic Signature Scheme PUD Public Use Document (ESVP) RSA Rivest, Shamir, Addleman SHA Secure Hash Algorithm SHS Secure Hash Standard TOEPP Tested Operational Environment Physical Perimeter XTS XEX-based Tweaked-codebook mode with cipher text Stealing This document may be reproduced and distributed only in its original entirely without revision.
| Appendix B. | References |
| FIPS140-3 | FIPS PUB 140-3 - Security Requirements for Cryptographic Modules March 2019 https://doi.org/10.6028/NIST.FIPS.140-3 |
| SP 800-140x | CMVP FIPS 140-3 Related Reference https://csrc.nist.gov/Projects/cryptographic-module-validation-program/fips-140-3-standards |
| FIPS140-3_IG | Implementation Guidance for FIPS PUB 140-3 and the Cryptographic Module Validation Program September 2020 https://csrc.nist.gov/Projects/cryptographic-module-validation-program/fips-140-3-ig-announcements |
| FIPS140-3_MM | CMVP FIPS 140-3 Draft Management Manual https://csrc.nist.gov/csrc/media/Projects/cryptographic-module-validation- program/documents/fips%20140-3/FIPS-140-3-CMVP%20Management%20Manual%20v2.0.pdf |
| SP 800-140 | FIPS 140-3 Derived Test Requirements (DTR) https://csrc.nist.gov/publications/detail/sp/800-140/final |
| SP 800-140A | CMVP Documentation Requirements https://csrc.nist.gov/publications/detail/sp/800-140a/final |
| SP 800-140Br1 | CMVP Security Policy Requirements https://doi.org/10.6028/NIST.SP.800-140Br1 |
| SP 800-140C | CMVP Approved Security Functions https://csrc.nist.gov/publications/detail/sp/800-140c/final |
| SP 800-140D | CMVP Approved Sensitive Security Parameter Generation and Establishment Methods https://csrc.nist.gov/publications/detail/sp/800-140d/final |
| SP 800-140E | CMVP Approved Authentication Mechanisms https://csrc.nist.gov/publications/detail/sp/800-140e/final |
| SP 800-140F | CMVP Approved Non-Invasive Attack Mitigation Test Metrics https://csrc.nist.gov/publications/detail/sp/800-140f/final |
| FIPS180-4 | Secure Hash Standard (SHS) March 2012 http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf |
| FIPS186-5 | Digital Signature Standard (DSS) F3b 2023 https://doi.org/10.6028/NIST.FIPS.186-5 |
| FIPS197 | Advanced Encryption Standard November 2001 http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf |
| FIPS198-1 | The Keyed Hash Message Authentication Code (HMAC) July 2008 http://csrc.nist.gov/publications/fips/fips198-1/FIPS-198-1_final.pdf This document may be reproduced and distributed only in its original entirely without revision. |
| PKCS#1 | Public Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1 February 2003 http://www.ietf.org/rfc/rfc3447.txt |
| RFC3394 | Advanced Encryption Standard (AES) Key Wrap Algorithm September 2002 http://www.ietf.org/rfc/rfc3394.txt |
| RFC5649 | Advanced Encryption Standard (AES) Key Wrap with Padding Algorithm September 2009 http://www.ietf.org/rfc/rfc5649.txt |
| SP800-38A | NIST Special Publication 800-38A - Recommendation for Block Cipher Modes of Operation Methods and Techniques December 2001 http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf |
| SP800-38C | NIST Special Publication 800-38C - Recommendation for Block Cipher Modes of Operation: the CCM Mode for Authentication and Confidentiality May 2004 http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38c.pdf |
| SP800-38D | NIST Special Publication 800-38D - Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC November 2007 http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf |
| SP800-38E | NIST Special Publication 800-38E - Recommendation for Block Cipher Modes of Operation: The XTS AES Mode for Confidentiality on Storage Devices January 2010 http://csrc.nist.gov/publications/nistpubs/800-38E/nist-sp-800-38E.pdf |
| SP800-38F | NIST Special Publication 800-38F - Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping December 2012 http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf |
| SP800-56Cr2 | Recommendation for Key-Derivation Methods in Key-Establishment Schemes August 2020 https://doi.org/10.6028/NIST.SP.800-56Cr2 |
| SP800-57 | NIST Special Publication 800-57 Part 1 Revision 5 - Recommendation for Key Management Part 1: General May 2020 https://doi.org/10.6028/NIST.SP.800-57pt1r5 |
| SP800-67r2 | NIST Special Publication 800-67 Revision 1 - Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher January 2012 (withdrawn January 2014) https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-67r2.pdf |
| SP800-90Ar1 | NIST Special Publication 800-90A - Revision 1 - Recommendation for Random Number Generation Using Deterministic Random Bit Generators June 2015 http://dx.doi.org/10.6028/NIST.SP.800-90Ar1 This document may be reproduced and distributed only in its original entirely without revision. |
| SP800-90B | NIST Special Publication 800-90B - Recommendation for the Entropy Sources Used for Random Bit Generation January 2018 https://doi.org/10.6028/NIST.SP.800-90B |
| SP800-108r1 | NIST Special Publication 800-108r1 - Recommendation for Key Derivation Using Pseudorandom Functions Aug 2022 https://doi.org/10.6028/NIST.SP.800-108r1 |
| SP800-131Ar2 | Transitioning the Use of Cryptographic Algorithms and Key Lengths March 2019 https://doi.org/10.6028/NIST.SP.800-131Ar2 |
| SP800-133r2 | Recommendation for Cryptographic Key Generation June 2020 https://doi.org/10.6028/NIST.SP.800-133r2 |
| SP800-135r1 | NIST Special Publication 800-135 Revision 1 - Recommendation for Existing Application-Specific Key Derivation Functions December 2011 http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-135r1.pdf |
| SEC | Apple Platform Security https://support.apple.com/guide/security/welcome/web https://manuals.info.apple.com/MANUALS/1000/MA1902/en_US/apple-platform-security-guide.pdf |