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

Apple corecrypto Module v11.1 [Apple silicon, Secure Key Store, Hardware] (SL2)

Certificate#4756StandardFIPS 140-3Level2TypeHardwareEmbodimentSingle ChipStatusActiveVendorApple Inc.
Medium review priority  ·  no TCB surface named  ·  last validated 23 months ago. How this is derived →

Certificate

StandardFIPS 140-3
Overall level2
Module typeHardware
EmbodimentSingle Chip
StatusActive
Sunset date8/8/2026
CaveatInterim validation. When operated in approved mode
VendorApple Inc.

Approved Algorithms (78)

AlgorithmACVP Cert
AES-CBCA510
AES-CBCA1342
AES-CBCA1343
AES-CBCA1344
AES-CBCA1345
AES-CBCC314
AES-CBCC315
AES-CBCC317
AES-CBCC318
AES-CBCC319
AES-CBCC320
AES-CBCC322
AES-CBCC326
AES-CBCC330
AES-CBCC358
AES-ECBA501
AES-ECBA510
AES-ECBA1342
AES-ECBA1343
AES-ECBA1345
AES-ECBA1346
AES-ECBAES 5261
AES-ECBAES 5272
AES-ECBAES 5273
AES-ECBAES 5274
AES-ECBAES 5275
AES-ECBAES 5278
AES-ECBAES 5279
AES-ECBC314
AES-ECBC315
AES-ECBC317
AES-ECBC318
AES-ECBC319
AES-ECBC320
AES-ECBC322
AES-ECBC323
AES-ECBC324
AES-ECBC326
AES-ECBC330
AES-ECBC331
AES-ECBC358
AES-KWA1343
AES-KWA1345
Counter DRBGA501
Counter DRBGC323
Counter DRBGC324
Counter DRBGC331
Counter DRBGDRBG 2014
Counter DRBGDRBG 2022
Counter DRBGDRBG 2023
Counter DRBGDRBG 2024
Counter DRBGDRBG 2025
Counter DRBGDRBG 2028
Counter DRBGDRBG 2029
HMAC-SHA-1A1340
HMAC-SHA-1A1345
HMAC-SHA2-224A1340
HMAC-SHA2-224A1345
HMAC-SHA2-256A1340
HMAC-SHA2-256A1341
HMAC-SHA2-256A1345
HMAC-SHA2-384A1340
HMAC-SHA2-384A1345
HMAC-SHA2-512A1340
HMAC-SHA2-512A1345
HMAC-SHA2-512/256A1340
SHA-1A1340
SHA-1A1345
SHA2-224A1340
SHA2-224A1345
SHA2-256A1340
SHA2-256A1341
SHA2-256A1345
SHA2-384A1340
SHA2-384A1345
SHA2-512A1340
SHA2-512A1345
SHA2-512/256A1340

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

flowchart LR
  %% Deterministic review-risk graph for Apple corecrypto Module v11.1 [Apple silicon, Secure Key Store, Hardware] (SL2)
  %% Review prompts and evidence gaps, NOT vulnerability findings.
  subgraph CMVP["CMVP-disclosed clues"]
    C3["[low] Self-test / status surface<br/>(referenced in text)<br/><i>Self-Test<br/>Status Output<br/>Show Status</i>"]
    C5["[low] Protocol / secure-channel<br/>references (may be KDF<br/>names, not a live channel)<br/><i>HTTPS<br/>no library/version identified</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"]
    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"]
    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"]
    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
  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 C3,C5,C6 clue;
  class I3,I5,I6 infer;
  class R3,R5,R6 risk;
  class E3,E5,E6 evidence;
Underlying clues
flowchart LR
  %% Deterministic clue tier for Apple corecrypto Module v11.1 [Apple silicon, Secure Key Store, Hardware] (SL2)
  %% confidence: high = structured record field; medium = structured but soft; low (dashed) = bare keyword hit, context unverified
  subgraph CMVP["CMVP-disclosed clues (deterministic)"]
    C3["[low] Self-test / status surface (referenced in text)<br/><i>Self-Test<br/>Status Output<br/>Show Status</i><br/>src: text:keyword"]
    C5["[low] Protocol / secure-channel references (may be KDF names, not a live channel)<br/><i>HTTPS<br/>no library/version identified</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 C3,C5,C6 clueLow;

Security Policy, page by page

Page 1

Apple Inc. Apple corecrypto Module v11.1 [Apple silicon, Secure Key Store, Hardware] (SL2) document version 1.1 July 2024 Prepared for: Apple One Apple Park Way Cupertino, CA 95014 Prepared by: atsec information security corporation

4516 Seton Center Pkwy, Suite 250

Austin, TX 78759 www.atsec.com This document may be reproduced and distributed only in its original entirely without revision.

Page 2

Trademarks Apple’s trademarks applicable to this document are listed in https://www.apple.com/legal/intellectualproperty/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.

2 of 34

Page 3
Table of Contents
#SectionPage
Page 4
List of Tables
ItemPage
Table 1 - Security Levels5
Table 2 - Tested Operational Environments8
Table 3 - Approved Algorithms12
Table 4 - Non-Approved Algorithms Not Allowed in the Approved Mode of Operation12
Table 5 - Ports and Interfaces13
Table 6 – Roles, Service Commands, Input and Output15
Table 7– Roles and Authentication16
Table 8 - Approved Services18
Table 9 - Non-Approved and non-authenticated Services20
Table 10 – Physical Security Inspection Guidelines23
Table 11 - SSPs26
Table 12 - Non-Deterministic Random Number Generation Specification26
Table 13 - Self-Tests28
Table 14 – Error States29
Page 5
ISO/IEC 24759 Section 6. [Number Below]FIPS 140-3 Section TitleSecurity Level
1General2
2Cryptographic Module Specification2
3Cryptographic Module Interfaces2
4Roles, Services, and Authentication2
5Software/Firmware Security2
6Operational EnvironmentNot Applicable
7Physical Security2
8Non-invasive SecurityNot Applicable
9Sensitive Security Parameter Management2
10Self-tests2
11Life-cycle Assurance2
12Mitigation of Other AttacksNot Applicable

This document is the non-proprietary FIPS 140-3 Security Policy for Apple corecrypto Module v11.1 [Apple silicon, Secure Key Store, Hardware] (SL2) 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 a Security Level 2 module. This document provides all tables and diagrams (when applicable) required by NIST SP 800-140B. The column names of the tables follow the template tables provided in NIST SP 800-140B. Table 1 describes the individual security areas of FIPS 140-3, as well as the Security Levels of those individual areas. The overall Security Rating of the module is SL2. Table 1 - Security Levels This document may be reproduced and distributed only in its original entirely without revision.

5 of 34

Page 6
2 Cryptographic Module Specification

The Apple corecrypto Module v11.1 [Apple silicon, Secure Key Store, Hardware] (SL2) cryptographic module (hereafter referred to as “the module”) is a Hardware module implemented as a sub-chip running on a single-chip processor. The version of module’s firmware is 11.1 and the Hardware version is 2.0. The sub-chip module is embedded in the hardware listed in Table 2. The sub-chip module’s firmware is bundled together with the underlying Device OS.

2.1 Module components

The module consists of both firmware and hardware components. The Secure Key Store (SKS) application is the module’s firmware which operates within the sepOS execution environment which is separate from the Device OS’s (iOS 14.2, iPadOS 14.2, watchOS 7.1, tvOS 14.2, and TxFW 11.0.1) execution environment. The firmware boundary is defined as the API offered by the mailbox interface to callers from the Device OS execution environment. SKS has an API layer that provides consistent interfaces to the supported services and therefore the supported cryptographic algorithms. The sepOS execution environment is driven by its own SoC and operates from a dedicated region of the device’s memory. Both the Device’s and sepOS’ execution environments are physically separated on the SoC and thus execute independently of each other. The cryptographic module boundary includes the following hardware components:

2.1.1 Photograph and Block Diagram
Table, extracted as text (did not parse into structured rows)
The photograph of each hardware module is shown below: Figure 1: Apple A9         Figure 2: Apple A9X            Figure 3: Apple A10 Fusion                Figure 4: Apple A10X Fusion              Figure 5: Apple A111 Bionic Figure 6: Apple A12                                       Figure 8: Apple S3        Figure 9: Apple S4       Figure 10: Apple S5 Figure 7: Apple A12X Bionic Bionic / A12Z2 Bionic

1 A11 SoC shown soldered down on device PCB. SoC is outlined by red box.

2 Apple A12X / Apple A12Z use the same physical SoC.

This document may be reproduced and distributed only in its original entirely without revision.

6 of 34

Page 7
ModelHardware version(s)Firmware version(s)Processor(s)Distinguishing Features
iPad (5th generation) running sepOS distributed with iPadOS 14.22.011.1Apple A9N/A
iPad Pro 9.7-inch running sepOS distributed with iPadOS 14.22.011.1Apple A9XN/A
iPad (7th generation) running sepOS distributed with iPadOS 14.22.011.1Apple A10 FusionN/A
iPad Pro 10.5 inch running sepOS distributed with iPadOS 14.22.011.1Apple A10X FusionN/A
iPad mini (5th generation) running sepOS distributed with iPadOS 14.22.011.1Apple A12 BionicN/A
iPad Pro 11-inch (1st generation) running sepOS distributed with iPadOS 14.22.011.1Apple A12X BionicN/A

Figure 11: Apple S6 Figure 12: Apple T2 The block diagram below depicts the following information:

2.1.2 Tested Platforms

The hardware module has been tested by atsec CST lab on the following platforms: This document may be reproduced and distributed only in its original entirely without revision.

7 of 34

Page 8
iPad Pro 11-inch (2nd generation) running sepOS distributed with iPadOS 14.22.011.1Apple A12Z BionicN/A
iPhone 6S running sepOS distributed with iOS 14.22.011.1Apple A9N/A
iPhone 7 Plus running sepOS distributed with iOS 14.22.011.1Apple A10 FusionN/A
iPhone X running sepOS distributed with iOS 14.22.011.1Apple A11 BionicN/A
iPhone XS Max running sepOS distributed with iOS 14.22.011.1Apple A12 BionicN/A
Apple Watch Series S3 running sepOS distributed with watchOS 7.12.011.1Apple S3N/A
Apple Watch Series S4 running sepOS distributed with watchOS 7.12.011.1Apple S4N/A
Apple Watch Series S5 running sepOS distributed with watchOS 7.12.011.1Apple S5N/A
Apple Watch Series S6 running sepOS distributed with watchOS 7.12.011.1Apple S6N/A
Apple TV 4K running sepOS distributed with tvOS 14.22.011.1Apple A10X FusionN/A
Apple Security Chip T2 running sepOS distributed with TxFW 11.0.12.011.1Apple T2N/A
Algorithm andDescription / Key Size(s) / Key
CAVP Cert.Mode / MethodUse / Function
StandardStrength(s)
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
A1342CBC
800-38 A]192, 256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
A1343CBC
800-38 A]192, 256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
A1344CBC
800-38 A]192, 256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
A1345CBC
800-38 A]192, 256and Decryption
AES [FIPS 197] [SPKey Length / Key Strength: 128,Symmetric Encryption
A510CBC
800-38 A]192, 256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C314CBC
800-38 A]256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C315CBC
800-38 A]256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C317CBC
800-38 A]256and Decryption

7.1 7.1 Table 2 - Tested Operational Environments

2.2 Cryptographic Algorithms

The table below lists all approved or vendor-affirmed security functions of the module, including specific key size(s) employed for approved services, and implemented modes of operation. Some of the CAVP certificates, show testing for AES CTR, CCM or OFB modes but they are not used by the module. The module is in the approved mode of operation when the module utilizes the services that use the security functions listed in the table below.

2.2.1 Approved Security Functions

This document may be reproduced and distributed only in its original entirely without revision.

8 of 34

Page 9
Algorithm andDescription / Key Size(s) / Key
CAVP Cert.Mode / MethodUse / Function
StandardStrength(s)
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C318CBC
800-38 A]256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C319CBC
800-38 A]256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C320CBC
800-38 A]256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C322CBC
800-38 A]256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C326CBC
800-38 A]256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C330CBC
800-38 A]256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C358CBC
800-38 A]256and Decryption
AES [FIPS 197] [SPSymmetric Encryption
AES 5261ECBKey Length/ Key Strength: 256
800-38 A]and Decryption
AES [FIPS 197] [SPSymmetric Encryption
AES 5272ECBKey Length/ Key Strength: 256
800-38 A]and Decryption
AES [FIPS 197] [SPSymmetric Encryption
AES 5273ECBKey Length/ Key Strength: 256
800-38 A]and Decryption
AES [FIPS 197] [SPSymmetric Encryption
AES 5274ECBKey Length/ Key Strength: 256
800-38 A]and Decryption
AES [FIPS 197] [SPSymmetric Encryption
AES 5275ECBKey Length/ Key Strength: 256
800-38 A]and Decryption
AES [FIPS 197] [SPSymmetric Encryption
AES 5278ECBKey Length/ Key Strength: 256
800-38 A]and Decryption
AES [FIPS 197] [SPSymmetric Encryption
AES 5279ECBKey Length/ Key Strength: 256
800-38 A]and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
A1342ECB
800-38 A]192, 256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
A1343ECB
800-38 A]192, 256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
A1345ECB
800-38 A]192, 256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
A1346ECB
800-38 A]192, 256and Decryption
AES [FIPS 197] [SPSymmetric Encryption
A501ECBKey Length/ Key Strength: 256
800-38 A]and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
A510ECB
800-38 A]192, 256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C314ECB
800-38 A]256and Decryption

This document may be reproduced and distributed only in its original entirely without revision.

9 of 34

Page 10
Algorithm andDescription / Key Size(s) / Key
CAVP Cert.Mode / MethodUse / Function
StandardStrength(s)
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C315ECB
800-38 A]256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C317ECB
800-38 A]256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C318ECB
800-38 A]256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C319ECB
800-38 A]256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C320ECB
800-38 A]256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C322ECB
800-38 A]256and Decryption
AES [FIPS 197] [SPSymmetric Encryption
C323ECBKey Length/ Key Strength: 256
800-38 A]and Decryption
AES [FIPS 197] [SPSymmetric Encryption
C324ECBKey Length/ Key Strength: 256
800-38 A]and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C326ECB
800-38 A]256and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C330ECB
800-38 A]256and Decryption
AES [FIPS 197] [SPSymmetric Encryption
C331ECBKey Length/ Key Strength: 256
800-38 A]and Decryption
AES [FIPS 197] [SPKey Length/ Key Strength: 128,Symmetric Encryption
C358ECB
800-38 A]256and Decryption
CTR_DRBGAES-256; No Derivation Function;Random Number
DRBG 2014Key Length/ Key Strength: 256
[SP800-90ARev1]Prediction Resistance EnabledGeneration
CTR_DRBGAES-256; No Derivation Function;Random Number
DRBG 2022Key Length/ Key Strength: 256
[SP800-90ARev1]Prediction Resistance EnabledGeneration
CTR_DRBGAES-256; No Derivation Function;Random Number
DRBG 2023Key Length/ Key Strength: 256
[SP800-90ARev1]Prediction Resistance EnabledGeneration
CTR_DRBGAES-256; No Derivation Function;Random Number
DRBG 2024Key Length/ Key Strength: 256
[SP800-90ARev1]Prediction Resistance EnabledGeneration
CTR_DRBGAES-256; No Derivation Function;Random Number
DRBG 2025Key Length/ Key Strength: 256
[SP800-90ARev1]Prediction Resistance EnabledGeneration
CTR_DRBGAES-256; No Derivation Function;Random Number
DRBG 2028Key Length/ Key Strength: 256
[SP800-90ARev1]Prediction Resistance EnabledGeneration
CTR_DRBGAES-256; No Derivation Function;Random Number
DRBG 2029Key Length/ Key Strength: 256
[SP800-90ARev1]Prediction Resistance EnabledGeneration
CTR_DRBGAES-256; No Derivation Function;Random Number
A501Key Length/ Key Strength: 256
[SP800-90ARev1]Prediction Resistance EnabledGeneration
CTR_DRBGAES-256; No Derivation Function;Random Number
C323Key Length/ Key Strength: 256
[SP800-90ARev1]Prediction Resistance EnabledGeneration

This document may be reproduced and distributed only in its original entirely without revision.

10 of 34

Page 11
Algorithm andDescription / Key Size(s) / Key
CAVP Cert.Mode / MethodUse / Function
StandardStrength(s)
CTR_DRBGAES-256; No Derivation Function;Random Number
C324Key Length/ Key Strength: 256
[SP800-90ARev1]Prediction Resistance EnabledGeneration
CTR_DRBGAES-256; No Derivation Function;Random Number
C331Key Length/ Key Strength: 256
[SP800-90ARev1] CKG [SP800-Prediction Resistance EnabledGeneration
vendor affirmed133Rev2]AES keyKey Length/ Key Strength: 256 Key Length/ Key Strength: 112Key Generation
A1340HMAC [FIPS 198]SHA-1bits or greater Key Length/ Key Strength: 112Keyed Hash
A1345HMAC [FIPS 198]SHA-1bits or greater Key Length/ Key Strength: 112Keyed Hash
A1340HMAC [FIPS 198]SHA2-224bits or greater Key Length/ Key Strength: 112Keyed Hash
A1345HMAC [FIPS 198]SHA2-224bits or greater Key Length/ Key Strength: 112Keyed Hash
A1340HMAC [FIPS 198]SHA2-256bits or greater Key Length/ Key Strength: 112Keyed Hash
A1345HMAC [FIPS 198]SHA2-256bits or greaterKeyed Hash
SHA2-256 (for all SoCs but S3 thatKey Length/ Key Strength: 112
A1341HMAC [FIPS 198]Keyed Hash
doesn't implement vng_neon)bits or greater Key Length/ Key Strength: 112
A1340HMAC [FIPS 198]SHA2-384bits or greater Key Length/ Key Strength: 112Keyed Hash
A1345HMAC [FIPS 198]SHA2-384bits or greater Key Length/ Key Strength: 112Keyed Hash
A1340HMAC [FIPS 198]SHA2-512bits or greater Key Length/ Key Strength: 112Keyed Hash
A1345HMAC [FIPS 198]SHA2-512bits or greater Key Length/ Key Strength: 112Keyed Hash
A1340HMAC [FIPS 198]SHA2-512/256bits or greater Key Length/ Key Strength: 128,Keyed Hash
A1343KTS [SP 800-38 F]AES-KW192, 256 Key Length/ Key Strength: 128,Key Wrapping
A1345KTS [SP 800-38 F]AES-KW192, 256Key Wrapping
A1340SHS [FIPS 180-4]SHA-1N/AMessage Digest
A1345SHS [FIPS 180-4]SHA-1N/AMessage Digest
A1340SHS [FIPS 180-4]SHA2-224N/AMessage Digest
A1345SHS [FIPS 180-4]SHA2-224N/AMessage Digest
A1340SHS [FIPS 180-4]SHA2-256N/AMessage Digest
A1345SHS [FIPS 180-4]SHA2-256N/AMessage Digest

This document may be reproduced and distributed only in its original entirely without revision.

11 of 34

Page 12
Algorithm andDescription / Key Size(s) / Key
CAVP Cert.Mode / MethodUse / Function
StandardSHA2-256 (for all SoCs but S3 thatStrength(s)
A1341SHS [FIPS 180-4]doesn't implement vng_neon)N/AMessage Digest
A1340SHS [FIPS 180-4]SHA2-384N/AMessage Digest
A1345SHS [FIPS 180-4]SHA2-384N/AMessage Digest
A1340SHS [FIPS 180-4]SHA2-512N/AMessage Digest
A1345SHS [FIPS 180-4]SHA2-512N/AMessage Digest
A1340SHS [FIPS 180-4]SHA2-512/256N/AMessage Digest
Algorithm/FunctionsUse / Function
Ed25519 Key GenerationEdDSA signature scheme
Ed25519 shared secret generationEdDSA shared secret generation
Curve 25519 key generationKey generation
Curve 25519 shared secret generationshared secret generation
ECDH Key Pair GenerationElliptic Curve Integrated Encryption Scheme (ECIES) key generation
ECDH Shared Secret Computation ANSI X9.63 KDF AES-GCMElliptic Curve Integrated Encryption Scheme (ECIES) Encryption
ECDH Shared Secret Computation ANSI X9.63 KDF AES-GCMElliptic Curve Integrated Encryption Scheme (ECIES) Decryption
HKDF RFC5869HMAC based Key Derivation Function
PBKDFKey Derivation
ECDSA implemented in FWKey generation as part of Ref key generation service and validation, Signature generation and verification as part of Device keybag service
ECDSA implemented in HW PKAKey generation as part of Ref key generation service Signature generation primitive
ECDH implemented in FWShared secret computation
ECDH implemented in HW PKAShared secret computation
AES KW using class D key, keys from Device keybag, keys from iCloud keybag, keys from Escrow keybag, keys from any keybag used with Class B Curve 25519 encrypt/decrypt, keys from Backup keybag used for wrapping Ed25519 keys, or NVM storage controller keyKey wrapping and unwrapping

Table 3 - Approved Algorithms This module does not implement non-approved algorithms allowed in the approved mode of operation nor non-approved algorithms used in approved mode of operation with no security claimed.

2.2.2 Non-Approved Security Functions

The table below lists non-approved security functions that are not allowed in approved mode of operation: Table 4 - Non-Approved Algorithms Not Allowed in the Approved Mode of Operation This document may be reproduced and distributed only in its original entirely without revision.

12 of 34

Page 13
Physical Port3Logical InterfaceData that passes over port/interface
Mailbox Memory, IPC channelData InputData inputs are provided through the memory used for mailbox and IPC.
Mailbox Memory, IPC channelData OutputData outputs are provided through the memory used for mailbox and IPC.
Mailbox Memory, IPC channelControl InputControl input which controls the module’s operation is provided through the mailbox by the Device OS’ kernel and to applications located within sepOS execution environment through IPC.
Mailbox Memory, IPC channelStatus OutputStatus output is provided in return codes and through messages returned via the mailbox or IPC. Documentation for each service invocation lists possible return codes. A complete list of all return codes returned by the C language APIs within the module is provided in the header files and the API documentation. Messages are also documented in the API documentation.
single chip's Power portPower interfacePower
3 Cryptographic Module Interfaces

the Device OS kernel. In detail these interfaces are described in (Table 5): Table 5 - Ports and Interfaces data from SSP information. The module communicates any error status synchronously through the use of its documented return codes, thus indicating Caller-induced or internal errors do not reveal any sensitive material to callers. Cryptographic bypass capability is not The module does not implement or support the use of a trusted channel. This document may be reproduced and distributed only in its original entirely without revision.

13 of 34

Page 14
RoleServiceInputOutput
UserUser keybag Services via MailboxUser credential, reference to class C/A key from the user keybagstatus (success/error)
General Authentication serviceUser credential, reference to class C/A key from the user keybagstatus (success/error)
Generation of DEKreference to class C/A key from the User keybagwrapped DEK
Backup keybag generationN/Astatus (success/error)
Backup keybag servicewrapped DEK, reference to class C or A key from the user keybagwrapped DEK
Keychain DEK service using AK/ AKU/ AKPU/ CK/ CKU class keypointer to AK/AKU/ AKPU/ CK/ CKU class key, wrapped DEKunwrapped DEK
Escrow keybag creationN/Astatus (success/error)
Export keybagreference to a keybag to be exportedkeybag with HMAC tag
Crypto Officer (CO)Show StatusN/Astatus (success/error)
Device WipeN/AN/A
Show Module InformationN/AModule name and version
Class D File System Services to wrap or unwrap DEK (Non-approved)Pointer to Class D key from Backup keybag or Flash in SEP, wrapped or unwrapped DEKwrapped or unwrapped file DEK
Class D key service to encrypt or decrypt data (non-approved)Pointer to Class D key from Device or iCloud Keybag, plaintext or ciphertext dataciphertext or plaintext data
Class DK/DKU File System Services to wrap or unwrap keychain (non-approved)Pointer to Class DK/DKU key from Backup or User Keybag, wrapped or unwrapped keychainwrapped or unwrapped file keychain
Class DK/DKU key used for encrypting or decrypting of data (non-approved)Pointer to Class DK/DKU key from Device or iCloud Keybag, plaintext or ciphertext dataciphertext or plaintext data
Generate Ref-Keys (Non-approved)N/Astatus success/error, ref-key
Signature generation using Ref-key (non- approved)pointer to ref-key, datasigned data
Signature verification using Ref-key (non- approved)pointer to ref-key, signed dataverification result pass/error
Encryption using Ref-key (non-approved)Pointer to ref key, dataciphertext
Decryption using Ref-key (non-approved)Ciphertext, Pointer to ref keyplaintext
Generate Shared Secret using Ref-key (non- approved)pointer to ref-key, remote public keyshared secret
Device Keybag Services for data encrypt or decrypt (non-approved)pointer to class key from device keybag, plaintext or ciphertext dataciphertext or plaintext data
iCloud Keybag services for data encrypt or decrypt (non-approved)pointer to class key from device keybag, plaintext during encryption or ciphertext data during decryptionciphertext during encryption; plaintext data during decryption

The module supports two authorized roles: the User and the Crypto Officer. No support is provided for multiple concurrent operators or a maintenance operator. The module authentication mechanism is defined by IG 4.4.A case 2 as follows. The User role is authenticated with the mechanism described in section 4.1. The User role can access the module via mailbox interface using the Device OS’s XNU Table 9 that do not affect the module’s security, per IG 4.1.A . The services are performed either via mailbox interface using the Device OS’s XNU kernel or via IPC channel using software applications running on sepOS. This document may be reproduced and distributed only in its original entirely without revision.

14 of 34

Page 15
Escrow keybag service for key wrapping and unwrapping (non-approved)pointer to any key from Escrow keybag, plaintext key wrapping or wrapped key during unwrapping operationwrapped key during wrapping; plaintext key during unwrapping
Encrypt or Decrypt service using Class B Curve 25519 key from any keybag (non-approved)Pointer to class B key from any keybag, plaintext or ciphertext dataciphertext and ephemeral public key during encryption; plaintext data during decryption
Wrap or unwrap service for DEK or keychain using D/C/A Curve 25519 key from asymmetric keybag (non-approved)Pointer to D/C/A key from asymmetric keybag, plaintext DEK or keychain during wrapping operation or wrapped DEK or keychain during unwrapping operationwrapped DEK or keychain during wrapping; plaintext DEK or keychain during unwrapping
Wrap and unwrap service for keychain using DK/DKU/CK/ CKU/AK/AKU/AKPU Ed25519 key from asymmetric keybag (non-approved)Pointer to DK/ DKU/ CK/ CKU/AK/ AKU/ AKPU key from asymmetric keybag, plaintext keychain during wrapping operation or wrapped keychain during unwrapping operationwrapped keychain during wrapping; plaintext keychain during unwrapping
Asymmetric (Ed25519) backup keybag wrap and unwrap (non-approved)Pointer to Ed 25519 key from backup keybag, plaintext or ciphertext dataciphertext or plaintext data
NVM Storage Controller Key Service (non- approved)pointer to NVM storage controller key, DEKWrapped DEK
Elliptic Curve Integrated Encryption Scheme (ECIES) Encryption (non-approved)data, public keyencrypted data
Elliptic Curve Integrated Encryption Scheme (ECIES) Decryption (non-approved)data, private keydecrypted data
PBKDF Key Derivation (non-approved)passwordderived key
Filesystem DEK services (non-approved)wrapped DEK, class key reference from User keybag.Wrapped DEK or Error
Generation of DEK via IPC using class D key (non-approved)N/ADEK wrapped with class D key
Requesting backup keybag service via IPC using class D key (non-approved)DEK wrapped with class D keyDEK wrapped with back up keybag key

Table 6 – Roles, Service Commands, Input and Output

4.1 Operator Authentication

Within the constraints of FIPS 140-3 level 2, the module implements a role-based authentication mechanism for authentication of the user role. The module implements authenticated encryption-based mechanism in the following way: to request an authenticated service from the module the user must provide the credential and a reference to the class C or A keys of the user keybag4 that is stored encrypted under SP800-38F AES Key Wrapping (AES-KW) within the module. The module performs obfuscation on the Operator provided credential and the resulting value -called REK (Root Encryption Key)- is used as the 256-bit AES key. Using this key, the module decrypts all the class C or A keys in the referenced user keybag with SP80038F AES Key Unwrapping function (i.e., AES-KW-AD5). As AES-KW is an authentication cipher, the decryption operation will only succeed if there is no authentication error. If the user keybag can be successfully decrypted, the user is authenticated to the module and the requested crypto service will then be proceeded with the decrypted user key. The failure of decrypting the user keybag is also a user authentication failure and the Operator will be denied access to the module. The User keybags are configured in the module during factory install. Each User keybag consists of set of class C, A and D AKPU key. Only the class A or C keys are considered as approved. Any use of class D keys is considered as non-approved. The module maintains authenticated session from the time the User keybags are unwrapped until the power off. Upon power off, the unwrapped User keybags are zeroized and at the next power on the User credential needs to be provided again to

4 A keybag is a data structure used to store a collection of class keys. Each type (User, device, escrow, backup, or iCloud) has the same

5 Section 6.2 SP800-38F, Algorithm 4: KW-AD(C)

This document may be reproduced and distributed only in its original entirely without revision.

15 of 34

Page 16
RoleAuthentication MethodAuthentication Strength
UserAES-KW unwrapping function256 bits
Crypto Officer (CO)No authenticationN/A

unwrap the User keybag. All authentication data is provided electronically from the calling application/service and hence is not in visible form. The AES-KW 256-bit key unwrapping function provides 256 bits of strength. Therefore, the strength of the authentication mechanism in use is 1/ 2^256. Even using a rate of 1µs per failed authentication, which would allow 60,000,000 consecutive attempts per minute (60s / 0.000001s), only provides a probability of successfully authenticating that is less than or equal to 60,000,000 * 1 / 2^256. The SP 800-63B requirements are not applicable here based on the type of authentication mechanism deployed by the module because the authenticated decryption is not one of the methods listed in SP 800-63B. Table 7– Roles and Authentication

4.2 Services

The module has an approved and non-approved mode of operation. The approved mode of operation is assumed automatically without any specific configuration. If the device starts up successfully then the module has passed all selftests and is operating in the approved mode. Any calls to the non-approved security functions listed in Table 9 will cause the module to assume the non-approved mode of operation. The module implements a dedicated API function to indicate if a requested service utilizes an approved security function. The approved service indicator utilizes one of two functions (fips_allowed and fips_allowed_mode) depending on the service in question. Calling fips_allowed_mode with AES-ECB, AES-CBC or AES-KW will return a zero to indicate it is an approved algorithm. Similarly, calling fips_allowed with any other approved algorithm will return zero. Calling either of these with an algorithm not listed in the Approved Algorithms Table will return a non-zero value, and as such indicates a non-approved service. The table below lists all approved services that can be used in the approved mode of operation by authorized operators of either the User or Crypto Officer Roles. The abbreviations of the access rights to keys and 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= Not Applicable: The service does not access any SSP during its operation

4.2.1 Approved Services

The table below includes the Approved Security Functions utilized by the service and Roles and access writes provided to the Keys and/or SSPs affected by the services. The last column provides a description of the service indicator reported by the service to show that the service utilizes an approved cryptographic algorithm, security function or process in an approved manner. This document may be reproduced and distributed only in its original entirely without revision.

16 of 34

Page 17
#ServiceApprovedAccess rightsIndi
DescriptionSecurityKeys and/or SSPsRoleto Keys and/cato
Functionsor SSPsr
1User Keybag Services via MailboxStep 1. The module receives User credential and the reference to the class C or A key from the User keybag Step 2. Obfuscation operation is performed on the User provided credential resulting into a value called REK. Step 3. REK is used as a key for the AES KW operation to unwrap the referenced class A or C keys in the user keybag stored in the module. Step 4. Status of unwrapping operation of class keys is returned via mailbox interface and the REK is zeroizedKey Unwrapping: AES-KWUser credential, REK, User keybag (Class A key, Class AK key, Class AKU key, Class AKPU key, Class C key, Class CK key, Class CKU key)UserW, E0
2General Authentication serviceThe module invokes the User keybag Services via Mailbox (i.e., #1 above)Key Unwrapping: AES-KWUser credential, REK, User keybag (Class A key, Class AK key, Class AKU key, Class AKPU key, Class C key, Class CK key, Class CKU key)UserW, E0
3Generation of Data Encryption Key (DEK)Step 1: The module receives the reference to the class C or A key from the user keybag Step 2: The module generates a new DEK using the DRBG Step 3: Referenced class C or A key is used to wrap the DEK using AES-KW Step 4: Wrapped DEK is sent out of the moduleSymmetric Key Generation (CKG using method in Section 4 [SP 800- 133Rev2] AES- ECB, AES-CBC) Key Wrapping: AES-KWEntropy input string, DRBG internal stateUserE0
User keybag (Class A key, Class AK key, Class AKU key, Class AKPU key, Class C key, Class CK key, Class CKU key)W, E
DEKG,E
Wrapped DEKR
4Keychain DEK service using AK/ AKU/ AKPU/ CK/ CKU class keyStep 1. The module receives wrapped DEK (that was sent as part of service 3 above) and the pointer to class key AK/ AKU/AKPU/CK/ CKU from the user keybag. Step 2. Using the referenced class key, the module unwraps the DEK using AES-KW. If the class key is not available, an error is returned. Step 3. plaintext DEK is sent out to the User.Key Wrapping: AES-KWUser keybag (Class A key, Class AK key, Class AKU key, Class AKPU key, Class C key, Class CK key, Class CKU key)UserE0
DEKR, E
Wrapped DEKW, E
5Backup keybag generation Backup keybag serviceThe module generates new set of back up keybags using the DRBGSymmetric Key Generation (CKG using method in Section 4 [SP 800- 133Rev2], AES- ECB, AES-CBC)Entropy input string, DRBG internal stateUserE0
Backup keybag (Class A key, Class AK key, Class C key, Class CK key)G, E
6Step 1. The module receives wrapped DEK and the class key reference for C and A from the user keybag. Step 2. Using the referenced class key, the module unwraps the DEK using AES-KW. If the class key is not available, an error is returned. Step 3. The module generates a set of backup key bag using DRBGKey Wrapping and Unwrapping: AES- KW Symmetric Key Generation (CKG using method in Section 4 example 1 [SP 800- 133Rev2] AES- ECB, AES-CBC)DEK, User keybag (Class A key, Class AK key, Class AKU key, Class AKPU key, Class C key, Class CK key, Class CKU key)UserW, E0
Entropy input string, DRBG internal stateE

This document may be reproduced and distributed only in its original entirely without revision.

17 of 34

Page 18
#ServiceApprovedAccess rightsIndi
DescriptionSecurityKeys and/or SSPsRoleto Keys and/cato
Functionsor SSPsr
Step 4. Unwrapped DEK is re-wrapped with backup key bag key using AES-KW Step 5. Wrapped DEK is sent out.Wrapped DEKR
Backup keybag (Class A key, Class AK key, Class C key, Class CK key) HMAC keyG, E
7Escrow keybag creationThe module generates new set of escrow key bag using the DRBGSymmetric Key Generation (CKG using method in Section 4 [SP 800- 133Rev2] AES- ECB, AES-CBC)Entropy input string, DRBG internal stateUserE0
Escrow keybag (Class A key, Class AK key, Class AKU key, Class AKPU key, Class C key)G,E
8Export KeybagStep 1. The module receives reference to a keybag. Step 2: A HMAC key is taken as input based on the hardware specific data for the SKS Step 3: HMAC value is calculated on the entire referenced keybag that includes encrypted6 keys. Step 4: HMAC is appended at the end of the keybag Step 5: Keybag with the appended HMAC is output to the UserMessage Authentication HMACHMAC keyUserW, E0
Keybag to be exported (User or Backup or Escrow keybag)R, E
9Device Wipe7Erase all content (Factory Reset)N/AAll SSPsCOZN/A
10Show StatusN/AN/AN/ACON/AN/A
11Show Module InformationN/AN/AN/ACON/AN/A
12Perform Self- TestPerform all pre-operational self-tests and cryptographic algorithm self-tests (CASTs)AllN/ACON/AN/A
ServiceDescriptionAlgorithms AccessedRoleIndicator
Class D File System Services to wrap or unwrap DEKWrapping of provided plaintext DEK or unwrapping of provided wrapped DEK using class D key from Backup keybag or secure storage in SEPAES-KWCOnon-zero value
Class D key service to encrypt or decrypt dataEncryption of provided plaintext or decryption of provided ciphertext using class D key from Device or iCloud KeybagAES-KWCOnon-zero value

The table below lists all non-approved services that can only be used in the non-approved mode of operation and the services are non-authenticated.

6 Note: only class A and C keys in the keybag are encrypted with REK whereas class D keys are in plaintext as they are non-approved and not

7 Please note, this service marks end of life of the device.

This document may be reproduced and distributed only in its original entirely without revision.

18 of 34

Page 19
ServiceDescriptionAlgorithms AccessedRoleIndicator
Class DK/DKU File System Services to wrap or unwrap keychainWrapping of provided plaintext keychain or unwrapping of provided wrapped keychain using class DK/DKU key from Backup keybag or User keybagAES-KWCOnon-zero value
Class DK/DKU key service for data encrypt or decryptEncryption of provided plaintext or decryption of provided ciphertext using DK/DKU key from Device or iCloud keybagAES-KWCOnon-zero value
Generate Ref-KeysKey GenerationECDSA KeyGenCOnon-zero value
Sign and verify using Ref-keySignature Generation and VerificationECDSA SigGen, ECDSA SigVerCOnon-zero value
Encryption and decryption using Ref-keyshared secret is generated using user provided key and existing ref key followed by HKDF is applied to derive a key which is used to encrypt the provided plaintext or decrypt the provided ciphertextECDSA HKDF AES-GCM AES-KWCOnon-zero value
Generate Shared Secret using Ref-keyShared secret generationECDHCOnon-zero value
Device keybag service for data encrypt or decryptEncryption of provided plaintext or decryption of provided ciphertext using any key from Device keybagAES-KWCOnon-zero value
iCloud keybag service for data encrypt or decryptEncryption of provided plaintext or decryption of provided ciphertext using any key from iCloud keybagAES-KWCOnon-zero value
Escrow keybag service for key wrapping and unwrappingWrapping of provided plaintext key or unwrapping of provided wrapped key using any key from Escrow keybagAES-KWCOnon-zero value
Encrypt or Decrypt service using Class B Curve 22519 key from any key bagshared secret is computed by generating new ephemeral keypair and existing Curve25519 key followed by HKDF is applied to derive a key which is used for data encryption or decryption. During encryption operations, the wrapped key and the ephemeral public key are sent to the userAES-KW HKDF Curve 25519COnon-zero value
Wrap or unwrap service for DEK or keychain using any Curve 22519 key from asymmetric key bagshared secret is computed by generating new ephemeral keypair and existing Curve25519 key followed by HKDF is applied to derive a key which is used to wrap and unwrap DEK or keychain. During wrapping operation, the wrapped key and the ephemeral public key are sent to the userAES-KW HKDF Curve 25519COnon-zero value
Asymmetric (Ed25519) backup keybag wrap and unwrapshared secret is computed by generating new ephemeral keypair and existing Curve25519 key followed by HKDF is applied to derive a key which is used to wrap and unwrap. The wrapped key and the ephemeral public key are sent to the userAES-KW HKDF Ed25519COnon-zero value
Wrap or unwrap service for keychain using DK/DKU/CK/ CKU/AK/AKU/AKPU Ed25519 key from asymmetric key bagPointer to DK/DKU/CK/CKU/AK/AKU/AKPU key from asymmetric keybag, plaintext keychain during wrapping operation or wrapped keychain during unwrapping operationAES-KW HKDF Ed25519COnon-zero value
NVM Storage Controller Keywrapping DEK using NVM storage controller keyAES KWCOnon-zero value
Elliptic Curve Integrated Encryption Scheme (ECIES) EncryptionEncryptionECDH AES-GCM ANSI X9.63 Key DerivationCOnon-zero value
Elliptic Curve Integrated Encryption Scheme (ECIES) DecryptionDecryptionECDH AES-GCM ANSI X9.63 Key DerivationCOnon-zero value
PBKDF Key DerivationHash-based Key DerivationPBKDFCOnon-zero value
File system DEK serviceUnwrap the DEK using referenced class key and re-wrap using NVM storage controller keyAES KWCOnon-zero value
Generation of DEK using class D keyRequesting generate DEK service via IPC using class D keysAES KW DRBGCOnon-zero value

This document may be reproduced and distributed only in its original entirely without revision.

19 of 34

Page 20
ServiceDescriptionAlgorithms AccessedRoleIndicator
Requesting backup keybag service using class D keyRequesting backup keybag service via IPC using class D keysAES KW DRBGCOnon-zero value

Table 9 - Non-Approved and non-authenticated Services This document may be reproduced and distributed only in its original entirely without revision.

20 of 34

Page 21
5 Software/Firmware security
5.1 Integrity Techniques

The Apple corecrypto Module v11.1 [Apple silicon, Secure Key Store, Hardware] (SL2) is in the form of binary executable code. A firmware integrity test is performed on the runtime image of the module. The HMAC-SHA256 implemented in the module is used as an 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.

5.2 On-Demand Integrity Test

The Integrity tests are performed as part of the Pre-Operational Self-Tests. It is automatically executed at power-on. This document may be reproduced and distributed only in its original entirely without revision.

21 of 34

Page 22
6 Operational Environment

The Apple corecrypto Module v11.1 [Apple silicon, Secure Key Store, Hardware] (SL2) operates in a limited operational environment per FIPS 140-3 security level 2 specifications. The module operates within the sepOS execution environment which is separate from the Device OS execution environment. The SEP operating system provides memory isolation between all applications executing on it. The Device OS is unable to access the module's memory or observe the module's operation. This document may be reproduced and distributed only in its original entirely without revision.

22 of 34

Page 23
Physical Security MechanismRecommended Frequency of Inspection/TextInspection/Test Guidance Details
Production Grade Components that include standard passivationNo operator-performed testing is recommendedN/A
- Tamper-evident coating or black hard coated material or metal coating - The Ball Grid Array (BGA back side of the SoC soldered on the logic board.) The components listed above are opaque within the visible spectrum.No operator-performed testing is recommendedN/A

The defined physical boundary of the Apple corecrypto Module v11.1 [Apple silicon, Secure Key Store, Hardware] (SL2) is the entire System-on-Chip (SoC) listed in Table

  1. Consequently, the physical embodiment of each SoC is that of a singlechip cryptographic module. The hardware module conforms to the Level 2 requirements for physical security as detailed in Table
  2. Table 10 – Physical Security Inspection Guidelines This document may be reproduced and distributed only in its original entirely without revision.

23 of 34

Page 24
8 Non-invasive Security

Currently, the non-invasive security is not required by FIPS 140-3 (see NIST SP 800-140F). 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.

24 of 34

Page 25
EstabliUse &
Security Function
Key / SSP Name /shmentStorarelated keys
StrengthGenerationImport / ExportZeroization
and Cert.(see(Service #
Typege
Numbersectionin section
9.34.2.1)
Class A, Class C, Class AK, Class AKU, Class CK, Class CKU in User Keybag (AES keys)128, 192, 256-bitsAES-KW with CAVP Certs. # A1343, A1345 (for services 1,2,3,4, 6)N/A: Preloaded at factoryEntry: N/A Output: encrypted using AES-KW for service #8 onlyN/AFlashDevice Wipe1,2,3,4,6,8
Class A, Class C, Class AK, Class AKU, Class CK, Class CKU keys in backup keybag (AES keys)128, 192, 256-bitsCTR_DRBG with CAVP Certs. # DRBG 2014, DRBG 2022, DRBG 2023, DRBG 2024, DRBG 2025, DRBG 2028, DRBG 2029 C323, C324, C331, A501 (for services 3, 5, 6, 7)Generated using direct output of CTR DRBG compliant to section 4 of SP800- 133r2. CKG (vendor affirmed)Entry: N/A Output: encrypted using AES-KW for service #8 onlyN/ARAMContext object destruction; Device Wipe5,6,8
Class A, Class C, Class AK, Class AKU, Class CK, Class CKU keys in escrow keybag (AES keys)128, 192, 256-bitsGenerated using direct output of CTR DRBG compliant to section 4 of SP800- 133r2. CKG (vendor affirmed)Entry: N/A Output: encrypted using AES-KW for service #8 onlyN/ARAMContext object destruction; Device Wipe7,8
Data Encryption Key (DEK) (AES key)128, 192, 256-bitsAES-KW with CAVP Certs. # A1343, A1345 (for services 1,2,3,4, 6)Symmetric key generation services of the module using DRBG compliant to section 4 of SP800- 133r2. CKG (vendor affirmed)Entry: In encrypted form Output in encrypted form via service 3/6, or plaintext via service 4N/ARAMContext object destruction; Device Wipe3,4,6
Entropy input string256-bitsRandom Number Generation ESV #E113Obtained from physical entropy sourceNo import No exportN/ARAMDevice Wipe3,5,6,7
DRBG internal state: V value, key, and seed material256-bitsRandom Number Generation CTR_DRBG with CAVP Certs. # DRBG 2014, DRBG 2022, DRBG 2023, DRBG 2024, DRBG 2025, DRBG 2028, DRBG 2029, C323, C324, C331, A501Updated during DRBG initializationNo import No exportN/ARAMDevice Wipe3,5,6,7
9 Sensitive Security Parameter Management

The following table summarizes the keys and Sensitive Security Parameters (SSPs) that are used by the cryptographic

9.3 4.2.1)

This document may be reproduced and distributed only in its original entirely without revision.

25 of 34

Page 26
EstabliUse &
Security Function
Key / SSP Name /shmentStorarelated keys
StrengthGenerationImport / ExportZeroization
and Cert.(see(Service #
Typege
Numbersectionin section
9.34.2.1)
HMAC Key112-bits or greaterHMAC-SHA-256 A1340, A1341, A1345N/AEntry: taken as input based on the hardware specific data Output: N/AN/ARAMContext object destruction; Device Wipe8
User CredentialN/AN/AN/AEntry: input by User Output: N/AN/ARAMDevice Wipe1,2
REK256-bitsN/AN/A: based on obfuscation performed on the User provided credentialEntry: N/A Output: N/AN/ARAMDevice Wipe1,2
Entropy SourceMinimum number of bits of entropyDetails
ESV #E113 (physical entropy source)256The entropy source is a hardware entropy source consisting of twenty-four Free Ring Oscillator (FROs). The entropy source has been shown to provide full 256-bits of entropy at the output of the vetted conditioning function, SHA2-256 (#C1223).
9.3 4.2.1)

Table 11 - SSPs A [SP800-90ARev1] approved deterministic random bit generator based on block cipher is used: CTR_DRBG using AES-256 without derivation function and with prediction resistance. The random numbers used for key generation are all generated by CTR_DRBG in this module. Per section 10.2.1.1 of [SP 800-90ARev1], the internal state of CTR_DRBG consists of the V, Key, and a seed. In accordance with FIPS 140-3 IG D.L, the 'Entropy input string', 'seed', 'DRBG internal state (V and key values)' are considered CSPs by the module. The module also performs DRBG health tests according to section 11.3 of [SP800-90ARev1]. No non-DRBG functions or instances are able to access the DRBG internal state. The deterministic random bit generators are seeded by an internal physical noise source. The physical entropy source provides 256-bits of security strength in instantiating and reseeding the module approved DRBGs. Table 12 - Non-Deterministic Random Number Generation Specification The module provides a key generation service for symmetric cipher i.e. AES in accordance with FIPS 140-3 IG D.H. The cryptographic module performs Cryptographic Key Generation (CKG) for symmetric keys as per section 4 [SP800-133r2]. The implementation follows example 1 from Section 4 whereby V is a string of binary zeroes, such that B = U (i.e., the output of an approved RBG). The symmetric keys are generated directly output from an approved DRBG compliant with [SP80090ARev1].

9.3 Keys/SSPs Establishment

The module provides the following key/SSP establishment service in the Approved mode: • AES-Key Wrapping: The module implements a Key Transport Scheme (KTS) using AES-KW compliant to [SP80038F] per IG D.G. The SSP establishment methodology provides between 128 and 256 bits of encryption strength. This document may be reproduced and distributed only in its original entirely without revision.

26 of 34

Page 27
9.4 Keys/SSPs Import/Export

Per the definition in IG 2.3.B, "Transferring SSPs including the entropy input between a sub-chip cryptographic subsystem and an intervening functional subsystem for Security Levels 1 and 2 on the same single chip is considered as not having Sensitive Security Parameter Establishment crossing the HMI". As such, the import or export Keys/SSP as defined in Table 1 of IG 9.5.A do not apply. Within the TOEPP, keys and SSPs can either be entered, or output from the Apple Secure Key Store Cryptographic Module to/from intervening functional subsystems in plaintext .

9.5 Keys/SSPs Storage

During runtime operation, the Apple corecrypto Module v11.1 [Apple silicon, Secure Key Store, Hardware] (SL2) module stores keys/SSPs in volatile memory, except for the user keybag that is stored in Flash. The module protects all keys/SSPs through the memory separation and protection mechanisms provided by the operating system while the Flash component only provides exclusive access to the module. No process other than the module itself can access the keys/SSPs in its process memory or Flash component.

9.6 Keys/SSPs Zeroization

Keys and SSPs (including temporary SSPs) are zeroised when the appropriate context object is destroyed by overwriting the entire context object with all zeros. Zeroization occurs at the end of an API function that uses the CSPs. Zeroization is also performed by calling the "Device Wipe" service. The "Device Wipe" service performs end of life of the device. Input and output interfaces are inhibited while zeroisation is performed. Zeroisation is immediate and uninterruptible, preventing the retrieval and reuse of the zeroised values. The module provides an implicit indication that the zeroisation has successfully completed by returning access to the User, ready to service the next request. This document may be reproduced and distributed only in its original entirely without revision.

27 of 34

Page 28
Cryptographic AlgorithmNotes
HMAC-SHA256CAST performed prior to module’s firmware integrity test
Pre-operational firmware integrity testFirmware integrity test using HMAC-SHA-256
AES-ECBSeparate encryption / decryption CAST performed using 128-bit key
AES-CBCSeparate encryption / decryption CAST performed using 128-bit key
AES-KWSeparate encryption / decryption CAST performed using 128-bit key
CTR_DRBGCAST and Health test per SP800-90ARev1 section 11.3 with 256-bit key
HMAC-SHA-1, HMAC-SHA-512CAST performed
SHA-1, SHA-256, SHA-512Covered by HMAC CAST
ESVAPT and RCT
10 Self-tests

The module performs pre-operational self-tests automatically when the module is loaded into memory; the pre-operational self-tests triggered at power-on ensure that the module is not corrupted and that the cryptographic algorithms work as expected. The module transitions to approved Mode upon successful completion of the pre-operational self-tests and CASTs. FIPS 140-3 only requires that software/firmware integrity test(s) and the requisite cryptographic algorithm(s) be tested during power-up, but the Apple corecrypto Module v11.1 [Apple silicon, Secure Key Store, Hardware] (SL2) runs all Cryptographic Algorithm Self-Tests (CASTs) during power-up as well. The following tests (Table 13) are performed each time the Apple corecrypto Module v11.1 [Apple silicon, Secure Key Store, Hardware] (SL2) starts. If any of the following tests fail the device fails to startup. While the module is executing the self-tests, services are not available, and input and output are inhibited. Table 13 - Self-Tests A pre-operational integrity test is performed on the firmware component of the Apple corecrypto Module v11.1 [Apple silicon, Secure Key Store, Hardware] (SL2). The module’s HMAC-SHA2-256 is used as an approved algorithm for the integrity test. If the test fails, then the module enters an Error State. The HMAC value is pre-computed at build time and stored in the module. The HMAC value is recalculated during runtime and compared with the stored value.

10.2 Conditional Self-Tests

The following sub-sections describe the conditional self-tests supported by the Apple corecrypto Module v11.1 [Apple silicon, Secure Key Store, Hardware] (SL2).

10.2.1 Cryptographic algorithm self-tests

The Apple corecrypto Module v11.1 [Apple silicon, Secure Key Store, Hardware] (SL2) runs all Cryptographic Algorithm SelfTests during power-up. These tests are detailed in Table 13.

10.2.2 Pairwise Consistency Test

The Apple corecrypto Module v11.1 [Apple silicon, Secure Key Store, Hardware] (SL2) does not provide asymmetric key generation service in the approved mode. Therefore, this section is not applicable. This document may be reproduced and distributed only in its original entirely without revision.

28 of 34

Page 29
Cause of ErrorError Indicator
Failed Pre-operational Software Integrity TestError message “FAILED: fipspost_post_integrity” sent to caller
Failed CASTError message “FAILED:<event>” sent to caller (<event> refers to any of the cryptographic functions listed in Table 13)
10.3 On-Demand Self-Test

On demand and periodic self-tests are performed by powering off the module and powering it on again. This service performs the same cryptographic algorithm tests executed during pre-operational self-tests and CASTs. During the execution of the periodic and on-demand self-tests, crypto services are not available and no data output or input is possible.

10.4 Error Handling

If any of the self-tests described in the above fail, the module reports the cause of the error and enters an error state. In the Error State, no cryptographic services are provided, and data output is prohibited. The only method to recover from the error state is to power cycle the device which results in the module restarting and reperforming the pre-operational firmware integrity test and the Conditional Cryptographic Algorithm Self-Tests (CASTs). The module will only enter the operational state after successfully passing the pre-operational firmware integrity test and the all CASTs. The table below shows the different causes that lead to the Error State and the status indicators reported. Table 14 – Error States This document may be reproduced and distributed only in its original entirely without revision.

29 of 34

Page 30
11 Life-cycle assurance
11.1 Delivery and Operation

The module’s firmware with the sepOS is delivered as part of the Device OS image. 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 the vendor, and it is verified during the integration into Device OS. This digital signature-based integrity protection during the delivery/ integration process is not to be confused with the HMAC-SHA-256 based integrity check performed by the module itself as part of its pre-operational self-tests. The biometric authentication option provided by the underlying test platform shall be disabled in order to run the module in the FIPS validated manner.

11.2 Crypto Officer Guidance

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 9 - Non-Approved and non-authenticated Services. If the device starts up successfully, then the module has passed all self-tests and is operating in the Approved mode. A Crypto Officer Role Guide is 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. A link to the Guide can be found on the Product security, validations, and guidance page found in [Device OS]. The ESV Public Use Document (PUD) reference for physical entropy source is published at https://csrc.nist.gov/projects/cryptographic-module-validation-program/entropy-validations/certificate/113

11.3 User Guidance

The User role is authenticated with the mechanism described in section 4.1. The User role can access the module via mailbox interface using the Device OS’s XNU kernel. The User role can perform subset of services from Table 8. As stated in the Crypto Officer Guidance, 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 9 - NonApproved and non-authenticated Services. This transition cannot be made by the User directly, as all non-approved services require an implicit transition into the Crypto-Officer role. Any calling of such services is therefore implicitly performed by the Crypto Officer. If the device starts up successfully, then the module has passed all self-tests and is operating in the Approved mode. When performing a Device Wipe service to erase all content of the module, the procedure must be performed under the control of the Operator. This document may be reproduced and distributed only in its original entirely without revision.

30 of 34

Page 31
12 Mitigation of other attacks

The module does not claim mitigation of other attacks. This document may be reproduced and distributed only in its original entirely without revision.

31 of 34

Page 32
Table, extracted as text (did not parse into structured rows)
Appendix A.                 Glossary and Abbreviations AES                        Advanced Encryption Standard API                        Application Programming Interfaces APT                        Adaptive Proportion Test (SP800-90B health test) BGA                        Ball Grid Array (Physical Security) CAVP                       Cryptographic Algorithm Validation Program CBC                        Cipher Block Chaining CCM                        Counter with Cipher Block Chaining-Message Authentication Code CMVP                       Cryptographic Module Validation Program CST                        Cryptographic and Security Testing CTR                        Counter Mode DEK                        Data Encryption Key DRBG                       Deterministic Random Bit Generator ECB                        Electronic Code Book ECDSA                      DSA (Digital Signature Algorithm) based on Elliptic Curve Cryptography (ECC) EMI                        Electromagnetic Interference (Physical Security) ESV                        Entropy Source Validation FIPS                       Federal Information Processing Standards Publication GCM                        Galois Counter Mode HMAC                       Hash Message Authentication Code IHS                        Integrated Heat Spreader (Physical Security) IPC                        Inter-Process Communication KAT                        Known Answer Test KDF                        Key Derivation Function KEK                        Key Encryption Key KW                         AES Key Wrap MAC                        Message Authentication Code NIST                       National Institute of Science and Technology NVM                        Non-Volatile Memory OFB                        Output Feedback OS                         Operating System PBKDF                      Password Based Key Derivation Function RCT                        Repetition Count Test (SP800-90B health test) SEP                        Secure Enclave Processor SHA                        Secure Hash Algorithm SHS                        Secure Hash Standard SKS                        Secure Key Store SoC                        System on Chip SSP                        Sensitive Security Parameters This document may be reproduced and distributed only in its original entirely without revision.

32 of 34

Page 33
Appendix B.References
FIPS140-3FIPS PUB 140-3 - Security Requirements for Cryptographic Modules March 2019 https://doi.org/10.6028/NIST.FIPS.140-3
SP 800-140xCMVP FIPS 140-3 Related Reference https://csrc.nist.gov/Projects/cryptographic-module-validation-program/fips-140-3-standards
FIPS140-3_IGImplementation 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_MMCMVP FIPS 140-3 Draft Management Manual https://csrc.nist.gov/CSRC/media/Projects/cryptographic-module-validation-program/documents/fips%20140- 3/Draft%20FIPS-140-3-CMVP%20Management%20Manual%2009-18-2020.pdf
SP 800-140FIPS 140-3 Derived Test Requirements (DTR) https://csrc.nist.gov/publications/detail/sp/800-140/final
SP 800-140ACMVP Documentation Requirements https://csrc.nist.gov/publications/detail/sp/800-140a/final
SP 800-140BCMVP Security Policy Requirements https://csrc.nist.gov/publications/detail/sp/800-140b/final
SP 800-140CCMVP Approved Security Functions https://csrc.nist.gov/publications/detail/sp/800-140c/final
SP 800-140DCMVP Approved Sensitive Security Parameter Generation and Establishment Methods https://csrc.nist.gov/publications/detail/sp/800-140d/final
SP 800-140ECMVP Approved Authentication Mechanisms https://csrc.nist.gov/publications/detail/sp/800-140e/final
SP 800-140FCMVP Approved Non-Invasive Attack Mitigation Test Metrics https://csrc.nist.gov/publications/detail/sp/800-140f/final
FIPS180-4Secure Hash Standard (SHS) March 2012 http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf
FIPS186-4Digital Signature Standard (DSS) July 2013 http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf
FIPS197Advanced Encryption Standard November 2001 http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
FIPS198-1The 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. 33 of 34
Page 34
RFC3394Advanced Encryption Standard (AES) Key Wrap Algorithm September 2002 http://www.ietf.org/rfc/rfc3394.txt
RFC5649Advanced Encryption Standard (AES) Key Wrap with Padding Algorithm September 2009 http://www.ietf.org/rfc/rfc5649.txt
SP800-38ANIST 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-38DNIST 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-38FNIST 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-57NIST Special Publication 800-57 Part 1 Revision 5 - Recommendation for Key Management Part 1: General May 2020 https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r5.pdf
SP800-90ARev1NIST Special Publication 800-90A - Revision 1 - Recommendation for Random Number Generation Using Deterministic Random Bit Generators June 2015 http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90Ar1.pdf
SP800-90BNIST Special Publication 800-90B - Recommendation for the Entropy Sources Used for Random Bit Generation January 2018 https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90B.pdf
SP800-131Ar2Transitioning the Use of Cryptographic Algorithms and Key Lengths March 2019 https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar2.pdf
SP800-133r2Recommendation for Cryptographic Key Generation June 2020 https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-133r2.pdf
DeveloperDevice OS Technical Overview https://developer.apple.com
SECApple 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
Device OSProduct security certifications for Device OS https://support.apple.com/en-gw/guide/certifications/welcome/web This document may be reproduced and distributed only in its original entirely without revision. 34 of 34