This page is best viewed with JavaScript enabled! {#this-page-is-best-viewed-with-jav This page is best viewed with JavaScript enabled! {#this-page-is-best-viewed-with-jav ================================================= ================================================= ::: {.center} ::: {.center} ![NIAP Logo](images/niaplogo.png)\ ![NIAP Logo](images/niaplogo.png)\ Version: 3.2\ Version: 3.2\ 2021-04-15\ 2021-04-15\ **National Information Assurance Partnership**\ **National Information Assurance Partnership**\ ::: ::: Revision History {#revision-history style="page-break-before:always;"} Revision History {#revision-history style="page-break-before:always;"} ---------------- ---------------- +-----------------------+-----------------------+-----------------------+ +-----------------------+-----------------------+-----------------------+ | Version | Date | Comment | | Version | Date | Comment | +=======================+=======================+=======================+ +=======================+=======================+=======================+ | 1.0 | 2013-10-21 | Initial Release | | 1.0 | 2013-10-21 | Initial Release | +-----------------------+-----------------------+-----------------------+ +-----------------------+-----------------------+-----------------------+ | 1.1 | 2014-01-12 | Typographical changes | | 1.1 | 2014-01-12 | Typographical changes | | | | and additional | | | | and additional | | | | clarifications in | | | | clarifications in | | | | application notes. | | | | application notes. | | | | Removed assignment | | | | Removed assignment | | | | from FCS\_TLS\_EXT.1 | | | | from FCS\_TLS\_EXT.1 | | | | and limited testing | | | | and limited testing | | | | to those ciphersuites | | | | to those ciphersuites | | | | in both | | | | in both | | | | FCS\_TLS\_EXT.1 and | | | | FCS\_TLS\_EXT.1 and | | | | FCS\_TLS\_EXT.2. | | | | FCS\_TLS\_EXT.2. | +-----------------------+-----------------------+-----------------------+ +-----------------------+-----------------------+-----------------------+ | 2.0 | 2015-09-14 | Included changes | | 2.0 | 2015-09-14 | Included changes | | | | based on Technical | | | | based on Technical | | | | Rapid Response Team | | | | Rapid Response Team | | | | Decisions. Clarified | | | | Decisions. Clarified | | | | many requirements and | | | | many requirements and | | | | assurance activities. | | | | assurance activities. | | | | Mandated objective | | | | Mandated objective | | | | requirements:\ | | | | requirements:\ | | | | | | | | | | | | - Application | | | | - Application | | | | Access Control | | | | Access Control | | | | ([FDP\_ACF\_EXT.1 | | | | ([FDP\_ACF\_EXT.1 | | | | .2](#FDP_ACF_EXT.1.2) | | | | .2](#FDP_ACF_EXT.1.2) | | | | ) | | | | ) | | | | - [VPN](#abbr_VPN) | | | | - [VPN](#abbr_VPN) | | | | Information Flow | | | | Information Flow | | | | Control | | | | Control | | | | ([FDP\_IFC\_EXT.1 | | | | ([FDP\_IFC\_EXT.1 | | | | ](#FDP_IFC_EXT.1)) | | | | ](#FDP_IFC_EXT.1)) | | | | | | | | | | | | Added new objective | | | | Added new objective | | | | requirements:\ | | | | requirements:\ | | | | | | | | | | | | - Suite B | | | | - Suite B | | | | cryptography for | | | | cryptography for | | | | [IEEE](#abbr_IEEE | | | | [IEEE](#abbr_IEEE | | | | ) | | | | ) | | | | 802.11 | | | | 802.11 | | | | - Certificate | | | | - Certificate | | | | enrollment | | | | enrollment | | | | - Protection of | | | | - Protection of | | | | additional key | | | | additional key | | | | material types | | | | material types | | | | - Heap overflow | | | | - Heap overflow | | | | protection | | | | protection | | | | - Bluetooth | | | | - Bluetooth | | | | requirements | | | | requirements | | | | - Cryptographic | | | | - Cryptographic | | | | operation | | | | operation | | | | services for | | | | services for | | | | applications | | | | applications | | | | - Remote | | | | - Remote | | | | Attestation | | | | Attestation | | | | ([FPT\_NOT\_EXT.1 | | | | ([FPT\_NOT\_EXT.1 | | | | ](#FPT_NOT_EXT.1)) | | | | ](#FPT_NOT_EXT.1)) | | | | | | | | | | | | Added transition | | | | Added transition | | | | dates for some | | | | dates for some | | | | objective | | | | objective | | | | requirements.\ | | | | requirements.\ | | | | Included | | | | Included | | | | hardware-isolated | | | | hardware-isolated | | | | [REK](#abbr_REK) and | | | | [REK](#abbr_REK) and | | | | key storage | | | | key storage | | | | selections.\ | | | | selections.\ | | | | Allowed key | | | | Allowed key | | | | derivation by | | | | derivation by | | | | [REK](#abbr_REK).\ | | | | [REK](#abbr_REK).\ | | | | Clarified | | | | Clarified | | | | [FTP\_ITC\_EXT.1](#FT | | | | [FTP\_ITC\_EXT.1](#FT | | | | P_ITC_EXT.1) | | | | P_ITC_EXT.1) | | | | and added | | | | and added | | | | FDP\_UPC\_EXT.1.\ | | | | FDP\_UPC\_EXT.1.\ | | | | Mandated | | | | Mandated | | | | [HTTPS](#abbr_HTTPS) | | | | [HTTPS](#abbr_HTTPS) | | | | and [TLS](#abbr_TLS) | | | | and [TLS](#abbr_TLS) | | | | for application use. | | | | for application use. | | | | (FDP\_UPC\_EXT.1)\ | | | | (FDP\_UPC\_EXT.1)\ | | | | Removed | | | | Removed | | | | Dual\_EC\_DRBG as an | | | | Dual\_EC\_DRBG as an | | | | approved DRBG.\ | | | | approved DRBG.\ | | | | Adopted new | | | | Adopted new | | | | [TLS](#abbr_TLS) | | | | [TLS](#abbr_TLS) | | | | requirements.\ | | | | requirements.\ | | | | Mandated | | | | Mandated | | | | [TSF](#abbr_TSF) Wipe | | | | [TSF](#abbr_TSF) Wipe | | | | upon authentication | | | | upon authentication | | | | failure limit and | | | | failure limit and | | | | required number of | | | | required number of | | | | authentication | | | | authentication | | | | failures be | | | | failures be | | | | maintained across | | | | maintained across | | | | reboot.\ | | | | reboot.\ | | | | Clarified Management | | | | Clarified Management | | | | Class.\ | | | | Class.\ | | | | Included more domain | | | | Included more domain | | | | isolation discussion | | | | isolation discussion | | | | and tests.\ | | | | and tests.\ | | | | Updated Audit | | | | Updated Audit | | | | requirements and | | | | requirements and | | | | added Auditable | | | | added Auditable | | | | Events table.\ | | | | Events table.\ | | | | Added | | | | Added | | | | [SFR](#abbr_SFR) | | | | [SFR](#abbr_SFR) | | | | Category Mapping | | | | Category Mapping | | | | Table.\ | | | | Table.\ | | | | Updated Use Case | | | | Updated Use Case | | | | Templates.\ | | | | Templates.\ | | | | Moved Glossary to | | | | Moved Glossary to | | | | Introduction. | | | | Introduction. | +-----------------------+-----------------------+-----------------------+ +-----------------------+-----------------------+-----------------------+ | 3.0 | 2015-09-17 | Included changes | | 3.0 | 2015-09-17 | Included changes | | | | based on Technical | | | | based on Technical | | | | Rapid Response Team | | | | Rapid Response Team | | | | Decisions.\ | | | | Decisions.\ | | | | Clarified many | | | | Clarified many | | | | requirements and | | | | requirements and | | | | assurance | | | | assurance | | | | activities.\ | | | | activities.\ | | | | Mandated objective | | | | Mandated objective | | | | requirements:\ | | | | requirements:\ | | | | | | | | | | | | - Generation of | | | | - Generation of | | | | Audit Records | | | | Audit Records | | | | ([FAU\_GEN.1](#FA | | | | ([FAU\_GEN.1](#FA | | | | U_GEN.1)) | | | | U_GEN.1)) | | | | - Audit Storage | | | | - Audit Storage | | | | Protection | | | | Protection | | | | ([FAU\_STG.1](#FA | | | | ([FAU\_STG.1](#FA | | | | U_STG.1)) | | | | U_STG.1)) | | | | - Audit Storage | | | | - Audit Storage | | | | Overwrite | | | | Overwrite | | | | ([FAU\_STG.4](#FA | | | | ([FAU\_STG.4](#FA | | | | U_STG.4)) | | | | U_STG.4)) | | | | - Lock Screen | | | | - Lock Screen | | | | [DAR](#abbr_DAR) | | | | [DAR](#abbr_DAR) | | | | ([FDP\_DAR\_EXT.2 | | | | ([FDP\_DAR\_EXT.2 | | | | ](#FDP_DAR_EXT.2)) | | | | ](#FDP_DAR_EXT.2)) | | | | - Discard Bluetooth | | | | - Discard Bluetooth | | | | Connection | | | | Connection | | | | Attempts from | | | | Attempts from | | | | Bluetooth | | | | Bluetooth | | | | Addresses with | | | | Addresses with | | | | Existing | | | | Existing | | | | Connection | | | | Connection | | | | (FIA\_BLT\_EXT.3) | | | | (FIA\_BLT\_EXT.3) | | | | - JTAG Disablement | | | | - JTAG Disablement | | | | (FPT\_JTA) | | | | (FPT\_JTA) | | | | | | | | | | | | Added new objective | | | | Added new objective | | | | requirements:\ | | | | requirements:\ | | | | | | | | | | | | - Application | | | | - Application | | | | Backup | | | | Backup | | | | - Biometric | | | | - Biometric | | | | Authentication | | | | Authentication | | | | Factor | | | | Factor | | | | - Access Control | | | | - Access Control | | | | - User | | | | - User | | | | Authentication | | | | Authentication | | | | - Bluetooth | | | | - Bluetooth | | | | Encryption | | | | Encryption | | | | | | | | | | | | WLAN client | | | | WLAN client | | | | requirements moved to | | | | requirements moved to | | | | Extended Package for | | | | Extended Package for | | | | WLAN Client.\ | | | | WLAN Client.\ | | | | Added SFRs to support | | | | | Added | | | | BYOD Use Case\ | | | | | [SFRs](#abbr_SFR) to | | | | BYOD Use Case\ | | | | | support | > | | | [BYOD](#abbr_BYOD) | > | | | Use Case\ | > | | | [BYOD](#abbr_BYOD) | > | | | Use Case\ | | | | Updated key | | | | Updated key | | | | destruction | | | | destruction | | | | [SFR](#abbr_SFR) | | | | [SFR](#abbr_SFR) | +-----------------------+-----------------------+-----------------------+ +-----------------------+-----------------------+-----------------------+ | 3.1 | 2017-04-05 | Included changes | | 3.1 | 2017-04-05 | Included changes | | | | based on Technical | | | | based on Technical | | | | Rapid Response Team | | | | Rapid Response Team | | | | Decisions and | | | | Decisions and | | | | incorporated | | | | incorporated | | | | Technical Decisions.\ | | | | Technical Decisions.\ | | | | Modified biometric | | | | Modified biometric | | | | requirements: | | | | requirements: | | | | | | | | | | | | - [FIA\_UAU.5](#FIA | | | | - [FIA\_UAU.5](#FIA | | | | _UAU.5) - | | | | _UAU.5) - | | | | Added iris, face, | | | | Added iris, face, | | | | voice and vein as | | | | voice and vein as | | | | supported | | | | supported | | | | modalities, in | | | | modalities, in | | | | addition to | | | | addition to | | | | fingerprint | | | | fingerprint | | | | (allowed in | | | | (allowed in | | | | version 3) | | | | version 3) | | | | - [FIA\_BMG\_EXT.1. | | | | - [FIA\_BMG\_EXT.1. | | | | 1](#FIA_BMG_EXT.1.1) | | | | 1](#FIA_BMG_EXT.1.1) | | | | - | | | | - | | | | Clarified AA to | | | | Clarified AA to | | | | specify that | | | | specify that | | | | vendor evidence | | | | vendor evidence | | | | is acceptable and | | | | is acceptable and | | | | expectations of | | | | expectations of | | | | evidence | | | | evidence | | | | provided. | | | | provided. | | | | - [FIA\_BMG\_EXT.1. | | | | - [FIA\_BMG\_EXT.1. | | | | 2](#FIA_BMG_EXT.1.2) | | | | 2](#FIA_BMG_EXT.1.2) | | | | - | | | | - | | | | SAFAR was changed | | | | | [SAFAR](#abbr_SAF | | | | to an assignment | | | | | AR) | | | | of a SAFAR no | | | | | was changed to an | | | | greater than | | | | | assignment of a | > | | | [SAFAR](#abbr_SAF | > | | | AR) | > | | | no greater than | | | | 1:500. | | | | 1:500. | | | | - [FIA\_AFL\_EXT.1] | | | | - [FIA\_AFL\_EXT.1] | | | | (#FIA_AFL_EXT.1) - | | | | (#FIA_AFL_EXT.1) - | | | | Updated to allow | | | | Updated to allow | | | | each biometric | | | | each biometric | | | | modality to | | | | modality to | | | | utilize an | | | | utilize an | | | | individual or | | | | individual or | | | | shared counter. | | | | shared counter. | | | | | | | | | | | | FCS\_TLSC\_EXT.1.1 - | | | | FCS\_TLSC\_EXT.1.1 - | | | | Removed | | | | Removed | | | | [TLS](#abbr_TLS) | | | | [TLS](#abbr_TLS) | | | | ciphersuites that | | | | ciphersuites that | | | | utilized SHA1 and | | | | utilized SHA1 and | | | | updated optional | | | | updated optional | | | | ciphersuites to be | | | | ciphersuites to be | | | | uniformed across | | | | uniformed across | | | | PPs.\ | | | | | [PPs](#abbr_PP).\ | | | | [FCS\_STG\_EXT.2.2](# | | | | [FCS\_STG\_EXT.2.2](# | | | | FCS_STG_EXT.2.2) | | | | FCS_STG_EXT.2.2) | | | | - Modified to require | | | | - Modified to require | | | | long term trusted | | | | long term trusted | | | | channel key material | | | | channel key material | | | | be encrypted by an | | | | be encrypted by an | | | | approved method.\ | | | | approved method.\ | | | | [FIA\_UAU\_EXT.1.1](# | | | | [FIA\_UAU\_EXT.1.1](# | | | | FIA_UAU_EXT.1.1) | | | | FIA_UAU_EXT.1.1) | | | | - Modified to allow | | | | - Modified to allow | | | | the long term trusted | | | | the long term trusted | | | | channel key material | | | | channel key material | | | | to be available prior | | | | to be available prior | | | | to password being | | | | to password being | | | | entered at start-up.\ | | | | entered at start-up.\ | +-----------------------+-----------------------+-----------------------+ +-----------------------+-----------------------+-----------------------+ | 3.2 | 2021-04-15 | Removed | | 3.2 | 2021-04-15 | Removed | | | | [TLS](#abbr_TLS) SFRs | | | | | [TLS](#abbr_TLS) | | | | and utilized | | | | | [SFRs](#abbr_SFR) and | > | | | utilized | | | | [TLS](#abbr_TLS) | | | | [TLS](#abbr_TLS) | | | | Functional Package\ | | | | Functional Package\ | | | | Removed Bluetooth | | | | Removed Bluetooth | | | | SFRs and utilized | | | | | [SFRs](#abbr_SFR) and | | | | Bluetooth Module. | | | | | utilized Bluetooth | | | | Bluetooth | | | | | Module. Bluetooth | | | | [SFR](#abbr_SFR) | | | | [SFR](#abbr_SFR) | | | | moved to | | | | moved to | | | | Implementation | | | | Implementation | | | | Dependent.\ | | | | Dependent.\ | | | | [FPT\_TUD\_EXT.2](#FP | | | | [FPT\_TUD\_EXT.2](#FP | | | | T_TUD_EXT.2).4 | | | | T_TUD_EXT.2).4 | | | | renumbered to | | | | renumbered to | | | | [FPT\_TUD\_EXT.3.1](# | | | | [FPT\_TUD\_EXT.3.1](# | | | | FPT_TUD_EXT.3.1). | | | | FPT_TUD_EXT.3.1). | | | | [FPT\_TUD\_EXT.3](#FP | | | | [FPT\_TUD\_EXT.3](#FP | | | | T_TUD_EXT.3) | | | | T_TUD_EXT.3) | | | | renumbered to | | | | renumbered to | | | | [FPT\_TUD\_EXT.4](#FP | | | | [FPT\_TUD\_EXT.4](#FP | | | | T_TUD_EXT.4). | | | | T_TUD_EXT.4). | | | | [FPT\_TUD\_EXT.4.1](# | | | | [FPT\_TUD\_EXT.4.1](# | | | | FPT_TUD_EXT.4.1) | | | | FPT_TUD_EXT.4.1) | | | | renumbered to | | | | renumbered to | | | | [FPT\_TUD\_EXT.5.1](# | | | | [FPT\_TUD\_EXT.5.1](# | | | | FPT_TUD_EXT.5.1). | | | | FPT_TUD_EXT.5.1). | | | | [FPT\_TUD\_EXT.4](#FP | | | | [FPT\_TUD\_EXT.4](#FP | | | | T_TUD_EXT.4).2 | | | | T_TUD_EXT.4).2 | | | | renumbered to | | | | renumbered to | | | | [FPT\_TUD\_EXT.6.1](# | | | | [FPT\_TUD\_EXT.6.1](# | | | | FPT_TUD_EXT.6.1).\ | | | | FPT_TUD_EXT.6.1).\ | +-----------------------+-----------------------+-----------------------+ +-----------------------+-----------------------+-----------------------+ Contents Contents -------- -------- ::: {#toc .toc} ::: {#toc .toc} [1Introduction](#int)[1.1Objectives of [1Introduction](#int)[1.1Objectives of Document](#objdoc)[1.2Terms](#glossary)[1.2.1Common Criteria Document](#objdoc)[1.2Terms](#glossary)[1.2.1Common Criteria Terms](#cc-terms)[1.2.2Technical Terms](#tech-terms)[1.3Scope of Terms](#cc-terms)[1.2.2Technical Terms](#tech-terms)[1.3Scope of Document](#scope)[1.4Intended Readership](#intread)[1.5TOE Document](#scope)[1.4Intended Readership](#intread)[1.5TOE Overview](#toeov)[1.6TOE Usage](#toeus)[2Conformance Overview](#toeov)[1.6TOE Usage](#toeus)[2Conformance Claims](#ccl)[3Security Problem Claims](#ccl)[3Security Problem Description](#spd)[3.1Threats](#thr)[3.2Assumptions](#assp)[3.3Organizational Description](#spd)[3.1Threats](#thr)[3.2Assumptions](#assp)[3.3Organizational Security Policies](#osp)[4Security Objectives](#sobj)[4.1Security Security Policies](#osp)[4Security Objectives](#sobj)[4.1Security Objectives for the TOE](#sot)[4.2Security Objectives for the Operational Objectives for the TOE](#sot)[4.2Security Objectives for the Operational Environment](#sooe)[4.3Security Objectives Rationale](#SOR)[5Security Environment](#sooe)[4.3Security Objectives Rationale](#SOR)[5Security Requirements](#sr)[5.1Security Functional Requirements](#sr)[5.1Security Functional Requirements](#sfr)[5.1.1Class: Security Audit (FAU)](#fau)[5.1.2Class: Requirements](#sfr)[5.1.1Class: Security Audit (FAU)](#fau)[5.1.2Class: Cryptographic Support (FCS)](#fcs)[5.1.3Cryptographic Storage Cryptographic Support (FCS)](#fcs)[5.1.3Cryptographic Storage (FCS\_STG)](#FCS_STG)[5.1.4Class: User Data Protection (FCS\_STG)](#FCS_STG)[5.1.4Class: User Data Protection (FDP)](#fdp)[5.1.5Class: Identification and Authentication (FDP)](#fdp)[5.1.5Class: Identification and Authentication (FIA)](#fia)[5.1.6Class: Security Management (FMT)](#fmt)[5.1.7Class: (FIA)](#fia)[5.1.6Class: Security Management (FMT)](#fmt)[5.1.7Class: Protection of the TSF (FPT)](#fpt)[5.1.8Class: TOE Access Protection of the TSF (FPT)](#fpt)[5.1.8Class: TOE Access (FTA)](#fta)[5.1.9Class: Trusted Path/Channels (FTP)](#ftp)[5.1.10TOE (FTA)](#fta)[5.1.9Class: Trusted Path/Channels (FTP)](#ftp)[5.1.10TOE Security Functional Requirements Rationale](#obj-req-map)[5.2Security Security Functional Requirements Rationale](#obj-req-map)[5.2Security Assurance Requirements](#sar)[5.2.1Class ASE: Security Assurance Requirements](#sar)[5.2.1Class ASE: Security Target](#ase)[5.2.2Class ADV: Development](#adv)[5.2.3Class AGD: Target](#ase)[5.2.2Class ADV: Development](#adv)[5.2.3Class AGD: Guidance Documentation](#agd)[5.2.4Class ALC: Life-cycle Guidance Documentation](#agd)[5.2.4Class ALC: Life-cycle Support](#alc)[5.2.5Class ATE: Tests](#ate)[5.2.6Class AVA: Support](#alc)[5.2.5Class ATE: Tests](#ate)[5.2.6Class AVA: Vulnerability Assessment](#ava)[Appendix A - Optional Vulnerability Assessment](#ava)[Appendix A - Optional Requirements](#opt-app)[A.1Strictly Optional Requirements Requirements](#opt-app)[A.1Strictly Optional Requirements ](#optional-reqs)[A.1.1Class: Identification and Authentication ](#optional-reqs)[A.1.1Class: Identification and Authentication (FIA)](#fia-obj)[A.2Objective Requirements | (FIA)](#fia-optional)[A.2Objective Requirements ](#objective-reqs)[A.2.1Class: Security Audit ](#objective-reqs)[A.2.1Class: Security Audit (FAU)](#fau-obj)[A.2.2Class: Cryptographic Support | (FAU)](#fau-objective)[A.2.2Class: Cryptographic Support (FCS)](#fcs-obj)[A.2.3Class: User Data Protection | (FCS)](#fcs-objective)[A.2.3Class: User Data Protection (FDP)](#fdp-obj)[A.2.4Class: Identification and Authentication | (FDP)](#fdp-objective)[A.2.4Class: Identification and Authentication (FIA)](#fia-obj)[A.2.5Class: Security Management | (FIA)](#fia-objective)[A.2.5Class: Security Management (FMT)](#fmt-obj)[A.2.6Class: Protection of the TSF | (FMT)](#fmt-objective)[A.2.6Class: Protection of the TSF (FPT)](#fpt-obj)[A.2.7Class: TOE Access | (FPT)](#fpt-objective)[A.2.7Class: TOE Access (FTA)](#fta-obj)[A.3Implementation-based Requirements | (FTA)](#fta-objective)[A.3Implementation-based Requirements ](#feat-based-reqs)[A.3.1Bluetooth](#bluetooth)[A.3.1.1Class: User Data ](#feat-based-reqs)[A.3.1Bluetooth](#bluetooth)[A.3.1.1Class: User Data Protection (FDP)](#fdp-impl)[Appendix B - Selection-based Requirements Protection (FDP)](#fdp-impl)[Appendix B - Selection-based Requirements ](#sel-based-reqs)[B.1Class: Cryptographic Support ](#sel-based-reqs)[B.1Class: Cryptographic Support (FCS)](#fcs-obj)[B.2Class: User Data Protection | (FCS)](#fcs-sel-based)[B.2Class: User Data Protection (FDP)](#fdp-obj)[B.3Class: Identification and Authentication | (FDP)](#fdp-sel-based)[B.3Class: Identification and Authentication (FIA)](#fia-obj)[B.4Class: Protection of the TSF | (FIA)](#fia-sel-based)[B.4Class: Protection of the TSF (FPT)](#fpt-obj)[Appendix C - Implicitly Satisfied | (FPT)](#fpt-sel-based)[Appendix C - Implicitly Satisfied Requirements](#satisfiedreqs)[Appendix D - Entropy Documentation And Requirements](#satisfiedreqs)[Appendix D - Entropy Documentation And Assessment](#entropy)[D.1Design Description](#description)[D.2Entropy Assessment](#entropy)[D.1Design Description](#description)[D.2Entropy Justification](#justification)[D.3Operating Justification](#justification)[D.3Operating Conditions](#conditions)[D.4Health Testing](#testing)[Appendix E - Use Conditions](#conditions)[D.4Health Testing](#testing)[Appendix E - Use Case Templates](#use)[E.1\[USE CASE 1\] Enterprise-owned device for Case Templates](#use)[E.1\[USE CASE 1\] Enterprise-owned device for general-purpose enterprise use](#usecase1)[E.2\[USE CASE 2\] general-purpose enterprise use](#usecase1)[E.2\[USE CASE 2\] Enterprise-owned device for specialized, high-security Enterprise-owned device for specialized, high-security use](#usecase2)[E.3\[USE CASE 3\] Personally-owned device for personal use](#usecase2)[E.3\[USE CASE 3\] Personally-owned device for personal and enterprise use](#usecase3)[E.4\[USE CASE 4\] Personally-owned device and enterprise use](#usecase3)[E.4\[USE CASE 4\] Personally-owned device for personal and limited enterprise use](#usecase4)[Appendix F - for personal and limited enterprise use](#usecase4)[Appendix F - Initialization Vector Requirements for NIST-Approved Cipher Initialization Vector Requirements for NIST-Approved Cipher Modes](#vector)[Appendix G - Biometric Derivation and Modes](#vector)[Appendix G - Biometric Derivation and Examples](#biometric)[G.1Experimental Setups And Error Bars In Testing Examples](#biometric)[G.1Experimental Setups And Error Bars In Testing FAR And FRR](#biometric1)[G.1.1Introduction](#sub1)[G.1.2Testing FAR And FRR](#biometric1)[G.1.1Introduction](#sub1)[G.1.2Testing environment that could meet FIA\_BMG\_EXT.1.1](#sub2)[G.1.3Deriving environment that could meet FIA\_BMG\_EXT.1.1](#sub2)[G.1.3Deriving False Accept Rate](#sub3)[G.1.4Deriving False Reject False Accept Rate](#sub3)[G.1.4Deriving False Reject Rate](#sub4)[G.2Derivation of the Rule of 3 (and similar rules, for Rate](#sub4)[G.2Derivation of the Rule of 3 (and similar rules, for completeness)](#biometric2)[G.3SAFAR Calculation completeness)](#biometric2)[G.3SAFAR Calculation Equations](#biometric3)[G.4SAFAR Calculation Equations](#biometric3)[G.4SAFAR Calculation Example](#biometric4)[Appendix H - Acknowledgements](#ack)[Appendix I - | Example](#biometric4)[Appendix H - Acknowledgments](#ack)[Appendix I - Acronyms](#acronyms)[Appendix J - Bibliography](#appendix-bibliography) Acronyms](#acronyms)[Appendix J - Bibliography](#appendix-bibliography) ::: ::: 1 Introduction {#int .indexable data-level="1"} 1 Introduction {#int .indexable data-level="1"} -------------- | ============== ### 1.1 Objectives of Document {#objdoc .indexable data-level="2"} | 1.1 Objectives of Document {#objdoc .indexable data-level="2"} > -------------------------- The scope of this Protection Profile ([PP](#abbr_PP)) is to describe the The scope of this Protection Profile ([PP](#abbr_PP)) is to describe the security functionality of mobile devices in terms of \[[CC](#abbr_CC)\] security functionality of mobile devices in terms of \[[CC](#abbr_CC)\] and to define functional and assurance requirements for such devices. and to define functional and assurance requirements for such devices. > ::: {.no-link} 1.2 Terms {#glossary .indexable data-level="2"} 1.2 Terms {#glossary .indexable data-level="2"} --------- --------- The following sections list Common Criteria and technology terms used in The following sections list Common Criteria and technology terms used in this document. this document. ### 1.2.1 Common Criteria Terms {#cc-terms .indexable data-level="3"} ### 1.2.1 Common Criteria Terms {#cc-terms .indexable data-level="3"} +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Assurance} | Grounds for confidence that a | | | ::: {#Assurance} | Grounds for confidence that a TOE | | Assurance | [TOE](#abbr_TOE) meets the SFRs | | | Assurance | meets the SFRs [\[CC\]](#bibCC). | | ::: | [\[CC\]](#bibCC). | | | ::: | | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Base_Protection_Profile} | Protection Profile used as a | | ::: {#Base_Protection_Profile} | Protection Profile used as a | | Base Protection Profile | basis to build a | | | Base Protection Profile (Base-PP) | basis to build a | | ([Base-PP](#abbr_Base-PP)) | [PP-Configuration](#abbr_PP-Confi | | | ::: | PP-Configuration. | | ::: | guration). | | +-----------------------------------+-----------------------------------+ > | ::: {#Collaborative_Protection_Pr | A Protection Profile developed by | > | ofile} | international technical | > | Collaborative Protection Profile | communities and approved by | > | (cPP) | multiple schemes. | > | ::: | | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Common_Criteria} | Common Criteria for Information | | ::: {#Common_Criteria} | Common Criteria for Information | | Common Criteria ([CC](#abbr_CC)) | Technology Security Evaluation | | | Common Criteria (CC) | Technology Security Evaluation | | ::: | (International Standard ISO/IEC | | ::: | (International Standard ISO/IEC | | | 15408). | | | 15408). | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Common_Criteria_Testing_Lab | Within the context of the Common | | ::: {#Common_Criteria_Testing_Lab | Within the context of the Common | | oratory} | Criteria Evaluation and | | oratory} | Criteria Evaluation and | | Common Criteria Testing | Validation Scheme (CCEVS), an IT | | Common Criteria Testing | Validation Scheme (CCEVS), an IT | | Laboratory | security evaluation facility, | | | Laboratory | security evaluation facility | | ::: | accredited by the National | | ::: | accredited by the National | | | Voluntary Laboratory | | | Voluntary Laboratory | | | Accreditation Program (NVLAP) and | | | Accreditation Program (NVLAP) and | | | approved by the NIAP Validation | | | approved by the NIAP Validation | | | Body to conduct Common | | | Body to conduct Common | | | Criteria-based evaluations. | | | Criteria-based evaluations. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Common_Evaluation_Methodolo | Common Evaluation Methodology for | | ::: {#Common_Evaluation_Methodolo | Common Evaluation Methodology for | | gy} | Information Technology Security | | gy} | Information Technology Security | | Common Evaluation Methodology | Evaluation. | | Common Evaluation Methodology | Evaluation. | | ([CEM](#abbr_CEM)) | | | | (CEM) | | | ::: | | | ::: | | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Distributed_TOE} | A [TOE](#abbr_TOE) composed of | | | ::: {#Distributed_TOE} | A TOE composed of multiple | | Distributed [TOE](#abbr_TOE) | multiple components operating as | | | Distributed TOE | components operating as a logical | | ::: | a logical whole. | | | ::: | whole. | > +-----------------------------------+-----------------------------------+ > | ::: {#Extended_Package} | A deprecated document form for | > | Extended Package (EP) | collecting SFRs that implement a | > | ::: | particular protocol, technology, | > | | or functionality. See Functional | > | | Packages. | > +-----------------------------------+-----------------------------------+ > | ::: {#Functional_Package} | A document that collects SFRs for | > | Functional Package (FP) | a particular protocol, | > | ::: | technology, or functionality. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Operational_Environment} | Hardware and software that are | | ::: {#Operational_Environment} | Hardware and software that are | | Operational Environment | outside the [TOE](#abbr_TOE) | | | Operational Environment (OE) | outside the TOE boundary that | | ([OE](#abbr_OE)) | boundary that support the | | | ::: | support the TOE functionality and | | ::: | [TOE](#abbr_TOE) functionality | | | | security policy. | | | and security policy. | < +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Protection_Profile} | An implementation-independent set | | ::: {#Protection_Profile} | An implementation-independent set | | Protection Profile | of security requirements for a | | | Protection Profile (PP) | of security requirements for a | | ([PP](#abbr_PP)) | category of products. | | | ::: | category of products. | | ::: | | < +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Protection_Profile_Configur | A comprehensive set of security | | ::: {#Protection_Profile_Configur | A comprehensive set of security | | ation} | requirements for a product type | | ation} | requirements for a product type | | Protection Profile Configuration | that consists of at least one | | Protection Profile Configuration | that consists of at least one | | ([PP-Configuration](#abbr_PP-Conf | [Base-PP](#abbr_Base-PP) and at | | | (PP-Configuration) | Base-PP and at least one | | iguration)) | least one | | | ::: | PP-Module. | | ::: | [PP-Module](#abbr_PP-Module). | < +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Protection_Profile_Module} | An implementation-independent | | ::: {#Protection_Profile_Module} | An implementation-independent | | Protection Profile Module | statement of security needs for a | | Protection Profile Module | statement of security needs for a | | ([PP-Module](#abbr_PP-Module)) | [TOE](#abbr_TOE) type | | | (PP-Module) | TOE type complementary to one or | | ::: | complementary to one or more Base | | | ::: | more Base-PPs. | | | Protection Profiles. | < +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Security_Assurance_Requirem | A requirement to assure the | | ::: {#Security_Assurance_Requirem | A requirement to assure the | | ent} | security of the [TOE](#abbr_TOE). | | | ent} | security of the TOE. | | Security Assurance Requirement | | | Security Assurance Requirement | | | ([SAR](#abbr_SAR)) | | | | (SAR) | | | ::: | | | ::: | | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Security_Functional_Require | A requirement for security | | ::: {#Security_Functional_Require | A requirement for security | | ment} | enforcement by the | | | ment} | enforcement by the TOE. | | Security Functional Requirement | [TOE](#abbr_TOE). | | | Security Functional Requirement | | | ([SFR](#abbr_SFR)) | | | | (SFR) | | | ::: | | | ::: | | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Security_Target} | A set of implementation-dependent | | ::: {#Security_Target} | A set of implementation-dependent | | Security Target ([ST](#abbr_ST)) | security requirements for a | | | Security Target (ST) | security requirements for a | | ::: | specific product. | | ::: | specific product. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#TOE_Security_Functionality} | The security functionality of the | | | ::: {#Target_of_Evaluation} | The product under evaluation. | | [TOE](#abbr_TOE) Security | product under evaluation. | | | Target of Evaluation (TOE) | | | Functionality ([TSF](#abbr_TSF)) | | < | ::: | | | ::: | | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#TOE_Summary_Specification} | A description of how a | | | ::: {#TOE_Security_Functionality} | The security functionality of the | | [TOE](#abbr_TOE) Summary | [TOE](#abbr_TOE) satisfies the | | | TOE Security Functionality (TSF) | product under evaluation. | | Specification ([TSS](#abbr_TSS)) | SFRs in an [ST](#abbr_ST). | < | ::: | | | ::: | | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Target_of_Evaluation} | The product under evaluation. | | | ::: {#TOE_Summary_Specification} | A description of how a TOE | | Target of Evaluation | | | | TOE Summary Specification (TSS) | satisfies the SFRs in an ST. | | ([TOE](#abbr_TOE)) | | < | ::: | | | ::: | | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ ### 1.2.2 Technical Terms {#tech-terms .indexable data-level="3"} ### 1.2.2 Technical Terms {#tech-terms .indexable data-level="3"} +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Adaptive_Template} | A type of authentication template | | ::: {#Adaptive_Template} | A type of authentication template | | Adaptive Template | that evolves with each sample | | Adaptive Template | that evolves with each sample | | ::: | that is verified and introduced | | ::: | that is verified and introduced | | | into the biometrics database or | | | into the biometrics database or | | | gallery. | | | gallery. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Address_Space_Layout_Random | An anti-exploitation feature, | | ::: {#Address_Space_Layout_Random | An anti-exploitation feature, | | ization} | which loads memory mappings into | | ization} | which loads memory mappings into | | Address Space Layout | unpredictable locations. | | | Address Space Layout | unpredictable locations. ASLR | | Randomization | [ASLR](#abbr_ASLR) makes it more | | | Randomization (ASLR) | makes it more difficult for an | | ([ASLR](#abbr_ASLR)) | difficult for an attacker to | | | ::: | attacker to redirect control to | | ::: | redirect control to code that | | | | code that they have introduced | | | they have introduced into the | | | | into the address space of a | | | address space of a process or the | | | | process or the kernel. | | | kernel. | < +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Administrator} | The Administrator is responsible | | ::: {#Administrator} | The Administrator is responsible | | Administrator | for management activities, | | Administrator | for management activities, | | ::: | including setting the policy that | | ::: | including setting the policy that | | | is applied by the enterprise on | | | is applied by the enterprise on | | | the Mobile Device. This | | | the Mobile Device. This | | | administrator is likely to be | | | administrator is likely to be | | | acting remotely and could be the | | | acting remotely and could be the | | | Mobile Device Management | | | | Mobile Device Management (MDM) | | | ([MDM](#abbr_MDM)) Administrator | | | | Administrator acting through an | | | acting through an | | | | MDM Agent. If the device is | | | [MDM](#abbr_MDM) Agent. If the | | | | unenrolled, the user is the | | | device is unenrolled, the user is | | | | administrator. | | | the administrator. | < +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Authentication_Template} | A digital representation of an | | ::: {#Authentication_Template} | A digital representation of an | | Authentication Template | individual's distinct | | Authentication Template | individual's distinct | | ::: | characteristics, representing | | ::: | characteristics, representing | | | information extracted from a | | | information extracted from a | | | biometric sample. Such templates | | | biometric sample. Such templates | | | are used during biometric | | | are used during biometric | | | authentication and verification | | | authentication and verification | | | as the basis for comparison. | | | as the basis for comparison. | | | Unlike enrollment templates, | | | Unlike enrollment templates, | | | these templates can be adaptive. | | | these templates can be adaptive. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Auxiliary_Boot_Modes} | Auxiliary boot modes are states | | ::: {#Auxiliary_Boot_Modes} | Auxiliary boot modes are states | | Auxiliary Boot Modes | in which the device provides | | Auxiliary Boot Modes | in which the device provides | | ::: | power to one or more components | | ::: | power to one or more components | | | to provide an interface that | | | to provide an interface that | | | enables an unauthenticated user | | | enables an unauthenticated user | | | to interact with either a | | | to interact with either a | | | specific component or several | | | specific component or several | | | components that exist outside of | | | components that exist outside of | | | the device's fully authenticated, | | | the device's fully authenticated, | | | operational state. | | | operational state. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Biometric_Authentication_Fa | Authentication factor, which uses | | ::: {#Biometric_Authentication_Fa | Authentication factor, which uses | | ctor} | biometric sample, matched to a | | ctor} | biometric sample, matched to a | | Biometric Authentication Factor | biometric authentication template | | Biometric Authentication Factor | biometric authentication template | | ([BAF](#abbr_BAF)) | to help establish identity. | | | (BAF) | to help establish identity. | | ::: | | | ::: | | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Biometric_Data} | Digital data created during a | | ::: {#Biometric_Data} | Digital data created during a | | Biometric Data | biometric process. It encompasses | | Biometric Data | biometric process. It encompasses | | ::: | raw sensor observations, | | ::: | raw sensor observations, | | | biometric samples, models, | | | biometric samples, models, | | | templates, and/or similarity | | | templates, and/or similarity | | | scores, among other data. This | | | scores, among other data. This | | | data is used to describe the | | | data is used to describe the | | | information collected during an | | | information collected during an | | | enrollment, verification, or | | | enrollment, verification, or | | | identification process, but does | | | identification process, but does | | | not apply to end user information | | | not apply to end user information | | | such as user name, password | | | such as user name, password | | | (unless tied to the biometric | | | (unless tied to the biometric | | | modality), demographic | | | modality), demographic | | | information, and authorizations. | | | information, and authorizations. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Biometric_Sample} | Information or computer data | | ::: {#Biometric_Sample} | Information or computer data | | Biometric Sample | obtained from a biometric sensor | | Biometric Sample | obtained from a biometric sensor | | ::: | device or captured from an | | ::: | device or captured from an | | | individual to the sensor. | | | individual to the sensor. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Biometric_System} | Multiple individual components | | ::: {#Biometric_System} | Multiple individual components | | Biometric System | (such as sensor, matching | | Biometric System | (such as sensor, matching | | ::: | algorithm, and result display) | | ::: | algorithm, and result display) | | | that combine to make a fully | | | that combine to make a fully | | | operational system completely | | | operational system completely | | | contained within the | | | | contained within the TOE. A | | | [TOE](#abbr_TOE). A biometric | | | | biometric system is automated and | | | system is automated and capable | | | | capable of: | | | of: | < | | | | | | | | 1. Capturing a biometric sample | | | 1. Capturing a biometric sample | | | from an end user | | | from an end user | | | 2. Extracting and processing the | | | 2. Extracting and processing the | | | biometric data from that | | | biometric data from that | | | sample | | | sample | | | 3. Generating various templates | | | 3. Generating various templates | | | based on processing of that | | | based on processing of that | | | sample during enrollment, or, | | | sample during enrollment, or, | | | if adaptive, during | | | if adaptive, during | | | verification as well | | | verification as well | | | 4. Storing the extracted | | | 4. Storing the extracted | | | information in a database on | | | information in a database on | | | the device | | | the device | | | 5. Comparing the biometric data | | | 5. Comparing the biometric data | | | with data contained in one or | | | with data contained in one or | | | more authentication templates | | | more authentication templates | | | 6. Deciding how well they match | | | 6. Deciding how well they match | | | and indicating whether or not | | | and indicating whether or not | | | an identification or | | | an identification or | | | verification of identity has | | | verification of identity has | | | been achieved. | | | been achieved. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Common_Application_Develope | Application developers (or | | ::: {#Common_Application_Develope | Application developers (or | | r} | software companies) often produce | | r} | software companies) often produce | | Common Application Developer | many applications under the same | | Common Application Developer | many applications under the same | | ::: | name. Mobile devices often allow | | ::: | name. Mobile devices often allow | | | shared resources by such | | | shared resources by such | | | applications where otherwise | | | applications where otherwise | | | resources would not be shared. | | | resources would not be shared. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Critical_Security_Parameter | Security-related information | | ::: {#Critical_Security_Parameter | Security-related information | | } | whose disclosure or modification | | } | whose disclosure or modification | | Critical Security Parameter | can compromise the security of a | | | Critical Security Parameter (CSP) | can compromise the security of a | | ([CSP](#abbr_CSP)) | cryptographic module and/or | | | ::: | cryptographic module and/or | | ::: | authentication system. | | | | authentication system. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Data} | Program/application or data files | | ::: {#Data} | Program/application or data files | | Data | that are stored or transmitted by | | Data | that are stored or transmitted by | | ::: | a server or Mobile Device | | | ::: | a server or Mobile Device (MD). | | | ([MD](#abbr_MD)). | < +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Data_Encryption_Key} | A key used to encrypt | | ::: {#Data_Encryption_Key} | A key used to encrypt | | Data Encryption Key | data-at-rest. | | | Data Encryption Key (DEK) | data-at-rest. | | ([DEK](#abbr_DEK)) | | < | ::: | | | ::: | | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Developer_Modes} | Developer modes are states in | | ::: {#Developer_Modes} | Developer modes are states in | | Developer Modes | which additional services are | | Developer Modes | which additional services are | | ::: | available to a user in order to | | ::: | available to a user in order to | | | provide enhanced system access | | | provide enhanced system access | | | for debugging of software. | | | for debugging of software. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Encrypted_Software_Keys} | These keys are stored in the main | | ::: {#Encrypted_Software_Keys} | These keys are stored in the main | | Encrypted Software Keys | file system encrypted by another | | Encrypted Software Keys | file system encrypted by another | | ::: | key and can be changed and | | ::: | key and can be changed and | | | sanitized. | | | sanitized. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Enrolled_State} | The state in which the Mobile | | ::: {#Enrolled_State} | The state in which the Mobile | | Enrolled State | Device is managed with active | | Enrolled State | Device is managed with active | | ::: | policy settings from the | | ::: | policy settings from the | | | administrator. | | | administrator. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Enrollment_(Biometrics)} | The process of collecting a | | ::: {#Enrollment_(Biometrics)} | The process of collecting a | | Enrollment (Biometrics) | biometric sample from an end | | Enrollment (Biometrics) | biometric sample from an end | | ::: | user, converting it into an | | ::: | user, converting it into an | | | enrollment and/or authentication | | | enrollment and/or authentication | | | template, and storing it in the | | | template, and storing it in the | | | biometric system's database. If | | | biometric system's database. If | | | an enrollment template is | | | an enrollment template is | | | generated, it is used during the | | | generated, it is used during the | | | enrollment process for later | | | enrollment process for later | | | comparison to other enrollment | | | comparison to other enrollment | | | templates already stored. If | | | templates already stored. If | | | there are multiple enrollment | | | there are multiple enrollment | | | templates, they may be fused, | | | templates, they may be fused, | | | averaged, or otherwise, in order | | | averaged, or otherwise, in order | | | to create authentication | | | to create authentication | | | templates, which are used for | | | templates, which are used for | | | later comparison in verification. | | | later comparison in verification. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Enrollment_Template} | A digital representation of an | | ::: {#Enrollment_Template} | A digital representation of an | | Enrollment Template | individual's distinct | | Enrollment Template | individual's distinct | | ::: | characteristics, representing | | ::: | characteristics, representing | | | information extracted from a | | | information extracted from a | | | biometric sample. Such templates | | | biometric sample. Such templates | | | are generated during the | | | are generated during the | | | enrollment process and utilized | | | enrollment process and utilized | | | in various ways (including | | | in various ways (including | | | averaging, fusion, etc.) in order | | | averaging, fusion, etc.) in order | | | to generate an authentication | | | to generate an authentication | | | template. | | | template. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Enterprise_Applications} | Applications that are provided | | ::: {#Enterprise_Applications} | Applications that are provided | | Enterprise Applications | and managed by the enterprise. | | Enterprise Applications | and managed by the enterprise. | | ::: | | | ::: | | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Enterprise_Data} | Enterprise data is any data | | ::: {#Enterprise_Data} | Enterprise data is any data | | Enterprise Data | residing in the enterprise | | Enterprise Data | residing in the enterprise | | ::: | servers, or temporarily stored on | | ::: | servers, or temporarily stored on | | | Mobile Devices to which the | | | Mobile Devices to which the | | | Mobile Device user is allowed | | | Mobile Device user is allowed | | | access according to security | | | access according to security | | | policy defined by the enterprise | | | policy defined by the enterprise | | | and implemented by the | | | and implemented by the | | | administrator. | | | administrator. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Ephemeral_Keys} | These keys are stored in volatile | | ::: {#Ephemeral_Keys} | These keys are stored in volatile | | Ephemeral Keys | memory. | | Ephemeral Keys | memory. | | ::: | | | ::: | | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#False_Accept_Rate} | A statistic used to measure | | ::: {#False_Accept_Rate} | A statistic used to measure | | False Accept Rate | biometric performance when | | | False Accept Rate (FAR) | biometric performance when | | ([FAR](#abbr_FAR)) | operating in verification, | | | ::: | operating in verification, | | ::: | defined as the percentage of | | | | defined as the percentage of | | | times a system produces a false | | | times a system produces a false | | | accept, which occurs when an | | | accept, which occurs when an | | | individual is incorrectly matched | | | individual is incorrectly matched | | | to another individual's existing | | | to another individual's existing | | | biometric. For example, Mallory | | | biometric. For example, Mallory | | | claims to be Alice and the system | | | claims to be Alice and the system | | | verifies the claim. | | | verifies the claim. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#False_Reject_Rate} | A statistic used to measure | | ::: {#False_Reject_Rate} | A statistic used to measure | | False Reject Rate | biometric performance in | | | False Reject Rate (FRR) | biometric performance in | | ([FRR](#abbr_FRR)) | verification, defined as the | | | ::: | verification, defined as the | | ::: | percentage of times the system | | | | percentage of times the system | | | produces a false reject. A false | | | produces a false reject. A false | | | reject occurs when an individual | | | reject occurs when an individual | | | is not matched to his or her own | | | is not matched to his or her own | | | existing biometric template. For | | | existing biometric template. For | | | example, John claims to be John, | | | example, John claims to be John, | | | but the system incorrectly denies | | | but the system incorrectly denies | | | the claim. | | | the claim. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Feature(s)_(Biometrics)} | Distinctive mathematical | | ::: {#Feature(s)_(Biometrics)} | Distinctive mathematical | | Feature(s) (Biometrics) | characteristic(s) derived from a | | Feature(s) (Biometrics) | characteristic(s) derived from a | | ::: | biometric sample, used to | | ::: | biometric sample, used to | | | generate enrollment or | | | generate enrollment or | | | authentication templates. | | | authentication templates. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#File_Encryption_Key} | A [DEK](#abbr_DEK) used to | | | ::: {#File_Encryption_Key} | A DEK used to encrypt a file or a | | File Encryption Key | encrypt a file or a director when | | | File Encryption Key (FEK) | director when File Encryption is | | ([FEK](#abbr_FEK)) | File Encryption is used. FEKs are | | | ::: | used. FEKs are unique to each | | ::: | unique to each encrypted file or | | | | encrypted file or directory. | | | directory. | | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | | ::: {#Hardware-Isolated_Keys} | The OS can only access these keys | | ::: {#Hardware-Isolated_Keys} | The [OS](#abbr_OS) can only | | | Hardware-Isolated Keys | by reference, if at all, during | | Hardware-Isolated Keys | access these keys by reference, | | | ::: | runtime. | | ::: | if at all, during runtime. | < +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Hybrid_Authentication} | A hybrid authentication factor is | | ::: {#Hybrid_Authentication} | A hybrid authentication factor is | | Hybrid Authentication | one where a user has to submit a | | Hybrid Authentication | one where a user has to submit a | | ::: | combination of a biometric sample | | ::: | combination of a biometric sample | | | and a PIN or password and both to | | | and a PIN or password and both to | | | pass. If either factor fails, the | | | pass. If either factor fails, the | | | entire attempt fails. The user | | | entire attempt fails. The user | | | shall not be made aware of which | | | shall not be made aware of which | | | factor failed, if either fails. | | | factor failed, if either fails. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Immutable_Hardware_Key} | These keys are stored as | | ::: {#Immutable_Hardware_Key} | These keys are stored as | | Immutable Hardware Key | hardware-protected raw key and | | Immutable Hardware Key | hardware-protected raw key and | | ::: | cannot be changed or sanitized. | | ::: | cannot be changed or sanitized. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Key_Chaining} | The method of using multiple | | ::: {#Key_Chaining} | The method of using multiple | | Key Chaining | layers of encryption keys to | | Key Chaining | layers of encryption keys to | | ::: | protect data. A top layer key | | ::: | protect data. A top layer key | | | encrypts a lower layer key, which | | | encrypts a lower layer key, which | | | encrypts the data; this method | | | encrypts the data; this method | | | can have any number of layers. | | | can have any number of layers. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Key_Encryption_Key} | A key used to encrypt other keys, | | ::: {#Key_Encryption_Key} | A key used to encrypt other keys, | | Key Encryption Key | such as DEKs or storage that | | | Key Encryption Key (KEK) | such as DEKs or storage that | | ([KEK](#abbr_KEK)) | contains keys. | | | ::: | contains keys. | | ::: | | < +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Liveness_Detection} | A technique used to ensure that | | ::: {#Liveness_Detection} | A technique used to ensure that | | Liveness Detection | the biometric sample submitted is | | Liveness Detection | the biometric sample submitted is | | ::: | from an end user. A liveness | | ::: | from an end user. A liveness | | | detection method can help protect | | | detection method can help protect | | | the system against some types of | | | the system against some types of | | | spoofing attacks. | | | spoofing attacks. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Locked_State} | Powered on but most functionality | | ::: {#Locked_State} | Powered on but most functionality | | Locked State | is unavailable for use. User | | Locked State | is unavailable for use. User | | ::: | authentication is required to | | ::: | authentication is required to | | | access functionality. | | | access functionality. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#MDM_Agent} | The [MDM](#abbr_MDM) Agent is | | | ::: {#MDM_Agent} | The MDM Agent is installed on a | | [MDM](#abbr_MDM) Agent | installed on a Mobile Device as | | | MDM Agent | Mobile Device as an application | | ::: | an application or is part of the | | | ::: | or is part of the Mobile Device's | | | Mobile Device's [OS](#abbr_OS). | | | | OS. The MDM Agent establishes a | | | The [MDM](#abbr_MDM) Agent | | | | secure connection back to the MDM | | | establishes a secure connection | < | | back to the [MDM](#abbr_MDM) | < | | Server controlled by the | | | Server controlled by the | | | administrator. | | | administrator. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Minutia_Point} | Friction ridge characteristics | | ::: {#Minutia_Point} | Friction ridge characteristics | | Minutia Point | that are used to individualize a | | Minutia Point | that are used to individualize a | | ::: | fingerprint image. Minutia are | | ::: | fingerprint image. Minutia are | | | the points where friction ridges | | | the points where friction ridges | | | begin, terminate, or split into | | | begin, terminate, or split into | | | two or more ridges. In many | | | two or more ridges. In many | | | fingerprint systems, the minutia | | | fingerprint systems, the minutia | | | points are compared for | | | points are compared for | | | recognition purposes. | | | recognition purposes. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Mobile_Device} | A device which is composed of a | | ::: {#Mobile_Device} | A device which is composed of a | | Mobile Device ([MD](#abbr_MD)) | hardware platform and its system | | | Mobile Device (MD) | hardware platform and its system | | ::: | software. The device typically | | ::: | software. The device typically | | | provides wireless connectivity | | | provides wireless connectivity | | | and may include software for | | | and may include software for | | | functions like secure messaging, | | | functions like secure messaging, | | | email, web, [VPN](#abbr_VPN) | | | | email, web, VPN (Virtual Private | | | (Virtual Private Network) | | | | Network) connection, and VoIP | | | connection, and VoIP (Voice over | | | | (Voice over IP), for access to | | | [IP](#abbr_IP)), for access to | < | | the protected enterprise network, | | | the protected enterprise network, | | | enterprise data and applications, | | | enterprise data and applications, | | | and for communicating to other | | | and for communicating to other | | | Mobile Devices. | | | Mobile Devices. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Mobile_Device_Management} | Mobile device management | | | ::: {#Mobile_Device_Management} | Mobile device management (MDM) | | Mobile Device Management | ([MDM](#abbr_MDM)) products allow | | | Mobile Device Management (MDM) | products allow enterprises to | | ([MDM](#abbr_MDM)) | enterprises to apply security | | | ::: | apply security policies to mobile | | ::: | policies to mobile devices. This | | | | devices. This system consists of | | | system consists of two primary | | | | two primary components: the MDM | | | components: the [MDM](#abbr_MDM) | | | | Server and the MDM Agent. | | | Server and the [MDM](#abbr_MDM) | < | | Agent. | < +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Mobile_Device_User_(User)} | The individual authorized to | | ::: {#Mobile_Device_User_(User)} | The individual authorized to | | Mobile Device User (User) | physically control and operate | | Mobile Device User (User) | physically control and operate | | ::: | the Mobile Device. Depending on | | ::: | the Mobile Device. Depending on | | | the use case, this can be the | | | the use case, this can be the | | | device owner or an individual | | | device owner or an individual | | | authorized by the device owner. | | | authorized by the device owner. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Modality_(Biometrics)} | A type or class of biometric | | ::: {#Modality_(Biometrics)} | A type or class of biometric | | Modality (Biometrics) | system, such as fingerprint | | Modality (Biometrics) | system, such as fingerprint | | ::: | recognition, facial recognition, | | ::: | recognition, facial recognition, | | | iris recognition, voice | | | iris recognition, voice | | | recognition, signature/sign, and | | | recognition, signature/sign, and | | | others. | | | others. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Mutable_Hardware_Key} | These keys are stored as | | ::: {#Mutable_Hardware_Key} | These keys are stored as | | Mutable Hardware Key | hardware-protected raw key and | | Mutable Hardware Key | hardware-protected raw key and | | ::: | can be changed or sanitized. | | ::: | can be changed or sanitized. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#NIST_Fingerprint_Image_Qual | A machine-learning algorithm that | | ::: {#NIST_Fingerprint_Image_Qual | A machine-learning algorithm that | | ity} | reflects the predictive positive | | ity} | reflects the predictive positive | | [NIST](#abbr_NIST) Fingerprint | or negative contribution of an | | | NIST Fingerprint Image Quality | or negative contribution of an | | Image Quality | individual sample to the overall | | | (NFIQ) | individual sample to the overall | | ([NFIQ](#abbr_NFIQ)) | performance of a fingerprint | | | ::: | performance of a fingerprint | | ::: | matching system.\ | | | | matching system.\ | | | [NFIQ](#abbr_NFIQ) 1.0 scores are | | | | NFIQ 1.0 scores are calculated on | | | calculated on a scale from 1 to | | | | a scale from 1 to 5, where NFIQ = | | | 5, where [NFIQ](#abbr_NFIQ) = 1 | | | | 1 indicates high quality samples | | | indicates high quality samples | | | | and NFIQ = 5 indicates poor | | | and [NFIQ](#abbr_NFIQ) = 5 | | | | quality samples [\[NFIQ | | | indicates poor quality samples | | | | 1.0\]](#NFIQ1.0).\ | | | [\[NFIQ 1.0\]](#NFIQ1.0).\ | | | | NFIQ 2.0 scores are calculated on | | | [NFIQ](#abbr_NFIQ) 2.0 scores are | | | | a scale from 0 to 100, where NFIQ | | | calculated on a scale from 0 to | | | | = 0 indicates poor quality | | | 100, where [NFIQ](#abbr_NFIQ) = 0 | | | | samples and NFIQ = 100 indicates | | | indicates poor quality samples | | | | high quality samples [\[NFIQ | | | and [NFIQ](#abbr_NFIQ) = 100 | | | | 2.0\]](#NFIQ2.0). | | | indicates high quality samples | < | | [\[NFIQ 2.0\]](#NFIQ2.0). | < +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Operating_System} | Software that runs at the highest | | ::: {#Operating_System} | Software that runs at the highest | | Operating System ([OS](#abbr_OS)) | privilege level and can directly | | | Operating System (OS) | privilege level and can directly | | ::: | control hardware resources. | | ::: | control hardware resources. | | | Modern Mobile Devices typically | | | Modern Mobile Devices typically | | | have at least two primary | | | have at least two primary | | | operating systems: one, which | | | operating systems: one, which | | | runs on the application processor | | | runs on the application processor | | | and one, which runs on the | | | and one, which runs on the | | | cellular baseband processor. The | | | cellular baseband processor. The | | | [OS](#abbr_OS) of the application | | | | OS of the application processor | | | processor handles most user | | | | handles most user interactions | | | interactions and provides the | | | | and provides the execution | | | execution environment for apps. | | | | environment for apps. The OS of | | | The [OS](#abbr_OS) of the | | | | the cellular baseband processor | | | cellular baseband processor | < | | handles communications with the | | | handles communications with the | | | cellular network and may control | | | cellular network and may control | | | other peripherals. The term | | | | other peripherals. The term OS, | | | [OS](#abbr_OS), without context, | | | | without context, may be assumed | | | may be assumed to refer to the | | | | to refer to the OS of the | | | [OS](#abbr_OS) of the application | | | | application processor. | | | processor. | < +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#PIN_Authentication_Factor} | A PIN is a set of numeric or | | ::: {#PIN_Authentication_Factor} | A PIN is a set of numeric or | | PIN Authentication Factor | alphabetic characters that may be | | PIN Authentication Factor | alphabetic characters that may be | | ::: | used in addition to a biometric | | ::: | used in addition to a biometric | | | factor to provide a hybrid | | | factor to provide a hybrid | | | authentication factor. At this | | | authentication factor. At this | | | time it is not considered as a | | | time it is not considered as a | | | stand-alone authentication | | | stand-alone authentication | | | mechanism. A PIN is distinct from | | | mechanism. A PIN is distinct from | | | a password in that the allowed | | | a password in that the allowed | | | character set and required length | | | character set and required length | | | of a PIN is typically smaller | | | of a PIN is typically smaller | | | than that of a password as it is | | | than that of a password as it is | | | designed to be input quickly. | | | designed to be input quickly. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Password_Authentication_Fac | A type of authentication factor | | ::: {#Password_Authentication_Fac | A type of authentication factor | | tor} | requiring the user to provide a | | tor} | requiring the user to provide a | | Password Authentication Factor | secret set of characters to gain | | Password Authentication Factor | secret set of characters to gain | | ::: | access. | | ::: | access. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Powered_Off_State} | The device has been shut down | | ::: {#Powered_Off_State} | The device has been shut down | | Powered Off State | such that no [TOE](#abbr_TOE) | | | Powered Off State | such that no TOE function can be | | ::: | function can be performed. | | | ::: | performed. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Presentation_Attack_Detecti | A technique used to ensure that | | ::: {#Presentation_Attack_Detecti | A technique used to ensure that | | on} | the biometric sample submitted is | | on} | the biometric sample submitted is | | Presentation Attack Detection | from an end user. A presentation | | Presentation Attack Detection | from an end user. A presentation | | ([PAD](#abbr_PAD)) | attack detection method can help | | | (PAD) | attack detection method can help | | ::: | protect the system against some | | ::: | protect the system against some | | | types of spoofing attacks. | | | types of spoofing attacks. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Protected_Data} | Protected data is all non-TSF | | ::: {#Protected_Data} | Protected data is all non-TSF | | Protected Data ([PD](#abbr_PD)) | data, including all user or | | | Protected Data (PD) | data, including all user or | | ::: | enterprise data. Some or all of | | ::: | enterprise data. Some or all of | | | this data may be considered | | | this data may be considered | | | sensitive data as well. | | | sensitive data as well. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Root_Encryption_Key} | A key tied to the device used to | | ::: {#Root_Encryption_Key} | A key tied to the device used to | | Root Encryption Key | encrypt other keys. | | | Root Encryption Key (REK) | encrypt other keys. | | ([REK](#abbr_REK)) | | < | ::: | | | ::: | | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Sensitive_data} | Sensitive data shall be | | ::: {#Sensitive_data} | Sensitive data shall be | | Sensitive data | identified in the | | | Sensitive data | identified in the TSS section of | | ::: | [TSS](#abbr_TSS) section of the | | | ::: | the Security Target (ST) by the | | | Security Target ([ST](#abbr_ST)) | | | | ST author. Sensitive data is a | | | by the [ST](#abbr_ST) author. | | | | subset or all of the Protected | | | Sensitive data is a subset or all | | | | data. Sensitive data may include | | | of the Protected data. Sensitive | | | | all user or enterprise data or | | | data may include all user or | | | | may be specific application data | | | enterprise data or may be | | | | such as emails, messaging, | | | specific application data such as | | | | documents, calendar items, and | | | emails, messaging, documents, | | | | contacts. Sensitive data is | | | calendar items, and contacts. | | | | protected while in the locked | | | Sensitive data is protected while | | | | state (FDP\_DAR\_EXT.2). | | | in the locked state | < | | ([FDP\_DAR\_EXT.2](#FDP_DAR_EXT.2 | < | | )). | < +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Software_Keys} | The [OS](#abbr_OS) access the raw | | | ::: {#Software_Keys} | The OS access the raw bytes of | | Software Keys | bytes of these keys during | | | Software Keys | these keys during runtime. | | ::: | runtime. | | | ::: | | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#TSF_Data} | Data for the operation of the | | | ::: {#TSF_Data} | Data for the operation of the TSF | | [TSF](#abbr_TSF) Data | [TSF](#abbr_TSF) upon which the | | | TSF Data | upon which the enforcement of the | | ::: | enforcement of the requirements | | | ::: | requirements relies. | | | relies. | < +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Template_(Biometrics)} | A digital representation of an | | ::: {#Template_(Biometrics)} | A digital representation of an | | Template (Biometrics) | individual's distinct | | Template (Biometrics) | individual's distinct | | ::: | characteristics, representing | | ::: | characteristics, representing | | | information extracted from a | | | information extracted from a | | | biometric sample. This | | | | biometric sample. This PP further | | | [PP](#abbr_PP) further defines | | | | defines enrollment templates and | | | enrollment templates and | < | | authentication templates. | | | authentication templates. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Threshold} | A user setting for biometric | | ::: {#Threshold} | A user setting for biometric | | Threshold | systems operating in | | Threshold | systems operating in | | ::: | verification. Thresholds are also | | ::: | verification. Thresholds are also | | | used in enrollment if enrollment | | | used in enrollment if enrollment | | | templates are created and | | | templates are created and | | | compared to each other. The | | | compared to each other. The | | | acceptance or rejection of | | | acceptance or rejection of | | | biometric data in verification is | | | biometric data in verification is | | | dependent on the match score | | | dependent on the match score | | | falling above or below the | | | falling above or below the | | | threshold. The threshold is | | | threshold. The threshold is | | | adjustable so that the biometric | | | adjustable so that the biometric | | | system can be more or less | | | system can be more or less | | | strict, depending on the | | | strict, depending on the | | | requirements of any given | | | requirements of any given | | | biometric application. | | | biometric application. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Trust_Anchor_Database} | A list of trusted root | | ::: {#Trust_Anchor_Database} | A list of trusted root | | Trust Anchor Database | Certificate Authority | | Trust Anchor Database | Certificate Authority | | ::: | certificates. | | ::: | certificates. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Unenrolled_State} | The state in which the Mobile | | ::: {#Unenrolled_State} | The state in which the Mobile | | Unenrolled State | Device is not managed. | | Unenrolled State | Device is not managed. | | ::: | | | ::: | | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Unlocked_State} | Powered on and device | | ::: {#Unlocked_State} | Powered on and device | | Unlocked State | functionality is available for | | Unlocked State | functionality is available for | | ::: | use. Implies user authentication | | ::: | use. Implies user authentication | | | has occurred (when so | | | has occurred (when so | | | configured). | | | configured). | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | ::: {#Verification_(Biometrics)} | A task where the biometric system | | ::: {#Verification_(Biometrics)} | A task where the biometric system | | Verification (Biometrics) | attempts to confirm an | | Verification (Biometrics) | attempts to confirm an | | ::: | individual's claimed identity by | | ::: | individual's claimed identity by | | | comparing a submitted sample to | | | comparing a submitted sample to | | | one or more previously enrolled | | | one or more previously enrolled | | | authentication templates. | | | authentication templates. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ > ::: ### 1.3 Scope of Document {#scope .indexable data-level="2"} | 1.3 Scope of Document {#scope .indexable data-level="2"} > --------------------- The scope of the Protection Profile within the development and The scope of the Protection Profile within the development and evaluation process is described in the Common Criteria for Information evaluation process is described in the Common Criteria for Information Technology Security Evaluation [\[CC\]](#bibCC). In particular, a Technology Security Evaluation [\[CC\]](#bibCC). In particular, a [PP](#abbr_PP) defines the IT security requirements of a generic type of [PP](#abbr_PP) defines the IT security requirements of a generic type of [TOE](#abbr_TOE) and specifies the functional and assurance security [TOE](#abbr_TOE) and specifies the functional and assurance security measures to be offered by that [TOE](#abbr_TOE) to meet stated measures to be offered by that [TOE](#abbr_TOE) to meet stated requirements [\[CC\]](#bibCC). requirements [\[CC\]](#bibCC). ### 1.4 Intended Readership {#intread .indexable data-level="2"} | 1.4 Intended Readership {#intread .indexable data-level="2"} > ----------------------- The target audiences of this [PP](#abbr_PP) are Mobile Device The target audiences of this [PP](#abbr_PP) are Mobile Device developers, [CC](#abbr_CC) consumers, evaluators and schemes. developers, [CC](#abbr_CC) consumers, evaluators and schemes. ### 1.5 TOE Overview {#toeov .indexable data-level="2"} | 1.5 TOE Overview {#toeov .indexable data-level="2"} > ---------------- This assurance standard specifies information security requirements for This assurance standard specifies information security requirements for Mobile Devices for use in an enterprise. A Mobile Device in the context Mobile Devices for use in an enterprise. A Mobile Device in the context of this assurance standard is a device, which is composed of a hardware of this assurance standard is a device, which is composed of a hardware platform and its system software. The device typically provides wireless platform and its system software. The device typically provides wireless connectivity and may include software for functions like secure connectivity and may include software for functions like secure messaging, email, web, [VPN](#abbr_VPN) connection, and VoIP (Voice over messaging, email, web, [VPN](#abbr_VPN) connection, and VoIP (Voice over [IP](#abbr_IP)), for access to the protected enterprise network, [IP](#abbr_IP)), for access to the protected enterprise network, enterprise data and applications, and for communicating to other Mobile enterprise data and applications, and for communicating to other Mobile Devices.\ Devices.\ \ \ [Figure [1]{.counter}](#NetEnv){.NetEnv-ref} illustrates the network [Figure [1]{.counter}](#NetEnv){.NetEnv-ref} illustrates the network operating environment of the Mobile Device.\ operating environment of the Mobile Device.\ \ \ ::: {#figure-NetEnv .figure} ::: {#figure-NetEnv .figure} ![](images/figure1.jpg){#NetEnv}\ ![](images/figure1.jpg){#NetEnv}\ [Figure [1]{.counter}]{.ctr data-myid="NetEnv" [Figure [1]{.counter}]{.ctr data-myid="NetEnv" data-counter-type="ct-figure"}: Mobile Device Network Environment data-counter-type="ct-figure"}: Mobile Device Network Environment ::: ::: \ \ \ \ Examples of a \"Mobile Device\" that should claim conformance to this Examples of a \"Mobile Device\" that should claim conformance to this Protection Profile include smartphones, tablet computers, and other Protection Profile include smartphones, tablet computers, and other Mobile Devices with similar capabilities.\ Mobile Devices with similar capabilities.\ \ \ The Mobile Device provides essential services, such as cryptographic The Mobile Device provides essential services, such as cryptographic services, data-at-rest protection, and key storage services to support services, data-at-rest protection, and key storage services to support the secure operation of applications on the device. Additional security the secure operation of applications on the device. Additional security features such as security policy enforcement, application mandatory features such as security policy enforcement, application mandatory access control, anti-exploitation features, user authentication, and access control, anti-exploitation features, user authentication, and software integrity protection are implemented in order to address software integrity protection are implemented in order to address threats.\ threats.\ \ \ This assurance standard describes these essential security services This assurance standard describes these essential security services provided by the Mobile Device and serves as a foundation for a secure provided by the Mobile Device and serves as a foundation for a secure mobile architecture. The wireless connectivity shall be validated mobile architecture. The wireless connectivity shall be validated against the Extended Package for WLAN Client. If the mobile device against the Extended Package for WLAN Client. If the mobile device contains Bluetooth functionality (i.e., has Bluetooth hardware), the contains Bluetooth functionality (i.e., has Bluetooth hardware), the Bluetooth connectivity shall be evaluated against the Bluetooth connectivity shall be evaluated against the [PP-Module](#abbr_PP-Module) for Bluetooth. As illustrated in [Figure [PP-Module](#abbr_PP-Module) for Bluetooth. As illustrated in [Figure [2]{.counter}](#TOE){.TOE-ref}, it is expected that a typical deployment [2]{.counter}](#TOE){.TOE-ref}, it is expected that a typical deployment would also include either third-party or bundled components. Whether would also include either third-party or bundled components. Whether these components are bundled as part of the Mobile Device by the these components are bundled as part of the Mobile Device by the manufacturer or developed by a third-party, they must be separately manufacturer or developed by a third-party, they must be separately validated against the related assurance standards such as the validated against the related assurance standards such as the [PP-Module](#abbr_PP-Module) for [MDM](#abbr_MDM) Agent, [PP-Module](#abbr_PP-Module) for [MDM](#abbr_MDM) Agent, [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client, and [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client, and [PP-Module](#abbr_PP-Module) for VVoIP. It is the responsibility of the [PP-Module](#abbr_PP-Module) for VVoIP. It is the responsibility of the architect of the overall secure mobile architecture to ensure validation architect of the overall secure mobile architecture to ensure validation of these components. Additional applications that may come pre-installed of these components. Additional applications that may come pre-installed on the Mobile Device that are not validated are considered to be on the Mobile Device that are not validated are considered to be potentially flawed, but not malicious. Examples include email client and potentially flawed, but not malicious. Examples include email client and web browser.\ web browser.\ \ \ ::: {#figure-TOE .figure} ::: {#figure-TOE .figure} ![](images/figure2.jpg){#TOE}\ ![](images/figure2.jpg){#TOE}\ [Figure [2]{.counter}]{.ctr data-myid="TOE" [Figure [2]{.counter}]{.ctr data-myid="TOE" data-counter-type="ct-figure"}: Optional Additional Mobile Device data-counter-type="ct-figure"}: Optional Additional Mobile Device Components Components ::: ::: \ \ ### 1.6 TOE Usage {#toeus .indexable data-level="2"} | 1.6 TOE Usage {#toeus .indexable data-level="2"} > ------------- The Mobile Device may be operated in a number of use cases. [Appendix E The Mobile Device may be operated in a number of use cases. [Appendix E - Use Case Templates](#use){.dynref} provides use case templates that - Use Case Templates](#use){.dynref} provides use case templates that list those selections, assignments, and objective requirements that best list those selections, assignments, and objective requirements that best support the use cases identified by this Protection Profile. In addition support the use cases identified by this Protection Profile. In addition to providing essential security services, the Mobile Device includes the to providing essential security services, the Mobile Device includes the necessary security functionality to support configurations for these necessary security functionality to support configurations for these various use cases. Each use case may require additional configuration various use cases. Each use case may require additional configuration and applications to achieve the desired security. A selection of these and applications to achieve the desired security. A selection of these use cases is elaborated below.\ use cases is elaborated below.\ \ \ Several of the use case templates include objective requirements that Several of the use case templates include objective requirements that are strongly desired for the indicated use cases. Readers can expect are strongly desired for the indicated use cases. Readers can expect those requirements to be made mandatory in a future revision of this those requirements to be made mandatory in a future revision of this protection profile, and industry should aim to include that security protection profile, and industry should aim to include that security functionality in products in the near-term.\ functionality in products in the near-term.\ \ \ As of publication of this version of the Protection Profile, meeting the As of publication of this version of the Protection Profile, meeting the requirements in [Section 5 Security Requirements](#sr){.dynref} is requirements in [Section 5 Security Requirements](#sr){.dynref} is necessary for all use cases.\ necessary for all use cases.\ \ \ **\[[USE CASE [1]{.counter}]{#uc_entgenpurp .ctr **\[[USE CASE [1]{.counter}]{#uc_entgenpurp .ctr data-myid="uc_entgenpurp" data-counter-type="ct-USE CASE"}\] data-myid="uc_entgenpurp" data-counter-type="ct-USE CASE"}\] Enterprise-owned device for general-purpose enterprise use and limited Enterprise-owned device for general-purpose enterprise use and limited personal use**\ personal use**\ \ \ An enterprise-owned device for general-purpose business use is commonly An enterprise-owned device for general-purpose business use is commonly called Corporately Owned, Personally Enabled (COPE). This use case called Corporately Owned, Personally Enabled (COPE). This use case entails a significant degree of enterprise control over configuration entails a significant degree of enterprise control over configuration and, possibly, software inventory. The enterprise elects to provide and, possibly, software inventory. The enterprise elects to provide users with Mobile Devices and additional applications (such as users with Mobile Devices and additional applications (such as [VPN](#abbr_VPN) or email clients) in order to maintain control of their [VPN](#abbr_VPN) or email clients) in order to maintain control of their Enterprise data and security of their networks. Users may use Internet Enterprise data and security of their networks. Users may use Internet connectivity to browse the web or access corporate mail or run connectivity to browse the web or access corporate mail or run enterprise applications, but this connectivity may be under significant enterprise applications, but this connectivity may be under significant control of the enterprise.\ control of the enterprise.\ \ \ **\[[USE CASE [2]{.counter}]{#uc_enthisec .ctr data-myid="uc_enthisec" **\[[USE CASE [2]{.counter}]{#uc_enthisec .ctr data-myid="uc_enthisec" data-counter-type="ct-USE CASE"}\] Enterprise-owned device for data-counter-type="ct-USE CASE"}\] Enterprise-owned device for specialized, high-security use**\ specialized, high-security use**\ \ \ An enterprise-owned device with intentionally limited network An enterprise-owned device with intentionally limited network connectivity, tightly controlled configuration, and limited software connectivity, tightly controlled configuration, and limited software inventory is appropriate for specialized, high-security use cases. For inventory is appropriate for specialized, high-security use cases. For example, the device may not be permitted connectivity to any external example, the device may not be permitted connectivity to any external peripherals. It may only be able to communicate via its Wi-Fi or peripherals. It may only be able to communicate via its Wi-Fi or cellular radios with the enterprise-run network, which may not even cellular radios with the enterprise-run network, which may not even permit connectivity to the Internet. Use of the device may entail permit connectivity to the Internet. Use of the device may entail compliance with policies that are more restrictive than those in any compliance with policies that are more restrictive than those in any general-purpose use case, yet may mitigate risks to highly sensitive general-purpose use case, yet may mitigate risks to highly sensitive information. As in the previous case, the enterprise will look for information. As in the previous case, the enterprise will look for additional applications providing enterprise connectivity and services additional applications providing enterprise connectivity and services to have a similar level of assurance as the platform.\ to have a similar level of assurance as the platform.\ \ \ **\[[USE CASE [3]{.counter}]{#uc_pergenpurp .ctr **\[[USE CASE [3]{.counter}]{#uc_pergenpurp .ctr data-myid="uc_pergenpurp" data-counter-type="ct-USE CASE"}\] data-myid="uc_pergenpurp" data-counter-type="ct-USE CASE"}\] Personally-owned device for personal and enterprise use**\ Personally-owned device for personal and enterprise use**\ \ \ A personally-owned device, which is used, for both personal activities A personally-owned device, which is used, for both personal activities and enterprise data is commonly called Bring Your Own Device (BYOD). The | and enterprise data is commonly called Bring Your Own Device device may be provisioned for access to enterprise resources after | ([BYOD](#abbr_BYOD)). The device may be provisioned for access to significant personal usage has occurred. Unlike in the enterprise-owned | enterprise resources after significant personal usage has occurred. cases, the enterprise is limited in what security policies it can | Unlike in the enterprise-owned cases, the enterprise is limited in what enforce because the user purchased the device primarily for personal use | security policies it can enforce because the user purchased the device and is unlikely to accept policies that limit the functionality of the | primarily for personal use and is unlikely to accept policies that limit device. However, because the enterprise allows the user full (or nearly | the functionality of the device. However, because the enterprise allows full) access to the enterprise network, the enterprise will require | the user full (or nearly full) access to the enterprise network, the their own security controls to ensure that enterprise resources are | enterprise will require their own security controls to ensure that protected from potential threats posed by the personal activities on the | enterprise resources are protected from potential threats posed by the device. These controls could potentially be enforced by a separation | personal activities on the device. These controls could potentially be mechanism built-in to the device itself to distinguish between | enforced by a separation mechanism built-in to the device itself to enterprise and personal activities, or by a third-party application that | distinguish between enterprise and personal activities, or by a provides access to enterprise resources and leverages security | third-party application that provides access to enterprise resources and capabilities provided by the mobile device. Based upon the operational | leverages security capabilities provided by the mobile device. Based environment and the acceptable risk level of the enterprise, those | upon the operational environment and the acceptable risk level of the security functional requirements outlined in [Section 5 Security | enterprise, those security functional requirements outlined in [Section Requirements](#sr){.dynref} of this [PP](#abbr_PP) along with the | 5 Security Requirements](#sr){.dynref} of this [PP](#abbr_PP) along with selections in the Use Case 3 template defined in [Appendix E - Use Case | the selections in the Use Case 3 template defined in [Appendix E - Use Templates](#use){.dynref} are sufficient for the secure implementation | Case Templates](#use){.dynref} are sufficient for the secure of this BYOD use case.\ | implementation of this [BYOD](#abbr_BYOD) use case.\ \ \ **\[[USE CASE [4]{.counter}]{#uc_perlim .ctr data-myid="uc_perlim" **\[[USE CASE [4]{.counter}]{#uc_perlim .ctr data-myid="uc_perlim" data-counter-type="ct-USE CASE"}\] Personally-owned device for personal data-counter-type="ct-USE CASE"}\] Personally-owned device for personal and limited enterprise use**\ and limited enterprise use**\ \ \ A personally-owned device, which is used, for both personal activities A personally-owned device, which is used, for both personal activities and enterprise data is commonly called Bring Your Own Device (BYOD). | and enterprise data is commonly called Bring Your Own Device This device may be provisioned for limited access to enterprise | ([BYOD](#abbr_BYOD)). This device may be provisioned for limited access resources such as enterprise email. Because the user does not have full | to enterprise resources such as enterprise email. Because the user does access to the enterprise or enterprise data, the enterprise may not need | not have full access to the enterprise or enterprise data, the to enforce any security policies on the device. However, the enterprise | enterprise may not need to enforce any security policies on the device. may want secure email and web browsing with assurance that the services | However, the enterprise may want secure email and web browsing with being provided to those clients by the Mobile Device are not | assurance that the services being provided to those clients by the compromised. Based upon the operational environment and the acceptable | Mobile Device are not compromised. Based upon the operational risk level of the enterprise, those security functional requirements | environment and the acceptable risk level of the enterprise, those outlined in [Section 5 Security Requirements](#sr){.dynref} of this | security functional requirements outlined in [Section 5 Security [PP](#abbr_PP) are sufficient for the secure implementation of this BYOD | Requirements](#sr){.dynref} of this [PP](#abbr_PP) are sufficient for use case. | the secure implementation of this [BYOD](#abbr_BYOD) use case. 2 Conformance Claims {#ccl .indexable data-level="1"} 2 Conformance Claims {#ccl .indexable data-level="1"} -------------------- | ==================== Conformance Statement Conformance Statement : An [ST](#abbr_ST) must claim exact conformance to this | : [ An [ST](#abbr_ST) must claim exact conformance to this [PP](#abbr_PP), as defined in the [CC](#abbr_CC) and [PP](#abbr_PP), as defined in the [CC](#abbr_CC) and [CEM](#abbr_CEM) addenda for Exact Conformance, Selection-Based [CEM](#abbr_CEM) addenda for Exact Conformance, Selection-Based SFRs, and Optional SFRs (dated May 2017). | [SFRs](#abbr_SFR), and Optional [SFRs](#abbr_SFR) (dated May > 2017).]{.description} The following [PP](#abbr_PP)-Modules are allowed to be specified in The following [PP](#abbr_PP)-Modules are allowed to be specified in a [PP-Configuration](#abbr_PP-Configuration) with this a [PP-Configuration](#abbr_PP-Configuration) with this [PP](#abbr_PP). [PP](#abbr_PP). - [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client, - [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client, Version 2.2 Version 2.2 - [PP-Module](#abbr_PP-Module) for Bluetooth, Version 1.0 - [PP-Module](#abbr_PP-Module) for Bluetooth, Version 1.0 - [PP-Module](#abbr_PP-Module) for [MDM](#abbr_MDM) Agent, Version - [PP-Module](#abbr_PP-Module) for [MDM](#abbr_MDM) Agent, Version 1.0 1.0 CC Conformance Claims CC Conformance Claims : This [PP](#abbr_PP) is conformant to Parts 2 (extended) and 3 | : [This [PP](#abbr_PP) is conformant to Parts 2 (extended) and 3 (extended) of Common Criteria Version 3.1, Revision 5. | (extended) of Common Criteria Version 3.1, > Revision 5.]{.description} PP Claim PP Claim : This [PP](#abbr_PP) does not claim conformance to any Protection | : [This [PP](#abbr_PP) does not claim conformance to any Protection Profile. | Profile.]{.description} Package Claim Package Claim : This [PP](#abbr_PP) is [TLS](#abbr_TLS) Package Conformant. | : [This [PP](#abbr_PP) is [TLS](#abbr_TLS) Package > Conformant.]{.description} 3 Security Problem Description {#spd .indexable data-level="1"} 3 Security Problem Description {#spd .indexable data-level="1"} ------------------------------ | ============================== ### 3.1 Threats {#thr .indexable data-level="2"} | 3.1 Threats {#thr .indexable data-level="2"} > ----------- Mobile devices are subject to the threats of traditional computer Mobile devices are subject to the threats of traditional computer systems along with those entailed by their mobile nature. The threats systems along with those entailed by their mobile nature. The threats considered in this Protection Profile are those of network considered in this Protection Profile are those of network eavesdropping, network attacks, physical access, malicious or flawed eavesdropping, network attacks, physical access, malicious or flawed applications, persistent presence, and backup as detailed in the applications, persistent presence, and backup as detailed in the following sections. following sections. T.NETWORK\_EAVESDROP T.NETWORK\_EAVESDROP : An attacker is positioned on a wireless communications channel or | : [ An attacker is positioned on a wireless communications channel or elsewhere on the network infrastructure. Attackers may monitor and elsewhere on the network infrastructure. Attackers may monitor and gain access to data exchanged between the Mobile Device and other gain access to data exchanged between the Mobile Device and other endpoints. | endpoints. ]{.description} T.NETWORK\_ATTACK T.NETWORK\_ATTACK : An attacker is positioned on a wireless communications channel or | : [ An attacker is positioned on a wireless communications channel or elsewhere on the network infrastructure. Attackers may initiate elsewhere on the network infrastructure. Attackers may initiate communications with the Mobile Device or alter communications communications with the Mobile Device or alter communications between the Mobile Device and other endpoints in order to compromise between the Mobile Device and other endpoints in order to compromise the Mobile Device. These attacks include malicious software update the Mobile Device. These attacks include malicious software update of any applications or system software on the device. These attacks of any applications or system software on the device. These attacks also include malicious web pages or email attachments, which are also include malicious web pages or email attachments, which are usually delivered to devices over the network. | usually delivered to devices over the network.]{.description} T.PHYSICAL\_ACCESS T.PHYSICAL\_ACCESS : An attacker, with physical access, may attempt to access user data | : [ An attacker, with physical access, may attempt to access user data on the Mobile Device including credentials. These physical access on the Mobile Device including credentials. These physical access threats may involve attacks, which attempt to access the device threats may involve attacks, which attempt to access the device through external hardware ports, impersonate the user authentication through external hardware ports, impersonate the user authentication mechanisms, through its user interface, and also through direct and mechanisms, through its user interface, and also through direct and possibly destructive access to its storage media. Note: Defending possibly destructive access to its storage media. Note: Defending against device re-use after physical compromise is out of scope for against device re-use after physical compromise is out of scope for this Protection Profile. | this Protection Profile.]{.description} T.MALICIOUS\_APP T.MALICIOUS\_APP : Applications loaded onto the Mobile Device may include malicious or | : [ Applications loaded onto the Mobile Device may include malicious exploitable code. This code could be included intentionally or | or exploitable code. This code could be included intentionally or unknowingly by the developer, perhaps as part of a software library. unknowingly by the developer, perhaps as part of a software library. Malicious apps may attempt to exfiltrate data to which they have Malicious apps may attempt to exfiltrate data to which they have access. They may also conduct attacks against the platform's system access. They may also conduct attacks against the platform's system software, which will provide them with additional privileges and the software, which will provide them with additional privileges and the ability to conduct further malicious activities. Malicious ability to conduct further malicious activities. Malicious applications may be able to control the device\'s sensors applications may be able to control the device\'s sensors ([GPS](#abbr_GPS), camera, microphone) to gather intelligence about ([GPS](#abbr_GPS), camera, microphone) to gather intelligence about the user\'s surroundings even when those activities do not involve the user\'s surroundings even when those activities do not involve data resident or transmitted from the device. Flawed applications data resident or transmitted from the device. Flawed applications may give an attacker access to perform network-based or physical may give an attacker access to perform network-based or physical attacks that otherwise would have been prevented | attacks that otherwise would have been prevented]{.description} T.PERSISTENT\_PRESENCE T.PERSISTENT\_PRESENCE : Persistent presence on a device by an attacker implies that the | : [ Persistent presence on a device by an attacker implies that the device has lost integrity and cannot regain it. The device has device has lost integrity and cannot regain it. The device has likely lost this integrity due to some other threat vector, yet the likely lost this integrity due to some other threat vector, yet the continued access by an attacker constitutes an on-going threat in continued access by an attacker constitutes an on-going threat in itself. In this case, the device and its data may be controlled by itself. In this case, the device and its data may be controlled by an adversary as well as by its legitimate owner. | an adversary as well as by its legitimate owner.]{.description} ### 3.2 Assumptions {#assp .indexable data-level="2"} | 3.2 Assumptions {#assp .indexable data-level="2"} > --------------- The specific conditions listed below are assumed to exist in the The specific conditions listed below are assumed to exist in the [TOE](#abbr_TOE)'s Operational Environment. These include both practical [TOE](#abbr_TOE)'s Operational Environment. These include both practical realities in the development of the [TOE](#abbr_TOE) security realities in the development of the [TOE](#abbr_TOE) security requirements and the essential environmental conditions on the use of requirements and the essential environmental conditions on the use of the [TOE](#abbr_TOE). the [TOE](#abbr_TOE). A.CONFIG A.CONFIG : It is assumed that the [TOE](#abbr_TOE)'s security functions are | : [It is assumed that the [TOE](#abbr_TOE)'s security functions are configured correctly in a manner to ensure that the [TOE](#abbr_TOE) configured correctly in a manner to ensure that the [TOE](#abbr_TOE) security policies will be enforced on all applicable network traffic security policies will be enforced on all applicable network traffic flowing among the attached networks. | flowing among the attached networks.]{.description} A.NOTIFY A.NOTIFY : It is assumed that the mobile user will immediately notify the | : [It is assumed that the mobile user will immediately notify the administrator if the Mobile Device is lost or stolen. | administrator if the Mobile Device is lost or stolen.]{.description} A.PRECAUTION A.PRECAUTION : It is assumed that the mobile user exercises precautions to reduce | : [It is assumed that the mobile user exercises precautions to reduce the risk of loss or theft of the Mobile Device. | the risk of loss or theft of the Mobile Device.]{.description} A.PROPER\_USER A.PROPER\_USER : Mobile Device users are not willfully negligent or hostile, and use | : [ Mobile Device users are not willfully negligent or hostile, and the device within compliance of a reasonable Enterprise security | use the device within compliance of a reasonable Enterprise security policy. | policy. ]{.description} ### 3.3 Organizational Security Policies {#osp .indexable data-level="2"} | 3.3 Organizational Security Policies {#osp .indexable data-level="2"} > ------------------------------------ This document does not define any additional OSPs. This document does not define any additional OSPs. 4 Security Objectives {#sobj .indexable data-level="1"} 4 Security Objectives {#sobj .indexable data-level="1"} --------------------- | ===================== ### 4.1 Security Objectives for the TOE {#sot .indexable data-level="2"} | 4.1 Security Objectives for the TOE {#sot .indexable data-level="2"} > ----------------------------------- O.PROTECTED\_COMMS O.PROTECTED\_COMMS : To address the network eavesdropping (T.EAVESDROP) and network | : [ To address the network eavesdropping (T.EAVESDROP) and network attack (T.NETWORK) threats described in [Section 3.1 attack (T.NETWORK) threats described in [Section 3.1 Threats](#thr){.dynref}, concerning wireless transmission of Threats](#thr){.dynref}, concerning wireless transmission of Enterprise and user data and configuration data between the Enterprise and user data and configuration data between the [TOE](#abbr_TOE) and remote network entities, conformant TOEs will | [TOE](#abbr_TOE) and remote network entities, conformant use a trusted communication path. The [TOE](#abbr_TOE) will be | [TOEs](#abbr_TOE) will use a trusted communication path. The capable of communicating using one (or more) of these standard | [TOE](#abbr_TOE) will be capable of communicating using one (or protocols: [IPsec](#abbr_IPsec), [DTLS](#abbr_DTLS), | more) of these standard protocols: [IPsec](#abbr_IPsec), [TLS](#abbr_TLS), [HTTPS](#abbr_HTTPS), or Bluetooth. The protocols | [DTLS](#abbr_DTLS), [TLS](#abbr_TLS), [HTTPS](#abbr_HTTPS), or are specified by RFCs that offer a variety of implementation | Bluetooth. The protocols are specified by RFCs that offer a variety choices. Requirements have been imposed on some of these choices | of implementation choices. Requirements have been imposed on some of (particularly those for cryptographic primitives) to provide | these choices (particularly those for cryptographic primitives) to interoperability and resistance to cryptographic attack.\ | provide interoperability and resistance to cryptographic attack.\ \ \ While conformant TOEs must support all of the choices specified in | While conformant [TOEs](#abbr_TOE) must support all of the choices the [ST](#abbr_ST) including any optional SFRs defined in this | specified in the [ST](#abbr_ST) including any optional [PP](#abbr_PP), they may support additional algorithms and | [SFRs](#abbr_SFR) defined in this [PP](#abbr_PP), they may support protocols. If such additional mechanisms are not evaluated, guidance | additional algorithms and protocols. If such additional mechanisms must be given to the administrator to make clear the fact that they | are not evaluated, guidance must be given to the administrator to were not evaluated. | make clear the fact that they were not evaluated. ]{.description} O.STORAGE O.STORAGE : To address the issue of loss of confidentiality of user data in the | : [ To address the issue of loss of confidentiality of user data in event of loss of a Mobile Device (T.PHYSICAL), conformant TOEs will | the event of loss of a Mobile Device (T.PHYSICAL), conformant use data-at-rest protection. The [TOE](#abbr_TOE) will be capable of | [TOEs](#abbr_TOE) will use data-at-rest protection. The encrypting data and keys stored on the device and will prevent | [TOE](#abbr_TOE) will be capable of encrypting data and keys stored unauthorized access to encrypted data. | on the device and will prevent unauthorized access to encrypted > data. ]{.description} O.CONFIG O.CONFIG : To ensure a Mobile Device protects user and enterprise data that it | : [ To ensure a Mobile Device protects user and enterprise data that may store or process, conformant TOEs will provide the capability to | it may store or process, conformant [TOEs](#abbr_TOE) will provide configure and apply security policies defined by the user and the | the capability to configure and apply security policies defined by Enterprise Administrator. If Enterprise security policies are | the user and the Enterprise Administrator. If Enterprise security configured these must be applied in precedence of user specified | policies are configured these must be applied in precedence of user security policies. | specified security policies. ]{.description} O.AUTH O.AUTH : To address the issue of loss of confidentiality of user data in the | : [ To address the issue of loss of confidentiality of user data in event of loss of a Mobile Device (T.PHYSICAL), users are required to | the event of loss of a Mobile Device (T.PHYSICAL), users are enter an authentication factor to the device prior to accessing | required to enter an authentication factor to the device prior to protected functionality and data. Some non-sensitive functionality | accessing protected functionality and data. Some non-sensitive (e.g., emergency calling, text notification) can be accessed prior | functionality (e.g., emergency calling, text notification) can be to entering the authentication factor. The device will automatically | accessed prior to entering the authentication factor. The device lock following a configured period of inactivity in an attempt to | will automatically lock following a configured period of inactivity ensure authorization will be required in the event of the device | in an attempt to ensure authorization will be required in the event being lost or stolen.\ | of the device being lost or stolen.\ \ \ Authentication of the endpoints of a trusted communication path is Authentication of the endpoints of a trusted communication path is required for network access to ensure attacks are unable to required for network access to ensure attacks are unable to establish unauthorized network connections to undermine the establish unauthorized network connections to undermine the integrity of the device.\ integrity of the device.\ \ \ Repeated attempts by a user to authorize to the [TSF](#abbr_TSF) Repeated attempts by a user to authorize to the [TSF](#abbr_TSF) will be limited or throttled to enforce a delay between unsuccessful will be limited or throttled to enforce a delay between unsuccessful attempts.\ attempts.\ > ]{.description} O.INTEGRITY O.INTEGRITY : To ensure the integrity of the Mobile Device is maintained | : [ To ensure the integrity of the Mobile Device is maintained conformant TOEs will perform self-tests to ensure the integrity of | conformant [TOEs](#abbr_TOE) will perform self-tests to ensure the critical functionality, software/firmware and data has been | integrity of critical functionality, software/firmware and data has maintained. The user shall be notified of any failure of these | been maintained. The user shall be notified of any failure of these self-tests. This will protect against the threat T.PERSISTENT.\ self-tests. This will protect against the threat T.PERSISTENT.\ \ \ To address the issue of an application containing malicious or To address the issue of an application containing malicious or flawed code (T.FLAWAPP), the integrity of downloaded updates to flawed code (T.FLAWAPP), the integrity of downloaded updates to software/firmware will be verified prior to installation/execution software/firmware will be verified prior to installation/execution of the object on the Mobile Device. In addition, the of the object on the Mobile Device. In addition, the [TOE](#abbr_TOE) will restrict applications to only have access to [TOE](#abbr_TOE) will restrict applications to only have access to the system services and data they are permitted to interact with. the system services and data they are permitted to interact with. The [TOE](#abbr_TOE) will further protect against malicious The [TOE](#abbr_TOE) will further protect against malicious applications from gaining access to data they are not authorized to applications from gaining access to data they are not authorized to access by randomizing the memory layout. | access by randomizing the memory layout. ]{.description} O.PRIVACY O.PRIVACY : In a BYOD environment (use cases 3 and 4), a personally-owned mobile | : [ In a [BYOD](#abbr_BYOD) environment (use cases 3 and 4), a device is used for both personal activities and enterprise data. | personally-owned mobile device is used for both personal activities Enterprise management solutions may have the technical capability to | and enterprise data. Enterprise management solutions may have the monitor and enforce security policies on the device. However, the | technical capability to monitor and enforce security policies on the privacy of the personal activities and data must be ensured. In | device. However, the privacy of the personal activities and data addition, since there are limited controls that the enterprise can | must be ensured. In addition, since there are limited controls that enforce on the personal side, separation of personal and enterprise | the enterprise can enforce on the personal side, separation of data is needed. This will protect against the T.FLAWAPP and | personal and enterprise data is needed. This will protect against T.PERSISTENT threats. | the T.FLAWAPP and T.PERSISTENT threats. ]{.description} ### 4.2 Security Objectives for the Operational Environment {#sooe .indexable data-le | 4.2 Security Objectives for the Operational Environment {#sooe .indexable data-level= > ------------------------------------------------------- The following security objectives for the operational environment assist The following security objectives for the operational environment assist the [OS](#abbr_OS) in correctly providing its security functionality. the [OS](#abbr_OS) in correctly providing its security functionality. These track with the assumptions about the environment. These track with the assumptions about the environment. OE.CONFIG OE.CONFIG : [TOE](#abbr_TOE) administrators will configure the Mobile Device | : [[TOE](#abbr_TOE) administrators will configure the Mobile Device security functions correctly to create the intended security policy | security functions correctly to create the intended security > policy]{.description} OE.NOTIFY OE.NOTIFY : The Mobile User will immediately notify the administrator if the | : [The Mobile User will immediately notify the administrator if the Mobile Device is lost or stolen. | Mobile Device is lost or stolen.]{.description} OE.PRECAUTION OE.PRECAUTION : The mobile device user exercises precautions to reduce the risk of | : [The mobile device user exercises precautions to reduce the risk of loss or theft of the Mobile Device. | loss or theft of the Mobile Device.]{.description} OE.DATA\_PROPER\_USER OE.DATA\_PROPER\_USER : Administrators take measures to ensure that mobile device users are | : [Administrators take measures to ensure that mobile device users are adequately vetted against malicious intent and are made aware of the adequately vetted against malicious intent and are made aware of the expectations for appropriate use of the device. | expectations for appropriate use of the device.]{.description} 4.3 Security Objectives Rationale {#SOR .indexable,h2 data-level="2"} 4.3 Security Objectives Rationale {#SOR .indexable,h2 data-level="2"} --------------------------------- --------------------------------- This section describes how the assumptions, threats, and organization | This section describes how the assumptions, threats, and organizational security policies map to the security objectives. security policies map to the security objectives. [Table [1]{.counter}]{#t-sec-obj-rat .ctr data-myid="t-sec-obj-rat" [Table [1]{.counter}]{#t-sec-obj-rat .ctr data-myid="t-sec-obj-rat" data-counter-type="ct-Table"}: Security Objectives Rationale data-counter-type="ct-Table"}: Security Objectives Rationale Threat, Assumption, or OSP Threat, Assumption, or OSP Security Objectives Security Objectives Rationale Rationale [T.NETWORK\_EAVESDROP](#T.NETWORK_EAVESDROP)\ | [T.NETWORK\_​EAVESDROP](#T.NETWORK_EAVESDROP) [O.PROTECTED\_COMMS](#O.PROTECTED_COMMS) | [O.PROTECTED\_​COMMS](#O.PROTECTED_COMMS) The threat [T.NETWORK\_EAVESDROP](#T.NETWORK_EAVESDROP) is countered by The threat [T.NETWORK\_EAVESDROP](#T.NETWORK_EAVESDROP) is countered by [O.PROTECTED\_COMMS](#O.PROTECTED_COMMS) as this provides the capability [O.PROTECTED\_COMMS](#O.PROTECTED_COMMS) as this provides the capability to communicate using one (or more) standard protocols as a means to to communicate using one (or more) standard protocols as a means to maintain the confidentiality of data that are transmitted outside of the maintain the confidentiality of data that are transmitted outside of the [TOE](#abbr_TOE). [TOE](#abbr_TOE). [O.CONFIG](#O.CONFIG) [O.CONFIG](#O.CONFIG) The threat [T.NETWORK\_EAVESDROP](#T.NETWORK_EAVESDROP) is countered by The threat [T.NETWORK\_EAVESDROP](#T.NETWORK_EAVESDROP) is countered by [O.CONFIG](#O.CONFIG) as this provides a secure configuration of the [O.CONFIG](#O.CONFIG) as this provides a secure configuration of the mobile device to protect data that it processes. mobile device to protect data that it processes. [O.AUTH](#O.AUTH) [O.AUTH](#O.AUTH) The threat [T.NETWORK\_EAVESDROP](#T.NETWORK_EAVESDROP) is countered by The threat [T.NETWORK\_EAVESDROP](#T.NETWORK_EAVESDROP) is countered by [O.AUTH](#O.AUTH) as this provides authentication of the endpoints of a [O.AUTH](#O.AUTH) as this provides authentication of the endpoints of a trusted communication path. trusted communication path. [T.NETWORK\_ATTACK](#T.NETWORK_ATTACK)\ | [T.NETWORK\_​ATTACK](#T.NETWORK_ATTACK) [O.PROTECTED\_COMMS](#O.PROTECTED_COMMS) | [O.PROTECTED\_​COMMS](#O.PROTECTED_COMMS) The threat [T.NETWORK\_ATTACK](#T.NETWORK_ATTACK) is countered by The threat [T.NETWORK\_ATTACK](#T.NETWORK_ATTACK) is countered by [O.PROTECTED\_COMMS](#O.PROTECTED_COMMS) as this provides the capability [O.PROTECTED\_COMMS](#O.PROTECTED_COMMS) as this provides the capability to communicate using one (or more) standard protocols as a means to to communicate using one (or more) standard protocols as a means to maintain the confidentiality of data that are transmitted outside of the maintain the confidentiality of data that are transmitted outside of the [TOE](#abbr_TOE). [TOE](#abbr_TOE). [O.CONFIG](#O.CONFIG) [O.CONFIG](#O.CONFIG) The threat [T.NETWORK\_ATTACK](#T.NETWORK_ATTACK) is countered by The threat [T.NETWORK\_ATTACK](#T.NETWORK_ATTACK) is countered by [O.CONFIG](#O.CONFIG) as this provides a secure configuration of the [O.CONFIG](#O.CONFIG) as this provides a secure configuration of the mobile device to protect data that it processes. mobile device to protect data that it processes. [O.AUTH](#O.AUTH) [O.AUTH](#O.AUTH) The threat [T.NETWORK\_ATTACK](#T.NETWORK_ATTACK) is countered by The threat [T.NETWORK\_ATTACK](#T.NETWORK_ATTACK) is countered by [O.AUTH](#O.AUTH) as this provides authentication of the endpoints of a [O.AUTH](#O.AUTH) as this provides authentication of the endpoints of a trusted communication path. trusted communication path. [T.PHYSICAL\_ACCESS](#T.PHYSICAL_ACCESS)\ | [T.PHYSICAL\_​ACCESS](#T.PHYSICAL_ACCESS) [O.STORAGE](#O.STORAGE) [O.STORAGE](#O.STORAGE) The threat [T.PHYSICAL\_ACCESS](#T.PHYSICAL_ACCESS) is countered by The threat [T.PHYSICAL\_ACCESS](#T.PHYSICAL_ACCESS) is countered by [O.STORAGE](#O.STORAGE) as this provides the capability to encrypt all [O.STORAGE](#O.STORAGE) as this provides the capability to encrypt all user and enterprise data and authentication keys to ensure the user and enterprise data and authentication keys to ensure the confidentiality of data that it stores. confidentiality of data that it stores. [O.AUTH](#O.AUTH) [O.AUTH](#O.AUTH) The threat [T.PHYSICAL\_ACCESS](#T.PHYSICAL_ACCESS) is countered by The threat [T.PHYSICAL\_ACCESS](#T.PHYSICAL_ACCESS) is countered by [O.AUTH](#O.AUTH) as this provides the capability to authenticate the [O.AUTH](#O.AUTH) as this provides the capability to authenticate the user prior to accessing protected functionality and data. user prior to accessing protected functionality and data. [T.MALICIOUS\_APP](#T.MALICIOUS_APP)\ | [T.MALICIOUS\_​APP](#T.MALICIOUS_APP) [O.PROTECTED\_COMMS](#O.PROTECTED_COMMS) | [O.PROTECTED\_​COMMS](#O.PROTECTED_COMMS) The threat [T.MALICIOUS\_APP](#T.MALICIOUS_APP) is countered by The threat [T.MALICIOUS\_APP](#T.MALICIOUS_APP) is countered by [O.PROTECTED\_COMMS](#O.PROTECTED_COMMS) as this provides the capability [O.PROTECTED\_COMMS](#O.PROTECTED_COMMS) as this provides the capability to communicate using one (or more) standard protocols as a means to to communicate using one (or more) standard protocols as a means to maintain the confidentiality of data that are transmitted outside of the maintain the confidentiality of data that are transmitted outside of the [TOE](#abbr_TOE). [TOE](#abbr_TOE). [O.CONFIG](#O.CONFIG) [O.CONFIG](#O.CONFIG) The threat [T.MALICIOUS\_APP](#T.MALICIOUS_APP) is countered by The threat [T.MALICIOUS\_APP](#T.MALICIOUS_APP) is countered by [O.CONFIG](#O.CONFIG) as this provides the capability to configure and [O.CONFIG](#O.CONFIG) as this provides the capability to configure and apply security policies to ensure the Mobile Device can protect user and apply security policies to ensure the Mobile Device can protect user and enterprise data that it may store or process. enterprise data that it may store or process. [O.AUTH](#O.AUTH) [O.AUTH](#O.AUTH) The threat [T.MALICIOUS\_APP](#T.MALICIOUS_APP) is countered by The threat [T.MALICIOUS\_APP](#T.MALICIOUS_APP) is countered by [O.AUTH](#O.AUTH) as this provides the capability to authenticate the [O.AUTH](#O.AUTH) as this provides the capability to authenticate the user and endpoints of a trusted path to ensure they are communicating user and endpoints of a trusted path to ensure they are communicating with an authorized entity with appropriate privileges. with an authorized entity with appropriate privileges. [O.INTEGRITY](#O.INTEGRITY) [O.INTEGRITY](#O.INTEGRITY) The threat [T.MALICIOUS\_APP](#T.MALICIOUS_APP) is countered by The threat [T.MALICIOUS\_APP](#T.MALICIOUS_APP) is countered by [O.INTEGRITY](#O.INTEGRITY) as this provides the capability to perform [O.INTEGRITY](#O.INTEGRITY) as this provides the capability to perform self-tests to ensure the integrity of critical functionality, self-tests to ensure the integrity of critical functionality, software/firmware and data has been maintained. software/firmware and data has been maintained. [O.PRIVACY](#O.PRIVACY) [O.PRIVACY](#O.PRIVACY) The threat [T.MALICIOUS\_APP](#T.MALICIOUS_APP) is countered by The threat [T.MALICIOUS\_APP](#T.MALICIOUS_APP) is countered by [O.PRIVACY](#O.PRIVACY) as this provides separation and privacy between [O.PRIVACY](#O.PRIVACY) as this provides separation and privacy between user activities. user activities. [T.PERSISTENT\_PRESENCE](#T.PERSISTENT_PRESENCE)\ | [T.PERSISTENT\_​PRESENCE](#T.PERSISTENT_PRESENCE) [O.INTEGRITY](#O.INTEGRITY) [O.INTEGRITY](#O.INTEGRITY) The threat [T.PERSISTENT\_PRESENCE](#T.PERSISTENT_PRESENCE) is countered The threat [T.PERSISTENT\_PRESENCE](#T.PERSISTENT_PRESENCE) is countered by [O.INTEGRITY](#O.INTEGRITY) as this provides the capability to by [O.INTEGRITY](#O.INTEGRITY) as this provides the capability to perform self-tests to ensure the integrity of critical functionality, perform self-tests to ensure the integrity of critical functionality, software/firmware and data has been maintained. software/firmware and data has been maintained. [O.PRIVACY](#O.PRIVACY) [O.PRIVACY](#O.PRIVACY) The threat [T.PERSISTENT\_PRESENCE](#T.PERSISTENT_PRESENCE) is countered The threat [T.PERSISTENT\_PRESENCE](#T.PERSISTENT_PRESENCE) is countered by [O.PRIVACY](#O.PRIVACY) as this provides separation and privacy by [O.PRIVACY](#O.PRIVACY) as this provides separation and privacy between user activities. between user activities. [A.CONFIG](#A.CONFIG)\ | [A.CONFIG](#A.CONFIG) [OE.CONFIG](#OE.CONFIG) [OE.CONFIG](#OE.CONFIG) The operational environment objective [OE.CONFIG](#OE.CONFIG) is The operational environment objective [OE.CONFIG](#OE.CONFIG) is realized through [A.CONFIG](#A.CONFIG). realized through [A.CONFIG](#A.CONFIG). [A.NOTIFY](#A.NOTIFY)\ | [A.NOTIFY](#A.NOTIFY) [OE.NOTIFY](#OE.NOTIFY) [OE.NOTIFY](#OE.NOTIFY) The operational environment objective [OE.NOTIFY](#OE.NOTIFY) is The operational environment objective [OE.NOTIFY](#OE.NOTIFY) is realized through [A.NOTIFY](#A.NOTIFY). realized through [A.NOTIFY](#A.NOTIFY). [A.PRECAUTION](#A.PRECAUTION)\ | [A.PRECAUTION](#A.PRECAUTION) [OE.PRECAUTION](#OE.PRECAUTION) [OE.PRECAUTION](#OE.PRECAUTION) The operational environment objective [OE.PRECAUTION](#OE.PRECAUTION) is The operational environment objective [OE.PRECAUTION](#OE.PRECAUTION) is realized through [A.PRECAUTION](#A.PRECAUTION). realized through [A.PRECAUTION](#A.PRECAUTION). [A.PROPER\_USER](#A.PROPER_USER)\ | [A.PROPER\_​USER](#A.PROPER_USER) [OE.DATA\_PROPER\_USER](#OE.DATA_PROPER_USER) | [OE.DATA\_​PROPER\_​USER](#OE.DATA_PROPER_USER) The operational environment objective The operational environment objective [OE.DATA\_PROPER\_USER](#OE.DATA_PROPER_USER) is realized through [OE.DATA\_PROPER\_USER](#OE.DATA_PROPER_USER) is realized through [A.PROPER\_USER](#A.PROPER_USER). [A.PROPER\_USER](#A.PROPER_USER). 5 Security Requirements {#sr .indexable data-level="1"} 5 Security Requirements {#sr .indexable data-level="1"} ----------------------- | ======================= This chapter describes the security requirements which have to be This chapter describes the security requirements which have to be fulfilled by the product under evaluation. Those requirements comprise fulfilled by the product under evaluation. Those requirements comprise functional components from Part 2 and assurance components from Part 3 functional components from Part 2 and assurance components from Part 3 of [\[CC\]](#bibCC). The following conventions are used for the of [\[CC\]](#bibCC). The following conventions are used for the completion of operations: completion of operations: - **Refinement** operation (denoted by **bold text** or - **Refinement** operation (denoted by **bold text** or ~~strikethrough text~~): is used to add details to a requirement | ~~strikethrough text~~): Is used to add details to a requirement (including replacing an assignment with a more restrictive (including replacing an assignment with a more restrictive selection) or to remove part of the requirement that is made selection) or to remove part of the requirement that is made irrelevant through the completion of another operation, and thus irrelevant through the completion of another operation, and thus further restricts a requirement. further restricts a requirement. - **Selection** (denoted by *italicized text*): is used to select one | - **Selection** (denoted by *italicized text*): Is used to select one or more options provided by the \[[CC](#abbr_CC)\] in stating a or more options provided by the \[[CC](#abbr_CC)\] in stating a requirement. requirement. - **Assignment** operation (denoted by [italicized - **Assignment** operation (denoted by [italicized text]{.assignable-content}): is used to assign a specific value to | text]{.assignable-content}): Is used to assign a specific value to an unspecified parameter, such as the length of a password. Showing an unspecified parameter, such as the length of a password. Showing the value in square brackets indicates assignment. the value in square brackets indicates assignment. - **Iteration** operation: is indicated by appending the | - **Iteration** operation: Is indicated by appending the [SFR](#abbr_SFR) name with a slash and unique identifier suggesting [SFR](#abbr_SFR) name with a slash and unique identifier suggesting the purpose of the operation, e.g. \"/EXAMPLE1.\" the purpose of the operation, e.g. \"/EXAMPLE1.\" 5.1 Security Functional Requirements {#sfr .indexable data-level="2"} 5.1 Security Functional Requirements {#sfr .indexable data-level="2"} ------------------------------------ ------------------------------------ ### 5.1.1 Class: Security Audit (FAU) {#fau .indexable data-level="3"} ### 5.1.1 Class: Security Audit (FAU) {#fau .indexable data-level="3"} ::: {#FAU_GEN.1 .comp} ::: {#FAU_GEN.1 .comp} #### FAU\_GEN.1 Audit Data Generation #### FAU\_GEN.1 Audit Data Generation ::: {.element} ::: {.element} ::: {#FAU_GEN.1.1 .reqid} ::: {#FAU_GEN.1.1 .reqid} [FAU\_GEN.1.1](#FAU_GEN.1.1){.abbr} [FAU\_GEN.1.1](#FAU_GEN.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall be able to generate an audit record of the The [TSF](#abbr_TSF) shall be able to generate an audit record of the following auditable events:\ following auditable events:\ 1. Start-up and shutdown of the audit functions 1. Start-up and shutdown of the audit functions 2. All auditable events for the \[[not selected]{.refinement}\] level 2. All auditable events for the \[[not selected]{.refinement}\] level of audit of audit 3. [All administrative actions]{.refinement} 3. [All administrative actions]{.refinement} 4. [Start-up and shutdown of the [OS](#abbr_OS)]{.refinement} 4. [Start-up and shutdown of the [OS](#abbr_OS)]{.refinement} 5. [Insertion or removal of removable media]{.refinement} 5. [Insertion or removal of removable media]{.refinement} 6. [Specifically defined auditable events in [Table 6. [Specifically defined auditable events in [Table [2]{.counter}](#manaudit){.manaudit-ref}]{.refinement} [2]{.counter}](#manaudit){.manaudit-ref}]{.refinement} 7. [\[**selection**: *Audit records reaching \[**assignment**: [integer | 7. [\[**selection**: [Audit records reaching \[**assignment**: [integer value less than 100]{.assignable-content}\] percentage of audit value less than 100]{.assignable-content}\] percentage of audit capacity*, *Specifically defined auditable events in [Table | capacity]{#_s_1 .selectable-content}, [Specifically defined [3]{.counter}](#objaudit){.objaudit-ref}*, *\[**assignment**: [other | auditable events in [Table auditable events derived from this Protection | [3]{.counter}](#objaudit){.objaudit-ref}]{#_s_2 Profile]{.assignable-content}\]*, *\[**assignment**: [no additional | .selectable-content}, [\[**assignment**: [other auditable events auditable events]{.assignable-content}\]*\]]{.refinement} | derived from this Protection Profile]{.assignable-content}\]]{#_s_3 > .selectable-content}, [\[**assignment**: [no additional auditable > events]{.assignable-content}\]]{#_s_4 .selectable-content} > \]]{.refinement} Requirement Requirement ::: ::: ::: ::: ::: ::: Auditable Events Auditable Events Additional Audit Record Contents Additional Audit Record Contents [FAU\_GEN.1](#FAU_GEN.1) [FAU\_GEN.1](#FAU_GEN.1) None. None. [FAU\_STG.1](#FAU_STG.1) [FAU\_STG.1](#FAU_STG.1) None. None. [FAU\_STG.4](#FAU_STG.4) [FAU\_STG.4](#FAU_STG.4) None. None. [FCS\_CKM\_EXT.1](#FCS_CKM_EXT.1) [FCS\_CKM\_EXT.1](#FCS_CKM_EXT.1) \[**selection**: *generation of a [REK](#abbr_REK)*, *None*\]. | \[**selection**: [generation of a [REK](#abbr_REK)]{#_s_5 > .selectable-content}, [None]{#_s_6 .selectable-content} \]. No additional information. No additional information. [FCS\_CKM\_EXT.2](#FCS_CKM_EXT.2) [FCS\_CKM\_EXT.2](#FCS_CKM_EXT.2) None. None. [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3) [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3) None. None. [FCS\_CKM\_EXT.4](#FCS_CKM_EXT.4) [FCS\_CKM\_EXT.4](#FCS_CKM_EXT.4) None. None. [FCS\_CKM\_EXT.5](#FCS_CKM_EXT.5) [FCS\_CKM\_EXT.5](#FCS_CKM_EXT.5) \[**selection**: *Failure of the wipe*, *None*\]. | \[**selection**: [Failure of the wipe]{#_s_7 .selectable-content}, > [None]{#_s_8 .selectable-content} \]. No additional information. No additional information. [FCS\_CKM\_EXT.6](#FCS_CKM_EXT.6) [FCS\_CKM\_EXT.6](#FCS_CKM_EXT.6) None. None. [FCS\_CKM.1](#FCS_CKM.1) [FCS\_CKM.1](#FCS_CKM.1) \[**selection**: *Failure of key generation activity for authentication | \[**selection**: [Failure of key generation activity for authentication keys*, *None*\]. | keys]{#_s_9 .selectable-content}, [None]{#_s_10 .selectable-content} \]. No additional information. No additional information. [FCS\_CKM.2/UNLOCKED](#FCS_CKM.2/UNLOCKED) [FCS\_CKM.2/UNLOCKED](#FCS_CKM.2/UNLOCKED) None. None. [FCS\_CKM.2/LOCKED](#FCS_CKM.2/LOCKED) [FCS\_CKM.2/LOCKED](#FCS_CKM.2/LOCKED) None. None. [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT) [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT) None. None. [FCS\_COP.1/HASH](#FCS_COP.1/HASH) [FCS\_COP.1/HASH](#FCS_COP.1/HASH) None. None. [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN) [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN) None. None. [FCS\_COP.1/KEYHMAC](#FCS_COP.1/KEYHMAC) [FCS\_COP.1/KEYHMAC](#FCS_COP.1/KEYHMAC) None. None. [FCS\_COP.1/CONDITION](#FCS_COP.1/CONDITION) [FCS\_COP.1/CONDITION](#FCS_COP.1/CONDITION) None. None. [FCS\_IV\_EXT.1](#FCS_IV_EXT.1) [FCS\_IV\_EXT.1](#FCS_IV_EXT.1) None. None. [FCS\_SRV\_EXT.1](#FCS_SRV_EXT.1) [FCS\_SRV\_EXT.1](#FCS_SRV_EXT.1) None. None. [FCS\_STG\_EXT.1](#FCS_STG_EXT.1) [FCS\_STG\_EXT.1](#FCS_STG_EXT.1) Import or destruction of key. Import or destruction of key. Identity of key. Role and identity of requestor. | Identity of key. Role and identity of requester. \[**selection**: *Exceptions to use and destruction rules*, *No other | \[**selection**: [Exceptions to use and destruction rules]{#_s_11 events*\] | .selectable-content}, [No other events]{#_s_12 .selectable-content} \] [FCS\_STG\_EXT.2](#FCS_STG_EXT.2) [FCS\_STG\_EXT.2](#FCS_STG_EXT.2) None. None. [FCS\_STG\_EXT.3](#FCS_STG_EXT.3) [FCS\_STG\_EXT.3](#FCS_STG_EXT.3) Failure to verify integrity of stored key. Failure to verify integrity of stored key. Identity of key being verified. Identity of key being verified. [FDP\_DAR\_EXT.1](#FDP_DAR_EXT.1) [FDP\_DAR\_EXT.1](#FDP_DAR_EXT.1) \[**selection**: *Failure to encrypt/decrypt data*, *None*\]. | \[**selection**: [Failure to encrypt/decrypt data]{#_s_13 > .selectable-content}, [None]{#_s_14 .selectable-content} \]. No additional information. No additional information. [FDP\_DAR\_EXT.2](#FDP_DAR_EXT.2) [FDP\_DAR\_EXT.2](#FDP_DAR_EXT.2) Failure to encrypt/decrypt data. Failure to encrypt/decrypt data. No additional information. No additional information. [FDP\_IFC\_EXT.1](#FDP_IFC_EXT.1) [FDP\_IFC\_EXT.1](#FDP_IFC_EXT.1) None. None. [FDP\_STG\_EXT.1](#FDP_STG_EXT.1) [FDP\_STG\_EXT.1](#FDP_STG_EXT.1) Addition or removal of certificate from Trust Anchor Database. Addition or removal of certificate from Trust Anchor Database. Subject name of certificate. Subject name of certificate. [FIA\_PMG\_EXT.1](#FIA_PMG_EXT.1) [FIA\_PMG\_EXT.1](#FIA_PMG_EXT.1) None. None. [FIA\_TRT\_EXT.1](#FIA_TRT_EXT.1) [FIA\_TRT\_EXT.1](#FIA_TRT_EXT.1) None. None. [FIA\_UAU\_EXT.1](#FIA_UAU_EXT.1) [FIA\_UAU\_EXT.1](#FIA_UAU_EXT.1) None. None. [FIA\_UAU.5](#FIA_UAU.5) [FIA\_UAU.5](#FIA_UAU.5) None. None. [FIA\_UAU.7](#FIA_UAU.7) [FIA\_UAU.7](#FIA_UAU.7) None. None. [FIA\_X509\_EXT.1](#FIA_X509_EXT.1) [FIA\_X509\_EXT.1](#FIA_X509_EXT.1) Failure to validate X.509v3 certificate. Failure to validate X.509v3 certificate. Reason for failure of validation. Reason for failure of validation. [FMT\_MOF\_EXT.1](#FMT_MOF_EXT.1) [FMT\_MOF\_EXT.1](#FMT_MOF_EXT.1) None. None. [FPT\_AEX\_EXT.1](#FPT_AEX_EXT.1) [FPT\_AEX\_EXT.1](#FPT_AEX_EXT.1) None. None. [FPT\_AEX\_EXT.2](#FPT_AEX_EXT.2) [FPT\_AEX\_EXT.2](#FPT_AEX_EXT.2) None. None. [FPT\_AEX\_EXT.3](#FPT_AEX_EXT.3) [FPT\_AEX\_EXT.3](#FPT_AEX_EXT.3) None. None. [FPT\_JTA\_EXT.1](#FPT_JTA_EXT.1) [FPT\_JTA\_EXT.1](#FPT_JTA_EXT.1) None. None. [FPT\_KST\_EXT.1](#FPT_KST_EXT.1) [FPT\_KST\_EXT.1](#FPT_KST_EXT.1) None. None. [FPT\_KST\_EXT.2](#FPT_KST_EXT.2) [FPT\_KST\_EXT.2](#FPT_KST_EXT.2) None. None. [FPT\_KST\_EXT.3](#FPT_KST_EXT.3) [FPT\_KST\_EXT.3](#FPT_KST_EXT.3) None. None. [FPT\_NOT\_EXT.1](#FPT_NOT_EXT.1) [FPT\_NOT\_EXT.1](#FPT_NOT_EXT.1) \[**selection**: *Measurement of [TSF](#abbr_TSF) software*, *None*\]. | \[**selection**: [Measurement of [TSF](#abbr_TSF) software]{#_s_15 > .selectable-content}, [None]{#_s_16 .selectable-content} \]. \[**selection**: *Integrity verification value*, *No additional | \[**selection**: [Integrity verification value]{#_s_17 information*\]. | .selectable-content}, [No additional information]{#_s_18 > .selectable-content} \]. [FPT\_STM.1](#FPT_STM.1) [FPT\_STM.1](#FPT_STM.1) None. None. [FPT\_TST\_EXT.1](#FPT_TST_EXT.1) [FPT\_TST\_EXT.1](#FPT_TST_EXT.1) Initiation of self-test. Initiation of self-test. \[**selection**: *Algorithm that caused the failure*, *none*\] | \[**selection**: [Algorithm that caused the failure]{#_s_19 > .selectable-content}, [none]{#_s_20 .selectable-content} \] Failure of self-test. Failure of self-test. [FPT\_TST\_EXT.2/PREKERNEL](#FPT_TST_EXT.2/PREKERNEL) [FPT\_TST\_EXT.2/PREKERNEL](#FPT_TST_EXT.2/PREKERNEL) Start-up of [TOE](#abbr_TOE). Start-up of [TOE](#abbr_TOE). No additional information. No additional information. \[**selection**: *Detected integrity violation*, *none*\] | \[**selection**: [Detected integrity violation]{#_s_21 > .selectable-content}, [none]{#_s_22 .selectable-content} \] \[**selection**: *The [TSF](#abbr_TSF) code file that caused the | \[**selection**: [The [TSF](#abbr_TSF) code file that caused the integrity violation*, *No additional information*\] | integrity violation]{#_s_23 .selectable-content}, [No additional > information]{#_s_24 .selectable-content} \] [FPT\_TUD\_EXT.1](#FPT_TUD_EXT.1) [FPT\_TUD\_EXT.1](#FPT_TUD_EXT.1) None. None. [FTA\_SSL\_EXT.1](#FTA_SSL_EXT.1) [FTA\_SSL\_EXT.1](#FTA_SSL_EXT.1) None. None. \ \ **[Table [2]{.counter}: Mandatory Auditable Events]{#manaudit .ctr **[Table [2]{.counter}: Mandatory Auditable Events]{#manaudit .ctr data-myid="manaudit" data-counter-type="ct-Table"}**\ data-myid="manaudit" data-counter-type="ct-Table"}**\ Requirement Requirement Auditable Events Auditable Events Additional Audit Record Contents Additional Audit Record Contents [FAU\_SAR.1](#FAU_SAR.1) [FAU\_SAR.1](#FAU_SAR.1) None. None. [FAU\_SEL.1](#FAU_SEL.1) [FAU\_SEL.1](#FAU_SEL.1) All modifications to the audit configuration that occur while the audit All modifications to the audit configuration that occur while the audit collection functions are operating. collection functions are operating. No additional information. No additional information. [FCS\_CKM\_EXT.7](#FCS_CKM_EXT.7) [FCS\_CKM\_EXT.7](#FCS_CKM_EXT.7) None. None. FCS\_DTLS\_EXT.1 ([TLS](#abbr_TLS) Package) FCS\_DTLS\_EXT.1 ([TLS](#abbr_TLS) Package) Failure of the certificate validity check. Failure of the certificate validity check. Issuer Name and Subject Name of certificate. Issuer Name and Subject Name of certificate. [FCS\_HTTPS\_EXT.1](#FCS_HTTPS_EXT.1) [FCS\_HTTPS\_EXT.1](#FCS_HTTPS_EXT.1) Failure of the certificate validity check. Failure of the certificate validity check. Issuer Name and Subject Name of certificate.\ Issuer Name and Subject Name of certificate.\ \[**selection**: *User's authorization decision*, *No additional | \[**selection**: [User's authorization decision]{#_s_25 information*\]. | .selectable-content}, [No additional information]{#_s_26 > .selectable-content} \]. [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) Failure of the randomization process. Failure of the randomization process. No additional information. No additional information. [FCS\_RBG\_EXT.2](#FCS_RBG_EXT.2) [FCS\_RBG\_EXT.2](#FCS_RBG_EXT.2) None. None. [FCS\_RBG\_EXT.3](#FCS_RBG_EXT.3) [FCS\_RBG\_EXT.3](#FCS_RBG_EXT.3) None. None. [FCS\_SRV\_EXT.2](#FCS_SRV_EXT.2) [FCS\_SRV\_EXT.2](#FCS_SRV_EXT.2) None. None. FCS\_TLSC\_EXT.1 ([TLS](#abbr_TLS) Package) FCS\_TLSC\_EXT.1 ([TLS](#abbr_TLS) Package) Establishment/termination of a [TLS](#abbr_TLS) session. Establishment/termination of a [TLS](#abbr_TLS) session. Non-TOE endpoint of connection. Non-TOE endpoint of connection. Failure to establish a [TLS](#abbr_TLS) session. Failure to establish a [TLS](#abbr_TLS) session. Reason for failure. Reason for failure. Failure to verify presented identifier. Failure to verify presented identifier. Presented identifier and reference identifier. Presented identifier and reference identifier. FCS\_TLSC\_EXT.2 ([TLS](#abbr_TLS) Package) FCS\_TLSC\_EXT.2 ([TLS](#abbr_TLS) Package) None. None. FCS\_TLSC\_EXT.3 ([TLS](#abbr_TLS) Package) FCS\_TLSC\_EXT.3 ([TLS](#abbr_TLS) Package) None. None. [FDP\_ACF\_EXT.1](#FDP_ACF_EXT.1) [FDP\_ACF\_EXT.1](#FDP_ACF_EXT.1) None. None. [FDP\_ACF\_EXT.2](#FDP_ACF_EXT.2) [FDP\_ACF\_EXT.2](#FDP_ACF_EXT.2) None. None. [FDP\_ACF\_EXT.3](#FDP_ACF_EXT.3) [FDP\_ACF\_EXT.3](#FDP_ACF_EXT.3) None. None. [FDP\_BCK\_EXT.1](#FDP_BCK_EXT.1) [FDP\_BCK\_EXT.1](#FDP_BCK_EXT.1) None. None. [FDP\_PBA\_EXT.1](#FDP_PBA_EXT.1) [FDP\_PBA\_EXT.1](#FDP_PBA_EXT.1) None. None. [FDP\_UPC\_EXT.1/APPS](#FDP_UPC_EXT.1/APPS) [FDP\_UPC\_EXT.1/APPS](#FDP_UPC_EXT.1/APPS) Application initiation of trusted channel. Application initiation of trusted channel. Name of application. Trusted channel protocol. Non-TOE endpoint of Name of application. Trusted channel protocol. Non-TOE endpoint of connection. connection. [FDP\_UPC\_EXT.1/BLUETOOTH](#FDP_UPC_EXT.1/BLUETOOTH) [FDP\_UPC\_EXT.1/BLUETOOTH](#FDP_UPC_EXT.1/BLUETOOTH) Application initiation of trusted channel. Application initiation of trusted channel. Name of application. Trusted channel protocol. Non-TOE endpoint of Name of application. Trusted channel protocol. Non-TOE endpoint of connection. connection. [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1) [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1) Excess of authentication failure limit. Excess of authentication failure limit. Authentication factor used. Authentication factor used. [FIA\_BMG\_EXT.1](#FIA_BMG_EXT.1) [FIA\_BMG\_EXT.1](#FIA_BMG_EXT.1) None. None. [FIA\_BMG\_EXT.2](#FIA_BMG_EXT.2) [FIA\_BMG\_EXT.2](#FIA_BMG_EXT.2) None. None. [FIA\_BMG\_EXT.3](#FIA_BMG_EXT.3) [FIA\_BMG\_EXT.3](#FIA_BMG_EXT.3) None. None. [FIA\_BMG\_EXT.4](#FIA_BMG_EXT.4) [FIA\_BMG\_EXT.4](#FIA_BMG_EXT.4) None. None. [FIA\_BMG\_EXT.5](#FIA_BMG_EXT.5) [FIA\_BMG\_EXT.5](#FIA_BMG_EXT.5) None. None. [FIA\_BMG\_EXT.6](#FIA_BMG_EXT.6) [FIA\_BMG\_EXT.6](#FIA_BMG_EXT.6) None. None. [FIA\_UAU\_EXT.2](#FIA_UAU_EXT.2) [FIA\_UAU\_EXT.2](#FIA_UAU_EXT.2) Action performed before authentication. Action performed before authentication. No additional information. No additional information. [FIA\_UAU.6](#FIA_UAU.6) [FIA\_UAU.6](#FIA_UAU.6) User changes Password Authentication Factor. User changes Password Authentication Factor. No additional information. No additional information. [FIA\_UAU\_EXT.4](#FIA_UAU_EXT.4) [FIA\_UAU\_EXT.4](#FIA_UAU_EXT.4) None. None. [FIA\_X509\_EXT.2](#FIA_X509_EXT.2) [FIA\_X509\_EXT.2](#FIA_X509_EXT.2) Failure to establish connection to determine revocation status. Failure to establish connection to determine revocation status. No additional information. No additional information. [FIA\_X509\_EXT.3](#FIA_X509_EXT.3) [FIA\_X509\_EXT.3](#FIA_X509_EXT.3) None. None. [FIA\_X509\_EXT.4](#FIA_X509_EXT.4) [FIA\_X509\_EXT.4](#FIA_X509_EXT.4) Generation of Certificate Enrollment Request. Generation of Certificate Enrollment Request. Issuer and Subject name of [EST](#abbr_EST) Server. Method of Issuer and Subject name of [EST](#abbr_EST) Server. Method of authentication. Issuer and Subject name of certificate used to authentication. Issuer and Subject name of certificate used to authenticate. Content of Certificate Request Message. authenticate. Content of Certificate Request Message. Success or failure of enrollment. Success or failure of enrollment. Issuer and Subject name of added certificate or reason for failure. Issuer and Subject name of added certificate or reason for failure. Update of [EST](#abbr_EST) Trust Anchor Database Update of [EST](#abbr_EST) Trust Anchor Database Subject name of added Root [CA](#abbr_CA). Subject name of added Root [CA](#abbr_CA). [FIA\_X509\_EXT.5](#FIA_X509_EXT.5) [FIA\_X509\_EXT.5](#FIA_X509_EXT.5) None. None. [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) \[**selection**: *Initiation of policy update*, *none*\]. | \[**selection**: [Initiation of policy update]{#_s_27 > .selectable-content}, [none]{#_s_28 .selectable-content} \]. \[**selection**: *Policy name*, *none*\]. | \[**selection**: [Policy name]{#_s_29 .selectable-content}, > [none]{#_s_30 .selectable-content} \]. \[**selection**: *Change of settings*, *none*\] | \[**selection**: [Change of settings]{#_s_31 .selectable-content}, > [none]{#_s_32 .selectable-content} \] \[**selection**: *Role of user that changed setting*, *Value of new | \[**selection**: [Role of user that changed setting]{#_s_33 setting*, *none*\]. | .selectable-content}, [Value of new setting]{#_s_34 > .selectable-content}, [none]{#_s_35 .selectable-content} \]. \[**selection**: *Success or failure of function*, *none*\] | \[**selection**: [Success or failure of function]{#_s_36 > .selectable-content}, [none]{#_s_37 .selectable-content} \] \[**selection**: *Role of user that performed function*, *Function | \[**selection**: [Role of user that performed function]{#_s_38 performed*, *Reason for failure, none*\]. | .selectable-content}, [Function performed]{#_s_39 .selectable-content}, > [Reason for failure, none]{#_s_40 .selectable-content} \]. Initiation of software update. Initiation of software update. Version of update. Version of update. Initiation of application installation or update. Initiation of application installation or update. Name and version of application. Name and version of application. [FMT\_SMF\_EXT.2](#FMT_SMF_EXT.2) [FMT\_SMF\_EXT.2](#FMT_SMF_EXT.2) \[**selection**: *Unenrollment*, *Initiation of unenrollment*, *none*\] | \[**selection**: [Unenrollment]{#_s_41 .selectable-content}, [Initiation | of unenrollment]{#_s_42 .selectable-content}, [none]{#_s_43 \[**selection**: *Identity of administrator Remediation action | .selectable-content} \] performed*, *failure of accepting command to unenroll*, *none*\] | > \[**selection**: [Identity of administrator Remediation action > performed]{#_s_44 .selectable-content}, [failure of accepting command to > unenroll]{#_s_45 .selectable-content}, [none]{#_s_46 > .selectable-content} \] [FMT\_SMF\_EXT.3](#FMT_SMF_EXT.3) [FMT\_SMF\_EXT.3](#FMT_SMF_EXT.3) None. None. [FPT\_AEX\_EXT.4](#FPT_AEX_EXT.4) [FPT\_AEX\_EXT.4](#FPT_AEX_EXT.4) None. None. [FPT\_AEX\_EXT.5](#FPT_AEX_EXT.5) [FPT\_AEX\_EXT.5](#FPT_AEX_EXT.5) None. None. [FPT\_AEX\_EXT.6](#FPT_AEX_EXT.6) [FPT\_AEX\_EXT.6](#FPT_AEX_EXT.6) None. None. [FPT\_AEX\_EXT.7](#FPT_AEX_EXT.7) [FPT\_AEX\_EXT.7](#FPT_AEX_EXT.7) None. None. [FPT\_BBD\_EXT.1](#FPT_BBD_EXT.1) [FPT\_BBD\_EXT.1](#FPT_BBD_EXT.1) None. None. [FPT\_BLT\_EXT.1](#FPT_BLT_EXT.1) [FPT\_BLT\_EXT.1](#FPT_BLT_EXT.1) None. None. [FPT\_NOT\_EXT.2](#FPT_NOT_EXT.2) [FPT\_NOT\_EXT.2](#FPT_NOT_EXT.2) None. None. [FPT\_TST\_EXT.2/POSTKERNEL](#FPT_TST_EXT.2/POSTKERNEL) [FPT\_TST\_EXT.2/POSTKERNEL](#FPT_TST_EXT.2/POSTKERNEL) \[**selection**: *Detected integrity violation*, *none*\] | \[**selection**: [Detected integrity violation]{#_s_47 > .selectable-content}, [none]{#_s_48 .selectable-content} \] \[**selection**: *The [TSF](#abbr_TSF) code file that caused the | \[**selection**: [The [TSF](#abbr_TSF) code file that caused the integrity violation*, *No additional information*\] | integrity violation]{#_s_49 .selectable-content}, [No additional > information]{#_s_50 .selectable-content} \] [FPT\_TST\_EXT.3](#FPT_TST_EXT.3) [FPT\_TST\_EXT.3](#FPT_TST_EXT.3) None. None. [FPT\_TUD\_EXT.2](#FPT_TUD_EXT.2) [FPT\_TUD\_EXT.2](#FPT_TUD_EXT.2) Success or failure of signature verification for software updates. Success or failure of signature verification for software updates. No additional information. No additional information. [FPT\_TUD\_EXT.3](#FPT_TUD_EXT.3) [FPT\_TUD\_EXT.3](#FPT_TUD_EXT.3) Success or failure of signature verification for applications. Success or failure of signature verification for applications. No additional information. No additional information. [FPT\_TUD\_EXT.4](#FPT_TUD_EXT.4) [FPT\_TUD\_EXT.4](#FPT_TUD_EXT.4) None. None. [FPT\_TUD\_EXT.5](#FPT_TUD_EXT.5) [FPT\_TUD\_EXT.5](#FPT_TUD_EXT.5) None. None. [FPT\_TUD\_EXT.6](#FPT_TUD_EXT.6) [FPT\_TUD\_EXT.6](#FPT_TUD_EXT.6) None. None. [FTA\_TAB.1](#FTA_TAB.1) [FTA\_TAB.1](#FTA_TAB.1) None. None. [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) Initiation and termination of trusted channel. Initiation and termination of trusted channel. Trusted channel protocol. Non-TOE endpoint of connection. Trusted channel protocol. Non-TOE endpoint of connection. \ \ **[Table [3]{.counter}: Additional Auditable Events]{#objaudit .ctr **[Table [3]{.counter}: Additional Auditable Events]{#objaudit .ctr data-myid="objaudit" data-counter-type="ct-Table"}**\ data-myid="objaudit" data-counter-type="ct-Table"}**\ ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ Administrator actions are defined as [Application Note: ]{.note-header}[ Administrator actions are defined as functions labeled as mandatory for [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) functions labeled as mandatory for [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) (i.e. 'M-MM' in [Table [7]{.counter}](#fmt_smf){.fmt_smf-ref}). If the (i.e. 'M-MM' in [Table [7]{.counter}](#fmt_smf){.fmt_smf-ref}). If the [TSF](#abbr_TSF) does not support removable media, number 4 is [TSF](#abbr_TSF) does not support removable media, number 4 is implicitly met.\ implicitly met.\ \ \ The [TSF](#abbr_TSF) must generate an audit record for all events The [TSF](#abbr_TSF) must generate an audit record for all events contained in [Table [2]{.counter}](#manaudit){.manaudit-ref}. Generating contained in [Table [2]{.counter}](#manaudit){.manaudit-ref}. Generating audit records for events in [Table audit records for events in [Table [3]{.counter}](#objaudit){.objaudit-ref} is currently objective. It is [3]{.counter}](#objaudit){.objaudit-ref} is currently objective. It is acceptable to include individual SFRs from [Table | acceptable to include individual [SFRs](#abbr_SFR) from [Table [3]{.counter}](#objaudit){.objaudit-ref} in the [ST](#abbr_ST), without [3]{.counter}](#objaudit){.objaudit-ref} in the [ST](#abbr_ST), without including the entirety of [Table including the entirety of [Table [3]{.counter}](#objaudit){.objaudit-ref}.\ [3]{.counter}](#objaudit){.objaudit-ref}.\ \ \ **[Table [2]{.counter}](#manaudit){.manaudit-ref} Application Note:**\ **[Table [2]{.counter}](#manaudit){.manaudit-ref} Application Note:**\ [FPT\_TST\_EXT.1](#FPT_TST_EXT.1) -- Audit of self-tests is required [FPT\_TST\_EXT.1](#FPT_TST_EXT.1) -- Audit of self-tests is required only at initial start-up. Since the [TOE](#abbr_TOE) \"transitions to only at initial start-up. Since the [TOE](#abbr_TOE) \"transitions to non-operational mode\" upon failure of a self-test, per non-operational mode\" upon failure of a self-test, per [FPT\_NOT\_EXT.1](#FPT_NOT_EXT.1), this is considered equivalent [FPT\_NOT\_EXT.1](#FPT_NOT_EXT.1), this is considered equivalent evidence to an audit record for the failure of a self-test.\ evidence to an audit record for the failure of a self-test.\ \ \ [FDP\_DAR\_EXT.1](#FDP_DAR_EXT.1) - \"None\" must be selected, if the [FDP\_DAR\_EXT.1](#FDP_DAR_EXT.1) - \"None\" must be selected, if the [TOE](#abbr_TOE) utilizes whole volume encryption for protected memory, [TOE](#abbr_TOE) utilizes whole volume encryption for protected memory, since it is not feasible to audit when the encryption/decryption fails. since it is not feasible to audit when the encryption/decryption fails. If the [TOE](#abbr_TOE) utilizes file-based encryption for protected If the [TOE](#abbr_TOE) utilizes file-based encryption for protected data and audits when this encryption/decryption fails, then that data and audits when this encryption/decryption fails, then that auditable event shall be selected.\ auditable event shall be selected.\ \ \ **[Table [3]{.counter}](#objaudit){.objaudit-ref} Application Note:**\ **[Table [3]{.counter}](#objaudit){.objaudit-ref} Application Note:**\ If the audit event for [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) is included in If the audit event for [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) is included in the [ST](#abbr_ST), it is acceptable for the initiation of the software the [ST](#abbr_ST), it is acceptable for the initiation of the software update to be audited without indicating the outcome (success or failure) update to be audited without indicating the outcome (success or failure) of the update.\ of the update.\ ]{.note} ]{.note} ::: ::: ::: {.element} ::: {.element} ::: {#FAU_GEN.1.2 .reqid} ::: {#FAU_GEN.1.2 .reqid} [FAU\_GEN.1.2](#FAU_GEN.1.2){.abbr} [FAU\_GEN.1.2](#FAU_GEN.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall record within each audit record at least the The [TSF](#abbr_TSF) shall record within each audit record at least the following information: following information: 1. Date and time of the event 1. Date and time of the event 2. Type of event 2. Type of event 3. Subject identity 3. Subject identity 4. The outcome (success or failure) of the event 4. The outcome (success or failure) of the event 5. Additional information in [Table 5. Additional information in [Table [2]{.counter}](#manaudit){.manaudit-ref} [2]{.counter}](#manaudit){.manaudit-ref} 6. \[**selection**: *Additional information in [Table | 6. \[**selection**: [Additional information in [Table [3]{.counter}](#objaudit){.objaudit-ref}*, *no additional | [3]{.counter}](#objaudit){.objaudit-ref}]{#_s_51 information*\] | .selectable-content}, [ no additional information]{#_s_52 > .selectable-content} \] ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The subject identity is usually the [Application Note: ]{.note-header}[ The subject identity is usually the process name/ID. The event type is often indicated by a severity level, process name/ID. The event type is often indicated by a severity level, for example, 'info', 'warning', or 'error'.\ for example, 'info', 'warning', or 'error'.\ \ \ If \"no additional auditable events\" is selected in the second If \"no additional auditable events\" is selected in the second selection of [FAU\_GEN.1.1](#FAU_GEN.1.1), then \"no additional selection of [FAU\_GEN.1.1](#FAU_GEN.1.1), then \"no additional information\" must be selected.\ information\" must be selected.\ \ \ For each audit event selected from [Table For each audit event selected from [Table [3]{.counter}](#objaudit){.objaudit-ref} in [FAU\_GEN.1.1](#FAU_GEN.1.1) [3]{.counter}](#objaudit){.objaudit-ref} in [FAU\_GEN.1.1](#FAU_GEN.1.1) if additional information is required to be recorded within the audit if additional information is required to be recorded within the audit record, it should be included in this selection. ]{.note} record, it should be included in this selection. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FAU\_GEN.1](#FAU_GEN.1):\ | ::: {.component-activity-header} > [FAU\_GEN.1](#FAU_GEN.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall check the [TSS](#abbr_TSS) and ensure that it lists The evaluator shall check the [TSS](#abbr_TSS) and ensure that it lists all of the auditable events and provides a format for audit records. all of the auditable events and provides a format for audit records. Each audit record format type must be covered, along with a brief Each audit record format type must be covered, along with a brief description of each field. The evaluator shall check to make sure that description of each field. The evaluator shall check to make sure that every audit event type mandated by the [PP](#abbr_PP) is described and every audit event type mandated by the [PP](#abbr_PP) is described and that the description of the fields contains the information required in that the description of the fields contains the information required in [FAU\_GEN.1.2](#FAU_GEN.1.2).\ [FAU\_GEN.1.2](#FAU_GEN.1.2).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall also make a determination of the administrative The evaluator shall also make a determination of the administrative actions that are relevant in the context of this [PP](#abbr_PP) actions that are relevant in the context of this [PP](#abbr_PP) including those listed in the Management section. The evaluator shall including those listed in the Management section. The evaluator shall examine the administrative guide and make a determination of which examine the administrative guide and make a determination of which administrative commands are related to the configuration (including administrative commands are related to the configuration (including enabling or disabling) of the mechanisms implemented in the enabling or disabling) of the mechanisms implemented in the [TOE](#abbr_TOE) that are necessary to enforce the requirements [TOE](#abbr_TOE) that are necessary to enforce the requirements specified in the [PP](#abbr_PP). The evaluator shall document the specified in the [PP](#abbr_PP). The evaluator shall document the methodology or approach taken while determining which actions in the methodology or approach taken while determining which actions in the administrative guide are security relevant with respect to this administrative guide are security relevant with respect to this [PP](#abbr_PP). The evaluator may perform this activity as part of the [PP](#abbr_PP). The evaluator may perform this activity as part of the activities associated with ensuring the AGD\_OPE guidance satisfies the activities associated with ensuring the AGD\_OPE guidance satisfies the requirements.\ requirements.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluator shall test the [TOE](#abbr_TOE)'s ability to correctly The evaluator shall test the [TOE](#abbr_TOE)'s ability to correctly generate audit records by having the [TOE](#abbr_TOE) generate audit generate audit records by having the [TOE](#abbr_TOE) generate audit records for the events listed in the provided table and administrative records for the events listed in the provided table and administrative actions. This should include all instances of an event. The evaluator actions. This should include all instances of an event. The evaluator shall test that audit records are generated for the establishment and shall test that audit records are generated for the establishment and termination of a channel for each of the cryptographic protocols termination of a channel for each of the cryptographic protocols contained in the [ST](#abbr_ST). For administrative actions, the contained in the [ST](#abbr_ST). For administrative actions, the evaluator shall test that each action determined by the evaluator above evaluator shall test that each action determined by the evaluator above to be security relevant in the context of this [PP](#abbr_PP) is to be security relevant in the context of this [PP](#abbr_PP) is auditable. When verifying the test results, the evaluator shall ensure auditable. When verifying the test results, the evaluator shall ensure the audit records generated during testing match the format specified in the audit records generated during testing match the format specified in the administrative guide, and that the fields specified in the administrative guide, and that the fields specified in [FAU\_GEN.1.2](#FAU_GEN.1.2) are contained in each audit record.\ [FAU\_GEN.1.2](#FAU_GEN.1.2) are contained in each audit record.\ \ \ Note that the testing here can be accomplished in conjunction with the Note that the testing here can be accomplished in conjunction with the testing of the security mechanisms directly. For example, testing testing of the security mechanisms directly. For example, testing performed to ensure that the administrative guidance provided is correct performed to ensure that the administrative guidance provided is correct verifies that [AGD\_OPE.1](#AGD_OPE.1) is satisfied and should address verifies that [AGD\_OPE.1](#AGD_OPE.1) is satisfied and should address the invocation of the administrative actions that are needed to verify the invocation of the administrative actions that are needed to verify the audit records are generated as expected.\ the audit records are generated as expected.\ \ \ \ < ::: ::: ::: ::: ::: ::: ::: {#FAU_STG.1 .comp} ::: {#FAU_STG.1 .comp} #### FAU\_STG.1 Audit Storage Protection #### FAU\_STG.1 Audit Storage Protection ::: {.element} ::: {.element} ::: {#FAU_STG.1.1 .reqid} ::: {#FAU_STG.1.1 .reqid} [FAU\_STG.1.1](#FAU_STG.1.1){.abbr} [FAU\_STG.1.1](#FAU_STG.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall protect the stored audit records in the audit The [TSF](#abbr_TSF) shall protect the stored audit records in the audit trail from unauthorized deletion. trail from unauthorized deletion. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FAU_STG.1.2 .reqid} ::: {#FAU_STG.1.2 .reqid} [FAU\_STG.1.2](#FAU_STG.1.2){.abbr} [FAU\_STG.1.2](#FAU_STG.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall be able to [prevent]{.refinement} The [TSF](#abbr_TSF) shall be able to [prevent]{.refinement} unauthorized modifications to the stored audit records in the audit unauthorized modifications to the stored audit records in the audit trail. trail. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FAU\_STG.1](#FAU_STG.1):\ | ::: {.component-activity-header} > [FAU\_STG.1](#FAU_STG.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure that the [TSS](#abbr_TSS) lists the location The evaluator shall ensure that the [TSS](#abbr_TSS) lists the location of all logs and the access controls of those files such that of all logs and the access controls of those files such that unauthorized modification and deletion are prevented.\ unauthorized modification and deletion are prevented.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: - **Test 1:** The evaluator shall attempt to delete the audit trail in | ::: {.ea} a manner that the access controls should prevent (as an unauthorized | []{.testlist-} user) and shall verify that the attempt fails. < - **Test 2:** The evaluator shall attempt to modify the audit trail in < a manner that the access controls should prevent (as an unauthorized < application) and shall verify that the attempt fails. < \ | - [Test 1[](#_t_3){.definition}]{#_t_3}: The evaluator shall attempt > to delete the audit trail in a manner that the access controls > should prevent (as an unauthorized user) and shall verify that the > attempt fails. > - [Test 2[](#_t_4){.definition}]{#_t_4}: The evaluator shall attempt > to modify the audit trail in a manner that the access controls > should prevent (as an unauthorized application) and shall verify > that the attempt fails. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FAU_STG.4 .comp} ::: {#FAU_STG.4 .comp} #### FAU\_STG.4 Prevention of Audit Data Loss #### FAU\_STG.4 Prevention of Audit Data Loss ::: {.element} ::: {.element} ::: {#FAU_STG.4.1 .reqid} ::: {#FAU_STG.4.1 .reqid} [FAU\_STG.4.1](#FAU_STG.4.1){.abbr} [FAU\_STG.4.1](#FAU_STG.4.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall overwrite the oldest stored audit records if The [TSF](#abbr_TSF) shall overwrite the oldest stored audit records if the audit trail is full. the audit trail is full. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FAU\_STG.4](#FAU_STG.4):\ | ::: {.component-activity-header} > [FAU\_STG.4](#FAU_STG.4) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall examine the [TSS](#abbr_TSS) to ensure that it The evaluator shall examine the [TSS](#abbr_TSS) to ensure that it describes the size limits on the audit records, the detection of a full describes the size limits on the audit records, the detection of a full audit trail, and the action(s) taken by the [TSF](#abbr_TSF) when the audit trail, and the action(s) taken by the [TSF](#abbr_TSF) when the audit trail is full. The evaluator shall ensure that the action(s) audit trail is full. The evaluator shall ensure that the action(s) results in the deletion or overwrite of the oldest stored record.\ results in the deletion or overwrite of the oldest stored record.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ### 5.1.2 Class: Cryptographic Support (FCS) {#fcs .indexable data-level="3"} ### 5.1.2 Class: Cryptographic Support (FCS) {#fcs .indexable data-level="3"} This section describes how keys are generated, derived, combined, This section describes how keys are generated, derived, combined, released and destroyed. There are two major types of keys: DEKs and | released and destroyed. There are two major types of keys: KEKs. (A [REK](#abbr_REK) is considered a [KEK](#abbr_KEK).) DEKs are | [DEKs](#abbr_DEK) and KEKs. (A [REK](#abbr_REK) is considered a used to protect data (as in the [DAR](#abbr_DAR) protection described in | [KEK](#abbr_KEK).) [DEKs](#abbr_DEK) are used to protect data (as in the > [DAR](#abbr_DAR) protection described in [FDP\_DAR\_EXT.1](#FDP_DAR_EXT.1) and [FDP\_DAR\_EXT.1](#FDP_DAR_EXT.1) and [FDP\_DAR\_EXT.2](#FDP_DAR_EXT.2)). KEKs are used to protect other keys [FDP\_DAR\_EXT.2](#FDP_DAR_EXT.2)). KEKs are used to protect other keys -- DEKs, other KEKs, and other types of keys stored by the user or | -- [DEKs](#abbr_DEK), other KEKs, and other types of keys stored by the applications. The following diagram shows an example key hierarchy to | user or applications. The following diagram shows an example key illustrate the concepts of this profile. This example is not meant as an | hierarchy to illustrate the concepts of this profile. This example is approved design, but [ST](#abbr_ST) authors will be expected to provide | not meant as an approved design, but [ST](#abbr_ST) authors will be a diagram illustrating their key hierarchy in order to demonstrate that | expected to provide a diagram illustrating their key hierarchy in order they meet the requirements of this profile. Please note if a | to demonstrate that they meet the requirements of this profile. Please [BAF](#abbr_BAF) is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), the | note if a [BAF](#abbr_BAF) is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), [BAF](#abbr_BAF) shall be illustrated in the key hierarchy diagram, to | the [BAF](#abbr_BAF) shall be illustrated in the key hierarchy diagram, include a description of when and how the [BAF](#abbr_BAF) is used to | to include a description of when and how the [BAF](#abbr_BAF) is used to release keys. If \"hybrid\" is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), release keys. If \"hybrid\" is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), meaning that a PIN or password must be used in conjunction with the meaning that a PIN or password must be used in conjunction with the [BAF](#abbr_BAF) this interaction shall be included.\ [BAF](#abbr_BAF) this interaction shall be included.\ ::: {#figure-Keys .figure} ::: {#figure-Keys .figure} ![](images/figure3.jpg){#Keys}\ ![](images/figure3.jpg){#Keys}\ [Figure [3]{.counter}]{.ctr data-myid="Keys" [Figure [3]{.counter}]{.ctr data-myid="Keys" data-counter-type="ct-figure"}: An Illustrative Key Hierarchy data-counter-type="ct-figure"}: An Illustrative Key Hierarchy ::: ::: ::: {#FCS_CKM.1 .comp} ::: {#FCS_CKM.1 .comp} #### FCS\_CKM.1 Cryptographic Key Generation #### FCS\_CKM.1 Cryptographic Key Generation ::: {.element} ::: {.element} ::: {#FCS_CKM.1.1 .reqid} ::: {#FCS_CKM.1.1 .reqid} [FCS\_CKM.1.1](#FCS_CKM.1.1){.abbr} [FCS\_CKM.1.1](#FCS_CKM.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall generate [asymmetric]{.refinement} The [TSF](#abbr_TSF) shall generate [asymmetric]{.refinement} cryptographic keys in accordance with a specified cryptographic key cryptographic keys in accordance with a specified cryptographic key generation algorithm \[**selection**: generation algorithm \[**selection**: - *[[RSA](#abbr_RSA) schemes using]{.refinement} cryptographic key | - [[[RSA](#abbr_RSA) schemes using]{.refinement} cryptographic key sizes of [2048-bit or greater]{.refinement} that meet sizes of [2048-bit or greater]{.refinement} that meet [[FIPS](#abbr_FIPS) PUB 186-4, \"Digital Signature Standard (DSS)\", [[FIPS](#abbr_FIPS) PUB 186-4, \"Digital Signature Standard (DSS)\", Appendix B.3]{.refinement}*, | Appendix B.3]{.refinement}]{#_s_57 .selectable-content} - *[ECC schemes using ]{.refinement}\[**selection**:* | - [[ECC schemes using ]{.refinement}\[**selection**: ]{#_s_58 - *[\"[NIST](#abbr_NIST) curves\" P-384 and | .selectable-content} ]{.refinement}\[**selection**: *[P-256]{.refinement}*, | - [[\"[NIST](#abbr_NIST) curves\" P-384 and *[P-521]{.refinement}*, *[no other curves]{.refinement}*\] that | ]{.refinement}\[**selection**: [[P-256]{.refinement}]{#_s_60 meet the following: [[FIPS](#abbr_FIPS) PUB 186-4, \"Digital | .selectable-content}, [[P-521]{.refinement}]{#_s_61 Signature Standard (DSS)\", Appendix B.4]{.refinement}*, | .selectable-content}, [[no other curves]{.refinement}]{#_s_62 - *[Curve25519 schemes that meet the following: RFC | .selectable-content} \] that meet the following: 7748]{.refinement}* | [[FIPS](#abbr_FIPS) PUB 186-4, \"Digital Signature Standard | (DSS)\", Appendix B.4]{.refinement}]{#_s_59 .selectable-content} \] , | - [[Curve25519 schemes that meet the following: RFC - *[FFC schemes using ]{.refinement}\[**selection**:* | 7748]{.refinement}]{#_s_63 .selectable-content} - *cryptographic key sizes of [2048-bit or greater]{.refinement} | > \] > - [[[FFC](#abbr_FFC) schemes using ]{.refinement}\[**selection**: > ]{#_s_64 .selectable-content} > - [cryptographic key sizes of [2048-bit or greater]{.refinement} that meet the following: [[FIPS](#abbr_FIPS) PUB 186-4, that meet the following: [[FIPS](#abbr_FIPS) PUB 186-4, \"Digital Signature Standard (DSS)\", Appendix \"Digital Signature Standard (DSS)\", Appendix B.1]{.refinement}*, | B.1]{.refinement}]{#_s_65 .selectable-content} - *[Diffie-Hellman group 14 ]{.refinement}that meet the | - [[Diffie-Hellman group 14 ]{.refinement}that meet the following:[ RFC3526]{.refinement}*, | following:[ RFC3526]{.refinement}]{#_s_66 .selectable-content} - *[\"safe-prime\" groups]{.refinement} that meet the following:[ | - [[\"safe-prime\" groups]{.refinement} that meet the following:[ \'[NIST](#abbr_NIST) Special Publication 800-56A Revision 3, \'[NIST](#abbr_NIST) Special Publication 800-56A Revision 3, \"Recommendation for Pair-Wise Key Establishment Schemes Using \"Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography\"\']{.refinement}* | Discrete Logarithm Cryptography\"\']{.refinement}]{#_s_67 > .selectable-content} \] \] \]. \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The [ST](#abbr_ST) author must [Application Note: ]{.note-header}[ The [ST](#abbr_ST) author must select all key generation schemes used for key establishment and entity select all key generation schemes used for key establishment and entity authentication. When key generation is used for key establishment, the authentication. When key generation is used for key establishment, the schemes in [FCS\_CKM.2/UNLOCKED](#FCS_CKM.2/UNLOCKED) and selected schemes in [FCS\_CKM.2/UNLOCKED](#FCS_CKM.2/UNLOCKED) and selected cryptographic protocols must match the selection. When key generation is cryptographic protocols must match the selection. When key generation is used for entity authentication, the public key may be associated with an used for entity authentication, the public key may be associated with an X.509v3 certificate.\ X.509v3 certificate.\ \ \ If the [TOE](#abbr_TOE) acts as a receiver in the [RSA](#abbr_RSA) key If the [TOE](#abbr_TOE) acts as a receiver in the [RSA](#abbr_RSA) key establishment scheme, the [TOE](#abbr_TOE) does not need to implement establishment scheme, the [TOE](#abbr_TOE) does not need to implement [RSA](#abbr_RSA) key generation.\ [RSA](#abbr_RSA) key generation.\ \ \ Curve25519 can only be used for [ECDH](#abbr_ECDH) and in conjunction Curve25519 can only be used for [ECDH](#abbr_ECDH) and in conjunction with [FDP\_DAR\_EXT.2.2](#FDP_DAR_EXT.2.2). ]{.note} with [FDP\_DAR\_EXT.2.2](#FDP_DAR_EXT.2.2). ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_CKM.1](#FCS_CKM.1):\ | ::: {.component-activity-header} > [FCS\_CKM.1](#FCS_CKM.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure that the [TSS](#abbr_TSS) identifies the key The evaluator shall ensure that the [TSS](#abbr_TSS) identifies the key sizes supported by the [TOE](#abbr_TOE). If the [ST](#abbr_ST) specifies sizes supported by the [TOE](#abbr_TOE). If the [ST](#abbr_ST) specifies more than one scheme, the evaluator shall examine the [TSS](#abbr_TSS) more than one scheme, the evaluator shall examine the [TSS](#abbr_TSS) to verify that it identifies the usage for each scheme.\ to verify that it identifies the usage for each scheme.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall verify that the AGD guidance instructs the The evaluator shall verify that the AGD guidance instructs the administrator how to configure the [TOE](#abbr_TOE) to use the selected administrator how to configure the [TOE](#abbr_TOE) to use the selected key generation scheme(s) and key size(s) for all uses defined in this key generation scheme(s) and key size(s) for all uses defined in this [PP](#abbr_PP).\ [PP](#abbr_PP).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following tests require the developer **Evaluation Activity Note:** The following tests require the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products.\ tools that are typically not found on factory products.\ \ \ ***Key Generation for [FIPS](#abbr_FIPS) PUB 186-4 [RSA](#abbr_RSA) ***Key Generation for [FIPS](#abbr_FIPS) PUB 186-4 [RSA](#abbr_RSA) Schemes***\ Schemes***\ \ \ The evaluator shall verify the implementation of [RSA](#abbr_RSA) Key The evaluator shall verify the implementation of [RSA](#abbr_RSA) Key Generation by the [TOE](#abbr_TOE) using the Key Generation test. This Generation by the [TOE](#abbr_TOE) using the Key Generation test. This test verifies the ability of the [TSF](#abbr_TSF) to correctly produce test verifies the ability of the [TSF](#abbr_TSF) to correctly produce values for the key components including the public verification exponent values for the key components including the public verification exponent *e*, the private prime factors *p* and *q*, the public modulus n and the *e*, the private prime factors *p* and *q*, the public modulus n and the calculation of the private signature exponent *d*.\ calculation of the private signature exponent *d*.\ \ \ Key Pair generation specifies 5 ways (or methods) to generate the primes Key Pair generation specifies 5 ways (or methods) to generate the primes *p* and *q*. These include: *p* and *q*. These include: 1. Random Primes: 1. Random Primes: - Provable primes - Provable primes - Probable primes - Probable primes 2. Primes with Conditions: 2. Primes with Conditions: - Primes p1, p2, q1,q2, p and q shall all be provable primes - Primes p1, p2, q1,q2, p and q shall all be provable primes - Primes p1, p2, q1, and q2 shall be provable primes and p and q - Primes p1, p2, q1, and q2 shall be provable primes and p and q shall be probable primes shall be probable primes - Primes p1, p2, q1,q2, p and q shall all be probable primes - Primes p1, p2, q1,q2, p and q shall all be probable primes To test the key generation method for the Random Provable primes method To test the key generation method for the Random Provable primes method and for all the Primes with Conditions methods, the evaluator must seed and for all the Primes with Conditions methods, the evaluator must seed the [TSF](#abbr_TSF) key generation routine with sufficient data to the [TSF](#abbr_TSF) key generation routine with sufficient data to deterministically generate the [RSA](#abbr_RSA) key pair. This includes deterministically generate the [RSA](#abbr_RSA) key pair. This includes the random seed(s), the public exponent of the [RSA](#abbr_RSA) key, and the random seed(s), the public exponent of the [RSA](#abbr_RSA) key, and the desired key length. For each key length supported, the evaluator the desired key length. For each key length supported, the evaluator shall have the [TSF](#abbr_TSF) generate 25 key pairs. The evaluator shall have the [TSF](#abbr_TSF) generate 25 key pairs. The evaluator shall verify the correctness of the [TSF](#abbr_TSF)'s implementation by shall verify the correctness of the [TSF](#abbr_TSF)'s implementation by comparing values generated by the [TSF](#abbr_TSF) with those generated comparing values generated by the [TSF](#abbr_TSF) with those generated from a known good implementation.\ from a known good implementation.\ \ \ If possible, the Random Probable primes method should also be verified If possible, the Random Probable primes method should also be verified against a known good implementation as described above. Otherwise, the against a known good implementation as described above. Otherwise, the evaluator shall have the [TSF](#abbr_TSF) generate 10 keys pairs for evaluator shall have the [TSF](#abbr_TSF) generate 10 keys pairs for each supported key length nlen and verify: each supported key length nlen and verify: - n = p\*q - n = p\*q - p and q are probably prime according to Miller-Rabin tests - p and q are probably prime according to Miller-Rabin tests - GCD(p-1,e) = 1 - GCD(p-1,e) = 1 - GCD(q-1,e) = 1 - GCD(q-1,e) = 1 - 2\^16 \< e \< 2\^256 and e is an odd integer - 2\^16 \< e \< 2\^256 and e is an odd integer - \|p-q\| \> 2\^(nlen/2 -- 100) - \|p-q\| \> 2\^(nlen/2 -- 100) - p \>= squareroot(2)\*( 2\^(nlen/2 -1) ) - p \>= squareroot(2)\*( 2\^(nlen/2 -1) ) - q \>= squareroot(2)\*( 2\^(nlen/2 -1) ) - q \>= squareroot(2)\*( 2\^(nlen/2 -1) ) - 2\^(nlen/2) \< d \< LCM(p-1,q-1) - 2\^(nlen/2) \< d \< LCM(p-1,q-1) - e\*d = 1 mod LCM(p-1,q-1) - e\*d = 1 mod LCM(p-1,q-1) \ \ ***Key Generation for [FIPS](#abbr_FIPS) 186-4 Elliptic Curve ***Key Generation for [FIPS](#abbr_FIPS) 186-4 Elliptic Curve Cryptography (ECC)***\ Cryptography (ECC)***\ *[FIPS](#abbr_FIPS) 186-4 ECC Key Generation Test*\ *[FIPS](#abbr_FIPS) 186-4 ECC Key Generation Test*\ \ \ For each supported [NIST](#abbr_NIST) curve, i.e. P-256, P-384 and For each supported [NIST](#abbr_NIST) curve, i.e. P-256, P-384 and P-521, the evaluator shall require the implementation under test (IUT) P-521, the evaluator shall require the implementation under test (IUT) to generate 10 private/public key pairs. The private key shall be to generate 10 private/public key pairs. The private key shall be generated using an approved random bit generator ([RBG](#abbr_RBG)). To generated using an approved random bit generator ([RBG](#abbr_RBG)). To determine correctness, the evaluator shall submit the generated key determine correctness, the evaluator shall submit the generated key pairs to the public key verification (PKV) function of a known good pairs to the public key verification (PKV) function of a known good implementation.\ implementation.\ \ \ *[FIPS](#abbr_FIPS) 186-4 Public Key Verification (PKV) Test*\ *[FIPS](#abbr_FIPS) 186-4 Public Key Verification (PKV) Test*\ \ \ For each supported [NIST](#abbr_NIST) curve, i.e. P-256, P-384 and For each supported [NIST](#abbr_NIST) curve, i.e. P-256, P-384 and P-521, the evaluator shall generate 10 private/public key pairs using P-521, the evaluator shall generate 10 private/public key pairs using the key generation function of a known good implementation and modify the key generation function of a known good implementation and modify five of the public key values so that they are incorrect, leaving five five of the public key values so that they are incorrect, leaving five values unchanged (i.e. correct). The evaluator shall obtain in response values unchanged (i.e. correct). The evaluator shall obtain in response a set of 10 PASS/FAIL values.\ a set of 10 PASS/FAIL values.\ \ \ ***Key Generation for Curve25519***\ ***Key Generation for Curve25519***\ The evaluator shall require the implementation under test (IUT) to The evaluator shall require the implementation under test (IUT) to generate 10 private/public key pairs. The private key shall be generated generate 10 private/public key pairs. The private key shall be generated as specified in RFC 7748 using an approved random bit generator as specified in RFC 7748 using an approved random bit generator ([RBG](#abbr_RBG)) and shall be written in little-endian order (least ([RBG](#abbr_RBG)) and shall be written in little-endian order (least significant byte first). To determine correctness, the evaluator shall significant byte first). To determine correctness, the evaluator shall submit the generated key pairs to the public key verification (PKV) submit the generated key pairs to the public key verification (PKV) function of a known good implementation.\ function of a known good implementation.\ \ \ Note: Assuming the PKV function of the good implementation will (using Note: Assuming the PKV function of the good implementation will (using little-endian order): little-endian order): a. confirm the private and public keys are 32-byte values a. confirm the private and public keys are 32-byte values b. confirm the three least significant bits of the first byte of the b. confirm the three least significant bits of the first byte of the private key are zero private key are zero c. confirm the most significant bit of the last byte is zero c. confirm the most significant bit of the last byte is zero d. confirm the second most significant bit of the last byte is one d. confirm the second most significant bit of the last byte is one e. calculate the expected public key from the private key and confirm e. calculate the expected public key from the private key and confirm it matches the supplied public key it matches the supplied public key \ \ The evaluator shall generate 10 private/public key pairs using the key The evaluator shall generate 10 private/public key pairs using the key generation function of a known good implementation and modify 5 of the generation function of a known good implementation and modify 5 of the public key values so that they are incorrect, leaving five values public key values so that they are incorrect, leaving five values unchanged (i.e. correct). The evaluator shall obtain in response a set unchanged (i.e. correct). The evaluator shall obtain in response a set of 10 PASS/FAIL values.\ of 10 PASS/FAIL values.\ \ \ ***Key Generation for Finite-Field Cryptography (FFC)***\ | ***Key Generation for Finite-Field Cryptography ([FFC](#abbr_FFC))***\ The evaluator shall verify the implementation of the Parameters The evaluator shall verify the implementation of the Parameters Generation and the Key Generation for FFC by the [TOE](#abbr_TOE) using | Generation and the Key Generation for [FFC](#abbr_FFC) by the the Parameter Generation and Key Generation test. This test verifies the | [TOE](#abbr_TOE) using the Parameter Generation and Key Generation test. ability of the [TSF](#abbr_TSF) to correctly produce values for the | This test verifies the ability of the [TSF](#abbr_TSF) to correctly field prime p, the cryptographic prime q (dividing p-1), the | produce values for the field prime p, the cryptographic prime q cryptographic group generator g, and the calculation of the private key | (dividing p-1), the cryptographic group generator g, and the calculation x and public key y.\ | of the private key x and public key y.\ The Parameter generation specifies 2 ways (or methods) to generate the The Parameter generation specifies 2 ways (or methods) to generate the cryptographic prime q and the field prime p:\ cryptographic prime q and the field prime p:\ \ \ Cryptographic and Field Primes:\ Cryptographic and Field Primes:\ \ \ - Primes q and p shall both be provable primes - Primes q and p shall both be provable primes - Primes q and field prime p shall both be probable primes - Primes q and field prime p shall both be probable primes and two ways to generate the cryptographic group generator g:\ and two ways to generate the cryptographic group generator g:\ \ \ Cryptographic Group Generator:\ Cryptographic Group Generator:\ \ \ - Generator g constructed through a verifiable process - Generator g constructed through a verifiable process - Generator g constructed through an unverifiable process - Generator g constructed through an unverifiable process The Key generation specifies 2 ways to generate the private key x:\ The Key generation specifies 2 ways to generate the private key x:\ \ \ Private Key:\ Private Key:\ \ \ - len(q) bit output of [RBG](#abbr_RBG) where 1 \<= x \<= q-1 - len(q) bit output of [RBG](#abbr_RBG) where 1 \<= x \<= q-1 - len(q) + 64 bit output of [RBG](#abbr_RBG), followed by a mod q-1 - len(q) + 64 bit output of [RBG](#abbr_RBG), followed by a mod q-1 operation where 1\<= x\<=q-1 operation where 1\<= x\<=q-1 The security strength of the [RBG](#abbr_RBG) must be at least that of The security strength of the [RBG](#abbr_RBG) must be at least that of the security offered by the FFC parameter set.\ | the security offered by the [FFC](#abbr_FFC) parameter set.\ \ \ To test the cryptographic and field prime generation method for the To test the cryptographic and field prime generation method for the provable primes method and/or the group generator g for a verifiable provable primes method and/or the group generator g for a verifiable process, the evaluator must seed the [TSF](#abbr_TSF) parameter process, the evaluator must seed the [TSF](#abbr_TSF) parameter generation routine with sufficient data to deterministically generate generation routine with sufficient data to deterministically generate the parameter set.\ the parameter set.\ \ \ For each key length supported, the evaluator shall have the For each key length supported, the evaluator shall have the [TSF](#abbr_TSF) generate 25 parameter sets and key pairs. The evaluator [TSF](#abbr_TSF) generate 25 parameter sets and key pairs. The evaluator shall verify the correctness of the [TSF](#abbr_TSF)'s implementation by shall verify the correctness of the [TSF](#abbr_TSF)'s implementation by comparing values generated by the [TSF](#abbr_TSF) with those generated comparing values generated by the [TSF](#abbr_TSF) with those generated from a known good implementation. Verification must also confirm\ from a known good implementation. Verification must also confirm\ - g != 0,1 - g != 0,1 - q divides p-1 - q divides p-1 - g\^q mod p = 1 - g\^q mod p = 1 - g\^x mod p = y - g\^x mod p = y \ \ for each FFC parameter set and key pair. ***Diffie-Hellman Group 14 and | for each [FFC](#abbr_FFC) parameter set and key pair. ***Diffie-Hellman FFC Schemes using \"safe-prime\" groups***\ | Group 14 and [FFC](#abbr_FFC) Schemes using \"safe-prime\" groups***\ Testing for FFC Schemes using Diffie-Hellman group 14 and/or | Testing for [FFC](#abbr_FFC) Schemes using Diffie-Hellman group 14 \"safe-prime\" groups is done as part of testing in | and/or \"safe-prime\" groups is done as part of testing in [FCS\_CKM.2/UNLOCKED](#FCS_CKM.2/UNLOCKED).\ | [FCS\_CKM.2/UNLOCKED](#FCS_CKM.2/UNLOCKED). ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_CKM.2/UNLOCKED .comp} ::: {#FCS_CKM.2/UNLOCKED .comp} #### FCS\_CKM.2/UNLOCKED Cryptographic Key Establishment #### FCS\_CKM.2/UNLOCKED Cryptographic Key Establishment ::: {.element} ::: {.element} ::: {#FCS_CKM.2.1/UNLOCKED .reqid} ::: {#FCS_CKM.2.1/UNLOCKED .reqid} [FCS\_CKM.2.1/UNLOCKED](#FCS_CKM.2.1/UNLOCKED){.abbr} [FCS\_CKM.2.1/UNLOCKED](#FCS_CKM.2.1/UNLOCKED){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall [perform]{.refinement} cryptographic [key The [TSF](#abbr_TSF) shall [perform]{.refinement} cryptographic [key establishment]{.refinement} in accordance with a specified cryptographic establishment]{.refinement} in accordance with a specified cryptographic key [establishment]{.refinement} method \[**selection**: key [establishment]{.refinement} method \[**selection**: - *[[RSA](#abbr_RSA)-based key establishment schemes that meet the | - [[[RSA](#abbr_RSA)-based key establishment schemes that meet the following \[**selection**: ]{.refinement}* | following \[**selection**: ]{.refinement}]{#_s_68 - *[NIST](#abbr_NIST) Special Publication 800-56B, "Recommendation | .selectable-content} > - [[NIST](#abbr_NIST) Special Publication 800-56B, "Recommendation for Pair-Wise Key Establishment Schemes Using Integer for Pair-Wise Key Establishment Schemes Using Integer Factorization Cryptography"*, | Factorization Cryptography"]{#_s_69 .selectable-content} - *RSAES-PKCS1-v1\_5 as specified in Section 7.2 of RFC 8017, | - [RSAES-PKCS1-v1\_5 as specified in Section 7.2 of RFC 8017, \"Public-Key Cryptography Standards (PKCS) \#1:[RSA](#abbr_RSA) \"Public-Key Cryptography Standards (PKCS) \#1:[RSA](#abbr_RSA) Cryptography Specifications Version 2.2\"* | Cryptography Specifications Version 2.2\"]{#_s_70 > .selectable-content} \], | \] - *[Elliptic curve-based key establishment schemes]{.refinement} that | - [[Elliptic curve-based key establishment schemes]{.refinement} that meets the following: [[NIST](#abbr_NIST) Special Publication 800-56A meets the following: [[NIST](#abbr_NIST) Special Publication 800-56A Revision 3, \"Recommendation for Pair-Wise Key Establishment Schemes Revision 3, \"Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography\"]{.refinement}*, | Using Discrete Logarithm Cryptography\"]{.refinement}]{#_s_71 - *[Finite field-based key establishment schemes]{.refinement} that | .selectable-content} > - [[Finite field-based key establishment schemes]{.refinement} that meets the following: [[NIST](#abbr_NIST) Special Publication 800-56A meets the following: [[NIST](#abbr_NIST) Special Publication 800-56A Revision 3, \"Recommendation for Pair-Wise Key Establishment Schemes Revision 3, \"Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography\"]{.refinement}*, | Using Discrete Logarithm Cryptography\"]{.refinement}]{#_s_72 - *[Key establishment schemes using Diffie-Hellman group 14 that meets | .selectable-content} the following: RFC 3526]{.refinement}* | - [[Key establishment schemes using Diffie-Hellman group 14 that meets > the following: RFC 3526]{.refinement}]{#_s_73 .selectable-content} \]. \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The [ST](#abbr_ST) author must [Application Note: ]{.note-header}[ The [ST](#abbr_ST) author must select all key establishment schemes used for the selected cryptographic select all key establishment schemes used for the selected cryptographic protocols and any [RSA](#abbr_RSA)-based key establishment schemes that protocols and any [RSA](#abbr_RSA)-based key establishment schemes that may be used to satisfy FDP\_DAR or FCS\_STG. Also, FCS\_TLSC\_EXT.1 may be used to satisfy FDP\_DAR or FCS\_STG. Also, FCS\_TLSC\_EXT.1 requires ciphersuites that use [RSA](#abbr_RSA)-based key establishment requires ciphersuites that use [RSA](#abbr_RSA)-based key establishment schemes.\ schemes.\ \ \ The [RSA](#abbr_RSA)-based key establishment schemes are described in The [RSA](#abbr_RSA)-based key establishment schemes are described in Section 9 of [NIST](#abbr_NIST) SP 800-56B; however, Section 9 relies on Section 9 of [NIST](#abbr_NIST) SP 800-56B; however, Section 9 relies on implementation of other sections in SP 800-56B. If the [TOE](#abbr_TOE) implementation of other sections in SP 800-56B. If the [TOE](#abbr_TOE) only acts as a receiver in the [RSA](#abbr_RSA) key establishment only acts as a receiver in the [RSA](#abbr_RSA) key establishment scheme, the [TOE](#abbr_TOE) does not need to implement [RSA](#abbr_RSA) scheme, the [TOE](#abbr_TOE) does not need to implement [RSA](#abbr_RSA) key generation.\ key generation.\ \ \ The elliptic curves used for the key establishment scheme must correlate The elliptic curves used for the key establishment scheme must correlate with the curves specified in [FCS\_CKM.1.1](#FCS_CKM.1.1).\ with the curves specified in [FCS\_CKM.1.1](#FCS_CKM.1.1).\ \ \ The domain parameters used for the finite field-based key establishment The domain parameters used for the finite field-based key establishment scheme are specified by the key generation according to scheme are specified by the key generation according to [FCS\_CKM.1.1](#FCS_CKM.1.1). The finite field-based key establishment [FCS\_CKM.1.1](#FCS_CKM.1.1). The finite field-based key establishment schemes that conform to [NIST](#abbr_NIST) SP 800-56A Revision 3 schemes that conform to [NIST](#abbr_NIST) SP 800-56A Revision 3 correspond to the \"safe-prime\" groups selection in correspond to the \"safe-prime\" groups selection in [FCS\_CKM.1.1](#FCS_CKM.1.1). ]{.note} [FCS\_CKM.1.1](#FCS_CKM.1.1). ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_CKM.2/UNLOCKED](#FCS_CKM.2/UNLOCKED):\ | ::: {.component-activity-header} > [FCS\_CKM.2/UNLOCKED](#FCS_CKM.2/UNLOCKED) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure that the supported key establishment schemes The evaluator shall ensure that the supported key establishment schemes correspond to the key generation schemes identified in correspond to the key generation schemes identified in [FCS\_CKM.1.1](#FCS_CKM.1.1). If the [ST](#abbr_ST) specifies more than [FCS\_CKM.1.1](#FCS_CKM.1.1). If the [ST](#abbr_ST) specifies more than one scheme, the evaluator shall examine the [TSS](#abbr_TSS) to verify one scheme, the evaluator shall examine the [TSS](#abbr_TSS) to verify that it identifies the usage for each scheme.\ that it identifies the usage for each scheme.\ \ \ If Diffie-Hellman group 14 is selected from If Diffie-Hellman group 14 is selected from [FCS\_CKM.2/UNLOCKED](#FCS_CKM.2/UNLOCKED), the [TSS](#abbr_TSS) shall [FCS\_CKM.2/UNLOCKED](#FCS_CKM.2/UNLOCKED), the [TSS](#abbr_TSS) shall describe how the implementation meets RFC 3526 Section 3.\ describe how the implementation meets RFC 3526 Section 3.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall verify that the AGD guidance instructs the The evaluator shall verify that the AGD guidance instructs the administrator how to configure the [TOE](#abbr_TOE) to use the selected administrator how to configure the [TOE](#abbr_TOE) to use the selected key establishment scheme(s).\ key establishment scheme(s).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following tests require the developer **Evaluation Activity Note:** The following tests require the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products.\ tools that are typically not found on factory products.\ \ \ The evaluator shall verify the implementation of the key establishment The evaluator shall verify the implementation of the key establishment schemes supported by the [TOE](#abbr_TOE) using the applicable tests schemes supported by the [TOE](#abbr_TOE) using the applicable tests below.\ below.\ \ \ ### SP800-56A Revision 3 Key Establishment Schemes ### SP800-56A Revision 3 Key Establishment Schemes The evaluator shall verify a [TOE](#abbr_TOE)\'s implementation of The evaluator shall verify a [TOE](#abbr_TOE)\'s implementation of SP800-56A Revision 3 key aestablishment schemes using the following | SP800-56A Revision 3 key establishment schemes using the following Function and Validity tests. These validation tests for each key Function and Validity tests. These validation tests for each key agreement scheme verify that a [TOE](#abbr_TOE) has implemented the agreement scheme verify that a [TOE](#abbr_TOE) has implemented the components of the key agreement scheme according to the specifications components of the key agreement scheme according to the specifications in the Recommendation. These components include the calculation of the in the Recommendation. These components include the calculation of the DLC primitives (the shared secret value Z) and the calculation of the DLC primitives (the shared secret value Z) and the calculation of the derived keying material (DKM) via the Key Derivation Function (KDF). If | derived keying material (DKM) via the Key Derivation Function key confirmation is supported, the evaluator shall also verify that the | ([KDF](#abbr_KDF)). If key confirmation is supported, the evaluator components of key confirmation have been implemented correctly, using | shall also verify that the components of key confirmation have been the test procedures described below. This includes the parsing of the | implemented correctly, using the test procedures described below. This DKM, the generation of MACdata and the calculation of MACtag.\ | includes the parsing of the DKM, the generation of MACdata and the > calculation of MacTag.\ \ \ ***Function Test***\ ***Function Test***\ \ \ The Function test verifies the ability of the [TOE](#abbr_TOE) to The Function test verifies the ability of the [TOE](#abbr_TOE) to implement the key agreement schemes correctly. To conduct this test the implement the key agreement schemes correctly. To conduct this test the evaluator shall generate or obtain test vectors from a known good evaluator shall generate or obtain test vectors from a known good implementation of the [TOE](#abbr_TOE) supported schemes. For each implementation of the [TOE](#abbr_TOE) supported schemes. For each supported key agreement scheme-key agreement role combination, KDF type, | supported key agreement scheme-key agreement role combination, and, if supported, key confirmation role- key confirmation type | [KDF](#abbr_KDF) type, and, if supported, key confirmation role- key combination, the tester shall generate 10 sets of test vectors. The data | confirmation type combination, the tester shall generate 10 sets of test set consists of one set of domain parameter values (FFC) or the | vectors. The data set consists of one set of domain parameter values [NIST](#abbr_NIST) approved curve (ECC) per 10 sets of public keys. | ([FFC](#abbr_FFC)) or the [NIST](#abbr_NIST) approved curve (ECC) per 10 These keys are static, ephemeral or both depending on the scheme being | sets of public keys. These keys are static, ephemeral or both depending tested.\ | on the scheme being tested.\ \ \ The evaluator shall obtain the DKM, the corresponding [TOE](#abbr_TOE)'s The evaluator shall obtain the DKM, the corresponding [TOE](#abbr_TOE)'s public keys (static and/or ephemeral), the MAC tag(s), and any inputs public keys (static and/or ephemeral), the MAC tag(s), and any inputs used in the KDF, such as the Other Information field OI and | used in the [KDF](#abbr_KDF), such as the Other Information field OI and [TOE](#abbr_TOE) id fields.\ [TOE](#abbr_TOE) id fields.\ \ \ If the [TOE](#abbr_TOE) does not use a KDF defined in SP 800-56A | If the [TOE](#abbr_TOE) does not use a [KDF](#abbr_KDF) defined in SP Revision 3, the evaluator shall obtain only the public keys and the | 800-56A Revision 3, the evaluator shall obtain only the public keys and hashed value of the shared secret.\ | the hashed value of the shared secret.\ \ \ The evaluator shall verify the correctness of the [TSF](#abbr_TSF)'s The evaluator shall verify the correctness of the [TSF](#abbr_TSF)'s implementation of a given scheme by using a known good implementation to implementation of a given scheme by using a known good implementation to calculate the shared secret value, derive the keying material DKM, and calculate the shared secret value, derive the keying material DKM, and compare hashes or MAC tags generated from these values.\ compare hashes or MAC tags generated from these values.\ \ \ If key confirmation is supported, the [TSF](#abbr_TSF) shall perform the If key confirmation is supported, the [TSF](#abbr_TSF) shall perform the above for each implemented approved MAC algorithm.\ above for each implemented approved MAC algorithm.\ \ \ ***Validity Test***\ ***Validity Test***\ \ \ The Validity test verifies the ability of the [TOE](#abbr_TOE) to The Validity test verifies the ability of the [TOE](#abbr_TOE) to recognize another party's valid and invalid key agreement results with recognize another party's valid and invalid key agreement results with or without key confirmation. To conduct this test, the evaluator shall or without key confirmation. To conduct this test, the evaluator shall obtain a list of the supporting cryptographic functions included in the obtain a list of the supporting cryptographic functions included in the SP800-56A Revision 3 key agreement implementation to determine which SP800-56A Revision 3 key agreement implementation to determine which errors the [TOE](#abbr_TOE) should be able to recognize. The evaluator errors the [TOE](#abbr_TOE) should be able to recognize. The evaluator generates a set of 24 (FFC) or 30 (ECC) test vectors consisting of data | generates a set of 24 ([FFC](#abbr_FFC)) or 30 (ECC) test vectors sets including domain parameter values or [NIST](#abbr_NIST) approved | consisting of data sets including domain parameter values or curves, the evaluator's public keys, the [TOE](#abbr_TOE)'s | [NIST](#abbr_NIST) approved curves, the evaluator's public keys, the public/private key pairs, MACTag, and any inputs used in the KDF, such | [TOE](#abbr_TOE)'s public/private key pairs, MacTag, and any inputs used as the other info and [TOE](#abbr_TOE) id fields.\ | in the [KDF](#abbr_KDF), such as the other info and [TOE](#abbr_TOE) id > fields.\ \ \ The evaluator shall inject an error in some of the test vectors to test The evaluator shall inject an error in some of the test vectors to test that the [TOE](#abbr_TOE) recognizes invalid key agreement results that the [TOE](#abbr_TOE) recognizes invalid key agreement results caused by the following fields being incorrect: the shared secret value caused by the following fields being incorrect: the shared secret value Z, the DKM, the other information field OI, the data to be MACed, or the Z, the DKM, the other information field OI, the data to be MACed, or the generated MACTag. If the [TOE](#abbr_TOE) contains the full or partial | generated MacTag. If the [TOE](#abbr_TOE) contains the full or partial (only ECC) public key validation, the evaluator will also individually (only ECC) public key validation, the evaluator will also individually inject errors in both parties' static public keys, both parties' inject errors in both parties' static public keys, both parties' ephemeral public keys and the [TOE](#abbr_TOE)'s static private key to ephemeral public keys and the [TOE](#abbr_TOE)'s static private key to assure the [TOE](#abbr_TOE) detects errors in the public key validation assure the [TOE](#abbr_TOE) detects errors in the public key validation function and/or the partial key validation function (in ECC only). At function and/or the partial key validation function (in ECC only). At least two of the test vectors shall remain unmodified and therefore least two of the test vectors shall remain unmodified and therefore should result in valid key agreement results (they should pass).\ should result in valid key agreement results (they should pass).\ \ \ The [TOE](#abbr_TOE) shall use these modified test vectors to emulate The [TOE](#abbr_TOE) shall use these modified test vectors to emulate the key agreement scheme using the corresponding parameters. The the key agreement scheme using the corresponding parameters. The evaluator shall compare the [TOE](#abbr_TOE)'s results with the results evaluator shall compare the [TOE](#abbr_TOE)'s results with the results using a known good implementation verifying that the [TOE](#abbr_TOE) using a known good implementation verifying that the [TOE](#abbr_TOE) detects these errors.\ detects these errors.\ \ \ ### SP800-56B Key Establishment Schemes ### SP800-56B Key Establishment Schemes The evaluator shall verify that the [TSS](#abbr_TSS) describes whether The evaluator shall verify that the [TSS](#abbr_TSS) describes whether the [TOE](#abbr_TOE) acts as a sender, a recipient, or both for the [TOE](#abbr_TOE) acts as a sender, a recipient, or both for [RSA](#abbr_RSA)-based key establishment schemes.\ [RSA](#abbr_RSA)-based key establishment schemes.\ \ \ If the [TOE](#abbr_TOE) acts as a sender, the following evaluation If the [TOE](#abbr_TOE) acts as a sender, the following evaluation activity shall be performed to ensure the proper operation of every activity shall be performed to ensure the proper operation of every [TOE](#abbr_TOE) supported combination of [RSA](#abbr_RSA)-based key [TOE](#abbr_TOE) supported combination of [RSA](#abbr_RSA)-based key establishment scheme:\ establishment scheme:\ To conduct this test the evaluator shall generate or obtain test vectors To conduct this test the evaluator shall generate or obtain test vectors from a known good implementation of the [TOE](#abbr_TOE) supported from a known good implementation of the [TOE](#abbr_TOE) supported schemes. For each combination of supported key establishment scheme and schemes. For each combination of supported key establishment scheme and its options (with or without key confirmation if supported, for each its options (with or without key confirmation if supported, for each supported key confirmation MAC function if key confirmation is supported key confirmation MAC function if key confirmation is supported, and for each supported mask generation function if KTS-OAEP supported, and for each supported mask generation function if KTS-OAEP is supported), the tester shall generate 10 sets of test vectors. Each is supported), the tester shall generate 10 sets of test vectors. Each test vector shall include the [RSA](#abbr_RSA) public key, the plaintext test vector shall include the [RSA](#abbr_RSA) public key, the plaintext keying material, any additional input parameters if applicable, the keying material, any additional input parameters if applicable, the MacKey and MacTag if key confirmation is incorporated, and the outputted MacKey and MacTag if key confirmation is incorporated, and the outputted ciphertext. For each test vector, the evaluator shall perform a key ciphertext. For each test vector, the evaluator shall perform a key establishment encryption operation on the [TOE](#abbr_TOE) with the same establishment encryption operation on the [TOE](#abbr_TOE) with the same inputs (in cases where key confirmation is incorporated, the test shall inputs (in cases where key confirmation is incorporated, the test shall use the MacKey from the test vector instead of the randomly generated use the MacKey from the test vector instead of the randomly generated MacKey used in normal operation) and ensure that the outputted MacKey used in normal operation) and ensure that the outputted ciphertext is equivalent to the ciphertext in the test vector.\ ciphertext is equivalent to the ciphertext in the test vector.\ \ \ If the [TOE](#abbr_TOE) acts as a receiver, the following evaluation If the [TOE](#abbr_TOE) acts as a receiver, the following evaluation activities shall be performed to ensure the proper operation of every activities shall be performed to ensure the proper operation of every [TOE](#abbr_TOE) supported combination of [RSA](#abbr_RSA)-based key [TOE](#abbr_TOE) supported combination of [RSA](#abbr_RSA)-based key establishment scheme:\ establishment scheme:\ To conduct this test the evaluator shall generate or obtain test vectors To conduct this test the evaluator shall generate or obtain test vectors [FCS\_CKM.2.1/LOCKED](#FCS_CKM.2.1/LOCKED) from a known good [FCS\_CKM.2.1/LOCKED](#FCS_CKM.2.1/LOCKED) from a known good implementation of the [TOE](#abbr_TOE) supported schemes. For each implementation of the [TOE](#abbr_TOE) supported schemes. For each combination of supported key establishment scheme and its options (with combination of supported key establishment scheme and its options (with our without key confirmation if supported, for each supported key our without key confirmation if supported, for each supported key confirmation MAC function if key confirmation is supported, and for each confirmation MAC function if key confirmation is supported, and for each supported mask generation function if KTS-OAEP is supported), the tester supported mask generation function if KTS-OAEP is supported), the tester shall generate 10 sets of test vectors. Each test vector shall include shall generate 10 sets of test vectors. Each test vector shall include the [RSA](#abbr_RSA) private key, the plaintext keying material the [RSA](#abbr_RSA) private key, the plaintext keying material (KeyData), any additional input parameters if applicable, the MacTag in (KeyData), any additional input parameters if applicable, the MacTag in cases where key confirmation is incorporated, and the outputted cases where key confirmation is incorporated, and the outputted ciphertext. For each test vector, the evaluator shall perform the key ciphertext. For each test vector, the evaluator shall perform the key establishment decryption operation on the [TOE](#abbr_TOE) and ensure establishment decryption operation on the [TOE](#abbr_TOE) and ensure that the outputted plaintext keying material (KeyData) is equivalent to that the outputted plaintext keying material (KeyData) is equivalent to the plaintext keying material in the test vector. In cases where key the plaintext keying material in the test vector. In cases where key confirmation is incorporated, the evaluator shall perform the key confirmation is incorporated, the evaluator shall perform the key confirmation steps and ensure that the outputted MacTag is equivalent to confirmation steps and ensure that the outputted MacTag is equivalent to the MacTag in the test vector.\ the MacTag in the test vector.\ \ \ The evaluator shall ensure that the [TSS](#abbr_TSS) describes how the The evaluator shall ensure that the [TSS](#abbr_TSS) describes how the [TOE](#abbr_TOE) handles decryption errors. In accordance with [TOE](#abbr_TOE) handles decryption errors. In accordance with [NIST](#abbr_NIST) Special Publication 800-56B, the [TOE](#abbr_TOE) [NIST](#abbr_NIST) Special Publication 800-56B, the [TOE](#abbr_TOE) must not reveal the particular error that occurred, either through the must not reveal the particular error that occurred, either through the contents of any outputted or logged error message or through timing contents of any outputted or logged error message or through timing variations. If KTS-OAEP is supported, the evaluator shall create variations. If KTS-OAEP is supported, the evaluator shall create separate contrived ciphertext values that trigger each of the three separate contrived ciphertext values that trigger each of the three decryption error checks described in [NIST](#abbr_NIST) Special decryption error checks described in [NIST](#abbr_NIST) Special Publication 800-56B section 7.2.2.3, ensure that each decryption attempt Publication 800-56B section 7.2.2.3, ensure that each decryption attempt results in an error, and ensure that any outputted or logged error results in an error, and ensure that any outputted or logged error message is identical for each. If KTS-KEMKWS is supported, the evaluator | message is identical for each. If KTS-KEM-KWS is supported, the shall create separate contrived ciphertext values that trigger each of | evaluator shall create separate contrived ciphertext values that trigger the three decryption error checks described in [NIST](#abbr_NIST) | each of the three decryption error checks described in Special Publication 800-56B section 7.2.3.3, ensure that each decryption | [NIST](#abbr_NIST) Special Publication 800-56B section 7.2.3.3, ensure attempt results in an error, and ensure that any outputted or logged | that each decryption attempt results in an error, and ensure that any error message is identical for each.\ | outputted or logged error message is identical for each.\ \ \ ### RSAES-PKCS1-v1\_5 Key Establishment Schemes ### RSAES-PKCS1-v1\_5 Key Establishment Schemes The evaluator shall verify the correctness of the [TSF](#abbr_TSF)\'s The evaluator shall verify the correctness of the [TSF](#abbr_TSF)\'s implementation of RSAES-PKCS1-v1\_5 by using a known good implementation implementation of RSAES-PKCS1-v1\_5 by using a known good implementation for each protocol selected in [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) that for each protocol selected in [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) that uses RSAES-PKCS1-v1\_5. uses RSAES-PKCS1-v1\_5. ### Diffie-Hellman Group 14 ### Diffie-Hellman Group 14 The evaluator shall verify the correctness of the [TSF](#abbr_TSF)\'s The evaluator shall verify the correctness of the [TSF](#abbr_TSF)\'s implementation of Diffie-Hellman group 14 by using a known good implementation of Diffie-Hellman group 14 by using a known good implementation for each protocol selected in implementation for each protocol selected in [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) that uses Diffie-Hellman Group 14. [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) that uses Diffie-Hellman Group 14. ### FFC Schemes using \"safe-prime\" groups ### FFC Schemes using \"safe-prime\" groups The evaluator shall verify the correctness of the [TSF](#abbr_TSF)\'s The evaluator shall verify the correctness of the [TSF](#abbr_TSF)\'s implementation of \"safe-prime\" groups by using a known good implementation of \"safe-prime\" groups by using a known good implementation for each protocol selected in implementation for each protocol selected in [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) that uses \"safe-prime\" groups. This [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) that uses \"safe-prime\" groups. This test must be performed for each \"safe-prime\" group that each protocol test must be performed for each \"safe-prime\" group that each protocol uses.\ | uses. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_CKM.2/LOCKED .comp} ::: {#FCS_CKM.2/LOCKED .comp} #### FCS\_CKM.2/LOCKED Cryptographic Key Establishment #### FCS\_CKM.2/LOCKED Cryptographic Key Establishment ::: {.element} ::: {.element} ::: {#FCS_CKM.2.1/LOCKED .reqid} ::: {#FCS_CKM.2.1/LOCKED .reqid} [FCS\_CKM.2.1/LOCKED](#FCS_CKM.2.1/LOCKED){.abbr} [FCS\_CKM.2.1/LOCKED](#FCS_CKM.2.1/LOCKED){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall [perform]{.refinement} cryptographic [key The [TSF](#abbr_TSF) shall [perform]{.refinement} cryptographic [key establishment]{.refinement} in accordance with a specified cryptographic establishment]{.refinement} in accordance with a specified cryptographic key [establishment]{.refinement} method: \[**selection**: key [establishment]{.refinement} method: \[**selection**: - *[[RSA](#abbr_RSA)-based key establishment schemes that meet the | - [[[RSA](#abbr_RSA)-based key establishment schemes that meet the following: [NIST](#abbr_NIST) Special Publication 800-56B, following: [NIST](#abbr_NIST) Special Publication 800-56B, "Recommendation for Pair-Wise Key Establishment Schemes Using "Recommendation for Pair-Wise Key Establishment Schemes Using Integer Factorization Cryptography"]{.refinement}*, | Integer Factorization Cryptography"]{.refinement}]{#_s_74 - *[Elliptic curve-based key establishment schemes]{.refinement} that | .selectable-content} meets the following: \[**selection**:* | - [[Elliptic curve-based key establishment schemes]{.refinement} that - *[[NIST](#abbr_NIST) Special Publication 800-56A Revision 3, | meets the following: \[**selection**: ]{#_s_75 .selectable-content} > - [[[NIST](#abbr_NIST) Special Publication 800-56A Revision 3, \"Recommendation for Pair-Wise Key Establishment Schemes Using \"Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography\"]{.refinement}*, | Discrete Logarithm Cryptography\"]{.refinement}]{#_s_76 - *[RFC 7748, \"Elliptic Curves for Security\"]{.refinement}* | .selectable-content} > - [[RFC 7748, \"Elliptic Curves for > Security\"]{.refinement}]{#_s_77 .selectable-content} \], | \] - *[Finite field-based key establishment schemes]{.refinement} that | - [[Finite field-based key establishment schemes]{.refinement} that meets the following: [[NIST](#abbr_NIST) Special Publication 800-56A meets the following: [[NIST](#abbr_NIST) Special Publication 800-56A Revision 3, \"Recommendation for Pair-Wise Key Establishment Schemes Revision 3, \"Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography\"]{.refinement}* | Using Discrete Logarithm Cryptography\"]{.refinement}]{#_s_78 > .selectable-content} \] [for the purposes of encrypting sensitive data received while the \] [for the purposes of encrypting sensitive data received while the device is locked.]{.refinement} device is locked.]{.refinement} ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The [RSA](#abbr_RSA)-based key [Application Note: ]{.note-header}[ The [RSA](#abbr_RSA)-based key establishment schemes are described in Section 9 of [NIST](#abbr_NIST) establishment schemes are described in Section 9 of [NIST](#abbr_NIST) SP 800-56B; however, Section 9 relies on implementation of other SP 800-56B; however, Section 9 relies on implementation of other sections in SP 800-56B. If the [TOE](#abbr_TOE) acts as a receiver in sections in SP 800-56B. If the [TOE](#abbr_TOE) acts as a receiver in the [RSA](#abbr_RSA) key establishment scheme, the [TOE](#abbr_TOE) does the [RSA](#abbr_RSA) key establishment scheme, the [TOE](#abbr_TOE) does not need to implement [RSA](#abbr_RSA) key generation.\ not need to implement [RSA](#abbr_RSA) key generation.\ \ \ The elliptic curves used for the key establishment scheme must correlate The elliptic curves used for the key establishment scheme must correlate with the curves specified in [FCS\_CKM.1.1](#FCS_CKM.1.1).\ with the curves specified in [FCS\_CKM.1.1](#FCS_CKM.1.1).\ \ \ The domain parameters used for the finite field-based key establishment The domain parameters used for the finite field-based key establishment scheme are specified by the key generation according to scheme are specified by the key generation according to [FCS\_CKM.1.1](#FCS_CKM.1.1). ]{.note} [FCS\_CKM.1.1](#FCS_CKM.1.1). ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_CKM.2/LOCKED](#FCS_CKM.2/LOCKED):\ | ::: {.component-activity-header} > [FCS\_CKM.2/LOCKED](#FCS_CKM.2/LOCKED) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The test for SP800-56A Revision 3 and SP800-56B key establishment The test for SP800-56A Revision 3 and SP800-56B key establishment schemes is performed in association with schemes is performed in association with [FCS\_CKM.2/UNLOCKED](#FCS_CKM.2/UNLOCKED).\ [FCS\_CKM.2/UNLOCKED](#FCS_CKM.2/UNLOCKED).\ \ \ **Curve25519 Key Establishment Schemes**\ **Curve25519 Key Establishment Schemes**\ \ \ The evaluator shall verify a [TOE](#abbr_TOE)\'s implementation of the The evaluator shall verify a [TOE](#abbr_TOE)\'s implementation of the key agreement scheme using the following Function and Validity tests. key agreement scheme using the following Function and Validity tests. These validation tests for each key agreement scheme verify that a These validation tests for each key agreement scheme verify that a [TOE](#abbr_TOE) has implemented the components of the key agreement [TOE](#abbr_TOE) has implemented the components of the key agreement scheme according to the specification. These components include the scheme according to the specification. These components include the calculation of the shared secret K and the hash of K.\ calculation of the shared secret K and the hash of K.\ \ \ **Function Test**\ **Function Test**\ \ \ The Function test verifies the ability of the [TOE](#abbr_TOE) to The Function test verifies the ability of the [TOE](#abbr_TOE) to implement the key agreement schemes correctly. To conduct this test the implement the key agreement schemes correctly. To conduct this test the evaluator shall generate or obtain test vectors from a known good evaluator shall generate or obtain test vectors from a known good implementation of the [TOE](#abbr_TOE) supported schemes. For each implementation of the [TOE](#abbr_TOE) supported schemes. For each supported key agreement role and hash function combination, the tester supported key agreement role and hash function combination, the tester shall generate 10 sets of public keys. These keys are static, ephemeral shall generate 10 sets of public keys. These keys are static, ephemeral or both depending on the scheme being tested.\ or both depending on the scheme being tested.\ \ \ The evaluator shall obtain the shared secret value K, and the hash of The evaluator shall obtain the shared secret value K, and the hash of K.\ K.\ \ \ The evaluator shall verify the correctness of the [TSF](#abbr_TSF)'s The evaluator shall verify the correctness of the [TSF](#abbr_TSF)'s implementation of a given scheme by using a known good implementation to implementation of a given scheme by using a known good implementation to calculate the shared secret value K and compare the hash generated from calculate the shared secret value K and compare the hash generated from this value.\ this value.\ \ \ **Validity Test**\ **Validity Test**\ \ \ The Validity test verifies the ability of the [TOE](#abbr_TOE) to The Validity test verifies the ability of the [TOE](#abbr_TOE) to recognize another party's valid and invalid key agreement results. To recognize another party's valid and invalid key agreement results. To conduct this test, the evaluator generates a set of 30 test vectors conduct this test, the evaluator generates a set of 30 test vectors consisting of data sets including the evaluator's public keys and the consisting of data sets including the evaluator's public keys and the [TOE](#abbr_TOE)'s public/private key pairs.\ [TOE](#abbr_TOE)'s public/private key pairs.\ \ \ The evaluator shall inject an error in some of the test vectors to test The evaluator shall inject an error in some of the test vectors to test that the [TOE](#abbr_TOE) recognizes invalid key agreement results that the [TOE](#abbr_TOE) recognizes invalid key agreement results caused by the following fields being incorrect: the shared secret value caused by the following fields being incorrect: the shared secret value K or the hash of K. At least two of the test vectors shall remain K or the hash of K. At least two of the test vectors shall remain unmodified and therefore should result in valid key agreement results unmodified and therefore should result in valid key agreement results (they should pass).\ (they should pass).\ \ \ The [TOE](#abbr_TOE) shall use these modified test vectors to emulate The [TOE](#abbr_TOE) shall use these modified test vectors to emulate the key agreement scheme using the corresponding parameters. The the key agreement scheme using the corresponding parameters. The evaluator shall compare the [TOE](#abbr_TOE)'s results with the results evaluator shall compare the [TOE](#abbr_TOE)'s results with the results using a known good implementation verifying that the [TOE](#abbr_TOE) using a known good implementation verifying that the [TOE](#abbr_TOE) detects these errors.\ detects these errors.\ \ \ \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_CKM_EXT.1 .comp} ::: {#FCS_CKM_EXT.1 .comp} #### FCS\_CKM\_EXT.1 Cryptographic Key Support #### FCS\_CKM\_EXT.1 Cryptographic Key Support ::: {.element} ::: {.element} ::: {#FCS_CKM_EXT.1.1 .reqid} ::: {#FCS_CKM_EXT.1.1 .reqid} [FCS\_CKM\_EXT.1.1](#FCS_CKM_EXT.1.1){.abbr} [FCS\_CKM\_EXT.1.1](#FCS_CKM_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall support \[**selection**: *immutable | The [TSF](#abbr_TSF) shall support \[**selection**: [immutable hardware*, *mutable hardware*\] [REK](#abbr_REK)(s) with a | hardware]{#_s_79 .selectable-content}, [mutable \[**selection**: *symmetric*, *asymmetric*\] key of strength | hardware]{#mutable_hardware .selectable-content} \] [REK](#abbr_REK)(s) \[**selection**: *112 bits*, *128 bits*, *192 bits*, *256 bits*\]. | with a \[**selection**: [symmetric]{#_s_81 .selectable-content}, > [asymmetric]{#_s_82 .selectable-content} \] key of strength > \[**selection**: [112 bits]{#_s_83 .selectable-content}, [128 > bits]{#_s_84 .selectable-content}, [192 bits]{#_s_85 > .selectable-content}, [256 bits]{#_s_86 .selectable-content} \]. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FCS_CKM_EXT.1.2 .reqid} ::: {#FCS_CKM_EXT.1.2 .reqid} [FCS\_CKM\_EXT.1.2](#FCS_CKM_EXT.1.2){.abbr} [FCS\_CKM\_EXT.1.2](#FCS_CKM_EXT.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} Each [REK](#abbr_REK) shall be hardware-isolated from the [OS](#abbr_OS) Each [REK](#abbr_REK) shall be hardware-isolated from the [OS](#abbr_OS) on the [TSF](#abbr_TSF) in runtime. on the [TSF](#abbr_TSF) in runtime. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FCS_CKM_EXT.1.3 .reqid} ::: {#FCS_CKM_EXT.1.3 .reqid} [FCS\_CKM\_EXT.1.3](#FCS_CKM_EXT.1.3){.abbr} [FCS\_CKM\_EXT.1.3](#FCS_CKM_EXT.1.3){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} Each [REK](#abbr_REK) shall be generated by a [RBG](#abbr_RBG) in Each [REK](#abbr_REK) shall be generated by a [RBG](#abbr_RBG) in accordance with [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1). accordance with [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1). ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ Either asymmetric or symmetric keys [Application Note: ]{.note-header}[ Either asymmetric or symmetric keys are allowed; the [ST](#abbr_ST) author makes the selection appropriate are allowed; the [ST](#abbr_ST) author makes the selection appropriate for the device. Symmetric keys must be of size 128 or 256 bits in order for the device. Symmetric keys must be of size 128 or 256 bits in order to correspond with [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT). Asymmetric to correspond with [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT). Asymmetric keys may be of any strength corresponding to [FCS\_CKM.1](#FCS_CKM.1).\ keys may be of any strength corresponding to [FCS\_CKM.1](#FCS_CKM.1).\ \ \ The raw key material of \"immutable hardware\" [REK](#abbr_REK)(s) is The raw key material of \"immutable hardware\" [REK](#abbr_REK)(s) is computationally processed by hardware and software cannot access the raw computationally processed by hardware and software cannot access the raw key material. Thus if \"immutable-hardware\" is selected in key material. Thus if \"immutable-hardware\" is selected in [FCS\_CKM\_EXT.1.1](#FCS_CKM_EXT.1.1) it implicitly meets [FCS\_CKM\_EXT.1.1](#FCS_CKM_EXT.1.1) it implicitly meets [FCS\_CKM\_EXT.7](#FCS_CKM_EXT.7). If \"mutable-hardware\" is selected [FCS\_CKM\_EXT.7](#FCS_CKM_EXT.7). If \"mutable-hardware\" is selected in [FCS\_CKM\_EXT.1.1](#FCS_CKM_EXT.1.1), in [FCS\_CKM\_EXT.1.1](#FCS_CKM_EXT.1.1), [FCS\_CKM\_EXT.7](#FCS_CKM_EXT.7) must be included in the [FCS\_CKM\_EXT.7](#FCS_CKM_EXT.7) must be included in the [ST](#abbr_ST).\ [ST](#abbr_ST).\ \ \ The lack of a public/documented [API](#abbr_API) for importing or The lack of a public/documented [API](#abbr_API) for importing or exporting the [REK](#abbr_REK), when a private/undocumented exporting the [REK](#abbr_REK), when a private/undocumented [API](#abbr_API) exists, is not sufficient to meet this requirement.\ [API](#abbr_API) exists, is not sufficient to meet this requirement.\ \ \ The [RBG](#abbr_RBG) used to generate a [REK](#abbr_REK) may be a The [RBG](#abbr_RBG) used to generate a [REK](#abbr_REK) may be a [RBG](#abbr_RBG) native to the hardware key container or may be an [RBG](#abbr_RBG) native to the hardware key container or may be an off-device [RBG](#abbr_RBG). If performed by an off-device off-device [RBG](#abbr_RBG). If performed by an off-device [RBG](#abbr_RBG), the device manufacturer must not be able to access a [RBG](#abbr_RBG), the device manufacturer must not be able to access a [REK](#abbr_REK) after the manufacturing process has been completed. The [REK](#abbr_REK) after the manufacturing process has been completed. The Evaluation Activities for these two cases differ. ]{.note} Evaluation Activities for these two cases differ. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_CKM\_EXT.1](#FCS_CKM_EXT.1):\ | ::: {.component-activity-header} > [FCS\_CKM\_EXT.1](#FCS_CKM_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall review the [TSS](#abbr_TSS) to determine that a The evaluator shall review the [TSS](#abbr_TSS) to determine that a [REK](#abbr_REK) is supported by the [TOE](#abbr_TOE), that the [REK](#abbr_REK) is supported by the [TOE](#abbr_TOE), that the [TSS](#abbr_TSS) includes a description of the protection provided by [TSS](#abbr_TSS) includes a description of the protection provided by the [TOE](#abbr_TOE) for a [REK](#abbr_REK), and that the the [TOE](#abbr_TOE) for a [REK](#abbr_REK), and that the [TSS](#abbr_TSS) includes a description of the method of generation of a [TSS](#abbr_TSS) includes a description of the method of generation of a [REK](#abbr_REK).\ [REK](#abbr_REK).\ \ \ The evaluator shall verify that the description of the protection of a The evaluator shall verify that the description of the protection of a [REK](#abbr_REK) describes how any reading, import, and export of that [REK](#abbr_REK) describes how any reading, import, and export of that [REK](#abbr_REK) is prevented. (For example, if the hardware protecting [REK](#abbr_REK) is prevented. (For example, if the hardware protecting the [REK](#abbr_REK) is removable, the description should include how the [REK](#abbr_REK) is removable, the description should include how other devices are prevented from reading the [REK](#abbr_REK).) The other devices are prevented from reading the [REK](#abbr_REK).) The evaluator shall verify that the [TSS](#abbr_TSS) describes how evaluator shall verify that the [TSS](#abbr_TSS) describes how encryption/decryption/derivation actions are isolated so as to prevent encryption/decryption/derivation actions are isolated so as to prevent applications and system-level processes from reading the applications and system-level processes from reading the [REK](#abbr_REK) while allowing encryption/decryption/derivation by the [REK](#abbr_REK) while allowing encryption/decryption/derivation by the key.\ key.\ \ \ The evaluator shall verify that the description includes how the The evaluator shall verify that the description includes how the [OS](#abbr_OS) is prevented from accessing the memory containing [OS](#abbr_OS) is prevented from accessing the memory containing [REK](#abbr_REK) key material, which software is allowed access to the [REK](#abbr_REK) key material, which software is allowed access to the [REK](#abbr_REK), how any other software in the execution environment is [REK](#abbr_REK), how any other software in the execution environment is prevented from reading that key material, and what other mechanisms prevented from reading that key material, and what other mechanisms prevent the [REK](#abbr_REK) key material from being written to shared prevent the [REK](#abbr_REK) key material from being written to shared memory locations between the [OS](#abbr_OS) and the separate execution memory locations between the [OS](#abbr_OS) and the separate execution environment.\ environment.\ \ \ If key derivation is performed using a [REK](#abbr_REK), the evaluator If key derivation is performed using a [REK](#abbr_REK), the evaluator shall ensure that the [TSS](#abbr_TSS) description includes a shall ensure that the [TSS](#abbr_TSS) description includes a description of the key derivation function and shall verify the key description of the key derivation function and shall verify the key derivation uses an approved derivation mode and key expansion algorithm derivation uses an approved derivation mode and key expansion algorithm according to [FCS\_CKM\_EXT.3.2](#FCS_CKM_EXT.3.2).\ according to [FCS\_CKM\_EXT.3.2](#FCS_CKM_EXT.3.2).\ \ \ The evaluator shall verify that the generation of a [REK](#abbr_REK) The evaluator shall verify that the generation of a [REK](#abbr_REK) meets the [FCS\_RBG\_EXT.1.1](#FCS_RBG_EXT.1.1) and meets the [FCS\_RBG\_EXT.1.1](#FCS_RBG_EXT.1.1) and [FCS\_RBG\_EXT.1.2](#FCS_RBG_EXT.1.2) requirements:\ [FCS\_RBG\_EXT.1.2](#FCS_RBG_EXT.1.2) requirements:\ - If [REK](#abbr_REK)(s) is/are generated on-device, the - If [REK](#abbr_REK)(s) is/are generated on-device, the [TSS](#abbr_TSS) shall include a description of the generation [TSS](#abbr_TSS) shall include a description of the generation mechanism including what triggers a generation, how the mechanism including what triggers a generation, how the functionality described by [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) is functionality described by [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) is invoked, and whether a separate instance of the [RBG](#abbr_RBG) is invoked, and whether a separate instance of the [RBG](#abbr_RBG) is used for [REK](#abbr_REK)(s). used for [REK](#abbr_REK)(s). - If [REK](#abbr_REK)(s) is/are generated off-device, the - If [REK](#abbr_REK)(s) is/are generated off-device, the [TSS](#abbr_TSS) shall include evidence that the [RBG](#abbr_RBG) [TSS](#abbr_TSS) shall include evidence that the [RBG](#abbr_RBG) meets [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1). This will likely meets [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1). This will likely necessitate a second set of [RBG](#abbr_RBG) documentation necessitate a second set of [RBG](#abbr_RBG) documentation equivalent to the documentation provided for the [RBG](#abbr_RBG) equivalent to the documentation provided for the [RBG](#abbr_RBG) Evaluation Activities. In addition, the [TSS](#abbr_TSS) shall Evaluation Activities. In addition, the [TSS](#abbr_TSS) shall describe the manufacturing process that prevents the device describe the manufacturing process that prevents the device manufacturer from accessing any [REK](#abbr_REK)(s). manufacturer from accessing any [REK](#abbr_REK)(s). \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_CKM_EXT.2 .comp} ::: {#FCS_CKM_EXT.2 .comp} #### FCS\_CKM\_EXT.2 Cryptographic Key Random Generation #### FCS\_CKM\_EXT.2 Cryptographic Key Random Generation ::: {.element} ::: {.element} ::: {#FCS_CKM_EXT.2.1 .reqid} ::: {#FCS_CKM_EXT.2.1 .reqid} [FCS\_CKM\_EXT.2.1](#FCS_CKM_EXT.2.1){.abbr} [FCS\_CKM\_EXT.2.1](#FCS_CKM_EXT.2.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} All DEKs shall be \[**selection**: | All [DEKs](#abbr_DEK) shall be \[**selection**: - *randomly generated*, | - [randomly generated]{#_s_87 .selectable-content} - *from the combination of a randomly generated [DEK](#abbr_DEK) with | - [ from the combination of a randomly generated [DEK](#abbr_DEK) with another [DEK](#abbr_DEK) or salt in a way that preserves the another [DEK](#abbr_DEK) or salt in a way that preserves the effective entropy of each factor by \[**selection**: *using an XOR | effective entropy of each factor by \[**selection**: [using an XOR operation*, *concatenating the keys and using a KDF (as described in | operation]{#_s_89 .selectable-content}, [ concatenating the keys and SP 800-108)*, *concatenating the keys and using a KDF (as described | using a [KDF](#abbr_KDF) (as described in SP 800-108)]{#_s_90 in SP 800-56C)*\]* | .selectable-content}, [concatenating the keys and using a > [KDF](#abbr_KDF) (as described in SP 800-56C)]{#_s_91 > .selectable-content} \]]{#_s_88 .selectable-content} \] with entropy corresponding to the security strength of \] with entropy corresponding to the security strength of [AES](#abbr_AES) key sizes of \[**selection**: *128*, *256*\] bits. | [AES](#abbr_AES) key sizes of \[**selection**: [128]{#_s_92 > .selectable-content}, [256]{#_s_93 .selectable-content} \] bits. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The intent of this requirement is to [Application Note: ]{.note-header}[ The intent of this requirement is to ensure that the [DEK](#abbr_DEK) cannot be recovered with less work than ensure that the [DEK](#abbr_DEK) cannot be recovered with less work than a full exhaust of the key space for [AES](#abbr_AES). The key generation a full exhaust of the key space for [AES](#abbr_AES). The key generation capability of the [TOE](#abbr_TOE) uses a [RBG](#abbr_RBG) implemented capability of the [TOE](#abbr_TOE) uses a [RBG](#abbr_RBG) implemented on the [TOE](#abbr_TOE) device ([FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1)). on the [TOE](#abbr_TOE) device ([FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1)). Either 128-bit or 256-bit (or both) are allowed; the [ST](#abbr_ST) Either 128-bit or 256-bit (or both) are allowed; the [ST](#abbr_ST) author makes the selection appropriate for the device. A author makes the selection appropriate for the device. A [DEK](#abbr_DEK) is used in addition to the [KEK](#abbr_KEK) so that [DEK](#abbr_DEK) is used in addition to the [KEK](#abbr_KEK) so that authentication factors can be changed without having to re-encrypt all authentication factors can be changed without having to re-encrypt all of the user data on the device.\ of the user data on the device.\ \ \ The [ST](#abbr_ST) author selects all applicable [DEK](#abbr_DEK) The [ST](#abbr_ST) author selects all applicable [DEK](#abbr_DEK) generation types implemented by the [TOE](#abbr_TOE).\ generation types implemented by the [TOE](#abbr_TOE).\ \ \ SP 800-56C specifies a two-step key derivation procedure that employs an SP 800-56C specifies a two-step key derivation procedure that employs an extraction-then-expansion technique for deriving keying material from a extraction-then-expansion technique for deriving keying material from a shared secret generated during a key establishment scheme. The shared secret generated during a key establishment scheme. The Randomness Extraction step as described in Section 5 of SP 800-56C is Randomness Extraction step as described in Section 5 of SP 800-56C is followed by Key Expansion using the key derivation functions defined in followed by Key Expansion using the key derivation functions defined in SP 800-108 (as described in Section 6 of SP 800-56C). ]{.note} SP 800-108 (as described in Section 6 of SP 800-56C). ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_CKM\_EXT.2](#FCS_CKM_EXT.2):\ | ::: {.component-activity-header} > [FCS\_CKM\_EXT.2](#FCS_CKM_EXT.2) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure that the documentation of the product\'s The evaluator shall ensure that the documentation of the product\'s encryption key management is detailed enough that, after reading, the encryption key management is detailed enough that, after reading, the product\'s key management hierarchy is clear and that it meets the product\'s key management hierarchy is clear and that it meets the requirements to ensure the keys are adequately protected. The evaluator requirements to ensure the keys are adequately protected. The evaluator shall ensure that the documentation includes both an essay and one or shall ensure that the documentation includes both an essay and one or more diagrams. Note that this may also be documented as separate more diagrams. Note that this may also be documented as separate proprietary evidence rather than being included in the proprietary evidence rather than being included in the [TSS](#abbr_TSS).\ [TSS](#abbr_TSS).\ \ \ The evaluator shall also examine the key hierarchy section of the The evaluator shall also examine the key hierarchy section of the [TSS](#abbr_TSS) to ensure that the formation of all DEKs is described | [TSS](#abbr_TSS) to ensure that the formation of all [DEKs](#abbr_DEK) and that the key sizes match that described by the [ST](#abbr_ST) | is described and that the key sizes match that described by the author. The evaluator shall examine the key hierarchy section of the | [ST](#abbr_ST) author. The evaluator shall examine the key hierarchy [TSS](#abbr_TSS) to ensure that each [DEK](#abbr_DEK) is generated or | section of the [TSS](#abbr_TSS) to ensure that each [DEK](#abbr_DEK) is combined from keys of equal or greater security strength using one of | generated or combined from keys of equal or greater security strength the selected methods.\ | using one of the selected methods.\ - If the symmetric [DEK](#abbr_DEK) is generated by an - If the symmetric [DEK](#abbr_DEK) is generated by an [RBG](#abbr_RBG), the evaluator shall review the [TSS](#abbr_TSS) to [RBG](#abbr_RBG), the evaluator shall review the [TSS](#abbr_TSS) to determine that it describes how the functionality described by determine that it describes how the functionality described by [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) is invoked. The evaluator uses the [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) is invoked. The evaluator uses the description of the [RBG](#abbr_RBG) functionality in description of the [RBG](#abbr_RBG) functionality in [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) or documentation available for the [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) or documentation available for the operational environment to determine that the key size being operational environment to determine that the key size being requested is greater than or equal to the key size and mode to be requested is greater than or equal to the key size and mode to be used for the encryption/decryption of the data. used for the encryption/decryption of the data. - If the [DEK](#abbr_DEK) is formed from a combination, the evaluator - If the [DEK](#abbr_DEK) is formed from a combination, the evaluator shall verify that the [TSS](#abbr_TSS) describes the method of shall verify that the [TSS](#abbr_TSS) describes the method of combination and that this method is either an XOR or a KDF to | combination and that this method is either an XOR or a justify that the effective entropy of each factor is preserved. The | [KDF](#abbr_KDF) to justify that the effective entropy of each evaluator shall also verify that each combined value was originally | factor is preserved. The evaluator shall also verify that each generated from an Approved DRBG described in | combined value was originally generated from an Approved DRBG [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1). | described in [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1). - If "concatenating the keys and using a KDF (as described in (SP | - If "concatenating the keys and using a [KDF](#abbr_KDF) (as 800-56C)" is selected, the evaluator shall ensure the | described in (SP 800-56C)" is selected, the evaluator shall ensure [TSS](#abbr_TSS) includes a description of the randomness extraction | the [TSS](#abbr_TSS) includes a description of the randomness step. | extraction step. The description must include how an approved untruncated MAC function is The description must include how an approved untruncated MAC function is being used for the randomness extraction step and the evaluator must being used for the randomness extraction step and the evaluator must verify the [TSS](#abbr_TSS) describes that the output length (in bits) verify the [TSS](#abbr_TSS) describes that the output length (in bits) of the MAC function is at least as large as the targeted security of the MAC function is at least as large as the targeted security strength (in bits) of the parameter set employed by the key strength (in bits) of the parameter set employed by the key establishment scheme (see Tables 1-3 of SP 800-56C).\ establishment scheme (see Tables 1-3 of SP 800-56C).\ \ \ The description must include how the MAC function being used for the The description must include how the MAC function being used for the randomness extraction step is related to the PRF used in the key | randomness extraction step is related to the [PRF](#abbr_PRF) used in expansion and verify the [TSS](#abbr_TSS) description includes the | the key expansion and verify the [TSS](#abbr_TSS) description includes correct MAC function: | the correct MAC function: - If an [HMAC](#abbr_HMAC)-hash is used in the randomness extraction - If an [HMAC](#abbr_HMAC)-hash is used in the randomness extraction step, then the same [HMAC](#abbr_HMAC)-hash (with the same hash step, then the same [HMAC](#abbr_HMAC)-hash (with the same hash function hash) is used as the PRF in the key expansion step. | function hash) is used as the [PRF](#abbr_PRF) in the key expansion > step. - If an [AES](#abbr_AES)-CMAC (with key length 128, 192, or 256 bits) - If an [AES](#abbr_AES)-CMAC (with key length 128, 192, or 256 bits) is used in the randomness extraction step, then is used in the randomness extraction step, then [AES](#abbr_AES)-CMAC with a 128-bit key is used as the PRF in the | [AES](#abbr_AES)-CMAC with a 128-bit key is used as the key expansion step. | [PRF](#abbr_PRF) in the key expansion step. - The description must include the lengths of the salt values being - The description must include the lengths of the salt values being used in the randomness extraction step and the evaluator shall used in the randomness extraction step and the evaluator shall verify the [TSS](#abbr_TSS) description includes correct salt verify the [TSS](#abbr_TSS) description includes correct salt lengths: lengths: - If an [HMAC](#abbr_HMAC)-hash is being used as the MAC, the salt - If an [HMAC](#abbr_HMAC)-hash is being used as the MAC, the salt length can be any value up to the maximum bit length permitted for length can be any value up to the maximum bit length permitted for input to the hash function hash. input to the hash function hash. - If an [AES](#abbr_AES)-CMAC is being used as the MAC, the salt - If an [AES](#abbr_AES)-CMAC is being used as the MAC, the salt length shall be the same length as the [AES](#abbr_AES) key (i.e. length shall be the same length as the [AES](#abbr_AES) key (i.e. 128, 192, or 256 bits). 128, 192, or 256 bits). (conditional) If a KDF is used, the evaluator shall ensure that the | (conditional) If a [KDF](#abbr_KDF) is used, the evaluator shall ensure [TSS](#abbr_TSS) includes a description of the key derivation function | that the [TSS](#abbr_TSS) includes a description of the key derivation and shall verify the key derivation uses an approved derivation mode and | function and shall verify the key derivation uses an approved derivation key expansion algorithm according to SP 800-108 or SP 800-56C.\ | mode and key expansion algorithm according to SP 800-108 or SP 800-56C.\ \ < \ \ > ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator uses the description of the [RBG](#abbr_RBG) functionality The evaluator uses the description of the [RBG](#abbr_RBG) functionality in [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) or documentation available for the in [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) or documentation available for the operational environment to determine that the key size being generated operational environment to determine that the key size being generated or combined is identical to the key size and mode to be used for the or combined is identical to the key size and mode to be used for the encryption/decryption of the data.\ encryption/decryption of the data.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: If a KDF is used, the evaluator shall perform one or more of the | ::: {.ea} following tests to verify the correctness of the key derivation | If a [KDF](#abbr_KDF) is used, the evaluator shall perform one or more > of the following tests to verify the correctness of the key derivation function, depending on the mode(s) that are supported. [Table function, depending on the mode(s) that are supported. [Table [4]{.counter}](#notations){.notations-ref} maps the data fields to the [4]{.counter}](#notations){.notations-ref} maps the data fields to the notations used in SP 800-108 and SP 800-56C.\ notations used in SP 800-108 and SP 800-56C.\ \ \ **[Table [4]{.counter}: Notations used in SP 800-108 and SP **[Table [4]{.counter}: Notations used in SP 800-108 and SP 800-56C]{#notations .ctr data-myid="notations" 800-56C]{#notations .ctr data-myid="notations" data-counter-type="ct-Table"}**\ data-counter-type="ct-Table"}**\ ----------------------------------- ------------------------- ------------------- | -------------------------------------- ------------------------- ------------------ Data Fields Notations | Data Fields Notations SP 800-108 SP 800-56C | SP 800-108 SP 800-56C Pseudorandom function PRF PRF | Pseudorandom function [PRF](#abbr_PRF) [PRF](#abbr_PRF) Counter length r r | Counter length r r Length of output of PRF h h | Length of output of [PRF](#abbr_PRF) h h Length of derived keying material L L | Length of derived keying material L L Length of input values l length l length | Length of input values l length l length Pseudorandom input values I K1 (key derivation key) Z (shared secret) | Pseudorandom input values I K1 (key derivation key) Z (shared secret) Pseudorandom salt values n/a s | Pseudorandom salt values n/a s Randomness extraction MAC n/a MAC | Randomness extraction MAC n/a MAC ----------------------------------- ------------------------- ------------------- | -------------------------------------- ------------------------- ------------------ \ \ \ \ **Counter Mode Tests:**\ **Counter Mode Tests:**\ \ \ The evaluator shall determine the following characteristics of the key The evaluator shall determine the following characteristics of the key derivation function: derivation function: One or more pseudorandom functions that are supported by the One or more pseudorandom functions that are supported by the implementation (PRF). | implementation ([PRF](#abbr_PRF)). One or more of the values {8, 16, 24, 32} that equal the length of the One or more of the values {8, 16, 24, 32} that equal the length of the binary representation of the counter (r). binary representation of the counter (r). The length (in bits) of the output of the PRF (h). | The length (in bits) of the output of the [PRF](#abbr_PRF) (h). Minimum and maximum values for the length (in bits) of the derived Minimum and maximum values for the length (in bits) of the derived keying material (L). These values can be equal if only one value of L is keying material (L). These values can be equal if only one value of L is supported. These must be evenly divisible by h. supported. These must be evenly divisible by h. Up to two values of L that are NOT evenly divisible by h. Up to two values of L that are NOT evenly divisible by h. Location of the counter relative to fixed input data: before, after, or Location of the counter relative to fixed input data: before, after, or in the middle. in the middle. - Counter before fixed input data: fixed input data string length (in - Counter before fixed input data: fixed input data string length (in bytes), fixed input data string value. bytes), fixed input data string value. - Counter after fixed input data: fixed input data string length (in - Counter after fixed input data: fixed input data string length (in bytes), fixed input data string value. bytes), fixed input data string value. - Counter in the middle of fixed input data: length of data before - Counter in the middle of fixed input data: length of data before counter (in bytes), length of data after counter (in bytes), value counter (in bytes), length of data after counter (in bytes), value of string input before counter, value of string input after counter. of string input before counter, value of string input after counter. The length (I\_length) of the input values I. The length (I\_length) of the input values I. For each supported combination of I\_length, MAC, salt, PRF, counter | For each supported combination of I\_length, MAC, salt, location, value of r, and value of L, the evaluator shall generate 10 | [PRF](#abbr_PRF), counter location, value of r, and value of L, the test vectors that include pseudorandom input values I, and pseudorandom | evaluator shall generate 10 test vectors that include pseudorandom input salt values. If there is only one value of L that is evenly divisible by | values I, and pseudorandom salt values. If there is only one value of L h, the evaluator shall generate 20 test vectors for it. For each test | that is evenly divisible by h, the evaluator shall generate 20 test vector, the evaluator shall supply this data to the [TOE](#abbr_TOE) in | vectors for it. For each test vector, the evaluator shall supply this order to produce the keying material output.\ | data to the [TOE](#abbr_TOE) in order to produce the keying material > output.\ \ \ The results from each test may either be obtained by the evaluator The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same compare the resulting values to those obtained by submitting the same inputs to a known good implementation.\ inputs to a known good implementation.\ \ \ **Feedback Mode Tests:**\ **Feedback Mode Tests:**\ \ \ The evaluator shall determine the following characteristics of the key The evaluator shall determine the following characteristics of the key derivation function: derivation function: One or more pseudorandom functions that are supported by the One or more pseudorandom functions that are supported by the implementation (PRF). | implementation ([PRF](#abbr_PRF)). The length (in bits) of the output of the PRF (h). | The length (in bits) of the output of the [PRF](#abbr_PRF) (h). Minimum and maximum values for the length (in bits) of the derived Minimum and maximum values for the length (in bits) of the derived keying material (L). These values can be equal if only one value of L is keying material (L). These values can be equal if only one value of L is supported. These must be evenly divisible by h. supported. These must be evenly divisible by h. Up to two values of L that are NOT evenly divisible by h. Up to two values of L that are NOT evenly divisible by h. Whether or not zero-length IVs are supported. Whether or not zero-length IVs are supported. Whether or not a counter is used, and if so: Whether or not a counter is used, and if so: One or more of the values {8, 16, 24, 32} that equal the length of the One or more of the values {8, 16, 24, 32} that equal the length of the binary representation of the counter (r). binary representation of the counter (r). Location of the counter relative to fixed input data: before, after, or Location of the counter relative to fixed input data: before, after, or in the middle. in the middle. - Counter before fixed input data: fixed input data string length (in - Counter before fixed input data: fixed input data string length (in bytes), fixed input data string value. bytes), fixed input data string value. - Counter after fixed input data: fixed input data string length (in - Counter after fixed input data: fixed input data string length (in bytes), fixed input data string value. bytes), fixed input data string value. - Counter in the middle of fixed input data: length of data before - Counter in the middle of fixed input data: length of data before counter (in bytes), length of data after counter (in bytes), value counter (in bytes), length of data after counter (in bytes), value of string input before counter, value of string input after counter. of string input before counter, value of string input after counter. The length (I\_length) of the input values I. The length (I\_length) of the input values I. For each supported combination of I\_length, MAC, salt, PRF, counter | For each supported combination of I\_length, MAC, salt, location (if a counter is used), value of r (if a counter is used), and | [PRF](#abbr_PRF), counter location (if a counter is used), value of r value of L, the evaluator shall generate 10 test vectors that include | (if a counter is used), and value of L, the evaluator shall generate 10 pseudorandom input values I and pseudorandom salt values. If the KDF | test vectors that include pseudorandom input values I and pseudorandom supports zero-length IVs, five of these test vectors will be accompanied | salt values. If the [KDF](#abbr_KDF) supports zero-length IVs, five of by pseudorandom IVs and the other five will use zero-length IVs. If | these test vectors will be accompanied by pseudorandom IVs and the other zero-length IVs are not supported, each test vector will be accompanied | five will use zero-length IVs. If zero-length IVs are not supported, by an pseudorandom IV. If there is only one value of L that is evenly | each test vector will be accompanied by an pseudorandom IV. If there is divisible by h, the evaluator shall generate 20 test vectors for it.\ | only one value of L that is evenly divisible by h, the evaluator shall > generate 20 test vectors for it.\ \ \ For each test vector, the evaluator shall supply this data to the For each test vector, the evaluator shall supply this data to the [TOE](#abbr_TOE) in order to produce the keying material output. The [TOE](#abbr_TOE) in order to produce the keying material output. The results from each test may either be obtained by the evaluator directly results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the results or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a resulting values to those obtained by submitting the same inputs to a known good implementation.\ known good implementation.\ \ \ **Double Pipeline Iteration Mode Tests:**\ **Double Pipeline Iteration Mode Tests:**\ \ \ The evaluator shall determine the following characteristics of the key The evaluator shall determine the following characteristics of the key derivation function: derivation function: One or more pseudorandom functions that are supported by the One or more pseudorandom functions that are supported by the implementation (PRF). | implementation ([PRF](#abbr_PRF)). The length (in bits) of the output of the PRF (h). | The length (in bits) of the output of the [PRF](#abbr_PRF) (h). Minimum and maximum values for the length (in bits) of the derived Minimum and maximum values for the length (in bits) of the derived keying material (L). These values can be equal if only one value of L is keying material (L). These values can be equal if only one value of L is supported. These must be evenly divisible by h. supported. These must be evenly divisible by h. Up to two values of L that are NOT evenly divisible by h. Up to two values of L that are NOT evenly divisible by h. Whether or not a counter is used, and if so: Whether or not a counter is used, and if so: One or more of the values {8, 16, 24, 32} that equal the length of the One or more of the values {8, 16, 24, 32} that equal the length of the binary representation of the counter (r). binary representation of the counter (r). Location of the counter relative to fixed input data: before, after, or Location of the counter relative to fixed input data: before, after, or in the middle. in the middle. - Counter before fixed input data: fixed input data string length (in - Counter before fixed input data: fixed input data string length (in bytes), fixed input data string value. bytes), fixed input data string value. - Counter after fixed input data: fixed input data string length (in - Counter after fixed input data: fixed input data string length (in bytes), fixed input data string value. bytes), fixed input data string value. - Counter in the middle of fixed input data: length of data before - Counter in the middle of fixed input data: length of data before counter (in bytes), length of data after counter (in bytes), value counter (in bytes), length of data after counter (in bytes), value of string input before counter, value of string input after counter. of string input before counter, value of string input after counter. The length (I\_length) of the input values I. The length (I\_length) of the input values I. For each supported combination of I\_length, MAC, salt, PRF, counter | For each supported combination of I\_length, MAC, salt, location (if a counter is used), value of r (if a counter is used), and | [PRF](#abbr_PRF), counter location (if a counter is used), value of r value of L, the evaluator shall generate 10 test vectors that include | (if a counter is used), and value of L, the evaluator shall generate 10 pseudorandom input values I, and pseudorandom salt values. If there is | test vectors that include pseudorandom input values I, and pseudorandom only one value of L that is evenly divisible by h, the evaluator shall | salt values. If there is only one value of L that is evenly divisible by generate 20 test vectors for it.\ | h, the evaluator shall generate 20 test vectors for it.\ \ \ For each test vector, the evaluator shall supply this data to the For each test vector, the evaluator shall supply this data to the [TOE](#abbr_TOE) in order to produce the keying material output. The [TOE](#abbr_TOE) in order to produce the keying material output. The results from each test may either be obtained by the evaluator directly results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the results or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a resulting values to those obtained by submitting the same inputs to a known good implementation.\ known good implementation.\ \ \ \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_CKM_EXT.3 .comp} ::: {#FCS_CKM_EXT.3 .comp} #### FCS\_CKM\_EXT.3 Cryptographic Key Generation #### FCS\_CKM\_EXT.3 Cryptographic Key Generation ::: {.element} ::: {.element} ::: {#FCS_CKM_EXT.3.1 .reqid} ::: {#FCS_CKM_EXT.3.1 .reqid} [FCS\_CKM\_EXT.3.1](#FCS_CKM_EXT.3.1){.abbr} [FCS\_CKM\_EXT.3.1](#FCS_CKM_EXT.3.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall use \[**selection**: The [TSF](#abbr_TSF) shall use \[**selection**: - *asymmetric KEKs of \[**assignment**: [security strength greater | - [asymmetric KEKs of \[**assignment**: [security strength greater than or equal to 112 bits]{.assignable-content}\] security than or equal to 112 bits]{.assignable-content}\] security strength*, | strength]{#_s_94 .selectable-content} - *symmetric KEKs of \[**selection**: *128-bit*, *256-bit*\] security | - [symmetric KEKs of \[**selection**: [128-bit]{#_s_96 strength corresponding to at least the security strength of the keys | .selectable-content}, [256-bit]{#_s_97 .selectable-content} \] encrypted by the [KEK](#abbr_KEK)* | security strength corresponding to at least the security strength of > the keys encrypted by the [KEK](#abbr_KEK)]{#_s_95 > .selectable-content} \]. \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The [ST](#abbr_ST) author selects [Application Note: ]{.note-header}[ The [ST](#abbr_ST) author selects all applicable [KEK](#abbr_KEK) types implemented by the all applicable [KEK](#abbr_KEK) types implemented by the [TOE](#abbr_TOE). ]{.note} [TOE](#abbr_TOE). ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FCS_CKM_EXT.3.2 .reqid} ::: {#FCS_CKM_EXT.3.2 .reqid} [FCS\_CKM\_EXT.3.2](#FCS_CKM_EXT.3.2){.abbr} [FCS\_CKM\_EXT.3.2](#FCS_CKM_EXT.3.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall generate all KEKs using one of the following The [TSF](#abbr_TSF) shall generate all KEKs using one of the following methods: methods: - Derive the [KEK](#abbr_KEK) from a Password Authentication Factor - Derive the [KEK](#abbr_KEK) from a Password Authentication Factor according to [FCS\_COP.1.1/CONDITION](#FCS_COP.1.1/CONDITION) and according to [FCS\_COP.1.1/CONDITION](#FCS_COP.1.1/CONDITION) and \[**selection**: \[**selection**: - *Generate the [KEK](#abbr_KEK) using an [RBG](#abbr_RBG) that meets | - [Generate the [KEK](#abbr_KEK) using an [RBG](#abbr_RBG) that meets this profile (as specified in [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1))*, | this profile (as specified in - *Generate the [KEK](#abbr_KEK) using a key generation scheme that | [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1))]{#_s_98 .selectable-content} meets this profile (as specified in [FCS\_CKM.1](#FCS_CKM.1))*, | - [Generate the [KEK](#abbr_KEK) using a key generation scheme that - *Combine the [KEK](#abbr_KEK) from other KEKs in a way that | meets this profile (as specified in > [FCS\_CKM.1](#FCS_CKM.1))]{#_s_99 .selectable-content} > - [Combine the [KEK](#abbr_KEK) from other KEKs in a way that preserves the effective entropy of each factor by \[**selection**: preserves the effective entropy of each factor by \[**selection**: *using an XOR operation*, *concatenating the keys and using a KDF | [using an XOR operation]{#_s_101 .selectable-content}, (as described in SP 800-108)*, *concatenating the keys and using a | [concatenating the keys and using a [KDF](#abbr_KDF) (as described KDF (as described in SP 800-56C)*, *encrypting one key with | in SP 800-108)]{#_s_102 .selectable-content}, [concatenating the another*\]* | keys and using a [KDF](#abbr_KDF) (as described in SP > 800-56C)]{#_s_103 .selectable-content}, [encrypting one key with > another]{#_s_104 .selectable-content} \] ]{#_s_100 > .selectable-content} \]. \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The conditioning of passwords is [Application Note: ]{.note-header}[ The conditioning of passwords is performed in accordance with performed in accordance with [FCS\_COP.1/CONDITION](#FCS_COP.1/CONDITION).\ [FCS\_COP.1/CONDITION](#FCS_COP.1/CONDITION).\ \ \ It is expected that key generation derived from conditioning, using an It is expected that key generation derived from conditioning, using an [RBG](#abbr_RBG) or generation scheme, and through combination, will [RBG](#abbr_RBG) or generation scheme, and through combination, will each be necessary to meet the requirements set out in this document. In each be necessary to meet the requirements set out in this document. In particular, [Figure [3]{.counter}](#Keys){.Keys-ref} has KEKs of each particular, [Figure [3]{.counter}](#Keys){.Keys-ref} has KEKs of each type: KEK\_3 is generated, KEK\_1 is derived from a Password type: KEK\_3 is generated, KEK\_1 is derived from a Password Authentication Factor, and KEK\_2 is combined from two KEKs. In [Figure Authentication Factor, and KEK\_2 is combined from two KEKs. In [Figure [3]{.counter}](#Keys){.Keys-ref}, KEK\_3 may either be a symmetric key [3]{.counter}](#Keys){.Keys-ref}, KEK\_3 may either be a symmetric key generated from an [RBG](#abbr_RBG) or an asymmetric key generated using generated from an [RBG](#abbr_RBG) or an asymmetric key generated using a key generation scheme according to [FCS\_CKM.1](#FCS_CKM.1).\ a key generation scheme according to [FCS\_CKM.1](#FCS_CKM.1).\ \ \ If combined, the [ST](#abbr_ST) author shall describe which method of If combined, the [ST](#abbr_ST) author shall describe which method of combination is used in order to justify that the effective entropy of combination is used in order to justify that the effective entropy of each factor is preserved.\ each factor is preserved.\ \ \ SP 800-56C specifies a two-step key derivation procedure that employs an SP 800-56C specifies a two-step key derivation procedure that employs an extraction-then-expansion technique for deriving keying material from a extraction-then-expansion technique for deriving keying material from a shared secret generated during a key establishment scheme. The shared secret generated during a key establishment scheme. The Randomness Extraction step as described in Section 5 of SP 800-56C is Randomness Extraction step as described in Section 5 of SP 800-56C is followed by Key Expansion using the key derivation functions defined in followed by Key Expansion using the key derivation functions defined in SP 800-108 (as described in Section 6 of SP 800-56C). ]{.note} SP 800-108 (as described in Section 6 of SP 800-56C). ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3):\ | ::: {.component-activity-header} > [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall examine the key hierarchy section of the The evaluator shall examine the key hierarchy section of the [TSS](#abbr_TSS) to ensure that the formation of all KEKs are described [TSS](#abbr_TSS) to ensure that the formation of all KEKs are described and that the key sizes match that described by the [ST](#abbr_ST) and that the key sizes match that described by the [ST](#abbr_ST) author. The evaluator shall examine the key hierarchy section of the author. The evaluator shall examine the key hierarchy section of the [TSS](#abbr_TSS) to ensure that each key (DEKs, software-based key | [TSS](#abbr_TSS) to ensure that each key ([DEKs](#abbr_DEK), storage, and KEKs) is encrypted by keys of equal or greater security | software-based key storage, and KEKs) is encrypted by keys of equal or strength using one of the selected methods.\ | greater security strength using one of the selected methods.\ \ \ The evaluator shall review the [TSS](#abbr_TSS) to verify that it The evaluator shall review the [TSS](#abbr_TSS) to verify that it contains a description of the conditioning used to derive KEKs. This contains a description of the conditioning used to derive KEKs. This description must include the size and storage location of salts. This description must include the size and storage location of salts. This activity may be performed in combination with that for activity may be performed in combination with that for [FCS\_COP.1/CONDITION](#FCS_COP.1/CONDITION).\ [FCS\_COP.1/CONDITION](#FCS_COP.1/CONDITION).\ \ \ (conditional) If the symmetric [KEK](#abbr_KEK) is generated by an (conditional) If the symmetric [KEK](#abbr_KEK) is generated by an [RBG](#abbr_RBG), the evaluator shall review the [TSS](#abbr_TSS) to [RBG](#abbr_RBG), the evaluator shall review the [TSS](#abbr_TSS) to determine that it describes how the functionality described by determine that it describes how the functionality described by [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) is invoked. The evaluator uses the [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) is invoked. The evaluator uses the description of the [RBG](#abbr_RBG) functionality in description of the [RBG](#abbr_RBG) functionality in [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) or documentation available for the [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) or documentation available for the operational environment to determine that the key size being requested operational environment to determine that the key size being requested is greater than or equal to the key size and mode to be used for the is greater than or equal to the key size and mode to be used for the encryption/decryption of the data.\ encryption/decryption of the data.\ \ \ (conditional) If the [KEK](#abbr_KEK) is generated according to an (conditional) If the [KEK](#abbr_KEK) is generated according to an asymmetric key scheme, the evaluator shall review the [TSS](#abbr_TSS) asymmetric key scheme, the evaluator shall review the [TSS](#abbr_TSS) to determine that it describes how the functionality described by to determine that it describes how the functionality described by [FCS\_CKM.1](#FCS_CKM.1) is invoked. The evaluator uses the description [FCS\_CKM.1](#FCS_CKM.1) is invoked. The evaluator uses the description of the key generation functionality in [FCS\_CKM.1](#FCS_CKM.1) or of the key generation functionality in [FCS\_CKM.1](#FCS_CKM.1) or documentation available for the operational environment to determine documentation available for the operational environment to determine that the key strength being requested is greater than or equal to 112 that the key strength being requested is greater than or equal to 112 bits.\ bits.\ \ \ (conditional) If the [KEK](#abbr_KEK) is formed from a combination, the (conditional) If the [KEK](#abbr_KEK) is formed from a combination, the evaluator shall verify that the [TSS](#abbr_TSS) describes the method of evaluator shall verify that the [TSS](#abbr_TSS) describes the method of combination and that this method is either an XOR, a KDF, or | combination and that this method is either an XOR, a [KDF](#abbr_KDF), encryption.\ | or encryption.\ \ \ (conditional) If a KDF is used, the evaluator shall ensure that the | (conditional) If a [KDF](#abbr_KDF) is used, the evaluator shall ensure [TSS](#abbr_TSS) includes a description of the key derivation function | that the [TSS](#abbr_TSS) includes a description of the key derivation and shall verify the key derivation uses an approved derivation mode and | function and shall verify the key derivation uses an approved derivation key expansion algorithm according to SP 800-108.\ | mode and key expansion algorithm according to SP 800-108.\ \ | \ (conditional) If \"concatenating the keys and using a KDF (as described | (conditional) If \"concatenating the keys and using a [KDF](#abbr_KDF) in (SP 800-56C)\" is selected, the evaluator shall ensure the | (as described in (SP 800-56C)\" is selected, the evaluator shall ensure [TSS](#abbr_TSS) includes a description of the randomness extraction | the [TSS](#abbr_TSS) includes a description of the randomness extraction step. The description must include step. The description must include How an approved untruncated MAC function is being used for the How an approved untruncated MAC function is being used for the randomness extraction step and the evaluator must verify the randomness extraction step and the evaluator must verify the [TSS](#abbr_TSS) describes that the output length (in bits) of the MAC [TSS](#abbr_TSS) describes that the output length (in bits) of the MAC function is at least as large as the targeted security strength (in function is at least as large as the targeted security strength (in bits) of the parameter set employed by the key establishment scheme (see bits) of the parameter set employed by the key establishment scheme (see Tables 1-3 of SP 800-56C). Tables 1-3 of SP 800-56C). How the MAC function being used for the randomness extraction step is How the MAC function being used for the randomness extraction step is related to the PRF used in the key expansion and verify the | related to the [PRF](#abbr_PRF) used in the key expansion and verify the [TSS](#abbr_TSS) description includes the correct MAC function: [TSS](#abbr_TSS) description includes the correct MAC function: - If an [HMAC](#abbr_HMAC)-hash is used in the randomness extraction - If an [HMAC](#abbr_HMAC)-hash is used in the randomness extraction step, then the same [HMAC](#abbr_HMAC)-hash (with the same hash step, then the same [HMAC](#abbr_HMAC)-hash (with the same hash function hash) is used as the PRF in the key expansion step. | function hash) is used as the [PRF](#abbr_PRF) in the key expansion > step. - If an [AES](#abbr_AES)-CMAC (with key length 128, 192, or 256 bits) - If an [AES](#abbr_AES)-CMAC (with key length 128, 192, or 256 bits) is used in the randomness extraction step, then is used in the randomness extraction step, then [AES](#abbr_AES)-CMAC with a 128-bit key is used as the PRF in the | [AES](#abbr_AES)-CMAC with a 128-bit key is used as the key expansion step. | [PRF](#abbr_PRF) in the key expansion step. The lengths of the salt values being used in the randomness extraction The lengths of the salt values being used in the randomness extraction step and the evaluator shall verify the [TSS](#abbr_TSS) description step and the evaluator shall verify the [TSS](#abbr_TSS) description includes correct salt lengths: includes correct salt lengths: - If an [HMAC](#abbr_HMAC)-hash is being used as the MAC, the salt - If an [HMAC](#abbr_HMAC)-hash is being used as the MAC, the salt length can be any value up to the maximum bit length permitted for length can be any value up to the maximum bit length permitted for input to the hash function hash. input to the hash function hash. - If an [AES](#abbr_AES)-CMAC is being used as the MAC, the salt - If an [AES](#abbr_AES)-CMAC is being used as the MAC, the salt length shall be the same length as the [AES](#abbr_AES) key (i.e. length shall be the same length as the [AES](#abbr_AES) key (i.e. 128, 192, or 256 bits). 128, 192, or 256 bits). \ \ The evaluator shall also ensure that the documentation of the product\'s The evaluator shall also ensure that the documentation of the product\'s encryption key management is detailed enough that, after reading, the encryption key management is detailed enough that, after reading, the product\'s key management hierarchy is clear and that it meets the product\'s key management hierarchy is clear and that it meets the requirements to ensure the keys are adequately protected. The evaluator requirements to ensure the keys are adequately protected. The evaluator shall ensure that the documentation includes both an essay and one or shall ensure that the documentation includes both an essay and one or more diagrams. Note that this may also be documented as separate more diagrams. Note that this may also be documented as separate proprietary evidence rather than being included in the proprietary evidence rather than being included in the [TSS](#abbr_TSS).\ [TSS](#abbr_TSS).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: If a KDF is used, the evaluator shall perform one or more of the | ::: {.ea} following tests to verify the correctness of the key derivation | If a [KDF](#abbr_KDF) is used, the evaluator shall perform one or more > of the following tests to verify the correctness of the key derivation function, depending on the mode(s) that are supported. [Table function, depending on the mode(s) that are supported. [Table [5]{.counter}](#KDF){.KDF-ref} maps the data fields to the notations [5]{.counter}](#KDF){.KDF-ref} maps the data fields to the notations used in SP 800-108 and SP 800-56C.\ used in SP 800-108 and SP 800-56C.\ \ \ **[Table [5]{.counter}: Notations used in SP 800-108 and SP **[Table [5]{.counter}: Notations used in SP 800-108 and SP 800-56C]{#KDF .ctr data-myid="KDF" data-counter-type="ct-Table"}**\ 800-56C]{#KDF .ctr data-myid="KDF" data-counter-type="ct-Table"}**\ Data Fields Data Fields ::: ::: ::: ::: ::: ::: ::: ::: Notations Notations SP 800-108 SP 800-108 SP 800-56C SP 800-56C Pseudorandom function Pseudorandom function PRF | [PRF](#abbr_PRF) PRF | [PRF](#abbr_PRF) Counter length Counter length r r r r Length of output of PRF | Length of output of [PRF](#abbr_PRF) h h h h Length of derived keying material Length of derived keying material L L L L Length of input values Length of input values I\_length I\_length I\_length I\_length Pseudorandom input values I Pseudorandom input values I K~1~ (key derivation key) K~1~ (key derivation key) Z (shared secret) Z (shared secret) Pseudorandom salt values Pseudorandom salt values n/a n/a s s Randomness extraction MAC Randomness extraction MAC n/a n/a MAC MAC \ \ \ \ **Counter Mode Tests:**\ **Counter Mode Tests:**\ \ \ The evaluator shall determine the following characteristics of the key The evaluator shall determine the following characteristics of the key derivation function: derivation function: - One or more pseudorandom functions that are supported by the - One or more pseudorandom functions that are supported by the implementation (PRF). | implementation ([PRF](#abbr_PRF)). - One or more of the values {8, 16, 24, 32} that equal the length of - One or more of the values {8, 16, 24, 32} that equal the length of the binary representation of the counter (r). the binary representation of the counter (r). - The length (in bits) of the output of the PRF (h). | - The length (in bits) of the output of the [PRF](#abbr_PRF) (h). - Minimum and maximum values for the length (in bits) of the derived - Minimum and maximum values for the length (in bits) of the derived keying material (L). These values can be equal if only one value of keying material (L). These values can be equal if only one value of L is supported. These must be evenly divisible by h. L is supported. These must be evenly divisible by h. - Up to two values of L that are NOT evenly divisible by h. - Up to two values of L that are NOT evenly divisible by h. - Location of the counter relative to fixed input data: before, after, - Location of the counter relative to fixed input data: before, after, or in the middle. or in the middle. - Counter before fixed input data: fixed input data string length - Counter before fixed input data: fixed input data string length (in bytes), fixed input data string value. (in bytes), fixed input data string value. - Counter after fixed input data: fixed input data string length - Counter after fixed input data: fixed input data string length (in bytes), fixed input data string value. (in bytes), fixed input data string value. - Counter in the middle of fixed input data: length of data before - Counter in the middle of fixed input data: length of data before counter (in bytes), length of data after counter (in bytes), counter (in bytes), length of data after counter (in bytes), value of string input before counter, value of string input value of string input before counter, value of string input after counter. after counter. - The length (I\_length) of the input values I. - The length (I\_length) of the input values I. \ \ For each supported combination of I\_length, MAC, salt, PRF, counter | For each supported combination of I\_length, MAC, salt, location, value of r, and value of L, the evaluator shall generate 10 | [PRF](#abbr_PRF), counter location, value of r, and value of L, the test vectors that include pseudorandom input values I, and pseudorandom | evaluator shall generate 10 test vectors that include pseudorandom input salt values. If there is only one value of L that is evenly divisible by | values I, and pseudorandom salt values. If there is only one value of L h, the evaluator shall generate 20 test vectors for it. For each test | that is evenly divisible by h, the evaluator shall generate 20 test vector, the evaluator shall supply this data to the [TOE](#abbr_TOE) in | vectors for it. For each test vector, the evaluator shall supply this order to produce the keying material output.\ | data to the [TOE](#abbr_TOE) in order to produce the keying material > output.\ \ \ The results from each test may either be obtained by the evaluator The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same compare the resulting values to those obtained by submitting the same inputs to a known good implementation.\ inputs to a known good implementation.\ \ \ **Feedback Mode Tests:**\ **Feedback Mode Tests:**\ The evaluator shall determine the following characteristics of the key The evaluator shall determine the following characteristics of the key derivation function:\ derivation function:\ One or more pseudorandom functions that are supported by the One or more pseudorandom functions that are supported by the implementation (PRF). | implementation ([PRF](#abbr_PRF)). The length (in bits) of the output of the PRF (h). | The length (in bits) of the output of the [PRF](#abbr_PRF) (h). Minimum and maximum values for the length (in bits) of the derived Minimum and maximum values for the length (in bits) of the derived keying material (L). These values can be equal if only one value of L is keying material (L). These values can be equal if only one value of L is supported. These must be evenly divisible by h. supported. These must be evenly divisible by h. Up to two values of L that are NOT evenly divisible by h. Up to two values of L that are NOT evenly divisible by h. Whether or not zero-length IVs are supported. Whether or not zero-length IVs are supported. Whether or not a counter is used, and if so: Whether or not a counter is used, and if so: One or more of the values {8, 16, 24, 32} that equal the length of the One or more of the values {8, 16, 24, 32} that equal the length of the binary representation of the counter (r). binary representation of the counter (r). Location of the counter relative to fixed input data: before, after, or Location of the counter relative to fixed input data: before, after, or in the middle. in the middle. - Counter before fixed input data: fixed input data string length (in - Counter before fixed input data: fixed input data string length (in bytes), fixed input data string value. bytes), fixed input data string value. - Counter after fixed input data: fixed input data string length (in - Counter after fixed input data: fixed input data string length (in bytes), fixed input data string value. bytes), fixed input data string value. - Counter in the middle of fixed input data: length of data before - Counter in the middle of fixed input data: length of data before counter (in bytes), length of data after counter (in bytes), value counter (in bytes), length of data after counter (in bytes), value of string input before counter, value of string input after counter. of string input before counter, value of string input after counter. The length (I\_length) of the input values I. The length (I\_length) of the input values I. \ \ For each supported combination of I\_length, MAC, salt, PRF, counter | For each supported combination of I\_length, MAC, salt, location (if a counter is used), value of r (if a counter is used), and | [PRF](#abbr_PRF), counter location (if a counter is used), value of r value of L, the evaluator shall generate 10 test vectors that include | (if a counter is used), and value of L, the evaluator shall generate 10 pseudorandom input values I and pseudorandom salt values. If the KDF | test vectors that include pseudorandom input values I and pseudorandom supports zero-length IVs, five of these test vectors will be accompanied | salt values. If the [KDF](#abbr_KDF) supports zero-length IVs, five of by pseudorandom IVs and the other five will use zero-length IVs. If | these test vectors will be accompanied by pseudorandom IVs and the other zero-length IVs are not supported, each test vector will be accompanied | five will use zero-length IVs. If zero-length IVs are not supported, by an pseudorandom IV. If there is only one value of L that is evenly | each test vector will be accompanied by an pseudorandom IV. If there is divisible by h, the evaluator shall generate 20 test vectors for it.\ | only one value of L that is evenly divisible by h, the evaluator shall > generate 20 test vectors for it.\ \ \ For each test vector, the evaluator shall supply this data to the For each test vector, the evaluator shall supply this data to the [TOE](#abbr_TOE) in order to produce the keying material output. The [TOE](#abbr_TOE) in order to produce the keying material output. The results from each test may either be obtained by the evaluator directly results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the results or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a resulting values to those obtained by submitting the same inputs to a known good implementation.\ known good implementation.\ \ \ **Double Pipeline Iteration Mode Tests:**\ **Double Pipeline Iteration Mode Tests:**\ The evaluator shall determine the following characteristics of the key The evaluator shall determine the following characteristics of the key derivation function:\ derivation function:\ - One or more pseudorandom functions that are supported by the - One or more pseudorandom functions that are supported by the implementation (PRF). | implementation ([PRF](#abbr_PRF)). - The length (in bits) of the output of the PRF (h). | - The length (in bits) of the output of the [PRF](#abbr_PRF) (h). - Minimum and maximum values for the length (in bits) of the derived - Minimum and maximum values for the length (in bits) of the derived keying material (L). These values can be equal if only one value of keying material (L). These values can be equal if only one value of L is supported. These must be evenly divisible by h. L is supported. These must be evenly divisible by h. - Up to two values of L that are NOT evenly divisible by h. - Up to two values of L that are NOT evenly divisible by h. - Whether or not a counter is used, and if so: - Whether or not a counter is used, and if so: - One or more of the values {8, 16, 24, 32} that equal the length - One or more of the values {8, 16, 24, 32} that equal the length of the binary representation of the counter (r). of the binary representation of the counter (r). - Location of the counter relative to fixed input data: before, - Location of the counter relative to fixed input data: before, after, or in the middle. after, or in the middle. - Counter before fixed input data: fixed input data string - Counter before fixed input data: fixed input data string length (in bytes), fixed input data string value. length (in bytes), fixed input data string value. - Counter after fixed input data: fixed input data string - Counter after fixed input data: fixed input data string length (in bytes), fixed input data string value. length (in bytes), fixed input data string value. - Counter in the middle of fixed input data: length of data - Counter in the middle of fixed input data: length of data before counter (in bytes), length of data after counter (in before counter (in bytes), length of data after counter (in bytes), value of string input before counter, value of bytes), value of string input before counter, value of string input after counter. string input after counter. - The length (I\_length) of the input values I. - The length (I\_length) of the input values I. \ \ For each supported combination of I\_length, MAC, salt, PRF, counter | For each supported combination of I\_length, MAC, salt, location (if a counter is used), value of r (if a counter is used), and | [PRF](#abbr_PRF), counter location (if a counter is used), value of r value of L, the evaluator shall generate 10 test vectors that include | (if a counter is used), and value of L, the evaluator shall generate 10 pseudorandom input values I, and pseudorandom salt values. If there is | test vectors that include pseudorandom input values I, and pseudorandom only one value of L that is evenly divisible by h, the evaluator shall | salt values. If there is only one value of L that is evenly divisible by generate 20 test vectors for it.\ | h, the evaluator shall generate 20 test vectors for it.\ \ \ For each test vector, the evaluator shall supply this data to the For each test vector, the evaluator shall supply this data to the [TOE](#abbr_TOE) in order to produce the keying material output. The [TOE](#abbr_TOE) in order to produce the keying material output. The results from each test may either be obtained by the evaluator directly results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the results or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a resulting values to those obtained by submitting the same inputs to a known good implementation.\ | known good implementation. ::: {#FCS_CKM_EXT.4 .comp} ::: {#FCS_CKM_EXT.4 .comp} #### FCS\_CKM\_EXT.4 Key Destruction #### FCS\_CKM\_EXT.4 Key Destruction ::: {.element} ::: {.element} ::: {#FCS_CKM_EXT.4.1 .reqid} ::: {#FCS_CKM_EXT.4.1 .reqid} [FCS\_CKM\_EXT.4.1](#FCS_CKM_EXT.4.1){.abbr} [FCS\_CKM\_EXT.4.1](#FCS_CKM_EXT.4.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall destroy cryptographic keys in accordance with The [TSF](#abbr_TSF) shall destroy cryptographic keys in accordance with the specified cryptographic key destruction methods:\ the specified cryptographic key destruction methods:\ - by clearing the [KEK](#abbr_KEK) encrypting the target key - by clearing the [KEK](#abbr_KEK) encrypting the target key - in accordance with the following rules - in accordance with the following rules - For volatile memory, the destruction shall be executed by a - For volatile memory, the destruction shall be executed by a single direct overwrite \[**selection**: *consisting of a | single direct overwrite \[**selection**: [consisting of a pseudo-random pattern using the [TSF](#abbr_TSF)'s pseudo-random pattern using the [TSF](#abbr_TSF)'s [RBG](#abbr_RBG)*, *consisting of zeroes*\]. | [RBG](#abbr_RBG)]{#_s_105 .selectable-content}, [consisting of > zeroes]{#_s_106 .selectable-content} \]. - For non-volatile [EEPROM](#abbr_EEPROM), the destruction shall - For non-volatile [EEPROM](#abbr_EEPROM), the destruction shall be executed by a single direct overwrite consisting of a pseudo be executed by a single direct overwrite consisting of a pseudo random pattern using the [TSF](#abbr_TSF)'s [RBG](#abbr_RBG) (as random pattern using the [TSF](#abbr_TSF)'s [RBG](#abbr_RBG) (as specified in [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1)), followed by a specified in [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1)), followed by a read-verify. read-verify. - For non-volatile flash memory, that is not wear-leveled, the - For non-volatile flash memory, that is not wear-leveled, the destruction shall be executed \[**selection**: *by a single | destruction shall be executed \[**selection**: [by a single direct overwrite consisting of zeros followed by a read-verify*, | direct overwrite consisting of zeros followed by a *by a block erase that erases the reference to memory that | read-verify]{#_s_107 .selectable-content}, [by a block erase stores data as well as the data itself* \]. | that erases the reference to memory that stores data as well as > the data itself ]{#_s_108 .selectable-content} \]. - For non-volatile flash memory, that is wear-leveled, the - For non-volatile flash memory, that is wear-leveled, the destruction shall be executed \[**selection**: *by a single | destruction shall be executed \[**selection**: [by a single direct overwrite consisting of zeros*, *by a block erase*\]. | direct overwrite consisting of zeros]{#_s_109 > .selectable-content}, [by a block erase]{#_s_110 > .selectable-content} \]. - For non-volatile memory other than [EEPROM](#abbr_EEPROM) and - For non-volatile memory other than [EEPROM](#abbr_EEPROM) and flash, the destruction shall be executed by a single direct flash, the destruction shall be executed by a single direct overwrite with a random pattern that is changed before each overwrite with a random pattern that is changed before each write. write. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The clearing indicated above applies [Application Note: ]{.note-header}[ The clearing indicated above applies to each intermediate storage area for plaintext key/cryptographic to each intermediate storage area for plaintext key/cryptographic critical security parameter (i.e. any storage, such as memory buffers, critical security parameter (i.e. any storage, such as memory buffers, that is included in the path of such data) upon the transfer of the that is included in the path of such data) upon the transfer of the key/cryptographic critical security parameter to another location.\ key/cryptographic critical security parameter to another location.\ \ \ Because plaintext key material is not allowed to be written to Because plaintext key material is not allowed to be written to non-volatile memory ([FPT\_KST\_EXT.1](#FPT_KST_EXT.1)), the second non-volatile memory ([FPT\_KST\_EXT.1](#FPT_KST_EXT.1)), the second selection only applies to key material written to volatile memory. selection only applies to key material written to volatile memory. ]{.note} ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FCS_CKM_EXT.4.2 .reqid} ::: {#FCS_CKM_EXT.4.2 .reqid} [FCS\_CKM\_EXT.4.2](#FCS_CKM_EXT.4.2){.abbr} [FCS\_CKM\_EXT.4.2](#FCS_CKM_EXT.4.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall destroy all plaintext keying material and The [TSF](#abbr_TSF) shall destroy all plaintext keying material and critical security parameters when no longer needed. critical security parameters when no longer needed. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ For the purposes of this [Application Note: ]{.note-header}[ For the purposes of this requirement, plaintext keying material refers to authentication data, requirement, plaintext keying material refers to authentication data, passwords, secret/private symmetric keys, private asymmetric keys, data passwords, secret/private symmetric keys, private asymmetric keys, data used to derive keys, values derived from passwords, etc. If a used to derive keys, values derived from passwords, etc. If a [BAF](#abbr_BAF) is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1) the [BAF](#abbr_BAF) is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1) the enrollment or authentication templates are not subject to this enrollment or authentication templates are not subject to this requirement, since templates are not suitable for deriving keying requirement, since templates are not suitable for deriving keying material. However, source biometric data (i.e. fingerprint image or material. However, source biometric data (i.e. fingerprint image or friction ridge pattern), the features an algorithm uses to perform friction ridge pattern), the features an algorithm uses to perform biometric authentication for enrollment or verification (e.g. location biometric authentication for enrollment or verification (e.g. location of minutia), threshold values used in making the match adjudication, of minutia), threshold values used in making the match adjudication, intermediate values calculated while building an enrollment or intermediate values calculated while building an enrollment or authentication template (i.e. direction maps, minutia counts, binarized authentication template (i.e. direction maps, minutia counts, binarized and skeletonized representations of friction ridge patterns, etc.), and and skeletonized representations of friction ridge patterns, etc.), and final match scores are examples of critical security parameters that final match scores are examples of critical security parameters that must be destroyed when no longer needed.\ must be destroyed when no longer needed.\ \ \ Key destruction procedures are performed in accordance with Key destruction procedures are performed in accordance with [FCS\_CKM\_EXT.4.1](#FCS_CKM_EXT.4.1).\ [FCS\_CKM\_EXT.4.1](#FCS_CKM_EXT.4.1).\ \ \ There are multiple situations in which plaintext keying material is no There are multiple situations in which plaintext keying material is no longer necessary, including when the [TOE](#abbr_TOE) is powered off, longer necessary, including when the [TOE](#abbr_TOE) is powered off, when the wipe function is performed, when trusted channels are when the wipe function is performed, when trusted channels are disconnected, when keying material is no longer needed by the trusted disconnected, when keying material is no longer needed by the trusted channel per the protocol, and when transitioning to the locked state channel per the protocol, and when transitioning to the locked state (for those values derived from the Password Authentication Factor or (for those values derived from the Password Authentication Factor or that key material which is protected by the password-derived or that key material which is protected by the password-derived or biometric-unlocked [KEK](#abbr_KEK) according to biometric-unlocked [KEK](#abbr_KEK) according to [FCS\_STG\_EXT.2](#FCS_STG_EXT.2) -- see [Figure [FCS\_STG\_EXT.2](#FCS_STG_EXT.2) -- see [Figure [3]{.counter}](#Keys){.Keys-ref}). For keys (or key material used to [3]{.counter}](#Keys){.Keys-ref}). For keys (or key material used to derive those keys) protecting sensitive data received in the locked derive those keys) protecting sensitive data received in the locked state, \"no longer needed\" includes \"while in the locked state.\"\ state, \"no longer needed\" includes \"while in the locked state.\"\ \ \ Trusted channels may include [TLS](#abbr_TLS), [HTTPS](#abbr_HTTPS), Trusted channels may include [TLS](#abbr_TLS), [HTTPS](#abbr_HTTPS), [DTLS](#abbr_DTLS), [IPsec](#abbr_IPsec) VPNs, Bluetooth [DTLS](#abbr_DTLS), [IPsec](#abbr_IPsec) VPNs, Bluetooth [BR/EDR](#abbr_BR/EDR), and Bluetooth [LE](#abbr_LE). The plaintext [BR/EDR](#abbr_BR/EDR), and Bluetooth [LE](#abbr_LE). The plaintext keying material for these channels includes (but is not limited to) keying material for these channels includes (but is not limited to) master secrets, and Security Associations (SAs).\ master secrets, and Security Associations (SAs).\ \ \ If [REK](#abbr_REK)(s) are processed in a separate execution environment If [REK](#abbr_REK)(s) are processed in a separate execution environment on the same Application Processor as the [OS](#abbr_OS), on the same Application Processor as the [OS](#abbr_OS), [REK](#abbr_REK) key material must be cleared from RAM immediately after [REK](#abbr_REK) key material must be cleared from RAM immediately after use, and at least, must be wiped when the device is locked, as the use, and at least, must be wiped when the device is locked, as the [REK](#abbr_REK) is part of the key hierarchy protecting sensitive data. [REK](#abbr_REK) is part of the key hierarchy protecting sensitive data. ]{.note} ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_CKM\_EXT.4](#FCS_CKM_EXT.4):\ | ::: {.component-activity-header} > [FCS\_CKM\_EXT.4](#FCS_CKM_EXT.4) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall check to ensure the [TSS](#abbr_TSS) lists each type The evaluator shall check to ensure the [TSS](#abbr_TSS) lists each type of plaintext key material (DEKs, software-based key storage, KEKs, | of plaintext key material ([DEKs](#abbr_DEK), software-based key trusted channel keys, passwords, etc.) and its generation and storage | storage, KEKs, trusted channel keys, passwords, etc.) and its generation location.\ | and storage location.\ \ \ The evaluator shall verify that the [TSS](#abbr_TSS) describes when each The evaluator shall verify that the [TSS](#abbr_TSS) describes when each type of key material is cleared (for example, on system power off, on type of key material is cleared (for example, on system power off, on wipe function, on disconnection of trusted channels, when no longer wipe function, on disconnection of trusted channels, when no longer needed by the trusted channel per the protocol, when transitioning to needed by the trusted channel per the protocol, when transitioning to the locked state, and possibly including immediately after use, while in the locked state, and possibly including immediately after use, while in the locked state, etc.).\ the locked state, etc.).\ \ \ The evaluator shall also verify that, for each type of key, the type of The evaluator shall also verify that, for each type of key, the type of clearing procedure that is performed (cryptographic erase, overwrite clearing procedure that is performed (cryptographic erase, overwrite with zeros, overwrite with random pattern, or block erase) is listed. If with zeros, overwrite with random pattern, or block erase) is listed. If different types of memory are used to store the materials to be different types of memory are used to store the materials to be protected, the evaluator shall check to ensure that the [TSS](#abbr_TSS) protected, the evaluator shall check to ensure that the [TSS](#abbr_TSS) describes the clearing procedure in terms of the memory in which the describes the clearing procedure in terms of the memory in which the data are stored.\ data are stored.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following tests require the developer **Evaluation Activity Note:** The following tests require the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products.\ tools that are typically not found on factory products.\ \ \ For each software and firmware key clearing situation (including on For each software and firmware key clearing situation (including on system power off, on wipe function, on disconnection of trusted system power off, on wipe function, on disconnection of trusted channels, when no longer needed by the trusted channel per the protocol, channels, when no longer needed by the trusted channel per the protocol, when transitioning to the locked state, and possibly including when transitioning to the locked state, and possibly including immediately after use, while in the locked state) the evaluator shall immediately after use, while in the locked state) the evaluator shall repeat the following tests.\ repeat the following tests.\ \ \ For these tests the evaluator shall utilize appropriate development For these tests the evaluator shall utilize appropriate development environment (e.g. a Virtual Machine) and development tools (debuggers, environment (e.g. a Virtual Machine) and development tools (debuggers, simulators, etc.) to test that keys are cleared, including all copies of simulators, etc.) to test that keys are cleared, including all copies of the key that may have been created internally by the [TOE](#abbr_TOE) the key that may have been created internally by the [TOE](#abbr_TOE) during normal cryptographic processing with that key.\ during normal cryptographic processing with that key.\ \ \ > []{.testlist-} - **Test 1:** Applied to each key held as plaintext in volatile memory | - [Test 3[](#_t_5){.definition}]{#_t_5}: Applied to each key held as and subject to destruction by overwrite by the [TOE](#abbr_TOE) | plaintext in volatile memory and subject to destruction by overwrite (whether or not the plaintext value is subsequently encrypted for | by the [TOE](#abbr_TOE) (whether or not the plaintext value is storage in volatile or non-volatile memory). In the case where the | subsequently encrypted for storage in volatile or non-volatile only selection made for the destruction method key was removal of | memory). In the case where the only selection made for the power, then this test is unnecessary. The evaluator shall:\ | destruction method key was removal of power, then this test is > unnecessary. The evaluator shall:\ 1. Record the value of the key in the [TOE](#abbr_TOE) subject to 1. Record the value of the key in the [TOE](#abbr_TOE) subject to clearing. clearing. 2. Cause the [TOE](#abbr_TOE) to perform a normal cryptographic 2. Cause the [TOE](#abbr_TOE) to perform a normal cryptographic processing with the key from Step \#1. processing with the key from Step \#1. 3. Cause the [TOE](#abbr_TOE) to clear the key. 3. Cause the [TOE](#abbr_TOE) to clear the key. 4. Cause the [TOE](#abbr_TOE) to stop the execution but not exit. 4. Cause the [TOE](#abbr_TOE) to stop the execution but not exit. 5. Cause the [TOE](#abbr_TOE) to dump the entire memory of the 5. Cause the [TOE](#abbr_TOE) to dump the entire memory of the [TOE](#abbr_TOE) into a binary file. [TOE](#abbr_TOE) into a binary file. 6. Search the content of the binary file created in Step \#5 for 6. Search the content of the binary file created in Step \#5 for instances of the known key value from Step \#1. instances of the known key value from Step \#1. 7. Break the key value from Step \#1 into 3 similar sized pieces 7. Break the key value from Step \#1 into 3 similar sized pieces and perform a search using each piece. and perform a search using each piece. \ \ Steps 1-6 ensure that the complete key does not exist anywhere in Steps 1-6 ensure that the complete key does not exist anywhere in volatile memory. If a copy is found, then the test fails.\ volatile memory. If a copy is found, then the test fails.\ \ \ Step 7 ensures that partial key fragments do not remain in memory. Step 7 ensures that partial key fragments do not remain in memory. If a fragment is found, there is a minuscule chance that it is not If a fragment is found, there is a minuscule chance that it is not within the context of a key (e.g., some random bits that happen to within the context of a key (e.g., some random bits that happen to match). If this is the case the test should be repeated with a match). If this is the case the test should be repeated with a different key in Step \#1. If a fragment is found the test fails.\ different key in Step \#1. If a fragment is found the test fails.\ \ \ - **Test 2:** Applied to each key held in non-volatile memory and | - [Test 4[](#_t_6){.definition}]{#_t_6}: Applied to each key held in subject to destruction by overwrite by the [TOE](#abbr_TOE). The | non-volatile memory and subject to destruction by overwrite by the evaluator shall use special tools (as needed), provided by the | [TOE](#abbr_TOE). The evaluator shall use special tools (as needed), [TOE](#abbr_TOE) developer if necessary, to view the key storage | provided by the [TOE](#abbr_TOE) developer if necessary, to view the location:\ | key storage location:\ 1. Record the value of the key in the [TOE](#abbr_TOE) subject to 1. Record the value of the key in the [TOE](#abbr_TOE) subject to clearing. clearing. 2. Cause the [TOE](#abbr_TOE) to perform a normal cryptographic 2. Cause the [TOE](#abbr_TOE) to perform a normal cryptographic processing with the key from Step \#1. processing with the key from Step \#1. 3. Cause the [TOE](#abbr_TOE) to clear the key. 3. Cause the [TOE](#abbr_TOE) to clear the key. 4. Search the non-volatile memory the key was stored in for 4. Search the non-volatile memory the key was stored in for instances of the known key value from Step \#1. If a copy is instances of the known key value from Step \#1. If a copy is found, then the test fails. found, then the test fails. 5. Break the key value from Step \#1 into 3 similar sized pieces 5. Break the key value from Step \#1 into 3 similar sized pieces and perform a search using each piece. If a fragment is found and perform a search using each piece. If a fragment is found then the test is repeated (as described for test 1 above), and then the test is repeated (as described for test 1 above), and if a fragment is found in the repeated test then the test fails. if a fragment is found in the repeated test then the test fails. \ \ \ \ - **Test 3:** Applied to each key held as non-volatile memory and | - [Test 5[](#_t_7){.definition}]{#_t_7}: Applied to each key held as subject to destruction by overwrite by the [TOE](#abbr_TOE). The | non-volatile memory and subject to destruction by overwrite by the evaluator shall use special tools (as needed), provided by the | [TOE](#abbr_TOE). The evaluator shall use special tools (as needed), [TOE](#abbr_TOE) developer if necessary, to view the key storage | provided by the [TOE](#abbr_TOE) developer if necessary, to view the location:\ | key storage location:\ 1. Record the storage location of the key in the [TOE](#abbr_TOE) 1. Record the storage location of the key in the [TOE](#abbr_TOE) subject to clearing. subject to clearing. 2. Cause the [TOE](#abbr_TOE) to perform a normal cryptographic 2. Cause the [TOE](#abbr_TOE) to perform a normal cryptographic processing with the key from Step \#1. processing with the key from Step \#1. 3. Cause the [TOE](#abbr_TOE) to clear the key. 3. Cause the [TOE](#abbr_TOE) to clear the key. 4. Read the storage location in Step \#1 of non-volatile memory to 4. Read the storage location in Step \#1 of non-volatile memory to ensure the appropriate pattern is utilized. ensure the appropriate pattern is utilized. \ \ The test succeeds if correct pattern is used to overwrite the key in The test succeeds if correct pattern is used to overwrite the key in the memory location. If the pattern is not found the test fails. the memory location. If the pattern is not found the test fails. < \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_CKM_EXT.5 .comp} ::: {#FCS_CKM_EXT.5 .comp} #### FCS\_CKM\_EXT.5 TSF Wipe #### FCS\_CKM\_EXT.5 TSF Wipe ::: {.element} ::: {.element} ::: {#FCS_CKM_EXT.5.1 .reqid} ::: {#FCS_CKM_EXT.5.1 .reqid} [FCS\_CKM\_EXT.5.1](#FCS_CKM_EXT.5.1){.abbr} [FCS\_CKM\_EXT.5.1](#FCS_CKM_EXT.5.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall wipe all protected data by \[**selection**: The [TSF](#abbr_TSF) shall wipe all protected data by \[**selection**: - *Cryptographically erasing the encrypted DEKs and/or the KEKs in | - [Cryptographically erasing the encrypted [DEKs](#abbr_DEK) and/or non-volatile memory by following the requirements in | the KEKs in non-volatile memory by following the requirements in [FCS\_CKM\_EXT.4.1](#FCS_CKM_EXT.4.1)*, | [FCS\_CKM\_EXT.4.1](#FCS_CKM_EXT.4.1)]{#_s_111 .selectable-content} - *Overwriting all [PD](#abbr_PD) according to the following rules:* | - [Overwriting all [PD](#abbr_PD) according to the following rules: > ]{#_s_112 .selectable-content} - For [EEPROM](#abbr_EEPROM), the destruction shall be executed by - For [EEPROM](#abbr_EEPROM), the destruction shall be executed by a single direct overwrite consisting of a pseudo random pattern a single direct overwrite consisting of a pseudo random pattern using the [TSF](#abbr_TSF)'s [RBG](#abbr_RBG) (as specified in using the [TSF](#abbr_TSF)'s [RBG](#abbr_RBG) (as specified in [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1), followed by a read-verify. [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1), followed by a read-verify. - For flash memory, that is not wear-leveled, the destruction - For flash memory, that is not wear-leveled, the destruction shall be executed \[**selection**: *by a single direct overwrite | shall be executed \[**selection**: [by a single direct overwrite consisting of zeros followed by a read-verify*, *by a block | consisting of zeros followed by a read-verify]{#_s_113 erase that erases the reference to memory that stores data as | .selectable-content}, [by a block erase that erases the well as the data itself*\]. | reference to memory that stores data as well as the data > itself]{#_s_114 .selectable-content} \]. - For flash memory, that is wear-leveled, the destruction shall be - For flash memory, that is wear-leveled, the destruction shall be executed \[**selection**: *by a single direct overwrite | executed \[**selection**: [by a single direct overwrite consisting of zeros*, *by a block erase*\]. | consisting of zeros]{#_s_115 .selectable-content}, [by a block > erase]{#_s_116 .selectable-content} \]. - For non-volatile memory other than [EEPROM](#abbr_EEPROM) and - For non-volatile memory other than [EEPROM](#abbr_EEPROM) and flash, the destruction shall be executed by a single direct flash, the destruction shall be executed by a single direct overwrite with a random pattern that is changed before each overwrite with a random pattern that is changed before each write. write. \]. \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ Protected data is all non-TSF data, [Application Note: ]{.note-header}[ Protected data is all non-TSF data, including all user or enterprise data. Some or all of this data may be including all user or enterprise data. Some or all of this data may be considered sensitive data as well. ]{.note} considered sensitive data as well. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FCS_CKM_EXT.5.2 .reqid} ::: {#FCS_CKM_EXT.5.2 .reqid} [FCS\_CKM\_EXT.5.2](#FCS_CKM_EXT.5.2){.abbr} [FCS\_CKM\_EXT.5.2](#FCS_CKM_EXT.5.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall perform a power cycle on conclusion of the The [TSF](#abbr_TSF) shall perform a power cycle on conclusion of the wipe procedure. wipe procedure. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_CKM\_EXT.5](#FCS_CKM_EXT.5):\ | ::: {.component-activity-header} > [FCS\_CKM\_EXT.5](#FCS_CKM_EXT.5) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall check to ensure the [TSS](#abbr_TSS) describes how The evaluator shall check to ensure the [TSS](#abbr_TSS) describes how the device is wiped, the type of clearing procedure that is performed the device is wiped, the type of clearing procedure that is performed (cryptographic erase or overwrite) and, if overwrite is performed, the (cryptographic erase or overwrite) and, if overwrite is performed, the overwrite procedure (overwrite with zeros, overwrite three or more times overwrite procedure (overwrite with zeros, overwrite three or more times by a different alternating pattern, overwrite with random pattern, or by a different alternating pattern, overwrite with random pattern, or block erase).\ block erase).\ \ \ If different types of memory are used to store the data to be protected, If different types of memory are used to store the data to be protected, the evaluator shall check to ensure that the [TSS](#abbr_TSS) describes the evaluator shall check to ensure that the [TSS](#abbr_TSS) describes the clearing procedure in terms of the memory in which the data are the clearing procedure in terms of the memory in which the data are stored (for example, data stored on flash are cleared by overwriting stored (for example, data stored on flash are cleared by overwriting once with zeros, while data stored on the internal persistent storage once with zeros, while data stored on the internal persistent storage device are cleared by overwriting three times with a random pattern that device are cleared by overwriting three times with a random pattern that is changed before each write).\ is changed before each write).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall verify that the AGD guidance describes how to enable The evaluator shall verify that the AGD guidance describes how to enable encryption, if it is not enabled by default. Additionally the evaluator encryption, if it is not enabled by default. Additionally the evaluator shall verify that the AGD guidance describes how to initiate the wipe shall verify that the AGD guidance describes how to initiate the wipe command.\ command.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following test may require the **Evaluation Activity Note:** The following test may require the developer to provide access to a test platform that provides the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile evaluator with tools that are typically not found on consumer Mobile Device products.\ Device products.\ \ \ > []{.testlist-} - **Test 1:** The evaluator shall perform one of the following tests. | - [Test 6[](#_t_8){.definition}]{#_t_8}: The evaluator shall perform The test before and after the wipe command shall be identical. This | one of the following tests. The test before and after the wipe test shall be repeated for each type of memory used to store the | command shall be identical. This test shall be repeated for each data to be protected.\ | type of memory used to store the data to be protected.\ \ \ - **Test 1.1:** **For File-based Methods:**\ | []{.testlist-} > - [Test 6.1[](#_t_9){.definition}]{#_t_9}: **For File-based > Methods:**\ The evaluator shall enable encryption according to the AGD The evaluator shall enable encryption according to the AGD guidance. The evaluator shall create a user data (protected data guidance. The evaluator shall create a user data (protected data or sensitive data) file, for example, by using an application. or sensitive data) file, for example, by using an application. The evaluator shall use a tool provided by the developer to The evaluator shall use a tool provided by the developer to examine this data stored in memory (for example, by examining a examine this data stored in memory (for example, by examining a decrypted files). The evaluator shall initiate the wipe command decrypted files). The evaluator shall initiate the wipe command according to the AGD guidance provided for according to the AGD guidance provided for [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1). The evaluator shall use a [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1). The evaluator shall use a tool provided by the developer to examine the same data location tool provided by the developer to examine the same data location in memory to verify that the data has been wiped according to in memory to verify that the data has been wiped according to the method described in the [TSS](#abbr_TSS) (for example, the the method described in the [TSS](#abbr_TSS) (for example, the files are still encrypted and cannot be accessed). files are still encrypted and cannot be accessed). - **Test 1.2:** **For Volume-based Methods:**\ | - [Test 6.2[](#_t_10){.definition}]{#_t_10}: **For Volume-based > Methods:**\ The evaluator shall enable encryption according to the AGD The evaluator shall enable encryption according to the AGD guidance. The evaluator shall create a unique data string, for guidance. The evaluator shall create a unique data string, for example, by using an application. The evaluator shall use a tool example, by using an application. The evaluator shall use a tool provided by the developer to search decrypted data for the provided by the developer to search decrypted data for the unique string. The evaluator shall initiate the wipe command unique string. The evaluator shall initiate the wipe command according to the AGD guidance provided for according to the AGD guidance provided for [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1). The evaluator shall use a [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1). The evaluator shall use a tool provided by the developer to search for the same unique tool provided by the developer to search for the same unique string in decrypted memory to verify that the data has been string in decrypted memory to verify that the data has been wiped according to the method described in the [TSS](#abbr_TSS) wiped according to the method described in the [TSS](#abbr_TSS) (for example, the files are still encrypted and cannot be (for example, the files are still encrypted and cannot be accessed). accessed). - **Test 2:** The evaluator shall cause the device to wipe and verify | - [Test 7[](#_t_11){.definition}]{#_t_11}: The evaluator shall cause that the wipe concludes with a power cycle. | the device to wipe and verify that the wipe concludes with a power | cycle. \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_CKM_EXT.6 .comp} ::: {#FCS_CKM_EXT.6 .comp} #### FCS\_CKM\_EXT.6 Salt Generation #### FCS\_CKM\_EXT.6 Salt Generation ::: {.element} ::: {.element} ::: {#FCS_CKM_EXT.6.1 .reqid} ::: {#FCS_CKM_EXT.6.1 .reqid} [FCS\_CKM\_EXT.6.1](#FCS_CKM_EXT.6.1){.abbr} [FCS\_CKM\_EXT.6.1](#FCS_CKM_EXT.6.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall generate all salts using a [RBG](#abbr_RBG) The [TSF](#abbr_TSF) shall generate all salts using a [RBG](#abbr_RBG) that meets [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1). that meets [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1). ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[This requirement refers only to salt [Application Note: ]{.note-header}[This requirement refers only to salt generation. In the examples given, a salt may be used as part of the generation. In the examples given, a salt may be used as part of the scheme/algorithm. Requirements on nonces and/or ephemeral keys are scheme/algorithm. Requirements on nonces and/or ephemeral keys are provided elsewhere, if needed. The list below is provided for clarity, provided elsewhere, if needed. The list below is provided for clarity, in order to give examples of where the [TSF](#abbr_TSF) may be in order to give examples of where the [TSF](#abbr_TSF) may be generating cryptographic salts; it is not exhaustive nor is it intended generating cryptographic salts; it is not exhaustive nor is it intended to mandate implementation of all of these schemes/algorithms. to mandate implementation of all of these schemes/algorithms. Cryptographic salts are generated for various uses including: ]{.note} Cryptographic salts are generated for various uses including: ]{.note} - RSASSA-PSS signature generation - RSASSA-PSS signature generation - [DSA](#abbr_DSA) signature generation - [DSA](#abbr_DSA) signature generation - [ECDSA](#abbr_ECDSA) signature generation - [ECDSA](#abbr_ECDSA) signature generation - [DH](#abbr_DH) static key agreement scheme - [DH](#abbr_DH) static key agreement scheme - [PBKDF](#abbr_PBKDF) - [PBKDF](#abbr_PBKDF) - Key Agreement Scheme in [NIST](#abbr_NIST) SP 800-56B - Key Agreement Scheme in [NIST](#abbr_NIST) SP 800-56B - [AES](#abbr_AES) [GCM](#abbr_GCM) - [AES](#abbr_AES) [GCM](#abbr_GCM) ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_CKM\_EXT.6](#FCS_CKM_EXT.6):\ | ::: {.component-activity-header} > [FCS\_CKM\_EXT.6](#FCS_CKM_EXT.6) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) contains a The evaluator shall verify that the [TSS](#abbr_TSS) contains a description regarding the salt generation, including which algorithms on description regarding the salt generation, including which algorithms on the [TOE](#abbr_TOE) require salts. The evaluator shall confirm that the the [TOE](#abbr_TOE) require salts. The evaluator shall confirm that the salt is generated using an [RBG](#abbr_RBG) described in salt is generated using an [RBG](#abbr_RBG) described in [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1). For [PBKDF](#abbr_PBKDF) derivation [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1). For [PBKDF](#abbr_PBKDF) derivation of KEKs, this evaluation activity may be performed in conjunction with of KEKs, this evaluation activity may be performed in conjunction with [FCS\_CKM\_EXT.3.2](#FCS_CKM_EXT.3.2).\ [FCS\_CKM\_EXT.3.2](#FCS_CKM_EXT.3.2).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_COP.1/ENCRYPT .comp} ::: {#FCS_COP.1/ENCRYPT .comp} #### FCS\_COP.1/ENCRYPT Cryptographic Operation #### FCS\_COP.1/ENCRYPT Cryptographic Operation ::: {.element} ::: {.element} ::: {#FCS_COP.1.1/ENCRYPT .reqid} ::: {#FCS_COP.1.1/ENCRYPT .reqid} [FCS\_COP.1.1/ENCRYPT](#FCS_COP.1.1/ENCRYPT){.abbr} [FCS\_COP.1.1/ENCRYPT](#FCS_COP.1.1/ENCRYPT){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall perform encryption/decryption in accordance The [TSF](#abbr_TSF) shall perform encryption/decryption in accordance with a specified cryptographic algorithm:\ with a specified cryptographic algorithm:\ - [[AES](#abbr_AES)-CBC (as defined in [FIPS](#abbr_FIPS) PUB 197, and - [[AES](#abbr_AES)-CBC (as defined in [FIPS](#abbr_FIPS) PUB 197, and [NIST](#abbr_NIST) SP 800-38A) mode]{.refinement} [NIST](#abbr_NIST) SP 800-38A) mode]{.refinement} - [[AES](#abbr_AES)-CCMP (as defined in [FIPS](#abbr_FIPS) PUB 197, - [[AES](#abbr_AES)-CCMP (as defined in [FIPS](#abbr_FIPS) PUB 197, [NIST](#abbr_NIST) SP 800-38C and [IEEE](#abbr_IEEE) 802.11-2012), [NIST](#abbr_NIST) SP 800-38C and [IEEE](#abbr_IEEE) 802.11-2012), and]{.refinement} and]{.refinement} - \[**selection**: - \[**selection**: - *[[AES](#abbr_AES) Key Wrap (KW) (as defined in | - [[[AES](#abbr_AES) Key Wrap (KW) (as defined in [NIST](#abbr_NIST) SP 800-38F)]{.refinement}*, | [NIST](#abbr_NIST) SP 800-38F)]{.refinement}]{#_s_117 - *[[AES](#abbr_AES) Key Wrap with Padding (KWP) (as defined in | .selectable-content} [NIST](#abbr_NIST) SP 800-38F)]{.refinement}*, | - [[[AES](#abbr_AES) Key Wrap with Padding (KWP) (as defined in - *[[AES](#abbr_AES)-GCM (as defined in [NIST](#abbr_NIST) SP | [NIST](#abbr_NIST) SP 800-38F)]{.refinement}]{#_s_118 800-38D)]{.refinement}*, | .selectable-content} - *[[AES](#abbr_AES)-CCM (as defined in [NIST](#abbr_NIST) SP | - [[[AES](#abbr_AES)-GCM (as defined in [NIST](#abbr_NIST) SP 800-38C)]{.refinement}*, | 800-38D)]{.refinement}]{#_s_119 .selectable-content} - *[[AES](#abbr_AES)-XTS (as defined in [NIST](#abbr_NIST) SP | - [[[AES](#abbr_AES)-CCM (as defined in [NIST](#abbr_NIST) SP 800-38E) mode]{.refinement}*, | 800-38C)]{.refinement}]{#_s_120 .selectable-content} - *[[AES](#abbr_AES)-CCMP-256 (as defined in [NIST](#abbr_NIST) | - [[[AES](#abbr_AES)-XTS (as defined in [NIST](#abbr_NIST) SP SP800-38C and [IEEE](#abbr_IEEE) 802.11ac-2013)]{.refinement}*, | 800-38E) mode]{.refinement}]{#_s_121 .selectable-content} - *[[AES](#abbr_AES)-GCMP-256 (as defined in [NIST](#abbr_NIST) | - [[[AES](#abbr_AES)-CCMP-256 (as defined in [NIST](#abbr_NIST) SP800-38D and [IEEE](#abbr_IEEE) 802.11ac-2013)]{.refinement}*, | SP800-38C and [IEEE](#abbr_IEEE) - *[no other modes]{.refinement}* | 802.11ac-2013)]{.refinement}]{#_s_122 .selectable-content} > - [[[AES](#abbr_AES)-GCMP-256 (as defined in [NIST](#abbr_NIST) > SP800-38D and [IEEE](#abbr_IEEE) > 802.11ac-2013)]{.refinement}]{#_s_123 .selectable-content} > - [[no other modes]{.refinement}]{#_s_124 .selectable-content} \] \] and cryptographic key sizes 128-bit key sizes and \[**selection**: and cryptographic key sizes 128-bit key sizes and \[**selection**: *[256-bit key sizes]{.refinement}*, *[no other key | [[256-bit key sizes]{.refinement}]{#_s_125 .selectable-content}, [[no sizes]{.refinement}*\]. | other key sizes]{.refinement}]{#_s_126 .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ For the first selection, the [Application Note: ]{.note-header}[ For the first selection, the [ST](#abbr_ST) author should choose the mode or modes in which [ST](#abbr_ST) author should choose the mode or modes in which [AES](#abbr_AES) operates. For the second selection, the [ST](#abbr_ST) [AES](#abbr_AES) operates. For the second selection, the [ST](#abbr_ST) author should choose the key sizes that are supported by this author should choose the key sizes that are supported by this functionality. 128-bit [CBC](#abbr_CBC) and [CCMP](#abbr_CCMP) are functionality. 128-bit [CBC](#abbr_CBC) and [CCMP](#abbr_CCMP) are required in order to comply with WLAN Client Extended Package.\ required in order to comply with WLAN Client Extended Package.\ \ \ Note that to comply with the WLAN Client EP, [AES](#abbr_AES) | Note that to comply with the WLAN Client [EP](#abbr_EP), [CCMP](#abbr_CCMP) (which uses [AES](#abbr_AES) in [CCM](#abbr_CCM) as | [AES](#abbr_AES) [CCMP](#abbr_CCMP) (which uses [AES](#abbr_AES) in specified in SP 800-38C) with cryptographic key size of 128 bits must be | [CCM](#abbr_CCM) as specified in SP 800-38C) with cryptographic key size implemented. If [CCM](#abbr_CCM) is only implemented to support | of 128 bits must be implemented. If [CCM](#abbr_CCM) is only implemented [CCMP](#abbr_CCMP) for WLAN, [AES](#abbr_AES)-CCM does not need be | to support [CCMP](#abbr_CCMP) for WLAN, [AES](#abbr_AES)-CCM does not selected. Optionally, [AES](#abbr_AES)-CCMP-256 or | need be selected. Optionally, [AES](#abbr_AES)-CCMP-256 or [AES](#abbr_AES)-GCMP-256 with cryptographic key size of 256 bits may be [AES](#abbr_AES)-GCMP-256 with cryptographic key size of 256 bits may be implemented. ]{.note} implemented. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT):\ | ::: {.component-activity-header} > [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following tests require the developer **Evaluation Activity Note:** The following tests require the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products.\ tools that are typically not found on factory products.\ \ \ > []{.testlist-} - **Test 1:** [AES](#abbr_AES)-CBC Known Answer Tests\ | - [Test 8[](#_t_12){.definition}]{#_t_12}: [AES](#abbr_AES)-CBC Known > Answer Tests\ \ \ There are four Known Answer Tests (KATs), described below. In all | There are four Known Answer Tests ([KATs](#abbr_KAT)), described KATs, the plaintext, ciphertext, and IV values shall be 128-bit | below. In all [KATs](#abbr_KAT), the plaintext, ciphertext, and IV blocks. The results from each test may either be obtained by the | values shall be 128-bit blocks. The results from each test may evaluator directly or by supplying the inputs to the implementer and | either be obtained by the evaluator directly or by supplying the receiving the results in response. To determine correctness, the | inputs to the implementer and receiving the results in response. To evaluator shall compare the resulting values to those obtained by | determine correctness, the evaluator shall compare the resulting submitting the same inputs to a known good implementation. | values to those obtained by submitting the same inputs to a known - **Test 1.1:** KAT-1. To test the encrypt functionality of | good implementation. []{.testlist-} [AES](#abbr_AES)-CBC, the evaluator shall supply a set of 10 | - [Test 8.1[](#_t_13){.definition}]{#_t_13}: [KAT](#abbr_KAT)-1. plaintext values and obtain the ciphertext value that results | To test the encrypt functionality of [AES](#abbr_AES)-CBC, the from [AES](#abbr_AES)-CBC encryption of the given plaintext | evaluator shall supply a set of 10 plaintext values and obtain using a key value of all zeros and an IV of all zeros. Five | the ciphertext value that results from [AES](#abbr_AES)-CBC plaintext values shall be encrypted with a 128-bit all-zeros | encryption of the given plaintext using a key value of all zeros key, and the other five shall be encrypted with a 256-bit | and an IV of all zeros. Five plaintext values shall be encrypted all-zeros key.\ | with a 128-bit all-zeros key, and the other five shall be > encrypted with a 256-bit all-zeros key.\ \ \ To test the decrypt functionality of [AES](#abbr_AES)-CBC, the To test the decrypt functionality of [AES](#abbr_AES)-CBC, the evaluator shall perform the same test as for encrypt, using 10 evaluator shall perform the same test as for encrypt, using 10 ciphertext values as input and [AES](#abbr_AES)-CBC decryption. ciphertext values as input and [AES](#abbr_AES)-CBC decryption. - **Test 1.2:** KAT-2. To test the encrypt functionality of | - [Test 8.2[](#_t_14){.definition}]{#_t_14}: [KAT](#abbr_KAT)-2. [AES](#abbr_AES)-CBC, the evaluator shall supply a set of 10 key | To test the encrypt functionality of [AES](#abbr_AES)-CBC, the values and obtain the ciphertext value that results from | evaluator shall supply a set of 10 key values and obtain the [AES](#abbr_AES)-CBC encryption of an all-zeros plaintext using | ciphertext value that results from [AES](#abbr_AES)-CBC the given key value and an IV of all zeros. Five of the keys | encryption of an all-zeros plaintext using the given key value shall be 128-bit keys, and the other five shall be 256-bit | and an IV of all zeros. Five of the keys shall be 128-bit keys, keys.\ | and the other five shall be 256-bit keys.\ \ \ To test the decrypt functionality of [AES](#abbr_AES)-CBC, the To test the decrypt functionality of [AES](#abbr_AES)-CBC, the evaluator shall perform the same test as for encrypt, using an evaluator shall perform the same test as for encrypt, using an all-zero ciphertext value as input and [AES](#abbr_AES)-CBC all-zero ciphertext value as input and [AES](#abbr_AES)-CBC decryption. decryption. - **Test 1.3:** KAT-3. To test the encrypt functionality of | - [Test 8.3[](#_t_15){.definition}]{#_t_15}: [KAT](#abbr_KAT)-3. [AES](#abbr_AES)-CBC, the evaluator shall supply the two sets of | To test the encrypt functionality of [AES](#abbr_AES)-CBC, the key values described below and obtain the ciphertext value that | evaluator shall supply the two sets of key values described results from [AES](#abbr_AES) encryption of an all-zeros | below and obtain the ciphertext value that results from plaintext using the given key value and an IV of all zeros. The | [AES](#abbr_AES) encryption of an all-zeros plaintext using the first set of keys shall have 128 128-bit keys, and the second | given key value and an IV of all zeros. The first set of keys set shall have 256 256-bit keys. Key i in each set shall have | shall have 128 128-bit keys, and the second set shall have 256 the leftmost i bits be ones and the rightmost N-i bits be zeros, | 256-bit keys. Key i in each set shall have the leftmost i bits for i in \[1,N\].\ | be ones and the rightmost N-i bits be zeros, for i in \[1,N\].\ \ \ To test the decrypt functionality of [AES](#abbr_AES)-CBC, the To test the decrypt functionality of [AES](#abbr_AES)-CBC, the evaluator shall supply the two sets of key and ciphertext value evaluator shall supply the two sets of key and ciphertext value pairs described below and obtain the plaintext value that pairs described below and obtain the plaintext value that results from [AES](#abbr_AES)-CBC decryption of the given results from [AES](#abbr_AES)-CBC decryption of the given ciphertext using the given key and an IV of all zeros. The first ciphertext using the given key and an IV of all zeros. The first set of key/ciphertext pairs shall have 128 128-bit set of key/ciphertext pairs shall have 128 128-bit key/ciphertext pairs, and the second set of key/ciphertext pairs key/ciphertext pairs, and the second set of key/ciphertext pairs shall have 256 256-bit key/ciphertext pairs. Key i in each set shall have 256 256-bit key/ciphertext pairs. Key i in each set shall have the leftmost i bits be ones and the rightmost N-i shall have the leftmost i bits be ones and the rightmost N-i bits be zeros, for i in \[1,N\]. The ciphertext value in each bits be zeros, for i in \[1,N\]. The ciphertext value in each pair shall be the value that results in an all-zeros plaintext pair shall be the value that results in an all-zeros plaintext when decrypted with its corresponding key. when decrypted with its corresponding key. - **Test 1.4:** KAT-4. To test the encrypt functionality of | - [Test 8.4[](#_t_16){.definition}]{#_t_16}: [KAT](#abbr_KAT)-4. [AES](#abbr_AES)-CBC, the evaluator shall supply the set of 128 | To test the encrypt functionality of [AES](#abbr_AES)-CBC, the plaintext values described below and obtain the two ciphertext | evaluator shall supply the set of 128 plaintext values described values that result from [AES](#abbr_AES)-CBC encryption of the | below and obtain the two ciphertext values that result from given plaintext using a 128-bit key value of all zeros with an | [AES](#abbr_AES)-CBC encryption of the given plaintext using a IV of all zeros and using a 256-bit key value of all zeros with | 128-bit key value of all zeros with an IV of all zeros and using an IV of all zeros, respectively. Plaintext value i in each set | a 256-bit key value of all zeros with an IV of all zeros, shall have the leftmost i bits be ones and the rightmost 128-i | respectively. Plaintext value i in each set shall have the bits be zeros, for i in \[1,128\].\ | leftmost i bits be ones and the rightmost 128-i bits be zeros, > for i in \[1,128\].\ \ \ To test the decrypt functionality of [AES](#abbr_AES)-CBC, the To test the decrypt functionality of [AES](#abbr_AES)-CBC, the evaluator shall perform the same test as for encrypt, using evaluator shall perform the same test as for encrypt, using ciphertext values of the same form as the plaintext in the ciphertext values of the same form as the plaintext in the encrypt test as input and [AES](#abbr_AES)-CBC decryption. encrypt test as input and [AES](#abbr_AES)-CBC decryption. - **Test 2:** [AES](#abbr_AES)-CBC Multi-Block Message Test\ | - [Test 9[](#_t_17){.definition}]{#_t_17}: [AES](#abbr_AES)-CBC > Multi-Block Message Test\ \ \ The evaluator shall test the encrypt functionality by encrypting an The evaluator shall test the encrypt functionality by encrypting an i-block message where 1 \< i \<= 10. The evaluator shall choose a i-block message where 1 \< i \<= 10. The evaluator shall choose a key, an IV and plaintext message of length i blocks and encrypt the key, an IV and plaintext message of length i blocks and encrypt the message, using the mode to be tested, with the chosen key and IV. message, using the mode to be tested, with the chosen key and IV. The ciphertext shall be compared to the result of encrypting the The ciphertext shall be compared to the result of encrypting the same plaintext message with the same key and IV using a known good same plaintext message with the same key and IV using a known good implementation.\ implementation.\ \ \ The evaluator shall also test the decrypt functionality for each The evaluator shall also test the decrypt functionality for each mode by decrypting an i-block message where 1 \< i \<= 10. The mode by decrypting an i-block message where 1 \< i \<= 10. The evaluator shall choose a key, an IV and a ciphertext message of evaluator shall choose a key, an IV and a ciphertext message of length i blocks and decrypt the message, using the mode to be length i blocks and decrypt the message, using the mode to be tested, with the chosen key and IV. The plaintext shall be compared tested, with the chosen key and IV. The plaintext shall be compared to the result of decrypting the same ciphertext message with the to the result of decrypting the same ciphertext message with the same key and IV using a known good implementation. same key and IV using a known good implementation. - **Test 3:** [AES](#abbr_AES)-CBC Monte Carlo Tests\ | - [Test 10[](#_t_18){.definition}]{#_t_18}: [AES](#abbr_AES)-CBC Monte > Carlo Tests\ \ \ The evaluator shall test the encrypt functionality using a set of The evaluator shall test the encrypt functionality using a set of 200 plaintext, IV, and key 3-tuples. 100 of these shall use 128 bit 200 plaintext, IV, and key 3-tuples. 100 of these shall use 128 bit keys, and 100 shall use 256 bit keys. The plaintext and IV values keys, and 100 shall use 256 bit keys. The plaintext and IV values shall be 128-bit blocks. For each 3-tuple, 1000 iterations shall be shall be 128-bit blocks. For each 3-tuple, 1000 iterations shall be run as follows:\ run as follows:\ \ \ # Input: PT, IV, Key for i = 1 to 1000: if i == 1: CT[1] = # Input: PT, IV, Key for i = 1 to 1000: if i == 1: CT[1] = AES-CBC-Encrypt(Key, IV, PT) PT = IV else: CT[i] = AES- AES-CBC-Encrypt(Key, IV, PT) PT = IV else: CT[i] = AES- = CT[i-1] = CT[i-1] \ \ The ciphertext computed in the 1000^th^ iteration (i.e. CT\[1000\]) The ciphertext computed in the 1000^th^ iteration (i.e. CT\[1000\]) is the result for that trial. This result shall be compared to the is the result for that trial. This result shall be compared to the result of running 1000 iterations with the same values using a known result of running 1000 iterations with the same values using a known good implementation.\ good implementation.\ \ \ The evaluator shall test the decrypt functionality using the same The evaluator shall test the decrypt functionality using the same test as for encrypt, exchanging CT and PT and replacing test as for encrypt, exchanging CT and PT and replacing [AES](#abbr_AES)-CBC-Encrypt with [AES](#abbr_AES)-CBC-Decrypt. [AES](#abbr_AES)-CBC-Encrypt with [AES](#abbr_AES)-CBC-Decrypt. \ \ > []{.testlist-} - **Test 1:** The evaluator shall test the generation-encryption and | - [Test 11[](#_t_19){.definition}]{#_t_19}: The evaluator shall test decryption-verification functionality of [AES](#abbr_AES)-CCM for | the generation-encryption and decryption-verification functionality the following input parameter and tag lengths:\ | of [AES](#abbr_AES)-CCM for the following input parameter and tag > lengths:\ \ \ - **128 bit and 256 bit keys** - **128 bit and 256 bit keys** - **Two payload lengths.** One payload length shall be the - **Two payload lengths.** One payload length shall be the shortest supported payload length, greater than or equal to zero shortest supported payload length, greater than or equal to zero bytes. The other payload length shall be the longest supported bytes. The other payload length shall be the longest supported payload length, less than or equal to 32 bytes (256 bits). payload length, less than or equal to 32 bytes (256 bits). - **Two or three associated data lengths.** One associated data - **Two or three associated data lengths.** One associated data length shall be 0, if supported. One associated data length length shall be 0, if supported. One associated data length shall be the shortest supported payload length, greater than or shall be the shortest supported payload length, greater than or equal to zero bytes. One associated data length shall be the equal to zero bytes. One associated data length shall be the longest supported payload length, less than or equal to 32 bytes longest supported payload length, less than or equal to 32 bytes (256 bits). If the implementation supports an associated data (256 bits). If the implementation supports an associated data length of 2^16^ bytes, an associated data length of 2^16^ bytes length of 2^16^ bytes, an associated data length of 2^16^ bytes shall be tested. shall be tested. - **Nonce lengths.** All supported nonce lengths between 7 and 13 - **Nonce lengths.** All supported nonce lengths between 7 and 13 bytes, inclusive, shall be tested. bytes, inclusive, shall be tested. - **Tag lengths.** All supported tag lengths of 4, 6, 8, 10, 12, - **Tag lengths.** All supported tag lengths of 4, 6, 8, 10, 12, 14 and 16 bytes shall be tested. 14 and 16 bytes shall be tested. To test the generation-encryption functionality of To test the generation-encryption functionality of [AES](#abbr_AES)-CCM, the evaluator shall perform the following four [AES](#abbr_AES)-CCM, the evaluator shall perform the following four tests:\ tests:\ - **Test 1.1:** For EACH supported key and associated data length | []{.testlist-} and ANY supported payload, nonce and tag length, the evaluator | - [Test 11.1[](#_t_20){.definition}]{#_t_20}: For EACH supported shall supply one key value, one nonce value and 10 pairs of | key and associated data length and ANY supported payload, nonce associated data and payload values and obtain the resulting | and tag length, the evaluator shall supply one key value, one ciphertext. | nonce value and 10 pairs of associated data and payload values - **Test 1.2:** For EACH supported key and payload length and ANY | and obtain the resulting ciphertext. supported associated data, nonce and tag length, the evaluator | - [Test 11.2[](#_t_21){.definition}]{#_t_21}: For EACH supported shall supply one key value, one nonce value and 10 pairs of | key and payload length and ANY supported associated data, nonce associated data and payload values and obtain the resulting | and tag length, the evaluator shall supply one key value, one ciphertext. | nonce value and 10 pairs of associated data and payload values - **Test 1.3:** For EACH supported key and nonce length and ANY | and obtain the resulting ciphertext. supported associated data, payload and tag length, the evaluator | - [Test 11.3[](#_t_22){.definition}]{#_t_22}: For EACH supported shall supply one key value and 10 associated data, payload and | key and nonce length and ANY supported associated data, payload nonce value 3-tuples and obtain the resulting ciphertext. | and tag length, the evaluator shall supply one key value and 10 - **Test 1.4:** For EACH supported key and tag length and ANY | associated data, payload and nonce value 3-tuples and obtain the supported associated data, payload and nonce length, the < evaluator shall supply one key value, one nonce value and 10 < pairs of associated data and payload values and obtain the < resulting ciphertext. resulting ciphertext. > - [Test 11.4[](#_t_23){.definition}]{#_t_23}: For EACH supported > key and tag length and ANY supported associated data, payload > and nonce length, the evaluator shall supply one key value, one > nonce value and 10 pairs of associated data and payload values > and obtain the resulting ciphertext. To determine correctness in each of the above tests, the evaluator To determine correctness in each of the above tests, the evaluator shall compare the ciphertext with the result of shall compare the ciphertext with the result of generation-encryption of the same inputs with a known good generation-encryption of the same inputs with a known good implementation.\ implementation.\ \ \ To test the decryption-verification functionality of To test the decryption-verification functionality of [AES](#abbr_AES)-CCM, for EACH combination of supported associated [AES](#abbr_AES)-CCM, for EACH combination of supported associated data length, payload length, nonce length and tag length, the data length, payload length, nonce length and tag length, the evaluator shall supply a key value and 15 nonce, associated data and evaluator shall supply a key value and 15 nonce, associated data and ciphertext 3-tuples and obtain either a FAIL result or a PASS result ciphertext 3-tuples and obtain either a FAIL result or a PASS result with the decrypted payload. The evaluator shall supply 10 tuples with the decrypted payload. The evaluator shall supply 10 tuples that should FAIL and 5 that should PASS per set of 15. that should FAIL and 5 that should PASS per set of 15. \ \ > []{.testlist-} **[[AES](#abbr_AES)-GCM Test]{.underline}**\ **[[AES](#abbr_AES)-GCM Test]{.underline}**\ The evaluator shall test the authenticated encrypt functionality of The evaluator shall test the authenticated encrypt functionality of [AES](#abbr_AES)-GCM for each combination of the following input [AES](#abbr_AES)-GCM for each combination of the following input parameter lengths:\ parameter lengths:\ \ \ - **128 bit and 256 bit keys** - **128 bit and 256 bit keys** - **Two plaintext lengths.** One of the plaintext lengths shall be a - **Two plaintext lengths.** One of the plaintext lengths shall be a non-zero integer multiple of 128 bits, if supported. The other non-zero integer multiple of 128 bits, if supported. The other plaintext length shall not be an integer multiple of 128 bits, if plaintext length shall not be an integer multiple of 128 bits, if supported. supported. - **Three AAD lengths.** One AAD length shall be 0, if supported. One - **Three AAD lengths.** One AAD length shall be 0, if supported. One AAD length shall be a non-zero integer multiple of 128 bits, if AAD length shall be a non-zero integer multiple of 128 bits, if supported. One AAD length shall not be an integer multiple of 128 supported. One AAD length shall not be an integer multiple of 128 bits, if supported. bits, if supported. - **Two IV lengths.** If 96 bit IV is supported, 96 bits shall be one - **Two IV lengths.** If 96 bit IV is supported, 96 bits shall be one of the two IV lengths tested. of the two IV lengths tested. **Test 1:** The evaluator shall test the encrypt functionality using a | [Test 12[](#_t_24){.definition}]{#_t_24}: The evaluator shall test the set of 10 key, plaintext, AAD, and IV tuples for each combination of | encrypt functionality using a set of 10 key, plaintext, AAD, and IV parameter lengths above and obtain the ciphertext value and tag that | tuples for each combination of parameter lengths above and obtain the results from [AES](#abbr_AES)-GCM authenticated encrypt. Each supported | ciphertext value and tag that results from [AES](#abbr_AES)-GCM tag length shall be tested at least once per set of 10. The IV value may | authenticated encrypt. Each supported tag length shall be tested at be supplied by the evaluator or the implementation being tested, as long | least once per set of 10. The IV value may be supplied by the evaluator as it is known. | or the implementation being tested, as long as it is known. \ \ **Test 2:** The evaluator shall test the decrypt functionality using a | [Test 13[](#_t_25){.definition}]{#_t_25}: The evaluator shall test the set of 10 key, ciphertext, tag, AAD, and IV 5-tuples for each | decrypt functionality using a set of 10 key, ciphertext, tag, AAD, and combination of parameter lengths above and obtain a Pass/Fail result on | IV 5-tuples for each combination of parameter lengths above and obtain a authentication and the decrypted plaintext if Pass. The set shall | Pass/Fail result on authentication and the decrypted plaintext if Pass. include five tuples that Pass and five that Fail. | The set shall include five tuples that Pass and five that Fail. \ \ The results from each test may either be obtained by the evaluator The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same compare the resulting values to those obtained by submitting the same inputs to a known good implementation. inputs to a known good implementation. \ \ > []{.testlist-} - **Test 1:** The evaluator shall test the encrypt functionality of | - [Test 14[](#_t_26){.definition}]{#_t_26}: The evaluator shall test [XTS](#abbr_XTS)-AES for each combination of the following input | the encrypt functionality of [XTS](#abbr_XTS)-AES for each parameter lengths:\ | combination of the following input parameter lengths:\ \ \ - **256 bit (for [AES](#abbr_AES)-128) and 512 bit (for - **256 bit (for [AES](#abbr_AES)-128) and 512 bit (for [AES](#abbr_AES)-256) keys** [AES](#abbr_AES)-256) keys** - **Three data unit (i.e. plaintext) lengths.** One of the data - **Three data unit (i.e. plaintext) lengths.** One of the data unit lengths shall be a non-zero integer multiple of 128 bits, unit lengths shall be a non-zero integer multiple of 128 bits, if supported. One of the data unit lengths shall be an integer if supported. One of the data unit lengths shall be an integer multiple of 128 bits, if supported. The third data unit length multiple of 128 bits, if supported. The third data unit length shall be either the longest supported data unit length or 216 shall be either the longest supported data unit length or 216 bits, whichever is smaller. bits, whichever is smaller. using a set of 100 (key, plaintext and 128-bit random tweak value) using a set of 100 (key, plaintext and 128-bit random tweak value) 3-tuples and obtain the ciphertext that results from 3-tuples and obtain the ciphertext that results from [XTS](#abbr_XTS)-AES encrypt.\ [XTS](#abbr_XTS)-AES encrypt.\ \ \ The evaluator may supply a data unit sequence number instead of the The evaluator may supply a data unit sequence number instead of the tweak value if the implementation supports it. The data unit tweak value if the implementation supports it. The data unit sequence number is a base-10 number ranging between 0 and 255 that sequence number is a base-10 number ranging between 0 and 255 that implementations convert to a tweak value internally. implementations convert to a tweak value internally. - **Test 2:** The evaluator shall test the decrypt functionality of | - [Test 15[](#_t_27){.definition}]{#_t_27}: The evaluator shall test [XTS](#abbr_XTS)-AES using the same test as for encrypt, replacing | the decrypt functionality of [XTS](#abbr_XTS)-AES using the same plaintext values with ciphertext values and [XTS](#abbr_XTS)-AES | test as for encrypt, replacing plaintext values with ciphertext encrypt with [XTS](#abbr_XTS)-AES decrypt. | values and [XTS](#abbr_XTS)-AES encrypt with [XTS](#abbr_XTS)-AES > decrypt. \ \ | []{.testlist-} - **Test 1:** The evaluator shall test the authenticated encryption | functionality of [AES](#abbr_AES)-KW for EACH combination of the | - [Test 16[](#_t_28){.definition}]{#_t_28}: The evaluator shall test following input parameter lengths:\ | the authenticated encryption functionality of [AES](#abbr_AES)-KW > for EACH combination of the following input parameter lengths:\ \ \ - **128 and 256 bit key encryption keys (KEKs)** - **128 and 256 bit key encryption keys (KEKs)** - **Three plaintext lengths.** One of the plaintext lengths shall - **Three plaintext lengths.** One of the plaintext lengths shall be two semi-blocks (128 bits). One of the plaintext lengths be two semi-blocks (128 bits). One of the plaintext lengths shall be three semi-blocks (192 bits). The third data unit shall be three semi-blocks (192 bits). The third data unit length shall be the longest supported plaintext length less than length shall be the longest supported plaintext length less than or equal to 64 semi-blocks (4096 bits). or equal to 64 semi-blocks (4096 bits). using a set of 100 key and plaintext pairs and obtain the ciphertext using a set of 100 key and plaintext pairs and obtain the ciphertext that results from [AES](#abbr_AES)-KW authenticated encryption. To that results from [AES](#abbr_AES)-KW authenticated encryption. To determine correctness, the evaluator shall use the determine correctness, the evaluator shall use the [AES](#abbr_AES)-KW authenticated-encryption function of a known [AES](#abbr_AES)-KW authenticated-encryption function of a known good implementation. good implementation. - **Test 2:** The evaluator shall test the authenticated-decryption | - [Test 17[](#_t_29){.definition}]{#_t_29}: The evaluator shall test functionality of [AES](#abbr_AES)-KW using the same test as for | the authenticated-decryption functionality of [AES](#abbr_AES)-KW authenticated-encryption, replacing plaintext values with ciphertext | using the same test as for authenticated-encryption, replacing values and [AES](#abbr_AES)-KW authenticated-encryption with | plaintext values with ciphertext values and [AES](#abbr_AES)-KW [AES](#abbr_AES)-KW authenticated-decryption. | authenticated-encryption with [AES](#abbr_AES)-KW - **Test 3:** The evaluator shall test the authenticated-encryption | authenticated-decryption. functionality of [AES](#abbr_AES)-KWP using the same test as for | - [Test 18[](#_t_30){.definition}]{#_t_30}: The evaluator shall test [AES](#abbr_AES)-KW authenticated-encryption with the following | the authenticated-encryption functionality of [AES](#abbr_AES)-KWP change in the three plaintext lengths: | using the same test as for [AES](#abbr_AES)-KW > authenticated-encryption with the following change in the three > plaintext lengths: - One plaintext length shall be one octet. One plaintext length - One plaintext length shall be one octet. One plaintext length shall be 20 octets (160 bits). shall be 20 octets (160 bits). - One plaintext length shall be the longest supported plaintext - One plaintext length shall be the longest supported plaintext length less than or equal to 512 octets (4096 bits). length less than or equal to 512 octets (4096 bits). - **Test 4:** The evaluator shall test the authenticated-decryption | - [Test 19[](#_t_31){.definition}]{#_t_31}: The evaluator shall test functionality of [AES](#abbr_AES)-KWP using the same test as for | the authenticated-decryption functionality of [AES](#abbr_AES)-KWP [AES](#abbr_AES)-KWP authenticated-encryption, replacing plaintext | using the same test as for [AES](#abbr_AES)-KWP values with ciphertext values and [AES](#abbr_AES)-KWP | authenticated-encryption, replacing plaintext values with ciphertext authenticated-encryption with [AES](#abbr_AES)-KWP | values and [AES](#abbr_AES)-KWP authenticated-encryption with authenticated-decryption. | [AES](#abbr_AES)-KWP authenticated-decryption. < \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_COP.1/HASH .comp} ::: {#FCS_COP.1/HASH .comp} #### FCS\_COP.1/HASH Cryptographic Operation #### FCS\_COP.1/HASH Cryptographic Operation ::: {.element} ::: {.element} ::: {#FCS_COP.1.1/HASH .reqid} ::: {#FCS_COP.1.1/HASH .reqid} [FCS\_COP.1.1/HASH](#FCS_COP.1.1/HASH){.abbr} [FCS\_COP.1.1/HASH](#FCS_COP.1.1/HASH){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall perform [cryptographic hashing]{.refinement} The [TSF](#abbr_TSF) shall perform [cryptographic hashing]{.refinement} in accordance with a specified cryptographic algorithm in accordance with a specified cryptographic algorithm [[SHA](#abbr_SHA)-1 and \[**selection**: *[SHA](#abbr_SHA)-256*, | [[SHA](#abbr_SHA)-1 and \[**selection**: [[SHA](#abbr_SHA)-256]{#_s_127 *[SHA](#abbr_SHA)-384*, *[SHA](#abbr_SHA)-512*, *no other | .selectable-content}, [[SHA](#abbr_SHA)-384]{#_s_128 algorithms*\]]{.refinement} and [message digest]{.refinement} sizes [160 | .selectable-content}, [[SHA](#abbr_SHA)-512]{#_s_129 and \[**selection**: *256*, *384*, *512 bits*, *no other message digest | .selectable-content}, [no other algorithms]{#_s_130 .selectable-content} sizes*\]]{.refinement} that meet the following: [[FIPS](#abbr_FIPS) Pub | \]]{.refinement} and [message digest]{.refinement} sizes [160 bits and 180-4]{.refinement}. | \[**selection**: [256 bits]{#_s_131 .selectable-content}, [384 > bits]{#_s_132 .selectable-content}, [512 bits]{#_s_133 > .selectable-content}, [no other message digest sizes]{#_s_134 > .selectable-content} \]]{.refinement} that meet the following: > [[FIPS](#abbr_FIPS) Pub 180-4]{.refinement}. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[Per [NIST](#abbr_NIST) SP 800-131A, [Application Note: ]{.note-header}[Per [NIST](#abbr_NIST) SP 800-131A, [SHA](#abbr_SHA)-1 for generating digital signatures is no longer [SHA](#abbr_SHA)-1 for generating digital signatures is no longer allowed, and [SHA](#abbr_SHA)-1 for verification of digital signatures allowed, and [SHA](#abbr_SHA)-1 for verification of digital signatures is strongly discouraged as there may be risk in accepting these is strongly discouraged as there may be risk in accepting these signatures. It is expected that vendors will implement signatures. It is expected that vendors will implement [SHA](#abbr_SHA)-2 algorithms in accordance with SP 800-131A.\ [SHA](#abbr_SHA)-2 algorithms in accordance with SP 800-131A.\ \ \ [SHA](#abbr_SHA)-1 is currently required in order to comply with the [SHA](#abbr_SHA)-1 is currently required in order to comply with the WLAN Client Extended Package. Vendors are strongly encouraged to WLAN Client Extended Package. Vendors are strongly encouraged to implement updated protocols that support the [SHA](#abbr_SHA)-2 family; implement updated protocols that support the [SHA](#abbr_SHA)-2 family; until updated protocols are supported, this [PP](#abbr_PP) allows until updated protocols are supported, this [PP](#abbr_PP) allows support for [SHA](#abbr_SHA)-1 implementations in compliance with SP support for [SHA](#abbr_SHA)-1 implementations in compliance with SP 800-131A.\ 800-131A.\ \ \ The intent of this requirement is to specify the hashing function. The The intent of this requirement is to specify the hashing function. The hash selection must support the message digest size selection. The hash hash selection must support the message digest size selection. The hash selection should be consistent with the overall strength of the selection should be consistent with the overall strength of the algorithm used (for example, [SHA](#abbr_SHA) 256 for 128-bit keys).\ algorithm used (for example, [SHA](#abbr_SHA) 256 for 128-bit keys).\ \ \ The [TSF](#abbr_TSF) hashing functions can be implemented in one of two The [TSF](#abbr_TSF) hashing functions can be implemented in one of two modes. The first mode is the byte­oriented mode. In this mode the modes. The first mode is the byte­oriented mode. In this mode the [TSF](#abbr_TSF) only hashes messages that are an integral number of [TSF](#abbr_TSF) only hashes messages that are an integral number of bytes in length; i.e. the length (in bits) of the message to be hashed bytes in length; i.e. the length (in bits) of the message to be hashed is divisible by 8. The second mode is the bit­oriented mode. In this is divisible by 8. The second mode is the bit­oriented mode. In this mode the [TSF](#abbr_TSF) hashes messages of arbitrary length. The mode the [TSF](#abbr_TSF) hashes messages of arbitrary length. The [TSF](#abbr_TSF) may implement either bit-oriented or byte-oriented; [TSF](#abbr_TSF) may implement either bit-oriented or byte-oriented; both implementations are not required. ]{.note} both implementations are not required. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_COP.1/HASH](#FCS_COP.1/HASH):\ | ::: {.component-activity-header} > [FCS\_COP.1/HASH](#FCS_COP.1/HASH) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall check that the association of the hash function with The evaluator shall check that the association of the hash function with other [TSF](#abbr_TSF) cryptographic functions (for example, the digital other [TSF](#abbr_TSF) cryptographic functions (for example, the digital signature verification function) is documented in the [TSS](#abbr_TSS). signature verification function) is documented in the [TSS](#abbr_TSS). The evalutator shall check that the [TSS](#abbr_TSS) indicates if the | The evaluator shall check that the [TSS](#abbr_TSS) indicates if the hashing function is implemented in bit-oriented and/or byte-oriented hashing function is implemented in bit-oriented and/or byte-oriented mode.\ mode.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator checks the AGD documents to determine that any The evaluator checks the AGD documents to determine that any configuration that is required to be done to configure the functionality configuration that is required to be done to configure the functionality for the required hash sizes is present.\ for the required hash sizes is present.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following tests require the developer **Evaluation Activity Note:** The following tests require the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products.\ tools that are typically not found on factory products.\ \ \ The evaluator shall perform all of the following tests for each hash The evaluator shall perform all of the following tests for each hash algorithm implemented by the [TSF](#abbr_TSF) and used to satisfy the algorithm implemented by the [TSF](#abbr_TSF) and used to satisfy the requirements of this [PP](#abbr_PP). As there are different tests for requirements of this [PP](#abbr_PP). As there are different tests for each mode, an indication is given in the following sections for the each mode, an indication is given in the following sections for the bit­oriented vs. the byte­oriented testmacs.\ | bit­oriented vs. the byte­oriented tests.\ \ \ > []{.testlist-} - **Test 1:** *Short Messages Test: Bit-oriented Mode*\ | - [Test 20[](#_t_32){.definition}]{#_t_32}: *Short Messages Test: > Bit-oriented Mode*\ The evaluators devise an input set consisting of m+1 messages, where The evaluators devise an input set consisting of m+1 messages, where m is the block length of the hash algorithm. The length of the m is the block length of the hash algorithm. The length of the messages ranges sequentially from 0 to m bits. The message text messages ranges sequentially from 0 to m bits. The message text shall be pseudorandomly generated. The evaluators compute the shall be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct message digest for each of the messages and ensure that the correct result is produced when the messages are provided to the result is produced when the messages are provided to the [TSF](#abbr_TSF). [TSF](#abbr_TSF). - **Test 2:** *Short Messages Test: Byte-oriented Mode*\ | - [Test 21[](#_t_33){.definition}]{#_t_33}: *Short Messages Test: > Byte-oriented Mode*\ The evaluators devise an input set consisting of m/8+1 messages, The evaluators devise an input set consisting of m/8+1 messages, where m is the block length of the hash algorithm. The length of the where m is the block length of the hash algorithm. The length of the messages range sequentially from 0 to m/8 bytes, with each message messages range sequentially from 0 to m/8 bytes, with each message being an integral number of bytes. The message text shall be being an integral number of bytes. The message text shall be pseudorandomly generated. The evaluators compute the message digest pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is for each of the messages and ensure that the correct result is produced when the messages are provided to the [TSF](#abbr_TSF). produced when the messages are provided to the [TSF](#abbr_TSF). - **Test 3:** *Selected Long Messages Test: Bit-oriented Mode*\ | - [Test 22[](#_t_34){.definition}]{#_t_34}: *Selected Long Messages > Test: Bit-oriented Mode*\ The evaluators devise an input set consisting of m messages, where m The evaluators devise an input set consisting of m messages, where m is the block length of the hash algorithm. The length of the i^th^ is the block length of the hash algorithm. The length of the i^th^ message is 512 + 99\*i, where 1 ≤ i ≤ m. The message text shall be message is 512 + 99\*i, where 1 ≤ i ≤ m. The message text shall be pseudorandomly generated. The evaluators compute the message digest pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is for each of the messages and ensure that the correct result is produced when the messages are provided to the [TSF](#abbr_TSF). produced when the messages are provided to the [TSF](#abbr_TSF). - **Test 4:** *Selected Long Messages Test: Byte-oriented Mode*\ | - [Test 23[](#_t_35){.definition}]{#_t_35}: *Selected Long Messages > Test: Byte-oriented Mode*\ The evaluators devise an input set consisting of m/8 messages, where The evaluators devise an input set consisting of m/8 messages, where m is the block length of the hash algorithm. The length of the i^th^ m is the block length of the hash algorithm. The length of the i^th^ message is 512 + 8\*99\*i, where 1 ≤ i ≤ m/8. The message text shall message is 512 + 8\*99\*i, where 1 ≤ i ≤ m/8. The message text shall be pseudorandomly generated. The evaluators compute the message be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result digest for each of the messages and ensure that the correct result is produced when the messages are provided to the [TSF](#abbr_TSF). is produced when the messages are provided to the [TSF](#abbr_TSF). - **Test 5:** *Pseudorandomly Generated Messages Test: Byte-oriented | - [Test 24[](#_t_36){.definition}]{#_t_36}: *Pseudorandomly Generated Mode*\ | Messages Test: Byte-oriented Mode*\ This test is for byte­oriented implementations only. The evaluators This test is for byte­oriented implementations only. The evaluators randomly generate a seed that is n bits long, where n is the length randomly generate a seed that is n bits long, where n is the length of the message digest produced by the hash function to be tested. of the message digest produced by the hash function to be tested. The evaluators then formulate a set of 100 messages and associated The evaluators then formulate a set of 100 messages and associated digests by following the algorithm provided in Figure 1 of SHAVS. digests by following the algorithm provided in Figure 1 of SHAVS. The evaluators then ensure that the correct result is produced when The evaluators then ensure that the correct result is produced when the messages are provided to the [TSF](#abbr_TSF). the messages are provided to the [TSF](#abbr_TSF). < \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_COP.1/SIGN .comp} ::: {#FCS_COP.1/SIGN .comp} #### FCS\_COP.1/SIGN Cryptographic Operation #### FCS\_COP.1/SIGN Cryptographic Operation ::: {.element} ::: {.element} ::: {#FCS_COP.1.1/SIGN .reqid} ::: {#FCS_COP.1.1/SIGN .reqid} [FCS\_COP.1.1/SIGN](#FCS_COP.1.1/SIGN){.abbr} [FCS\_COP.1.1/SIGN](#FCS_COP.1.1/SIGN){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall perform [cryptographic signature services The [TSF](#abbr_TSF) shall perform [cryptographic signature services (generation and verification)]{.refinement} in accordance with a (generation and verification)]{.refinement} in accordance with a specified cryptographic algorithm \[**selection**: specified cryptographic algorithm \[**selection**: - *[[RSA](#abbr_RSA) schemes using cryptographic key sizes of 2048-bit | - [[[RSA](#abbr_RSA) schemes using cryptographic key sizes of 2048-bit or greater that meet the following: [FIPS](#abbr_FIPS) PUB 186-4, or greater that meet the following: [FIPS](#abbr_FIPS) PUB 186-4, \"Digital Signature Standard (DSS)\", Section 4]{.refinement}*, | \"Digital Signature Standard (DSS)\", Section - *[[ECDSA](#abbr_ECDSA) schemes using \"[NIST](#abbr_NIST) curves\" | 4]{.refinement}]{#_s_135 .selectable-content} P-384 and \[**selection**: *P-256*, *P-521*, *no other curves*\] | - [[[ECDSA](#abbr_ECDSA) schemes using \"[NIST](#abbr_NIST) curves\" that meet the following: [FIPS](#abbr_FIPS) PUB 186-4, \"Digital | P-384 and \[**selection**: [P-256]{#_s_137 .selectable-content}, Signature Standard (DSS)\", Section 5]{.refinement}* | [P-521]{#_s_138 .selectable-content}, [no other curves]{#_s_139 > .selectable-content} \] that meet the following: [FIPS](#abbr_FIPS) > PUB 186-4, \"Digital Signature Standard (DSS)\", Section > 5]{.refinement}]{#_s_136 .selectable-content} \]. \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The [ST](#abbr_ST) author should [Application Note: ]{.note-header}[The [ST](#abbr_ST) author should choose the algorithm implemented to perform digital signatures; if more choose the algorithm implemented to perform digital signatures; if more than one algorithm is available, this requirement should be iterated to than one algorithm is available, this requirement should be iterated to specify the functionality. For the algorithm chosen, the [ST](#abbr_ST) specify the functionality. For the algorithm chosen, the [ST](#abbr_ST) author should make the appropriate assignments/selections to specify the author should make the appropriate assignments/selections to specify the parameters that are implemented for that algorithm. ]{.note} parameters that are implemented for that algorithm. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN):\ | ::: {.component-activity-header} > [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following tests require the developer **Evaluation Activity Note:** The following tests require the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products.\ tools that are typically not found on factory products.\ \ \ > []{.testlist-} - **Test 1:** **\[conditional\] If \"[ECDSA](#abbr_ECDSA) | - [Test 25[](#_t_37){.definition}]{#_t_37}: **\[conditional\] If schemes\...\" is selected in | \"[ECDSA](#abbr_ECDSA) schemes\...\" is selected in [FCS\_COP.1.1/SIGN](#FCS_COP.1.1/SIGN)**\ [FCS\_COP.1.1/SIGN](#FCS_COP.1.1/SIGN)**\ - **Test 1.1:** **[ECDSA](#abbr_ECDSA) [FIPS](#abbr_FIPS) 186-4 | []{.testlist-} Signature Generation Test**\ | - [Test 25.1[](#_t_38){.definition}]{#_t_38}: > **[ECDSA](#abbr_ECDSA) [FIPS](#abbr_FIPS) 186-4 Signature > Generation Test**\ For each supported [NIST](#abbr_NIST) curve (i.e. P-256, P-384 For each supported [NIST](#abbr_NIST) curve (i.e. P-256, P-384 and P-521) and [SHA](#abbr_SHA) function pair, the evaluator and P-521) and [SHA](#abbr_SHA) function pair, the evaluator shall generate 10 1024-bit long messages and obtain for each shall generate 10 1024-bit long messages and obtain for each message a public key and the resulting signature values R and S. message a public key and the resulting signature values R and S. To determine correctness, the evaluator shall use the signature To determine correctness, the evaluator shall use the signature verification function of a known good implementation. verification function of a known good implementation. - **Test 1.2:** **[ECDSA](#abbr_ECDSA) [FIPS](#abbr_FIPS) 186-4 | - [Test 25.2[](#_t_39){.definition}]{#_t_39}: Signature Verification Test**\ | **[ECDSA](#abbr_ECDSA) [FIPS](#abbr_FIPS) 186-4 Signature > Verification Test**\ For each supported [NIST](#abbr_NIST) curve (i.e. P-256, P-384 For each supported [NIST](#abbr_NIST) curve (i.e. P-256, P-384 and P-521) and [SHA](#abbr_SHA) function pair, the evaluator and P-521) and [SHA](#abbr_SHA) function pair, the evaluator shall generate a set of 10 1024-bit message, public key and shall generate a set of 10 1024-bit message, public key and signature tuples and modify one of the values (message, public signature tuples and modify one of the values (message, public key or signature) in five of the 10 tuples. The evaluator shall key or signature) in five of the 10 tuples. The evaluator shall obtain in response a set of 10 PASS/FAIL values. obtain in response a set of 10 PASS/FAIL values. - **Test 2:** **\[conditional\] If \"[RSA](#abbr_RSA) schemes\...\" is | - [Test 26[](#_t_40){.definition}]{#_t_40}: **\[conditional\] If selected in [FCS\_COP.1.1/SIGN](#FCS_COP.1.1/SIGN)**\ | \"[RSA](#abbr_RSA) schemes\...\" is selected in - **Test 2.1:** **Signature Generation Test**\ | [FCS\_COP.1.1/SIGN](#FCS_COP.1.1/SIGN)**\ > []{.testlist-} > - [Test 26.1[](#_t_41){.definition}]{#_t_41}: **Signature > Generation Test**\ The evaluator shall verify the implementation of The evaluator shall verify the implementation of [RSA](#abbr_RSA) Signature Generation by the [TOE](#abbr_TOE) [RSA](#abbr_RSA) Signature Generation by the [TOE](#abbr_TOE) using the Signature Generation Test. To conduct this test the using the Signature Generation Test. To conduct this test the evaluator must generate or obtain 10 messages from a trusted evaluator must generate or obtain 10 messages from a trusted reference implementation for each modulus size/[SHA](#abbr_SHA) reference implementation for each modulus size/[SHA](#abbr_SHA) combination supported by the [TSF](#abbr_TSF). The evaluator combination supported by the [TSF](#abbr_TSF). The evaluator shall have the [TOE](#abbr_TOE) use their private key and shall have the [TOE](#abbr_TOE) use their private key and modulus value to sign these messages.\ modulus value to sign these messages.\ \ \ The evaluator shall verify the correctness of the The evaluator shall verify the correctness of the [TSF](#abbr_TSF)'s signature using a known good implementation [TSF](#abbr_TSF)'s signature using a known good implementation and the associated public keys to verify the signatures. and the associated public keys to verify the signatures. - **Test 2.2:** **Signature Verification Test**\ | - [Test 26.2[](#_t_42){.definition}]{#_t_42}: **Signature > Verification Test**\ The evaluator shall perform the Signature Verification test to The evaluator shall perform the Signature Verification test to verify the ability of the [TOE](#abbr_TOE) to recognize another verify the ability of the [TOE](#abbr_TOE) to recognize another party's valid and invalid signatures. The evaluator shall inject party's valid and invalid signatures. The evaluator shall inject errors into the test vectors produced during the Signature errors into the test vectors produced during the Signature Verification Test by introducing errors in some of the public Verification Test by introducing errors in some of the public keys e, messages, IR format, and/or signatures. The keys e, messages, IR format, and/or signatures. The [TOE](#abbr_TOE) attempts to verify the signatures and returns [TOE](#abbr_TOE) attempts to verify the signatures and returns success or failure.\ success or failure.\ \ \ The evaluator shall use these test vectors to emulate the The evaluator shall use these test vectors to emulate the signature verification test using the corresponding parameters signature verification test using the corresponding parameters and verify that the [TOE](#abbr_TOE) detects these errors. and verify that the [TOE](#abbr_TOE) detects these errors. < \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_COP.1/KEYHMAC .comp} ::: {#FCS_COP.1/KEYHMAC .comp} #### FCS\_COP.1/KEYHMAC Cryptographic Operation #### FCS\_COP.1/KEYHMAC Cryptographic Operation ::: {.element} ::: {.element} ::: {#FCS_COP.1.1/KEYHMAC .reqid} ::: {#FCS_COP.1.1/KEYHMAC .reqid} [FCS\_COP.1.1/KEYHMAC](#FCS_COP.1.1/KEYHMAC){.abbr} [FCS\_COP.1.1/KEYHMAC](#FCS_COP.1.1/KEYHMAC){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall perform [keyed-hash message The [TSF](#abbr_TSF) shall perform [keyed-hash message authentication]{.refinement} in accordance with a specified authentication]{.refinement} in accordance with a specified cryptographic algorithm [[HMAC](#abbr_HMAC)-SHA-1 and \[**selection**: cryptographic algorithm [[HMAC](#abbr_HMAC)-SHA-1 and \[**selection**: *[HMAC](#abbr_HMAC)-SHA-256*, *[HMAC](#abbr_HMAC)-SHA-384*, | [[HMAC](#abbr_HMAC)-SHA-256]{#_s_140 .selectable-content}, *[HMAC](#abbr_HMAC)-SHA-512*, *no other algorithms*\]]{.refinement} and | [[HMAC](#abbr_HMAC)-SHA-384]{#_s_141 .selectable-content}, > [[HMAC](#abbr_HMAC)-SHA-512]{#_s_142 .selectable-content}, [no other > algorithms]{#_s_143 .selectable-content} \]]{.refinement} and cryptographic key sizes \[**assignment**: [key size (in bits) used in cryptographic key sizes \[**assignment**: [key size (in bits) used in [HMAC](#abbr_HMAC)]{.assignable-content}\][ and message digest sizes 160 [HMAC](#abbr_HMAC)]{.assignable-content}\][ and message digest sizes 160 and \[**selection**: *256*, *384*, *512*, *no other*\] | and \[**selection**: [256]{#_s_144 .selectable-content}, [384]{#_s_145 bits]{.refinement} that meet the following: [[FIPS](#abbr_FIPS) Pub | .selectable-content}, [512]{#_s_146 .selectable-content}, [no 198-1, \"The Keyed-Hash Message Authentication Code\", and | other]{#_s_147 .selectable-content} \] bits]{.refinement} that meet the [FIPS](#abbr_FIPS) Pub 180-4, \"Secure Hash Standard\"]{.refinement}. | following: [[FIPS](#abbr_FIPS) Pub 198-1, \"The Keyed-Hash Message > Authentication Code\", and [FIPS](#abbr_FIPS) Pub 180-4, \"Secure Hash > Standard\"]{.refinement}. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The selection in this requirement [Application Note: ]{.note-header}[ The selection in this requirement must be consistent with the key size specified for the size of the keys must be consistent with the key size specified for the size of the keys used in conjunction with the keyed-hash message authentication. used in conjunction with the keyed-hash message authentication. [HMAC](#abbr_HMAC)-SHA-1 is currently required in order to comply with [HMAC](#abbr_HMAC)-SHA-1 is currently required in order to comply with the WLAN Client EP.]{.note} | the WLAN Client [EP](#abbr_EP).]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_COP.1/KEYHMAC](#FCS_COP.1/KEYHMAC):\ | ::: {.component-activity-header} > [FCS\_COP.1/KEYHMAC](#FCS_COP.1/KEYHMAC) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall examine the [TSS](#abbr_TSS) to ensure that it The evaluator shall examine the [TSS](#abbr_TSS) to ensure that it specifies the following values used by the [HMAC](#abbr_HMAC) function: specifies the following values used by the [HMAC](#abbr_HMAC) function: key length, hash function used, block size, and output MAC length used.\ key length, hash function used, block size, and output MAC length used.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following tests require the developer **Evaluation Activity Note:** The following tests require the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products.\ tools that are typically not found on factory products.\ \ \ For each of the supported parameter sets, the evaluator shall compose 15 For each of the supported parameter sets, the evaluator shall compose 15 sets of test data. Each set shall consist of a key and message data. The sets of test data. Each set shall consist of a key and message data. The evaluator shall have the [TSF](#abbr_TSF) generate [HMAC](#abbr_HMAC) evaluator shall have the [TSF](#abbr_TSF) generate [HMAC](#abbr_HMAC) tags for these sets of test data. The resulting MAC tags shall be tags for these sets of test data. The resulting MAC tags shall be compared to the result of generating [HMAC](#abbr_HMAC) tags with the compared to the result of generating [HMAC](#abbr_HMAC) tags with the same key and IV using a known good implementation.\ | same key and IV using a known good implementation. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_COP.1/CONDITION .comp} ::: {#FCS_COP.1/CONDITION .comp} #### FCS\_COP.1/CONDITION Cryptographic Operation #### FCS\_COP.1/CONDITION Cryptographic Operation ::: {.element} ::: {.element} ::: {#FCS_COP.1.1/CONDITION .reqid} ::: {#FCS_COP.1.1/CONDITION .reqid} [FCS\_COP.1.1/CONDITION](#FCS_COP.1.1/CONDITION){.abbr} [FCS\_COP.1.1/CONDITION](#FCS_COP.1.1/CONDITION){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall perform [conditioning]{.refinement} in The [TSF](#abbr_TSF) shall perform [conditioning]{.refinement} in accordance with a specified cryptographic algorithm accordance with a specified cryptographic algorithm [[HMAC](#abbr_HMAC)-\[**selection**: *[SHA](#abbr_SHA)-256*, | [[HMAC](#abbr_HMAC)-\[**selection**: [[SHA](#abbr_SHA)-256]{#_s_148 *[SHA](#abbr_SHA)-384*, *[SHA](#abbr_SHA)-512*\] using a salt, and | .selectable-content}, [[SHA](#abbr_SHA)-384]{#_s_149 \[**selection**: *PBKDF2 with \[**assignment**: [number of | .selectable-content}, [[SHA](#abbr_SHA)-512]{#_s_150 iterations]{.assignable-content}\] iterations*, *\[**assignment**: [key | .selectable-content} \] using a salt, and \[**selection**: [PBKDF2 with stretching funtion]{.assignable-content}\]*, *no other function*\] and | \[**assignment**: [number of iterations]{.assignable-content}\] output]{.refinement} cryptographic key sizes[ \[**selection**: *128*, | iterations]{#_s_151 .selectable-content}, [\[**assignment**: [key *256*\]]{.refinement} that meet the following: [\[**selection**: | stretching function]{.assignable-content}\]]{#_s_152 *[NIST](#abbr_NIST) SP 800-132*, *no standard*\].]{.refinement} | .selectable-content}, [no other function]{#_s_153 .selectable-content} > \] and output]{.refinement} cryptographic key sizes[ \[**selection**: > [128]{#_s_154 .selectable-content}, [256]{#_s_155 .selectable-content} > \]]{.refinement} that meet the following: [\[**selection**: > [[NIST](#abbr_NIST) SP 800-132]{#_s_156 .selectable-content}, [no > standard]{#_s_157 .selectable-content} \].]{.refinement} ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The key cryptographic key sizes in [Application Note: ]{.note-header}[The key cryptographic key sizes in the third selection should be made to correspond to the [KEK](#abbr_KEK) the third selection should be made to correspond to the [KEK](#abbr_KEK) key sizes selected in [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3).\ key sizes selected in [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3).\ \ \ This password must be conditioned into a string of bits that forms the This password must be conditioned into a string of bits that forms the submask to be used as input into the [KEK](#abbr_KEK). Conditioning can submask to be used as input into the [KEK](#abbr_KEK). Conditioning can be performed using one of the identified hash functions and may include be performed using one of the identified hash functions and may include a key stretching function; the method used is selected by the a key stretching function; the method used is selected by the [ST](#abbr_ST) author. If selected, [NIST](#abbr_NIST) SP 800-132 [ST](#abbr_ST) author. If selected, [NIST](#abbr_NIST) SP 800-132 requires the use of a pseudo-random function (PRF) consisting of | requires the use of a pseudo-random function ([PRF](#abbr_PRF)) [HMAC](#abbr_HMAC) with an approved hash function. The [ST](#abbr_ST) | consisting of [HMAC](#abbr_HMAC) with an approved hash function. The author selects the hash function used, also includes the appropriate | [ST](#abbr_ST) author selects the hash function used, also includes the requirements for [HMAC](#abbr_HMAC) and the hash function.\ | appropriate requirements for [HMAC](#abbr_HMAC) and the hash function.\ \ \ Appendix A of [NIST](#abbr_NIST) SP 800-132 recommends setting the Appendix A of [NIST](#abbr_NIST) SP 800-132 recommends setting the iteration count in order to increase the computation needed to derive a iteration count in order to increase the computation needed to derive a key from a password and, therefore, increase the workload of performing key from a password and, therefore, increase the workload of performing a dictionary attack. ]{.note} a dictionary attack. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_COP.1/CONDITION](#FCS_COP.1/CONDITION):\ | ::: {.component-activity-header} > [FCS\_COP.1/CONDITION](#FCS_COP.1/CONDITION) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall check that the [TSS](#abbr_TSS) describes the method The evaluator shall check that the [TSS](#abbr_TSS) describes the method by which the password is first encoded and then fed to the by which the password is first encoded and then fed to the [SHA](#abbr_SHA) algorithm and verify the [SHA](#abbr_SHA) algorithm [SHA](#abbr_SHA) algorithm and verify the [SHA](#abbr_SHA) algorithm matches the first selection.\ matches the first selection.\ \ \ If a key stretching function, such as PBKDF2, is selected the settings If a key stretching function, such as PBKDF2, is selected the settings for the algorithm (padding, blocking, etc.) shall be described. The for the algorithm (padding, blocking, etc.) shall be described. The evaluator shall verify that the [TSS](#abbr_TSS) contains a description evaluator shall verify that the [TSS](#abbr_TSS) contains a description of how the output of the hash function or key stretching function is of how the output of the hash function or key stretching function is used to form the submask that will be input into the function and is the used to form the submask that will be input into the function and is the same length as the [KEK](#abbr_KEK) as specified in same length as the [KEK](#abbr_KEK) as specified in [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3).\ [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3).\ \ \ If any manipulation of the key is performed in forming the submask that If any manipulation of the key is performed in forming the submask that will be used to form the [KEK](#abbr_KEK), that process shall be will be used to form the [KEK](#abbr_KEK), that process shall be described in the [TSS](#abbr_TSS).\ described in the [TSS](#abbr_TSS).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} There are no test evaluation activities for this component. No explicit There are no test evaluation activities for this component. No explicit testing of the formation of the submask from the input password is testing of the formation of the submask from the input password is required.\ | required. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_HTTPS_EXT.1 .comp} ::: {#FCS_HTTPS_EXT.1 .comp} #### FCS\_HTTPS\_EXT.1 HTTPS Protocol #### FCS\_HTTPS\_EXT.1 HTTPS Protocol ::: {.element} ::: {.element} ::: {#FCS_HTTPS_EXT.1.1 .reqid} ::: {#FCS_HTTPS_EXT.1.1 .reqid} [FCS\_HTTPS\_EXT.1.1](#FCS_HTTPS_EXT.1.1){.abbr} [FCS\_HTTPS\_EXT.1.1](#FCS_HTTPS_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall implement the [HTTPS](#abbr_HTTPS) protocol The [TSF](#abbr_TSF) shall implement the [HTTPS](#abbr_HTTPS) protocol that complies with RFC 2818. that complies with RFC 2818. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FCS_HTTPS_EXT.1.2 .reqid} ::: {#FCS_HTTPS_EXT.1.2 .reqid} [FCS\_HTTPS\_EXT.1.2](#FCS_HTTPS_EXT.1.2){.abbr} [FCS\_HTTPS\_EXT.1.2](#FCS_HTTPS_EXT.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall implement [HTTPS](#abbr_HTTPS) using The [TSF](#abbr_TSF) shall implement [HTTPS](#abbr_HTTPS) using [TLS](#abbr_TLS) as defined in the Package for Transport Layer Security. [TLS](#abbr_TLS) as defined in the Package for Transport Layer Security. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The Package for Transport Layer [Application Note: ]{.note-header}[ The Package for Transport Layer Security must be included in the [ST](#abbr_ST), with the following Security must be included in the [ST](#abbr_ST), with the following selections made: ]{.note} selections made: ]{.note} FCS\_TLS\_EXT.1: FCS\_TLS\_EXT.1: - [TLS](#abbr_TLS) must be selected - [TLS](#abbr_TLS) must be selected - Client must be selected - Client must be selected ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FCS_HTTPS_EXT.1.3 .reqid} ::: {#FCS_HTTPS_EXT.1.3 .reqid} [FCS\_HTTPS\_EXT.1.3](#FCS_HTTPS_EXT.1.3){.abbr} [FCS\_HTTPS\_EXT.1.3](#FCS_HTTPS_EXT.1.3){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall notify the application and \[**selection**: The [TSF](#abbr_TSF) shall notify the application and \[**selection**: *not establish the connection*, *request application authorization to | [not establish the connection]{#_s_158 .selectable-content}, [request establish the connection*, *no other action*\] if the peer certificate | application authorization to establish the connection]{#_s_159 is deemed invalid. | .selectable-content}, [no other action]{#_s_160 .selectable-content} \] > if the peer certificate is deemed invalid. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ Validity is determined by the [Application Note: ]{.note-header}[ Validity is determined by the certificate path, the expiration date, and the revocation status in certificate path, the expiration date, and the revocation status in accordance with RFC 5280.\ accordance with RFC 5280.\ \ \ If \"not establish the connection\" is selected then \"with no If \"not establish the connection\" is selected then \"with no exceptions\" must be selected for FCS\_TLSC\_EXT.1.3 in the Package for exceptions\" must be selected for FCS\_TLSC\_EXT.1.3 in the Package for Transport Layer Security. If \"request application authorization to Transport Layer Security. If \"request application authorization to establish the connection\" is selected then \"except when override is establish the connection\" is selected then \"except when override is authorized\" must be selected for FCS\_TLSC\_EXT.1.3 in the Package for authorized\" must be selected for FCS\_TLSC\_EXT.1.3 in the Package for Transport Layer Security. If \"no other action\" is selected either Transport Layer Security. If \"no other action\" is selected either selection can be made in FCS\_TLSC\_EXT.1.3.\ selection can be made in FCS\_TLSC\_EXT.1.3.\ \ \ [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) Function | [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) Function [23](#mf-certInvalid) [[23]{.counter}](#certInvalid){.certInvalid-ref} configures whether to | configures whether to allow/disallow the establishment of a trusted allow/disallow the establishment of a trusted channel if the peer | channel if the peer certificate is deemed invalid. ]{.note} certificate is deemed invalid. ]{.note} < ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_HTTPS\_EXT.1](#FCS_HTTPS_EXT.1):\ | ::: {.component-activity-header} > [FCS\_HTTPS\_EXT.1](#FCS_HTTPS_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: - **Test 1:** The evaluator shall attempt to establish an | ::: {.ea} [HTTPS](#abbr_HTTPS) connection with a webserver, observe the | []{.testlist-} traffic with a packet analyzer, and verify that the connection | succeeds and that the traffic is identified as [TLS](#abbr_TLS) or | - [Test 27[](#_t_43){.definition}]{#_t_43}: The evaluator shall [HTTPS](#abbr_HTTPS).\ | attempt to establish an [HTTPS](#abbr_HTTPS) connection with a > webserver, observe the traffic with a packet analyzer, and verify > that the connection succeeds and that the traffic is identified as > [TLS](#abbr_TLS) or [HTTPS](#abbr_HTTPS).\ \ \ Other tests are performed in conjunction with testing in the Package Other tests are performed in conjunction with testing in the Package for Transport Layer Security.\ for Transport Layer Security.\ \ \ Certificate validity shall be tested in accordance with testing Certificate validity shall be tested in accordance with testing performed for [FIA\_X509\_EXT.1](#FIA_X509_EXT.1), and the evaluator performed for [FIA\_X509\_EXT.1](#FIA_X509_EXT.1), and the evaluator shall perform the following test: shall perform the following test: - **Test 2:** The evaluator shall demonstrate that using a certificate | - [Test 28[](#_t_44){.definition}]{#_t_44}: The evaluator shall without a valid certification path results in an application | demonstrate that using a certificate without a valid certification notification. Using the administrative guidance, the evaluator shall | path results in an application notification. Using the then load a certificate or certificates to the Trust Anchor Database | administrative guidance, the evaluator shall then load a certificate needed to validate the certificate to be used in the function, and | or certificates to the Trust Anchor Database needed to validate the demonstrate that the function succeeds. The evaluator then shall | certificate to be used in the function, and demonstrate that the delete one of the certificates, and show that the application is | function succeeds. The evaluator then shall delete one of the notified of the validation failure. | certificates, and show that the application is notified of the | validation failure. \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_IV_EXT.1 .comp} ::: {#FCS_IV_EXT.1 .comp} #### FCS\_IV\_EXT.1 Initialization Vector Generation #### FCS\_IV\_EXT.1 Initialization Vector Generation ::: {.element} ::: {.element} ::: {#FCS_IV_EXT.1.1 .reqid} ::: {#FCS_IV_EXT.1.1 .reqid} [FCS\_IV\_EXT.1.1](#FCS_IV_EXT.1.1){.abbr} [FCS\_IV\_EXT.1.1](#FCS_IV_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall generate IVs in accordance with [Table The [TSF](#abbr_TSF) shall generate IVs in accordance with [Table [13]{.counter}](#ivtable){.ivtable-ref}: References and IV Requirements [13]{.counter}](#ivtable){.ivtable-ref}: References and IV Requirements for [NIST](#abbr_NIST)-approved Cipher Modes. for [NIST](#abbr_NIST)-approved Cipher Modes. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ [Table [Application Note: ]{.note-header}[ [Table [13]{.counter}](#ivtable){.ivtable-ref} lists the requirements for [13]{.counter}](#ivtable){.ivtable-ref} lists the requirements for composition of IVs according to the [NIST](#abbr_NIST) Special composition of IVs according to the [NIST](#abbr_NIST) Special Publications for each cipher mode. The composition of IVs generated for Publications for each cipher mode. The composition of IVs generated for encryption according to a cryptographic protocol is addressed by the encryption according to a cryptographic protocol is addressed by the protocol. Thus, this requirement addresses only IVs generated for key protocol. Thus, this requirement addresses only IVs generated for key storage and data storage encryption. ]{.note} storage and data storage encryption. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_IV\_EXT.1](#FCS_IV_EXT.1):\ | ::: {.component-activity-header} > [FCS\_IV\_EXT.1](#FCS_IV_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall examine the key hierarchy section of the The evaluator shall examine the key hierarchy section of the [TSS](#abbr_TSS) to ensure that the encryption of all keys is described [TSS](#abbr_TSS) to ensure that the encryption of all keys is described and the formation of the IVs for each key encrypted by the same and the formation of the IVs for each key encrypted by the same [KEK](#abbr_KEK) meets [FCS\_IV\_EXT.1](#FCS_IV_EXT.1).\ [KEK](#abbr_KEK) meets [FCS\_IV\_EXT.1](#FCS_IV_EXT.1).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_RBG_EXT.1 .comp} ::: {#FCS_RBG_EXT.1 .comp} #### FCS\_RBG\_EXT.1 Random Bit Generation #### FCS\_RBG\_EXT.1 Random Bit Generation ::: {.element} ::: {.element} ::: {#FCS_RBG_EXT.1.1 .reqid} ::: {#FCS_RBG_EXT.1.1 .reqid} [FCS\_RBG\_EXT.1.1](#FCS_RBG_EXT.1.1){.abbr} [FCS\_RBG\_EXT.1.1](#FCS_RBG_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall perform all deterministic random bit The [TSF](#abbr_TSF) shall perform all deterministic random bit generation services in accordance with [NIST](#abbr_NIST) Special generation services in accordance with [NIST](#abbr_NIST) Special Publication 800-90A using \[**selection**: *Hash\_DRBG (any)*, | Publication 800-90A using \[**selection**: [Hash\_DRBG (any)]{#_s_161 *HMAC\_DRBG (any)*, *CTR\_DRBG ([AES](#abbr_AES))*\]. | .selectable-content}, [HMAC\_DRBG (any)]{#_s_162 .selectable-content}, > [CTR\_DRBG ([AES](#abbr_AES))]{#_s_163 .selectable-content} \]. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FCS_RBG_EXT.1.2 .reqid} ::: {#FCS_RBG_EXT.1.2 .reqid} [FCS\_RBG\_EXT.1.2](#FCS_RBG_EXT.1.2){.abbr} [FCS\_RBG\_EXT.1.2](#FCS_RBG_EXT.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The deterministic [RBG](#abbr_RBG) shall be seeded by an entropy source The deterministic [RBG](#abbr_RBG) shall be seeded by an entropy source that accumulates entropy from \[**selection**: *a software-based noise | that accumulates entropy from \[**selection**: [a software-based noise source*, *[TSF](#abbr_TSF)-hardware-based noise source*\] with a minimum | source]{#_s_164 .selectable-content}, [[TSF](#abbr_TSF)-hardware-based of \[**selection**: *128 bits*, *256 bits*\] of entropy at least equal | noise source]{#_s_165 .selectable-content} \] with a minimum of to the greatest security strength (according to [NIST](#abbr_NIST) SP | \[**selection**: [128 bits]{#_s_166 .selectable-content}, [256 800-57) of the keys and hashes that it will generate. | bits]{#_s_167 .selectable-content} \] of entropy at least equal to the > greatest security strength (according to [NIST](#abbr_NIST) SP 800-57) > of the keys and hashes that it will generate. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FCS_RBG_EXT.1.3 .reqid} ::: {#FCS_RBG_EXT.1.3 .reqid} [FCS\_RBG\_EXT.1.3](#FCS_RBG_EXT.1.3){.abbr} [FCS\_RBG\_EXT.1.3](#FCS_RBG_EXT.1.3){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall be capable of providing output of the The [TSF](#abbr_TSF) shall be capable of providing output of the [RBG](#abbr_RBG) to applications running on the [TSF](#abbr_TSF) that [RBG](#abbr_RBG) to applications running on the [TSF](#abbr_TSF) that request random bits. request random bits. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[SP 800-90A contains three different [Application Note: ]{.note-header}[SP 800-90A contains three different methods of generating random numbers; each of these, in turn, depends on methods of generating random numbers; each of these, in turn, depends on underlying cryptographic primitives (hash functions/ciphers). The underlying cryptographic primitives (hash functions/ciphers). The [ST](#abbr_ST) author will select the function used, and include the [ST](#abbr_ST) author will select the function used, and include the specific underlying cryptographic primitives used in the requirement or specific underlying cryptographic primitives used in the requirement or in the [TSS](#abbr_TSS). While any of the identified hash functions in the [TSS](#abbr_TSS). While any of the identified hash functions ([SHA](#abbr_SHA)-224, [SHA](#abbr_SHA)-256, [SHA](#abbr_SHA)-384, ([SHA](#abbr_SHA)-224, [SHA](#abbr_SHA)-256, [SHA](#abbr_SHA)-384, [SHA](#abbr_SHA)-512) are allowed for Hash\_DRBG or HMAC\_DRBG, only [SHA](#abbr_SHA)-512) are allowed for Hash\_DRBG or HMAC\_DRBG, only [AES](#abbr_AES)-based implementations for CTR\_DRBG are allowed.\ [AES](#abbr_AES)-based implementations for CTR\_DRBG are allowed.\ \ \ The [ST](#abbr_ST) author must also ensure that any underlying functions The [ST](#abbr_ST) author must also ensure that any underlying functions are included in the baseline requirements for the [TOE](#abbr_TOE).\ are included in the baseline requirements for the [TOE](#abbr_TOE).\ \ \ Health testing of the DRBGs is performed in conjunction with the Health testing of the DRBGs is performed in conjunction with the self-tests required in [FPT\_TST\_EXT.1.1](#FPT_TST_EXT.1.1).\ self-tests required in [FPT\_TST\_EXT.1.1](#FPT_TST_EXT.1.1).\ \ \ For the selection in [FCS\_RBG\_EXT.1.2](#FCS_RBG_EXT.1.2), the For the selection in [FCS\_RBG\_EXT.1.2](#FCS_RBG_EXT.1.2), the [ST](#abbr_ST) author selects the appropriate number of bits of entropy [ST](#abbr_ST) author selects the appropriate number of bits of entropy that corresponds to the greatest security strength of the algorithms that corresponds to the greatest security strength of the algorithms included in the [ST](#abbr_ST). Security strength is defined in Tables 2 included in the [ST](#abbr_ST). Security strength is defined in Tables 2 and 3 of [NIST](#abbr_NIST) SP 800-57A. For example, if the and 3 of [NIST](#abbr_NIST) SP 800-57A. For example, if the implementation includes 2048-bit [RSA](#abbr_RSA) (security strength of implementation includes 2048-bit [RSA](#abbr_RSA) (security strength of 112 bits), [AES](#abbr_AES) 128 (security strength 128 bits), and 112 bits), [AES](#abbr_AES) 128 (security strength 128 bits), and [HMAC](#abbr_HMAC)-SHA-256 (security strength 256 bits), then the [HMAC](#abbr_HMAC)-SHA-256 (security strength 256 bits), then the [ST](#abbr_ST) author would select 256 bits.\ [ST](#abbr_ST) author would select 256 bits.\ \ \ The [ST](#abbr_ST) author may select either software or hardware noise The [ST](#abbr_ST) author may select either software or hardware noise sources. A hardware noise source is a component that produces data that sources. A hardware noise source is a component that produces data that cannot be explained by a deterministic rule, due to its physical nature. cannot be explained by a deterministic rule, due to its physical nature. In other words, a hardware based noise source generates sequences of In other words, a hardware based noise source generates sequences of random numbers from a physical process that cannot be predicted. For random numbers from a physical process that cannot be predicted. For example, a sampled ring oscillator consists of an odd number of inverter example, a sampled ring oscillator consists of an odd number of inverter gates chained into a loop, with an electrical pulse traveling from gates chained into a loop, with an electrical pulse traveling from inverter to inverter around the loop. The inverters are not clocked, so inverter to inverter around the loop. The inverters are not clocked, so the precise time required for a complete circuit around the loop varies the precise time required for a complete circuit around the loop varies slightly as various physical effects modify the small delay time at each slightly as various physical effects modify the small delay time at each inverter on the line to the next inverter. This variance results in an inverter on the line to the next inverter. This variance results in an approximate natural frequency that contains drift and jitter over time. approximate natural frequency that contains drift and jitter over time. The output of the ring oscillator consists of the oscillating binary The output of the ring oscillator consists of the oscillating binary value sampled at a constant rate from one of the inverters -- a rate value sampled at a constant rate from one of the inverters -- a rate that is significantly slower than the oscillator's natural frequency. that is significantly slower than the oscillator's natural frequency. ]{.note} ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1):\ | ::: {.component-activity-header} > [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) > ::: ::: {.activity} < Documentation shall be produced and the evaluator shall perform the Documentation shall be produced and the evaluator shall perform the activities in accordance with [Appendix D - Entropy Documentation And activities in accordance with [Appendix D - Entropy Documentation And Assessment](#entropy){.dynref}, the \"Clarification to the Entropy Assessment](#entropy){.dynref}, the \"Clarification to the Entropy Documentation and Assessment\".\ Documentation and Assessment\".\ \ \ The evaluator shall verify that the [API](#abbr_API) documentation The evaluator shall verify that the [API](#abbr_API) documentation provided according to [Section 5.2.2 Class ADV: provided according to [Section 5.2.2 Class ADV: Development](#adv){.dynref}, includes the security functions described Development](#adv){.dynref}, includes the security functions described in [FCS\_RBG\_EXT.1.3](#FCS_RBG_EXT.1.3).\ in [FCS\_RBG\_EXT.1.3](#FCS_RBG_EXT.1.3).\ \ \ ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall also confirm that the operational guidance contains The evaluator shall also confirm that the operational guidance contains appropriate instructions for configuring the RNG functionality.\ appropriate instructions for configuring the RNG functionality.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following tests require the developer **Evaluation Activity Note:** The following tests require the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products.\ tools that are typically not found on factory products.\ \ \ The evaluator shall perform 15 trials for the RNG implementation. If the The evaluator shall perform 15 trials for the RNG implementation. If the RNG is configurable, the evaluator shall perform 15 trials for each RNG is configurable, the evaluator shall perform 15 trials for each configuration.\ configuration.\ \ \ If the RNG has prediction resistance enabled, each trial consists of (1) If the RNG has prediction resistance enabled, each trial consists of (1) instantiate DRBG, (2) generate the first block of random bits (3) instantiate DRBG, (2) generate the first block of random bits (3) generate a second block of random bits (4) uninstantiate. The evaluator generate a second block of random bits (4) uninstantiate. The evaluator verifies that the second block of random bits is the expected value. The verifies that the second block of random bits is the expected value. The evaluator shall generate eight input values for each trial. The first is evaluator shall generate eight input values for each trial. The first is a count (0 -- 14). The next three are entropy input, nonce, and a count (0 -- 14). The next three are entropy input, nonce, and personalization string for the instantiate operation. The next two are personalization string for the instantiate operation. The next two are additional input and entropy input for the first call to generate. The additional input and entropy input for the first call to generate. The final two are additional input and entropy input for the second call to final two are additional input and entropy input for the second call to generate. These values are randomly generated. \"generate one block of generate. These values are randomly generated. \"generate one block of random bits\" means to generate random bits with number of returned bits random bits\" means to generate random bits with number of returned bits equal to the Output Block Length (as defined in [NIST](#abbr_NIST) equal to the Output Block Length (as defined in [NIST](#abbr_NIST) SP800-90A).\ SP800-90A).\ \ \ If the RNG does not have prediction resistance, each trial consists of If the RNG does not have prediction resistance, each trial consists of (1) instantiate DRBG, (2) generate the first block of random bits (3) (1) instantiate DRBG, (2) generate the first block of random bits (3) reseed, (4) generate a second block of random bits (5) uninstantiate. reseed, (4) generate a second block of random bits (5) uninstantiate. The evaluator verifies that the second block of random bits is the The evaluator verifies that the second block of random bits is the expected value. The evaluator shall generate eight input values for each expected value. The evaluator shall generate eight input values for each trial. The first is a count (0 -- 14). The next three are entropy input, trial. The first is a count (0 -- 14). The next three are entropy input, nonce, and personalization string for the instantiate operation. The nonce, and personalization string for the instantiate operation. The fifth value is additional input to the first call to generate. The sixth fifth value is additional input to the first call to generate. The sixth and seventh are additional input and entropy input to the call to and seventh are additional input and entropy input to the call to reseed. The final value is additional input to the second generate reseed. The final value is additional input to the second generate call.\ call.\ \ \ The following paragraphs contain more information on some of the input The following paragraphs contain more information on some of the input values to be generated/selected by the evaluator.\ values to be generated/selected by the evaluator.\ \ \ - **Entropy input:** the length of the entropy input value must equal - **Entropy input:** the length of the entropy input value must equal the seed length. the seed length. - **Nonce:** If a nonce is supported (CTR\_DRBG with no Derivation - **Nonce:** If a nonce is supported (CTR\_DRBG with no Derivation Function does not use a nonce), the nonce bit length is one-half the Function does not use a nonce), the nonce bit length is one-half the seed length. seed length. - **Personalization string:** The length of the personalization string - **Personalization string:** The length of the personalization string must be ࣘ seed length. If the implementation only supports one must be ࣘ seed length. If the implementation only supports one personalization string length, then the same length can be used for personalization string length, then the same length can be used for both values. If more than one string length is support, the both values. If more than one string length is support, the evaluator shall use personalization strings of two different evaluator shall use personalization strings of two different lengths. If the implementation does not use a personalization lengths. If the implementation does not use a personalization string, no value needs to be supplied. string, no value needs to be supplied. - **Additional input:** the additional input bit lengths have the same - **Additional input:** the additional input bit lengths have the same defaults and restrictions as the personalization string lengths. defaults and restrictions as the personalization string lengths. < \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_SRV_EXT.1 .comp} ::: {#FCS_SRV_EXT.1 .comp} #### FCS\_SRV\_EXT.1 Cryptographic Algorithm Services #### FCS\_SRV\_EXT.1 Cryptographic Algorithm Services ::: {.element} ::: {.element} ::: {#FCS_SRV_EXT.1.1 .reqid} ::: {#FCS_SRV_EXT.1.1 .reqid} [FCS\_SRV\_EXT.1.1](#FCS_SRV_EXT.1.1){.abbr} [FCS\_SRV\_EXT.1.1](#FCS_SRV_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide a mechanism for applications to The [TSF](#abbr_TSF) shall provide a mechanism for applications to request the [TSF](#abbr_TSF) to perform the following cryptographic request the [TSF](#abbr_TSF) to perform the following cryptographic operations: operations: - All mandatory and \[**selection**: *selected algorithms*, *selected | - All mandatory and \[**selection**: [selected algorithms]{#_s_168 algorithms with the exception of ECC over curve 25519-based | .selectable-content}, [ selected algorithms with the exception of algorithms*\] in [FCS\_CKM.2/LOCKED](#FCS_CKM.2/LOCKED) | ECC over curve 25519-based algorithms]{#_s_169 .selectable-content} > \] in [FCS\_CKM.2/LOCKED](#FCS_CKM.2/LOCKED) - The following algorithms in - The following algorithms in [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT): [AES](#abbr_AES)-CBC, [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT): [AES](#abbr_AES)-CBC, \[**selection**: *[AES](#abbr_AES) Key Wrap*, *[AES](#abbr_AES) Key | \[**selection**: [[AES](#abbr_AES) Key Wrap]{#_s_170 Wrap with Padding*, *[AES](#abbr_AES)-GCM*, *[AES](#abbr_AES)-CCM*, | .selectable-content}, [[AES](#abbr_AES) Key Wrap with *no other modes*\] | Padding]{#_s_171 .selectable-content}, > [[AES](#abbr_AES)-GCM]{#_s_172 .selectable-content}, > [[AES](#abbr_AES)-CCM]{#_s_173 .selectable-content}, [no other > modes]{#_s_174 .selectable-content} \] - All selected algorithms in [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN) - All selected algorithms in [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN) - All mandatory and selected algorithms in - All mandatory and selected algorithms in [FCS\_COP.1/HASH](#FCS_COP.1/HASH) [FCS\_COP.1/HASH](#FCS_COP.1/HASH) - All mandatory and selected algorithms in - All mandatory and selected algorithms in [FCS\_COP.1/KEYHMAC](#FCS_COP.1/KEYHMAC) [FCS\_COP.1/KEYHMAC](#FCS_COP.1/KEYHMAC) - \[**selection**: - \[**selection**: - *All mandatory and \[**selection**: *selected algorithms*, | - [All mandatory and \[**selection**: [selected *selected algorithms with the exception of ECC over curve | algorithms]{#_s_176 .selectable-content}, [selected algorithms 25519-based algorithms*\] in [FCS\_CKM.1](#FCS_CKM.1)*, | with the exception of ECC over curve 25519-based - *The selected algorithms in | algorithms]{#_s_177 .selectable-content} \] in [FCS\_COP.1/CONDITION](#FCS_COP.1/CONDITION)*, | [FCS\_CKM.1](#FCS_CKM.1)]{#_s_175 .selectable-content} - *No other cryptographic operations* | - [The selected algorithms in > [FCS\_COP.1/CONDITION](#FCS_COP.1/CONDITION)]{#_s_178 > .selectable-content} > - [No other cryptographic operations]{#_s_179 .selectable-content} \] \] ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ For each of the listed FCS [Application Note: ]{.note-header}[ For each of the listed FCS components in the bulleted list, the intent is that the [TOE](#abbr_TOE) components in the bulleted list, the intent is that the [TOE](#abbr_TOE) will make available all algorithms specified for that component in the will make available all algorithms specified for that component in the [ST](#abbr_ST). For example, if for [FCS\_COP.1/HASH](#FCS_COP.1/HASH) [ST](#abbr_ST). For example, if for [FCS\_COP.1/HASH](#FCS_COP.1/HASH) the [ST](#abbr_ST) author selects [SHA](#abbr_SHA)-256, then the the [ST](#abbr_ST) author selects [SHA](#abbr_SHA)-256, then the [TOE](#abbr_TOE) would have to make available an interface to perform [TOE](#abbr_TOE) would have to make available an interface to perform [SHA](#abbr_SHA)-1 (the \"mandatory\" portion of [SHA](#abbr_SHA)-1 (the \"mandatory\" portion of [FCS\_COP.1/HASH](#FCS_COP.1/HASH)) and [SHA](#abbr_SHA)-256 (the [FCS\_COP.1/HASH](#FCS_COP.1/HASH)) and [SHA](#abbr_SHA)-256 (the \"selected\" portion of [FCS\_COP.1/HASH](#FCS_COP.1/HASH)).\ \"selected\" portion of [FCS\_COP.1/HASH](#FCS_COP.1/HASH)).\ \ \ The exception is for [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT). The The exception is for [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT). The [TOE](#abbr_TOE) is not required to make available AES\_CCMP, AES\_XTS, [TOE](#abbr_TOE) is not required to make available AES\_CCMP, AES\_XTS, AES\_GCMP-256, or AES\_CCMP\_256 even though they may be implemented to AES\_GCMP-256, or AES\_CCMP\_256 even though they may be implemented to perform [TSF](#abbr_TSF)-related functions. It is acceptable for the perform [TSF](#abbr_TSF)-related functions. It is acceptable for the platform to not provide [AES](#abbr_AES) Key Wrap (KW) and platform to not provide [AES](#abbr_AES) Key Wrap (KW) and [AES](#abbr_AES) Key Wrap with Padding (KWP) to applications even if [AES](#abbr_AES) Key Wrap with Padding (KWP) to applications even if selected in [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT). However, the selected in [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT). However, the [ST](#abbr_ST) author is expected to select [AES](#abbr_AES)-GCM and/or [ST](#abbr_ST) author is expected to select [AES](#abbr_AES)-GCM and/or [AES](#abbr_AES)-CCM if it is selected in the [ST](#abbr_ST) for the [AES](#abbr_AES)-CCM if it is selected in the [ST](#abbr_ST) for the [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT) component. ]{.note} [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT) component. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_SRV\_EXT.1](#FCS_SRV_EXT.1):\ | ::: {.component-activity-header} > [FCS\_SRV\_EXT.1](#FCS_SRV_EXT.1) > ::: ::: {.activity} < The evaluator shall verify that the [API](#abbr_API) documentation The evaluator shall verify that the [API](#abbr_API) documentation provided according to [Section 5.2.2 Class ADV: provided according to [Section 5.2.2 Class ADV: Development](#adv){.dynref} includes the security functions Development](#adv){.dynref} includes the security functions (cryptographic algorithms) described in these requirements.\ (cryptographic algorithms) described in these requirements.\ \ \ ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluator shall write, or the developer shall provide access to, an The evaluator shall write, or the developer shall provide access to, an application that requests cryptographic operations by the application that requests cryptographic operations by the [TSF](#abbr_TSF). The evaluator shall verify that the results from the [TSF](#abbr_TSF). The evaluator shall verify that the results from the operation match the expected results according to the [API](#abbr_API) operation match the expected results according to the [API](#abbr_API) documentation. This application may be used to assist in verifying the documentation. This application may be used to assist in verifying the cryptographic operation Evaluation Activities for the other algorithm cryptographic operation Evaluation Activities for the other algorithm services requirements.\ | services requirements. ::: ::: ::: ::: ::: ::: ::: ::: ### 5.1.3 Cryptographic Storage (FCS\_STG) {#FCS_STG .indexable data-level="3"} ### 5.1.3 Cryptographic Storage (FCS\_STG) {#FCS_STG .indexable data-level="3"} The following requirements describe how keys are protected. All keys The following requirements describe how keys are protected. All keys must ultimately be protected by a [REK](#abbr_REK), and may optionally must ultimately be protected by a [REK](#abbr_REK), and may optionally be protected by the user's authentication factor. Each key's be protected by the user's authentication factor. Each key's confidentiality and integrity must be protected. This section also confidentiality and integrity must be protected. This section also describes the secure key storage services to be provided by the Mobile describes the secure key storage services to be provided by the Mobile Device for use by applications and users, applying the same level of Device for use by applications and users, applying the same level of protection for these keys as keys internal to the [OS](#abbr_OS). protection for these keys as keys internal to the [OS](#abbr_OS). ::: {#FCS_STG_EXT.1 .comp} ::: {#FCS_STG_EXT.1 .comp} #### FCS\_STG\_EXT.1 Cryptographic Key Storage #### FCS\_STG\_EXT.1 Cryptographic Key Storage ::: {.element} ::: {.element} ::: {#FCS_STG_EXT.1.1 .reqid} ::: {#FCS_STG_EXT.1.1 .reqid} [FCS\_STG\_EXT.1.1](#FCS_STG_EXT.1.1){.abbr} [FCS\_STG\_EXT.1.1](#FCS_STG_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide \[**selection**: *mutable hardware*, | The [TSF](#abbr_TSF) shall provide \[**selection**: [mutable *software-based*\] secure key storage for asymmetric private keys and | hardware]{#_s_180 .selectable-content}, [software-based]{#_s_181 \[**selection**: *symmetric keys*, *persistent secrets*, *no other | .selectable-content} \] secure key storage for asymmetric private keys keys*\]. | and \[**selection**: [symmetric keys]{#_s_182 .selectable-content}, > [persistent secrets]{#_s_183 .selectable-content}, [no other > keys]{#_s_184 .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[A hardware keystore can be exposed to [Application Note: ]{.note-header}[A hardware keystore can be exposed to the [TSF](#abbr_TSF) through a variety of interfaces, including embedded the [TSF](#abbr_TSF) through a variety of interfaces, including embedded on the motherboard, [USB](#abbr_USB), microSD, and Bluetooth.\ on the motherboard, [USB](#abbr_USB), microSD, and Bluetooth.\ \ \ Immutable hardware is considered outside of this requirement and will be Immutable hardware is considered outside of this requirement and will be covered elsewhere.\ covered elsewhere.\ \ \ If the secure key storage is implemented in software that is protected If the secure key storage is implemented in software that is protected as required by [FCS\_STG\_EXT.2](#FCS_STG_EXT.2), the [ST](#abbr_ST) as required by [FCS\_STG\_EXT.2](#FCS_STG_EXT.2), the [ST](#abbr_ST) author must select \"software-based.\" If \"software-based\" is author must select \"software-based.\" If \"software-based\" is selected, the [ST](#abbr_ST) author must select \"all software-based key selected, the [ST](#abbr_ST) author must select \"all software-based key storage\" in [FCS\_STG\_EXT.2](#FCS_STG_EXT.2).\ storage\" in [FCS\_STG\_EXT.2](#FCS_STG_EXT.2).\ \ \ Support for secure key storage for all symmetric keys and persistent Support for secure key storage for all symmetric keys and persistent secrets will be required in future revisions. ]{.note} secrets will be required in future revisions. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FCS_STG_EXT.1.2 .reqid} ::: {#FCS_STG_EXT.1.2 .reqid} [FCS\_STG\_EXT.1.2](#FCS_STG_EXT.1.2){.abbr} [FCS\_STG\_EXT.1.2](#FCS_STG_EXT.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall be capable of importing keys/secrets into the The [TSF](#abbr_TSF) shall be capable of importing keys/secrets into the secure key storage upon request of \[**selection**: *the user*, *the | secure key storage upon request of \[**selection**: [the administrator*\] and \[**selection**: *applications running on the | user]{#s-importkeys-user .selectable-content}, [the [TSF](#abbr_TSF)*, *no other subjects*\]. | administrator]{#_s_186 .selectable-content} \] and \[**selection**: > [applications running on the [TSF](#abbr_TSF)]{#_s_187 > .selectable-content}, [no other subjects]{#_s_188 .selectable-content} > \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ If the [ST](#abbr_ST) author selects [Application Note: ]{.note-header}[ If the [ST](#abbr_ST) author selects only user, the [ST](#abbr_ST) author must select function | [the user](#s-importkeys-user), the [ST](#abbr_ST) author must select [[9]{.counter}](#keyStorage){.keyStorage-ref} in | function [9](#mf-keyStorage) in [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1). [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1). ]{.note} | ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FCS_STG_EXT.1.3 .reqid} ::: {#FCS_STG_EXT.1.3 .reqid} [FCS\_STG\_EXT.1.3](#FCS_STG_EXT.1.3){.abbr} [FCS\_STG\_EXT.1.3](#FCS_STG_EXT.1.3){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall be capable of destroying keys/secrets in the The [TSF](#abbr_TSF) shall be capable of destroying keys/secrets in the secure key storage upon request of \[**selection**: *the user*, *the | secure key storage upon request of \[**selection**: [the user]{#_s_189 administrator*\]. | .selectable-content}, [the administrator]{#_s_190 .selectable-content} > \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[If the [ST](#abbr_ST) author selects [Application Note: ]{.note-header}[If the [ST](#abbr_ST) author selects only user, the [ST](#abbr_ST) author must select function only user, the [ST](#abbr_ST) author must select function [[10]{.counter}](#keyWipe){.keyWipe-ref} in | [10](#mf-keyWipe) in [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1). ]{.note} [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1). ]{.note} < ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FCS_STG_EXT.1.4 .reqid} ::: {#FCS_STG_EXT.1.4 .reqid} [FCS\_STG\_EXT.1.4](#FCS_STG_EXT.1.4){.abbr} [FCS\_STG\_EXT.1.4](#FCS_STG_EXT.1.4){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall have the capability to allow only the The [TSF](#abbr_TSF) shall have the capability to allow only the application that imported the key/secret the use of the key/secret. application that imported the key/secret the use of the key/secret. Exceptions may only be explicitly authorized by \[**selection**: *the | Exceptions may only be explicitly authorized by \[**selection**: [the user*, *the administrator*, *a common application developer*\]. | user]{#_s_191 .selectable-content}, [the administrator]{#_s_192 > .selectable-content}, [a common application developer]{#_s_193 > .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[If the [ST](#abbr_ST) author selects [Application Note: ]{.note-header}[If the [ST](#abbr_ST) author selects user or administrator, the [ST](#abbr_ST) author must also select user or administrator, the [ST](#abbr_ST) author must also select function [[34]{.counter}](#sharedKeys){.sharedKeys-ref} in | function [34](#mf-sharedKeys) in [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1). [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1). If the [ST](#abbr_ST) Author | If the [ST](#abbr_ST) Author selects only user, the [ST](#abbr_ST) selects only user, the [ST](#abbr_ST) author must select function | author must select function [34](#mf-sharedKeys) in [[34]{.counter}](#sharedKeys){.sharedKeys-ref} in < [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1). ]{.note} [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1). ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FCS_STG_EXT.1.5 .reqid} ::: {#FCS_STG_EXT.1.5 .reqid} [FCS\_STG\_EXT.1.5](#FCS_STG_EXT.1.5){.abbr} [FCS\_STG\_EXT.1.5](#FCS_STG_EXT.1.5){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall allow only the application that imported the The [TSF](#abbr_TSF) shall allow only the application that imported the key/secret to request that the key/secret be destroyed. Exceptions may key/secret to request that the key/secret be destroyed. Exceptions may only be explicitly authorized by \[**selection**: *the user*, *the | only be explicitly authorized by \[**selection**: [the user]{#_s_194 administrator*, *a common application developer*\]. | .selectable-content}, [the administrator]{#_s_195 .selectable-content}, > [a common application developer]{#_s_196 .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[If the [ST](#abbr_ST) author selects [Application Note: ]{.note-header}[If the [ST](#abbr_ST) author selects user or administrator, the [ST](#abbr_ST) author must also select user or administrator, the [ST](#abbr_ST) author must also select function [[35]{.counter}](#keyWipeRules){.keyWipeRules-ref} in | function [35](#mf-keyWipeRules) in [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1). If the [ST](#abbr_ST) author [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1). If the [ST](#abbr_ST) author selects only user, the [ST](#abbr_ST) author must select function selects only user, the [ST](#abbr_ST) author must select function [[35]{.counter}](#keyWipeRules){.keyWipeRules-ref} in | [35](#mf-keyWipeRules) in [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1). [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1). ]{.note} | ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_STG\_EXT.1](#FCS_STG_EXT.1):\ | ::: {.component-activity-header} > [FCS\_STG\_EXT.1](#FCS_STG_EXT.1) > ::: ::: {.activity} < The evaluator shall verify that the [API](#abbr_API) documentation The evaluator shall verify that the [API](#abbr_API) documentation provided according to [Section 5.2.2 Class ADV: provided according to [Section 5.2.2 Class ADV: Development](#adv){.dynref} includes the security functions (import, Development](#adv){.dynref} includes the security functions (import, use, and destruction) described in these requirements. The use, and destruction) described in these requirements. The [API](#abbr_API) documentation shall include the method by which [API](#abbr_API) documentation shall include the method by which applications restrict access to their keys/secrets in order to meet applications restrict access to their keys/secrets in order to meet [FCS\_STG\_EXT.1.4](#FCS_STG_EXT.1.4)\".\ | [FCS\_STG\_EXT.1.4](#FCS_STG_EXT.1.4).\ \ \ ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall review the [TSS](#abbr_TSS) to determine that the The evaluator shall review the [TSS](#abbr_TSS) to determine that the [TOE](#abbr_TOE) implements the required secure key storage. The [TOE](#abbr_TOE) implements the required secure key storage. The evaluator shall ensure that the [TSS](#abbr_TSS) contains a description evaluator shall ensure that the [TSS](#abbr_TSS) contains a description of the key storage mechanism that justifies the selection of \"mutable of the key storage mechanism that justifies the selection of \"mutable hardware\" or \"software-based\".\ hardware\" or \"software-based\".\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall review the AGD guidance to determine that it The evaluator shall review the AGD guidance to determine that it describes the steps needed to import or destroy keys/secrets.\ describes the steps needed to import or destroy keys/secrets.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluator shall test the functionality of each security function: The evaluator shall test the functionality of each security function: > []{.testlist-} - **Test 1:** The evaluator shall import keys/secrets of each | - [Test 29[](#_t_46){.definition}]{#_t_46}: The evaluator shall import supported type according to the AGD guidance. The evaluator shall | keys/secrets of each supported type according to the AGD guidance. write, or the developer shall provide access to, an application that | The evaluator shall write, or the developer shall provide access to, generates a key/secret of each supported type and calls the import | an application that generates a key/secret of each supported type functions. The evaluator shall verify that no errors occur during | and calls the import functions. The evaluator shall verify that no import. | errors occur during import. - **Test 2:** The evaluator shall write, or the developer shall | - [Test 30[](#_t_47){.definition}]{#_t_47}: The evaluator shall write, provide access to, an application that uses an imported key/secret:\ | or the developer shall provide access to, an application that uses > an imported key/secret:\ - For [RSA](#abbr_RSA), the secret shall be used to sign data. - For [RSA](#abbr_RSA), the secret shall be used to sign data. - For [ECDSA](#abbr_ECDSA), the secret shall be used to sign data - For [ECDSA](#abbr_ECDSA), the secret shall be used to sign data \ \ In the future additional types will be required to be tested:\ In the future additional types will be required to be tested:\ - For symmetric algorithms, the secret shall be used to encrypt - For symmetric algorithms, the secret shall be used to encrypt data. data. - For persistent secrets, the secret shall be compared to the - For persistent secrets, the secret shall be compared to the imported secret. imported secret. \ \ The evaluator shall repeat this test with the application-imported The evaluator shall repeat this test with the application-imported keys/secrets and a different application's imported keys/secrets. keys/secrets and a different application's imported keys/secrets. The evaluator shall verify that the [TOE](#abbr_TOE) requires The evaluator shall verify that the [TOE](#abbr_TOE) requires approval before allowing the application to use the key/secret approval before allowing the application to use the key/secret imported by the user or by a different application:\ imported by the user or by a different application:\ - The evaluator shall deny the approvals to verify that the - The evaluator shall deny the approvals to verify that the application is not able to use the key/secret as described. application is not able to use the key/secret as described. - The evaluator shall repeat the test, allowing the approvals to - The evaluator shall repeat the test, allowing the approvals to verify that the application is able to use the key/secret as verify that the application is able to use the key/secret as described. described. \ \ If the [ST](#abbr_ST) author has selected \"common application If the [ST](#abbr_ST) author has selected \"common application developer\", this test is performed by either using applications developer\", this test is performed by either using applications from different developers or appropriately (according to from different developers or appropriately (according to [API](#abbr_API) documentation) not authorizing sharing. [API](#abbr_API) documentation) not authorizing sharing. - **Test 3:** The evaluator shall destroy keys/secrets of each | - [Test 31[](#_t_48){.definition}]{#_t_48}: The evaluator shall supported type according to the AGD guidance. The evaluator shall | destroy keys/secrets of each supported type according to the AGD write, or the developer shall provide access to, an application that | guidance. The evaluator shall write, or the developer shall provide destroys an imported key/secret.\ | access to, an application that destroys an imported key/secret.\ \ \ The evaluator shall repeat this test with the application-imported The evaluator shall repeat this test with the application-imported keys/secrets and a different application's imported keys/secrets. keys/secrets and a different application's imported keys/secrets. The evaluator shall verify that the [TOE](#abbr_TOE) requires The evaluator shall verify that the [TOE](#abbr_TOE) requires approval before allowing the application to destroy the key/secret approval before allowing the application to destroy the key/secret imported by the administrator or by a different application:\ imported by the administrator or by a different application:\ \ \ - The evaluator shall deny the approvals and verify that the - The evaluator shall deny the approvals and verify that the application is still able to use the key/secret as described. application is still able to use the key/secret as described. - The evaluator shall repeat the test, allowing the approvals and - The evaluator shall repeat the test, allowing the approvals and verifying that the application is no longer able to use the verifying that the application is no longer able to use the key/secret as described. key/secret as described. \ \ If the [ST](#abbr_ST) author has selected \"common application If the [ST](#abbr_ST) author has selected \"common application developer\", this test is performed by either using applications developer\", this test is performed by either using applications from different developers or appropriately (according to from different developers or appropriately (according to [API](#abbr_API) documentation) not authorizing sharing. [API](#abbr_API) documentation) not authorizing sharing. < \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_STG_EXT.2 .comp} ::: {#FCS_STG_EXT.2 .comp} #### FCS\_STG\_EXT.2 Encrypted Cryptographic Key Storage #### FCS\_STG\_EXT.2 Encrypted Cryptographic Key Storage ::: {.element} ::: {.element} ::: {#FCS_STG_EXT.2.1 .reqid} ::: {#FCS_STG_EXT.2.1 .reqid} [FCS\_STG\_EXT.2.1](#FCS_STG_EXT.2.1){.abbr} [FCS\_STG\_EXT.2.1](#FCS_STG_EXT.2.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall encrypt all DEKs, KEKs, \[**assignment**: | The [TSF](#abbr_TSF) shall encrypt all [DEKs](#abbr_DEK), KEKs, [any long-term trusted channel key material]{.assignable-content}\] and | \[**assignment**: [any long-term trusted channel key \[**selection**: *all software-based key storage*, *no other keys*\] by | material]{.assignable-content}\] and \[**selection**: [all KEKs that are \[**selection**: | software-based key storage]{#_s_197 .selectable-content}, [no other | keys]{#_s_198 .selectable-content} \] by KEKs that are \[**selection**: - *Protected by the [REK](#abbr_REK) with \[**selection**:* | - *encryption by a [REK](#abbr_REK)*, | - [Protected by the [REK](#abbr_REK) with \[**selection**: ]{#_s_199 - *encryption by a [KEK](#abbr_KEK) chaining from a | .selectable-content} [REK](#abbr_REK)*, | - [encryption by a [REK](#abbr_REK)]{#_s_200 .selectable-content} - *encryption by a [KEK](#abbr_KEK) that is derived from a | - [encryption by a [KEK](#abbr_KEK) chaining from a [REK](#abbr_REK)* | [REK](#abbr_REK)]{#_s_201 .selectable-content} | - [encryption by a [KEK](#abbr_KEK) that is derived from a \], | [REK](#abbr_REK)]{#_s_202 .selectable-content} - *Protected by the [REK](#abbr_REK) and the password with | \[**selection**:* | \] - *encryption by a [REK](#abbr_REK) and the password-derived | - [Protected by the [REK](#abbr_REK) and the password with [KEK](#abbr_KEK)*, | \[**selection**: ]{#_s_203 .selectable-content} - *encryption by a [KEK](#abbr_KEK) chaining to a [REK](#abbr_REK) | - [encryption by a [REK](#abbr_REK) and the password-derived > [KEK](#abbr_KEK)]{#_s_204 .selectable-content} > - [encryption by a [KEK](#abbr_KEK) chaining to a [REK](#abbr_REK) and the password-derived or biometric-unlocked and the password-derived or biometric-unlocked [KEK](#abbr_KEK)*, | [KEK](#abbr_KEK)]{#_s_205 .selectable-content} - *encryption by a [KEK](#abbr_KEK) that is derived from a | - [encryption by a [KEK](#abbr_KEK) that is derived from a [REK](#abbr_REK) and the password-derived or biometric-unlocked [REK](#abbr_REK) and the password-derived or biometric-unlocked [KEK](#abbr_KEK)* | [KEK](#abbr_KEK)]{#_s_206 .selectable-content} \] \] \]. \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The [ST](#abbr_ST) author must select [Application Note: ]{.note-header}[The [ST](#abbr_ST) author must select \"all software-based key storage\" if \"software-based\" is selected in \"all software-based key storage\" if \"software-based\" is selected in [FCS\_STG\_EXT.1.1](#FCS_STG_EXT.1.1). If the [ST](#abbr_ST) author [FCS\_STG\_EXT.1.1](#FCS_STG_EXT.1.1). If the [ST](#abbr_ST) author selects \"mutable hardware\" in [FCS\_STG\_EXT.1.1](#FCS_STG_EXT.1.1), selects \"mutable hardware\" in [FCS\_STG\_EXT.1.1](#FCS_STG_EXT.1.1), the secure key storage is not subject to this requirement. REKs are not | the secure key storage is not subject to this requirement. subject to this requirement.\ | [REKs](#abbr_REK) are not subject to this requirement.\ \ \ A [REK](#abbr_REK) and the password-derived [KEK](#abbr_KEK) may be A [REK](#abbr_REK) and the password-derived [KEK](#abbr_KEK) may be combined to form a combined [KEK](#abbr_KEK) (as described in combined to form a combined [KEK](#abbr_KEK) (as described in [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3)) in order to meet this requirement.\ [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3)) in order to meet this requirement.\ \ \ Software-based key storage must be protected by the password or Software-based key storage must be protected by the password or biometric and [REK](#abbr_REK).\ biometric and [REK](#abbr_REK).\ \ \ All keys must ultimately be protected by a [REK](#abbr_REK). In All keys must ultimately be protected by a [REK](#abbr_REK). In particular, [Figure [3]{.counter}](#Keys){.Keys-ref} has KEKs protected particular, [Figure [3]{.counter}](#Keys){.Keys-ref} has KEKs protected according to these requirements: DEK\_1 meets the \"encryption by a according to these requirements: DEK\_1 meets the \"encryption by a [REK](#abbr_REK) and the password-derived [KEK](#abbr_KEK)\" case and [REK](#abbr_REK) and the password-derived [KEK](#abbr_KEK)\" case and would be appropriate for sensitive data, DEK\_2 meets the \"encryption would be appropriate for sensitive data, DEK\_2 meets the \"encryption by a [KEK](#abbr_KEK) chaining from a [REK](#abbr_REK)\" case and would by a [KEK](#abbr_KEK) chaining from a [REK](#abbr_REK)\" case and would not be appropriate for sensitive data, K\_1 meets the \"encryption by a not be appropriate for sensitive data, K\_1 meets the \"encryption by a [REK](#abbr_REK)\" case and is not considered a sensitive key, and K\_2 [REK](#abbr_REK)\" case and is not considered a sensitive key, and K\_2 meets the \"encryption by a [KEK](#abbr_KEK) chaining to a meets the \"encryption by a [KEK](#abbr_KEK) chaining to a [REK](#abbr_REK) and the password-derived or biometric-unlocked [REK](#abbr_REK) and the password-derived or biometric-unlocked [KEK](#abbr_KEK)\" case and is considered a sensitive key.\ [KEK](#abbr_KEK)\" case and is considered a sensitive key.\ \ \ Long-term trusted channel key material includes Wi-Fi (PSKs), | Long-term trusted channel key material includes Wi-Fi [IPsec](#abbr_IPsec) (PSKs and client certificates) and Bluetooth keys. | ([PSKs](#abbr_PSK)), [IPsec](#abbr_IPsec) ([PSKs](#abbr_PSK) and client These keys must not be protected by the password, as they may be | certificates) and Bluetooth keys. These keys must not be protected by necessary in the locked state. For clarity, the [ST](#abbr_ST) author | the password, as they may be necessary in the locked state. For clarity, must assign any Long-term trusted channel key material supported by the | the [ST](#abbr_ST) author must assign any Long-term trusted channel key [TOE](#abbr_TOE) . At a minimum, a [TOE](#abbr_TOE) must support at | material supported by the [TOE](#abbr_TOE) . At a minimum, a least Wi-Fi and Bluetooth keys.]{.note} | [TOE](#abbr_TOE) must support at least Wi-Fi and Bluetooth keys.]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FCS_STG_EXT.2.2 .reqid} ::: {#FCS_STG_EXT.2.2 .reqid} [FCS\_STG\_EXT.2.2](#FCS_STG_EXT.2.2){.abbr} [FCS\_STG\_EXT.2.2](#FCS_STG_EXT.2.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} DEKs, KEKs, \[**assignment**: [any long-term trusted channel key | [DEKs](#abbr_DEK), KEKs, \[**assignment**: [any long-term trusted material]{.assignable-content}\] and \[**selection**: *all | channel key material]{.assignable-content}\] and \[**selection**: [all software-based key storage*, *no other keys*\] shall be encrypted using | software-based key storage]{#_s_207 .selectable-content}, [no other one of the following methods: \[**selection**: | keys]{#_s_208 .selectable-content} \] shall be encrypted using one of | the following methods: \[**selection**: - *using a SP800-56B key establishment scheme*, | - *using [AES](#abbr_AES) in the \[**selection**: *Key Wrap (KW) | - [using a SP800-56B key establishment scheme]{#_s_209 mode*, *Key Wrap with Padding (KWP) mode*, *[GCM](#abbr_GCM)*, | .selectable-content} *[CCM](#abbr_CCM)*, *[CBC](#abbr_CBC) mode*\]* | - [using [AES](#abbr_AES) in the \[**selection**: [Key Wrap (KW) > mode]{#_s_211 .selectable-content}, [Key Wrap with Padding (KWP) > mode]{#_s_212 .selectable-content}, [[GCM](#abbr_GCM)]{#_s_213 > .selectable-content}, [[CCM](#abbr_CCM)]{#_s_214 > .selectable-content}, [[CBC](#abbr_CBC) mode]{#_s_215 > .selectable-content} \]]{#_s_210 .selectable-content} \]. \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The [ST](#abbr_ST) author selects [Application Note: ]{.note-header}[The [ST](#abbr_ST) author selects which key encryption schemes are used by the [TOE](#abbr_TOE). This which key encryption schemes are used by the [TOE](#abbr_TOE). This requirement refers only to KEKs as defined this [PP](#abbr_PP) and does requirement refers only to KEKs as defined this [PP](#abbr_PP) and does not refer to those KEKs specified in other standards. The [ST](#abbr_ST) not refer to those KEKs specified in other standards. The [ST](#abbr_ST) author must assign the same Long-term trusted channel key material author must assign the same Long-term trusted channel key material assigned in [FCS\_STG\_EXT.2.1](#FCS_STG_EXT.2.1).]{.note} assigned in [FCS\_STG\_EXT.2.1](#FCS_STG_EXT.2.1).]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_STG\_EXT.2](#FCS_STG_EXT.2):\ | ::: {.component-activity-header} > [FCS\_STG\_EXT.2](#FCS_STG_EXT.2) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall review the [TSS](#abbr_TSS) to determine that the The evaluator shall review the [TSS](#abbr_TSS) to determine that the [TSS](#abbr_TSS) includes key hierarchy description of the protection of [TSS](#abbr_TSS) includes key hierarchy description of the protection of each [DEK](#abbr_DEK) for data-at-rest, of software-based key storage, each [DEK](#abbr_DEK) for data-at-rest, of software-based key storage, of long-term trusted channel keys, and of [KEK](#abbr_KEK) related to of long-term trusted channel keys, and of [KEK](#abbr_KEK) related to the protection of the DEKs, long-term trusted channel keys, and | the protection of the [DEKs](#abbr_DEK), long-term trusted channel keys, software-based key storage. This description must include a diagram | and software-based key storage. This description must include a diagram illustrating the key hierarchy implemented by the [TOE](#abbr_TOE) in illustrating the key hierarchy implemented by the [TOE](#abbr_TOE) in order to demonstrate that the implementation meets order to demonstrate that the implementation meets [FCS\_STG\_EXT.2](#FCS_STG_EXT.2). The description shall indicate how [FCS\_STG\_EXT.2](#FCS_STG_EXT.2). The description shall indicate how the functionality described by [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) is the functionality described by [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) is invoked to generate DEKs ([FCS\_CKM\_EXT.2](#FCS_CKM_EXT.2)), the key | invoked to generate [DEKs](#abbr_DEK) size ([FCS\_CKM\_EXT.2](#FCS_CKM_EXT.2) and | ([FCS\_CKM\_EXT.2](#FCS_CKM_EXT.2)), the key size > ([FCS\_CKM\_EXT.2](#FCS_CKM_EXT.2) and [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3)) for each key, how each [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3)) for each key, how each [KEK](#abbr_KEK) is formed (generated, derived, or combined according to [KEK](#abbr_KEK) is formed (generated, derived, or combined according to [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3)), the integrity protection method for [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3)), the integrity protection method for each encrypted key ([FCS\_STG\_EXT.3](#FCS_STG_EXT.3)), and the IV each encrypted key ([FCS\_STG\_EXT.3](#FCS_STG_EXT.3)), and the IV generation for each key encrypted by the same [KEK](#abbr_KEK) generation for each key encrypted by the same [KEK](#abbr_KEK) ([FCS\_IV\_EXT.1](#FCS_IV_EXT.1)). More detail for each task follows the ([FCS\_IV\_EXT.1](#FCS_IV_EXT.1)). More detail for each task follows the corresponding requirement.\ corresponding requirement.\ \ \ The evaluator shall also ensure that the documentation of the product\'s The evaluator shall also ensure that the documentation of the product\'s encryption key management is detailed enough that, after reading, the encryption key management is detailed enough that, after reading, the product\'s key management hierarchy is clear and that it meets the product\'s key management hierarchy is clear and that it meets the requirements to ensure the keys are adequately protected. The evaluator requirements to ensure the keys are adequately protected. The evaluator shall ensure that the documentation includes both an essay and one or shall ensure that the documentation includes both an essay and one or more diagrams. Note that this may also be documented as separate more diagrams. Note that this may also be documented as separate proprietary evidence rather than being included in the proprietary evidence rather than being included in the [TSS](#abbr_TSS).\ [TSS](#abbr_TSS).\ \ \ \ < < ::: {.eacategory} < Guidance < ::: < < There are no guidance evaluation activities for this element.\ < \ < \ < < ::: {.eacategory} < Tests < ::: < < There are no test evaluation activities for this element.\ < ::: < < ::: {.activity} < ::: {.eacategory} < [TSS](#abbr_TSS) < ::: < < The evaluator shall examine the key hierarchy description in the The evaluator shall examine the key hierarchy description in the [TSS](#abbr_TSS) section to verify that each [DEK](#abbr_DEK) and [TSS](#abbr_TSS) section to verify that each [DEK](#abbr_DEK) and software-stored key is encrypted according to software-stored key is encrypted according to [FCS\_STG\_EXT.2](#FCS_STG_EXT.2).\ [FCS\_STG\_EXT.2](#FCS_STG_EXT.2).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this element.\ There are no guidance evaluation activities for this element.\ \ \ > There are no guidance evaluation activities for this element.\ \ \ > ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this element.\ | ::: {.ea} > There are no test evaluation activities for this element.There are no > test evaluation activities for this element. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_STG_EXT.3 .comp} ::: {#FCS_STG_EXT.3 .comp} #### FCS\_STG\_EXT.3 Integrity of Encrypted Key Storage #### FCS\_STG\_EXT.3 Integrity of Encrypted Key Storage ::: {.element} ::: {.element} ::: {#FCS_STG_EXT.3.1 .reqid} ::: {#FCS_STG_EXT.3.1 .reqid} [FCS\_STG\_EXT.3.1](#FCS_STG_EXT.3.1){.abbr} [FCS\_STG\_EXT.3.1](#FCS_STG_EXT.3.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall protect the integrity of any encrypted DEKs | The [TSF](#abbr_TSF) shall protect the integrity of any encrypted and KEKs and \[**selection**: *long-term trusted channel key material*, | [DEKs](#abbr_DEK) and KEKs and \[**selection**: [long-term trusted *all software-based key storage*, *no other keys*\] by \[**selection**: | channel key material]{#_s_216 .selectable-content}, [all software-based | key storage]{#_s_217 .selectable-content}, [no other keys]{#_s_218 - *\[**selection**: *[GCM](#abbr_GCM)*, *[CCM](#abbr_CCM)*, *Key | .selectable-content} \] by \[**selection**: Wrap*, *Key Wrap with Padding*\] cipher mode for encryption | according to [FCS\_STG\_EXT.2](#FCS_STG_EXT.2)*, | - [\[**selection**: [[GCM](#abbr_GCM)]{#_s_220 .selectable-content}, - *a hash ([FCS\_COP.1/HASH](#FCS_COP.1/HASH)) of the stored key that | [[CCM](#abbr_CCM)]{#_s_221 .selectable-content}, [Key Wrap]{#_s_222 > .selectable-content}, [Key Wrap with Padding]{#_s_223 > .selectable-content} \] cipher mode for encryption according to > [FCS\_STG\_EXT.2](#FCS_STG_EXT.2)]{#_s_219 .selectable-content} > - [a hash ([FCS\_COP.1/HASH](#FCS_COP.1/HASH)) of the stored key that is encrypted by a key protected by is encrypted by a key protected by [FCS\_STG\_EXT.2](#FCS_STG_EXT.2)*, | [FCS\_STG\_EXT.2](#FCS_STG_EXT.2)]{#_s_224 .selectable-content} - *a keyed hash ([FCS\_COP.1/KEYHMAC](#FCS_COP.1/KEYHMAC)) using a key | - [a keyed hash ([FCS\_COP.1/KEYHMAC](#FCS_COP.1/KEYHMAC)) using a key protected by a key protected by [FCS\_STG\_EXT.2](#FCS_STG_EXT.2)*, | protected by a key protected by - *a digital signature of the stored key using an asymmetric key | [FCS\_STG\_EXT.2](#FCS_STG_EXT.2)]{#_s_225 .selectable-content} protected according to [FCS\_STG\_EXT.2](#FCS_STG_EXT.2)*, | - [a digital signature of the stored key using an asymmetric key - *an immediate application of the key for decrypting the protected | protected according to [FCS\_STG\_EXT.2](#FCS_STG_EXT.2)]{#_s_226 > .selectable-content} > - [an immediate application of the key for decrypting the protected data followed by a successful verification of the decrypted data data followed by a successful verification of the decrypted data with previously known information* | with previously known information]{#_s_227 .selectable-content} \]. \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The [ST](#abbr_ST) author must assign [Application Note: ]{.note-header}[The [ST](#abbr_ST) author must assign the same Long-term trusted channel key material assigned in the same Long-term trusted channel key material assigned in [FCS\_STG\_EXT.2.1](#FCS_STG_EXT.2.1).]{.note} [FCS\_STG\_EXT.2.1](#FCS_STG_EXT.2.1).]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FCS_STG_EXT.3.2 .reqid} ::: {#FCS_STG_EXT.3.2 .reqid} [FCS\_STG\_EXT.3.2](#FCS_STG_EXT.3.2){.abbr} [FCS\_STG\_EXT.3.2](#FCS_STG_EXT.3.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall verify the integrity of the \[**selection**: The [TSF](#abbr_TSF) shall verify the integrity of the \[**selection**: *hash*, *digital signature*, *MAC*\] of the stored key prior to use of | [hash]{#_s_228 .selectable-content}, [digital signature]{#_s_229 the key. | .selectable-content}, [MAC]{#_s_230 .selectable-content} \] of the > stored key prior to use of the key. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[This requirement is not applicable to [Application Note: ]{.note-header}[This requirement is not applicable to derived keys that are not stored. It is not expected that a single key derived keys that are not stored. It is not expected that a single key will be protected from corruption by multiple of these methods; however, will be protected from corruption by multiple of these methods; however, a product may use one integrity-protection method for one type of key a product may use one integrity-protection method for one type of key and a different method for other types of keys. The explicit Evaluation and a different method for other types of keys. The explicit Evaluation Activities for each of the options will be addressed in each of the Activities for each of the options will be addressed in each of the requirements ([FCS\_COP.1.1/HASH](#FCS_COP.1.1/HASH), requirements ([FCS\_COP.1.1/HASH](#FCS_COP.1.1/HASH), [FCS\_COP.1.1/KEYHMAC](#FCS_COP.1.1/KEYHMAC)).\ [FCS\_COP.1.1/KEYHMAC](#FCS_COP.1.1/KEYHMAC)).\ \ \ Key Wrapping must be implemented per SP800-38F.]{.note} Key Wrapping must be implemented per SP800-38F.]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_STG\_EXT.3](#FCS_STG_EXT.3):\ | ::: {.component-activity-header} > [FCS\_STG\_EXT.3](#FCS_STG_EXT.3) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall examine the key hierarchy description in the The evaluator shall examine the key hierarchy description in the [TSS](#abbr_TSS) section to verify that each encrypted key is integrity [TSS](#abbr_TSS) section to verify that each encrypted key is integrity protected according to one of the options in protected according to one of the options in [FCS\_STG\_EXT.3](#FCS_STG_EXT.3).\ [FCS\_STG\_EXT.3](#FCS_STG_EXT.3).\ \ \ The evaluator shall also ensure that the documentation of the product\'s The evaluator shall also ensure that the documentation of the product\'s encryption key management is detailed enough that, after reading, the encryption key management is detailed enough that, after reading, the product\'s key management hierarchy is clear and that it meets the product\'s key management hierarchy is clear and that it meets the requirements to ensure the keys are adequately protected. The evaluator requirements to ensure the keys are adequately protected. The evaluator shall ensure that the documentation includes both an essay and one or shall ensure that the documentation includes both an essay and one or more diagrams. Note that this may also be documented as separate more diagrams. Note that this may also be documented as separate proprietary evidence rather than being included in the proprietary evidence rather than being included in the [TSS](#abbr_TSS).\ [TSS](#abbr_TSS).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ### 5.1.4 Class: User Data Protection (FDP) {#fdp .indexable data-level="3"} ### 5.1.4 Class: User Data Protection (FDP) {#fdp .indexable data-level="3"} A subset of the User Data Protection focuses on protecting Data-At-Rest, A subset of the User Data Protection focuses on protecting Data-At-Rest, namely [FDP\_DAR\_EXT.1](#FDP_DAR_EXT.1) and namely [FDP\_DAR\_EXT.1](#FDP_DAR_EXT.1) and [FDP\_DAR\_EXT.2](#FDP_DAR_EXT.2). Three levels of data-at-rest [FDP\_DAR\_EXT.2](#FDP_DAR_EXT.2). Three levels of data-at-rest protection are addressed: [TSF](#abbr_TSF) data, Protected Data (and protection are addressed: [TSF](#abbr_TSF) data, Protected Data (and keys), and sensitive data. [Table keys), and sensitive data. [Table [6]{.counter}](#datalevels){.datalevels-ref} addresses the level of [6]{.counter}](#datalevels){.datalevels-ref} addresses the level of protection required for each level of data-at-rest. protection required for each level of data-at-rest. **[Table [6]{.counter}: Protection of Data Levels]{#datalevels .ctr **[Table [6]{.counter}: Protection of Data Levels]{#datalevels .ctr data-myid="datalevels" data-counter-type="ct-Table"}**\ data-myid="datalevels" data-counter-type="ct-Table"}**\ \ \ ----------------------- ----------------------------------------------------------- ----------------------- ----------------------------------------------------------- Data Level Protection Required Data Level Protection Required [TSF](#abbr_TSF) Data [TSF](#abbr_TSF) data does not require confidentiality, but [TSF](#abbr_TSF) Data [TSF](#abbr_TSF) data does not require confidentiality, but Protected Data Protected data is encrypted while powered off. ([FDP\_DAR\_ Protected Data Protected data is encrypted while powered off. ([FDP\_DAR\_ Sensitive Data Sensitive data is encrypted while in the locked state, in a Sensitive Data Sensitive data is encrypted while in the locked state, in a ----------------------- ----------------------------------------------------------- ----------------------- ----------------------------------------------------------- \ \ All keys, protected data, and sensitive data must ultimately be All keys, protected data, and sensitive data must ultimately be protected by the [REK](#abbr_REK). Sensitive data must be protected by protected by the [REK](#abbr_REK). Sensitive data must be protected by the password in addition to the [REK](#abbr_REK). In particular, [Figure the password in addition to the [REK](#abbr_REK). In particular, [Figure [3]{.counter}](#Keys){.Keys-ref} has KEKs protected according to these [3]{.counter}](#Keys){.Keys-ref} has KEKs protected according to these requirements: DEK\_1 would be appropriate for sensitive data, DEK\_2 requirements: DEK\_1 would be appropriate for sensitive data, DEK\_2 would not be appropriate for sensitive data, K\_1 is not considered a would not be appropriate for sensitive data, K\_1 is not considered a sensitive key, and K\_2 is considered a sensitive key.\ sensitive key, and K\_2 is considered a sensitive key.\ \ \ These requirements include a capability for encrypting sensitive data These requirements include a capability for encrypting sensitive data received while in the locked state, which may be considered a separate received while in the locked state, which may be considered a separate sub-category of sensitive data. This capability may be met by a key sub-category of sensitive data. This capability may be met by a key transport scheme ([RSA](#abbr_RSA)) by using a public key to encrypt the transport scheme ([RSA](#abbr_RSA)) by using a public key to encrypt the [DEK](#abbr_DEK) while protecting the corresponding private key with a [DEK](#abbr_DEK) while protecting the corresponding private key with a password-derived or biometric-unlocked [KEK](#abbr_KEK).\ password-derived or biometric-unlocked [KEK](#abbr_KEK).\ \ \ This capability may also be met by a key agreement scheme. To do so, the This capability may also be met by a key agreement scheme. To do so, the device generates a device-wide sensitive data asymmetric pair (the device generates a device-wide sensitive data asymmetric pair (the private key of which is protected by a password-derived or private key of which is protected by a password-derived or biometric-unlocked [KEK](#abbr_KEK)) and an asymmetric pair for the biometric-unlocked [KEK](#abbr_KEK)) and an asymmetric pair for the received sensitive data to be stored. In order to store the sensitive received sensitive data to be stored. In order to store the sensitive data, the device-wide public key and data private key are used to data, the device-wide public key and data private key are used to generate a shared secret, which can be used as a [KEK](#abbr_KEK) or a generate a shared secret, which can be used as a [KEK](#abbr_KEK) or a [DEK](#abbr_DEK). The data private key and shared secret are cleared [DEK](#abbr_DEK). The data private key and shared secret are cleared after the data is encrypted and the data public key stored. Thus, no key after the data is encrypted and the data public key stored. Thus, no key material is available in the locked state to decrypt the newly stored material is available in the locked state to decrypt the newly stored data. Upon unlock, the device-wide private key is decrypted and is used data. Upon unlock, the device-wide private key is decrypted and is used with each data public key to regenerate the shared secret and decrypt with each data public key to regenerate the shared secret and decrypt the stored data. [Figure [4]{.counter}](#KeysLocked){.KeysLocked-ref}, the stored data. [Figure [4]{.counter}](#KeysLocked){.KeysLocked-ref}, below, illustrates this scheme.\ below, illustrates this scheme.\ \ \ ::: {#figure-KeysLocked .figure} ::: {#figure-KeysLocked .figure} ![](images/figure4.jpg){#KeysLocked}\ ![](images/figure4.jpg){#KeysLocked}\ [Figure [4]{.counter}]{.ctr data-myid="KeysLocked" [Figure [4]{.counter}]{.ctr data-myid="KeysLocked" data-counter-type="ct-figure"}: Key Agreement Scheme for Encrypting data-counter-type="ct-figure"}: Key Agreement Scheme for Encrypting Received Sensitive Data in the Locked State Received Sensitive Data in the Locked State ::: ::: \ \ \ \ ::: {#FDP_ACF_EXT.1 .comp} ::: {#FDP_ACF_EXT.1 .comp} #### FDP\_ACF\_EXT.1 Access Control for System Services #### FDP\_ACF\_EXT.1 Access Control for System Services ::: {.element} ::: {.element} ::: {#FDP_ACF_EXT.1.1 .reqid} ::: {#FDP_ACF_EXT.1.1 .reqid} [FDP\_ACF\_EXT.1.1](#FDP_ACF_EXT.1.1){.abbr} [FDP\_ACF\_EXT.1.1](#FDP_ACF_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide a mechanism to restrict the system The [TSF](#abbr_TSF) shall provide a mechanism to restrict the system services that are accessible to an application. services that are accessible to an application. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[Examples of system services to which [Application Note: ]{.note-header}[Examples of system services to which this requirement applies include:\ this requirement applies include:\ \ \ ]{.note} ]{.note} - obtain data from camera and microphone input devices - obtain data from camera and microphone input devices - obtain current device location - obtain current device location - retrieve credentials from system-wide credential store - retrieve credentials from system-wide credential store - retrieve contacts list / address book - retrieve contacts list / address book - retrieve stored pictures - retrieve stored pictures - retrieve text messages - retrieve text messages - retrieve emails - retrieve emails - retrieve device identifier information - retrieve device identifier information - obtain network access - obtain network access ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FDP_ACF_EXT.1.2 .reqid} ::: {#FDP_ACF_EXT.1.2 .reqid} [FDP\_ACF\_EXT.1.2](#FDP_ACF_EXT.1.2){.abbr} [FDP\_ACF\_EXT.1.2](#FDP_ACF_EXT.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide an access control policy that The [TSF](#abbr_TSF) shall provide an access control policy that prevents \[**selection**: *application*, *groups of applications*\] from | prevents \[**selection**: [application]{#_s_231 .selectable-content}, accessing \[**selection**: *all*, *private*\] data stored by other | [groups of applications]{#fdp_group .selectable-content} \] from \[**selection**: *application*, *groups of applications*\]. Exceptions | accessing \[**selection**: [all]{#_s_233 .selectable-content}, may only be explicitly authorized for such sharing by \[**selection**: | [private]{#_s_234 .selectable-content} \] data stored by other *the user*, *the administrator*, *a common application developer*, *no | \[**selection**: [application]{#_s_235 .selectable-content}, [groups of one*\]. | applications]{#_s_236 .selectable-content} \]. Exceptions may only be > explicitly authorized for such sharing by \[**selection**: [the > user]{#_s_237 .selectable-content}, [the administrator]{#_s_238 > .selectable-content}, [a common application developer]{#_s_239 > .selectable-content}, [no one]{#_s_240 .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[Application groups may be designated [Application Note: ]{.note-header}[Application groups may be designated Enterprise or Personal. Applications installed by the user default to Enterprise or Personal. Applications installed by the user default to being in the Personal application group unless otherwise designated by being in the Personal application group unless otherwise designated by the administrator in function | the administrator in function [43](#mf-appGroups) of [[43]{.counter}](#appGroups){.appGroups-ref} of < [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1). Applications installed by the [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1). Applications installed by the administrator default to being in the Enterprise application group (this administrator default to being in the Enterprise application group (this category includes applications that the user requests the administrator category includes applications that the user requests the administrator install, for instance by selecting the application for installation install, for instance by selecting the application for installation through an enterprise application catalog) unless otherwise designated through an enterprise application catalog) unless otherwise designated by the administrator in function | by the administrator in function [43](#mf-appGroups) of [[43]{.counter}](#appGroups){.appGroups-ref} of < [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1). It is acceptable for the same [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1). It is acceptable for the same application to have multiple instances installed, each in different application to have multiple instances installed, each in different application groups. Private data is defined as data that is accessible application groups. Private data is defined as data that is accessible only by the application that wrote it. Private data is distinguished only by the application that wrote it. Private data is distinguished from data that an application may, by design, write to shared storage from data that an application may, by design, write to shared storage areas.\ areas.\ \ \ If \"groups of applications\" is selected, If \"groups of applications\" is selected, [FDP\_ACF\_EXT.2](#FDP_ACF_EXT.2) must be included in the [FDP\_ACF\_EXT.2](#FDP_ACF_EXT.2) must be included in the [ST](#abbr_ST). ]{.note} [ST](#abbr_ST). ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FDP\_ACF\_EXT.1](#FDP_ACF_EXT.1):\ | ::: {.component-activity-header} > [FDP\_ACF\_EXT.1](#FDP_ACF_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure the [TSS](#abbr_TSS) lists all system The evaluator shall ensure the [TSS](#abbr_TSS) lists all system services available for use by an application. The evaluator shall also services available for use by an application. The evaluator shall also ensure that the [TSS](#abbr_TSS) describes how applications interface ensure that the [TSS](#abbr_TSS) describes how applications interface with these system services, and means by which these system services are with these system services, and means by which these system services are protected by the [TSF](#abbr_TSF).\ protected by the [TSF](#abbr_TSF).\ \ \ The [TSS](#abbr_TSS) shall describe which of the following categories The [TSS](#abbr_TSS) shall describe which of the following categories each system service falls in:\ each system service falls in:\ 1. No applications are allowed access 1. No applications are allowed access 2. Privileged applications are allowed access 2. Privileged applications are allowed access 3. Applications are allowed access by user authorization 3. Applications are allowed access by user authorization 4. All applications are allowed access 4. All applications are allowed access Privileged applications include any applications developed by the Privileged applications include any applications developed by the [TSF](#abbr_TSF) developer. The [TSS](#abbr_TSS) shall describe how [TSF](#abbr_TSF) developer. The [TSS](#abbr_TSS) shall describe how privileges are granted to third-party applications. For both types of privileges are granted to third-party applications. For both types of privileged applications, the [TSS](#abbr_TSS) shall describe how and privileged applications, the [TSS](#abbr_TSS) shall describe how and when the privileges are verified and how the [TSF](#abbr_TSF) prevents when the privileges are verified and how the [TSF](#abbr_TSF) prevents unprivileged applications from accessing those services.\ unprivileged applications from accessing those services.\ \ \ For any services for which the user may grant access, the evaluator For any services for which the user may grant access, the evaluator shall ensure that the [TSS](#abbr_TSS) identifies whether the user is shall ensure that the [TSS](#abbr_TSS) identifies whether the user is prompted for authorization when the application is installed, or during prompted for authorization when the application is installed, or during runtime. The evaluator shall ensure that the operational user guidance runtime. The evaluator shall ensure that the operational user guidance contains instructions for restricting application access to system contains instructions for restricting application access to system services.\ services.\ \ \ > The evaluator shall examine the [TSS](#abbr_TSS) to verify that it > describes which data sharing is permitted between applications, which > data sharing is not permitted, and how disallowed sharing is prevented. > It is possible to select both \"applications\" and \"groups of > applications\", in which case the [TSS](#abbr_TSS) is expected to > describe the data sharing policies that would be applied in each case.\ \ \ > ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this element.\ There are no guidance evaluation activities for this element.\ \ \ > There are no guidance evaluation activities for this element.\ \ \ > ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following tests require the vendor to **Evaluation Activity Note:** The following tests require the vendor to provide access to a test platform that provides the evaluator with tools provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products.\ that are typically not found on consumer Mobile Device products.\ \ \ The evaluator shall write, or the developer shall provide, applications The evaluator shall write, or the developer shall provide, applications for the purposes of the following tests.\ for the purposes of the following tests.\ \ \ > []{.testlist-} - **Test 1:** For each system service to which no applications are | - [Test 32[](#_t_49){.definition}]{#_t_49}: For each system service to allowed access, the evaluator shall attempt to access the system | which no applications are allowed access, the evaluator shall service with a test application and verify that the application is | attempt to access the system service with a test application and not able to access that system service. < - **Test 2:** For each system service to which only privileged < applications are allowed access, the evaluator shall attempt to < access the system service with an unprivileged application and < verify that the application is not able to access that system verify that the application is not able to access that system service. The evaluator shall attempt to access the system service | service. with a privileged application and verify that the application can | - [Test 33[](#_t_50){.definition}]{#_t_50}: For each system service to access the service. | which only privileged applications are allowed access, the evaluator - **Test 3:** For each system service to which the user may grant | shall attempt to access the system service with an unprivileged access, the evaluator shall attempt to access the system service | application and verify that the application is not able to access with a test application. The evaluator shall ensure that either the | that system service. The evaluator shall attempt to access the system blocks such accesses or prompts for user authorization. The | system service with a privileged application and verify that the prompt for user authorization may occur at runtime or at | application can access the service. installation time, and should be consistent with the behavior | - [Test 34[](#_t_51){.definition}]{#_t_51}: For each system service to described in the [TSS](#abbr_TSS). | which the user may grant access, the evaluator shall attempt to - **Test 4:** For each system service listed in the [TSS](#abbr_TSS) | access the system service with a test application. The evaluator that is accessible by all applications, the evaluator shall test | shall ensure that either the system blocks such accesses or prompts that an application can access that system service. | for user authorization. The prompt for user authorization may occur | at runtime or at installation time, and should be consistent with \ | the behavior described in the [TSS](#abbr_TSS). ::: | - [Test 35[](#_t_52){.definition}]{#_t_52}: For each system service | listed in the [TSS](#abbr_TSS) that is accessible by all ::: {.activity} | applications, the evaluator shall test that an application can ::: {.eacategory} | access that system service. [TSS](#abbr_TSS) | ::: | []{.testlist-} | The evaluator shall examine the [TSS](#abbr_TSS) to verify that it | - [Test 36[](#_t_53){.definition}]{#_t_53}: The evaluator shall write, describes which data sharing is permitted between applications, which | or the developer shall provide, two applications, one that saves data sharing is not permitted, and how disallowed sharing is prevented. | data containing a unique string and the other, which attempts to It is possible to select both \"applications\" and \"groups of | access that data. If \"groups of applications\" is selected, the applications\", in which case the [TSS](#abbr_TSS) is expected to | applications shall be placed into different groups. If describe the data sharing policies that would be applied in each case.\ | \"application\" is selected, the evaluator shall install the two \ | applications. If \"private data\" is selected, the application shall \ | not write to a designated shared storage area. The evaluator shall | verify that the second application is unable to access the stored ::: {.eacategory} | unique string.\ Guidance < ::: < < There are no guidance evaluation activities for this element.\ < \ < \ < < ::: {.eacategory} < Tests < ::: < < - **Test 1:** The evaluator shall write, or the developer shall < provide, two applications, one that saves data containing a unique < string and the other, which attempts to access that data. If < \"groups of applications\" is selected, the applications shall be < placed into different groups. If \"application\" is selected, the < evaluator shall install the two applications. If \"private data\" is < selected, the application shall not write to a designated shared < storage area. The evaluator shall verify that the second application < is unable to access the stored unique string.\ < \ \ If \"the user\" is selected, the evaluator shall grant access as the If \"the user\" is selected, the evaluator shall grant access as the user and verify that the second application is able to access the user and verify that the second application is able to access the stored unique string.\ stored unique string.\ \ \ If \"the administrator\" is selected, the evaluator shall grant If \"the administrator\" is selected, the evaluator shall grant access as the administrator and verify that the second application access as the administrator and verify that the second application is able to access the stored unique string.\ is able to access the stored unique string.\ \ \ If \"a common application developer\" is selected, the evaluator If \"a common application developer\" is selected, the evaluator shall grant access to an, application with a common application shall grant access to an, application with a common application developer to the first, and verify that the application is able to developer to the first, and verify that the application is able to access the stored unique string. access the stored unique string. < \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FDP_DAR_EXT.1 .comp} ::: {#FDP_DAR_EXT.1 .comp} #### FDP\_DAR\_EXT.1 Protected Data Encryption #### FDP\_DAR\_EXT.1 Protected Data Encryption ::: {.element} ::: {.element} ::: {#FDP_DAR_EXT.1.1 .reqid} ::: {#FDP_DAR_EXT.1.1 .reqid} [FDP\_DAR\_EXT.1.1](#FDP_DAR_EXT.1.1){.abbr} [FDP\_DAR\_EXT.1.1](#FDP_DAR_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} Encryption shall cover all protected data. Encryption shall cover all protected data. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ Protected data is all non-TSF data, [Application Note: ]{.note-header}[ Protected data is all non-TSF data, including all user or enterprise data. Some or all of this data may be including all user or enterprise data. Some or all of this data may be considered sensitive data as well.]{.note} considered sensitive data as well.]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FDP_DAR_EXT.1.2 .reqid} ::: {#FDP_DAR_EXT.1.2 .reqid} [FDP\_DAR\_EXT.1.2](#FDP_DAR_EXT.1.2){.abbr} [FDP\_DAR\_EXT.1.2](#FDP_DAR_EXT.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} Encryption shall be performed using DEKs with [AES](#abbr_AES) in the | Encryption shall be performed using [DEKs](#abbr_DEK) with \[**selection**: *[XTS](#abbr_XTS)*, *[CBC](#abbr_CBC)*, | [AES](#abbr_AES) in the \[**selection**: [[XTS](#abbr_XTS)]{#_s_255 *[GCM](#abbr_GCM)*\] mode with key size \[**selection**: *128*, *256*\] | .selectable-content}, [[CBC](#abbr_CBC)]{#_s_256 .selectable-content}, bits. | [[GCM](#abbr_GCM)]{#_s_257 .selectable-content} \] mode with key size > \[**selection**: [128]{#_s_258 .selectable-content}, [256]{#_s_259 > .selectable-content} \] bits. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[IVs must be generated in accordance [Application Note: ]{.note-header}[IVs must be generated in accordance with [FCS\_IV\_EXT.1.1](#FCS_IV_EXT.1.1).]{.note} with [FCS\_IV\_EXT.1.1](#FCS_IV_EXT.1.1).]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FDP\_DAR\_EXT.1](#FDP_DAR_EXT.1):\ | ::: {.component-activity-header} > [FDP\_DAR\_EXT.1](#FDP_DAR_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) section of the The evaluator shall verify that the [TSS](#abbr_TSS) section of the [ST](#abbr_ST) indicates which data is protected by the [DAR](#abbr_DAR) [ST](#abbr_ST) indicates which data is protected by the [DAR](#abbr_DAR) implementation and what data is considered [TSF](#abbr_TSF) data. The implementation and what data is considered [TSF](#abbr_TSF) data. The evaluator shall ensure that this data includes all protected data.\ evaluator shall ensure that this data includes all protected data.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall review the AGD guidance to determine that the The evaluator shall review the AGD guidance to determine that the description of the configuration and use of the [DAR](#abbr_DAR) description of the configuration and use of the [DAR](#abbr_DAR) protection does not require the user to perform any actions beyond protection does not require the user to perform any actions beyond configuration and providing the authentication credential. The evaluator configuration and providing the authentication credential. The evaluator shall also review the AGD guidance to determine that the configuration shall also review the AGD guidance to determine that the configuration does not require the user to identify encryption on a per-file basis.\ does not require the user to identify encryption on a per-file basis.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following test requires the developer **Evaluation Activity Note:** The following test requires the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products.\ tools that are typically not found on consumer Mobile Device products.\ \ \ > []{.testlist-} - **Test 1:** The evaluator shall enable encryption according to the | - [Test 37[](#_t_56){.definition}]{#_t_56}: The evaluator shall enable AGD guidance. The evaluator shall create user data (non-system) | encryption according to the AGD guidance. The evaluator shall create either by creating a file or by using an application. The evaluator | user data (non-system) either by creating a file or by using an shall use a tool provided by the developer to verify that this data | application. The evaluator shall use a tool provided by the is encrypted when the product is powered off, in conjunction with | developer to verify that this data is encrypted when the product is Test 1 for [FIA\_UAU\_EXT.1](#FIA_UAU_EXT.1). | powered off, in conjunction with Test 1 for | [FIA\_UAU\_EXT.1](#FIA_UAU_EXT.1). \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FDP_DAR_EXT.2 .comp} ::: {#FDP_DAR_EXT.2 .comp} #### FDP\_DAR\_EXT.2 Sensitive Data Encryption #### FDP\_DAR\_EXT.2 Sensitive Data Encryption ::: {.element} ::: {.element} ::: {#FDP_DAR_EXT.2.1 .reqid} ::: {#FDP_DAR_EXT.2.1 .reqid} [FDP\_DAR\_EXT.2.1](#FDP_DAR_EXT.2.1){.abbr} [FDP\_DAR\_EXT.2.1](#FDP_DAR_EXT.2.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide a mechanism for applications to mark The [TSF](#abbr_TSF) shall provide a mechanism for applications to mark data and keys as sensitive. data and keys as sensitive. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[Data and keys that have been marked [Application Note: ]{.note-header}[Data and keys that have been marked as sensitive will be subject to certain restrictions (through other as sensitive will be subject to certain restrictions (through other requirements) in both the locked and unlocked states of the Mobile requirements) in both the locked and unlocked states of the Mobile Device. This mechanism allows an application to choose those data and Device. This mechanism allows an application to choose those data and keys under its control to be subject to those requirements.\ keys under its control to be subject to those requirements.\ \ \ In the future, this [PP](#abbr_PP) may require that all data and key In the future, this [PP](#abbr_PP) may require that all data and key created by applications will default to the \"sensitive\" marking, created by applications will default to the \"sensitive\" marking, requiring an explicit \"non-sensitive\" marking rather than an explicit requiring an explicit \"non-sensitive\" marking rather than an explicit \"sensitive\" marking. ]{.note} \"sensitive\" marking. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FDP_DAR_EXT.2.2 .reqid} ::: {#FDP_DAR_EXT.2.2 .reqid} [FDP\_DAR\_EXT.2.2](#FDP_DAR_EXT.2.2){.abbr} [FDP\_DAR\_EXT.2.2](#FDP_DAR_EXT.2.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall use an asymmetric key scheme to encrypt and The [TSF](#abbr_TSF) shall use an asymmetric key scheme to encrypt and store sensitive data received while the product is locked. store sensitive data received while the product is locked. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[Sensitive data is encrypted according [Application Note: ]{.note-header}[Sensitive data is encrypted according to [FDP\_DAR\_EXT.1.2](#FDP_DAR_EXT.1.2). The asymmetric key scheme must to [FDP\_DAR\_EXT.1.2](#FDP_DAR_EXT.1.2). The asymmetric key scheme must be performed in accordance with [FCS\_CKM.2/LOCKED](#FCS_CKM.2/LOCKED).\ be performed in accordance with [FCS\_CKM.2/LOCKED](#FCS_CKM.2/LOCKED).\ \ \ The intent of this requirement is to allow the device to receive The intent of this requirement is to allow the device to receive sensitive data while locked and to store the received data in such a way sensitive data while locked and to store the received data in such a way as to prevent unauthorized parties from decrypting it while in the as to prevent unauthorized parties from decrypting it while in the locked state. If only a subset of sensitive data may be received in the locked state. If only a subset of sensitive data may be received in the locked state, this subset must be described in the [TSS](#abbr_TSS).\ locked state, this subset must be described in the [TSS](#abbr_TSS).\ \ \ Key material must be cleared when no longer needed according to Key material must be cleared when no longer needed according to [FCS\_CKM\_EXT.4](#FCS_CKM_EXT.4). For keys (or key material used to [FCS\_CKM\_EXT.4](#FCS_CKM_EXT.4). For keys (or key material used to derive those keys) protecting sensitive data received in the locked derive those keys) protecting sensitive data received in the locked state, \"no longer needed\" includes \"while in the locked state.\" For state, \"no longer needed\" includes \"while in the locked state.\" For example, in the first key scheme, this includes the [DEK](#abbr_DEK) example, in the first key scheme, this includes the [DEK](#abbr_DEK) protecting the received data as soon as the data is encrypted. In the protecting the received data as soon as the data is encrypted. In the second key scheme this includes the private key for the data asymmetric second key scheme this includes the private key for the data asymmetric pair, the generated shared secret, and any generated DEKs. Of course, | pair, the generated shared secret, and any generated [DEKs](#abbr_DEK). both schemes require that a private key of an asymmetric pair (the | Of course, both schemes require that a private key of an asymmetric pair [RSA](#abbr_RSA) private key and the device-wide private key, | (the [RSA](#abbr_RSA) private key and the device-wide private key, respectively) be cleared when transitioning to the locked state. respectively) be cleared when transitioning to the locked state. ]{.note} ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FDP_DAR_EXT.2.3 .reqid} ::: {#FDP_DAR_EXT.2.3 .reqid} [FDP\_DAR\_EXT.2.3](#FDP_DAR_EXT.2.3){.abbr} [FDP\_DAR\_EXT.2.3](#FDP_DAR_EXT.2.3){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall encrypt any stored symmetric key and any The [TSF](#abbr_TSF) shall encrypt any stored symmetric key and any stored private key of the asymmetric key(s) used for the protection of stored private key of the asymmetric key(s) used for the protection of sensitive data according to [FCS\_STG\_EXT.2.1](#FCS_STG_EXT.2.1) sensitive data according to [FCS\_STG\_EXT.2.1](#FCS_STG_EXT.2.1) selection 2. selection 2. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[Symmetric keys used to encrypt [Application Note: ]{.note-header}[Symmetric keys used to encrypt sensitive data while the [TSF](#abbr_TSF) is in the unlocked state must sensitive data while the [TSF](#abbr_TSF) is in the unlocked state must be encrypted with (or chain to a [KEK](#abbr_KEK) encrypted with) the be encrypted with (or chain to a [KEK](#abbr_KEK) encrypted with) the [REK](#abbr_REK) and password-derived or biometric-unlocked [REK](#abbr_REK) and password-derived or biometric-unlocked [KEK](#abbr_KEK). A stored private key of the asymmetric key scheme for [KEK](#abbr_KEK). A stored private key of the asymmetric key scheme for encrypting data in the locked state must be encrypted with (or chain to encrypting data in the locked state must be encrypted with (or chain to a [KEK](#abbr_KEK) encrypted with) the [REK](#abbr_REK) and a [KEK](#abbr_KEK) encrypted with) the [REK](#abbr_REK) and password-derived or biometric-unlocked [KEK](#abbr_KEK).]{.note} password-derived or biometric-unlocked [KEK](#abbr_KEK).]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FDP_DAR_EXT.2.4 .reqid} ::: {#FDP_DAR_EXT.2.4 .reqid} [FDP\_DAR\_EXT.2.4](#FDP_DAR_EXT.2.4){.abbr} [FDP\_DAR\_EXT.2.4](#FDP_DAR_EXT.2.4){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall decrypt the sensitive data that was received The [TSF](#abbr_TSF) shall decrypt the sensitive data that was received while in the locked state upon transitioning to the unlocked state using while in the locked state upon transitioning to the unlocked state using the asymmetric key scheme and shall re-encrypt that sensitive data using the asymmetric key scheme and shall re-encrypt that sensitive data using the symmetric key scheme. the symmetric key scheme. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FDP\_DAR\_EXT.2](#FDP_DAR_EXT.2):\ | ::: {.component-activity-header} > [FDP\_DAR\_EXT.2](#FDP_DAR_EXT.2) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) includes a The evaluator shall verify that the [TSS](#abbr_TSS) includes a description of which data stored by the [TSF](#abbr_TSF) (such as by description of which data stored by the [TSF](#abbr_TSF) (such as by native applications) is treated as sensitive. This data may include all native applications) is treated as sensitive. This data may include all or some user or enterprise data and must be specific regarding the level or some user or enterprise data and must be specific regarding the level of protection of email, contacts, calendar appointments, messages, and of protection of email, contacts, calendar appointments, messages, and documents.\ documents.\ \ \ The evaluator shall examine the [TSS](#abbr_TSS) to determine that it The evaluator shall examine the [TSS](#abbr_TSS) to determine that it describes the mechanism that is provided for applications to use to mark describes the mechanism that is provided for applications to use to mark data and keys as sensitive. This description shall also contain data and keys as sensitive. This description shall also contain information reflecting how data and keys marked in this manner are information reflecting how data and keys marked in this manner are distinguished from data and keys that are not (for instance, tagging, distinguished from data and keys that are not (for instance, tagging, segregation in a \"special\" area of memory or container, etc.).\ segregation in a \"special\" area of memory or container, etc.).\ \ \ \ < < ::: {.eacategory} < Guidance < ::: < < There are no guidance evaluation activities for this element.\ < \ < \ < < ::: {.eacategory} < Tests < ::: < < - **Test 1:** The evaluator shall enable encryption of sensitive data < and require user authentication according to the AGD guidance. The < evaluator shall try to access and create sensitive data (as defined < in the [ST](#abbr_ST) and either by creating a file or using an < application to generate sensitive data) in order to verify that no < other user interaction is required. < < \ < ::: < < ::: {.activity} < ::: {.eacategory} < [TSS](#abbr_TSS) < ::: < < The evaluator shall review the [TSS](#abbr_TSS) section of the The evaluator shall review the [TSS](#abbr_TSS) section of the [ST](#abbr_ST) to determine that the [TSS](#abbr_TSS) includes a [ST](#abbr_ST) to determine that the [TSS](#abbr_TSS) includes a description of the process of receiving sensitive data while the device description of the process of receiving sensitive data while the device is in a locked state. The evaluator shall also verify that the is in a locked state. The evaluator shall also verify that the description indicates if sensitive data that may be received in the description indicates if sensitive data that may be received in the locked state is treated differently than sensitive data that cannot be locked state is treated differently than sensitive data that cannot be received in the locked state. The description shall include the key received in the locked state. The description shall include the key scheme for encrypting and storing the received data, which must involve scheme for encrypting and storing the received data, which must involve an asymmetric key and must prevent the sensitive data-at-rest from being an asymmetric key and must prevent the sensitive data-at-rest from being decrypted by wiping all key material used to derive or encrypt the data decrypted by wiping all key material used to derive or encrypt the data (as described in the application note). The introduction to this section (as described in the application note). The introduction to this section provides two different schemes that meet the requirements, but other provides two different schemes that meet the requirements, but other solutions may address this requirement.\ solutions may address this requirement.\ \ \ \ < < ::: {.eacategory} < Guidance < ::: < < There are no guidance evaluation activities for this element.\ < \ < \ < < ::: {.eacategory} < Tests < ::: < < The evaluator shall perform the tests in < [FCS\_CKM\_EXT.4](#FCS_CKM_EXT.4) for all key material no longer needed < while in the locked state and shall ensure that keys for the asymmetric < scheme are addressed in the tests performed when transitioning to the < locked state.\ < ::: < < ::: {.activity} < ::: {.eacategory} < [TSS](#abbr_TSS) < ::: < < The evaluator shall verify that the key hierarchy section of the The evaluator shall verify that the key hierarchy section of the [TSS](#abbr_TSS) required for [FCS\_STG\_EXT.2.1](#FCS_STG_EXT.2.1) [TSS](#abbr_TSS) required for [FCS\_STG\_EXT.2.1](#FCS_STG_EXT.2.1) includes the symmetric encryption keys (DEKs) used to encrypt sensitive | includes the symmetric encryption keys ([DEKs](#abbr_DEK)) used to data. The evaluator shall ensure that these DEKs are encrypted by a key | encrypt sensitive data. The evaluator shall ensure that these encrypted with (or chain to a [KEK](#abbr_KEK) encrypted with) the | [DEKs](#abbr_DEK) are encrypted by a key encrypted with (or chain to a [REK](#abbr_REK) and password-derived or biometric-unlocked | [KEK](#abbr_KEK) encrypted with) the [REK](#abbr_REK) and [KEK](#abbr_KEK).\ | password-derived or biometric-unlocked [KEK](#abbr_KEK).\ \ \ The evaluator shall verify that the [TSS](#abbr_TSS) section of the The evaluator shall verify that the [TSS](#abbr_TSS) section of the [ST](#abbr_ST) that describes the asymmetric key scheme includes the [ST](#abbr_ST) that describes the asymmetric key scheme includes the protection of any private keys of the asymmetric pairs. The evaluator protection of any private keys of the asymmetric pairs. The evaluator shall ensure that any private keys that are not wiped and are stored by shall ensure that any private keys that are not wiped and are stored by the [TSF](#abbr_TSF) are stored encrypted by a key encrypted with (or the [TSF](#abbr_TSF) are stored encrypted by a key encrypted with (or chain to a [KEK](#abbr_KEK) encrypted with) the [REK](#abbr_REK) and chain to a [KEK](#abbr_KEK) encrypted with) the [REK](#abbr_REK) and password-derived or biometric-unlocked [KEK](#abbr_KEK).\ password-derived or biometric-unlocked [KEK](#abbr_KEK).\ \ \ The evaluator shall also ensure that the documentation of the product\'s The evaluator shall also ensure that the documentation of the product\'s encryption key management is detailed enough that, after reading, the encryption key management is detailed enough that, after reading, the product\'s key management hierarchy is clear and that it meets the product\'s key management hierarchy is clear and that it meets the requirements to ensure the keys are adequately protected. The evaluator requirements to ensure the keys are adequately protected. The evaluator shall ensure that the documentation includes both an essay and one or shall ensure that the documentation includes both an essay and one or more diagrams. Note that this may also be documented as separate more diagrams. Note that this may also be documented as separate proprietary evidence rather than being included in the proprietary evidence rather than being included in the [TSS](#abbr_TSS).\ [TSS](#abbr_TSS).\ \ \ \ < < ::: {.eacategory} < Guidance < ::: < < There are no guidance evaluation activities for this element.\ < \ < \ < < ::: {.eacategory} < Tests < ::: < < There are no test evaluation activities for this element.\ < \ < ::: < < ::: {.activity} < ::: {.eacategory} < [TSS](#abbr_TSS) < ::: < < The evaluator shall verify that the [TSS](#abbr_TSS) section of the The evaluator shall verify that the [TSS](#abbr_TSS) section of the [ST](#abbr_ST) that describes the asymmetric key scheme includes a [ST](#abbr_ST) that describes the asymmetric key scheme includes a description of the actions taken by the [TSF](#abbr_TSF) for the description of the actions taken by the [TSF](#abbr_TSF) for the purposes of [DAR](#abbr_DAR) upon transitioning to the unlocked state. purposes of [DAR](#abbr_DAR) upon transitioning to the unlocked state. These actions shall minimally include decrypting all received data using These actions shall minimally include decrypting all received data using the asymmetric key scheme and re-encrypting with the symmetric key the asymmetric key scheme and re-encrypting with the symmetric key scheme used to store data while the device is unlocked.\ scheme used to store data while the device is unlocked.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} > There are no guidance evaluation activities for this element.\ > \ There are no guidance evaluation activities for this element.\ There are no guidance evaluation activities for this element.\ \ \ > There are no guidance evaluation activities for this element.\ > \ > There are no guidance evaluation activities for this element.\ \ \ > ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} > []{.testlist-} > > - [Test 38[](#_t_57){.definition}]{#_t_57}: The evaluator shall enable > encryption of sensitive data and require user authentication > according to the AGD guidance. The evaluator shall try to access and > create sensitive data (as defined in the [ST](#abbr_ST) and either > by creating a file or using an application to generate sensitive > data) in order to verify that no other user interaction is required. > > The evaluator shall perform the tests in > [FCS\_CKM\_EXT.4](#FCS_CKM_EXT.4) for all key material no longer needed > while in the locked state and shall ensure that keys for the asymmetric > scheme are addressed in the tests performed when transitioning to the > locked state.There are no test evaluation activities for this element.\ There are no test evaluation activities for this element.\ There are no test evaluation activities for this element.\ \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FDP_IFC_EXT.1 .comp} ::: {#FDP_IFC_EXT.1 .comp} #### FDP\_IFC\_EXT.1 Subset Information Flow Control #### FDP\_IFC\_EXT.1 Subset Information Flow Control ::: {.element} ::: {.element} ::: {#FDP_IFC_EXT.1.1 .reqid} ::: {#FDP_IFC_EXT.1.1 .reqid} [FDP\_IFC\_EXT.1.1](#FDP_IFC_EXT.1.1){.abbr} [FDP\_IFC\_EXT.1.1](#FDP_IFC_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall \[**selection**: The [TSF](#abbr_TSF) shall \[**selection**: - *provide an interface which allows a [VPN](#abbr_VPN) client to | - [provide an interface which allows a [VPN](#abbr_VPN) client to protect all [IP](#abbr_IP) traffic using [IPsec](#abbr_IPsec)*, | protect all [IP](#abbr_IP) traffic using - *provide a [VPN](#abbr_VPN) client which can protect all | [IPsec](#abbr_IPsec)]{#_s_260 .selectable-content} > - [provide a [VPN](#abbr_VPN) client which can protect all [IP](#abbr_IP) traffic using [IPsec](#abbr_IPsec) **as defined in [IP](#abbr_IP) traffic using [IPsec](#abbr_IPsec) **as defined in the [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client*** | the [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) > Client**]{#_s_261 .selectable-content} \] with the exception of [IP](#abbr_IP) traffic required to establish \] with the exception of [IP](#abbr_IP) traffic required to establish the [VPN](#abbr_VPN) connection. the [VPN](#abbr_VPN) connection. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[Typically, the traffic required to [Application Note: ]{.note-header}[Typically, the traffic required to establish the [VPN](#abbr_VPN) connection is referred to as \"Control establish the [VPN](#abbr_VPN) connection is referred to as \"Control Plane\" traffic; whereas, the [IP](#abbr_IP) traffic protected by the Plane\" traffic; whereas, the [IP](#abbr_IP) traffic protected by the [IPsec](#abbr_IPsec) [VPN](#abbr_VPN) is referred to as \"Data Plane\" [IPsec](#abbr_IPsec) [VPN](#abbr_VPN) is referred to as \"Data Plane\" traffic. All \"Data Plane\" traffic must flow through the traffic. All \"Data Plane\" traffic must flow through the [VPN](#abbr_VPN) connection and the [VPN](#abbr_VPN) must not [VPN](#abbr_VPN) connection and the [VPN](#abbr_VPN) must not split-tunnel.\ split-tunnel.\ \ \ If no native [IPsec](#abbr_IPsec) client is validated or third-party If no native [IPsec](#abbr_IPsec) client is validated or third-party [VPN](#abbr_VPN) clients may also implement the required Information [VPN](#abbr_VPN) clients may also implement the required Information Flow Control, the first option must be selected. In these cases, the Flow Control, the first option must be selected. In these cases, the [TOE](#abbr_TOE) provides an [API](#abbr_API) to third-party [TOE](#abbr_TOE) provides an [API](#abbr_API) to third-party [VPN](#abbr_VPN) clients that allow them to configure the [VPN](#abbr_VPN) clients that allow them to configure the [TOE](#abbr_TOE)'s network stack to perform the required Information [TOE](#abbr_TOE)'s network stack to perform the required Information Flow Control.\ Flow Control.\ \ \ The [ST](#abbr_ST) author must select the second option if the The [ST](#abbr_ST) author must select the second option if the [TSF](#abbr_TSF) implements a native [VPN](#abbr_VPN) client [TSF](#abbr_TSF) implements a native [VPN](#abbr_VPN) client ([IPsec](#abbr_IPsec) is selected in [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1)). ([IPsec](#abbr_IPsec) is selected in [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1)). Thus the [TSF](#abbr_TSF) must be validated against the Thus the [TSF](#abbr_TSF) must be validated against the [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client and the [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client and the [ST](#abbr_ST) author must also include [FDP\_IFC\_EXT.1]{.no-link} from [ST](#abbr_ST) author must also include [FDP\_IFC\_EXT.1]{.no-link} from the [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client.\ the [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client.\ \ \ It is optional for the [VPN](#abbr_VPN) client to be configured to be It is optional for the [VPN](#abbr_VPN) client to be configured to be always-on per [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) Function always-on per [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) Function [[45]{.counter}](#alwaysOnVPN){.alwaysOnVPN-ref}. Always-on means the | [45](#mf-alwaysOnVPN). Always-on means the establishment of an establishment of an [IPsec](#abbr_IPsec) trusted channel to allow any | [IPsec](#abbr_IPsec) trusted channel to allow any communication by the communication by the [TSF](#abbr_TSF). ]{.note} | [TSF](#abbr_TSF). ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FDP\_IFC\_EXT.1](#FDP_IFC_EXT.1):\ | ::: {.component-activity-header} > [FDP\_IFC\_EXT.1](#FDP_IFC_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) section of the The evaluator shall verify that the [TSS](#abbr_TSS) section of the [ST](#abbr_ST) describes the routing of [IP](#abbr_IP) traffic through [ST](#abbr_ST) describes the routing of [IP](#abbr_IP) traffic through processes on the [TSF](#abbr_TSF) when a [VPN](#abbr_VPN) client is processes on the [TSF](#abbr_TSF) when a [VPN](#abbr_VPN) client is enabled. The evaluator shall ensure that the description indicates which enabled. The evaluator shall ensure that the description indicates which traffic does not go through the [VPN](#abbr_VPN) and which traffic does traffic does not go through the [VPN](#abbr_VPN) and which traffic does and that a configuration exists for each baseband protocol in which only and that a configuration exists for each baseband protocol in which only the traffic identified by the [ST](#abbr_ST) author as necessary for the traffic identified by the [ST](#abbr_ST) author as necessary for establishing the [VPN](#abbr_VPN) connection (IKE traffic and perhaps establishing the [VPN](#abbr_VPN) connection (IKE traffic and perhaps [HTTPS](#abbr_HTTPS) or [DNS](#abbr_DNS) traffic) is not encapsulated by [HTTPS](#abbr_HTTPS) or [DNS](#abbr_DNS) traffic) is not encapsulated by the [VPN](#abbr_VPN) protocol ([IPsec](#abbr_IPsec)). The evaluator the [VPN](#abbr_VPN) protocol ([IPsec](#abbr_IPsec)). The evaluator shall verify that the [TSS](#abbr_TSS) section describes any differences shall verify that the [TSS](#abbr_TSS) section describes any differences in the routing of [IP](#abbr_IP) traffic when using any supported in the routing of [IP](#abbr_IP) traffic when using any supported baseband protocols (e.g. Wi-Fi or, [LTE](#abbr_LTE)).\ baseband protocols (e.g. Wi-Fi or, [LTE](#abbr_LTE)).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall verify that one (or more) of the following options The evaluator shall verify that one (or more) of the following options is addressed by the documentation:\ is addressed by the documentation:\ - The description above indicates that if a [VPN](#abbr_VPN) client is - The description above indicates that if a [VPN](#abbr_VPN) client is enabled, all configurations route all Data Plane traffic through the enabled, all configurations route all Data Plane traffic through the tunnel interface established by the [VPN](#abbr_VPN) client. tunnel interface established by the [VPN](#abbr_VPN) client. - The AGD guidance describes how the user and/or administrator can - The AGD guidance describes how the user and/or administrator can configure the [TSF](#abbr_TSF) to meet this requirement. configure the [TSF](#abbr_TSF) to meet this requirement. - The [API](#abbr_API) documentation includes a security function that - The [API](#abbr_API) documentation includes a security function that allows a [VPN](#abbr_VPN) client to specify this routing. allows a [VPN](#abbr_VPN) client to specify this routing. \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: - **Test 1:** If the [ST](#abbr_ST) author identifies any differences | ::: {.ea} in the routing between Wi-Fi and cellular protocols, the evaluator | []{.testlist-} shall repeat this test with a base station implementing one of the | identified cellular protocols.\ | - [Test 39[](#_t_58){.definition}]{#_t_58}: If the [ST](#abbr_ST) > author identifies any differences in the routing between Wi-Fi and > cellular protocols, the evaluator shall repeat this test with a base > station implementing one of the identified cellular protocols.\ \ \ Step 1: The evaluator shall enable a Wi-Fi configuration as Step 1: The evaluator shall enable a Wi-Fi configuration as described in the AGD guidance (as required by described in the AGD guidance (as required by [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1)). The evaluator shall use a packet [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1)). The evaluator shall use a packet sniffing tool between the wireless access point and an sniffing tool between the wireless access point and an Internet-connected network. The evaluator shall turn on the sniffing Internet-connected network. The evaluator shall turn on the sniffing tool and perform actions with the device such as navigating to tool and perform actions with the device such as navigating to websites, using provided applications, and accessing other Internet websites, using provided applications, and accessing other Internet resources. The evaluator shall verify that the sniffing tool resources. The evaluator shall verify that the sniffing tool captures the traffic generated by these actions, turn off the captures the traffic generated by these actions, turn off the sniffing tool, and save the session data.\ sniffing tool, and save the session data.\ \ \ Step 2: The evaluator shall configure an [IPsec](#abbr_IPsec) Step 2: The evaluator shall configure an [IPsec](#abbr_IPsec) [VPN](#abbr_VPN) client that supports the routing specified in this [VPN](#abbr_VPN) client that supports the routing specified in this requirement, and if necessary, configure the device to perform the requirement, and if necessary, configure the device to perform the routing specified as described in the AGD guidance. The evaluator routing specified as described in the AGD guidance. The evaluator shall turn on the sniffing tool, establish the [VPN](#abbr_VPN) shall turn on the sniffing tool, establish the [VPN](#abbr_VPN) connection, and perform the same actions with the device as connection, and perform the same actions with the device as performed in the first step. The evaluator shall verify that the performed in the first step. The evaluator shall verify that the sniffing tool captures traffic generated by these actions, turn off sniffing tool captures traffic generated by these actions, turn off the sniffing tool, and save the session data.\ the sniffing tool, and save the session data.\ \ \ Step 3: The evaluator shall examine the traffic from both step one Step 3: The evaluator shall examine the traffic from both step one and step two to verify that all Data Plane traffic is encapsulated and step two to verify that all Data Plane traffic is encapsulated by [IPsec](#abbr_IPsec). The evaluator shall examine the Security by [IPsec](#abbr_IPsec). The evaluator shall examine the Security Parameter Index ([SPI](#abbr_SPI)) value present in the encapsulated Parameter Index ([SPI](#abbr_SPI)) value present in the encapsulated packets captured in Step two from the [TOE](#abbr_TOE) to the packets captured in Step two from the [TOE](#abbr_TOE) to the Gateway and shall verify this value is the same for all actions used Gateway and shall verify this value is the same for all actions used to generate traffic through the [VPN](#abbr_VPN). Note that it is to generate traffic through the [VPN](#abbr_VPN). Note that it is expected that the [SPI](#abbr_SPI) value for packets from the expected that the [SPI](#abbr_SPI) value for packets from the Gateway to the [TOE](#abbr_TOE) is different than the Gateway to the [TOE](#abbr_TOE) is different than the [SPI](#abbr_SPI) value for packets from the [TOE](#abbr_TOE) to the [SPI](#abbr_SPI) value for packets from the [TOE](#abbr_TOE) to the Gateway. The evaluator shall be aware that [IP](#abbr_IP) traffic on Gateway. The evaluator shall be aware that [IP](#abbr_IP) traffic on the cellular baseband outside of the [IPsec](#abbr_IPsec) tunnel may the cellular baseband outside of the [IPsec](#abbr_IPsec) tunnel may be emanating from the baseband processor and shall verify with the be emanating from the baseband processor and shall verify with the manufacturer that any identified traffic is not emanating from the manufacturer that any identified traffic is not emanating from the application processor.\ application processor.\ \ \ Step 4: The evaluator shall perform an ICMP echo from the Step 4: The evaluator shall perform an ICMP echo from the [TOE](#abbr_TOE) to the [IP](#abbr_IP) address of another device on [TOE](#abbr_TOE) to the [IP](#abbr_IP) address of another device on the local wireless network and shall verify that no packets are sent the local wireless network and shall verify that no packets are sent using the sniffing tool. The evaluator shall attempt to send packets using the sniffing tool. The evaluator shall attempt to send packets to the [TOE](#abbr_TOE) outside the [VPN](#abbr_VPN) tunnel (i.e. to the [TOE](#abbr_TOE) outside the [VPN](#abbr_VPN) tunnel (i.e. not through the [VPN](#abbr_VPN) gateway), including from the local not through the [VPN](#abbr_VPN) gateway), including from the local wireless network, and shall verify that the [TOE](#abbr_TOE) wireless network, and shall verify that the [TOE](#abbr_TOE) discards them. discards them. < \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FDP_STG_EXT.1 .comp} ::: {#FDP_STG_EXT.1 .comp} #### FDP\_STG\_EXT.1 User Data Storage #### FDP\_STG\_EXT.1 User Data Storage ::: {.element} ::: {.element} ::: {#FDP_STG_EXT.1.1 .reqid} ::: {#FDP_STG_EXT.1.1 .reqid} [FDP\_STG\_EXT.1.1](#FDP_STG_EXT.1.1){.abbr} [FDP\_STG\_EXT.1.1](#FDP_STG_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide protected storage for the Trust The [TSF](#abbr_TSF) shall provide protected storage for the Trust Anchor Database. Anchor Database. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FDP\_STG\_EXT.1](#FDP_STG_EXT.1):\ | ::: {.component-activity-header} > [FDP\_STG\_EXT.1](#FDP_STG_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure the [TSS](#abbr_TSS) describes the Trust The evaluator shall ensure the [TSS](#abbr_TSS) describes the Trust Anchor Database implemented that contain certificates used to meet the Anchor Database implemented that contain certificates used to meet the requirements of this [PP](#abbr_PP). This description shall contain requirements of this [PP](#abbr_PP). This description shall contain information pertaining to how certificates are loaded into the store, information pertaining to how certificates are loaded into the store, and how the store is protected from unauthorized access (for example, and how the store is protected from unauthorized access (for example, UNIX permissions) in accordance with the permissions established in UNIX permissions) in accordance with the permissions established in [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) and [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) and [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1).\ [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FDP_UPC_EXT.1/APPS .comp} ::: {#FDP_UPC_EXT.1/APPS .comp} #### FDP\_UPC\_EXT.1/APPS Inter-TSF User Data Transfer Protection (Applications) #### FDP\_UPC\_EXT.1/APPS Inter-TSF User Data Transfer Protection (Applications) ::: {.element} ::: {.element} ::: {#FDP_UPC_EXT.1.1/APPS .reqid} ::: {#FDP_UPC_EXT.1.1/APPS .reqid} [FDP\_UPC\_EXT.1.1/APPS](#FDP_UPC_EXT.1.1/APPS){.abbr} [FDP\_UPC\_EXT.1.1/APPS](#FDP_UPC_EXT.1.1/APPS){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide a means for non-TSF applications The [TSF](#abbr_TSF) shall provide a means for non-TSF applications executing on the [TOE](#abbr_TOE) to use executing on the [TOE](#abbr_TOE) to use - mutually authenticated [TLS](#abbr_TLS) as defined in the Package - mutually authenticated [TLS](#abbr_TLS) as defined in the Package for Transport Layer Security, for Transport Layer Security, - [HTTPS](#abbr_HTTPS), - [HTTPS](#abbr_HTTPS), and \[**selection**: and \[**selection**: - *mutually authenticated [DTLS](#abbr_DTLS) as defined in the Package | - [mutually authenticated [DTLS](#abbr_DTLS) as defined in the Package for Transport Layer Security*, | for Transport Layer Security]{#upc_dtls .selectable-content} - *[IPsec](#abbr_IPsec) as defined in the [PP-Module](#abbr_PP-Module) | - [[IPsec](#abbr_IPsec) as defined in the [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client*, | for [VPN](#abbr_VPN) Client]{#_s_263 .selectable-content} - *no other protocol* | - [no other protocol]{#_s_264 .selectable-content} \] to provide a protected communication channel between the non-TSF \] to provide a protected communication channel between the non-TSF application and another IT product that is logically distinct from other application and another IT product that is logically distinct from other communication channels, provides assured identification of its end communication channels, provides assured identification of its end points, protects channel data from disclosure, and detects modification points, protects channel data from disclosure, and detects modification of the channel data. of the channel data. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The intent of this requirement is [Application Note: ]{.note-header}[ The intent of this requirement is that one of the selected protocols is available for use by user that one of the selected protocols is available for use by user applications running on the device for use in connecting to distant-end applications running on the device for use in connecting to distant-end services that are not necessarily part of the enterprise infrastructure. services that are not necessarily part of the enterprise infrastructure. It should be noted that the [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) requires It should be noted that the [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) requires that all [TSF](#abbr_TSF) communications be protected using the that all [TSF](#abbr_TSF) communications be protected using the protocols indicated in that requirement, so the protocols required by protocols indicated in that requirement, so the protocols required by this component ride \"on top of\" those listed in this component ride \"on top of\" those listed in [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1).\ [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1).\ \ \ It should also be noted that some applications are part of the It should also be noted that some applications are part of the [TSF](#abbr_TSF), and [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) requires that [TSF](#abbr_TSF), and [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) requires that [TSF](#abbr_TSF) applications be protected by at least one of the [TSF](#abbr_TSF) applications be protected by at least one of the protocols in first selection in [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1). It is protocols in first selection in [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1). It is not required to have two different implementations of a protocol, or two not required to have two different implementations of a protocol, or two different protocols, to satisfy both this requirement (for non-TSF apps) different protocols, to satisfy both this requirement (for non-TSF apps) and [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) (for [TSF](#abbr_TSF) apps), as and [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) (for [TSF](#abbr_TSF) apps), as long as the services specified are provided.\ long as the services specified are provided.\ \ \ The [ST](#abbr_ST) author must list which trusted channel protocols are The [ST](#abbr_ST) author must list which trusted channel protocols are implemented by the Mobile Device for use by non-TSF apps.\ implemented by the Mobile Device for use by non-TSF apps.\ \ \ The [TSF](#abbr_TSF) must be validated against requirements from the The [TSF](#abbr_TSF) must be validated against requirements from the Package for Transport Layer Security, with the following selections Package for Transport Layer Security, with the following selections made: ]{.note} made: ]{.note} FCS\_TLS\_EXT.1: FCS\_TLS\_EXT.1: - [TLS](#abbr_TLS) is selected - [TLS](#abbr_TLS) is selected - Client is selected - Client is selected FCS\_TLSC\_EXT.1.1: FCS\_TLSC\_EXT.1.1: - The cipher suites selected must correspond with the algorithms and - The cipher suites selected must correspond with the algorithms and hash functions allowed in FCS\_COP.1. hash functions allowed in FCS\_COP.1. - Mutual authentication must be selected - Mutual authentication must be selected FCS\_TLSC\_EXT.1.3 FCS\_TLSC\_EXT.1.3 - With no exceptions is selected. - With no exceptions is selected. \ \ If \"mutually authenticated [DTLS](#abbr_DTLS) as defined in the Package If \"mutually authenticated [DTLS](#abbr_DTLS) as defined in the Package for Transport Layer Security\" is selected, the [TSF](#abbr_TSF) must be for Transport Layer Security\" is selected, the [TSF](#abbr_TSF) must be validated against requirements from the Package for Transport Layer validated against requirements from the Package for Transport Layer Security, with the following selections made: Security, with the following selections made: FCS\_TLS\_EXT.1: FCS\_TLS\_EXT.1: - [DTLS](#abbr_DTLS) is selected - [DTLS](#abbr_DTLS) is selected - client is selected - client is selected FCS\_DTLSC\_EXT.1.1: FCS\_DTLSC\_EXT.1.1: - The cipher suites selected must correspond with the algorithms and - The cipher suites selected must correspond with the algorithms and hash functions allowed in FCS\_COP.1. hash functions allowed in FCS\_COP.1. - mutual authentication must be selected - mutual authentication must be selected FCS\_DTLSC\_EXT.1.3 FCS\_DTLSC\_EXT.1.3 - With no exceptions is selected. - With no exceptions is selected. \ \ If the [ST](#abbr_ST) author selects [IPsec](#abbr_IPsec), the If the [ST](#abbr_ST) author selects [IPsec](#abbr_IPsec), the [TSF](#abbr_TSF) must be validated against the [TSF](#abbr_TSF) must be validated against the [PP-Module](#abbr_PP-Module) for Virtual Private Network [PP-Module](#abbr_PP-Module) for Virtual Private Network ([VPN](#abbr_VPN)) Clients. ([VPN](#abbr_VPN)) Clients. ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FDP_UPC_EXT.1.2/APPS .reqid} ::: {#FDP_UPC_EXT.1.2/APPS .reqid} [FDP\_UPC\_EXT.1.2/APPS](#FDP_UPC_EXT.1.2/APPS){.abbr} [FDP\_UPC\_EXT.1.2/APPS](#FDP_UPC_EXT.1.2/APPS){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall permit the non-TSF applications to initiate The [TSF](#abbr_TSF) shall permit the non-TSF applications to initiate communication via the trusted channel. communication via the trusted channel. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FDP\_UPC\_EXT.1/APPS](#FDP_UPC_EXT.1/APPS):\ | ::: {.component-activity-header} > [FDP\_UPC\_EXT.1/APPS](#FDP_UPC_EXT.1/APPS) > ::: ::: {.activity} < The evaluator shall verify that the [API](#abbr_API) documentation The evaluator shall verify that the [API](#abbr_API) documentation provided according to [Section 5.2.2 Class ADV: provided according to [Section 5.2.2 Class ADV: Development](#adv){.dynref} includes the security functions (protection Development](#adv){.dynref} includes the security functions (protection channel) described in these requirements, and verify that the APIs channel) described in these requirements, and verify that the APIs implemented to support this requirement include the appropriate implemented to support this requirement include the appropriate settings/parameters so that the application can both provide and obtain settings/parameters so that the application can both provide and obtain the information needed to assure mutual identification of the endpoints the information needed to assure mutual identification of the endpoints of the communication as required by this component.\ of the communication as required by this component.\ \ \ ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall examine the [TSS](#abbr_TSS) to determine that it The evaluator shall examine the [TSS](#abbr_TSS) to determine that it describes that all protocols listed in the [TSS](#abbr_TSS) are describes that all protocols listed in the [TSS](#abbr_TSS) are specified and included in the requirements in the [ST](#abbr_ST).\ specified and included in the requirements in the [ST](#abbr_ST).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall confirm that the operational guidance contains The evaluator shall confirm that the operational guidance contains instructions necessary for configuring the protocol(s) selected for use instructions necessary for configuring the protocol(s) selected for use by the applications.\ by the applications.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following test requires the developer **Evaluation Activity Note:** The following test requires the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products.\ tools that are typically not found on consumer Mobile Device products.\ \ \ The evaluator shall write, or the developer shall provide access to, an The evaluator shall write, or the developer shall provide access to, an application that requests protected channel services by the application that requests protected channel services by the [TSF](#abbr_TSF). The evaluator shall verify that the results from the [TSF](#abbr_TSF). The evaluator shall verify that the results from the protected channel match the expected results according to the protected channel match the expected results according to the [API](#abbr_API) documentation. This application may be used to assist [API](#abbr_API) documentation. This application may be used to assist in verifying the protected channel Evaluation Activities for the in verifying the protected channel Evaluation Activities for the protocol requirements. The evaluator shall also perform the following protocol requirements. The evaluator shall also perform the following tests: | tests: []{.testlist-} < - **Test 1:** The evaluators shall ensure that the application is able < to initiate communications with an external IT entity using each < protocol specified in the requirement, setting up the connections as < described in the operational guidance and ensuring that < communication is successful. < - **Test 2:** The evaluator shall ensure, for each communication < channel with an authorized IT entity, the channel data are not sent < in plaintext. < \ | - [Test 40[](#_t_59){.definition}]{#_t_59}: The evaluators shall > ensure that the application is able to initiate communications with > an external IT entity using each protocol specified in the > requirement, setting up the connections as described in the > operational guidance and ensuring that communication is successful. > - [Test 41[](#_t_60){.definition}]{#_t_60}: The evaluator shall > ensure, for each communication channel with an authorized IT entity, > the channel data are not sent in plaintext. ::: ::: ::: ::: ::: ::: ::: ::: ### 5.1.5 Class: Identification and Authentication (FIA) {#fia .indexable data-level= ### 5.1.5 Class: Identification and Authentication (FIA) {#fia .indexable data-level= ::: {#FIA_AFL_EXT.1 .comp} ::: {#FIA_AFL_EXT.1 .comp} #### FIA\_AFL\_EXT.1 Authentication Failure Handling #### FIA\_AFL\_EXT.1 Authentication Failure Handling ::: {.element} ::: {.element} ::: {#FIA_AFL_EXT.1.1 .reqid} ::: {#FIA_AFL_EXT.1.1 .reqid} [FIA\_AFL\_EXT.1.1](#FIA_AFL_EXT.1.1){.abbr} [FIA\_AFL\_EXT.1.1](#FIA_AFL_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall consider password and \[**selection**: The [TSF](#abbr_TSF) shall consider password and \[**selection**: *fingerprint*, *iris*, *face*, *voice*, *vein*, *hybrid*, *no other*\] | [fingerprint]{#_s_267 .selectable-content}, [ iris]{#_s_268 as critical authentication mechanisms. | .selectable-content}, [ face]{#_s_269 .selectable-content}, [ > voice]{#_s_270 .selectable-content}, [ vein]{#_s_271 > .selectable-content}, [ hybrid]{#_s_272 .selectable-content}, [ no > other]{#_s_273 .selectable-content} \] as critical authentication > mechanisms. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[A critical authentication mechanism [Application Note: ]{.note-header}[A critical authentication mechanism is one in which countermeasures are triggered (i.e. wipe of the device) is one in which countermeasures are triggered (i.e. wipe of the device) when the maximum number of unsuccessful authentication attempts is when the maximum number of unsuccessful authentication attempts is exceeded, rendering the other factors unavailable.\ exceeded, rendering the other factors unavailable.\ \ \ If no additional authentication mechanisms are selected in If no additional authentication mechanisms are selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), then 'no other' must be selected. If an [FIA\_UAU.5.1](#FIA_UAU.5.1), then 'no other' must be selected. If an additional authentication mechanism is selected in additional authentication mechanism is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), then it must only be selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), then it must only be selected in [FIA\_AFL\_EXT.1.1](#FIA_AFL_EXT.1.1) if surpassing the authentication [FIA\_AFL\_EXT.1.1](#FIA_AFL_EXT.1.1) if surpassing the authentication failure threshold for biometric data causes a countermeasure to be failure threshold for biometric data causes a countermeasure to be triggered regardless of the failure status of the other authentication triggered regardless of the failure status of the other authentication mechanisms.\ mechanisms.\ \ \ If the [TOE](#abbr_TOE) implements multiple Authentication Factor If the [TOE](#abbr_TOE) implements multiple Authentication Factor interfaces (for example, a [DAR](#abbr_DAR) decryption interface, a | interfaces (for example, a [DAR](#abbr_DAR) decryption interface, a lock lockscreen interface, an auxiliary boot mode interface), this component | screen interface, an auxiliary boot mode interface), this component applies to all available interfaces. For example, a password is a applies to all available interfaces. For example, a password is a critical authentication mechanism regardless of if it is being entered critical authentication mechanism regardless of if it is being entered at the [DAR](#abbr_DAR) decryption interface or at a lockscreen | at the [DAR](#abbr_DAR) decryption interface or at a lock screen interface. ]{.note} interface. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_AFL_EXT.1.2 .reqid} ::: {#FIA_AFL_EXT.1.2 .reqid} [FIA\_AFL\_EXT.1.2](#FIA_AFL_EXT.1.2){.abbr} [FIA\_AFL\_EXT.1.2](#FIA_AFL_EXT.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall detect when a configurable positive integer The [TSF](#abbr_TSF) shall detect when a configurable positive integer within \[**assignment**: [range of acceptable values for each within \[**assignment**: [range of acceptable values for each authentication mechanism]{.assignable-content}\] of \[**selection**: authentication mechanism]{.assignable-content}\] of \[**selection**: *unique*, *non-unique*\] unsuccessful authentication attempts occur | [unique]{#_s_274 .selectable-content}, [non-unique]{#_s_275 > .selectable-content} \] unsuccessful authentication attempts occur related to last successful authentication for each authentication related to last successful authentication for each authentication mechanism. mechanism. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The positive integer(s) is configured [Application Note: ]{.note-header}[The positive integer(s) is configured according to [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) function according to [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) function [[2]{.counter}](#screenlock){.screenlock-ref}.\ | [2](#mf-screenlock).\ \ \ An unique authentication attempt is defined as any attempt to verify a An unique authentication attempt is defined as any attempt to verify a password or biometric sample, in which the input is different from a password or biometric sample, in which the input is different from a previous attempt. 'Unique' must be selected if the authentication system previous attempt. 'Unique' must be selected if the authentication system increments the counter only for unique unsuccessful authentication increments the counter only for unique unsuccessful authentication attempts. For example, if the same incorrect password is attempted twice attempts. For example, if the same incorrect password is attempted twice the authentication system increments the counter once. 'Non-unique' must the authentication system increments the counter once. 'Non-unique' must be selected if the authentication system increments the counter for each be selected if the authentication system increments the counter for each unsuccessful authentication attempt, regardless of if the input is unsuccessful authentication attempt, regardless of if the input is unique. For example, if the same incorrect password is attempted twice unique. For example, if the same incorrect password is attempted twice the authentication system increments the counter twice.\ the authentication system increments the counter twice.\ \ \ If hybrid authentication (i.e. a combination of biometric and If hybrid authentication (i.e. a combination of biometric and pin/password) is supported, a failed authentication attempt can be pin/password) is supported, a failed authentication attempt can be counted as a single attempt, even if both the biometric and pin/password counted as a single attempt, even if both the biometric and pin/password were incorrect.\ were incorrect.\ \ \ If the [TOE](#abbr_TOE) supports multiple authentication mechanisms per If the [TOE](#abbr_TOE) supports multiple authentication mechanisms per [FIA\_UAU.5.1](#FIA_UAU.5.1), this component applies to all [FIA\_UAU.5.1](#FIA_UAU.5.1), this component applies to all authentication mechanisms. It is acceptable for each authentication authentication mechanisms. It is acceptable for each authentication mechanism to utilize an independent counter or for multiple mechanism to utilize an independent counter or for multiple authentication mechanisms to utilize a shared counter. The interaction authentication mechanisms to utilize a shared counter. The interaction between the authentication factors in regards to the authentication between the authentication factors in regards to the authentication counter must be in accordance with [FIA\_UAU.5.2](#FIA_UAU.5.2).\ counter must be in accordance with [FIA\_UAU.5.2](#FIA_UAU.5.2).\ \ \ If the [TOE](#abbr_TOE) implements multiple Authentication Factor If the [TOE](#abbr_TOE) implements multiple Authentication Factor interfaces (for example, a [DAR](#abbr_DAR) decryption interface, a | interfaces (for example, a [DAR](#abbr_DAR) decryption interface, a lock lockscreen interface, an auxiliary boot mode interface), this component | screen interface, an auxiliary boot mode interface), this component applies to all available interfaces. However, it is acceptable for each applies to all available interfaces. However, it is acceptable for each Authentication Factor interface to be configurable with a different Authentication Factor interface to be configurable with a different number of unsuccessful authentication attempts. ]{.note} number of unsuccessful authentication attempts. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_AFL_EXT.1.3 .reqid} ::: {#FIA_AFL_EXT.1.3 .reqid} [FIA\_AFL\_EXT.1.3](#FIA_AFL_EXT.1.3){.abbr} [FIA\_AFL\_EXT.1.3](#FIA_AFL_EXT.1.3){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall maintain the number of unsuccessful The [TSF](#abbr_TSF) shall maintain the number of unsuccessful authentication attempts that have occurred upon power off. authentication attempts that have occurred upon power off. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The [TOE](#abbr_TOE) may implement an [Application Note: ]{.note-header}[The [TOE](#abbr_TOE) may implement an Authentication Factor interface that precedes another Authentication Authentication Factor interface that precedes another Authentication Factor interface in the boot sequence (for example, a volume Factor interface in the boot sequence (for example, a volume [DAR](#abbr_DAR) decryption interface which precedes the lockscreen | [DAR](#abbr_DAR) decryption interface which precedes the lock screen interface) before the user can access the device. In this situation, interface) before the user can access the device. In this situation, because the user must successfully authenticate to the first interface because the user must successfully authenticate to the first interface to access the second, the number of unsuccessful authentication attempts to access the second, the number of unsuccessful authentication attempts need not be maintained for the second interface.]{.note} need not be maintained for the second interface.]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_AFL_EXT.1.4 .reqid} ::: {#FIA_AFL_EXT.1.4 .reqid} [FIA\_AFL\_EXT.1.4](#FIA_AFL_EXT.1.4){.abbr} [FIA\_AFL\_EXT.1.4](#FIA_AFL_EXT.1.4){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} When the defined number of unsuccessful authentication attempts has When the defined number of unsuccessful authentication attempts has exceeded the maximum allowed for a given authentication mechanism, all exceeded the maximum allowed for a given authentication mechanism, all future authentication attempts will be limited to other available future authentication attempts will be limited to other available authentication mechanisms, unless the given mechanism is designated as a authentication mechanisms, unless the given mechanism is designated as a critical authentication mechanism. critical authentication mechanism. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[In accordance with [Application Note: ]{.note-header}[In accordance with [FIA\_AFL\_EXT.1.3](#FIA_AFL_EXT.1.3), this requirement also applies [FIA\_AFL\_EXT.1.3](#FIA_AFL_EXT.1.3), this requirement also applies after the [TOE](#abbr_TOE) is powered off and powered back on. ]{.note} after the [TOE](#abbr_TOE) is powered off and powered back on. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_AFL_EXT.1.5 .reqid} ::: {#FIA_AFL_EXT.1.5 .reqid} [FIA\_AFL\_EXT.1.5](#FIA_AFL_EXT.1.5){.abbr} [FIA\_AFL\_EXT.1.5](#FIA_AFL_EXT.1.5){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} When the defined number of unsuccessful authentication attempts for the When the defined number of unsuccessful authentication attempts for the last available authentication mechanism or single critical last available authentication mechanism or single critical authentication mechanism has been surpassed, the [TSF](#abbr_TSF) shall authentication mechanism has been surpassed, the [TSF](#abbr_TSF) shall perform a wipe of all protected data. perform a wipe of all protected data. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[Wipe is performed in accordance with [Application Note: ]{.note-header}[Wipe is performed in accordance with [FCS\_CKM\_EXT.5](#FCS_CKM_EXT.5). Protected data is all non-TSF data, [FCS\_CKM\_EXT.5](#FCS_CKM_EXT.5). Protected data is all non-TSF data, including all user or enterprise data. Some or all of this data may be including all user or enterprise data. Some or all of this data may be considered sensitive data as well.\ considered sensitive data as well.\ \ \ If the [TOE](#abbr_TOE) implements multiple Authentication Factor If the [TOE](#abbr_TOE) implements multiple Authentication Factor interfaces (for example, a [DAR](#abbr_DAR) decryption interface, a | interfaces (for example, a [DAR](#abbr_DAR) decryption interface, a lock lockscreen interface, an auxiliary boot mode interface), this component | screen interface, an auxiliary boot mode interface), this component applies to all available interfaces. ]{.note} applies to all available interfaces. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_AFL_EXT.1.6 .reqid} ::: {#FIA_AFL_EXT.1.6 .reqid} [FIA\_AFL\_EXT.1.6](#FIA_AFL_EXT.1.6){.abbr} [FIA\_AFL\_EXT.1.6](#FIA_AFL_EXT.1.6){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall increment the number of unsuccessful The [TSF](#abbr_TSF) shall increment the number of unsuccessful authentication attempts prior to notifying the user that the authentication attempts prior to notifying the user that the authentication was unsuccessful. authentication was unsuccessful. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[This requirement is to ensure that if [Application Note: ]{.note-header}[This requirement is to ensure that if power is cut to the device directly after an authentication attempt, the power is cut to the device directly after an authentication attempt, the counter will be incremented to reflect that attempt. ]{.note} counter will be incremented to reflect that attempt. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1):\ | ::: {.component-activity-header} > [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure that the [TSS](#abbr_TSS) describes that a The evaluator shall ensure that the [TSS](#abbr_TSS) describes that a value corresponding to the number of unsuccessful authentication value corresponding to the number of unsuccessful authentication attempts since the last successful authentication is kept for each attempts since the last successful authentication is kept for each Authentication Factor interface. The evaluator shall ensure that this Authentication Factor interface. The evaluator shall ensure that this description also includes if and how this value is maintained when the description also includes if and how this value is maintained when the [TOE](#abbr_TOE) loses power, either through a graceful powered off or [TOE](#abbr_TOE) loses power, either through a graceful powered off or an ungraceful loss of power. The evaluator shall ensure that if the an ungraceful loss of power. The evaluator shall ensure that if the value is not maintained, the interface is after another interface in the value is not maintained, the interface is after another interface in the boot sequence for which the value is maintained.\ boot sequence for which the value is maintained.\ \ \ If the [TOE](#abbr_TOE) supports multiple authentication mechanisms, the If the [TOE](#abbr_TOE) supports multiple authentication mechanisms, the evaluator shall ensure that this description also includes how the evaluator shall ensure that this description also includes how the unsuccessful authentication attempts for each mechanism selected in unsuccessful authentication attempts for each mechanism selected in [FIA\_UAU.5.1](#FIA_UAU.5.1) is handled. The evaluator shall verify that [FIA\_UAU.5.1](#FIA_UAU.5.1) is handled. The evaluator shall verify that the [TSS](#abbr_TSS) describes if each authentication mechanism utilizes the [TSS](#abbr_TSS) describes if each authentication mechanism utilizes its own counter or if multiple authentication mechanisms utilize a its own counter or if multiple authentication mechanisms utilize a shared counter. If multiple authentication mechanisms utilize a shared shared counter. If multiple authentication mechanisms utilize a shared counter, the evaluator shall verify that the [TSS](#abbr_TSS) describes counter, the evaluator shall verify that the [TSS](#abbr_TSS) describes this interaction.\ this interaction.\ \ \ The evaluator shall confirm that the [TSS](#abbr_TSS) describes how the The evaluator shall confirm that the [TSS](#abbr_TSS) describes how the process used to determine if the authentication attempt was successful. process used to determine if the authentication attempt was successful. The evaluator shall ensure that the counter would be updated even if The evaluator shall ensure that the counter would be updated even if power to the device is cut immediately following notifying the power to the device is cut immediately following notifying the [TOE](#abbr_TOE) user if the authentication attempt was successful or [TOE](#abbr_TOE) user if the authentication attempt was successful or not.\ not.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall verify that the AGD guidance describes how the The evaluator shall verify that the AGD guidance describes how the administrator configures the maximum number of unique unsuccessful administrator configures the maximum number of unique unsuccessful authentication attempts.\ authentication attempts.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: - **Test 1:** The evaluator shall configure the device with all | ::: {.ea} authentication mechanisms selected in [FIA\_UAU.5.1](#FIA_UAU.5.1). | []{.testlist-} The evaluator shall perform the following tests for each available | authentication interface:\ | - [Test 42[](#_t_63){.definition}]{#_t_63}: The evaluator shall > configure the device with all authentication mechanisms selected in > [FIA\_UAU.5.1](#FIA_UAU.5.1). The evaluator shall perform the > following tests for each available authentication interface:\ \ \ Test 1a: The evaluator shall configure the [TOE](#abbr_TOE), Test 1a: The evaluator shall configure the [TOE](#abbr_TOE), according to the AGD guidance, with a maximum number of unsuccessful according to the AGD guidance, with a maximum number of unsuccessful authentication attempts. The evaluator shall enter the locked state authentication attempts. The evaluator shall enter the locked state and enter incorrect passwords until the wipe occurs. The evaluator and enter incorrect passwords until the wipe occurs. The evaluator shall verify that the number of password entries corresponds to the shall verify that the number of password entries corresponds to the configured maximum and that the wipe is implemented.\ configured maximum and that the wipe is implemented.\ \ \ Test 1b: \[conditional\] If the [TOE](#abbr_TOE) supports multiple Test 1b: \[conditional\] If the [TOE](#abbr_TOE) supports multiple authentication mechanisms the previous test shall be repeated using authentication mechanisms the previous test shall be repeated using a combination of authentication mechanisms confirming that the a combination of authentication mechanisms confirming that the critical authentication mechanisms will cause the device to wipe and critical authentication mechanisms will cause the device to wipe and that when the maximum number of unsuccessful authentication attempts that when the maximum number of unsuccessful authentication attempts for a non-critical authentication mechanism is exceeded, the device for a non-critical authentication mechanism is exceeded, the device limits authentication attempts to other available authentication limits authentication attempts to other available authentication mechanisms. If multiple authentication mechanisms utilize a shared mechanisms. If multiple authentication mechanisms utilize a shared counter, then the evaluator shall verify that the maximum number of counter, then the evaluator shall verify that the maximum number of unsuccessful authentication attempts can be reached by using each unsuccessful authentication attempts can be reached by using each individual authentication mechanism and a combination of all individual authentication mechanism and a combination of all authentication mechanisms that share the counter. authentication mechanisms that share the counter. - **Test 2:** The evaluator shall repeat test one, but shall power off | - [Test 43[](#_t_64){.definition}]{#_t_64}: The evaluator shall repeat (by removing the battery, if possible) the [TOE](#abbr_TOE) between | test one, but shall power off (by removing the battery, if possible) unsuccessful authentication attempts. The evaluator shall verify | the [TOE](#abbr_TOE) between unsuccessful authentication attempts. that the total number of unsuccessful authentication attempts for | The evaluator shall verify that the total number of unsuccessful each authentication mechanism corresponds to the configured maximum | authentication attempts for each authentication mechanism and that the critical authentication mechanisms cause the device to | corresponds to the configured maximum and that the critical wipe. Alternatively, if the number of authentication failures is not | authentication mechanisms cause the device to wipe. Alternatively, maintained for the interface under test, the evaluator shall verify | if the number of authentication failures is not maintained for the that upon booting the [TOE](#abbr_TOE) between unsuccessful | interface under test, the evaluator shall verify that upon booting authentication attempts another authentication factor interface is | the [TOE](#abbr_TOE) between unsuccessful authentication attempts presented before the interface under test. | another authentication factor interface is presented before the | interface under test. \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FIA_PMG_EXT.1 .comp} ::: {#FIA_PMG_EXT.1 .comp} #### FIA\_PMG\_EXT.1 Password Management #### FIA\_PMG\_EXT.1 Password Management ::: {.element} ::: {.element} ::: {#FIA_PMG_EXT.1.1 .reqid} ::: {#FIA_PMG_EXT.1.1 .reqid} [FIA\_PMG\_EXT.1.1](#FIA_PMG_EXT.1.1){.abbr} [FIA\_PMG\_EXT.1.1](#FIA_PMG_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall support the following for the Password The [TSF](#abbr_TSF) shall support the following for the Password Authentication Factor: Authentication Factor: 1. Passwords shall be able to be composed of any combination of 1. Passwords shall be able to be composed of any combination of \[**selection**: *upper and lower case letters*, *\[**assignment**: | \[**selection**: [upper and lower case letters]{#_s_279 [a character set of at least 52 | .selectable-content}, [\[**assignment**: [a character set of at characters]{.assignable-content}\]*\], numbers, and special | least 52 characters]{.assignable-content}\]]{#_s_280 characters: \[**selection**: *\"!\"*, *\"@\"*, *\"\#\"*, *\"\$\"*, | .selectable-content} \], numbers, and special characters: *\"%\"*, *\"\^\"*, *\"&\"*, *\"\*\"*, *\"(\"*, *\")\"*, | \[**selection**: [\"!\"]{#_s_281 .selectable-content}, *\[**assignment**: [other characters]{.assignable-content}\]*\]; | [\"@\"]{#_s_282 .selectable-content}, [\"\#\"]{#_s_283 > .selectable-content}, [\"\$\"]{#_s_284 .selectable-content}, > [\"%\"]{#_s_285 .selectable-content}, [\"\^\"]{#_s_286 > .selectable-content}, [\"&\"]{#_s_287 .selectable-content}, [ > \"\*\"]{#_s_288 .selectable-content}, [\"(\"]{#_s_289 > .selectable-content}, [\")\"]{#_s_290 .selectable-content}, > [\[**assignment**: [other > characters]{.assignable-content}\]]{#_s_291 .selectable-content} \]; 2. Password length up to \[**assignment**: [an integer greater than or 2. Password length up to \[**assignment**: [an integer greater than or equal to 14]{.assignable-content}\] characters shall be supported. equal to 14]{.assignable-content}\] characters shall be supported. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[While some corporate policies require [Application Note: ]{.note-header}[While some corporate policies require passwords of 14 characters or better, the use of a [REK](#abbr_REK) for passwords of 14 characters or better, the use of a [REK](#abbr_REK) for [DAR](#abbr_DAR) protection and key storage protection and the [DAR](#abbr_DAR) protection and key storage protection and the anti-hammer requirement ([FIA\_TRT\_EXT.1](#FIA_TRT_EXT.1)) addresses anti-hammer requirement ([FIA\_TRT\_EXT.1](#FIA_TRT_EXT.1)) addresses the threat of attackers with physical access using much smaller and less the threat of attackers with physical access using much smaller and less complex passwords.\ complex passwords.\ \ \ The [ST](#abbr_ST) author selects the character set: either the upper The [ST](#abbr_ST) author selects the character set: either the upper and lower case Basic Latin letters or another assigned character set and lower case Basic Latin letters or another assigned character set containing at least 52 characters. The assigned character set must be containing at least 52 characters. The assigned character set must be well defined: either according to an international encoding standard well defined: either according to an international encoding standard (such as Unicode) or defined in the assignment by the [ST](#abbr_ST) (such as Unicode) or defined in the assignment by the [ST](#abbr_ST) author. The [ST](#abbr_ST) author also selects the special characters author. The [ST](#abbr_ST) author also selects the special characters that are supported by [TOE](#abbr_TOE); they may optionally list that are supported by [TOE](#abbr_TOE); they may optionally list additional special characters supported using the assignment. ]{.note} additional special characters supported using the assignment. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_PMG\_EXT.1](#FIA_PMG_EXT.1):\ | ::: {.component-activity-header} > [FIA\_PMG\_EXT.1](#FIA_PMG_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall examine the operational guidance to determine that The evaluator shall examine the operational guidance to determine that it provides guidance to security administrators on the composition of it provides guidance to security administrators on the composition of strong passwords, and that it provides instructions on setting the strong passwords, and that it provides instructions on setting the minimum password length. The evaluator shall also perform the following minimum password length. The evaluator shall also perform the following tests. Note that one or more of these tests can be performed with a tests. Note that one or more of these tests can be performed with a single test case.\ single test case.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: - **Test 1:** The evaluator shall compose passwords that either meet | ::: {.ea} the requirements, or fail to meet the requirements, in some way. For | []{.testlist-} each password, the evaluator shall verify that the [TOE](#abbr_TOE) < supports the password. While the evaluator is not required (nor is < it feasible) to test all possible compositions of passwords, the < evaluator shall ensure that all characters, rule characteristics, < and a minimum length listed in the requirement are supported, and < justify the subset of those characters chosen for testing. < \ | - [Test 44[](#_t_65){.definition}]{#_t_65}: The evaluator shall > compose passwords that either meet the requirements, or fail to meet > the requirements, in some way. For each password, the evaluator > shall verify that the [TOE](#abbr_TOE) supports the password. While > the evaluator is not required (nor is it feasible) to test all > possible compositions of passwords, the evaluator shall ensure that > all characters, rule characteristics, and a minimum length listed in > the requirement are supported, and justify the subset of those > characters chosen for testing. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FIA_TRT_EXT.1 .comp} ::: {#FIA_TRT_EXT.1 .comp} #### FIA\_TRT\_EXT.1 Authentication Throttling #### FIA\_TRT\_EXT.1 Authentication Throttling ::: {.element} ::: {.element} ::: {#FIA_TRT_EXT.1.1 .reqid} ::: {#FIA_TRT_EXT.1.1 .reqid} [FIA\_TRT\_EXT.1.1](#FIA_TRT_EXT.1.1){.abbr} [FIA\_TRT\_EXT.1.1](#FIA_TRT_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall limit automated user authentication attempts The [TSF](#abbr_TSF) shall limit automated user authentication attempts by \[**selection**: *preventing authentication via an external port*, | by \[**selection**: [preventing authentication via an external *enforcing a delay between incorrect authentication attempts*\] for all | port]{#_s_292 .selectable-content}, [enforcing a delay between incorrect > authentication attempts]{#_s_293 .selectable-content} \] for all authentication mechanisms selected in [FIA\_UAU.5.1](#FIA_UAU.5.1). The authentication mechanisms selected in [FIA\_UAU.5.1](#FIA_UAU.5.1). The minimum delay shall be such that no more than 10 attempts can be minimum delay shall be such that no more than 10 attempts can be attempted per 500 milliseconds. attempted per 500 milliseconds. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The authentication throttling applies [Application Note: ]{.note-header}[The authentication throttling applies to all authentication mechanisms selected in to all authentication mechanisms selected in [FIA\_UAU.5.1](#FIA_UAU.5.1). The user authentication attempts in this [FIA\_UAU.5.1](#FIA_UAU.5.1). The user authentication attempts in this requirement are attempts to guess the Authentication Factor. The requirement are attempts to guess the Authentication Factor. The developer can implement the timing of the delays in the requirements developer can implement the timing of the delays in the requirements using unequal or equal timing of delays. The minimum delay specified in using unequal or equal timing of delays. The minimum delay specified in this requirement provides defense against brute forcing.]{.note} this requirement provides defense against brute forcing.]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_TRT\_EXT.1](#FIA_TRT_EXT.1):\ | ::: {.component-activity-header} > [FIA\_TRT\_EXT.1](#FIA_TRT_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) describes the The evaluator shall verify that the [TSS](#abbr_TSS) describes the method by which authentication attempts are not able to be automated. method by which authentication attempts are not able to be automated. The evaluator shall ensure that the [TSS](#abbr_TSS) describes either The evaluator shall ensure that the [TSS](#abbr_TSS) describes either how the [TSF](#abbr_TSF) disables authentication via external interfaces how the [TSF](#abbr_TSF) disables authentication via external interfaces (other than the ordinary user interface) or how authentication attempts (other than the ordinary user interface) or how authentication attempts are delayed in order to slow automated entry and shall ensure that this are delayed in order to slow automated entry and shall ensure that this delay totals at least 500 milliseconds over 10 attempts for all delay totals at least 500 milliseconds over 10 attempts for all authentication mechanisms selected in [FIA\_UAU.5.1](#FIA_UAU.5.1).\ authentication mechanisms selected in [FIA\_UAU.5.1](#FIA_UAU.5.1).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FIA_UAU.5 .comp} ::: {#FIA_UAU.5 .comp} #### FIA\_UAU.5 Multiple Authentication Mechanisms #### FIA\_UAU.5 Multiple Authentication Mechanisms ::: {.element} ::: {.element} ::: {#FIA_UAU.5.1 .reqid} ::: {#FIA_UAU.5.1 .reqid} [FIA\_UAU.5.1](#FIA_UAU.5.1){.abbr} [FIA\_UAU.5.1](#FIA_UAU.5.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide [password and \[**selection**: The [TSF](#abbr_TSF) shall provide [password and \[**selection**: *fingerprint*, *iris*, *face*, *voice*, *vein*, *hybrid*, *no other | [fingerprint]{#uau_fing .selectable-content}, [ iris]{#uau_iris mechanism*\] ]{.refinement}to support user authentication. | .selectable-content}, [ face]{#uau_face .selectable-content}, [ > voice]{#uau_vox .selectable-content}, [ vein]{#uau_vein > .selectable-content}, [ hybrid]{#uau_hybr .selectable-content}, [no > other mechanism]{#_s_300 .selectable-content} \] ]{.refinement}to > support user authentication. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The [TSF](#abbr_TSF) must support a [Application Note: ]{.note-header}[The [TSF](#abbr_TSF) must support a Password Authentication Factor and may optionally implement a Password Authentication Factor and may optionally implement a [BAF](#abbr_BAF), in the form of a fingerprint, iris, face, voice and [BAF](#abbr_BAF), in the form of a fingerprint, iris, face, voice and (finger/palm) vein. A hybrid authentication factor is where a user has (finger/palm) vein. A hybrid authentication factor is where a user has to submit a combination of PIN/password and biometric sample where both to submit a combination of PIN/password and biometric sample where both have to pass and if either fails the user is not made aware of which have to pass and if either fails the user is not made aware of which factor failed.\ factor failed.\ \ \ If \"hybrid\" is selected, a biometric modality does not need to be If \"hybrid\" is selected, a biometric modality does not need to be selected, but should be selected if the biometric authentication can be selected, but should be selected if the biometric authentication can be used independent of the hybrid authentication, i.e. without having to used independent of the hybrid authentication, i.e. without having to enter a PIN/password.\ enter a PIN/password.\ \ \ If a biometric modality or \"hybrid\" is selected, then If a biometric modality or \"hybrid\" is selected, then [FIA\_BMG\_EXT.1](#FIA_BMG_EXT.1) and [FDP\_PBA\_EXT.1](#FDP_PBA_EXT.1) [FIA\_BMG\_EXT.1](#FIA_BMG_EXT.1) and [FDP\_PBA\_EXT.1](#FDP_PBA_EXT.1) must be included in the [ST](#abbr_ST).\ must be included in the [ST](#abbr_ST).\ \ \ If \"using a PIN as an additional factor\" or \"using a password as an If \"using a PIN as an additional factor\" or \"using a password as an additional factor\" is selected in additional factor\" is selected in [FDP\_PBA\_EXT.1.1](#FDP_PBA_EXT.1.1), then \"hybrid\" must be [FDP\_PBA\_EXT.1.1](#FDP_PBA_EXT.1.1), then \"hybrid\" must be selected.\ selected.\ \ \ The Password Authentication Factor is configured according to The Password Authentication Factor is configured according to [FIA\_PMG\_EXT.1](#FIA_PMG_EXT.1). ]{.note} [FIA\_PMG\_EXT.1](#FIA_PMG_EXT.1). ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_UAU.5.2 .reqid} ::: {#FIA_UAU.5.2 .reqid} [FIA\_UAU.5.2](#FIA_UAU.5.2){.abbr} [FIA\_UAU.5.2](#FIA_UAU.5.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall authenticate any user\'s claimed identity The [TSF](#abbr_TSF) shall authenticate any user\'s claimed identity according to the \[**assignment**: [rules describing how each according to the \[**assignment**: [rules describing how each authentication mechanism selected in [FIA\_UAU.5.1](#FIA_UAU.5.1) authentication mechanism selected in [FIA\_UAU.5.1](#FIA_UAU.5.1) provides authentication]{.assignable-content}\]. provides authentication]{.assignable-content}\]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[Rules regarding how the [Application Note: ]{.note-header}[Rules regarding how the authentication factors interact in terms of unsuccessful authentication authentication factors interact in terms of unsuccessful authentication are covered in [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1).]{.note} are covered in [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1).]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_UAU.5](#FIA_UAU.5):\ | ::: {.component-activity-header} > [FIA\_UAU.5](#FIA_UAU.5) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure that the [TSS](#abbr_TSS) describes each The evaluator shall ensure that the [TSS](#abbr_TSS) describes each mechanism provided to support user authentication and the rules mechanism provided to support user authentication and the rules describing how the authentication mechanism(s) provide authentication.\ describing how the authentication mechanism(s) provide authentication.\ \ \ Specifically, for all authentication mechanisms specified in Specifically, for all authentication mechanisms specified in [FIA\_UAU.5.1](#FIA_UAU.5.1), the evaluator shall ensure that the [FIA\_UAU.5.1](#FIA_UAU.5.1), the evaluator shall ensure that the [TSS](#abbr_TSS) describes the rules as to how each authentication [TSS](#abbr_TSS) describes the rules as to how each authentication mechanism is used. Example rules are how the authentication mechanism mechanism is used. Example rules are how the authentication mechanism authenticates the user (i.e. how does the [TSF](#abbr_TSF) verify that authenticates the user (i.e. how does the [TSF](#abbr_TSF) verify that the correct password or biometric sample was entered), the result of a the correct password or biometric sample was entered), the result of a successful authentication (i.e. is the user input used to derive or successful authentication (i.e. is the user input used to derive or unlock a key) and which authentication mechanism can be used at which unlock a key) and which authentication mechanism can be used at which authentication factor interfaces (i.e. if there are times, for example, authentication factor interfaces (i.e. if there are times, for example, after a reboot, that only specific authentication mechanisms can be after a reboot, that only specific authentication mechanisms can be used). If multiple BAFs are supported per [FIA\_UAU.5.1](#FIA_UAU.5.1), | used). If multiple [BAFs](#abbr_BAF) are supported per the interaction between the BAFs must be described. For example, whether | [FIA\_UAU.5.1](#FIA_UAU.5.1), the interaction between the the multiple BAFs can be enabled at the same time.\ | [BAFs](#abbr_BAF) must be described. For example, whether the multiple \ | [BAFs](#abbr_BAF) can be enabled at the same time.\ \ \ > ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall verify that configuration guidance for each The evaluator shall verify that configuration guidance for each authentication mechanism is addressed in the AGD guidance.\ authentication mechanism is addressed in the AGD guidance.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: - **Test 1:** For each authentication mechanism selected in | ::: {.ea} [FIA\_UAU.5.1](#FIA_UAU.5.1), the evaluator shall enable that | []{.testlist-} mechanism and verify that it can be used to authenticate the user at < the specified authentication factor interfaces. < - **Test 2:** For each authentication mechanism rule, the evaluator < shall ensure that the authentication mechanism(s) behave < accordingly. < \ | - [Test 45[](#_t_66){.definition}]{#_t_66}: For each authentication > mechanism selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), the evaluator > shall enable that mechanism and verify that it can be used to > authenticate the user at the specified authentication factor > interfaces. > - [Test 46[](#_t_67){.definition}]{#_t_67}: For each authentication > mechanism rule, the evaluator shall ensure that the authentication > mechanism(s) behave accordingly. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FIA_UAU.6 .comp} ::: {#FIA_UAU.6 .comp} #### FIA\_UAU.6 Re-Authentication #### FIA\_UAU.6 Re-Authentication ::: {.element} ::: {.element} ::: {#FIA_UAU.6.1 .reqid} ::: {#FIA_UAU.6.1 .reqid} [FIA\_UAU.6.1](#FIA_UAU.6.1){.abbr} [FIA\_UAU.6.1](#FIA_UAU.6.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall re-authenticate the user [via the Password The [TSF](#abbr_TSF) shall re-authenticate the user [via the Password Authentication Factor]{.refinement} under the conditions [attempted Authentication Factor]{.refinement} under the conditions [attempted change to any supported authentication mechanisms]{.refinement}. change to any supported authentication mechanisms]{.refinement}. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The password authentication factor [Application Note: ]{.note-header}[The password authentication factor must be entered before either the password or biometric authentication must be entered before either the password or biometric authentication factor, if selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), can be factor, if selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), can be changed.]{.note} changed.]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_UAU.6.2 .reqid} ::: {#FIA_UAU.6.2 .reqid} [FIA\_UAU.6.2](#FIA_UAU.6.2){.abbr} [FIA\_UAU.6.2](#FIA_UAU.6.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall re-authenticate the user [via an The [TSF](#abbr_TSF) shall re-authenticate the user [via an authentication factor defined in authentication factor defined in [FIA\_UAU.5.1](#FIA_UAU.5.1)]{.refinement} under the conditions [FIA\_UAU.5.1](#FIA_UAU.5.1)]{.refinement} under the conditions [[TSF](#abbr_TSF)-initiated lock, user-initiated lock, \[**assignment**: [[TSF](#abbr_TSF)-initiated lock, user-initiated lock, \[**assignment**: [other conditions]{.assignable-content}\]]{.refinement}. [other conditions]{.assignable-content}\]]{.refinement}. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[Depending on the selections made in [Application Note: ]{.note-header}[Depending on the selections made in [FIA\_UAU.5.1](#FIA_UAU.5.1), either the password (at a minimum), [FIA\_UAU.5.1](#FIA_UAU.5.1), either the password (at a minimum), biometric authentication or hybrid authentication mechanisms can be used biometric authentication or hybrid authentication mechanisms can be used to unlock the device. [TSF](#abbr_TSF)- and user-initiated locking is to unlock the device. [TSF](#abbr_TSF)- and user-initiated locking is described in [FTA\_SSL\_EXT.1](#FTA_SSL_EXT.1).]{.note} described in [FTA\_SSL\_EXT.1](#FTA_SSL_EXT.1).]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_UAU.6](#FIA_UAU.6):\ | ::: {.component-activity-header} | [FIA\_UAU.6](#FIA_UAU.6) ::: {.activity} < ::: {.eacategory} < [TSS](#abbr_TSS) < ::: < < There are no [TSS](#abbr_TSS) evaluation activities for this element.\ < \ < \ < < ::: {.eacategory} < Guidance < ::: < < There are no guidance evaluation activities for this element.\ < \ < \ < < ::: {.eacategory} < Tests < ::: < < - **Test 1:** The evaluator shall configure the [TSF](#abbr_TSF) to < use the Password Authentication Factor according to the AGD < guidance. The evaluator shall change Password Authentication Factor < according to the AGD guidance and verify that the [TSF](#abbr_TSF) < requires the entry of the Password Authentication Factor before < allowing the factor to be changed. < - **Test 2:** \[conditional\] For each [BAF](#abbr_BAF) selected in < [FIA\_UAU.5.1](#FIA_UAU.5.1), the evaluator shall configure the < [TSF](#abbr_TSF) to use the [BAF](#abbr_BAF), which includes < configuring the Password Authentication Factor, according to the AGD < guidance. The evaluator shall change the [BAF](#abbr_BAF) according < to the AGD guidance and verify that the [TSF](#abbr_TSF) requires < the entry of the Password Authentication Factor before allowing the < [BAF](#abbr_BAF) to be changed. < - **Test 3:** \[conditional\] If \"hybrid\" is selected in < [FIA\_UAU.5.1](#FIA_UAU.5.1), the evaluator shall configure the < [TSF](#abbr_TSF) to use the [BAF](#abbr_BAF) and PIN or password, < which includes configuring the Password Authentication Factor, < according to the AGD guidance. The evaluator shall change the < [BAF](#abbr_BAF) and PIN according to the AGD guidance and verify < that the [TSF](#abbr_TSF) requires the entry of the Password < Authentication Factor before allowing the factor to be changed. < < \ < ::: ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this element.\ There are no [TSS](#abbr_TSS) evaluation activities for this element.\ \ \ > There are no [TSS](#abbr_TSS) evaluation activities for this element.\ \ \ > ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this element.\ There are no guidance evaluation activities for this element.\ \ \ > There are no guidance evaluation activities for this element.\ \ \ > ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: - **Test 1:** The evaluator shall configure the [TSF](#abbr_TSF) to | ::: {.ea} transition to the locked state after a time of inactivity | []{.testlist-} ([FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1)) according to the AGD guidance. < The evaluator shall wait until the [TSF](#abbr_TSF) locks and then < verify that the [TSF](#abbr_TSF) requires the entry of the Password < Authentication Factor before transitioning to the unlocked state. < - **Test 2:** \[conditional\] For each [BAF](#abbr_BAF) selected in < [FIA\_UAU.5.1](#FIA_UAU.5.1), the evaluator shall repeat Test 1 < verifying that the [TSF](#abbr_TSF) requires the entry of the < [BAF](#abbr_BAF) before transitioning to the unlocked state. < - **Test 3:** \[conditional\] If \"hybrid\" is selected in < [FIA\_UAU.5.1](#FIA_UAU.5.1), the evaluator shall repeat Test 1 < verifying that the [TSF](#abbr_TSF) requires the entry of the < [BAF](#abbr_BAF) and PIN/password before transitioning to the < unlocked state. < - **Test 4:** The evaluator shall configure user-initiated locking < according to the AGD guidance. The evaluator shall lock the < [TSF](#abbr_TSF) and then verify that the [TSF](#abbr_TSF) requires < the entry of the Password Authentication Factor before transitioning < to the unlocked state. < - **Test 5:** \[conditional\] For each [BAF](#abbr_BAF) selected in < [FIA\_UAU.5.1](#FIA_UAU.5.1), the evaluator shall repeat Test 4 < verifying that the [TSF](#abbr_TSF) requires the entry of the < [BAF](#abbr_BAF) before transitioning to the unlocked state. < - **Test 6:** \[conditional\] If \"hybrid\" is selected in < [FIA\_UAU.5.1](#FIA_UAU.5.1), the evaluator shall repeat Test 4 < verifying that the [TSF](#abbr_TSF) requires the entry of the < [BAF](#abbr_BAF) and PIN/password before transitioning to the < unlocked state. < \ | - [Test 47[](#_t_68){.definition}]{#_t_68}: The evaluator shall > configure the [TSF](#abbr_TSF) to use the Password Authentication > Factor according to the AGD guidance. The evaluator shall change > Password Authentication Factor according to the AGD guidance and > verify that the [TSF](#abbr_TSF) requires the entry of the Password > Authentication Factor before allowing the factor to be changed. > - [Test 48[](#_t_69){.definition}]{#_t_69}: \[conditional\] For each > [BAF](#abbr_BAF) selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), the > evaluator shall configure the [TSF](#abbr_TSF) to use the > [BAF](#abbr_BAF), which includes configuring the Password > Authentication Factor, according to the AGD guidance. The evaluator > shall change the [BAF](#abbr_BAF) according to the AGD guidance and > verify that the [TSF](#abbr_TSF) requires the entry of the Password > Authentication Factor before allowing the [BAF](#abbr_BAF) to be > changed. > - [Test 49[](#_t_70){.definition}]{#_t_70}: \[conditional\] If > \"hybrid\" is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), the > evaluator shall configure the [TSF](#abbr_TSF) to use the > [BAF](#abbr_BAF) and PIN or password, which includes configuring the > Password Authentication Factor, according to the AGD guidance. The > evaluator shall change the [BAF](#abbr_BAF) and PIN according to the > AGD guidance and verify that the [TSF](#abbr_TSF) requires the entry > of the Password Authentication Factor before allowing the factor to > be changed. > > []{.testlist-} > > - [Test 50[](#_t_71){.definition}]{#_t_71}: The evaluator shall > configure the [TSF](#abbr_TSF) to transition to the locked state > after a time of inactivity ([FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1)) > according to the AGD guidance. The evaluator shall wait until the > [TSF](#abbr_TSF) locks and then verify that the [TSF](#abbr_TSF) > requires the entry of the Password Authentication Factor before > transitioning to the unlocked state. > - [Test 51[](#_t_72){.definition}]{#_t_72}: \[conditional\] For each > [BAF](#abbr_BAF) selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), the > evaluator shall repeat Test 1 verifying that the [TSF](#abbr_TSF) > requires the entry of the [BAF](#abbr_BAF) before transitioning to > the unlocked state. > - [Test 52[](#_t_73){.definition}]{#_t_73}: \[conditional\] If > \"hybrid\" is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), the > evaluator shall repeat Test 1 verifying that the [TSF](#abbr_TSF) > requires the entry of the [BAF](#abbr_BAF) and PIN/password before > transitioning to the unlocked state. > - [Test 53[](#_t_74){.definition}]{#_t_74}: The evaluator shall > configure user-initiated locking according to the AGD guidance. The > evaluator shall lock the [TSF](#abbr_TSF) and then verify that the > [TSF](#abbr_TSF) requires the entry of the Password Authentication > Factor before transitioning to the unlocked state. > - [Test 54[](#_t_75){.definition}]{#_t_75}: \[conditional\] For each > [BAF](#abbr_BAF) selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), the > evaluator shall repeat Test 4 verifying that the [TSF](#abbr_TSF) > requires the entry of the [BAF](#abbr_BAF) before transitioning to > the unlocked state. > - [Test 55[](#_t_76){.definition}]{#_t_76}: \[conditional\] If > \"hybrid\" is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), the > evaluator shall repeat Test 4 verifying that the [TSF](#abbr_TSF) > requires the entry of the [BAF](#abbr_BAF) and PIN/password before > transitioning to the unlocked state. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FIA_UAU.7 .comp} ::: {#FIA_UAU.7 .comp} #### FIA\_UAU.7 Protected Authentication Feedback #### FIA\_UAU.7 Protected Authentication Feedback ::: {.element} ::: {.element} ::: {#FIA_UAU.7.1 .reqid} ::: {#FIA_UAU.7.1 .reqid} [FIA\_UAU.7.1](#FIA_UAU.7.1){.abbr} [FIA\_UAU.7.1](#FIA_UAU.7.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide only [obscured feedback to the The [TSF](#abbr_TSF) shall provide only [obscured feedback to the device's display]{.refinement} to the user while the authentication is device's display]{.refinement} to the user while the authentication is in progress. in progress. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[This applies to all authentication [Application Note: ]{.note-header}[This applies to all authentication methods specified in [FIA\_UAU.5.1](#FIA_UAU.5.1). The [TSF](#abbr_TSF) methods specified in [FIA\_UAU.5.1](#FIA_UAU.5.1). The [TSF](#abbr_TSF) may briefly (1 second or less) display each character or provide an may briefly (1 second or less) display each character or provide an option to allow the user to unmask the password; however, the password option to allow the user to unmask the password; however, the password must be obscured by default.\ must be obscured by default.\ \ \ If a [BAF](#abbr_BAF) is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), the If a [BAF](#abbr_BAF) is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), the [TSF](#abbr_TSF) must not display sensitive information regarding the [TSF](#abbr_TSF) must not display sensitive information regarding the biometric that could aid an adversary in identifying and/or spoofing the biometric that could aid an adversary in identifying and/or spoofing the respective biometric characteristics of a given human user. While it is respective biometric characteristics of a given human user. While it is true that biometric samples, by themselves, are not secret, the analysis true that biometric samples, by themselves, are not secret, the analysis performed by the respective biometric algorithms, as well as output data performed by the respective biometric algorithms, as well as output data from these biometric algorithms, is considered sensitive and must be from these biometric algorithms, is considered sensitive and must be kept secret. Where applicable, the [TSF](#abbr_TSF) must not reveal or kept secret. Where applicable, the [TSF](#abbr_TSF) must not reveal or make public the reason(s) for authentication failure. ]{.note} make public the reason(s) for authentication failure. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_UAU.7](#FIA_UAU.7):\ | ::: {.component-activity-header} > [FIA\_UAU.7](#FIA_UAU.7) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure that the [TSS](#abbr_TSS) describes the means The evaluator shall ensure that the [TSS](#abbr_TSS) describes the means of obscuring the authentication entry, for all authentication methods of obscuring the authentication entry, for all authentication methods specified in [FIA\_UAU.5.1](#FIA_UAU.5.1).\ specified in [FIA\_UAU.5.1](#FIA_UAU.5.1).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall verify that any configuration of this requirement is The evaluator shall verify that any configuration of this requirement is addressed in the AGD guidance and that the password is obscured by addressed in the AGD guidance and that the password is obscured by default.\ default.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: - **Test 1:** The evaluator shall enter passwords on the device, | ::: {.ea} including at least the Password Authentication Factor at lockscreen, | []{.testlist-} and verify that the password is not displayed on the device. < - **Test 2:** \[conditional\] For each [BAF](#abbr_BAF) selected in < [FIA\_UAU.5.1](#FIA_UAU.5.1), the evaluator shall authenticate by < producing a biometric sample at lockscreen. As the biometric < algorithms are performed, the evaluator shall verify that sensitive < images, audio, or other information identifying the user are kept < secret and are not revealed to the user. Additionally, the evaluator < shall produce a biometric sample that fails to authenticate and < verify that the reason(s) for authentication failure (user mismatch, < low sample quality, etc.) are not revealed to the user. It is < acceptable for the [BAF](#abbr_BAF) to state that it was unable to < physically read the biometric sample, for example, if the sensor is < unclean or the biometric sample was removed too quickly. However, < specifics regarding why the presented biometric sample failed < authentication shall not be revealed to the user. < \ | - [Test 56[](#_t_77){.definition}]{#_t_77}: The evaluator shall enter > passwords on the device, including at least the Password > Authentication Factor at lock screen, and verify that the password > is not displayed on the device. > - [Test 57[](#_t_78){.definition}]{#_t_78}: \[conditional\] For each > [BAF](#abbr_BAF) selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), the > evaluator shall authenticate by producing a biometric sample at lock > screen. As the biometric algorithms are performed, the evaluator > shall verify that sensitive images, audio, or other information > identifying the user are kept secret and are not revealed to the > user. Additionally, the evaluator shall produce a biometric sample > that fails to authenticate and verify that the reason(s) for > authentication failure (user mismatch, low sample quality, etc.) are > not revealed to the user. It is acceptable for the [BAF](#abbr_BAF) > to state that it was unable to physically read the biometric sample, > for example, if the sensor is unclean or the biometric sample was > removed too quickly. However, specifics regarding why the presented > biometric sample failed authentication shall not be revealed to the > user. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FIA_UAU_EXT.1 .comp} ::: {#FIA_UAU_EXT.1 .comp} #### FIA\_UAU\_EXT.1 Authentication for Cryptographic Operation #### FIA\_UAU\_EXT.1 Authentication for Cryptographic Operation ::: {.element} ::: {.element} ::: {#FIA_UAU_EXT.1.1 .reqid} ::: {#FIA_UAU_EXT.1.1 .reqid} [FIA\_UAU\_EXT.1.1](#FIA_UAU_EXT.1.1){.abbr} [FIA\_UAU\_EXT.1.1](#FIA_UAU_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall require the user to present the Password The [TSF](#abbr_TSF) shall require the user to present the Password Authentication Factor prior to decryption of protected data and Authentication Factor prior to decryption of protected data and encrypted DEKs, KEKs and \[**selection**: *long-term trusted channel key | encrypted [DEKs](#abbr_DEK), KEKs and \[**selection**: [long-term material*, *all software-based key storage*, *no other keys*\] at | trusted channel key material]{#_s_301 .selectable-content}, [all startup. | software-based key storage]{#_s_302 .selectable-content}, [no other > keys]{#_s_303 .selectable-content} \] at startup. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The intent of this requirement is to [Application Note: ]{.note-header}[The intent of this requirement is to prevent decryption of protected data before the user has authorized to prevent decryption of protected data before the user has authorized to the device using the Password Authentication Factor. The Password the device using the Password Authentication Factor. The Password Authentication Factor is also required in order derive the key used to Authentication Factor is also required in order derive the key used to decrypt sensitive data, which includes software-based secure key decrypt sensitive data, which includes software-based secure key storage. ]{.note} storage. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_UAU\_EXT.1](#FIA_UAU_EXT.1):\ | ::: {.component-activity-header} > [FIA\_UAU\_EXT.1](#FIA_UAU_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) section of the The evaluator shall verify that the [TSS](#abbr_TSS) section of the [ST](#abbr_ST) describes the process for decrypting protected data and [ST](#abbr_ST) describes the process for decrypting protected data and keys. The evaluator shall ensure that this process requires the user to keys. The evaluator shall ensure that this process requires the user to enter a Password Authentication Factor and, in accordance with enter a Password Authentication Factor and, in accordance with [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3), derives a [KEK](#abbr_KEK), which is [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3), derives a [KEK](#abbr_KEK), which is used to protect the software-based secure key storage and (optionally) used to protect the software-based secure key storage and (optionally) [DEK](#abbr_DEK)(s) for sensitive data, in accordance with [DEK](#abbr_DEK)(s) for sensitive data, in accordance with [FCS\_STG\_EXT.2](#FCS_STG_EXT.2).\ [FCS\_STG\_EXT.2](#FCS_STG_EXT.2).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The following tests may be performed in conjunction with The following tests may be performed in conjunction with [FDP\_DAR\_EXT.1](#FDP_DAR_EXT.1) and [FDP\_DAR\_EXT.1](#FDP_DAR_EXT.1) and [FDP\_DAR\_EXT.2](#FDP_DAR_EXT.2).\ [FDP\_DAR\_EXT.2](#FDP_DAR_EXT.2).\ \ \ **Evaluation Activity Note:** The following test require the developer **Evaluation Activity Note:** The following test require the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products.\ tools that are typically not found on consumer Mobile Device products.\ \ \ > []{.testlist-} - **Test 1:** The evaluator shall enable encryption of protected data | - [Test 58[](#_t_79){.definition}]{#_t_79}: The evaluator shall enable and require user authentication according to the AGD guidance. The | encryption of protected data and require user authentication evaluator shall write, or the developer shall provide access to, an | according to the AGD guidance. The evaluator shall write, or the application that includes a unique string treated as protected | developer shall provide access to, an application that includes a data.\ | unique string treated as protected data.\ \ \ The evaluator shall reboot the device, use a tool provided by The evaluator shall reboot the device, use a tool provided by developer to search for the unique string amongst the application | developer to search for the unique string within the application data, and verify that the unique string cannot be found. The data, and verify that the unique string cannot be found. The evaluator shall enter the Password Authentication Factor to access evaluator shall enter the Password Authentication Factor to access full device functionality, use a tool provided by the developer to full device functionality, use a tool provided by the developer to access the unique string amongst the application data, and verify | access the unique string within the application data, and verify that the unique string can be found. that the unique string can be found. - **Test 2:** \[conditional\] The evaluator shall require user | - [Test 59[](#_t_80){.definition}]{#_t_80}: \[conditional\] The authentication according to the AGD guidance. The evaluator shall | evaluator shall require user authentication according to the AGD store a key in the software-based secure key storage.\ | guidance. The evaluator shall store a key in the software-based > secure key storage.\ \ \ The evaluator shall lock the device, use a tool provided by The evaluator shall lock the device, use a tool provided by developer to access the key amongst the stored data, and verify that | developer to access the key within the stored data, and verify that the key cannot be retrieved or accessed. The evaluator shall enter the key cannot be retrieved or accessed. The evaluator shall enter the Password Authentication Factor to access full device the Password Authentication Factor to access full device functionality, use a tool provided by developer to access the key, functionality, use a tool provided by developer to access the key, and verify that the key can be retrieved or accessed. and verify that the key can be retrieved or accessed. - **Test 3:** \[conditional\] The evaluator shall enable encryption of | - [Test 60[](#_t_81){.definition}]{#_t_81}: \[conditional\] The sensitive data and require user authentication according to the AGD | evaluator shall enable encryption of sensitive data and require user guidance. The evaluator shall write, or the developer shall provide | authentication according to the AGD guidance. The evaluator shall access to, an application that includes a unique string treated as | write, or the developer shall provide access to, an application that sensitive data.\ | includes a unique string treated as sensitive data.\ \ \ The evaluator shall lock the device, use a tool provided by The evaluator shall lock the device, use a tool provided by developer to attempt to access the unique string amongst the | developer to attempt to access the unique string within the application data, and verify that the unique string cannot be found. application data, and verify that the unique string cannot be found. The evaluator shall enter the Password Authentication Factor to The evaluator shall enter the Password Authentication Factor to access full device functionality, use a tool provided by developer access full device functionality, use a tool provided by developer to access the unique string amongst the application data, and verify | to access the unique string within the application data, and verify that the unique string can be retrieved. that the unique string can be retrieved. < \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FIA_UAU_EXT.2 .comp} ::: {#FIA_UAU_EXT.2 .comp} #### FIA\_UAU\_EXT.2 Timing of Authentication #### FIA\_UAU\_EXT.2 Timing of Authentication ::: {.element} ::: {.element} ::: {#FIA_UAU_EXT.2.1 .reqid} ::: {#FIA_UAU_EXT.2.1 .reqid} [FIA\_UAU\_EXT.2.1](#FIA_UAU_EXT.2.1){.abbr} [FIA\_UAU\_EXT.2.1](#FIA_UAU_EXT.2.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall allow \[**selection**: *\[**assignment**: | The [TSF](#abbr_TSF) shall allow \[**selection**: [ \[**assignment**: [list of actions]{.assignable-content}\]*, *no actions*\] on behalf of | [list of actions]{.assignable-content}\]]{#_s_304 .selectable-content}, the user to be performed before the user is authenticated. | [ no actions]{#_s_305 .selectable-content} \] on behalf of the user to > be performed before the user is authenticated. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_UAU_EXT.2.2 .reqid} ::: {#FIA_UAU_EXT.2.2 .reqid} [FIA\_UAU\_EXT.2.2](#FIA_UAU_EXT.2.2){.abbr} [FIA\_UAU\_EXT.2.2](#FIA_UAU_EXT.2.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall require each user to be successfully The [TSF](#abbr_TSF) shall require each user to be successfully authenticated before allowing any other [TSF](#abbr_TSF)-mediated authenticated before allowing any other [TSF](#abbr_TSF)-mediated actions on behalf of that user. actions on behalf of that user. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The security relevant actions allowed [Application Note: ]{.note-header}[The security relevant actions allowed by unauthorized users in locked state must be listed. At a minimum the by unauthorized users in locked state must be listed. At a minimum the actions that correspond to the functions available to the user in actions that correspond to the functions available to the user in [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) and are allowed by unauthorized users [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) and are allowed by unauthorized users in locked state should be listed. For example, if the user can in locked state should be listed. For example, if the user can enable/disable the camera per function | enable/disable the camera per function [5](#mf-audioVisual) of [[5]{.counter}](#audioVisual){.audioVisual-ref} of < [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) and unauthorized users can take a [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) and unauthorized users can take a picture when the device is in locked state, this action must be listed. picture when the device is in locked state, this action must be listed. ]{.note} ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_UAU\_EXT.2](#FIA_UAU_EXT.2):\ | ::: {.component-activity-header} > [FIA\_UAU\_EXT.2](#FIA_UAU_EXT.2) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) describes the The evaluator shall verify that the [TSS](#abbr_TSS) describes the actions allowed by unauthorized users in the locked state.\ actions allowed by unauthorized users in the locked state.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluator shall attempt to perform some actions not listed in the The evaluator shall attempt to perform some actions not listed in the selection while the device is in the locked state and verify that those selection while the device is in the locked state and verify that those actions do not succeed.\ | actions do not succeed. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FIA_X509_EXT.1 .comp} ::: {#FIA_X509_EXT.1 .comp} #### FIA\_X509\_EXT.1 X.509 Validation of Certificates #### FIA\_X509\_EXT.1 X.509 Validation of Certificates ::: {.element} ::: {.element} ::: {#FIA_X509_EXT.1.1 .reqid} ::: {#FIA_X509_EXT.1.1 .reqid} [FIA\_X509\_EXT.1.1](#FIA_X509_EXT.1.1){.abbr} [FIA\_X509\_EXT.1.1](#FIA_X509_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall validate certificates in accordance with the The [TSF](#abbr_TSF) shall validate certificates in accordance with the following rules: following rules: - RFC 5280 certificate validation and certificate path validation. - RFC 5280 certificate validation and certificate path validation. - The certificate path must terminate with a certificate in the Trust - The certificate path must terminate with a certificate in the Trust Anchor Database. Anchor Database. - The [TSF](#abbr_TSF) shall validate a certificate path by ensuring - The [TSF](#abbr_TSF) shall validate a certificate path by ensuring the presence of the basicConstraints extension, that the the presence of the basicConstraints extension, that the [CA](#abbr_CA) flag is set to TRUE for all [CA](#abbr_CA) [CA](#abbr_CA) flag is set to TRUE for all [CA](#abbr_CA) certificates, and that any path constraints are met. certificates, and that any path constraints are met. - The [TSF](#abbr_TSF) shall validate that any [CA](#abbr_CA) - The [TSF](#abbr_TSF) shall validate that any [CA](#abbr_CA) certificate includes caSigning purpose in the key usage field certificate includes caSigning purpose in the key usage field - The [TSF](#abbr_TSF) shall validate the revocation status of the - The [TSF](#abbr_TSF) shall validate the revocation status of the certificate using \[**selection**: *[OCSP](#abbr_OCSP) as specified | certificate using \[**selection**: [[OCSP](#abbr_OCSP) as specified in RFC 6960*, *[CRL](#abbr_CRL) as specified in RFC 5759*, *an | in RFC 6960]{#_s_306 .selectable-content}, [[CRL](#abbr_CRL) as > specified in RFC 5759]{#_s_307 .selectable-content}, [an [OCSP](#abbr_OCSP) [TLS](#abbr_TLS) Status Request Extension [OCSP](#abbr_OCSP) [TLS](#abbr_TLS) Status Request Extension ([OCSP](#abbr_OCSP) stapling) as specified in RFC 6066*, | ([OCSP](#abbr_OCSP) stapling) as specified in RFC 6066]{#_s_308 *[OCSP](#abbr_OCSP) [TLS](#abbr_TLS) Multi-Certificate Status | .selectable-content}, [[OCSP](#abbr_OCSP) [TLS](#abbr_TLS) Request Extension (i.e., [OCSP](#abbr_OCSP) Multi-Stapling) as | Multi-Certificate Status Request Extension (i.e., [OCSP](#abbr_OCSP) specified in RFC 6961*\]. | Multi-Stapling) as specified in RFC 6961]{#_s_309 > .selectable-content} \]. - The [TSF](#abbr_TSF) shall validate the extendedKeyUsage field - The [TSF](#abbr_TSF) shall validate the extendedKeyUsage field according to the following rules: according to the following rules: - Certificates used for trusted updates and executable code - Certificates used for trusted updates and executable code integrity verification shall have the Code Signing Purpose integrity verification shall have the Code Signing Purpose (id-kp 3 with [OID](#abbr_OID) 1.3.6.1.5.5.7.3.3) in the (id-kp 3 with [OID](#abbr_OID) 1.3.6.1.5.5.7.3.3) in the extendedKeyUsage field. extendedKeyUsage field. - Server certificates presented for [TLS](#abbr_TLS) shall have - Server certificates presented for [TLS](#abbr_TLS) shall have the Server Authentication purpose (id-kp 1 with [OID](#abbr_OID) the Server Authentication purpose (id-kp 1 with [OID](#abbr_OID) 1.3.6.1.5.5.7.3.1) in the extendedKeyUsage field. 1.3.6.1.5.5.7.3.1) in the extendedKeyUsage field. - Server certificates presented for [EST](#abbr_EST) shall have - Server certificates presented for [EST](#abbr_EST) shall have the [CMC](#abbr_CMC) Registration Authority ([RA](#abbr_RA)) the [CMC](#abbr_CMC) Registration Authority ([RA](#abbr_RA)) purpose (id-kp-cmcRA with [OID](#abbr_OID) 1.3.6.1.5.5.7.3.28) purpose (id-kp-cmcRA with [OID](#abbr_OID) 1.3.6.1.5.5.7.3.28) in the EKU field. \[conditional\] in the EKU field. \[conditional\] - Client certificates presented for [TLS](#abbr_TLS) shall have - Client certificates presented for [TLS](#abbr_TLS) shall have the Client Authentication purpose (id-kp 2 with [OID](#abbr_OID) the Client Authentication purpose (id-kp 2 with [OID](#abbr_OID) 1.3.6.1.5.5.7.3.2) in the EKU field. 1.3.6.1.5.5.7.3.2) in the EKU field. - [OCSP](#abbr_OCSP) certificates presented for [OCSP](#abbr_OCSP) - [OCSP](#abbr_OCSP) certificates presented for [OCSP](#abbr_OCSP) responses shall have the [OCSP](#abbr_OCSP) Signing purpose responses shall have the [OCSP](#abbr_OCSP) Signing purpose (id-kp 9 with [OID](#abbr_OID) 1.3.6.1.5.5.7.3.9) in the EKU (id-kp 9 with [OID](#abbr_OID) 1.3.6.1.5.5.7.3.9) in the EKU field. \[conditional\] field. \[conditional\] ::: {.appnote} ::: {.appnote} [Application Note: [Application Note: ]{.note-header}[[FIA\_X509\_EXT.1.1](#FIA_X509_EXT.1.1) lists the rules ]{.note-header}[[FIA\_X509\_EXT.1.1](#FIA_X509_EXT.1.1) lists the rules for validating certificates. The [ST](#abbr_ST) author must select for validating certificates. The [ST](#abbr_ST) author must select whether revocation status is verified using [OCSP](#abbr_OCSP) or CRLs. whether revocation status is verified using [OCSP](#abbr_OCSP) or CRLs. [OCSP](#abbr_OCSP) stapling and [OCSP](#abbr_OCSP) multi-stapling only [OCSP](#abbr_OCSP) stapling and [OCSP](#abbr_OCSP) multi-stapling only support [TLS](#abbr_TLS) server certificate validation. If other support [TLS](#abbr_TLS) server certificate validation. If other certificate types are validated, either [OCSP](#abbr_OCSP) or certificate types are validated, either [OCSP](#abbr_OCSP) or [CRL](#abbr_CRL) should be claimed. The WLAN Client EP to which a MDF | [CRL](#abbr_CRL) should be claimed. The WLAN Client [EP](#abbr_EP) to [TOE](#abbr_TOE) must also conform requires that certificates are used | which a MDF [TOE](#abbr_TOE) must also conform requires that for [EAP](#abbr_EAP)-TLS; this use requires that the extendedKeyUsage | certificates are used for [EAP](#abbr_EAP)-TLS; this use requires that rules are verified. Certificates may optionally be used for trusted | the extendedKeyUsage rules are verified. Certificates may optionally be updates of system software and applications | used for trusted updates of system software and applications ([FPT\_TUD\_EXT.2](#FPT_TUD_EXT.2)) and for integrity verification ([FPT\_TUD\_EXT.2](#FPT_TUD_EXT.2)) and for integrity verification (FPT\_TST\_EXT.2(1)) and, if implemented, must be validated to contain (FPT\_TST\_EXT.2(1)) and, if implemented, must be validated to contain the Code Signing purpose extendedKeyUsage.\ the Code Signing purpose extendedKeyUsage.\ \ \ While [FIA\_X509\_EXT.1.1](#FIA_X509_EXT.1.1) requires that the While [FIA\_X509\_EXT.1.1](#FIA_X509_EXT.1.1) requires that the [TOE](#abbr_TOE) perform certain checks on the certificate presented by [TOE](#abbr_TOE) perform certain checks on the certificate presented by a [TLS](#abbr_TLS) server, there are corresponding checks that the a [TLS](#abbr_TLS) server, there are corresponding checks that the authentication server will have to perform on the certificate presented authentication server will have to perform on the certificate presented by the client; namely that the extendedKeyUsage field of the client by the client; namely that the extendedKeyUsage field of the client certificate includes "Client Authentication" and that the key agreement certificate includes "Client Authentication" and that the key agreement bit (for the Diffie-Hellman ciphersuites) or the key encipherment bit bit (for the Diffie-Hellman ciphersuites) or the key encipherment bit (for [RSA](#abbr_RSA) ciphersuites) be set. Certificates obtained for (for [RSA](#abbr_RSA) ciphersuites) be set. Certificates obtained for use by the [TOE](#abbr_TOE) will have to conform to these requirements use by the [TOE](#abbr_TOE) will have to conform to these requirements in order to be used in the enterprise. This check is required to support in order to be used in the enterprise. This check is required to support [EAP](#abbr_EAP)-TLS for the WLAN Client EP.]{.note} | [EAP](#abbr_EAP)-TLS for the WLAN Client [EP](#abbr_EP).]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_X509_EXT.1.2 .reqid} ::: {#FIA_X509_EXT.1.2 .reqid} [FIA\_X509\_EXT.1.2](#FIA_X509_EXT.1.2){.abbr} [FIA\_X509\_EXT.1.2](#FIA_X509_EXT.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall only treat a certificate as a [CA](#abbr_CA) The [TSF](#abbr_TSF) shall only treat a certificate as a [CA](#abbr_CA) certificate if the basicConstraints extension is present and the certificate if the basicConstraints extension is present and the [CA](#abbr_CA) flag is set to TRUE. [CA](#abbr_CA) flag is set to TRUE. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[This requirement applies to [Application Note: ]{.note-header}[This requirement applies to certificates that are used and processed by the [TSF](#abbr_TSF) and certificates that are used and processed by the [TSF](#abbr_TSF) and restricts the certificates that may be added to the Trust Anchor restricts the certificates that may be added to the Trust Anchor Database.]{.note} Database.]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_X509\_EXT.1](#FIA_X509_EXT.1):\ | ::: {.component-activity-header} > [FIA\_X509\_EXT.1](#FIA_X509_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure the [TSS](#abbr_TSS) describes where the The evaluator shall ensure the [TSS](#abbr_TSS) describes where the check of validity of the certificates takes place. The evaluator ensures check of validity of the certificates takes place. The evaluator ensures the [TSS](#abbr_TSS) also provides a description of the certificate path the [TSS](#abbr_TSS) also provides a description of the certificate path validation algorithm.\ validation algorithm.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The tests described must be performed in conjunction with the other The tests described must be performed in conjunction with the other Certificate Services evaluation activities, including the use cases in Certificate Services evaluation activities, including the use cases in [FIA\_X509\_EXT.2.1](#FIA_X509_EXT.2.1) and [FIA\_X509\_EXT.2.1](#FIA_X509_EXT.2.1) and [FIA\_X509\_EXT.3](#FIA_X509_EXT.3). The tests for the extendedKeyUsage [FIA\_X509\_EXT.3](#FIA_X509_EXT.3). The tests for the extendedKeyUsage rules are performed in conjunction with the uses that require those rules are performed in conjunction with the uses that require those rules. The evaluator shall create a chain of at least four certificates: rules. The evaluator shall create a chain of at least four certificates: the node certificate to be tested, two Intermediate CAs, and the the node certificate to be tested, two Intermediate CAs, and the self-signed Root [CA](#abbr_CA). | self-signed Root [CA](#abbr_CA). []{.testlist-} - **Test 1:** The evaluator shall demonstrate that validating a | - [Test 61[](#_t_82){.definition}]{#_t_82}: The evaluator shall certificate without a valid certification path results in the | demonstrate that validating a certificate without a valid function failing, for each of the following reasons, in turn: | certification path results in the function failing, for each of the > following reasons, in turn: - by establishing a certificate path in which one of the issuing - by establishing a certificate path in which one of the issuing certificates is not a [CA](#abbr_CA) certificate, certificates is not a [CA](#abbr_CA) certificate, - by omitting the basicConstraints field in one of the issuing - by omitting the basicConstraints field in one of the issuing certificates, certificates, - by setting the basicConstraints field in an issuing certificate - by setting the basicConstraints field in an issuing certificate to have [CA](#abbr_CA)=False, to have [CA](#abbr_CA)=False, - by omitting the [CA](#abbr_CA) signing bit of the key usage - by omitting the [CA](#abbr_CA) signing bit of the key usage field in an issuing certificate, and field in an issuing certificate, and - by setting the path length field of a valid [CA](#abbr_CA) field - by setting the path length field of a valid [CA](#abbr_CA) field to a value strictly less than the certificate path. to a value strictly less than the certificate path. The evaluator shall then establish a valid certificate path The evaluator shall then establish a valid certificate path consisting of valid [CA](#abbr_CA) certificates, and demonstrate consisting of valid [CA](#abbr_CA) certificates, and demonstrate that the function succeeds. The evaluator shall then remove trust in that the function succeeds. The evaluator shall then remove trust in one of the [CA](#abbr_CA) certificates, and show that the function one of the [CA](#abbr_CA) certificates, and show that the function fails. fails. - **Test 2:** The evaluator shall demonstrate that validating an | - [Test 62[](#_t_83){.definition}]{#_t_83}: The evaluator shall expired certificate results in the function failing. | demonstrate that validating an expired certificate results in the - **Test 3:** The evaluator shall test that the [TOE](#abbr_TOE) can | function failing. properly handle revoked certificates-conditional on whether | - [Test 63[](#_t_84){.definition}]{#_t_84}: The evaluator shall test [CRL](#abbr_CRL), [OCSP](#abbr_OCSP), OSCP stapling, or | that the [TOE](#abbr_TOE) can properly handle revoked [OCSP](#abbr_OCSP) multi-stapling is selected; if multiple methods | certificates-conditional on whether [CRL](#abbr_CRL), are selected, then the following tests shall be performed for each | [OCSP](#abbr_OCSP), OSCP stapling, or [OCSP](#abbr_OCSP) method:\ | multi-stapling is selected; if multiple methods are selected, then > the following tests shall be performed for each method:\ \ \ The evaluator shall test revocation of the node certificate.\ The evaluator shall test revocation of the node certificate.\ \ \ The evaluator shall also test revocation of the intermediate The evaluator shall also test revocation of the intermediate [CA](#abbr_CA) certificate (i.e. the intermediate [CA](#abbr_CA) [CA](#abbr_CA) certificate (i.e. the intermediate [CA](#abbr_CA) certificate should be revoked by the root [CA](#abbr_CA)). For the certificate should be revoked by the root [CA](#abbr_CA)). For the test of the WLAN use case, only pre-stored CRLs are used. If test of the WLAN use case, only pre-stored CRLs are used. If [OCSP](#abbr_OCSP) stapling per RFC 6066 is the only supported [OCSP](#abbr_OCSP) stapling per RFC 6066 is the only supported revocation method, this test is omitted.\ revocation method, this test is omitted.\ \ \ The evaluator shall ensure that a valid certificate is used, and The evaluator shall ensure that a valid certificate is used, and that the validation function succeeds. The evaluator then attempts that the validation function succeeds. The evaluator then attempts the test with a certificate that has been revoked (for each method the test with a certificate that has been revoked (for each method chosen in the selection) to ensure when the certificate is no longer chosen in the selection) to ensure when the certificate is no longer valid that the validation function fails.\ valid that the validation function fails.\ - **Test 4:** If any [OCSP](#abbr_OCSP) option is selected, the | - [Test 64[](#_t_85){.definition}]{#_t_85}: If any [OCSP](#abbr_OCSP) evaluator shall configure the [OCSP](#abbr_OCSP) server or use a | option is selected, the evaluator shall configure the man-in-the-middle tool to present a certificate that does not have | [OCSP](#abbr_OCSP) server or use a man-in-the-middle tool to present the [OCSP](#abbr_OCSP) signing purpose and verify that validation of | a certificate that does not have the [OCSP](#abbr_OCSP) signing the [OCSP](#abbr_OCSP) response fails. If [CRL](#abbr_CRL) is | purpose and verify that validation of the [OCSP](#abbr_OCSP) selected, the evaluator shall configure the [CA](#abbr_CA) to sign a | response fails. If [CRL](#abbr_CRL) is selected, the evaluator shall [CRL](#abbr_CRL) with a certificate that does not have the cRLsign | configure the [CA](#abbr_CA) to sign a [CRL](#abbr_CRL) with a key usage bit set, and verify that validation of the | certificate that does not have the cRLsign key usage bit set, and [CRL](#abbr_CRL) fails. | verify that validation of the [CRL](#abbr_CRL) fails. - **Test 5:** The evaluator shall modify any byte in the first eight | - [Test 65[](#_t_86){.definition}]{#_t_86}: The evaluator shall modify bytes of the certificate and demonstrate that the certificate fails | any byte in the first eight bytes of the certificate and demonstrate to validate (the certificate will fail to parse correctly). | that the certificate fails to validate (the certificate will fail to - **Test 6:** The evaluator shall modify any bit in the last byte of | parse correctly). the signature algorithm of the certificate and demonstrate that the | - [Test 66[](#_t_87){.definition}]{#_t_87}: The evaluator shall modify certificate fails to validate (the signature on the certificate will | any bit in the last byte of the signature algorithm of the not validate). | certificate and demonstrate that the certificate fails to validate - **Test 7:** The evaluator shall modify any byte in the public key of | (the signature on the certificate will not validate). the certificate and demonstrate that the certificate fails to | - [Test 67[](#_t_88){.definition}]{#_t_88}: The evaluator shall modify validate (the signature on the certificate will not validate). | any byte in the public key of the certificate and demonstrate that - **Test 8:** | the certificate fails to validate (the signature on the certificate - **Test 8.1:** (Conditional on support for EC certificates as | will not validate). indicated in FCS\_COP.1(3)). The evaluator shall establish a | - [Test 68[](#_t_89){.definition}]{#_t_89}: []{.testlist-} valid, trusted certificate chain consisting of an EC leaf | - [Test 68.1[](#_t_90){.definition}]{#_t_90}: (Conditional on certificate, an EC Intermediate [CA](#abbr_CA) certificate not | support for EC certificates as indicated in FCS\_COP.1(3)). The designated as a trust anchor, and an EC certificate designated | evaluator shall establish a valid, trusted certificate chain as a trusted anchor, where the elliptic curve parameters are | consisting of an EC leaf certificate, an EC Intermediate specified as a named curve. The evaluator shall confirm that the | [CA](#abbr_CA) certificate not designated as a trust anchor, and [TOE](#abbr_TOE) validates the certificate chain. | an EC certificate designated as a trusted anchor, where the - **Test 8.2:** (Conditional on support for EC certificates as | elliptic curve parameters are specified as a named curve. The indicated in FCS\_COP.1(3)). The evaluator shall replace the | evaluator shall confirm that the [TOE](#abbr_TOE) validates the intermediate certificate in the certificate chain for Test 8a | certificate chain. with a modified certificate, where the modified intermediate | - [Test 68.2[](#_t_91){.definition}]{#_t_91}: (Conditional on [CA](#abbr_CA) has a public key information field where the EC | support for EC certificates as indicated in FCS\_COP.1(3)). The parameters uses an explicit format version of the Elliptic Curve | evaluator shall replace the intermediate certificate in the parameters in the public key information field of the | certificate chain for Test 8a with a modified certificate, where intermediate [CA](#abbr_CA) certificate from Test 8a, and the | the modified intermediate [CA](#abbr_CA) has a public key modified Intermediate [CA](#abbr_CA) certificate is signed by | information field where the EC parameters uses an explicit the trusted EC root [CA](#abbr_CA), but having no other changes. | format version of the Elliptic Curve parameters in the public The evaluator shall confirm the [TOE](#abbr_TOE) treats the | key information field of the intermediate [CA](#abbr_CA) certificate as invalid. | certificate from Test 8a, and the modified Intermediate | [CA](#abbr_CA) certificate is signed by the trusted EC root \ | [CA](#abbr_CA), but having no other changes. The evaluator shall > confirm the [TOE](#abbr_TOE) treats the certificate as invalid. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FIA_X509_EXT.2 .comp} ::: {#FIA_X509_EXT.2 .comp} #### FIA\_X509\_EXT.2 X.509 Certificate Authentication #### FIA\_X509\_EXT.2 X.509 Certificate Authentication ::: {.element} ::: {.element} ::: {#FIA_X509_EXT.2.1 .reqid} ::: {#FIA_X509_EXT.2.1 .reqid} [FIA\_X509\_EXT.2.1](#FIA_X509_EXT.2.1){.abbr} [FIA\_X509\_EXT.2.1](#FIA_X509_EXT.2.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall use X.509v3 certificates as defined by RFC The [TSF](#abbr_TSF) shall use X.509v3 certificates as defined by RFC 5280 to support authentication for mutually authenticated 5280 to support authentication for mutually authenticated [TLS](#abbr_TLS) as defined in the Package for Transport Layer Security, [TLS](#abbr_TLS) as defined in the Package for Transport Layer Security, [HTTPS](#abbr_HTTPS) \[**selection**: *[IPsec](#abbr_IPsec) in | [HTTPS](#abbr_HTTPS) \[**selection**: [[IPsec](#abbr_IPsec) in accordance with the [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) accordance with the [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client*, *mutually authenticated [DTLS](#abbr_DTLS) as defined in the | Client]{#_s_310 .selectable-content}, [mutually authenticated Package for Transport Layer Security*\], and \[**selection**: *code | [DTLS](#abbr_DTLS) as defined in the Package for Transport Layer signing for system software updates*, *code signing for mobile | Security]{#x509_dtls .selectable-content} \], and \[**selection**: [code applications*, *code signing for integrity verification*, | signing for system software updates]{#x509_sys .selectable-content}, *\[**assignment**: [other uses]{.assignable-content}\]*, *no additional | [code signing for mobile applications]{#x509_apps .selectable-content}, uses*\]. | [code signing for integrity verification]{#x509_sign > .selectable-content}, [\[**assignment**: [other > uses]{.assignable-content}\]]{#_s_315 .selectable-content}, [no > additional uses]{#_s_316 .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The [ST](#abbr_ST) author's first [Application Note: ]{.note-header}[The [ST](#abbr_ST) author's first selection must match the selection of selection must match the selection of [FDP\_UPC\_EXT.1.1/APPS](#FDP_UPC_EXT.1.1/APPS) and [FDP\_UPC\_EXT.1.1/APPS](#FDP_UPC_EXT.1.1/APPS) and [FTP\_ITC\_EXT.1.1](#FTP_ITC_EXT.1.1).\ [FTP\_ITC\_EXT.1.1](#FTP_ITC_EXT.1.1).\ \ \ Certificates may optionally be used for trusted updates of system Certificates may optionally be used for trusted updates of system software ([FPT\_TUD\_EXT.2.3](#FPT_TUD_EXT.2.3)) and mobile applications software ([FPT\_TUD\_EXT.2.3](#FPT_TUD_EXT.2.3)) and mobile applications ([FPT\_TUD\_EXT.5.1](#FPT_TUD_EXT.5.1)) and for integrity verification ([FPT\_TUD\_EXT.5.1](#FPT_TUD_EXT.5.1)) and for integrity verification ([FPT\_TST\_EXT.2/PREKERNEL](#FPT_TST_EXT.2/PREKERNEL)). If \"code ([FPT\_TST\_EXT.2/PREKERNEL](#FPT_TST_EXT.2/PREKERNEL)). If \"code signing for system software updates\" or \"code signing for mobile signing for system software updates\" or \"code signing for mobile applications\" is selected [FPT\_TUD\_EXT.4.1](#FPT_TUD_EXT.4.1) must be applications\" is selected [FPT\_TUD\_EXT.4.1](#FPT_TUD_EXT.4.1) must be included in the [ST](#abbr_ST).\ included in the [ST](#abbr_ST).\ \ \ If [FPT\_TUD\_EXT.5.1](#FPT_TUD_EXT.5.1) is included in the If [FPT\_TUD\_EXT.5.1](#FPT_TUD_EXT.5.1) is included in the [ST](#abbr_ST), \"code signing for mobile applications\" must be [ST](#abbr_ST), \"code signing for mobile applications\" must be included in the selection. ]{.note} included in the selection. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_X509_EXT.2.2 .reqid} ::: {#FIA_X509_EXT.2.2 .reqid} [FIA\_X509\_EXT.2.2](#FIA_X509_EXT.2.2){.abbr} [FIA\_X509\_EXT.2.2](#FIA_X509_EXT.2.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} When the [TSF](#abbr_TSF) cannot establish a connection to determine the When the [TSF](#abbr_TSF) cannot establish a connection to determine the revocation status of a certificate, the [TSF](#abbr_TSF) shall revocation status of a certificate, the [TSF](#abbr_TSF) shall \[**selection**: *allow the administrator to choose whether to accept | \[**selection**: [allow the administrator to choose whether to accept the certificate in these cases*, *allow the user to choose whether to | the certificate in these cases]{#_s_317 .selectable-content}, [allow the accept the certificate in these cases*, *accept the certificate*, *not | user to choose whether to accept the certificate in these cases]{#_s_318 accept the certificate*\]. | .selectable-content}, [accept the certificate]{#_s_319 > .selectable-content}, [not accept the certificate]{#_s_320 > .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The [TOE](#abbr_TOE) must not accept [Application Note: ]{.note-header}[ The [TOE](#abbr_TOE) must not accept the certificate if it fails any of the other validation rules in the certificate if it fails any of the other validation rules in [FIA\_X509\_EXT.1](#FIA_X509_EXT.1). However, often a connection must be [FIA\_X509\_EXT.1](#FIA_X509_EXT.1). However, often a connection must be established to perform a verification of the revocation status of a established to perform a verification of the revocation status of a certificate - either to download a [CRL](#abbr_CRL) or to perform certificate - either to download a [CRL](#abbr_CRL) or to perform [OCSP](#abbr_OCSP). The selection is used to describe the behavior in [OCSP](#abbr_OCSP). The selection is used to describe the behavior in the event that such a connection cannot be established (for example, due the event that such a connection cannot be established (for example, due to a network error). If the [TOE](#abbr_TOE) has determined the to a network error). If the [TOE](#abbr_TOE) has determined the certificate is valid according to all other rules in certificate is valid according to all other rules in [FIA\_X509\_EXT.1](#FIA_X509_EXT.1), the behavior indicated in the [FIA\_X509\_EXT.1](#FIA_X509_EXT.1), the behavior indicated in the selection must determine the validity. If the administrator-configured selection must determine the validity. If the administrator-configured or user-configured option is selected, the [ST](#abbr_ST) author must or user-configured option is selected, the [ST](#abbr_ST) author must also select function [[30]{.counter}](#certValidity){.certValidity-ref} | also select function [30](#mf-certValidity) in in [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1).\ | [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1).\ \ \ The [TOE](#abbr_TOE) may behave differently depending on the trusted The [TOE](#abbr_TOE) may behave differently depending on the trusted channel; for example, in the case of WLAN where connections are unlikely channel; for example, in the case of WLAN where connections are unlikely to be established, the [TOE](#abbr_TOE) may accept the certificate even to be established, the [TOE](#abbr_TOE) may accept the certificate even though certificates are not accepted for other channels. The though certificates are not accepted for other channels. The [ST](#abbr_ST) author should select all applicable behaviors. ]{.note} [ST](#abbr_ST) author should select all applicable behaviors. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_X509\_EXT.2](#FIA_X509_EXT.2):\ | ::: {.component-activity-header} > [FIA\_X509\_EXT.2](#FIA_X509_EXT.2) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall check the [TSS](#abbr_TSS) to ensure that it The evaluator shall check the [TSS](#abbr_TSS) to ensure that it describes how the [TOE](#abbr_TOE) chooses which certificates to use, describes how the [TOE](#abbr_TOE) chooses which certificates to use, and any necessary instructions in the administrative guidance for and any necessary instructions in the administrative guidance for configuring the operating environment so that the [TOE](#abbr_TOE) can configuring the operating environment so that the [TOE](#abbr_TOE) can use the certificates.\ use the certificates.\ \ \ The evaluator shall examine the [TSS](#abbr_TSS) to confirm that it The evaluator shall examine the [TSS](#abbr_TSS) to confirm that it describes the behavior of the [TOE](#abbr_TOE) when a connection cannot describes the behavior of the [TOE](#abbr_TOE) when a connection cannot be established during the validity check of a certificate used in be established during the validity check of a certificate used in establishing a trusted channel. The evaluator shall verify that any establishing a trusted channel. The evaluator shall verify that any distinctions between trusted channels are described.\ distinctions between trusted channels are described.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} If the requirement that the administrator is able to specify the default If the requirement that the administrator is able to specify the default action, then the evaluator shall ensure that the operational guidance action, then the evaluator shall ensure that the operational guidance contains instructions on how this configuration action is performed.\ contains instructions on how this configuration action is performed.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluator shall perform the following test for each trusted The evaluator shall perform the following test for each trusted channel:\ channel:\ \ \ > []{.testlist-} - **Test 1:** The evaluator shall demonstrate that using a valid | - [Test 69[](#_t_92){.definition}]{#_t_92}: The evaluator shall certificate that requires certificate validation checking to be | demonstrate that using a valid certificate that requires certificate performed in at least some part by communicating with a non-TOE IT | validation checking to be performed in at least some part by entity. The evaluator shall then manipulate the environment so that | communicating with a non-TOE IT entity. The evaluator shall then the [TOE](#abbr_TOE) is unable to verify the validity of the | manipulate the environment so that the [TOE](#abbr_TOE) is unable to certificate, and observe that the action selected in | verify the validity of the certificate, and observe that the action [FIA\_X509\_EXT.2.2](#FIA_X509_EXT.2.2) is performed. If the | selected in [FIA\_X509\_EXT.2.2](#FIA_X509_EXT.2.2) is performed. If selected action is administrator-configurable, then the evaluator | the selected action is administrator-configurable, then the shall follow the operational guidance to determine that all | evaluator shall follow the operational guidance to determine that supported administrator-configurable options behave in their | all supported administrator-configurable options behave in their documented manner. documented manner. < \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FIA_X509_EXT.3 .comp} ::: {#FIA_X509_EXT.3 .comp} #### FIA\_X509\_EXT.3 Request Validation of Certificates #### FIA\_X509\_EXT.3 Request Validation of Certificates ::: {.element} ::: {.element} ::: {#FIA_X509_EXT.3.1 .reqid} ::: {#FIA_X509_EXT.3.1 .reqid} [FIA\_X509\_EXT.3.1](#FIA_X509_EXT.3.1){.abbr} [FIA\_X509\_EXT.3.1](#FIA_X509_EXT.3.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide a certificate validation service to The [TSF](#abbr_TSF) shall provide a certificate validation service to applications. applications. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_X509_EXT.3.2 .reqid} ::: {#FIA_X509_EXT.3.2 .reqid} [FIA\_X509\_EXT.3.2](#FIA_X509_EXT.3.2){.abbr} [FIA\_X509\_EXT.3.2](#FIA_X509_EXT.3.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall respond to the requesting application with The [TSF](#abbr_TSF) shall respond to the requesting application with the success or failure of the validation. the success or failure of the validation. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[In order to comply with all of the [Application Note: ]{.note-header}[In order to comply with all of the rules in [FIA\_X509\_EXT.1](#FIA_X509_EXT.1), multiple [API](#abbr_API) rules in [FIA\_X509\_EXT.1](#FIA_X509_EXT.1), multiple [API](#abbr_API) calls may be required; all of these calls should be clearly calls may be required; all of these calls should be clearly documented]{.note} documented]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_X509\_EXT.3](#FIA_X509_EXT.3):\ | ::: {.component-activity-header} > [FIA\_X509\_EXT.3](#FIA_X509_EXT.3) > ::: ::: {.activity} < The evaluator shall verify that the [API](#abbr_API) documentation The evaluator shall verify that the [API](#abbr_API) documentation provided according to [Section 5.2.2 Class ADV: provided according to [Section 5.2.2 Class ADV: Development](#adv){.dynref} includes the security function (certificate Development](#adv){.dynref} includes the security function (certificate validation) described in this requirement. This documentation shall be validation) described in this requirement. This documentation shall be clear as to which results indicate success and failure.\ clear as to which results indicate success and failure.\ \ \ ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluator shall write, or the developer shall provide access to, an The evaluator shall write, or the developer shall provide access to, an application that requests certificate validation by the application that requests certificate validation by the [TSF](#abbr_TSF). The evaluator shall verify that the results from the [TSF](#abbr_TSF). The evaluator shall verify that the results from the validation match the expected results according to the [API](#abbr_API) validation match the expected results according to the [API](#abbr_API) documentation. This application may be used to verify that import, documentation. This application may be used to verify that import, removal, modification, and validation are performed correctly according removal, modification, and validation are performed correctly according to the tests required by [FDP\_STG\_EXT.1](#FDP_STG_EXT.1), to the tests required by [FDP\_STG\_EXT.1](#FDP_STG_EXT.1), [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1), [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1), [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1), [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1), and [FIA\_X509\_EXT.1](#FIA_X509_EXT.1).\ | and [FIA\_X509\_EXT.1](#FIA_X509_EXT.1). ::: ::: ::: ::: ::: ::: ::: ::: ### 5.1.6 Class: Security Management (FMT) {#fmt .indexable data-level="3"} ### 5.1.6 Class: Security Management (FMT) {#fmt .indexable data-level="3"} Both the user and the administrator may manage the [TOE](#abbr_TOE). Both the user and the administrator may manage the [TOE](#abbr_TOE). This administrator is likely to be acting remotely and could be the This administrator is likely to be acting remotely and could be the Mobile Device Management ([MDM](#abbr_MDM)) Administrator acting through Mobile Device Management ([MDM](#abbr_MDM)) Administrator acting through an [MDM](#abbr_MDM) Agent.\ an [MDM](#abbr_MDM) Agent.\ \ \ The Administrator is responsible for management activities, including The Administrator is responsible for management activities, including setting the policy that is applied by the enterprise on the Mobile setting the policy that is applied by the enterprise on the Mobile Device. These management functions are likely to be a different set than Device. These management functions are likely to be a different set than those management functions provided to the user. Management functions those management functions provided to the user. Management functions that are provided to the user and not the administrator are listed in that are provided to the user and not the administrator are listed in [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1). Management functions for which [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1). Management functions for which the administrator may adopt a policy that restricts the user from the administrator may adopt a policy that restricts the user from performing that function are listed in performing that function are listed in [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2).\ [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2).\ \ \ [Table [7]{.counter}](#fmt_smf){.fmt_smf-ref} compares the management [Table [7]{.counter}](#fmt_smf){.fmt_smf-ref} compares the management functions required by this Protection Profile in the following three functions required by this Protection Profile in the following three requirements ([FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1), requirements ([FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1), [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2), and [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2), and [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1)). [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1)). ::: {#FMT_MOF_EXT.1 .comp} ::: {#FMT_MOF_EXT.1 .comp} #### FMT\_MOF\_EXT.1 Management of Security Functions Behavior #### FMT\_MOF\_EXT.1 Management of Security Functions Behavior ::: {.element} ::: {.element} ::: {#FMT_MOF_EXT.1.1 .reqid} ::: {#FMT_MOF_EXT.1.1 .reqid} [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1){.abbr} [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall restrict the ability to perform the functions The [TSF](#abbr_TSF) shall restrict the ability to perform the functions in column 3 of [Table [7]{.counter}](#fmt_smf){.fmt_smf-ref} to the in column 3 of [Table [7]{.counter}](#fmt_smf){.fmt_smf-ref} to the user. user. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The functions that have an \"M\" in [Application Note: ]{.note-header}[ The functions that have an \"M\" in the third column are mandatory for this component, thus are restricted the third column are mandatory for this component, thus are restricted to the user, meaning that the administrator cannot manage those to the user, meaning that the administrator cannot manage those functions. The functions that have an \"O\" in the third column are functions. The functions that have an \"O\" in the third column are optional and may be selected; and those functions with a \"-\" in the optional and may be selected; and those functions with a \"-\" in the third are not applicable and may not be selected. The [ST](#abbr_ST) third are not applicable and may not be selected. The [ST](#abbr_ST) author should select those security management functions that only the author should select those security management functions that only the user may perform (i.e. the ones the administrator may not perform).\ user may perform (i.e. the ones the administrator may not perform).\ \ \ The [ST](#abbr_ST) author may not select the same function in both The [ST](#abbr_ST) author may not select the same function in both [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1) and [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1) and [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2). A function cannot contain an [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2). A function cannot contain an \"M\" in both column 3 and column 5.\ \"M\" in both column 3 and column 5.\ \ \ The [ST](#abbr_ST) author may use a table in the [ST](#abbr_ST), The [ST](#abbr_ST) author may use a table in the [ST](#abbr_ST), indicating with clear demarcations (to be accompanied by an index) those indicating with clear demarcations (to be accompanied by an index) those functions that are restricted to the user (column 3). The [ST](#abbr_ST) functions that are restricted to the user (column 3). The [ST](#abbr_ST) author should iterate a row to indicate any variations in the selectable author should iterate a row to indicate any variations in the selectable sub-functions or assigned values with respect to the values in the sub-functions or assigned values with respect to the values in the columns.\ columns.\ \ \ For functions that are mandatory, any sub-functions not in a selection For functions that are mandatory, any sub-functions not in a selection are also mandatory and any assignments must contain at least one are also mandatory and any assignments must contain at least one assigned value. For non-selectable sub-functions in an optional assigned value. For non-selectable sub-functions in an optional function, all sub-functions outside a selection must be implemented in function, all sub-functions outside a selection must be implemented in order for the function to be listed. ]{.note} order for the function to be listed. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FMT_MOF_EXT.1.2 .reqid} ::: {#FMT_MOF_EXT.1.2 .reqid} [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2){.abbr} [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall restrict the ability to perform the functions The [TSF](#abbr_TSF) shall restrict the ability to perform the functions in column 5 of [Table [7]{.counter}](#fmt_smf){.fmt_smf-ref} to the in column 5 of [Table [7]{.counter}](#fmt_smf){.fmt_smf-ref} to the administrator when the device is enrolled and according to the administrator when the device is enrolled and according to the administrator-configured policy. administrator-configured policy. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ As long as the device is enrolled in [Application Note: ]{.note-header}[ As long as the device is enrolled in management, the administrator (of the enterprise) must be guaranteed management, the administrator (of the enterprise) must be guaranteed that minimum security functions of the enterprise policy are enforced. that minimum security functions of the enterprise policy are enforced. Further restrictive policies can be applied at any time by the user on Further restrictive policies can be applied at any time by the user on behalf of the user or other administrators.\ behalf of the user or other administrators.\ \ \ The functions that have an \"M\" in the fifth column are mandatory for The functions that have an \"M\" in the fifth column are mandatory for this component; the functions that have an \"O\" in the fifth column are this component; the functions that have an \"O\" in the fifth column are optional and may be selected; and those functions with a \"-\" in the optional and may be selected; and those functions with a \"-\" in the fifth are not applicable and may not be selected.\ fifth are not applicable and may not be selected.\ \ \ The [ST](#abbr_ST) author may not select the same function in both The [ST](#abbr_ST) author may not select the same function in both [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1) and [FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1) and [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2).\ [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2).\ \ \ The [ST](#abbr_ST) author should select those security management The [ST](#abbr_ST) author should select those security management functions that the administrator may restrict. The [ST](#abbr_ST) author functions that the administrator may restrict. The [ST](#abbr_ST) author may use a table in the [ST](#abbr_ST), indicating with clear may use a table in the [ST](#abbr_ST), indicating with clear demarcations (to be accompanied by an index) those functions that are demarcations (to be accompanied by an index) those functions that are and are not implemented with APIs for the administrator (as in column and are not implemented with APIs for the administrator (as in column 4). Additionally, the [ST](#abbr_ST) author should demarcate which 4). Additionally, the [ST](#abbr_ST) author should demarcate which functions the user is prevented from accessing or performing (as in functions the user is prevented from accessing or performing (as in column 5). The [ST](#abbr_ST) author should iterate a row to indicate column 5). The [ST](#abbr_ST) author should iterate a row to indicate any variations in the selectable sub-functions or assigned values with any variations in the selectable sub-functions or assigned values with respect to the values in the columns.\ respect to the values in the columns.\ \ \ For functions that are mandatory, any sub-functions not in a selection For functions that are mandatory, any sub-functions not in a selection are also mandatory and any assignments must contain at least one are also mandatory and any assignments must contain at least one assigned value. For non-selectable sub-functions in an optional assigned value. For non-selectable sub-functions in an optional function, all sub-functions outside the selection must be implemented in function, all sub-functions outside the selection must be implemented in order for the function to be listed. ]{.note} order for the function to be listed. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FMT\_MOF\_EXT.1](#FMT_MOF_EXT.1):\ | ::: {.component-activity-header} > [FMT\_MOF\_EXT.1](#FMT_MOF_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) describes those The evaluator shall verify that the [TSS](#abbr_TSS) describes those management functions that may only be performed by the user and confirm management functions that may only be performed by the user and confirm that the [TSS](#abbr_TSS) does not include an Administrator that the [TSS](#abbr_TSS) does not include an Administrator [API](#abbr_API) for any of these management functions. This activity [API](#abbr_API) for any of these management functions. This activity will be performed in conjunction with will be performed in conjunction with [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1).\ [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1).\ \ \ \ < < ::: {.eacategory} < Guidance < ::: < < There are no guidance evaluation activities for this component.\ < \ < \ < < ::: {.eacategory} < Tests < ::: < < There are no test evaluation activities for this component.\ < ::: < < ::: {.activity} < ::: {.eacategory} < [TSS](#abbr_TSS) < ::: < < The evaluator shall verify that the [TSS](#abbr_TSS) describes those The evaluator shall verify that the [TSS](#abbr_TSS) describes those management functions that may be performed by the Administrator, to management functions that may be performed by the Administrator, to include how the user is prevented from accessing, performing, or include how the user is prevented from accessing, performing, or relaxing the function (if applicable), and how applications/APIs are relaxing the function (if applicable), and how applications/APIs are prevented from modifying the Administrator configuration. The prevented from modifying the Administrator configuration. The [TSS](#abbr_TSS) also describes any functionality that is affected by [TSS](#abbr_TSS) also describes any functionality that is affected by administrator-configured policy and how. This activity will be performed administrator-configured policy and how. This activity will be performed in conjunction with [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1).\ in conjunction with [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ > There are no guidance evaluation activities for this component.\ \ \ > ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: - **Test 1:** The evaluator shall use the test environment to deploy | ::: {.ea} policies to Mobile Devices. | There are no test evaluation activities for this component. - **Test 2:** The evaluator shall create policies which collectively | []{.testlist-} include all management functions which are controlled by the | (enterprise) administrator and cannot be overridden/relaxed by the | - [Test 70[](#_t_106){.definition}]{#_t_106}: The evaluator shall use user as defined in [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2). The | the test environment to deploy policies to Mobile Devices. evaluator shall apply these policies to devices, attempt to | - [Test 71[](#_t_107){.definition}]{#_t_107}: The evaluator shall override/relax each setting both as the user (if a setting is | create policies which collectively include all management functions available) and as an application (if an [API](#abbr_API) is | which are controlled by the (enterprise) administrator and cannot be available), and ensure that the [TSF](#abbr_TSF) does not permit it. | overridden/relaxed by the user as defined in Note that the user may still apply a more restrictive policy than | [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2). The evaluator shall apply that of the administrator. | these policies to devices, attempt to override/relax each setting - **Test 3:** Additional testing of functions provided to the | both as the user (if a setting is available) and as an application administrator are performed in conjunction with the testing | (if an [API](#abbr_API) is available), and ensure that the activities for [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1). | [TSF](#abbr_TSF) does not permit it. Note that the user may still | apply a more restrictive policy than that of the administrator. \ | - [Test 72[](#_t_108){.definition}]{#_t_108}: Additional testing of > functions provided to the administrator are performed in conjunction > with the testing activities for > [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1). ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FMT_SMF_EXT.1 .comp} ::: {#FMT_SMF_EXT.1 .comp} #### FMT\_SMF\_EXT.1 Specification of Management Functions #### FMT\_SMF\_EXT.1 Specification of Management Functions ::: {.element} ::: {.element} ::: {#FMT_SMF_EXT.1.1 .reqid} ::: {#FMT_SMF_EXT.1.1 .reqid} [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1){.abbr} [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall be capable of performing the following The [TSF](#abbr_TSF) shall be capable of performing the following management functions:\ management functions:\ \ \ **[Table [7]{.counter}: Management Functions]{#fmt_smf .ctr **[Table [7]{.counter}: Management Functions]{#fmt_smf .ctr data-myid="fmt_smf" data-counter-type="ct-Table"}**\ data-myid="fmt_smf" data-counter-type="ct-Table"}**\ \ \ Status Markers:\ Status Markers:\ M - Mandatory\ M - Mandatory\ O - Optional/Objective\ O - Optional/Objective\ +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | \# | Managemen | Impl. | User Only | Admin | Admin | | \# | Managemen | Impl. | User Only | Admin | Admin | | | t | | | | Only | | | t | | | | Only | | | Function | | | | | | | Function | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 1 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 1 | configure | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [1]{.coun | ltipped} | ltipped} | ltipped} | ltipped} | | | | password | ltipped} | ltipped} | ltipped} | ltipped} | | | ter}.]{#p | M[Mandato | -[N/A]{.t | M[Mandato | M[Mandato | | | | policy: | M[Mandato | -[N/A]{.t | M[Mandato | M[Mandato | | | wd | ry]{.tool | ooltiptex | ry]{.tool | ry]{.tool | | | | | ry]{.tool | ooltiptex | ry]{.tool | ry]{.tool | | | .ctr | tiptext} | t} | tiptext} | tiptext} | | | | a. minim | tiptext} | t} | tiptext} | tiptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | um | ::: | ::: | ::: | ::: | | | ="pwd" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | configure | | | | | < | | password | | | | | < | | policy: | | | | | < | | | | | | | < | | a. minim | | | | | < | | um | | | | | < | | passw | | | | | | | passw | | | | | | | ord | | | | | | | ord | | | | | | | lengt | | | | | | | lengt | | | | | | | h | | | | | | | h | | | | | | | b. minim | | | | | | | b. minim | | | | | | | um | | | | | | | um | | | | | | | passw | | | | | | | passw | | | | | | | ord | | | | | | | ord | | | | | | | compl | | | | | | | compl | | | | | | | exity | | | | | | | exity | | | | | | | c. maxim | | | | | | | c. maxim | | | | | | | um | | | | | | | um | | | | | | | passw | | | | | | | passw | | | | | | | ord | | | | | | | ord | | | | | | | lifet | | | | | | | lifet | | | | | | | ime | | | | | | | ime | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 2 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 2 | configure | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [2]{.coun | ltipped} | ltipped} | ltipped} | ltipped} | | | | session | ltipped} | ltipped} | ltipped} | ltipped} | | | ter}.]{#s | M[Mandato | -[N/A]{.t | M[Mandato | M[Mandato | | | | locking | M[Mandato | -[N/A]{.t | M[Mandato | M[Mandato | | | creenlock | ry]{.tool | ooltiptex | ry]{.tool | ry]{.tool | | | | policy: | ry]{.tool | ooltiptex | ry]{.tool | ry]{.tool | | | .ctr | tiptext} | t} | tiptext} | tiptext} | | | | | tiptext} | t} | tiptext} | tiptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | a. scree | ::: | ::: | ::: | ::: | | | ="screenl | | | | | < | | ock" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | configure | | | | | < | | session | | | | | < | | locking | | | | | < | | policy: | | | | | < | | | | | | | < | | a. scree | | | | | < | | n-lock | | | | | | | n-lock | | | | | | | enabl | | | | | | | enabl | | | | | | | ed/disabl | | | | | | | ed/disabl | | | | | | | ed | | | | | | | ed | | | | | | | b. scree | | | | | | | b. scree | | | | | | | n | | | | | | | n | | | | | | | lock | | | | | | | lock | | | | | | | timeo | | | | | | | timeo | | | | | | | ut | | | | | | | ut | | | | | | | c. numbe | | | | | | | c. numbe | | | | | | | r | | | | | | | r | | | | | | | of | | | | | | | of | | | | | | | authe | | | | | | | authe | | | | | | | ntication | | | | | | | ntication | | | | | | | failu | | | | | | | failu | | | | | | | res | | | | | | | res | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 3 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 3 | enable/di | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [3]{.coun | ltipped} | ltipped} | ltipped} | ltipped} | | | | sable | ltipped} | ltipped} | ltipped} | ltipped} | | | ter}.]{#v | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | | the | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | pn | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | | [VPN](#ab | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | tiptext} | iptext} | iptext} | iptext} | | | | br_VPN) | tiptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | protectio | ::: | ::: | ::: | ::: | | | ="vpn" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable/di | | | | | < | | sable | | | | | < | | the | | | | | < | | [VPN](#ab | | | | | < | | br_VPN) | | | | | < | | protectio | | | | | < | | n: | | | | | | | n: | | | | | | | | | | | | | | | | | | | | | a. acros | | | | | | | a. acros | | | | | | | s | | | | | | | s | | | | | | | devic | | | | | | | devic | | | | | | | e | | | | | | | e | | | | | | | | | | | | | | | | | | | | | ::: {.ind | | | | | | | ::: {.ind | | | | | | | ent} | | | | | | | ent} | | | | | | | \[**selec | | | | | | | \[**selec | | | | | | | tion**: | | | | | | | tion**: | | | | | | | | | | | | | | | | | | | | | - *b. | | | | | | | | - [b. | | | | | | | on a | | | | | | | on a | | | | | | | per-a | | | | | | | per-a | | | | | | | pp | | | | | | | pp | | | | | | | basis | | | | | | | basis | | | | | | | *, | | | | | | | | ]{#_s_331 | | | | | | | - *c. | | | | | | | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [c. | | | | | | | on a | | | | | | | on a | | | | | | | per-g | | | | | | | per-g | | | | | | | roup | | | | | | | roup | | | | | | | of | | | | | | | of | | | | | | | appli | | | | | | | appli | | | | | | | cations | | | | | | | cations | | | | | | | proce | | | | | | | proce | | | | | | | sses | | | | | | | sses | | | | | | | basis | | | | | | | basis | | | | | | | *, | | | | | | | | ]{#_s_332 | | | | | | | - *d. | | | | | | | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [d. | | | | | | | no | | | | | | | no | | | | | | | other | | | | | | | other | | | | | | | metho | | | | | | | metho | | | | | | | d* | | | | | | | | d]{#_s_33 | | | | | > | | 3 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | | | | | | | | | | | | | | | | | \] | | | | | | | \] | | | | | | | ::: | | | | | | | ::: | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 4 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 4 | enable/di | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [4]{.coun | ltipped} | ltipped} | ltipped} | ltipped} | | | | sable | ltipped} | ltipped} | ltipped} | ltipped} | | | ter}.]{#r | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | | \[**assig | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | adios | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | | nment**: | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | tiptext} | iptext} | iptext} | iptext} | | | | [list of | tiptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | all | ::: | ::: | ::: | ::: | | | ="radios" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable/di | | | | | < | | sable | | | | | < | | \[**assig | | | | | < | | nment**: | | | | | < | | [list of | | | | | < | | all | | | | | < | | radios]{. | | | | | | | radios]{. | | | | | | | assignabl | | | | | | | assignabl | | | | | | | e-content | | | | | | | e-content | | | | | | | }\] | | | | | | | }\] | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 5 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 5 | enable/di | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [5]{.coun | ltipped} | ltipped} | ltipped} | ltipped} | | | | sable | ltipped} | ltipped} | ltipped} | ltipped} | | | ter}.]{#a | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | | \[**assig | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | udioVisua | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | | nment**: | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | l | tiptext} | iptext} | iptext} | iptext} | | | | [list of | tiptext} | iptext} | iptext} | iptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | audio or | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="audioVi | | | | | < | | sual" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable/di | | | | | < | | sable | | | | | < | | \[**assig | | | | | < | | nment**: | | | | | < | | [list of | | | | | < | | audio or | | | | | < | | visual | | | | | | | visual | | | | | | | collectio | | | | | | | collectio | | | | | | | n | | | | | | | n | | | | | | | devices]{ | | | | | | | devices]{ | | | | | | | .assignab | | | | | | | .assignab | | | | | | | le-conten | | | | | | | le-conten | | | | | | | t}\]: | | | | | | | t}\]: | | | | | | | | | | | | | | | | | | | | | a. acros | | | | | | | a. acros | | | | | | | s | | | | | | | s | | | | | | | devic | | | | | | | devic | | | | | | | e | | | | | | | e | | | | | | | | | | | | | | | | | | | | | ::: {.ind | | | | | | | ::: {.ind | | | | | | | ent} | | | | | | | ent} | | | | | | | \[**selec | | | | | | | \[**selec | | | | | | | tion**: | | | | | | | tion**: | | | | | | | | | | | | | | | | | | | | | - *b. | | | | | | | | - [b. | | | | | | | on a | | | | | | | on a | | | | | | | per-a | | | | | | | per-a | | | | | | | pp | | | | | | | pp | | | | | | | basis | | | | | | | basis | | | | | | | *, | | | | | | | | ]{#_s_334 | | | | | | | - *c. | | | | | | | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [c. | | | | | | | on a | | | | | | | on a | | | | | | | per-g | | | | | | | per-g | | | | | | | roup | | | | | | | roup | | | | | | | of | | | | | | | of | | | | | | | appli | | | | | | | appli | | | | | | | cations | | | | | | | cations | | | | | | | proce | | | | | | | proce | | | | | | | sses | | | | | | | sses | | | | | | | basis | | | | | | | basis | | | | | | | *, | | | | | | | | ]{#_s_335 | | | | | | | - *d. | | | | | | | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [d. | | | | | | | no | | | | | | | no | | | | | | | other | | | | | | | other | | | | | | | metho | | | | | | | metho | | | | | | | d* | | | | | | | | d]{#_s_33 | | | | | > | | 6 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | | | | | | | | | | | | | | | | | \] | | | | | | | \] | | | | | | | ::: | | | | | | | ::: | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 6 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 6 | transitio | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [6]{.coun | ltipped} | ltipped} | ltipped} | ltipped} | | | | n | ltipped} | ltipped} | ltipped} | ltipped} | | | ter}.]{#l | M[Mandato | -[N/A]{.t | M[Mandato | -[N/A]{.t | | | | to the | M[Mandato | -[N/A]{.t | M[Mandato | -[N/A]{.t | | | ockState | ry]{.tool | ooltiptex | ry]{.tool | ooltiptex | | | | locked | ry]{.tool | ooltiptex | ry]{.tool | ooltiptex | | | .ctr | tiptext} | t} | tiptext} | t} | | | | state | tiptext} | t} | tiptext} | t} | | | data-myid | ::: | ::: | ::: | ::: | | | | | ::: | ::: | ::: | ::: | | | ="lockSta | | | | | < | | te" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | transitio | | | | | < | | n | | | | | < | | to the | | | | | < | | locked | | | | | < | | state | | | | | < +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 7 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 7 | [TSF](#ab | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [7]{.coun | ltipped} | ltipped} | ltipped} | ltipped} | | | | br_TSF) | ltipped} | ltipped} | ltipped} | ltipped} | | | ter}.]{#w | M[Mandato | -[N/A]{.t | M[Mandato | -[N/A]{.t | | | | wipe of | M[Mandato | -[N/A]{.t | M[Mandato | -[N/A]{.t | | | ipe | ry]{.tool | ooltiptex | ry]{.tool | ooltiptex | | | | protected | ry]{.tool | ooltiptex | ry]{.tool | ooltiptex | | | .ctr | tiptext} | t} | tiptext} | t} | | | | data | tiptext} | t} | tiptext} | t} | | | data-myid | ::: | ::: | ::: | ::: | | | | | ::: | ::: | ::: | ::: | | | ="wipe" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | [TSF](#ab | | | | | < | | br_TSF) | | | | | < | | wipe of | | | | | < | | protected | | | | | < | | data | | | | | < +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 8 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 8 | configure | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [8]{.coun | ltipped} | ltipped} | ltipped} | ltipped} | | | | applicati | ltipped} | ltipped} | ltipped} | ltipped} | | | ter}.]{#a | M[Mandato | -[N/A]{.t | M[Mandato | M[Mandato | | | | on | M[Mandato | -[N/A]{.t | M[Mandato | M[Mandato | | | ppInstall | ry]{.tool | ooltiptex | ry]{.tool | ry]{.tool | | | | installat | ry]{.tool | ooltiptex | ry]{.tool | ry]{.tool | | | Rules | tiptext} | t} | tiptext} | tiptext} | | | | ion | tiptext} | t} | tiptext} | tiptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | policy by | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="appInst | | | | | < | | allRules" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | configure | | | | | < | | applicati | | | | | < | | on | | | | | < | | installat | | | | | < | | ion | | | | | < | | policy by | | | | | < | | | | | | | | | | | | | | | | ::: {.ind | | | | | | | ::: {.ind | | | | | | | ent} | | | | | | | ent} | | | | | | | \[**selec | | | | | | | \[**selec | | | | | | | tion**: | | | | | | | tion**: | | | | | | | | | | | | | | | | | | | | | - *a. | | | | | | | | - [a. | | | | | | | restr | | | | | | | restr | | | | | | | icting | | | | | | | icting | | | | | | | the | | | | | | | the | | | | | | | sourc | | | | | | | sourc | | | | | | | es | | | | | | | es | | | | | | | of | | | | | | | of | | | | | | | appli | | | | | | | appli | | | | | | | cations*, | | | | | | | | cations]{ | | | | | | | - *b. | | | | | | | | #_s_337 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [b. | | | | | | | speci | | | | | | | speci | | | | | | | fying | | | | | | | fying | | | | | | | a set | | | | | | | a set | | | | | | | of | | | | | | | of | | | | | | | allow | | | | | | | allow | | | | | | | ed | | | | | | | ed | | | | | | | appli | | | | | | | appli | | | | | | | cations | | | | | | | cations | | | | | | | based | | | | | | | based | | | | | | | on | | | | | | | on | | | | | | | \[**a | | | | | | | \[**a | | | | | | | ssignment | | | | | | | ssignment | | | | | | | **: | | | | | | | **: | | | | | | | [appl | | | | | | | [appl | | | | | | | ication | | | | | | | ication | | | | | | | chara | | | | | | | chara | | | | | | | cteristic | | | | | | | cteristic | | | | | | | s]{.assig | | | | | | | s]{.assig | | | | | | | nable-con | | | | | | | nable-con | | | | | | | tent}\] | | | | | | | tent}\] | | | | | | | (an | | | | | | | (an | | | | | | | appli | | | | | | | appli | | | | | | | cation | | | | | | | cation | | | | | | | allow | | | | | | | allow | | | | | | | list)*, | | | | | | | | list)]{#_ | | | | | | | - *c. | | | | | | | | s_338 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [c. | | | | | | | denyi | | | | | | | denyi | | | | | | | ng | | | | | | | ng | | | | | | | insta | | | | | | | insta | | | | | | | llation | | | | | | | llation | | | | | | | of | | | | | | | of | | | | | | | appli | | | | | | | appli | | | | | | | cations* | | | | | | | | cations]{ | | | | | > | | #_s_339 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | | | | | | | | | | | | | | | | | \] | | | | | | | \] | | | | | | | ::: | | | | | | | ::: | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 9 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 9 | import | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [9]{.coun | ltipped} | ltipped} | ltipped} | ltipped} | | | | keys/secr | ltipped} | ltipped} | ltipped} | ltipped} | | | ter}.]{#k | M[Mandato | O[Optiona | O[Optiona | -[N/A]{.t | | | | ets | M[Mandato | O[Optiona | O[Optiona | -[N/A]{.t | | | eyStorage | ry]{.tool | l]{.toolt | l]{.toolt | ooltiptex | | | | into the | ry]{.tool | l]{.toolt | l]{.toolt | ooltiptex | | | .ctr | tiptext} | iptext} | iptext} | t} | | | | secure | tiptext} | iptext} | iptext} | t} | | | data-myid | ::: | ::: | ::: | ::: | | | | key | ::: | ::: | ::: | ::: | | | ="keyStor | | | | | < | | age" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | import | | | | | < | | keys/secr | | | | | < | | ets | | | | | < | | into the | | | | | < | | secure | | | | | < | | key | | | | | < | | storage | | | | | | | storage | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 10 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 10 | destroy | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [10]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | imported | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | M[Mandato | O[Optiona | O[Optiona | -[N/A]{.t | | | | keys/secr | M[Mandato | O[Optiona | O[Optiona | -[N/A]{.t | | | keyWipe | ry]{.tool | l]{.toolt | l]{.toolt | ooltiptex | | | | ets | ry]{.tool | l]{.toolt | l]{.toolt | ooltiptex | | | .ctr | tiptext} | iptext} | iptext} | t} | | | | and | tiptext} | iptext} | iptext} | t} | | | data-myid | ::: | ::: | ::: | ::: | | | | \[**selec | ::: | ::: | ::: | ::: | | | ="keyWipe | | | | | < | | " | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | destroy | | | | | < | | imported | | | | | < | | keys/secr | | | | | < | | ets | | | | | < | | and | | | | | < | | \[**selec | | | | | < | | tion**: | | | | | | | tion**: | | | | | | | *no other | | | | | | | | [no other | | | | | | | keys/secr | | | | | | | keys/secr | | | | | | | ets*, | | | | | | | | ets]{#_s_ | | | | | | | *\[**assi | | | | | | | | 340 | | | | | > | | .selectab | | | | | > | | le-conten | | | | | > | | t}, | | | | | > | | [\[**assi | | | | | | | gnment**: | | | | | | | gnment**: | | | | | | | [list of | | | | | | | [list of | | | | | | | other | | | | | | | other | | | | | | | categorie | | | | | | | categorie | | | | | | | s | | | | | | | s | | | | | | | of | | | | | | | of | | | | | | | keys/secr | | | | | | | keys/secr | | | | | | | ets]{.ass | | | | | | | ets]{.ass | | | | | | | ignable-c | | | | | | | ignable-c | | | | | | | ontent}\] | | | | | | | ontent}\] | | | | | | | *\] | | | | | | | | ]{#_s_341 | | | | | | | in the | | | | | | | | .selectab | | | | | > | | le-conten | | | | | > | | t} | | | | | > | | \] in the | | | | | | | secure | | | | | | | secure | | | | | | | key | | | | | | | key | | | | | | | storage | | | | | | | storage | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 11 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 11 | import | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [11]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | X.509v3 | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | M[Mandato | -[N/A]{.t | M[Mandato | O[Optiona | | | | certifica | M[Mandato | -[N/A]{.t | M[Mandato | O[Optiona | | | certImpor | ry]{.tool | ooltiptex | ry]{.tool | l]{.toolt | | | | tes | ry]{.tool | ooltiptex | ry]{.tool | l]{.toolt | | | t | tiptext} | t} | tiptext} | iptext} | | | | into the | tiptext} | t} | tiptext} | iptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | Trust | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="certImp | | | | | < | | ort" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | import | | | | | < | | X.509v3 | | | | | < | | certifica | | | | | < | | tes | | | | | < | | into the | | | | | < | | Trust | | | | | < | | Anchor | | | | | | | Anchor | | | | | | | Database | | | | | | | Database | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 12 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 12 | remove | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [12]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | imported | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | M[Mandato | O[Optiona | O[Optiona | -[N/A]{.t | | | | X.509v3 | M[Mandato | O[Optiona | O[Optiona | -[N/A]{.t | | | certWipe | ry]{.tool | l]{.toolt | l]{.toolt | ooltiptex | | | | certifica | ry]{.tool | l]{.toolt | l]{.toolt | ooltiptex | | | .ctr | tiptext} | iptext} | iptext} | t} | | | | tes | tiptext} | iptext} | iptext} | t} | | | data-myid | ::: | ::: | ::: | ::: | | | | and | ::: | ::: | ::: | ::: | | | ="certWip | | | | | < | | e" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | remove | | | | | < | | imported | | | | | < | | X.509v3 | | | | | < | | certifica | | | | | < | | tes | | | | | < | | and | | | | | < | | \[**selec | | | | | | | \[**selec | | | | | | | tion**: | | | | | | | tion**: | | | | | | | *no other | | | | | | | | [no other | | | | | | | X.509v3 | | | | | | | X.509v3 | | | | | | | certifica | | | | | | | certifica | | | | | | | tes*, | | | | | | | | tes]{#_s_ | | | | | | | *\[**assi | | | | | | | | 342 | | | | | > | | .selectab | | | | | > | | le-conten | | | | | > | | t}, | | | | | > | | [\[**assi | | | | | | | gnment**: | | | | | | | gnment**: | | | | | | | [list of | | | | | | | [list of | | | | | | | other | | | | | | | other | | | | | | | categorie | | | | | | | categorie | | | | | | | s | | | | | | | s | | | | | | | of | | | | | | | of | | | | | | | X.509v3 | | | | | | | X.509v3 | | | | | | | certifica | | | | | | | certifica | | | | | | | tes]{.ass | | | | | | | tes]{.ass | | | | | | | ignable-c | | | | | | | ignable-c | | | | | | | ontent}\] | | | | | | | ontent}\] | | | | | | | *\] | | | | | | | | ]{#_s_343 | | | | | | | in the | | | | | | | | .selectab | | | | | > | | le-conten | | | | | > | | t} | | | | | > | | \] in the | | | | | | | Trust | | | | | | | Trust | | | | | | | Anchor | | | | | | | Anchor | | | | | | | Database | | | | | | | Database | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 13 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 13 | enroll | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [13]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | the | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | | [TOE](#ab | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | enroll | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | | br_TOE) | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | tiptext} | iptext} | iptext} | iptext} | | | | in | tiptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | managemen | ::: | ::: | ::: | ::: | | | ="enroll" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enroll | | | | | < | | the | | | | | < | | [TOE](#ab | | | | | < | | br_TOE) | | | | | < | | in | | | | | < | | managemen | | | | | < | | t | | | | | | | t | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 14 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 14 | remove | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [14]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | applicati | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | M[Mandato | -[N/A]{.t | M[Mandato | O[Optiona | | | | ons | M[Mandato | -[N/A]{.t | M[Mandato | O[Optiona | | | appRemove | ry]{.tool | ooltiptex | ry]{.tool | l]{.toolt | | | | | ry]{.tool | ooltiptex | ry]{.tool | l]{.toolt | | | .ctr | tiptext} | t} | tiptext} | iptext} | | | | | tiptext} | t} | tiptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | | ::: | ::: | ::: | ::: | | | ="appRemo | | | | | < | | ve" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | remove | | | | | < | | applicati | | | | | < | | ons | | | | | < +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 15 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 15 | update | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [15]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | system | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | M[Mandato | -[N/A]{.t | M[Mandato | O[Optiona | | | | software | M[Mandato | -[N/A]{.t | M[Mandato | O[Optiona | | | update | ry]{.tool | ooltiptex | ry]{.tool | l]{.toolt | | | | | ry]{.tool | ooltiptex | ry]{.tool | l]{.toolt | | | .ctr | tiptext} | t} | tiptext} | iptext} | | | | | tiptext} | t} | tiptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | | ::: | ::: | ::: | ::: | | | ="update" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | update | | | | | < | | system | | | | | < | | software | | | | | < +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 16 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 16 | install | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [16]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | applicati | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | M[Mandato | -[N/A]{.t | M[Mandato | O[Optiona | | | | ons | M[Mandato | -[N/A]{.t | M[Mandato | O[Optiona | | | appInstal | ry]{.tool | ooltiptex | ry]{.tool | l]{.toolt | | | | | ry]{.tool | ooltiptex | ry]{.tool | l]{.toolt | | | l | tiptext} | t} | tiptext} | iptext} | | | | | tiptext} | t} | tiptext} | iptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="appInst | | | | | < | | all" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | install | | | | | < | | applicati | | | | | < | | ons | | | | | < +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 17 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 17 | remove | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [17]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | Enterpris | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | M[Mandato | -[N/A]{.t | M[Mandato | -[N/A]{.t | | | | e | M[Mandato | -[N/A]{.t | M[Mandato | -[N/A]{.t | | | entAppRem | ry]{.tool | ooltiptex | ry]{.tool | ooltiptex | | | | applicati | ry]{.tool | ooltiptex | ry]{.tool | ooltiptex | | | ove | tiptext} | t} | tiptext} | t} | | | | ons | tiptext} | t} | tiptext} | t} | | | .ctr | ::: | ::: | ::: | ::: | | | | | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="entAppR | | | | | < | | emove" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | remove | | | | | < | | Enterpris | | | | | < | | e | | | | | < | | applicati | | | | | < | | ons | | | | | < +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 18 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 18 | enable/di | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [18]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | sable | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | | display | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | notificat | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | notificat | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | ions | tiptext} | iptext} | iptext} | iptext} | | | | ion | tiptext} | iptext} | iptext} | iptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | in the | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="notific | | | | | < | | ations" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable/di | | | | | < | | sable | | | | | < | | display | | | | | < | | notificat | | | | | < | | ion | | | | | < | | in the | | | | | < | | locked | | | | | | | locked | | | | | | | state of: | | | | | | | state of: | | | | | | | \[**selec | | | | | | | \[**selec | | | | | | | tion**: | | | | | | | tion**: | | | | | | | | | | | | | | | | | | | | | - *a. | | | | | | | | - [a. | | | | | | | email | | | | | | | email | | | | | | | notif | | | | | | | notif | | | | | | | ications* | | | | | | | | ications] | | | | | | | , | | | | | | | | {#_s_344 | | | | | | | - *b. | | | | | | | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [b. | | | | | | | calen | | | | | | | calen | | | | | | | dar | | | | | | | dar | | | | | | | appoi | | | | | | | appoi | | | | | | | ntments*, | | | | | | | | ntments]{ | | | | | | | - *c. | | | | | | | | #_s_345 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [c. | | | | | | | conta | | | | | | | conta | | | | | | | ct | | | | | | | ct | | | | | | | assoc | | | | | | | assoc | | | | | | | iated | | | | | | | iated | | | | | | | with | | | | | | | with | | | | | | | phone | | | | | | | phone | | | | | | | call | | | | | | | call | | | | | | | notif | | | | | | | notif | | | | | | | ication*, | | | | | | | | ication]{ | | | | | | | - *d. | | | | | | | | #_s_346 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [d. | | | | | | | text | | | | | | | text | | | | | | | messa | | | | | | | messa | | | | | | | ge | | | | | | | ge | | | | | | | notif | | | | | | | notif | | | | | | | ication*, | | | | | | | | ication]{ | | | | | | | - *e. | | | | | | | | #_s_347 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [e. | | | | | | | other | | | | | | | other | | | | | | | appli | | | | | | | appli | | | | | | | cation-ba | | | | | | | cation-ba | | | | | | | sed | | | | | | | sed | | | | | | | notif | | | | | | | notif | | | | | | | ications* | | | | | | | | ications] | | | | | | | , | | | | | | | | {#_s_348 | | | | | | | - *f. | | | | | | | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [f. | | | | | | | all | | | | | | | all | | | | | | | notif | | | | | | | notif | | | | | | | ications* | | | | | | | | ications] | | | | | > | | {#_s_349 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | | | | | | | | | | | | | | | | | \] | | | | | | | \] | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 19 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 19 | enable | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [19]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | data-at | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | | rest | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | dar | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | | protectio | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | tiptext} | iptext} | iptext} | iptext} | | | | n | tiptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | | ::: | ::: | ::: | ::: | | | ="dar" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable | | | | | < | | data-at | | | | | < | | rest | | | | | < | | protectio | | | | | < | | n | | | | | < +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 20 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 20 | enable | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [20]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | removable | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | | media's | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | rmediaDar | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | | data-at-r | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | tiptext} | iptext} | iptext} | iptext} | | | | est | tiptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | protectio | ::: | ::: | ::: | ::: | | | ="rmediaD | | | | | < | | ar" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable | | | | | < | | removable | | | | | < | | media's | | | | | < | | data-at-r | | | | | < | | est | | | | | < | | protectio | | | | | < | | n | | | | | | | n | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 21 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 21 | enable/di | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [21]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | sable | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | | location | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | location | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | | services: | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | tiptext} | iptext} | iptext} | iptext} | | | | | tiptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | a. acros | ::: | ::: | ::: | ::: | | | ="locatio | | | | | < | | n" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable/di | | | | | < | | sable | | | | | < | | location | | | | | < | | services: | | | | | < | | | | | | | < | | a. acros | | | | | < | | s | | | | | | | s | | | | | | | devic | | | | | | | devic | | | | | | | e | | | | | | | e | | | | | | | | | | | | | | | | | | | | | ::: {.ind | | | | | | | ::: {.ind | | | | | | | ent} | | | | | | | ent} | | | | | | | \[**selec | | | | | | | \[**selec | | | | | | | tion**: | | | | | | | tion**: | | | | | | | | | | | | | | | | | | | | | - *b. | | | | | | | | - [b. | | | | | | | on a | | | | | | | on a | | | | | | | per-a | | | | | | | per-a | | | | | | | pp | | | | | | | pp | | | | | | | basis | | | | | | | basis | | | | | | | *, | | | | | | | | ]{#_s_350 | | | | | | | - *c. | | | | | | | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [c. | | | | | | | on a | | | | | | | on a | | | | | | | per-g | | | | | | | per-g | | | | | | | roup | | | | | | | roup | | | | | | | of | | | | | | | of | | | | | | | appli | | | | | | | appli | | | | | | | cations | | | | | | | cations | | | | | | | proce | | | | | | | proce | | | | | | | sses | | | | | | | sses | | | | | | | basis | | | | | | | basis | | | | | | | *, | | | | | | | | ]{#_s_351 | | | | | | | - *d. | | | | | | | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [d. | | | | | | | no | | | | | | | no | | | | | | | other | | | | | | | other | | | | | | | metho | | | | | | | metho | | | | | | | d* | | | | | | | | d]{#_s_35 | | | | | > | | 2 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | | | | | | | | | | | | | | | | | \] | | | | | | | \] | | | | | | | ::: | | | | | | | ::: | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 22 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 22 | enable/di | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [22]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | sable | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | | the use | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | authFacto | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | | of | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | rs | tiptext} | iptext} | iptext} | iptext} | | | | \[**selec | tiptext} | iptext} | iptext} | iptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | tion**: | ::: | ::: | ::: | ::: | | | data-myid | | | | | | | | [Biometri | | | | | | | ="authFac | | | | | < | | tors" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable/di | | | | | < | | sable | | | | | < | | the use | | | | | < | | of | | | | | < | | \[**selec | | | | | < | | tion**: | | | | | < | | *Biometri | | | | | < | | c | | | | | | | c | | | | | | | Authentic | | | | | | | Authentic | | | | | | | ation | | | | | | | ation | | | | | | | Factor*, | | | | | | | | Factor]{# | | | | | | | *Hybrid | | | | | | | | _s_353 | | | | | > | | .selectab | | | | | > | | le-conten | | | | | > | | t}, | | | | | > | | [Hybrid | | | | | | | Authentic | | | | | | | Authentic | | | | | | | ation | | | | | | | ation | | | | | | | Factor*\] | | | | | | | | Factor]{# | | | | | > | | _s_354 | | | | | > | | .selectab | | | | | > | | le-conten | | | | | > | | t} | | | | | > | | \] | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 23 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 23 | configure | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [23]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | whether | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | | to | M[Mandato | O[Optiona | O[Optiona | O[Optiona | | | certInval | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | | allow/dis | ry]{.tool | l]{.toolt | l]{.toolt | l]{.toolt | | | id | tiptext} | iptext} | iptext} | iptext} | | | | allow | tiptext} | iptext} | iptext} | iptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | establish | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="certInv | | | | | < | | alid" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | configure | | | | | < | | whether | | | | | < | | to | | | | | < | | allow/dis | | | | | < | | allow | | | | | < | | establish | | | | | < | | ment | | | | | | | ment | | | | | | | of a | | | | | | | of a | | | | | | | trusted | | | | | | | trusted | | | | | | | channel | | | | | | | channel | | | | | | | if the | | | | | | | if the | | | | | | | peer/serv | | | | | | | peer/serv | | | | | | | er | | | | | | | er | | | | | | | certifica | | | | | | | certifica | | | | | | | te | | | | | | | te | | | | | | | is deemed | | | | | | | is deemed | | | | | | | invalid. | | | | | | | invalid. | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 24 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 24 | enable/di | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [24]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | sable | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | all data | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | externalP | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | signaling | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | orts | iptext} | iptext} | iptext} | iptext} | | | | over | iptext} | iptext} | iptext} | iptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | \[**assig | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="externa | | | | | < | | lPorts" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable/di | | | | | < | | sable | | | | | < | | all data | | | | | < | | signaling | | | | | < | | over | | | | | < | | \[**assig | | | | | < | | nment**: | | | | | | | nment**: | | | | | | | [list of | | | | | | | [list of | | | | | | | externall | | | | | | | externall | | | | | | | y | | | | | | | y | | | | | | | accessibl | | | | | | | accessibl | | | | | | | e | | | | | | | e | | | | | | | hardware | | | | | | | hardware | | | | | | | ports]{.a | | | | | | | ports]{.a | | | | | | | ssignable | | | | | | | ssignable | | | | | | | -content} | | | | | | | -content} | | | | | | | \] | | | | | | | \] | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 25 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 25 | enable/di | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [25]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | sable | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | \[**assig | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | serverPro | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | nment**: | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | tocols | iptext} | iptext} | iptext} | iptext} | | | | [list of | iptext} | iptext} | iptext} | iptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | protocols | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="serverP | | | | | < | | rotocols" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable/di | | | | | < | | sable | | | | | < | | \[**assig | | | | | < | | nment**: | | | | | < | | [list of | | | | | < | | protocols | | | | | < | | where the | | | | | | | where the | | | | | | | device | | | | | | | device | | | | | | | acts as a | | | | | | | acts as a | | | | | | | server]{. | | | | | | | server]{. | | | | | | | assignabl | | | | | | | assignabl | | | | | | | e-content | | | | | | | e-content | | | | | | | }\] | | | | | | | }\] | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 26 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 26 | enable/di | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [26]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | sable | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | developer | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | devModes | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | modes | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | iptext} | iptext} | iptext} | iptext} | | | | | iptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | | ::: | ::: | ::: | ::: | | | ="devMode | | | | | < | | s" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable/di | | | | | < | | sable | | | | | < | | developer | | | | | < | | modes | | | | | < +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 27 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 27 | enable/di | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [27]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | sable | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | bypass of | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | authBypas | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | local | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | s | iptext} | iptext} | iptext} | iptext} | | | | user | iptext} | iptext} | iptext} | iptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | authentic | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="authByp | | | | | < | | ass" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable/di | | | | | < | | sable | | | | | < | | bypass of | | | | | < | | local | | | | | < | | user | | | | | < | | authentic | | | | | < | | ation | | | | | | | ation | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 28 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 28 | wipe | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [28]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | Enterpris | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | -[N/A]{.t | | | | e | O[Optiona | O[Optiona | O[Optiona | -[N/A]{.t | | | wipeEntDa | l]{.toolt | l]{.toolt | l]{.toolt | ooltiptex | | | | data | l]{.toolt | l]{.toolt | l]{.toolt | ooltiptex | | | ta | iptext} | iptext} | iptext} | t} | | | | | iptext} | iptext} | iptext} | t} | | | .ctr | ::: | ::: | ::: | ::: | | | | | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="wipeEnt | | | | | < | | Data" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | wipe | | | | | < | | Enterpris | | | | | < | | e | | | | | < | | data | | | | | < +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 29 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 29 | approve | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [29]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | \[**selec | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | tion**: | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | appCert | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | [import]{ | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | iptext} | iptext} | iptext} | iptext} | | | | #_s_355 | iptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | .selectab | ::: | ::: | ::: | ::: | | | ="appCert | | | | | | | | le-conten | | | | | | | " | | | | | | | | t}, | | | | | | | data-coun | | | | | | | | [removal] | | | | | | | ter-type= | | | | | | | | {#_s_356 | | | | | | | "ct-funct | | | | | | | | .selectab | | | | | | | ion"} | | | | | | | | le-conten | | | | | | | approve | | | | | | | | t} | | | | | | | \[**selec | | | | | | | | \] by | | | | | | | tion**: | | | | | < | | *import*, | | | | | < | | *removal* | | | | | < | | \] | | | | | < | | by | | | | | < | | applicati | | | | | | | applicati | | | | | | | ons | | | | | | | ons | | | | | | | of | | | | | | | of | | | | | | | X.509v3 | | | | | | | X.509v3 | | | | | | | certifica | | | | | | | certifica | | | | | | | tes | | | | | | | tes | | | | | | | in the | | | | | | | in the | | | | | | | Trust | | | | | | | Trust | | | | | | | Anchor | | | | | | | Anchor | | | | | | | Database | | | | | | | Database | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 30 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 30 | configure | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [30]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | whether | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | to | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | certValid | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | allow/dis | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | ity | iptext} | iptext} | iptext} | iptext} | | | | allow | iptext} | iptext} | iptext} | iptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | establish | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="certVal | | | | | < | | idity" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | configure | | | | | < | | whether | | | | | < | | to | | | | | < | | allow/dis | | | | | < | | allow | | | | | < | | establish | | | | | < | | ment | | | | | | | ment | | | | | | | of a | | | | | | | of a | | | | | | | trusted | | | | | | | trusted | | | | | | | channel | | | | | | | channel | | | | | | | if the | | | | | | | if the | | | | | | | [TSF](#ab | | | | | | | [TSF](#ab | | | | | | | br_TSF) | | | | | | | br_TSF) | | | | | | | cannot | | | | | | | cannot | | | | | | | establish | | | | | | | establish | | | | | | | a | | | | | | | a | | | | | | | connectio | | | | | | | connectio | | | | | | | n | | | | | | | n | | | | | | | to | | | | | | | to | | | | | | | determine | | | | | | | determine | | | | | | | the | | | | | | | the | | | | | | | validity | | | | | | | validity | | | | | | | of a | | | | | | | of a | | | | | | | certifica | | | | | | | certifica | | | | | | | te | | | | | | | te | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 31 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 31 | enable/di | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [31]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | sable | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | the | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | cellular | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | cellular | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | iptext} | iptext} | iptext} | iptext} | | | | protocols | iptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | used to | ::: | ::: | ::: | ::: | | | ="cellula | | | | | < | | r" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable/di | | | | | < | | sable | | | | | < | | the | | | | | < | | cellular | | | | | < | | protocols | | | | | < | | used to | | | | | < | | connect | | | | | | | connect | | | | | | | to | | | | | | | to | | | | | | | cellular | | | | | | | cellular | | | | | | | network | | | | | | | network | | | | | | | base | | | | | | | base | | | | | | | stations | | | | | | | stations | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 32 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 32 | read | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [32]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | audit | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | -[N/A]{.t | | | | logs kept | O[Optiona | O[Optiona | O[Optiona | -[N/A]{.t | | | auditLogs | l]{.toolt | l]{.toolt | l]{.toolt | ooltiptex | | | | by the | l]{.toolt | l]{.toolt | l]{.toolt | ooltiptex | | | .ctr | iptext} | iptext} | iptext} | t} | | | | [TSF](#ab | iptext} | iptext} | iptext} | t} | | | data-myid | ::: | ::: | ::: | ::: | | | | br_TSF) | ::: | ::: | ::: | ::: | | | ="auditLo | | | | | < | | gs" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | read | | | | | < | | audit | | | | | < | | logs kept | | | | | < | | by the | | | | | < | | [TSF](#ab | | | | | < | | br_TSF) | | | | | < +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 33 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 33 | configure | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [33]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | \[**selec | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | tion**: | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | digSign | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | [certific | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | iptext} | iptext} | iptext} | iptext} | | | | ate]{#_s_ | iptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | 357 | ::: | ::: | ::: | ::: | | | ="digSign | | | | | | | | .selectab | | | | | | | " | | | | | | | | le-conten | | | | | | | data-coun | | | | | | | | t}, | | | | | | | ter-type= | | | | | | | | [public-k | | | | | | | "ct-funct | | | | | | | | ey]{#_s_3 | | | | | | | ion"} | | | | | | | | 58 | | | | | | | configure | | | | | | | | .selectab | | | | | | | \[**selec | | | | | | | | le-conten | | | | | | | tion**: | | | | | | | | t} | | | | | | | *certific | | | | | | | | \] used | | | | | | | ate*, | | | | | | | | to | | | | | | | *public-k | | | | | < | | ey*\] | | | | | < | | used to | | | | | < | | validate | | | | | | | validate | | | | | | | digital | | | | | | | digital | | | | | | | signature | | | | | | | signature | | | | | | | on | | | | | | | on | | | | | | | applicati | | | | | | | applicati | | | | | | | ons | | | | | | | ons | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 34 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 34 | approve | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [34]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | exception | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | s | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | sharedKey | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | for | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | s | iptext} | iptext} | iptext} | iptext} | | | | shared | iptext} | iptext} | iptext} | iptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | use of | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="sharedK | | | | | < | | eys" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | approve | | | | | < | | exception | | | | | < | | s | | | | | < | | for | | | | | < | | shared | | | | | < | | use of | | | | | < | | keys/secr | | | | | | | keys/secr | | | | | | | ets | | | | | | | ets | | | | | | | by | | | | | | | by | | | | | | | multiple | | | | | | | multiple | | | | | | | applicati | | | | | | | applicati | | | | | | | ons | | | | | | | ons | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 35 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 35 | approve | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [35]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | exception | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | s | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | keyWipeRu | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | for | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | les | iptext} | iptext} | iptext} | iptext} | | | | destructi | iptext} | iptext} | iptext} | iptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | on | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="keyWipe | | | | | < | | Rules" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | approve | | | | | < | | exception | | | | | < | | s | | | | | < | | for | | | | | < | | destructi | | | | | < | | on | | | | | < | | of | | | | | | | of | | | | | | | keys/secr | | | | | | | keys/secr | | | | | | | ets | | | | | | | ets | | | | | | | by | | | | | | | by | | | | | | | applicati | | | | | | | applicati | | | | | | | ons | | | | | | | ons | | | | | | | that did | | | | | | | that did | | | | | | | not | | | | | | | not | | | | | | | import | | | | | | | import | | | | | | | the | | | | | | | the | | | | | | | key/secre | | | | | | | key/secre | | | | | | | t | | | | | | | t | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 36 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 36 | configure | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [36]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | the | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | -[N/A]{.t | O[Optiona | O[Optiona | | | | unlock | O[Optiona | -[N/A]{.t | O[Optiona | O[Optiona | | | unlockBan | l]{.toolt | ooltiptex | l]{.toolt | l]{.toolt | | | | banner | l]{.toolt | ooltiptex | l]{.toolt | l]{.toolt | | | ner | iptext} | t} | iptext} | iptext} | | | | | iptext} | t} | iptext} | iptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="unlockB | | | | | < | | anner" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | configure | | | | | < | | the | | | | | < | | unlock | | | | | < | | banner | | | | | < +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 37 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 37 | configure | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [37]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | the | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | -[N/A]{.t | O[Optiona | O[Optiona | | | | auditable | O[Optiona | -[N/A]{.t | O[Optiona | O[Optiona | | | auditItem | l]{.toolt | ooltiptex | l]{.toolt | l]{.toolt | | | | items | l]{.toolt | ooltiptex | l]{.toolt | l]{.toolt | | | s | iptext} | t} | iptext} | iptext} | | | | | iptext} | t} | iptext} | iptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="auditIt | | | | | < | | ems" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | configure | | | | | < | | the | | | | | < | | auditable | | | | | < | | items | | | | | < +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 38 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 38 | retrieve | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [38]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | [TSF](#ab | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | br_TSF)-s | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | integ | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | oftware | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | iptext} | iptext} | iptext} | iptext} | | | | integrity | iptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | verificat | ::: | ::: | ::: | ::: | | | ="integ" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | retrieve | | | | | < | | [TSF](#ab | | | | | < | | br_TSF)-s | | | | | < | | oftware | | | | | < | | integrity | | | | | < | | verificat | | | | | < | | ion | | | | | | | ion | | | | | | | values | | | | | | | values | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 39 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 39 | enable/di | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [39]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | sable | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | \[**selec | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | USB | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | tion**: | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | iptext} | iptext} | iptext} | iptext} | | | | | iptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | - [[USB | ::: | ::: | ::: | ::: | | | ="USB" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable/di | | | | | < | | sable | | | | | < | | \[**selec | | | | | < | | tion**: | | | | | < | | | | | | | < | | - *[USB | | | | | < | | ](#abbr_U | | | | | | | ](#abbr_U | | | | | | | SB) | | | | | | | SB) | | | | | | | mass | | | | | | | mass | | | | | | | stora | | | | | | | stora | | | | | | | ge | | | | | | | ge | | | | | | | mode* | | | | | | | | mode] | | | | | | | , | | | | | | | | {#_s_359 | | | | | | | - *[USB | | | | | | | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [[USB | | | | | | | ](#abbr_U | | | | | | | ](#abbr_U | | | | | | | SB) | | | | | | | SB) | | | | | | | data | | | | | | | data | | | | | | | trans | | | | | | | trans | | | | | | | fer | | | | | | | fer | | | | | | | witho | | | | | | | witho | | | | | | | ut | | | | | | | ut | | | | | | | user | | | | | | | user | | | | | | | authe | | | | | | | authe | | | | | | | ntication | | | | | | | ntication | | | | | | | *, | | | | | | | | ]{#_s_360 | | | | | | | - *[USB | | | | | | | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [[USB | | | | | | | ](#abbr_U | | | | | | | ](#abbr_U | | | | | | | SB) | | | | | | | SB) | | | | | | | data | | | | | | | data | | | | | | | trans | | | | | | | trans | | | | | | | fer | | | | | | | fer | | | | | | | witho | | | | | | | witho | | | | | | | ut | | | | | | | ut | | | | | | | authe | | | | | | | authe | | | | | | | ntication | | | | | | | ntication | | | | | | | of | | | | | | | of | | | | | | | the | | | | | | | the | | | | | | | conne | | | | | | | conne | | | | | | | cting | | | | | | | cting | | | | | | | syste | | | | | | | syste | | | | | | | m* | | | | | | | | m]{#_s_36 | | | | | > | | 1 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | | | | | | | | | | | | | | | | | \] | | | | | | | \] | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 40 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 40 | enable/di | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [40]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | sable | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | backup of | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | backup | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | \[**selec | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | iptext} | iptext} | iptext} | iptext} | | | | tion**: | iptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | [all | ::: | ::: | ::: | ::: | | | ="backup" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable/di | | | | | < | | sable | | | | | < | | backup of | | | | | < | | \[**selec | | | | | < | | tion**: | | | | | < | | *all | | | | | < | | applicati | | | | | | | applicati | | | | | | | ons*, | | | | | | | | ons]{#_s_ | | | | | | | *selected | | | | | | | | 362 | | | | | > | | .selectab | | | | | > | | le-conten | | | | | > | | t}, | | | | | > | | [selected | | | | | | | applicati | | | | | | | applicati | | | | | | | ons*, | | | | | | | | ons]{#_s_ | | | | | | | *selected | | | | | | | | 363 | | | | | > | | .selectab | | | | | > | | le-conten | | | | | > | | t}, | | | | | > | | [selected | | | | | | | groups of | | | | | | | groups of | | | | | | | applicati | | | | | | | applicati | | | | | | | ons*, | | | | | | | | ons]{#_s_ | | | | | | | *configur | | | | | | | | 364 | | | | | > | | .selectab | | | | | > | | le-conten | | | | | > | | t}, | | | | | > | | [configur | | | | | | | ation | | | | | | | ation | | | | | | | data*\] | | | | | | | | data]{#_s | | | | | | | to | | | | | | | | _365 | | | | | > | | .selectab | | | | | > | | le-conten | | | | | > | | t} | | | | | > | | \] to | | | | | | | \[**selec | | | | | | | \[**selec | | | | | | | tion**: | | | | | | | tion**: | | | | | | | *locally | | | | | | | | [locally | | | | | | | connected | | | | | | | connected | | | | | | | system*, | | | | | | | | system]{# | | | | | | | *remote | | | | | | | | _s_366 | | | | | | | system*\] | | | | | | | | .selectab | | | | | > | | le-conten | | | | | > | | t}, | | | | | > | | [remote | | | | | > | | system]{# | | | | | > | | _s_367 | | | | | > | | .selectab | | | | | > | | le-conten | | | | | > | | t} | | | | | > | | \] | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 41 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 41 | enable/di | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [41]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | sable | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | \[**selec | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | hotspot | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | tion**: | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | iptext} | iptext} | iptext} | iptext} | | | | | iptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | - [Hots | ::: | ::: | ::: | ::: | | | ="hotspot | | | | | < | | " | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable/di | | | | | < | | sable | | | | | < | | \[**selec | | | | | < | | tion**: | | | | | < | | | | | | | < | | - *Hots | | | | | < | | pot | | | | | | | pot | | | | | | | funct | | | | | | | funct | | | | | | | ionality | | | | | | | ionality | | | | | | | authe | | | | | | | authe | | | | | | | nticated | | | | | | | nticated | | | | | | | by | | | | | | | by | | | | | | | \[**s | | | | | | | \[**s | | | | | | | election* | | | | | | | election* | | | | | | | *: | | | | | | | *: | | | | | | | *pre- | | | | | | | | [pre- | | | | | | | shared | | | | | | | shared | | | | | | | key*, | | | | | | | | key]{ | | | | | | | *pass | | | | | | | | #_s_369 | | | | | | | code*, | | | | | | | | .sele | | | | | | | *no | | | | | | | | ctable-co | | | | | > | | ntent}, | | | | | > | | [pass | | | | | > | | code]{#_s | | | | | > | | _370 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent}, | | | | | > | | [no | | | | | | | authe | | | | | | | authe | | | | | | | ntication | | | | | | | ntication | | | | | | | *\]*, | | | | | | | | ]{#_s_371 | | | | | | | - *[USB | | | | | | | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | \]]{# | | | | | > | | _s_368 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [[USB | | | | | | | ](#abbr_U | | | | | | | ](#abbr_U | | | | | | | SB) | | | | | | | SB) | | | | | | | tethe | | | | | | | tethe | | | | | | | ring | | | | | | | ring | | | | | | | authe | | | | | | | authe | | | | | | | nticated | | | | | | | nticated | | | | | | | by | | | | | | | by | | | | | | | \[**s | | | | | | | \[**s | | | | | | | election* | | | | | | | election* | | | | | | | *: | | | | | | | *: | | | | | | | *pre- | | | | | | | | [pre- | | | | | | | shared | | | | | | | shared | | | | | | | key*, | | | | | | | | key]{ | | | | | | | *pass | | | | | | | | #_s_373 | | | | | | | code*, | | | | | | | | .sele | | | | | | | *no | | | | | | | | ctable-co | | | | | > | | ntent}, | | | | | > | | [pass | | | | | > | | code]{#_s | | | | | > | | _374 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent}, | | | | | > | | [no | | | | | | | authe | | | | | | | authe | | | | | | | ntication | | | | | | | ntication | | | | | | | *\]* | | | | | | | | ]{#_s_375 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | \] | | | | | > | | ]{#_s | | | | | > | | _372 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | | | | | | | | | | | | | | | | | \] | | | | | | | \] | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 42 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 42 | approve | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [42]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | exception | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | s | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | dataShari | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | for | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | ng | iptext} | iptext} | iptext} | iptext} | | | | sharing | iptext} | iptext} | iptext} | iptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | data | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="dataSha | | | | | < | | ring" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | approve | | | | | < | | exception | | | | | < | | s | | | | | < | | for | | | | | < | | sharing | | | | | < | | data | | | | | < | | between | | | | | | | between | | | | | | | \[**selec | | | | | | | \[**selec | | | | | | | tion**: | | | | | | | tion**: | | | | | | | *applicat | | | | | | | | [applicat | | | | | | | ions*, | | | | | | | | ions]{#_s | | | | | | | *groups | | | | | | | | _376 | | | | | > | | .selectab | | | | | > | | le-conten | | | | | > | | t}, | | | | | > | | [groups | | | | | | | of | | | | | | | of | | | | | | | applicati | | | | | | | applicati | | | | | | | ons*\] | | | | | | | | ons]{#_s_ | | | | | > | | 377 | | | | | > | | .selectab | | | | | > | | le-conten | | | | | > | | t} | | | | | > | | \] | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 43 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 43 | place | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [43]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | applicati | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | ons | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | appGroups | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | into | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | iptext} | iptext} | iptext} | iptext} | | | | applicati | iptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | on | ::: | ::: | ::: | ::: | | | ="appGrou | | | | | < | | ps" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | place | | | | | < | | applicati | | | | | < | | ons | | | | | < | | into | | | | | < | | applicati | | | | | < | | on | | | | | < | | groups | | | | | | | groups | | | | | | | based on | | | | | | | based on | | | | | | | \[**assig | | | | | | | \[**assig | | | | | | | nment**: | | | | | | | nment**: | | | | | | | [enterpri | | | | | | | [enterpri | | | | | | | se | | | | | | | se | | | | | | | configura | | | | | | | configura | | | | | | | tion | | | | | | | tion | | | | | | | settings] | | | | | | | settings] | | | | | | | {.assigna | | | | | | | {.assigna | | | | | | | ble-conte | | | | | | | ble-conte | | | | | | | nt}\] | | | | | | | nt}\] | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 44 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 44 | unenroll | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [44]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | the | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | [TOE](#ab | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | unenroll | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | br_TOE) | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | iptext} | iptext} | iptext} | iptext} | | | | from | iptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | managemen | ::: | ::: | ::: | ::: | | | ="unenrol | | | | | < | | l" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | unenroll | | | | | < | | the | | | | | < | | [TOE](#ab | | | | | < | | br_TOE) | | | | | < | | from | | | | | < | | managemen | | | | | < | | t | | | | | | | t | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 45 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 45 | enable/di | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [45]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | sable | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | the | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | alwaysOnV | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | Always On | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | PN | iptext} | iptext} | iptext} | iptext} | | | | [VPN](#ab | iptext} | iptext} | iptext} | iptext} | | | .ctr | ::: | ::: | ::: | ::: | | | | br_VPN) | ::: | ::: | ::: | ::: | | | data-myid | | | | | < | | ="alwaysO | | | | | < | | nVPN" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | enable/di | | | | | < | | sable | | | | | < | | the | | | | | < | | Always On | | | | | < | | [VPN](#ab | | | | | < | | br_VPN) | | | | | < | | protectio | | | | | | | protectio | | | | | | | n: | | | | | | | n: | | | | | | | | | | | | | | | | | | | | | a. acros | | | | | | | a. acros | | | | | | | s | | | | | | | s | | | | | | | devic | | | | | | | devic | | | | | | | e | | | | | | | e | | | | | | | | | | | | | | | | | | | | | ::: {.ind | | | | | | | ::: {.ind | | | | | | | ent} | | | | | | | ent} | | | | | | | \[**selec | | | | | | | \[**selec | | | | | | | tion**: | | | | | | | tion**: | | | | | | | | | | | | | | | | | | | | | - *b. | | | | | | | | - [b. | | | | | | | on a | | | | | | | on a | | | | | | | per-a | | | | | | | per-a | | | | | | | pp | | | | | | | pp | | | | | | | basis | | | | | | | basis | | | | | | | *, | | | | | | | | ]{#_s_378 | | | | | | | - *c. | | | | | | | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [c. | | | | | | | on a | | | | | | | on a | | | | | | | per-g | | | | | | | per-g | | | | | | | roup | | | | | | | roup | | | | | | | of | | | | | | | of | | | | | | | appli | | | | | | | appli | | | | | | | cations | | | | | | | cations | | | | | | | proce | | | | | | | proce | | | | | | | sses | | | | | | | sses | | | | | | | basis | | | | | | | basis | | | | | | | *, | | | | | | | | ]{#_s_379 | | | | | | | - *d. | | | | | | | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | > | | - [d. | | | | | | | no | | | | | | | no | | | | | | | other | | | | | | | other | | | | | | | metho | | | | | | | metho | | | | | | | d* | | | | | | | | d]{#_s_38 | | | | | > | | 0 | | | | | > | | .sele | | | | | > | | ctable-co | | | | | > | | ntent} | | | | | | | | | | | | | | | | | | | | | \] | | | | | | | \] | | | | | | | ::: | | | | | | | ::: | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 46 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 46 | revoke | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [46]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | Biometric | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | template | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | bioRevoke | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | | | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | iptext} | iptext} | iptext} | iptext} | | | | | iptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | | ::: | ::: | ::: | ::: | | | ="bioRevo | | | | | < | | ke" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | revoke | | | | | < | | Biometric | | | | | < | | template | | | | | < +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ | 47 | [ | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | 47 | \[**assig | ::: {.too | ::: {.too | ::: {.too | ::: {.too | | | [47]{.cou | ltipped} | ltipped} | ltipped} | ltipped} | | | | nment**: | ltipped} | ltipped} | ltipped} | ltipped} | | | nter}.]{# | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | | [list of | O[Optiona | O[Optiona | O[Optiona | O[Optiona | | | other | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | other | l]{.toolt | l]{.toolt | l]{.toolt | l]{.toolt | | | .ctr | iptext} | iptext} | iptext} | iptext} | | | | managemen | iptext} | iptext} | iptext} | iptext} | | | data-myid | ::: | ::: | ::: | ::: | | | | t | ::: | ::: | ::: | ::: | | | ="other" | | | | | < | | data-coun | | | | | < | | ter-type= | | | | | < | | "ct-funct | | | | | < | | ion"} | | | | | < | | \[**assig | | | | | < | | nment**: | | | | | < | | [list of | | | | | < | | other | | | | | < | | managemen | | | | | < | | t | | | | | < | | functions | | | | | | | functions | | | | | | | to be | | | | | | | to be | | | | | | | provided | | | | | | | provided | | | | | | | by the | | | | | | | by the | | | | | | | [TSF](#ab | | | | | | | [TSF](#ab | | | | | | | br_TSF)]{ | | | | | | | br_TSF)]{ | | | | | | | .assignab | | | | | | | .assignab | | | | | | | le-conten | | | | | | | le-conten | | | | | | | t}\] | | | | | | | t}\] | | | | | +-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+ ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ [Table [Application Note: ]{.note-header}[ [Table [7]{.counter}](#fmt_smf){.fmt_smf-ref} compares the management functions [7]{.counter}](#fmt_smf){.fmt_smf-ref} compares the management functions required by this Protection Profile.\ required by this Protection Profile.\ \ \ The first column lists the management functions identified in the The first column lists the management functions identified in the [PP](#abbr_PP).\ [PP](#abbr_PP).\ \ \ In the following columns: ]{.note} In the following columns: ]{.note} - 'M' means Mandatory - 'M' means Mandatory - 'O' means Optional/Objective - 'O' means Optional/Objective - \'-\' means that no value (M or O) can be assigned - \'-\' means that no value (M or O) can be assigned \ \ \ \ The second column ([FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1)) indicates whether The second column ([FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1)) indicates whether the function is to be implemented. The [ST](#abbr_ST) author should the function is to be implemented. The [ST](#abbr_ST) author should select which Optional functions are implemented.\ select which Optional functions are implemented.\ \ \ The third column ([FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1)) indicates The third column ([FMT\_MOF\_EXT.1.1](#FMT_MOF_EXT.1.1)) indicates functions that are to be restricted to the user (i.e. not available to functions that are to be restricted to the user (i.e. not available to the administrator).\ the administrator).\ \ \ The fourth column (Administrator) indicates functions that are available The fourth column (Administrator) indicates functions that are available to the administrator. The functions restricted to the user (column 3) to the administrator. The functions restricted to the user (column 3) cannot also be available to the administrator. Functions available to cannot also be available to the administrator. Functions available to the administrator can still be available to the user, as long as the the administrator can still be available to the user, as long as the function is not restricted to the administrator (column 5). Thus, if the function is not restricted to the administrator (column 5). Thus, if the [TOE](#abbr_TOE) must offer these functions to the administrator to [TOE](#abbr_TOE) must offer these functions to the administrator to perform the fourth column must be selected.\ perform the fourth column must be selected.\ \ \ The fifth column ([FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2)) indicates The fifth column ([FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2)) indicates whether the function is to be restricted to the administrator when the whether the function is to be restricted to the administrator when the device is enrolled and the administrator applies the indicated policy. device is enrolled and the administrator applies the indicated policy. If the function is restricted to the administrator the function is not If the function is restricted to the administrator the function is not available to the user. This does not prevent the user from modifying a available to the user. This does not prevent the user from modifying a setting to make the function stricter, but the user cannot undo the setting to make the function stricter, but the user cannot undo the configuration enforced by the administrator.\ configuration enforced by the administrator.\ \ \ The [ST](#abbr_ST) author may use a table in the [ST](#abbr_ST), listing The [ST](#abbr_ST) author may use a table in the [ST](#abbr_ST), listing only those functions that are implemented. For functions that are only those functions that are implemented. For functions that are mandatory, any sub-functions not in a selection are also mandatory and mandatory, any sub-functions not in a selection are also mandatory and any assignments must contain at least one assigned value. For functions any assignments must contain at least one assigned value. For functions that are optional and contain an assignment or selection, at least one that are optional and contain an assignment or selection, at least one value must be assigned/selected to be included in the [ST](#abbr_ST). value must be assigned/selected to be included in the [ST](#abbr_ST). For non-selectable sub-functions in an optional function, all For non-selectable sub-functions in an optional function, all sub-functions must be implemented in order for the function to be sub-functions must be implemented in order for the function to be included. For functions with a \"per-app basis\" sub function and an included. For functions with a \"per-app basis\" sub function and an assignment, the [ST](#abbr_ST) author must indicate which assigned assignment, the [ST](#abbr_ST) author must indicate which assigned features are manageable on a per-app basis and which are not by features are manageable on a per-app basis and which are not by iterating the row.\ iterating the row.\ \ \ > \ > \ **Function-specific Application Notes:**\ **Function-specific Application Notes:**\ \ \ For functions [[3]{.counter}](#vpn){.vpn-ref}, | [[5]{.counter}](#audioVisual){.audioVisual-ref} and | Functions [3](#mf-vpn) , [5](#mf-audioVisual) , and [21](#mf-location) [[21]{.counter}](#location){.location-ref}, the function must be | must be implemented on a device-wide basis but may also be implemented implemented on a device-wide basis but may also be implemented on a | on a per-app basis or on a per-group of applications basis in which the per-app basis or on a per-group of applications basis in which the < configuration includes the list of applications or groups of configuration includes the list of applications or groups of applications to which the enable/disable applies.\ | applications to which the enable/disable applies. \ | Function [[3]{.counter}](#vpn){.vpn-ref} addresses enabling and | Function [3](#mf-vpn) addresses enabling and disabling the disabling the [IPsec](#abbr_IPsec) [VPN](#abbr_VPN) only. The | [IPsec](#abbr_IPsec) [VPN](#abbr_VPN) only. The configuration of the configuration of the [VPN](#abbr_VPN) Client itself (with information | [VPN](#abbr_VPN) Client itself (with information such as such as [VPN](#abbr_VPN) Gateway, certificates, and algorithms) is | [VPN](#abbr_VPN) Gateway, certificates, and algorithms) is addressed by addressed by the [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) | the [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client. The Client. The administrator options should only be listed if the | administrator options should only be listed if the administrator can administrator can remotely enable/disable the [VPN](#abbr_VPN) | remotely enable/disable the [VPN](#abbr_VPN) connection. connection.\ | \ | Function [3](#mf-vpn) optionally allows the [VPN](#abbr_VPN) to be Function [[3]{.counter}](#vpn){.vpn-ref} optionally allows the | configured per-app or per-groups of apps. If this configuration is [VPN](#abbr_VPN) to be configured per-app or per-groups of apps. If this | selected, it does not void [FDP\_IFC\_EXT.1](#FDP_IFC_EXT.1). Instead configuration is selected, it does not void < [FDP\_IFC\_EXT.1](#FDP_IFC_EXT.1). Instead < [FDP\_IFC\_EXT.1](#FDP_IFC_EXT.1) is applied to the application or group [FDP\_IFC\_EXT.1](#FDP_IFC_EXT.1) is applied to the application or group of applications the [VPN](#abbr_VPN) is applied to. In other words, all of applications the [VPN](#abbr_VPN) is applied to. In other words, all traffic destined for the [VPN](#abbr_VPN)-enabled application or group traffic destined for the [VPN](#abbr_VPN)-enabled application or group of applications, must travel through the [VPN](#abbr_VPN), but traffic of applications, must travel through the [VPN](#abbr_VPN), but traffic not destined for that application or group of applications can travel not destined for that application or group of applications can travel outside the [VPN](#abbr_VPN). When the [VPN](#abbr_VPN) is configured outside the [VPN](#abbr_VPN). When the [VPN](#abbr_VPN) is configured across the device [FDP\_IFC\_EXT.1](#FDP_IFC_EXT.1) applies to all across the device [FDP\_IFC\_EXT.1](#FDP_IFC_EXT.1) applies to all traffic and the [VPN](#abbr_VPN) must not split tunnel.\ | traffic and the [VPN](#abbr_VPN) must not split tunnel. \ | The assignment in function [[4]{.counter}](#radios){.radios-ref} | The assignment in function [4](#mf-radios) consists of all radios consists of all radios present on the [TSF](#abbr_TSF), such as Wi-Fi, | present on the [TSF](#abbr_TSF), such as Wi-Fi, cellular, cellular, [NFC](#abbr_NFC), Bluetooth [BR/EDR](#abbr_BR/EDR), and | [NFC](#abbr_NFC), Bluetooth [BR/EDR](#abbr_BR/EDR), and Bluetooth Bluetooth [LE](#abbr_LE), which can be enabled and disabled. In the | [LE](#abbr_LE), which can be enabled and disabled. In the future, if future, if both Bluetooth [BR/EDR](#abbr_BR/EDR) and Bluetooth | both Bluetooth [BR/EDR](#abbr_BR/EDR) and Bluetooth [LE](#abbr_LE) are [LE](#abbr_LE) are supported, they will be required to be enabled and | supported, they will be required to be enabled and disabled separately. disabled separately. Disablement of the cellular radio does not imply | Disablement of the cellular radio does not imply that the radio may not that the radio may not be enabled in order to place emergency phone | be enabled in order to place emergency phone calls; however, it is not calls; however, it is not expected that a device in \"airplane mode\", | expected that a device in \"airplane mode\", where all radios are where all radios are disabled, will automatically (without | disabled, will automatically (without authorization) turn on the authorization) turn on the cellular radio to place emergency calls.\ | cellular radio to place emergency calls. \ | The assignment in function | The assignment in function [5](#mf-audioVisual) consists of at least one [[5]{.counter}](#audioVisual){.audioVisual-ref} consists of at least one < audio and/or visual device, such as camera and microphone, which can be audio and/or visual device, such as camera and microphone, which can be enabled and disabled by either the user or administrator. Disablement of enabled and disabled by either the user or administrator. Disablement of the microphone does not imply that the microphone may not be enabled in the microphone does not imply that the microphone may not be enabled in order to place emergency phone calls. If certain devices are able to be order to place emergency phone calls. If certain devices are able to be restricted to the enterprise (either device-wide, per-app or per-group restricted to the enterprise (either device-wide, per-app or per-group of applications) and others are able to be restricted to users, then of applications) and others are able to be restricted to users, then this function should be iterated in the table with the appropriate table this function should be iterated in the table with the appropriate table entries.\ | entries. \ | Regarding functions [[4]{.counter}](#radios){.radios-ref} and | Regarding functions [4](#mf-radios) and [5](#mf-audioVisual), [[5]{.counter}](#audioVisual){.audioVisual-ref}, disablement of a | disablement of a particular radio or audio/visual device must be particular radio or audio/visual device must be effective as soon as the | effective as soon as the [TOE](#abbr_TOE) has power. Disablement must [TOE](#abbr_TOE) has power. Disablement must also apply when the | also apply when the [TOE](#abbr_TOE) is booted into auxiliary boot [TOE](#abbr_TOE) is booted into auxiliary boot modes, for example, | modes, for example, associated with updates or backup. If the associated with updates or backup. If the [TOE](#abbr_TOE) supports | [TOE](#abbr_TOE) supports states in which security management policy is states in which security management policy is inaccessible, for example, | inaccessible, for example, due to data-at-rest protection, it is due to data-at-rest protection, it is acceptable to meet this | acceptable to meet this requirement by ensuring that these devices are requirement by ensuring that these devices are disabled by default while | disabled by default while in these states. That these devices are in these states. That these devices are disabled during auxiliary boot | disabled during auxiliary boot modes does not imply that the device modes does not imply that the device (particularly the cellular radio) | (particularly the cellular radio) may not be enabled in order to perform may not be enabled in order to perform emergency phone calls.\ | emergency phone calls. \ | Wipe of the [TSF](#abbr_TSF) (function | Wipe of the [TSF](#abbr_TSF) (function [7](#mf-wipe)) is performed [[7]{.counter}](#wipe){.wipe-ref}) is performed according to | according to [FCS\_CKM\_EXT.5](#FCS_CKM_EXT.5). Protected data is all [FCS\_CKM\_EXT.5](#FCS_CKM_EXT.5). Protected data is all non-TSF data, | non-TSF data, including all user or enterprise data. Some or all of this including all user or enterprise data. Some or all of this data may be | data may be considered sensitive data as well. considered sensitive data as well.\ | \ | The selection in function [8](#mf-appInstallRules) allows the The selection in function < [[8]{.counter}](#appInstallRules){.appInstallRules-ref} allows the < [ST](#abbr_ST) author to select which mechanisms are available to the [ST](#abbr_ST) author to select which mechanisms are available to the administrator through the [MDM](#abbr_MDM) Agent to restrict the administrator through the [MDM](#abbr_MDM) Agent to restrict the applications which the user may install. The [ST](#abbr_ST) author must applications which the user may install. The [ST](#abbr_ST) author must state if application allowlist is applied device-wide or if it can be state if application allowlist is applied device-wide or if it can be specified to apply to either the Enterprise and/or Personal specified to apply to either the Enterprise and/or Personal applications. applications. - If the administrator can restrict the sources from which - If the administrator can restrict the sources from which applications can be installed, the [ST](#abbr_ST) author selects applications can be installed, the [ST](#abbr_ST) author selects option a. option a. - If the administrator can specify a allowlist of allowed - If the administrator can specify a allowlist of allowed applications, the [ST](#abbr_ST) author selects option b. The applications, the [ST](#abbr_ST) author selects option b. The [ST](#abbr_ST) author should list any application characteristics [ST](#abbr_ST) author should list any application characteristics (e.g. name, version, or developer) based on which the allowlist can (e.g. name, version, or developer) based on which the allowlist can be formed. be formed. - If the administrator can prevent the user from installing additional - If the administrator can prevent the user from installing additional applications, the [ST](#abbr_ST) author selects c. applications, the [ST](#abbr_ST) author selects c. \ | In the future, function [12](#mf-certWipe) may require destruction or In the future, function [[12]{.counter}](#certWipe){.certWipe-ref} may | disabling of any default trusted [CA](#abbr_CA) certificates, excepting require destruction or disabling of any default trusted [CA](#abbr_CA) | those [CA](#abbr_CA) certificates necessary for continued operation of certificates, excepting those [CA](#abbr_CA) certificates necessary for | the [TSF](#abbr_TSF), such as the developer's certificate. At this time, continued operation of the [TSF](#abbr_TSF), such as the developer's | the [ST](#abbr_ST) author must indicate in the assignment whether certificate. At this time, the [ST](#abbr_ST) author must indicate in | pre-installed or any other category of X.509v3 certificates may be the assignment whether pre-installed or any other category of X.509v3 | removed from the Trust Anchor Database. certificates may be removed from the Trust Anchor Database.\ | \ | For function [13](#mf-enroll), the enrollment function may be installing For function [[13]{.counter}](#enroll){.enroll-ref}, the enrollment | an [MDM](#abbr_MDM) agent and includes the policies to be applied to the function may be installing an [MDM](#abbr_MDM) agent and includes the | device. It is acceptable for the user approval notice to require the policies to be applied to the device. It is acceptable for the user | user to intentionally opt to view the policies (for example, by approval notice to require the user to intentionally opt to view the | \"tapping\" on a \"View\" icon) rather than listing the policies in full policies (for example, by \"tapping\" on a \"View\" icon) rather than | in the notice. listing the policies in full in the notice.\ | \ | For function [15](#mf-update), the administrator capability to update For function [[15]{.counter}](#update){.update-ref}, the administrator | the system software may be limited to causing a prompt to the user to capability to update the system software may be limited to causing a | update rather than the ability to initiate the update itself. As the prompt to the user to update rather than the ability to initiate the | administrator is likely to be acting remotely, he/she would be unaware update itself. As the administrator is likely to be acting remotely, | of inopportune situations, such as low power, which may cause the update he/she would be unaware of inopportune situations, such as low power, | to fail and the device to become inoperable. The user can refuse to which may cause the update to fail and the device to become inoperable. | accept the update in such situations. It is expected that system The user can refuse to accept the update in such situations. It is | architects will be cognizant of this limitation and will enforce network expected that system architects will be cognizant of this limitation and | access controls in order to enforce enterprise-critical updates. will enforce network access controls in order to enforce | enterprise-critical updates.\ | Function [16](#mf-appInstall) addresses both installation and update. \ | This protection profile does not distinguish between installation and Function [[16]{.counter}](#appInstall){.appInstall-ref} addresses both | update of applications because mobile devices typically completely installation and update. This protection profile does not distinguish | overwrite the previous installation with a new installation during an between installation and update of applications because mobile devices | application update. typically completely overwrite the previous installation with a new | installation during an application update.\ | For function [17](#mf-entAppRemove), \"Enterprise applications\" are \ | those applications that belong to the Enterprise application group. For function [[17]{.counter}](#entAppRemove){.entAppRemove-ref}, | Applications installed by the enterprise administrator (including \"Enterprise applications\" are those applications that belong to the | automatic installation by the administrator after being requested by the Enterprise application group. Applications installed by the enterprise | user from a catalog of enterprise applications) are by default placed in administrator (including automatic installation by the administrator | the Enterprise application group unless an exception has been made in after being requested by the user from a catalog of enterprise | function [43](#mf-appGroups) of [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1). applications) are by default placed in the Enterprise application group | unless an exception has been made in function < [[43]{.counter}](#appGroups){.appGroups-ref} of < [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1).\ < \ < If the display of notifications in the locked state is supported, the If the display of notifications in the locked state is supported, the configuration of these notifications (function | configuration of these notifications (function [18](#mf-notifications)) [[18]{.counter}](#notifications){.notifications-ref}) must be included | must be included in the selection. in the selection.\ | \ | Function [19](#mf-dar) must be included in the selection if data-at-rest Function [[19]{.counter}](#dar){.dar-ref} must be included in the | protection is not natively enabled. selection if data-at-rest protection is not natively enabled.\ | \ | Function [20](#mf-rmediaDar) is implicitly met if the [TSF](#abbr_TSF) Function [[20]{.counter}](#rmediaDar){.rmediaDar-ref} is implicitly met | does not support removable media. if the [TSF](#abbr_TSF) does not support removable media.\ | \ | For function [21](#mf-location), location services include location For function [[21]{.counter}](#location){.location-ref}, location | information gathered from [GPS](#abbr_GPS), cellular, and Wi-Fi. services include location information gathered from [GPS](#abbr_GPS), | cellular, and Wi-Fi.\ | Function [22](#mf-authFactors) is implicitly met if the [TOE](#abbr_TOE) \ | does not contain a [BAF](#abbr_BAF). This selection must correspond with Function [[22]{.counter}](#authFactors){.authFactors-ref} is implicitly | the selection made in [FIA\_UAU.5.1](#FIA_UAU.5.1). If a met if the [TOE](#abbr_TOE) does not contain a [BAF](#abbr_BAF). This | [BAF](#abbr_BAF) is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), selection must correspond with the selection made in | \"Biometric Authentication Factor\" must be selected and the user or [FIA\_UAU.5.1](#FIA_UAU.5.1). If a [BAF](#abbr_BAF) is selected in | admin must have the option to disable the use of it. If multiple [FIA\_UAU.5.1](#FIA_UAU.5.1), \"Biometric Authentication Factor\" must | [BAFs](#abbr_BAF) are selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), this be selected and the user or admin must have the option to disable the | applies to all different modalities. If \"hybrid\" is selected in use of it. If multiple BAFs are selected in | [FIA\_UAU.5.1](#FIA_UAU.5.1) it must be selected and the user or admin [FIA\_UAU.5.1](#FIA_UAU.5.1), this applies to all different modalities. | must have the option to disable the use of it. If \"hybrid\" is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1) it must be | selected and the user or admin must have the option to disable the use | For function [23](#mf-certInvalid), the configuration can be different of it.\ | depending on the specific trusted channel. \ | For function [[23]{.counter}](#certInvalid){.certInvalid-ref}, the | The assignment in function [24](#mf-externalPorts) consists of all configuration can be different depending on the specific trusted < channel.\ < \ < The assignment in function < [[24]{.counter}](#externalPorts){.externalPorts-ref} consists of all < externally accessible hardware ports, such as [USB](#abbr_USB), the SD externally accessible hardware ports, such as [USB](#abbr_USB), the SD card, and [HDMI](#abbr_HDMI), whose data transfer capabilities can be card, and [HDMI](#abbr_HDMI), whose data transfer capabilities can be enabled and disabled by either the user or administrator. Disablement of enabled and disabled by either the user or administrator. Disablement of data transfer over an external port must be effective during and after data transfer over an external port must be effective during and after boot into the normal operative mode of the device. If the boot into the normal operative mode of the device. If the [TOE](#abbr_TOE) supports states in which configured security management [TOE](#abbr_TOE) supports states in which configured security management policy is inaccessible, for example, due to data-at-rest protection, it policy is inaccessible, for example, due to data-at-rest protection, it is acceptable to meet this requirement by ensuring that data transfer is is acceptable to meet this requirement by ensuring that data transfer is disabled by default while in these states. Each of the ports may be disabled by default while in these states. Each of the ports may be enabled or disabled separately. The configuration policy need not enabled or disabled separately. The configuration policy need not disable all ports together. In the case of [USB](#abbr_USB), chagrining disable all ports together. In the case of [USB](#abbr_USB), chagrining is still allowed if data transfer capabilities have been disabled.\ | is still allowed if data transfer capabilities have been disabled. \ | The assignment in function | The assignment in function [25](#mf-serverProtocols) consists of all [[25]{.counter}](#serverProtocols){.serverProtocols-ref} consists of all < protocols where the [TSF](#abbr_TSF) acts as a server, which can be protocols where the [TSF](#abbr_TSF) acts as a server, which can be enabled and disabled by either the user or administrator.\ | enabled and disabled by either the user or administrator. \ | Function [[26]{.counter}](#devModes){.devModes-ref} must be included in | Function [26](#mf-devModes) must be included in the selection if the selection if developer modes are supported by the [TSF](#abbr_TSF).\ | developer modes are supported by the [TSF](#abbr_TSF). \ | Function [[27]{.counter}](#authBypass){.authBypass-ref} must be included | Function [27](#mf-authBypass) must be included in the selection if in the selection if bypass of local user authentication, such as a | bypass of local user authentication, such as a \"Forgot Password\", \"Forgot Password\", password hint, or remote authentication feature, is | password hint, or remote authentication feature, is supported. supported.\ | \ | Function [29](#mf-appCert) must be included in the selection if the Function [[29]{.counter}](#appCert){.appCert-ref} must be included in | [TSF](#abbr_TSF) allows applications, other than the [MDM](#abbr_MDM) the selection if the [TSF](#abbr_TSF) allows applications, other than | Agents, to import or remove X.509v3 certificates from the Trust Anchor the [MDM](#abbr_MDM) Agents, to import or remove X.509v3 certificates | Database. The [MDM](#abbr_MDM) Agent is considered the administrator. from the Trust Anchor Database. The [MDM](#abbr_MDM) Agent is considered | This function does not apply to applications trusting a certificate for the administrator. This function does not apply to applications trusting | its own validations. The function only applies to situations where the a certificate for its own validations. The function only applies to | application modifies the device-wide Trust Anchor Database, affecting situations where the application modifies the device-wide Trust Anchor | the validations performed by the [TSF](#abbr_TSF) for other Database, affecting the validations performed by the [TSF](#abbr_TSF) | applications. The user or administrator may be provided the ability to for other applications. The user or administrator may be provided the | globally allow or deny any application requests in order to meet this ability to globally allow or deny any application requests in order to | requirement. meet this requirement.\ | \ | Function [30](#mf-certValidity) must be included in the [ST](#abbr_ST) Function [[30]{.counter}](#certValidity){.certValidity-ref} must be | if \"administrator-configured option\" is selection in included in the [ST](#abbr_ST) if \"administrator-configured option\" is | [FIA\_X509\_EXT.2.2](#FIA_X509_EXT.2.2). selection in [FIA\_X509\_EXT.2.2](#FIA_X509_EXT.2.2).\ | \ | Function [33](#mf-digSign) should be included in the selection if Function [[33]{.counter}](#digSign){.digSign-ref} should be included in | [FPT\_TUD\_EXT.5.1](#FPT_TUD_EXT.5.1) is included in the [ST](#abbr_ST) the selection if [FPT\_TUD\_EXT.5.1](#FPT_TUD_EXT.5.1) is included in | and the configurable option is selected. the [ST](#abbr_ST) and the configurable option is selected.\ | \ | Function [34](#mf-sharedKeys) should be included in the selection if Function [[34]{.counter}](#sharedKeys){.sharedKeys-ref} should be | user or administrator is selected in included in the selection if user or administrator is selected in | [FCS\_STG\_EXT.1.4](#FCS_STG_EXT.1.4). [FCS\_STG\_EXT.1.4](#FCS_STG_EXT.1.4).\ | \ | Function [35](#mf-keyWipeRules) should be included in the selection if Function [[35]{.counter}](#keyWipeRules){.keyWipeRules-ref} should be | user or administrator is selected in included in the selection if user or administrator is selected in | [FCS\_STG\_EXT.1.5](#FCS_STG_EXT.1.5). [FCS\_STG\_EXT.1.5](#FCS_STG_EXT.1.5).\ | \ | Function [36](#mf-unlockBanner) must be included in the selection if Function [[36]{.counter}](#unlockBanner){.unlockBanner-ref} must be | [FTA\_TAB.1](#FTA_TAB.1) is included in the [ST](#abbr_ST). included in the selection if [FTA\_TAB.1](#FTA_TAB.1) is included in the | [ST](#abbr_ST).\ | Function [37](#mf-auditItems) must be included in the selection if \ | [FAU\_SEL.1](#FAU_SEL.1) is included in the [ST](#abbr_ST). Function [[37]{.counter}](#auditItems){.auditItems-ref} must be included | in the selection if [FAU\_SEL.1](#FAU_SEL.1) is included in the | For function [41](#mf-hotspot), hotspot functionality refers to the [ST](#abbr_ST).\ | condition in which the mobile device is serving as an access point to \ | other devices, not the connection of the [TOE](#abbr_TOE) to external For function [[41]{.counter}](#hotspot){.hotspot-ref}, hotspot | hotspots. functionality refers to the condition in which the mobile device is | serving as an access point to other devices, not the connection of the | Functions [42](#mf-dataSharing) and [43](#mf-appGroups) correspond to [TOE](#abbr_TOE) to external hotspots.\ | [FDP\_ACF\_EXT.1.2](#FDP_ACF_EXT.1.2). \ | Functions [[42]{.counter}](#dataSharing){.dataSharing-ref} and | For function [44](#mf-unenroll), [FMT\_SMF\_EXT.2.1](#FMT_SMF_EXT.2.1) [[43]{.counter}](#appGroups){.appGroups-ref} correspond to | specifies actions to be performed when the [TOE](#abbr_TOE) is [FDP\_ACF\_EXT.1.2](#FDP_ACF_EXT.1.2).\ | unenrolled from management. \ | For function [[44]{.counter}](#unenroll){.unenroll-ref}, | For function [45](#mf-alwaysOnVPN), must be included in the [FMT\_SMF\_EXT.2.1](#FMT_SMF_EXT.2.1) specifies actions to be performed | [ST](#abbr_ST) if [IPsec](#abbr_IPsec) is selected in when the [TOE](#abbr_TOE) is unenrolled from management.\ < \ < For function [[45]{.counter}](#alwaysOnVPN){.alwaysOnVPN-ref}, must be < included in the [ST](#abbr_ST) if [IPsec](#abbr_IPsec) is selected in < [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) and the native [IPsec](#abbr_IPsec) [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) and the native [IPsec](#abbr_IPsec) [VPN](#abbr_VPN) client can be configured to be Always-On. Always-On is [VPN](#abbr_VPN) client can be configured to be Always-On. Always-On is defined as when the [TOE](#abbr_TOE) has a network connection the defined as when the [TOE](#abbr_TOE) has a network connection the [VPN](#abbr_VPN) attempts to connect, all data leaving the device uses [VPN](#abbr_VPN) attempts to connect, all data leaving the device uses the [VPN](#abbr_VPN) when the [VPN](#abbr_VPN) is connected and no data the [VPN](#abbr_VPN) when the [VPN](#abbr_VPN) is connected and no data leaves that device when the [VPN](#abbr_VPN) is disconnected. The leaves that device when the [VPN](#abbr_VPN) is disconnected. The configuration of the [VPN](#abbr_VPN) Client itself (with information configuration of the [VPN](#abbr_VPN) Client itself (with information such as [VPN](#abbr_VPN) Gateway, certificates, and algorithms) is such as [VPN](#abbr_VPN) Gateway, certificates, and algorithms) is addressed by the [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) addressed by the [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client. Client. ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1):\ | ::: {.component-activity-header} > [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) describes all The evaluator shall verify that the [TSS](#abbr_TSS) describes all management functions, what role(s) can perform each function, and how management functions, what role(s) can perform each function, and how these functions are (or can be) restricted to the roles identified by these functions are (or can be) restricted to the roles identified by [FMT\_MOF\_EXT.1](#FMT_MOF_EXT.1).\ [FMT\_MOF\_EXT.1](#FMT_MOF_EXT.1).\ \ \ The following activities are organized according to the function number The following activities are organized according to the function number in the table. These activities include [TSS](#abbr_TSS) Evaluation in the table. These activities include [TSS](#abbr_TSS) Evaluation Activities, AGD Evaluation Activities, and test activities.\ Activities, AGD Evaluation Activities, and test activities.\ \ \ Test activities specified below shall take place in the test environment Test activities specified below shall take place in the test environment described in the evaluation activity for described in the evaluation activity for [FPT\_TUD\_EXT.1](#FPT_TUD_EXT.1).\ [FPT\_TUD\_EXT.1](#FPT_TUD_EXT.1).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall consult the AGD guidance to perform each of the The evaluator shall consult the AGD guidance to perform each of the specified tests, iterating each test as necessary if both the user and specified tests, iterating each test as necessary if both the user and administrator may perform the function. The evaluator shall verify that administrator may perform the function. The evaluator shall verify that the AGD guidance describes how to perform each management function, the AGD guidance describes how to perform each management function, including any configuration details. For each specified management including any configuration details. For each specified management function tested, the evaluator shall confirm that the underlying function tested, the evaluator shall confirm that the underlying mechanism exhibits the configured setting.\ mechanism exhibits the configured setting.\ \ \ > ::: > > ::: {.management_function_activities} > The following EAs correspond to specific management functions. > > ::: {.management_function_ea} > **Function [1](#mf-pwd)**\ > > ::: {.eacategory} > [TSS](#abbr_TSS) > ::: > > ::: {.ea} > The evaluator shall verify the [TSS](#abbr_TSS) defines the allowable > policy options: the range of values for both password length and > lifetime, and a description of complexity to include character set and > complexity policies (e.g., configuration and enforcement of number of > uppercase, lowercase, and special characters per password). > ::: > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall exercise the [TSF](#abbr_TSF) configuration as the > administrator and perform positive and negative tests, with at least two > values set for each variable setting, for each of the following:\ > > - minimum password length > - minimum password complexity > - maximum password lifetime > ::: > \ \ > ::: > > ::: {.management_function_ea} > **Function [2](#mf-screenlock)**\ > > ::: {.eacategory} > [TSS](#abbr_TSS) > ::: > > ::: {.ea} > The evaluator shall verify the [TSS](#abbr_TSS) defines the range of > values for both timeout period and number of authentication failures for > all supported authentication mechanisms. > ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: - **Test 1:** The evaluator shall exercise the [TSF](#abbr_TSF) | ::: {.ea} configuration as the administrator and perform positive and negative | The evaluator shall exercise the [TSF](#abbr_TSF) configuration as the tests, with at least two values set for each variable setting, for | administrator. The evaluator shall perform positive and negative tests, each of the following:\ | with at least two values set for each variable setting, for each of the - minimum password length | following:\ - minimum password complexity | - maximum password lifetime | - screen-lock enabled/disabled - **Test 2:** The evaluator shall exercise the [TSF](#abbr_TSF) | - screen lock timeout configuration as the administrator. The evaluator shall perform | - number of authentication failures (may be combined with test for positive and negative tests, with at least two values set for each | [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1)) variable setting, for each of the following:\ | ::: - screen-lock enabled/disabled | - screen lock timeout | \ - number of authentication failures (may be combined with test for | ::: [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1)) | - **Test 3:** The evaluator shall perform the following tests: | ::: {.management_function_ea} a. The evaluator shall exercise the [TSF](#abbr_TSF) configuration | **Function [3](#mf-vpn)**\ to enable the [VPN](#abbr_VPN) protection. These configuration | actions must be used for the testing of the | ::: {.eacategory} [FDP\_IFC\_EXT.1.1](#FDP_IFC_EXT.1.1) requirement. | Tests b. \[conditional\] If \"per-app basis\" is selected, the evaluator | ::: shall create two applications and enable one to use the | [VPN](#abbr_VPN) and the other to not use the [VPN](#abbr_VPN). | ::: {.ea} The evaluator shall exercise each application (attempting to | The evaluator shall perform the following tests: access network resources; for example, by browsing different | websites) individually while capturing packets from the | a. The evaluator shall exercise the [TSF](#abbr_TSF) configuration to [TOE](#abbr_TOE). The evaluator shall verify from the packet | enable the [VPN](#abbr_VPN) protection. These configuration actions capture that the traffic from the [VPN](#abbr_VPN)-enabled | must be used for the testing of the application is encapsulated in [IPsec](#abbr_IPsec) and that the | [FDP\_IFC\_EXT.1.1](#FDP_IFC_EXT.1.1) requirement. traffic from the [VPN](#abbr_VPN)-disabled application is not | b. \[conditional\] If \"per-app basis\" is selected, the evaluator encapsulated in [IPsec](#abbr_IPsec). | shall create two applications and enable one to use the c. \[conditional\] If \"per-groups of application basis\" is | [VPN](#abbr_VPN) and the other to not use the [VPN](#abbr_VPN). The selected, the evaluator shall create two applications and the | evaluator shall exercise each application (attempting to access applications shall be placed into different groups. Enable one | network resources; for example, by browsing different websites) application group to use the [VPN](#abbr_VPN) and the other to | individually while capturing packets from the [TOE](#abbr_TOE). The not use the [VPN](#abbr_VPN). The evaluator shall exercise each | evaluator shall verify from the packet capture that the traffic from application (attempting to access network resources; for | the [VPN](#abbr_VPN)-enabled application is encapsulated in example, by browsing different websites) individually while | [IPsec](#abbr_IPsec) and that the traffic from the capturing packets from the [TOE](#abbr_TOE). The evaluator shall | [VPN](#abbr_VPN)-disabled application is not encapsulated in verify from the packet capture that the traffic from the | [IPsec](#abbr_IPsec). application in the [VPN](#abbr_VPN)-enabled group is | c. \[conditional\] If \"per-groups of application basis\" is selected, encapsulated in [IPsec](#abbr_IPsec) and that the traffic from | the evaluator shall create two applications and the applications the application in the [VPN](#abbr_VPN)-disabled group is not | shall be placed into different groups. Enable one application group encapsulated in [IPsec](#abbr_IPsec). | to use the [VPN](#abbr_VPN) and the other to not use the - **Test 4:** The evaluator shall exercise the [TSF](#abbr_TSF) | [VPN](#abbr_VPN). The evaluator shall exercise each application configuration as the administrator and, if not restricted to the | (attempting to access network resources; for example, by browsing administrator, the user, to enable and disable the state of each | different websites) individually while capturing packets from the radio (e.g. Wi-Fi, cellular, [NFC](#abbr_NFC), Bluetooth). | [TOE](#abbr_TOE). The evaluator shall verify from the packet capture Additionally, the evaluator shall repeat the steps below, booting | that the traffic from the application in the into any auxiliary boot mode supported by the device. For each | [VPN](#abbr_VPN)-enabled group is encapsulated in radio, the evaluator shall:\ | [IPsec](#abbr_IPsec) and that the traffic from the application in \ | the [VPN](#abbr_VPN)-disabled group is not encapsulated in Step 1: Place the antenna of the spectrum analyzer inside the RF | [IPsec](#abbr_IPsec). shielded enclosure. Configure the spectrum analyzer to sweep desired | ::: frequency range for the radio to be tested (based on range provided | in the [TSS](#abbr_TSS))). The ambient noise floor shall be set to | \ -110dBm. Place the [TOE](#abbr_TOE) into the RF shielded enclosure | ::: to isolate them from all other RF traffic.\ | \ | ::: {.management_function_ea} Step 2: The evaluator shall create a baseline of the expected | **Function [4](#mf-radios)**\ behavior of RF signals. The evaluator shall power on the device, | ensure the radio in question is enabled, power off the device, | ::: {.eacategory} enable \"Max Hold\" on the spectrum analyzer and power on the | [TSS](#abbr_TSS) device. The evaluator shall wait 2 minutes at each Authentication | ::: Factor interface prior to entering the necessary password to | complete the boot process, waiting 5 minutes after the device is | ::: {.ea} fully booted. The evaluator shall observe that RF spikes are present | The evaluator shall verify that the [TSS](#abbr_TSS) includes a at the expected uplink channel frequency. The evaluator shall clear | description of each radio and an indication of if the radio can be the \"Max Hold\" on the spectrum analyzer.\ | enabled/disabled along with what role can do so. In addition the \ | evaluator shall verify that the frequency ranges at which each radio Step 3: The evaluator shall verify the absence of RF activity for | operates is included in the [TSS](#abbr_TSS). The evaluator shall verify the uplink channel when the radio in question is disabled. The | that the [TSS](#abbr_TSS) includes at what point in the boot sequence evaluator shall complete the following test five times. The | the radios are powered on and indicates if the radios are used as part evaluator shall power on the device, ensure the radio in question is | of the initialization of the device. disabled, power off the device, enable \"Max Hold\" on the spectrum | ::: analyzer and power on the device. The evaluator shall wait 2 minutes | at each Authentication Factor interface prior to entering the | ::: {.eacategory} necessary password to complete the boot process, waiting 5 minutes | Guidance after the device is fully booted. The evaluator shall clear the | ::: \"Max Hold\" on the spectrum analyzer. If the radios are used for | device initialization, then a spike of RF activity for the uplink | ::: {.ea} channel can be observed initially at device boot. However, if a | The evaluator shall confirm that the AGD guidance describes how to spike of RF activity for the uplink channel of the specific radio | perform the enable/disable function for each radio.\ frequency band is observed after the device is fully booted or at an | \ Authentication Factor interface it is deemed that the radio is | ::: enabled. | - **Test 5:** The evaluator shall perform the following test(s): | ::: {.eacategory} a. The evaluator shall exercise the [TSF](#abbr_TSF) configuration | Tests as the administrator and, if not restricted to the | ::: administrator, the user, to enable and disable the state of each | audio or visual collection devices (e.g. camera, microphone) | ::: {.ea} listed by the [ST](#abbr_ST) author. For each collection device, | The evaluator shall ensure that minimal signal leakage enters the RF the evaluator shall disable the device and then attempt to use | shielded enclosure (i.e. Faraday bag, Faraday box, RF shielded room) by its functionality. The evaluator shall reboot the | performing the following steps:\ [TOE](#abbr_TOE) and verify that disabled collection devices may | \ not be used during or early in the boot process. Additionally, | Step 1: Place the antenna of the spectrum analyzer inside the RF the evaluator shall boot the device into each available | shielded enclosure.\ auxiliary boot mode and verify that the collection device cannot | \ be used. | Step 2: Enable \"Max Hold\" on the spectrum analyzer and perform a b. \[conditional\] If \"per-app basis\" is selected, the evaluator | spectrum sweep of the frequency range between 300 MHz -- 6000 MHz, in I shall create two applications and enable one to use access the | kHz steps (this range should encompass 802.11, 802.15, GSM, UMTS, and A/V device and the other to not access the A/V device. The | [LTE](#abbr_LTE)). This range will not address [NFC](#abbr_NFC) evaluator shall exercise each application attempting to access | 13.56.MHz, another test should be set up with similar constraints to the A/V device individually. The evaluator shall verify that the | address [NFC](#abbr_NFC).\ enabled application is able to access the A/V device and the | \ disabled application is not able to access the A/V device. | If power above -90 dBm is observed, the Faraday box has too great of c. \[conditional\] If \"per-groups of application basis\" is | signal leakage and shall not be used to complete the test for Function selected, the evaluator shall create two applications and the | [4](#mf-radios). The evaluator shall exercise the [TSF](#abbr_TSF) applications shall be placed into different groups. Enable one | configuration as the administrator and, if not restricted to the group to access the A/V device and the other to not access the | administrator, the user, to enable and disable the state of each radio A/V device. The evaluator shall exercise each application | (e.g. Wi-Fi, cellular, [NFC](#abbr_NFC), Bluetooth). Additionally, the attempting to access the A/V device individually. The evaluator | evaluator shall repeat the steps below, booting into any auxiliary boot shall verify that the application in the enabled group is able | mode supported by the device. For each radio, the evaluator shall:\ to access the A/V device and the application in the disabled | \ group is not able to access the A/V device. | Step 1: Place the antenna of the spectrum analyzer inside the RF - **Test 6:** The evaluator shall use the test environment to instruct | shielded enclosure. Configure the spectrum analyzer to sweep desired the [TSF](#abbr_TSF), both as a user and as the administrator, to | frequency range for the radio to be tested (based on range provided in command the device to transition to a locked state, and verify that | the [TSS](#abbr_TSS))). The ambient noise floor shall be set to -110 the device transitions to the locked state upon command. | dBm. Place the [TOE](#abbr_TOE) into the RF shielded enclosure to - **Test 7:** The evaluator shall use the test environment to instruct | isolate them from all other RF traffic.\ the [TSF](#abbr_TSF), both as a user and as the administrator, to | \ command the device to perform a wipe of protected data. The | Step 2: The evaluator shall create a baseline of the expected behavior evaluator must ensure that this management setup is used when | of RF signals. The evaluator shall power on the device, ensure the radio conducting the Evaluation Activities in | in question is enabled, power off the device, enable \"Max Hold\" on the [FCS\_CKM\_EXT.5](#FCS_CKM_EXT.5). | spectrum analyzer and power on the device. The evaluator shall wait 2 - **Test 8:** The evaluator shall exercise the [TSF](#abbr_TSF) | minutes at each Authentication Factor interface prior to entering the configuration as the administrator to restrict particular | necessary password to complete the boot process, waiting 5 minutes after applications, sources of applications, or application installation | the device is fully booted. The evaluator shall observe that RF spikes according to the AGD guidance. The evaluator shall attempt to | are present at the expected uplink channel frequency. The evaluator install unauthorized applications and ensure that this is not | shall clear the \"Max Hold\" on the spectrum analyzer.\ possible. The evaluator shall, in conjunction, perform the following | \ specific tests: | Step 3: The evaluator shall verify the absence of RF activity for the a. \[conditional\] The evaluator shall attempt to connect to an | uplink channel when the radio in question is disabled. The evaluator unauthorized repository in order to install applications. | shall complete the following test five times. The evaluator shall power b. \[conditional\] The evaluator shall attempt to install two | on the device, ensure the radio in question is disabled, power off the applications (one allowlisted, and one not) from a known allowed | device, enable \"Max Hold\" on the spectrum analyzer and power on the repository and verify that the application not on the allowlist | device. The evaluator shall wait 2 minutes at each Authentication Factor is rejected. The evaluator shall also attempt to side-load | interface prior to entering the necessary password to complete the boot executables or installation packages via [USB](#abbr_USB) | process, waiting 5 minutes after the device is fully booted. The connections to determine that the white list is still adhered to | evaluator shall clear the \"Max Hold\" on the spectrum analyzer. If the - **Test 9:** The test of these functions is performed in association | radios are used for device initialization, then a spike of RF activity with [FCS\_STG\_EXT.1](#FCS_STG_EXT.1). | for the uplink channel can be observed initially at device boot. - **Test 10:** The test of these functions is performed in association | However, if a spike of RF activity for the uplink channel of the with [FCS\_STG\_EXT.1](#FCS_STG_EXT.1). | specific radio frequency band is observed after the device is fully - **Test 11:** The evaluator shall import certificates according to | booted or at an Authentication Factor interface it is deemed that the the AGD guidance as the user and/or as the administrator, as | radio is enabled. determined by the administrative guidance. The evaluator shall | ::: verify that no errors occur during import. The evaluator should | perform an action requiring use of the X.509v3 certificate to | \ provide assurance that installation was completed properly. | ::: - **Test 12:** The evaluator shall remove an administrator-imported | certificate and any other categories of certificates included in the | ::: {.management_function_ea} assignment of function [[14]{.counter}](#appRemove){.appRemove-ref} | **Function [5](#mf-audioVisual)**\ from the Trust Anchor Database according to the AGD guidance as the | user and as the administrator. | ::: {.eacategory} - **Test 13:** The evaluator shall verify that user approval is | [TSS](#abbr_TSS) required to enroll the device into management. | ::: - **Test 14:** The evaluator shall attempt to remove applications | according to the AGD guidance and verify that the [TOE](#abbr_TOE) | ::: {.ea} no longer permits users to access those applications or their | The evaluator shall verify that the [TSS](#abbr_TSS) includes a associated data. | description of each collection device and an indication of if it can be - **Test 15:** The evaluator shall attempt to update the | enabled/disabled along with what role can do so. The evaluator shall [TSF](#abbr_TSF) system software following the procedures in the AGD | confirm that the AGD guidance describes how to perform the guidance and verify that updates correctly install and that the | enable/disable function. version numbers of the system software increase. | ::: - **Test 16:** The evaluator shall attempt to install an application | following the procedures in the AGD guidance and verify that the | ::: {.eacategory} application is installed and available on the [TOE](#abbr_TOE). | Tests - **Test 17:** The evaluator shall attempt to remove any Enterprise | ::: applications from the device by following the administrator | guidance. The evaluator shall verify that the [TOE](#abbr_TOE) no | ::: {.ea} longer permits users to access those applications or their | The evaluator shall perform the following test(s): associated data. | - **Test 18:** For each category of information listed in the AGD | a. The evaluator shall exercise the [TSF](#abbr_TSF) configuration as guidance, the evaluator shall verify that when that [TSF](#abbr_TSF) | the administrator and, if not restricted to the administrator, the is configured to limit the information according to the AGD, the | user, to enable and disable the state of each audio or visual information is no longer displayed in the locked state. | collection devices (e.g. camera, microphone) listed by the - **Test 19:** The evaluator shall exercise the [TSF](#abbr_TSF) | [ST](#abbr_ST) author. For each collection device, the evaluator configuration as the administrator and, if not restricted to the | shall disable the device and then attempt to use its functionality. administrator, the user, to enable system-wide data-at-rest | The evaluator shall reboot the [TOE](#abbr_TOE) and verify that protection according to the AGD guidance. The evaluator shall ensure | disabled collection devices may not be used during or early in the that all Evaluation Activities for [DAR](#abbr_DAR) (FDP\_DAR) are | boot process. Additionally, the evaluator shall boot the device into conducted with the device in this configuration. | each available auxiliary boot mode and verify that the collection - **Test 20:** The evaluator shall exercise the [TSF](#abbr_TSF) | device cannot be used. configuration as the administrator and, if not restricted to the | b. \[conditional\] If \"per-app basis\" is selected, the evaluator administrator, the user, to enable removable media's data-at-rest | shall create two applications and enable one to use access the A/V protection according to the AGD guidance. The evaluator shall ensure | device and the other to not access the A/V device. The evaluator that all Evaluation Activities for [DAR](#abbr_DAR) (FDP\_DAR) are | shall exercise each application attempting to access the A/V device conducted with the device in this configuration. | individually. The evaluator shall verify that the enabled - **Test 21:** The evaluator shall perform the following tests. | application is able to access the A/V device and the disabled a. The evaluator shall enable location services device-wide and | application is not able to access the A/V device. shall verify that an application (such as a mapping application) | c. \[conditional\] If \"per-groups of application basis\" is selected, is able to access the [TOE](#abbr_TOE)'s location information. | the evaluator shall create two applications and the applications The evaluator shall disable location services device-wide and | shall be placed into different groups. Enable one group to access shall verify that an application (such as a mapping application) | the A/V device and the other to not access the A/V device. The is unable to access the [TOE](#abbr_TOE)'s location information. | evaluator shall exercise each application attempting to access the b. \[conditional\] If \"per-app basis\" is selected, the evaluator | A/V device individually. The evaluator shall verify that the shall create two applications and enable one to use access the | application in the enabled group is able to access the A/V device location services and the other to not access the location | and the application in the disabled group is not able to access the services. The evaluator shall exercise each application | A/V device. attempting to access location services individually. The | ::: evaluator shall verify that the enabled application is able to | access the location services and the disabled application is not | \ able to access the location services. | ::: - **Test 22:** The evaluator shall verify that the [TSS](#abbr_TSS) | states if the [TOE](#abbr_TOE) supports a [BAF](#abbr_BAF) and/or | ::: {.management_function_ea} hybrid authentication. If the [TOE](#abbr_TOE) does not include a | **Function [6](#mf-lockState)**\ [BAF](#abbr_BAF) and/or hybrid authentication this test is | implicitly met. | ::: {.eacategory} a. \[conditional\] If a [BAF](#abbr_BAF) is selected the evaluator | Tests shall verify that the [TSS](#abbr_TSS) describes the procedure | ::: to enable/disable the [BAF](#abbr_BAF). If the [TOE](#abbr_TOE) | includes multiple BAFs, the evaluator shall verify that the | ::: {.ea} [TSS](#abbr_TSS) describes how to enable/disable each | The evaluator shall use the test environment to instruct the [BAF](#abbr_BAF), specifically if the different modalities can | [TSF](#abbr_TSF), both as a user and as the administrator, to command be individually enabled/disabled. The evaluator shall configure | the device to transition to a locked state, and verify that the device the [TOE](#abbr_TOE) to allow each supported [BAF](#abbr_BAF) to | transitions to the locked state upon command. authenticate and verify that successful authentication can be | ::: achieved using the [BAF](#abbr_BAF). The evaluator shall | configure the [TOE](#abbr_TOE) to disable the use of each | \ supported [BAF](#abbr_BAF) for authentication and confirm that | ::: the [BAF](#abbr_BAF) cannot be used to authenticate. | b. \[conditional\] If \"Hybrid\" is selected the evaluator shall | ::: {.management_function_ea} verify that the [TSS](#abbr_TSS) describes the procedure to | **Function [8](#mf-appInstallRules)**\ enable/disable the hybrid (biometric credential and | PIN/password) authentication. The evaluator shall configure the | ::: {.eacategory} [TOE](#abbr_TOE) to allow hybrid authentication to authenticate | [TSS](#abbr_TSS) and confirm that successful authentication can be achieved using | ::: the hybrid authentication. The evaluator shall configure the | [TOE](#abbr_TOE) to disable the use of hybrid authentication and | ::: {.ea} confirm that the hybrid authentication cannot be used to | The evaluator shall verify the [TSS](#abbr_TSS) describes the allowable authenticate. | application installation policy options based on the selection included - **Test 23:** The test of this function is performed in conjunction | in the [ST](#abbr_ST). If the application allowlist is selected, the with [FIA\_X509\_EXT.2.2](#FIA_X509_EXT.2.2), FCS\_TLSC\_EXT.1.3 in | evaluator shall verify that the [TSS](#abbr_TSS) includes a description the Package for Transport Layer Security. | of each application characteristic upon which the allowlist may be - **Test 24:** The evaluator shall exercise the [TSF](#abbr_TSF) | based. configuration to enable and disable data transfer capabilities over | ::: each externally accessible hardware ports (e.g. [USB](#abbr_USB), SD | card, [HDMI](#abbr_HDMI)) listed by the [ST](#abbr_ST) author. The | ::: {.eacategory} evaluator shall use test equipment for the particular interface to | Tests ensure that no low-level signaling is occurring on all pins used for | ::: data transfer when they are disabled. For each disabled data | transfer capability, the evaluator shall repeat this test by | ::: {.ea} rebooting the device into the normal operational mode and verifying | The evaluator shall exercise the [TSF](#abbr_TSF) configuration as the that the capability is disabled throughout the boot and early | administrator to restrict particular applications, sources of execution stage of the device. | applications, or application installation according to the AGD guidance. - **Test 25:** The evaluator shall attempt to disable each listed | The evaluator shall attempt to install unauthorized applications and protocol in the assignment. The evaluator shall verify that remote | ensure that this is not possible. The evaluator shall, in conjunction, devices can no longer access the [TOE](#abbr_TOE) or | perform the following specific tests: [TOE](#abbr_TOE) resources using any disabled protocols. | - **Test 26:** The evaluator shall exercise the [TSF](#abbr_TSF) | a. \[conditional\] The evaluator shall attempt to connect to an configuration as the administrator and, if not restricted to the | unauthorized repository in order to install applications. administrator, the user, to enable and disable any developer mode. | b. \[conditional\] The evaluator shall attempt to install two The evaluator shall test that developer mode access is not available | applications (one allowlisted, and one not) from a known allowed when its configuration is disabled. The evaluator shall verify the | repository and verify that the application not on the allowlist is developer mode remains disabled during device reboot. | rejected. The evaluator shall also attempt to side-load executables - **Test 27:** For each mechanism listed in the AGD guidance that | or installation packages via [USB](#abbr_USB) connections to provides a \"Forgot Password\" feature or other means where the | determine that the white list is still adhered to local authentication process can be bypassed, the evaluator shall | ::: disable the feature and ensure that they are not able to bypass the | local authentication process. | \ - **Test 28:** The evaluator shall attempt to wipe Enterprise data | ::: resident on the device according to the administrator guidance. The | evaluator shall verify that the data is no longer accessible by the | ::: {.management_function_ea} user. | **Functions [9](#mf-keyStorage)/[10](#mf-keyWipe)**\ - **Test 29:** The evaluator shall perform one of the following tests: | a. \[conditional\] If applications may import certificates to the | ::: {.eacategory} Trust Anchor Database, the evaluator shall write, or the | [TSS](#abbr_TSS) developer shall provide access to, an application that imports a | ::: certificate into the Trust Anchor Database. The evaluator shall | verify that the [TOE](#abbr_TOE) requires approval before | ::: {.ea} allowing the application to import the certificate: | The evaluator shall verify that the [TSS](#abbr_TSS) describes each - The evaluator shall deny the approvals to verify that the | category of keys/secrets that can be imported into the application is not able to import the certificate. Failure | [TSF](#abbr_TSF)'s secure key storage. of import shall be tested by attempting to validate a | ::: certificate that chains to the certificate whose import was | attempted (as described in the evaluation activity for | ::: {.eacategory} [FIA\_X509\_EXT.1](#FIA_X509_EXT.1)). | Tests - The evaluator shall repeat the test, allowing the approval | ::: to verify that the application is able to import the | certificate and that validation occurs. | ::: {.ea} b. \[conditional\] If applications may remove certificates in the | The test of these functions is performed in association with Trust Anchor Database, the evaluator shall write, or the | [FCS\_STG\_EXT.1](#FCS_STG_EXT.1). developer shall provide access to, an application that removes | ::: certificates from the Trust Anchor Database. The evaluator shall | verify that the [TOE](#abbr_TOE) requires approval before | \ allowing the application to remove the certificate: | ::: - The evaluator shall deny the approvals to verify that the | application is not able to remove the certificate. Failure | ::: {.management_function_ea} of removal shall be tested by attempting to validate a | **Function [11](#mf-certImport)**\ certificate that chains to the certificate whose removal was | attempted (as described in the evaluation activity for | ::: {.eacategory} [FIA\_X509\_EXT.1](#FIA_X509_EXT.1)). | Guidance | ::: The evaluator shall repeat the test, allowing the approval to verify | that the application is able to remove/modify the certificate and | ::: {.ea} that validation no longer occurs. | The evaluator shall review the AGD guidance to determine that it - **Test 30:** The test of this function is performed in conjunction | describes the steps needed to import, modify, or remove certificates in with [FIA\_X509\_EXT.2.2](#FIA_X509_EXT.2.2). | the Trust Anchor database, and that the users that have authority to - **Test 31:** The evaluator shall attempt to disable each cellular | import those certificates (e.g., only administrator, or both protocol according to the administrator guidance. The evaluator | administrators and users) are identified. shall attempt to connect the device to a cellular network and, using | ::: network analysis tools, verify that the device does not allow | negotiation of the disabled protocols. | ::: {.eacategory} - **Test 32:** The evaluator shall attempt to read any device audit | Tests logs according to the administrator guidance and verify that the | ::: logs may be read. This test may be performed in conjunction with the | evaluation activity of [FAU\_GEN.1](#FAU_GEN.1). | ::: {.ea} - **Test 33:** The test of this function is performed in conjunction | The evaluator shall import certificates according to the AGD guidance as with [FPT\_TUD\_EXT.5.1](#FPT_TUD_EXT.5.1). | the user and/or as the administrator, as determined by the - **Test 34:** The test of this function is performed in conjunction | administrative guidance. The evaluator shall verify that no errors occur with [FCS\_STG\_EXT.1](#FCS_STG_EXT.1). | during import. The evaluator should perform an action requiring use of - **Test 35:** The test of this function is performed in conjunction | the X.509v3 certificate to provide assurance that installation was with [FCS\_STG\_EXT.1](#FCS_STG_EXT.1). | completed properly. - **Test 36:** The test of this function is performed in conjunction | ::: with [FTA\_TAB.1](#FTA_TAB.1). | - **Test 37:** The test of this function is performed in conjunction | \ with [FAU\_SEL.1](#FAU_SEL.1). | ::: - **Test 38:** The test of this function is performed in conjunction | with [FPT\_NOT\_EXT.2.1](#FPT_NOT_EXT.2.1). | ::: {.management_function_ea} - **Test 39:** The evaluator shall perform the following tests based | **Function [12](#mf-certWipe)**\ on the selections made in the table: | a. \[conditional\] The evaluator shall disable [USB](#abbr_USB) | ::: {.eacategory} mass storage mode, attach the device to a computer, and verify | [TSS](#abbr_TSS) that the computer cannot mount the [TOE](#abbr_TOE) as a drive. | ::: The evaluator shall reboot the [TOE](#abbr_TOE) and repeat this | test with other supported auxiliary boot modes. | ::: {.ea} b. \[conditional\] The evaluator shall disable [USB](#abbr_USB) | The evaluator shall verify that the [TSS](#abbr_TSS) describes each data transfer without user authentication, attach the device to | additional category of X.509 certificates and their use within the a computer, and verify that the [TOE](#abbr_TOE) requires user | [TSF](#abbr_TSF). authentication before the computer can access [TOE](#abbr_TOE) | ::: data. The evaluator shall reboot the [TOE](#abbr_TOE) and repeat | this test with other supported auxiliary boot modes. | ::: {.eacategory} c. \[conditional\] The evaluator shall disable [USB](#abbr_USB) | Tests data transfer without connecting system authentication, attach | ::: the device to a computer, and verify that the [TOE](#abbr_TOE) | requires connecting system authentication before the computer | ::: {.ea} can access [TOE](#abbr_TOE) data. The evaluator shall then | The evaluator shall remove an administrator-imported certificate and any connect the [TOE](#abbr_TOE) to another computer and verify that | other categories of certificates included in the assignment of function the computer cannot access [TOE](#abbr_TOE) data. The evaluator | [14](#mf-appRemove) from the Trust Anchor Database according to the AGD shall then connect the [TOE](#abbr_TOE) to the original computer | guidance as the user and as the administrator. and verify that the computer can access [TOE](#abbr_TOE) data. | ::: - **Test 40:** If \"all applications\" is selected, the evaluator | shall disable each selected backup location in turn and verify that | \ the [TOE](#abbr_TOE) cannot complete a backup. The evaluator shall | ::: then enable each selected backup location in turn and verify that | the [TOE](#abbr_TOE) can perform a backup.\ | ::: {.management_function_ea} \ | **Function [13](#mf-enroll)**\ If \"selected applications\" is selected, the evaluator shall | disable each selected backup location in turn and verify that for | ::: {.eacategory} the selected application the [TOE](#abbr_TOE) prevents backup from | [TSS](#abbr_TSS) occurring. The evaluator shall then enable each selected backup | ::: location in turn and verify that for the selected application the | [TOE](#abbr_TOE) can perform a backup.\ | ::: {.ea} \ | The evaluator shall examine the [TSS](#abbr_TSS) to ensure that it If \"selected groups of applications\" is selected, the evaluator | contains a description of each management function that will be enforced shall disable each selected backup location in turn and verify that | by the enterprise once the device is enrolled. The evaluator shall for a group of applications the [TOE](#abbr_TOE) prevents the backup | examine the AGD guidance to determine that this same information is from occurring. The evaluator shall then enable each selected backup | present. location in turn and verify for the group of application the | ::: [TOE](#abbr_TOE) can perform a backup.\ | \ | ::: {.eacategory} If \"configuration data\" is selected, the evaluator shall disable | Tests each selected backup location in turn and verify that the | ::: [TOE](#abbr_TOE) prevents the backup of configuration data from | occurring. The evaluator shall then enable each selected backup | ::: {.ea} location in turn and verify that the [TOE](#abbr_TOE) can perform a | The evaluator shall verify that user approval is required to enroll the backup of configuration data. | device into management. - **Test 41:** The evaluator shall perform the following tests based | ::: on the selections in Function | [[41]{.counter}](#hotspot){.hotspot-ref}. | \ a. \[conditional\] The evaluator shall enable hotspot functionality | ::: with each of the of the support authentication methods. The | evaluator shall connect to the hotspot with another device and | ::: {.management_function_ea} verify that the hotspot functionality requires the configured | **Function [14](#mf-appRemove)**\ authentication method. | b. \[conditional\] The evaluator shall enable [USB](#abbr_USB) | ::: {.eacategory} tethering functionality with each of the of the support | [TSS](#abbr_TSS) authentication methods. The evaluator shall connect to the | ::: [TOE](#abbr_TOE) over [USB](#abbr_USB) with another device and | verify that the tethering functionality requires the configured | ::: {.ea} authentication method. | The evaluator shall verify that the [TSS](#abbr_TSS) includes an - **Test 42:** The test of this function is performed in conjunction | indication of what applications (e.g., user-installed applications, with [FDP\_ACF\_EXT.1.2](#FDP_ACF_EXT.1.2). | Administrator-installed applications, or Enterprise applications) can be - **Test 43:** The evaluator shall set a policy to cause a designated | removed along with what role can do so. The evaluator shall examine the application to be placed into a particular application group. The | AGD guidance to determine that it details, for each type of application evaluator shall then install the designated application and verify | that can be removed, the procedures necessary to remove those that it was placed into the correct group. | applications and their associated data. For the purposes of this - **Test 44:** The evaluator shall attempt to unenroll the device from | Evaluation Activity, \"associated data\" refers to data that are created management and verify that the steps described in | by the app during its operation that do not exist independent of the [FMT\_SMF\_EXT.2.1](#FMT_SMF_EXT.2.1) are performed. This test | app\'s existence, for instance, configuration data, or e-mail should be performed in conjunction with the | information that's part of an e-mail client. It does not, on the other [FMT\_SMF\_EXT.2.1](#FMT_SMF_EXT.2.1) evaluation activity. | hand, refer to data such as word processing documents (for a word - **Test 45:** The evaluator shall verify that the [TSS](#abbr_TSS) | processing app) or photos (for a photo or camera app). contains guidance to configure the [VPN](#abbr_VPN) as Always-On. | ::: The evaluator shall configure the [VPN](#abbr_VPN) as Always-On and | perform the following test. | ::: {.eacategory} a. The evaluator shall verify that when the [VPN](#abbr_VPN) is | Tests connected all traffic is routed through the [VPN](#abbr_VPN). | ::: This test is performed in conjunction with | [FDP\_IFC\_EXT.1.1](#FDP_IFC_EXT.1.1). | ::: {.ea} b. The evaluator shall verify that when the [VPN](#abbr_VPN) is not | The evaluator shall attempt to remove applications according to the AGD established, that no traffic leaves the device. The evaluator | guidance and verify that the [TOE](#abbr_TOE) no longer permits users to shall ensure that the [TOE](#abbr_TOE) has network connectivity | access those applications or their associated data. and that the [VPN](#abbr_VPN) is established. The evaluator | ::: shall use a packet sniffing tool to capture the traffic leaving | the [TOE](#abbr_TOE). The evaluator shall disable the | \ [VPN](#abbr_VPN) connection on the server side. The evaluator | ::: shall perform actions with the device such as navigating to | websites, using provided applications, and accessing other | ::: {.management_function_ea} Internet resources and verify that no traffic leaves the device. | **Function [15](#mf-update)**\ c. The evaluator shall verify that the [TOE](#abbr_TOE) has network | connectivity and that the [VPN](#abbr_VPN) is established. The | ::: {.eacategory} evaluator shall disable network connectivity (i.e. Airplane | Tests Mode) and verify that the [VPN](#abbr_VPN) disconnects. The | ::: evaluator shall re-establish network connectivity and verify | that the [VPN](#abbr_VPN) automatically reconnects. | ::: {.ea} - **Test 46:** The evaluator shall verify that the [TSS](#abbr_TSS) | The evaluator shall attempt to update the [TSF](#abbr_TSF) system describes the procedure to revoke a biometric credential stored on | software following the procedures in the AGD guidance and verify that the [TOE](#abbr_TOE). The evaluator shall configure the | updates correctly install and that the version numbers of the system [TOE](#abbr_TOE) to use [BAF](#abbr_BAF) and confirm that the | software increase. biometric can be used to authenticate to the device. The evaluator | ::: shall revoke the biometric credential's ability to authenticate to | the [TOE](#abbr_TOE) and confirm that the same [BAF](#abbr_BAF) | \ cannot be used to authenticate to the device. | ::: - **Test 47:** The evaluator shall design and perform tests to | demonstrate that the function may be configured and that the | ::: {.management_function_ea} intended behavior of the function is enacted by the | **Function [16](#mf-appInstall)**\ [TOE](#abbr_TOE). | > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall attempt to install an application following the > procedures in the AGD guidance and verify that the application is > installed and available on the [TOE](#abbr_TOE). > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [17](#mf-entAppRemove)**\ > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall attempt to remove any Enterprise applications from > the device by following the administrator guidance. The evaluator shall > verify that the [TOE](#abbr_TOE) no longer permits users to access those > applications or their associated data. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [18](#mf-notifications)**\ > > ::: {.eacategory} > Guidance > ::: > > ::: {.ea} > The evaluator shall examine the AGD Guidance to determine that it > specifies, for at least each category of information selected for > Function [18](#mf-notifications), how to enable and disable display > information for that type of information in the locked state. > ::: > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > For each category of information listed in the AGD guidance, the > evaluator shall verify that when that [TSF](#abbr_TSF) is configured to > limit the information according to the AGD, the information is no longer > displayed in the locked state. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [19](#mf-dar)**\ > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall exercise the [TSF](#abbr_TSF) configuration as the > administrator and, if not restricted to the administrator, the user, to > enable system-wide data-at-rest protection according to the AGD > guidance. The evaluator shall ensure that all Evaluation Activities for > [DAR](#abbr_DAR) (FDP\_DAR) are conducted with the device in this > configuration. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [20](#mf-rmediaDar)**\ > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall exercise the [TSF](#abbr_TSF) configuration as the > administrator and, if not restricted to the administrator, the user, to > enable removable media's data-at-rest protection according to the AGD > guidance. The evaluator shall ensure that all Evaluation Activities for > [DAR](#abbr_DAR) (FDP\_DAR) are conducted with the device in this > configuration. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [21](#mf-location)**\ > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall perform the following tests. > > a. The evaluator shall enable location services device-wide and shall > verify that an application (such as a mapping application) is able > to access the [TOE](#abbr_TOE)'s location information. The evaluator > shall disable location services device-wide and shall verify that an > application (such as a mapping application) is unable to access the > [TOE](#abbr_TOE)'s location information. > b. \[conditional\] If \"per-app basis\" is selected, the evaluator > shall create two applications and enable one to use access the > location services and the other to not access the location services. > The evaluator shall exercise each application attempting to access > location services individually. The evaluator shall verify that the > enabled application is able to access the location services and the > disabled application is not able to access the location services. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [22](#mf-authFactors)**\ > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall verify that the [TSS](#abbr_TSS) states if the > [TOE](#abbr_TOE) supports a [BAF](#abbr_BAF) and/or hybrid > authentication. If the [TOE](#abbr_TOE) does not include a > [BAF](#abbr_BAF) and/or hybrid authentication this test is implicitly > met. > > a. \[conditional\] If a [BAF](#abbr_BAF) is selected the evaluator > shall verify that the [TSS](#abbr_TSS) describes the procedure to > enable/disable the [BAF](#abbr_BAF). If the [TOE](#abbr_TOE) > includes multiple [BAFs](#abbr_BAF), the evaluator shall verify that > the [TSS](#abbr_TSS) describes how to enable/disable each > [BAF](#abbr_BAF), specifically if the different modalities can be > individually enabled/disabled. The evaluator shall configure the > [TOE](#abbr_TOE) to allow each supported [BAF](#abbr_BAF) to > authenticate and verify that successful authentication can be > achieved using the [BAF](#abbr_BAF). The evaluator shall configure > the [TOE](#abbr_TOE) to disable the use of each supported > [BAF](#abbr_BAF) for authentication and confirm that the > [BAF](#abbr_BAF) cannot be used to authenticate. > b. \[conditional\] If \"Hybrid\" is selected the evaluator shall verify > that the [TSS](#abbr_TSS) describes the procedure to enable/disable > the hybrid (biometric credential and PIN/password) authentication. > The evaluator shall configure the [TOE](#abbr_TOE) to allow hybrid > authentication to authenticate and confirm that successful > authentication can be achieved using the hybrid authentication. The > evaluator shall configure the [TOE](#abbr_TOE) to disable the use of > hybrid authentication and confirm that the hybrid authentication > cannot be used to authenticate. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [23](#mf-certInvalid)**\ > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The test of this function is performed in conjunction with > [FIA\_X509\_EXT.2.2](#FIA_X509_EXT.2.2), FCS\_TLSC\_EXT.1.3 in the > Package for Transport Layer Security. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [24](#mf-externalPorts) \[CONDITIONAL\]**\ > > ::: {.eacategory} > [TSS](#abbr_TSS) > ::: > > ::: {.ea} > The evaluator shall verify that the [TSS](#abbr_TSS) includes a list of > each externally accessible hardware port and an indication of if data > transfer over that port can be enabled/disabled. AGD guidance will > describe how to perform the enable/disable function. > ::: > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall exercise the [TSF](#abbr_TSF) configuration to > enable and disable data transfer capabilities over each externally > accessible hardware ports (e.g. [USB](#abbr_USB), SD card, > [HDMI](#abbr_HDMI)) listed by the [ST](#abbr_ST) author. The evaluator > shall use test equipment for the particular interface to ensure that no > low-level signaling is occurring on all pins used for data transfer when > they are disabled. For each disabled data transfer capability, the > evaluator shall repeat this test by rebooting the device into the normal > operational mode and verifying that the capability is disabled > throughout the boot and early execution stage of the device. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [25](#mf-serverProtocols) \[CONDITIONAL\]**\ > > ::: {.eacategory} > [TSS](#abbr_TSS) > ::: > > ::: {.ea} > The evaluator shall verify that the [TSS](#abbr_TSS) describes how the > [TSF](#abbr_TSF) acts as a server in each of the protocols listed in the > [ST](#abbr_ST), and the reason for acting as a server. > ::: > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall attempt to disable each listed protocol in the > assignment. The evaluator shall verify that remote devices can no longer > access the [TOE](#abbr_TOE) or [TOE](#abbr_TOE) resources using any > disabled protocols. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [26](#mf-devModes) \[CONDITIONAL\]**\ > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall exercise the [TSF](#abbr_TSF) configuration as the > administrator and, if not restricted to the administrator, the user, to > enable and disable any developer mode. The evaluator shall test that > developer mode access is not available when its configuration is > disabled. The evaluator shall verify the developer mode remains disabled > during device reboot. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [27](#mf-authBypass) \[CONDITIONAL\]**\ > > ::: {.eacategory} > Guidance > ::: > > ::: {.ea} > The evaluator shall examine the AGD guidance to determine that it > describes how to enable and disable any \"Forgot Password\", password > hint, or remote authentication (to bypass local authentication > mechanisms) capability. > ::: > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > For each mechanism listed in the AGD guidance that provides a \"Forgot > Password\" feature or other means where the local authentication process > can be bypassed, the evaluator shall disable the feature and ensure that > they are not able to bypass the local authentication process. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [28](#mf-wipeEntData) \[CONDITIONAL\]**\ > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall attempt to wipe Enterprise data resident on the > device according to the administrator guidance. The evaluator shall > verify that the data is no longer accessible by the user. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [29](#mf-appCert) \[CONDITIONAL\]**\ > > ::: {.eacategory} > [TSS](#abbr_TSS) > ::: > > ::: {.ea} > The evaluator shall verify that the [TSS](#abbr_TSS) describes how > approval for an application to perform the selected action (import, > removal) with respect to certificates in the Trust Anchor Database is > accomplished (e.g., a pop-up, policy setting, etc.).\ > \ > The evaluator shall also verify that the [API](#abbr_API) documentation > provided according to [Section 5.2.2 Class ADV: > Development](#adv){.dynref} includes any security functions (import, > modification, or destruction of the Trust Anchor Database) allowed by > applications. > ::: > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall perform one of the following tests: > > a. \[conditional\] If applications may import certificates to the Trust > Anchor Database, the evaluator shall write, or the developer shall > provide access to, an application that imports a certificate into > the Trust Anchor Database. The evaluator shall verify that the > [TOE](#abbr_TOE) requires approval before allowing the application > to import the certificate: > - The evaluator shall deny the approvals to verify that the > application is not able to import the certificate. Failure of > import shall be tested by attempting to validate a certificate > that chains to the certificate whose import was attempted (as > described in the evaluation activity for > [FIA\_X509\_EXT.1](#FIA_X509_EXT.1)). > - The evaluator shall repeat the test, allowing the approval to > verify that the application is able to import the certificate > and that validation occurs. > b. \[conditional\] If applications may remove certificates in the Trust > Anchor Database, the evaluator shall write, or the developer shall > provide access to, an application that removes certificates from the > Trust Anchor Database. The evaluator shall verify that the > [TOE](#abbr_TOE) requires approval before allowing the application > to remove the certificate: > - The evaluator shall deny the approvals to verify that the > application is not able to remove the certificate. Failure of > removal shall be tested by attempting to validate a certificate > that chains to the certificate whose removal was attempted (as > described in the evaluation activity for > [FIA\_X509\_EXT.1](#FIA_X509_EXT.1)). > > The evaluator shall repeat the test, allowing the approval to verify > that the application is able to remove/modify the certificate and that > validation no longer occurs. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [30](#mf-certValidity) \[CONDITIONAL\]**\ > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The test of this function is performed in conjunction with > [FIA\_X509\_EXT.2.2](#FIA_X509_EXT.2.2). > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [31](#mf-cellular) \[CONDITIONAL\]**\ > > ::: {.eacategory} > [TSS](#abbr_TSS) > ::: > > ::: {.ea} > The evaluator shall ensure that the [TSS](#abbr_TSS) describes which > cellular protocols can be disabled. > ::: > > ::: {.eacategory} > Guidance > ::: > > ::: {.ea} > The evaluator shall confirm that the AGD guidance describes the > procedure for disabling each cellular protocol identified in the > [TSS](#abbr_TSS). > ::: > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall attempt to disable each cellular protocol according > to the administrator guidance. The evaluator shall attempt to connect > the device to a cellular network and, using network analysis tools, > verify that the device does not allow negotiation of the disabled > protocols. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [32](#mf-auditLogs) \[CONDITIONAL\]**\ > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall attempt to read any device audit logs according to > the administrator guidance and verify that the logs may be read. This > test may be performed in conjunction with the evaluation activity of > [FAU\_GEN.1](#FAU_GEN.1). > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [33](#mf-digSign) \[CONDITIONAL\]**\ > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The test of this function is performed in conjunction with > [FPT\_TUD\_EXT.5.1](#FPT_TUD_EXT.5.1). > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [34](#mf-sharedKeys) \[CONDITIONAL\]**\ > > ::: {.eacategory} > [TSS](#abbr_TSS) > ::: > > ::: {.ea} > The evaluator shall verify that the [TSS](#abbr_TSS) describes how the > approval for exceptions for shared use of keys/secrets by multiple > applications is accomplished (e.g., a pop-up, policy setting, etc.). > ::: > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The test of this function is performed in conjunction with > [FCS\_STG\_EXT.1](#FCS_STG_EXT.1). > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [35](#mf-keyWipeRules) \[CONDITIONAL\]**\ > > ::: {.eacategory} > [TSS](#abbr_TSS) > ::: > > ::: {.ea} > The evaluator shall verify that the [TSS](#abbr_TSS) describes how the > approval for exceptions for destruction of keys/secrets by applications > that did not import the key/secret is accomplished (e.g., a pop-up, > policy setting, etc.). > ::: > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The test of this function is performed in conjunction with > [FCS\_STG\_EXT.1](#FCS_STG_EXT.1). > ::: \ \ ::: ::: > > ::: {.management_function_ea} > **Function [36](#mf-unlockBanner) \[CONDITIONAL\]**\ > > ::: {.eacategory} > [TSS](#abbr_TSS) > ::: > > ::: {.ea} > The evaluator shall verify that the [TSS](#abbr_TSS) describes any > restrictions in banner settings (e.g., character limitations). > ::: > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The test of this function is performed in conjunction with > [FTA\_TAB.1](#FTA_TAB.1). > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [37](#mf-auditItems) \[CONDITIONAL\]**\ > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The test of this function is performed in conjunction with > [FAU\_SEL.1](#FAU_SEL.1). > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [38](#mf-integ) \[CONDITIONAL\]**\ > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The test of this function is performed in conjunction with > [FPT\_NOT\_EXT.2.1](#FPT_NOT_EXT.2.1). > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [39](#mf-USB) \[CONDITIONAL\]**\ > > ::: {.eacategory} > [TSS](#abbr_TSS) > ::: > > ::: {.ea} > The evaluator shall verify that the [TSS](#abbr_TSS) includes a > description of how data transfers can be managed over [USB](#abbr_USB). > ::: > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall perform the following tests based on the selections > made in the table: > > a. \[conditional\] The evaluator shall disable [USB](#abbr_USB) mass > storage mode, attach the device to a computer, and verify that the > computer cannot mount the [TOE](#abbr_TOE) as a drive. The evaluator > shall reboot the [TOE](#abbr_TOE) and repeat this test with other > supported auxiliary boot modes. > b. \[conditional\] The evaluator shall disable [USB](#abbr_USB) data > transfer without user authentication, attach the device to a > computer, and verify that the [TOE](#abbr_TOE) requires user > authentication before the computer can access [TOE](#abbr_TOE) data. > The evaluator shall reboot the [TOE](#abbr_TOE) and repeat this test > with other supported auxiliary boot modes. > c. \[conditional\] The evaluator shall disable [USB](#abbr_USB) data > transfer without connecting system authentication, attach the device > to a computer, and verify that the [TOE](#abbr_TOE) requires > connecting system authentication before the computer can access > [TOE](#abbr_TOE) data. The evaluator shall then connect the > [TOE](#abbr_TOE) to another computer and verify that the computer > cannot access [TOE](#abbr_TOE) data. The evaluator shall then > connect the [TOE](#abbr_TOE) to the original computer and verify > that the computer can access [TOE](#abbr_TOE) data. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [40](#mf-backup) \[CONDITIONAL\]**\ > > ::: {.eacategory} > [TSS](#abbr_TSS) > ::: > > ::: {.ea} > The evaluator shall verify that the [TSS](#abbr_TSS) includes a > description of available backup methods that can be enabled/disabled. If > \"selected applications\" or \"selected groups of applications\" are > selected the [TSS](#abbr_TSS) shall include which applications of groups > of applications backup can be enabled/disabled. > ::: > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > If \"all applications\" is selected, the evaluator shall disable each > selected backup location in turn and verify that the [TOE](#abbr_TOE) > cannot complete a backup. The evaluator shall then enable each selected > backup location in turn and verify that the [TOE](#abbr_TOE) can perform > a backup.\ > \ > If \"selected applications\" is selected, the evaluator shall disable > each selected backup location in turn and verify that for the selected > application the [TOE](#abbr_TOE) prevents backup from occurring. The > evaluator shall then enable each selected backup location in turn and > verify that for the selected application the [TOE](#abbr_TOE) can > perform a backup.\ > \ > If \"selected groups of applications\" is selected, the evaluator shall > disable each selected backup location in turn and verify that for a > group of applications the [TOE](#abbr_TOE) prevents the backup from > occurring. The evaluator shall then enable each selected backup location > in turn and verify for the group of application the [TOE](#abbr_TOE) can > perform a backup.\ > \ > If \"configuration data\" is selected, the evaluator shall disable each > selected backup location in turn and verify that the [TOE](#abbr_TOE) > prevents the backup of configuration data from occurring. The evaluator > shall then enable each selected backup location in turn and verify that > the [TOE](#abbr_TOE) can perform a backup of configuration data. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [41](#mf-hotspot) \[CONDITIONAL\]**\ > > ::: {.eacategory} > [TSS](#abbr_TSS) > ::: > > ::: {.ea} > The evaluator shall verify that the [TSS](#abbr_TSS) includes a > description of Hotspot functionality and [USB](#abbr_USB) tethering to > include any authentication for these. > ::: > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall perform the following tests based on the selections > in Function [41](#mf-hotspot). > > a. \[conditional\] The evaluator shall enable hotspot functionality > with each of the of the support authentication methods. The > evaluator shall connect to the hotspot with another device and > verify that the hotspot functionality requires the configured > authentication method. > b. \[conditional\] The evaluator shall enable [USB](#abbr_USB) > tethering functionality with each of the of the support > authentication methods. The evaluator shall connect to the > [TOE](#abbr_TOE) over [USB](#abbr_USB) with another device and > verify that the tethering functionality requires the configured > authentication method. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [42](#mf-dataSharing) \[CONDITIONAL\]**\ > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The test of this function is performed in conjunction with > [FDP\_ACF\_EXT.1.2](#FDP_ACF_EXT.1.2). > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [43](#mf-appGroups) \[CONDITIONAL\]**\ > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall set a policy to cause a designated application to be > placed into a particular application group. The evaluator shall then > install the designated application and verify that it was placed into > the correct group. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [44](#mf-unenroll) \[CONDITIONAL\]**\ > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall attempt to unenroll the device from management and > verify that the steps described in [FMT\_SMF\_EXT.2.1](#FMT_SMF_EXT.2.1) > are performed. This test should be performed in conjunction with the > [FMT\_SMF\_EXT.2.1](#FMT_SMF_EXT.2.1) evaluation activity. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [45](#mf-alwaysOnVPN) \[CONDITIONAL\]**\ > > ::: {.eacategory} > [TSS](#abbr_TSS) > ::: > > ::: {.ea} > The evaluator shall verify that the [TSS](#abbr_TSS) contains guidance > to configure the [VPN](#abbr_VPN) as Always-On. > ::: > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall configure the [VPN](#abbr_VPN) as Always-On and > perform the following test. > > a. The evaluator shall verify that when the [VPN](#abbr_VPN) is > connected all traffic is routed through the [VPN](#abbr_VPN). This > test is performed in conjunction with > [FDP\_IFC\_EXT.1.1](#FDP_IFC_EXT.1.1). > b. The evaluator shall verify that when the [VPN](#abbr_VPN) is not > established, that no traffic leaves the device. The evaluator shall > ensure that the [TOE](#abbr_TOE) has network connectivity and that > the [VPN](#abbr_VPN) is established. The evaluator shall use a > packet sniffing tool to capture the traffic leaving the > [TOE](#abbr_TOE). The evaluator shall disable the [VPN](#abbr_VPN) > connection on the server side. The evaluator shall perform actions > with the device such as navigating to websites, using provided > applications, and accessing other Internet resources and verify that > no traffic leaves the device. > c. The evaluator shall verify that the [TOE](#abbr_TOE) has network > connectivity and that the [VPN](#abbr_VPN) is established. The > evaluator shall disable network connectivity (i.e. Airplane Mode) > and verify that the [VPN](#abbr_VPN) disconnects. The evaluator > shall re-establish network connectivity and verify that the > [VPN](#abbr_VPN) automatically reconnects. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [46](#mf-bioRevoke) \[CONDITIONAL\]**\ > > ::: {.eacategory} > [TSS](#abbr_TSS) > ::: > > ::: {.ea} > The evaluator shall verify that the [TSS](#abbr_TSS) describes the > procedure to revoke a biometric credential stored on the > [TOE](#abbr_TOE). > ::: > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall configure the [TOE](#abbr_TOE) to use > [BAF](#abbr_BAF) and confirm that the biometric can be used to > authenticate to the device. The evaluator shall revoke the biometric > credential's ability to authenticate to the [TOE](#abbr_TOE) and confirm > that the same [BAF](#abbr_BAF) cannot be used to authenticate to the > device. > ::: > > \ > ::: > > ::: {.management_function_ea} > **Function [47](#mf-other) \[CONDITIONAL\]**\ > > ::: {.eacategory} > [TSS](#abbr_TSS) > ::: > > ::: {.ea} > The evaluator shall verify that the [TSS](#abbr_TSS) describes all > assigned security management functions and their intended behavior. > ::: > > ::: {.eacategory} > Tests > ::: > > ::: {.ea} > The evaluator shall design and perform tests to demonstrate that the > function may be configured and that the intended behavior of the > function is enacted by the [TOE](#abbr_TOE). > ::: > > \ > ::: > ::: ::: ::: ::: ::: ::: ::: ::: {#FMT_SMF_EXT.2 .comp} ::: {#FMT_SMF_EXT.2 .comp} #### FMT\_SMF\_EXT.2 Specification of Remediation Actions #### FMT\_SMF\_EXT.2 Specification of Remediation Actions ::: {.element} ::: {.element} ::: {#FMT_SMF_EXT.2.1 .reqid} ::: {#FMT_SMF_EXT.2.1 .reqid} [FMT\_SMF\_EXT.2.1](#FMT_SMF_EXT.2.1){.abbr} [FMT\_SMF\_EXT.2.1](#FMT_SMF_EXT.2.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall offer \[**selection**: *wipe of protected | The [TSF](#abbr_TSF) shall offer \[**selection**: [wipe of protected data*, *wipe of sensitive data*, *remove Enterprise applications*, | data]{#_s_381 .selectable-content}, [wipe of sensitive data]{#_s_382 *remove all device-stored Enterprise resource data*, *remove Enterprise | .selectable-content}, [remove Enterprise applications]{#_s_383 secondary authentication data*, *\[**assignment**: [list other available | .selectable-content}, [remove all device-stored Enterprise resource remediation actions]{.assignable-content}\]*\] upon un-enrollment and | data]{#_s_384 .selectable-content}, [remove Enterprise secondary \[**selection**: *\[**assignment**: [other administrator-configured | authentication data]{#_s_385 .selectable-content}, [\[**assignment**: triggers]{.assignable-content}\]*, *no other triggers*\]. | [list other available remediation | actions]{.assignable-content}\]]{#_s_386 .selectable-content} \] upon ::: {.appnote} | unenrollment and \[**selection**: [\[**assignment**: [other [Application Note: ]{.note-header}[ Un-enrollment may consist of | administrator-configured triggers]{.assignable-content}\]]{#_s_387 removing the [MDM](#abbr_MDM) agent or removing the administrator's | .selectable-content}, [ no other triggers]{#_s_388 .selectable-content} policies. The functions in the selection are remediation actions that | \]. [TOE](#abbr_TOE) may provide (perhaps via APIs) to the administrator | (perhaps via an [MDM](#abbr_MDM) agent) that may be performed upon | ::: {.appnote} un-enrollment. \"Enterprise applications\" refers to applications that | [Application Note: ]{.note-header}[ Unenrollment may consist of removing are in the Enterprise application group. \"Enterprise resource data\" | the [MDM](#abbr_MDM) agent or removing the administrator's policies. The refers to all stored Enterprise data and the separate resources that are | functions in the selection are remediation actions that [TOE](#abbr_TOE) available to the Enterprise application group, per | may provide (perhaps via APIs) to the administrator (perhaps via an > [MDM](#abbr_MDM) agent) that may be performed upon unenrollment. > \"Enterprise applications\" refers to applications that are in the > Enterprise application group. \"Enterprise resource data\" refers to all > stored Enterprise data and the separate resources that are available to > the Enterprise application group, per [FDP\_ACF\_EXT.2.1](#FDP_ACF_EXT.2.1). If [FDP\_ACF\_EXT.2.1](#FDP_ACF_EXT.2.1). If [FDP\_ACF\_EXT.2.1](#FDP_ACF_EXT.2.1) is included in the [ST](#abbr_ST), [FDP\_ACF\_EXT.2.1](#FDP_ACF_EXT.2.1) is included in the [ST](#abbr_ST), then \"remove all device-stored Enterprise resource data\" must be then \"remove all device-stored Enterprise resource data\" must be selected, and is defined to be all resources selected in selected, and is defined to be all resources selected in [FDP\_ACF\_EXT.2.1](#FDP_ACF_EXT.2.1). If [FDP\_ACF\_EXT.2.1](#FDP_ACF_EXT.2.1). If [FIA\_UAU\_EXT.4.1](#FIA_UAU_EXT.4.1) is included in the [ST](#abbr_ST), [FIA\_UAU\_EXT.4.1](#FIA_UAU_EXT.4.1) is included in the [ST](#abbr_ST), then \"remove Enterprise secondary authentication data\" must be then \"remove Enterprise secondary authentication data\" must be selected. If [FIA\_UAU\_EXT.4.1](#FIA_UAU_EXT.4.1) is not included in selected. If [FIA\_UAU\_EXT.4.1](#FIA_UAU_EXT.4.1) is not included in the [ST](#abbr_ST), then \"remove Enterprise secondary authentication the [ST](#abbr_ST), then \"remove Enterprise secondary authentication data\" cannot be selected. Enterprise secondary authentication data only data\" cannot be selected. Enterprise secondary authentication data only refers to any data stored on the [TOE](#abbr_TOE) that is specifically refers to any data stored on the [TOE](#abbr_TOE) that is specifically used as part of a secondary authentication mechanism to authenticate used as part of a secondary authentication mechanism to authenticate access to Enterprise applications and shared resources. Material that is access to Enterprise applications and shared resources. Material that is used for the [TOE](#abbr_TOE)'s primary authentication mechanism or used for the [TOE](#abbr_TOE)'s primary authentication mechanism or other purposes not related to authentication to or protection of other purposes not related to authentication to or protection of Enterprise applications or shared resources should not be removed.\ Enterprise applications or shared resources should not be removed.\ \ \ Protected data is all non-TSF data, including all user or enterprise Protected data is all non-TSF data, including all user or enterprise data. Some or all of this data may be considered sensitive data as well. data. Some or all of this data may be considered sensitive data as well. If \"wipe of protected data\" is selected it is assumed that the If \"wipe of protected data\" is selected it is assumed that the sensitive data is wiped as well. However, if \"wipe of sensitive data\" sensitive data is wiped as well. However, if \"wipe of sensitive data\" is selected, it does not imply that all non-TSF data (protected data) is is selected, it does not imply that all non-TSF data (protected data) is wiped. If \"wipe of protected data\" or \"wipe of sensitive data\" is wiped. If \"wipe of protected data\" or \"wipe of sensitive data\" is selected the wipe must be in accordance with selected the wipe must be in accordance with [FCS\_CKM\_EXT.5.1](#FCS_CKM_EXT.5.1). Thus cryptographically wiping the [FCS\_CKM\_EXT.5.1](#FCS_CKM_EXT.5.1). Thus cryptographically wiping the device is an acceptable remediation action. ]{.note} device is an acceptable remediation action. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FMT\_SMF\_EXT.2](#FMT_SMF_EXT.2):\ | ::: {.component-activity-header} > [FMT\_SMF\_EXT.2](#FMT_SMF_EXT.2) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) describes all The evaluator shall verify that the [TSS](#abbr_TSS) describes all available remediation actions, when they are available for use, and any available remediation actions, when they are available for use, and any other administrator-configured triggers. The evaluator shall verify that other administrator-configured triggers. The evaluator shall verify that the [TSS](#abbr_TSS) describes how the remediation actions are provided the [TSS](#abbr_TSS) describes how the remediation actions are provided to the administrator.\ to the administrator.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluator shall use the test environment to iteratively configure The evaluator shall use the test environment to iteratively configure the device to perform each remediation action in the selection. The the device to perform each remediation action in the selection. The evaluator shall configure the remediation action per how the evaluator shall configure the remediation action per how the [TSS](#abbr_TSS) states it is provided to the administrator. The test [TSS](#abbr_TSS) states it is provided to the administrator. The test environment could be a [MDM](#abbr_MDM) agent application, but can also environment could be a [MDM](#abbr_MDM) agent application, but can also be an application with administrator access.\ | be an application with administrator access. ::: ::: ::: ::: ::: ::: ::: ::: ### 5.1.7 Class: Protection of the TSF (FPT) {#fpt .indexable data-level="3"} ### 5.1.7 Class: Protection of the TSF (FPT) {#fpt .indexable data-level="3"} ::: {#FPT_AEX_EXT.1 .comp} ::: {#FPT_AEX_EXT.1 .comp} #### FPT\_AEX\_EXT.1 Application Address Space Layout Randomization #### FPT\_AEX\_EXT.1 Application Address Space Layout Randomization ::: {.element} ::: {.element} ::: {#FPT_AEX_EXT.1.1 .reqid} ::: {#FPT_AEX_EXT.1.1 .reqid} [FPT\_AEX\_EXT.1.1](#FPT_AEX_EXT.1.1){.abbr} [FPT\_AEX\_EXT.1.1](#FPT_AEX_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide address space layout randomization The [TSF](#abbr_TSF) shall provide address space layout randomization [ASLR](#abbr_ASLR) to applications. [ASLR](#abbr_ASLR) to applications. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FPT_AEX_EXT.1.2 .reqid} ::: {#FPT_AEX_EXT.1.2 .reqid} [FPT\_AEX\_EXT.1.2](#FPT_AEX_EXT.1.2){.abbr} [FPT\_AEX\_EXT.1.2](#FPT_AEX_EXT.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The base address of any user-space memory mapping will consist of at The base address of any user-space memory mapping will consist of at least 8 unpredictable bits. least 8 unpredictable bits. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The 8 unpredictable bits may be [Application Note: ]{.note-header}[The 8 unpredictable bits may be provided by the [TSF](#abbr_TSF) [RBG](#abbr_RBG) (as specified in provided by the [TSF](#abbr_TSF) [RBG](#abbr_RBG) (as specified in [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1)) but is not required.]{.note} [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1)) but is not required.]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_AEX\_EXT.1](#FPT_AEX_EXT.1):\ | ::: {.component-activity-header} > [FPT\_AEX\_EXT.1](#FPT_AEX_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure that the [TSS](#abbr_TSS) section of the The evaluator shall ensure that the [TSS](#abbr_TSS) section of the [ST](#abbr_ST) describes how the 8 bits are generated and provides a [ST](#abbr_ST) describes how the 8 bits are generated and provides a justification as to why those bits are unpredictable.\ justification as to why those bits are unpredictable.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following test require the developer **Evaluation Activity Note:** The following test require the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products.\ tools that are typically not found on consumer Mobile Device products.\ > []{.testlist-} - **Test 1:** The evaluator must select 3 apps included with the | - [Test 73[](#_t_109){.definition}]{#_t_109}: The evaluator must [TSF](#abbr_TSF). These must include any web browser or mail client | select 3 apps included with the [TSF](#abbr_TSF). These must include included with the [TSF](#abbr_TSF). For each of these apps, the | any web browser or mail client included with the [TSF](#abbr_TSF). evaluator shall launch the same app on two separate Mobile Devices | For each of these apps, the evaluator shall launch the same app on of the same type and compare all memory mapping locations. The | two separate Mobile Devices of the same type and compare all memory evaluator must ensure that no memory mappings are placed in the same | mapping locations. The evaluator must ensure that no memory mappings location on both devices.\ | are placed in the same location on both devices.\ \ \ If the rare (at most 1/256) chance occurs that two mappings are the If the rare (at most 1/256) chance occurs that two mappings are the same for a single app and not the same for the other two apps, the same for a single app and not the same for the other two apps, the evaluator shall repeat the test with that app to verify that in the evaluator shall repeat the test with that app to verify that in the second test the mappings are different. second test the mappings are different. < \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_AEX_EXT.2 .comp} ::: {#FPT_AEX_EXT.2 .comp} #### FPT\_AEX\_EXT.2 Memory Page Permissions #### FPT\_AEX\_EXT.2 Memory Page Permissions ::: {.element} ::: {.element} ::: {#FPT_AEX_EXT.2.1 .reqid} ::: {#FPT_AEX_EXT.2.1 .reqid} [FPT\_AEX\_EXT.2.1](#FPT_AEX_EXT.2.1){.abbr} [FPT\_AEX\_EXT.2.1](#FPT_AEX_EXT.2.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall be able to enforce read, write, and execute The [TSF](#abbr_TSF) shall be able to enforce read, write, and execute permissions on every page of physical memory. permissions on every page of physical memory. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_AEX\_EXT.2](#FPT_AEX_EXT.2):\ | ::: {.component-activity-header} > [FPT\_AEX\_EXT.2](#FPT_AEX_EXT.2) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure that the [TSS](#abbr_TSS) describes of the The evaluator shall ensure that the [TSS](#abbr_TSS) describes of the memory management unit (MMU), and ensures that this description | memory management unit ([MMU](#abbr_MMU)), and ensures that this documents the ability of the MMU to enforce read, write, and execute | description documents the ability of the [MMU](#abbr_MMU) to enforce permissions on all pages of virtual memory.\ | read, write, and execute permissions on all pages of virtual memory.\ \ < \ \ > ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_AEX_EXT.3 .comp} ::: {#FPT_AEX_EXT.3 .comp} #### FPT\_AEX\_EXT.3 Stack Overflow Protection #### FPT\_AEX\_EXT.3 Stack Overflow Protection ::: {.element} ::: {.element} ::: {#FPT_AEX_EXT.3.1 .reqid} ::: {#FPT_AEX_EXT.3.1 .reqid} [FPT\_AEX\_EXT.3.1](#FPT_AEX_EXT.3.1){.abbr} [FPT\_AEX\_EXT.3.1](#FPT_AEX_EXT.3.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} [TSF](#abbr_TSF) processes that execute in a non-privileged execution [TSF](#abbr_TSF) processes that execute in a non-privileged execution domain on the application processor shall implement stack-based buffer domain on the application processor shall implement stack-based buffer overflow protection. overflow protection. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[A \"non-privileged execution domain\" [Application Note: ]{.note-header}[A \"non-privileged execution domain\" refers to the user mode (as opposed to kernel mode, for instance) of the refers to the user mode (as opposed to kernel mode, for instance) of the processor. While not all [TSF](#abbr_TSF) processes must implement such processor. While not all [TSF](#abbr_TSF) processes must implement such protection, it is expected that most of the processes (to include protection, it is expected that most of the processes (to include libraries used by [TSF](#abbr_TSF) processes) do implement buffer libraries used by [TSF](#abbr_TSF) processes) do implement buffer overflow protections.]{.note} overflow protections.]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_AEX\_EXT.3](#FPT_AEX_EXT.3):\ | ::: {.component-activity-header} > [FPT\_AEX\_EXT.3](#FPT_AEX_EXT.3) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall determine that the [TSS](#abbr_TSS) contains a The evaluator shall determine that the [TSS](#abbr_TSS) contains a description of stack-based buffer overflow protections implemented in description of stack-based buffer overflow protections implemented in the [TSF](#abbr_TSF) software which runs in the non-privileged execution the [TSF](#abbr_TSF) software which runs in the non-privileged execution mode of the application processor. The exact implementation of mode of the application processor. The exact implementation of stack-based buffer overflow protection will vary by platform. Example stack-based buffer overflow protection will vary by platform. Example implementations may be activated through compiler options such as implementations may be activated through compiler options such as \"-fstack-protector-all\", \"-fstack-protector\", and \"/GS\" flags. The \"-fstack-protector-all\", \"-fstack-protector\", and \"/GS\" flags. The evaluator shall ensure that the [TSS](#abbr_TSS) contains an inventory evaluator shall ensure that the [TSS](#abbr_TSS) contains an inventory of [TSF](#abbr_TSF) binaries and libraries, indicating those that of [TSF](#abbr_TSF) binaries and libraries, indicating those that implement stack-based buffer overflow protections as well as those that implement stack-based buffer overflow protections as well as those that do not. The [TSS](#abbr_TSS) must provide a rationale for those binaries do not. The [TSS](#abbr_TSS) must provide a rationale for those binaries and libraries that are not protected in this manner.\ and libraries that are not protected in this manner.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_AEX_EXT.4 .comp} ::: {#FPT_AEX_EXT.4 .comp} #### FPT\_AEX\_EXT.4 Domain Isolation #### FPT\_AEX\_EXT.4 Domain Isolation ::: {.element} ::: {.element} ::: {#FPT_AEX_EXT.4.1 .reqid} ::: {#FPT_AEX_EXT.4.1 .reqid} [FPT\_AEX\_EXT.4.1](#FPT_AEX_EXT.4.1){.abbr} [FPT\_AEX\_EXT.4.1](#FPT_AEX_EXT.4.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall protect itself from modification by untrusted The [TSF](#abbr_TSF) shall protect itself from modification by untrusted subjects. subjects. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FPT_AEX_EXT.4.2 .reqid} ::: {#FPT_AEX_EXT.4.2 .reqid} [FPT\_AEX\_EXT.4.2](#FPT_AEX_EXT.4.2){.abbr} [FPT\_AEX\_EXT.4.2](#FPT_AEX_EXT.4.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall enforce isolation of address space between The [TSF](#abbr_TSF) shall enforce isolation of address space between applications. applications. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[In addition to the [TSF](#abbr_TSF) [Application Note: ]{.note-header}[In addition to the [TSF](#abbr_TSF) software (e.g., kernel image, device drivers, trusted applications) that software (e.g., kernel image, device drivers, trusted applications) that resides in storage, the execution context (e.g., address space, resides in storage, the execution context (e.g., address space, processor registers, per-process environment variables) of the software processor registers, per-process environment variables) of the software operating in a privileged mode of the processor (e.g., kernel), as well operating in a privileged mode of the processor (e.g., kernel), as well as the context of the trusted applications is to be protected. In as the context of the trusted applications is to be protected. In addition to the software, any configuration information that controls or addition to the software, any configuration information that controls or influences the behavior of the [TSF](#abbr_TSF) is also to be protected influences the behavior of the [TSF](#abbr_TSF) is also to be protected from modification by untrusted subjects.\ from modification by untrusted subjects.\ \ \ Configuration information includes, but is not limited to, user and Configuration information includes, but is not limited to, user and administrative management function settings, WLAN profiles, and administrative management function settings, WLAN profiles, and Bluetooth data such as the service-level security requirements Bluetooth data such as the service-level security requirements database.\ database.\ \ \ Untrusted subjects include untrusted applications; unauthorized users Untrusted subjects include untrusted applications; unauthorized users who have access to the device while powered off, in a screen-locked who have access to the device while powered off, in a screen-locked state, or when booted into auxiliary boot modes; and, unauthorized users state, or when booted into auxiliary boot modes; and, unauthorized users or untrusted software or hardware which may have access to the device or untrusted software or hardware which may have access to the device over a wired interface, either when the device is in a screen-locked over a wired interface, either when the device is in a screen-locked state or booted into auxiliary boot modes. ]{.note} state or booted into auxiliary boot modes. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_AEX\_EXT.4](#FPT_AEX_EXT.4):\ | ::: {.component-activity-header} > [FPT\_AEX\_EXT.4](#FPT_AEX_EXT.4) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure that the [TSS](#abbr_TSS) describes the The evaluator shall ensure that the [TSS](#abbr_TSS) describes the mechanisms that are in place that prevents non-TSF software from mechanisms that are in place that prevents non-TSF software from modifying the [TSF](#abbr_TSF) software or [TSF](#abbr_TSF) data that modifying the [TSF](#abbr_TSF) software or [TSF](#abbr_TSF) data that governs the behavior of the [TSF](#abbr_TSF). These mechanisms could governs the behavior of the [TSF](#abbr_TSF). These mechanisms could range from hardware-based means (e.g. \"execution rings\" and memory range from hardware-based means (e.g. \"execution rings\" and memory management functionality); to software-based means (e.g. boundary management functionality); to software-based means (e.g. boundary checking of inputs to APIs). The evaluator determines that the described checking of inputs to APIs). The evaluator determines that the described mechanisms appear reasonable to protect the [TSF](#abbr_TSF) from mechanisms appear reasonable to protect the [TSF](#abbr_TSF) from modification.\ modification.\ \ \ The evaluator shall ensure the [TSS](#abbr_TSS) describes how the The evaluator shall ensure the [TSS](#abbr_TSS) describes how the [TSF](#abbr_TSF) ensures that the address spaces of applications are [TSF](#abbr_TSF) ensures that the address spaces of applications are kept separate from one another.\ kept separate from one another.\ \ \ The evaluator shall ensure the [TSS](#abbr_TSS) details the The evaluator shall ensure the [TSS](#abbr_TSS) details the [USSD](#abbr_USSD) and [MMI](#abbr_MMI) codes available from the dialer [USSD](#abbr_USSD) and [MMI](#abbr_MMI) codes available from the dialer at the locked state or during auxiliary boot modes that may alter the at the locked state or during auxiliary boot modes that may alter the behavior of the [TSF](#abbr_TSF). The evaluator shall ensure that this behavior of the [TSF](#abbr_TSF). The evaluator shall ensure that this description includes the code, the action performed by the description includes the code, the action performed by the [TSF](#abbr_TSF), and a justification that the actions performed do not [TSF](#abbr_TSF), and a justification that the actions performed do not modify user or [TSF](#abbr_TSF) data. If no [USSD](#abbr_USSD) or modify user or [TSF](#abbr_TSF) data. If no [USSD](#abbr_USSD) or [MMI](#abbr_MMI) codes are available, the evaluator shall ensure that [MMI](#abbr_MMI) codes are available, the evaluator shall ensure that the [TSS](#abbr_TSS) provides a description of the method by which the [TSS](#abbr_TSS) provides a description of the method by which actions prescribed by these codes are prevented.\ actions prescribed by these codes are prevented.\ \ \ The evaluator shall ensure the [TSS](#abbr_TSS) documents any The evaluator shall ensure the [TSS](#abbr_TSS) documents any [TSF](#abbr_TSF) data (including software, execution context, [TSF](#abbr_TSF) data (including software, execution context, configuration information, and audit logs) which may be accessed and configuration information, and audit logs) which may be accessed and modified over a wired interface in auxiliary boot modes. The evaluator modified over a wired interface in auxiliary boot modes. The evaluator shall ensure that the description includes data, which is modified in shall ensure that the description includes data, which is modified in support of update or restore of the device. The evaluator shall ensure support of update or restore of the device. The evaluator shall ensure that this documentation includes the auxiliary boot modes in which the that this documentation includes the auxiliary boot modes in which the data may be modified, the methods for entering the auxiliary boot modes, data may be modified, the methods for entering the auxiliary boot modes, the location of the data, the manner in which data may be modified, the the location of the data, the manner in which data may be modified, the data format and packaging necessary to support modification, and data format and packaging necessary to support modification, and software and/or hardware tools, if any, which are necessary for software and/or hardware tools, if any, which are necessary for modifying the data.\ modifying the data.\ \ \ The evaluator shall ensure that the [TSS](#abbr_TSS) provides a The evaluator shall ensure that the [TSS](#abbr_TSS) provides a description of the means by which unauthorized and undetected description of the means by which unauthorized and undetected modification (that is, excluding cryptographically verified updates per modification (that is, excluding cryptographically verified updates per [FPT\_TUD\_EXT.2](#FPT_TUD_EXT.2)) of the [TSF](#abbr_TSF) data over the [FPT\_TUD\_EXT.2](#FPT_TUD_EXT.2)) of the [TSF](#abbr_TSF) data over the wired interface in auxiliary boots modes is prevented. The lack of wired interface in auxiliary boots modes is prevented. The lack of publicly available tools is not sufficient justification. Examples of publicly available tools is not sufficient justification. Examples of sufficient justification include auditing of changes, cryptographic sufficient justification include auditing of changes, cryptographic verification in the form of a digital signature or hash, disabling the verification in the form of a digital signature or hash, disabling the auxiliary boot modes, and access control mechanisms that prevent writing auxiliary boot modes, and access control mechanisms that prevent writing to files or flashing partitions.\ to files or flashing partitions.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following tests require the vendor to **Evaluation Activity Note:** The following tests require the vendor to provide access to a test platform that provides the evaluator with tools provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products. In that are typically not found on consumer Mobile Device products. In addition, the vendor provides a list of files (e.g., system files, addition, the vendor provides a list of files (e.g., system files, libraries, configuration files, audit logs) that make up the libraries, configuration files, audit logs) that make up the [TSF](#abbr_TSF) data. This list could be organized by [TSF](#abbr_TSF) data. This list could be organized by folders/directories (e.g., /usr/sbin, /etc), as well as individual files folders/directories (e.g., /usr/sbin, /etc), as well as individual files that may exist outside of the identified directories.\ that may exist outside of the identified directories.\ > []{.testlist-} - **Test 1:** The evaluator shall create and load an app onto the | - [Test 74[](#_t_110){.definition}]{#_t_110}: The evaluator shall Mobile Device. This app shall attempt to traverse over all file | create and load an app onto the Mobile Device. This app shall systems and report any locations to which data can be written or | attempt to traverse over all file systems and report any locations overwritten. The evaluator must ensure that none of these locations | to which data can be written or overwritten. The evaluator must are part of the [OS](#abbr_OS) software, device drivers, system and | ensure that none of these locations are part of the [OS](#abbr_OS) security configuration files, key material, or another untrusted | software, device drivers, system and security configuration files, application's image/data. For example, it is acceptable for a | key material, or another untrusted application's image/data. For trusted photo editor app to have access to the data created by the | example, it is acceptable for a trusted photo editor app to have camera app, but a calculator application shall not have access to | access to the data created by the camera app, but a calculator the pictures. | application shall not have access to the pictures. - **Test 2:** For each available auxiliary boot mode, the evaluator | - [Test 75[](#_t_111){.definition}]{#_t_111}: For each available shall attempt to modify a [TSF](#abbr_TSF) file of their choosing | auxiliary boot mode, the evaluator shall attempt to modify a using the software and/or hardware tools described in the | [TSF](#abbr_TSF) file of their choosing using the software and/or [TSS](#abbr_TSS). The evaluator shall verify that the modification | hardware tools described in the [TSS](#abbr_TSS). The evaluator fails. | shall verify that the modification fails. < \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_JTA_EXT.1 .comp} ::: {#FPT_JTA_EXT.1 .comp} #### FPT\_JTA\_EXT.1 JTAG Disablement #### FPT\_JTA\_EXT.1 JTAG Disablement ::: {.element} ::: {.element} ::: {#FPT_JTA_EXT.1.1 .reqid} ::: {#FPT_JTA_EXT.1.1 .reqid} [FPT\_JTA\_EXT.1.1](#FPT_JTA_EXT.1.1){.abbr} [FPT\_JTA\_EXT.1.1](#FPT_JTA_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall \[**selection**: *disable access through | The [TSF](#abbr_TSF) shall \[**selection**: [disable access through hardware*, *control access by a signing key*\] to JTAG. | hardware]{#_s_391 .selectable-content}, [control access by a signing > key]{#_s_392 .selectable-content} \] to JTAG. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[This requirement means that access to [Application Note: ]{.note-header}[This requirement means that access to JTAG must be disabled either through hardware and/or restricted through JTAG must be disabled either through hardware and/or restricted through the use of a signing key.]{.note} the use of a signing key.]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_JTA\_EXT.1](#FPT_JTA_EXT.1):\ | ::: {.component-activity-header} > [FPT\_JTA\_EXT.1](#FPT_JTA_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} If \"disable access through hardware\" is selected:\ If \"disable access through hardware\" is selected:\ The evaluator shall examine the [TSS](#abbr_TSS) to determine the The evaluator shall examine the [TSS](#abbr_TSS) to determine the location of the JTAG ports on the [TSF](#abbr_TSF), to include the order location of the JTAG ports on the [TSF](#abbr_TSF), to include the order of the ports (i.e. Data In, Data Out, Clock, etc.).\ of the ports (i.e. Data In, Data Out, Clock, etc.).\ \ \ If \"control access by a signing key\" is selected:\ If \"control access by a signing key\" is selected:\ The evaluator shall examine the [TSS](#abbr_TSS) to determine how access The evaluator shall examine the [TSS](#abbr_TSS) to determine how access to the JTAG is controlled by a signing key. The evaluator shall examine to the JTAG is controlled by a signing key. The evaluator shall examine the [TSS](#abbr_TSS) to determine when the JTAG can be accessed, i.e. the [TSS](#abbr_TSS) to determine when the JTAG can be accessed, i.e. what has the access to the signing key.\ what has the access to the signing key.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following test requires the developer **Evaluation Activity Note:** The following test requires the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with chip level access.\ chip level access.\ \ \ If \"disable access through hardware\" is selected:\ If \"disable access through hardware\" is selected:\ The evaluator shall connect a packet analyzer to the JTAG ports. The The evaluator shall connect a packet analyzer to the JTAG ports. The evaluator shall query the JTAG port for its device ID and confirm that evaluator shall query the JTAG port for its device ID and confirm that the device ID cannot be retrieved.\ the device ID cannot be retrieved.\ \ \ \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_KST_EXT.1 .comp} ::: {#FPT_KST_EXT.1 .comp} #### FPT\_KST\_EXT.1 Key Storage #### FPT\_KST\_EXT.1 Key Storage ::: {.element} ::: {.element} ::: {#FPT_KST_EXT.1.1 .reqid} ::: {#FPT_KST_EXT.1.1 .reqid} [FPT\_KST\_EXT.1.1](#FPT_KST_EXT.1.1){.abbr} [FPT\_KST\_EXT.1.1](#FPT_KST_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall not store any plaintext key material in The [TSF](#abbr_TSF) shall not store any plaintext key material in readable non-volatile memory. readable non-volatile memory. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The intention of this requirement is [Application Note: ]{.note-header}[The intention of this requirement is that the [TOE](#abbr_TOE) will not write plaintext keying material to that the [TOE](#abbr_TOE) will not write plaintext keying material to persistent storage. For the purposes of this requirement, keying persistent storage. For the purposes of this requirement, keying material refers to authentication data, passwords, secret/private material refers to authentication data, passwords, secret/private symmetric keys, private asymmetric keys, data used to derive keys, etc. symmetric keys, private asymmetric keys, data used to derive keys, etc. These values must be stored encrypted.\ These values must be stored encrypted.\ \ \ This requirement also applies to any value derived from passwords. Thus, This requirement also applies to any value derived from passwords. Thus, the [TOE](#abbr_TOE) cannot store plaintext password hashes for the [TOE](#abbr_TOE) cannot store plaintext password hashes for comparison purposes before protected data is decrypted, and the comparison purposes before protected data is decrypted, and the [TOE](#abbr_TOE) should use key derivation and decryption to verify the [TOE](#abbr_TOE) should use key derivation and decryption to verify the Password Authentication Factor.\ Password Authentication Factor.\ \ \ If a [BAF](#abbr_BAF) is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), If a [BAF](#abbr_BAF) is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), keying material also refers to source biometric data (i.e. fingerprint), keying material also refers to source biometric data (i.e. fingerprint), enrollment and authentication templates, the features an algorithm uses enrollment and authentication templates, the features an algorithm uses to perform biometric authentication for enrollment or verification (i.e. to perform biometric authentication for enrollment or verification (i.e. location of minutia), threshold values used in making the match location of minutia), threshold values used in making the match adjudication, intermediate calculations generated while building an adjudication, intermediate calculations generated while building an enrollment or authentication template (i.e. direction maps, minutia enrollment or authentication template (i.e. direction maps, minutia counts, binarized and skeletonized representations of friction ridge counts, binarized and skeletonized representations of friction ridge patterns, etc.), and final match scores. Any images or metadata patterns, etc.), and final match scores. Any images or metadata identifying the user for authentication shall be stored encrypted.\ identifying the user for authentication shall be stored encrypted.\ \ \ If \"hybrid\" is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), in addition If \"hybrid\" is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), in addition to the keying material included for the [BAF](#abbr_BAF), mentioned in to the keying material included for the [BAF](#abbr_BAF), mentioned in the previous paragraph, keying material also refers to the PIN/password the previous paragraph, keying material also refers to the PIN/password used as part of the hybrid authentication. ]{.note} used as part of the hybrid authentication. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_KST\_EXT.1](#FPT_KST_EXT.1):\ | ::: {.component-activity-header} > [FPT\_KST\_EXT.1](#FPT_KST_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall consult the [TSS](#abbr_TSS) section of the The evaluator shall consult the [TSS](#abbr_TSS) section of the [ST](#abbr_ST) in performing the Evaluation Activities for this [ST](#abbr_ST) in performing the Evaluation Activities for this requirement.\ requirement.\ \ \ In performing their review, the evaluator shall determine that the In performing their review, the evaluator shall determine that the [TSS](#abbr_TSS) contains a description of the activities that happen on [TSS](#abbr_TSS) contains a description of the activities that happen on power-up and password authentication relating to the decryption of DEKs, | power-up and password authentication relating to the decryption of stored keys, and data.\ | [DEKs](#abbr_DEK), stored keys, and data.\ \ \ The evaluator shall ensure that the description also covers how the The evaluator shall ensure that the description also covers how the cryptographic functions in the FCS requirements are being used to cryptographic functions in the FCS requirements are being used to perform the encryption functions, including how the KEKs, DEKs, and | perform the encryption functions, including how the KEKs, stored keys are unwrapped, saved, and used by the [TOE](#abbr_TOE) so as | [DEKs](#abbr_DEK), and stored keys are unwrapped, saved, and used by the to prevent plaintext from being written to non-volatile storage. The | [TOE](#abbr_TOE) so as to prevent plaintext from being written to evaluator shall ensure that the [TSS](#abbr_TSS) describes, for each | non-volatile storage. The evaluator shall ensure that the power-down scenario how the [TOE](#abbr_TOE) ensures that all keys in | [TSS](#abbr_TSS) describes, for each power-down scenario how the non-volatile storage are not stored in plaintext.\ | [TOE](#abbr_TOE) ensures that all keys in non-volatile storage are not > stored in plaintext.\ \ \ The evaluator shall ensure that the [TSS](#abbr_TSS) describes how other The evaluator shall ensure that the [TSS](#abbr_TSS) describes how other functions available in the system (e.g., regeneration of the keys) functions available in the system (e.g., regeneration of the keys) ensure that no unencrypted key material is present in persistent ensure that no unencrypted key material is present in persistent storage.\ storage.\ \ \ The evaluator shall review the [TSS](#abbr_TSS) to determine that it The evaluator shall review the [TSS](#abbr_TSS) to determine that it makes a case that key material is not written unencrypted to the makes a case that key material is not written unencrypted to the persistent storage.\ persistent storage.\ \ \ For each [BAF](#abbr_BAF) selected in [FIA\_UAU.5.1](#FIA_UAU.5.1):\ For each [BAF](#abbr_BAF) selected in [FIA\_UAU.5.1](#FIA_UAU.5.1):\ \ \ The evaluator shall determine that the [TSS](#abbr_TSS) also contains a The evaluator shall determine that the [TSS](#abbr_TSS) also contains a description of the activities that happen on biometric authentication, description of the activities that happen on biometric authentication, relating to the decryption of DEKs, stored keys, and data. In addition | relating to the decryption of [DEKs](#abbr_DEK), stored keys, and data. how the system ensures that the biometric keying material is not stored | In addition how the system ensures that the biometric keying material is unencrypted in persistent storage.\ | not stored unencrypted in persistent storage.\ \ < \ \ > ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_KST_EXT.2 .comp} ::: {#FPT_KST_EXT.2 .comp} #### FPT\_KST\_EXT.2 No Key Transmission #### FPT\_KST\_EXT.2 No Key Transmission ::: {.element} ::: {.element} ::: {#FPT_KST_EXT.2.1 .reqid} ::: {#FPT_KST_EXT.2.1 .reqid} [FPT\_KST\_EXT.2.1](#FPT_KST_EXT.2.1){.abbr} [FPT\_KST\_EXT.2.1](#FPT_KST_EXT.2.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall not transmit any plaintext key material The [TSF](#abbr_TSF) shall not transmit any plaintext key material outside the security boundary of the [TOE](#abbr_TOE). outside the security boundary of the [TOE](#abbr_TOE). ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The intention of this requirement is [Application Note: ]{.note-header}[The intention of this requirement is to prevent the logging of plaintext key information to a service that to prevent the logging of plaintext key information to a service that transmits the information off-device. For the purposes of this transmits the information off-device. For the purposes of this requirement, key material refers to keys, passwords, and other material requirement, key material refers to keys, passwords, and other material that is used to derive keys.\ that is used to derive keys.\ \ \ If a [BAF](#abbr_BAF) is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), If a [BAF](#abbr_BAF) is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), keying material also refers to source biometric data (i.e. fingerprint), keying material also refers to source biometric data (i.e. fingerprint), enrollment and authentication templates, the features an algorithm uses enrollment and authentication templates, the features an algorithm uses to perform biometric authentication for enrollment or verification (i.e. to perform biometric authentication for enrollment or verification (i.e. location of minutia), threshold values used in making the match location of minutia), threshold values used in making the match adjudication, intermediate calculations generated while building an adjudication, intermediate calculations generated while building an enrollment or authentication template (i.e. direction maps, minutia enrollment or authentication template (i.e. direction maps, minutia counts, binarized and skeletonized representations of friction ridge counts, binarized and skeletonized representations of friction ridge patterns), and final match scores.\ patterns), and final match scores.\ \ \ If \"hybrid\" is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), in addition If \"hybrid\" is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), in addition to the keying material included for the [BAF](#abbr_BAF), mentioned in to the keying material included for the [BAF](#abbr_BAF), mentioned in the previous paragraph, keying material also refers to the PIN/password the previous paragraph, keying material also refers to the PIN/password used as part of the hybrid authentication.\ used as part of the hybrid authentication.\ \ \ In the future, this requirement will apply to symmetric and asymmetric In the future, this requirement will apply to symmetric and asymmetric private keys stored in the [TOE](#abbr_TOE) secure key storage where private keys stored in the [TOE](#abbr_TOE) secure key storage where applications are outside the boundary of the [TOE](#abbr_TOE). Thus, the applications are outside the boundary of the [TOE](#abbr_TOE). Thus, the [TSF](#abbr_TSF) will be required to provide cryptographic key [TSF](#abbr_TSF) will be required to provide cryptographic key operations (signature, encryption, and decryption) on behalf of operations (signature, encryption, and decryption) on behalf of applications ([FCS\_SRV\_EXT.2.1](#FCS_SRV_EXT.2.1)) that have access to applications ([FCS\_SRV\_EXT.2.1](#FCS_SRV_EXT.2.1)) that have access to those keys. ]{.note} those keys. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_KST\_EXT.2](#FPT_KST_EXT.2):\ | ::: {.component-activity-header} > [FPT\_KST\_EXT.2](#FPT_KST_EXT.2) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall consult the [TSS](#abbr_TSS) section of the The evaluator shall consult the [TSS](#abbr_TSS) section of the [ST](#abbr_ST) in performing the Evaluation Activities for this [ST](#abbr_ST) in performing the Evaluation Activities for this requirement. The evaluator shall ensure that the [TSS](#abbr_TSS) requirement. The evaluator shall ensure that the [TSS](#abbr_TSS) describes the [TOE](#abbr_TOE) security boundary. The cryptographic describes the [TOE](#abbr_TOE) security boundary. The cryptographic module may very well be a particular kernel module, the Operating module may very well be a particular kernel module, the Operating System, the Application Processor, or up to the entire Mobile Device.\ System, the Application Processor, or up to the entire Mobile Device.\ \ \ In performing their review, the evaluator shall determine that the In performing their review, the evaluator shall determine that the [TSS](#abbr_TSS) contains a description of the activities that happen on [TSS](#abbr_TSS) contains a description of the activities that happen on power-up and password authentication relating to the decryption of DEKs, | power-up and password authentication relating to the decryption of stored keys, and data.\ | [DEKs](#abbr_DEK), stored keys, and data.\ \ \ The evaluator shall ensure that the [TSS](#abbr_TSS) describes how other The evaluator shall ensure that the [TSS](#abbr_TSS) describes how other functions available in the system (e.g., regeneration of the keys) functions available in the system (e.g., regeneration of the keys) ensure that no unencrypted key material is transmitted outside the ensure that no unencrypted key material is transmitted outside the security boundary of the [TOE](#abbr_TOE).\ security boundary of the [TOE](#abbr_TOE).\ \ \ The evaluator shall review the [TSS](#abbr_TSS) to determine that it The evaluator shall review the [TSS](#abbr_TSS) to determine that it makes a case that key material is not transmitted outside the security makes a case that key material is not transmitted outside the security boundary of the [TOE](#abbr_TOE).\ boundary of the [TOE](#abbr_TOE).\ \ \ For each [BAF](#abbr_BAF) selected in [FIA\_UAU.5.1](#FIA_UAU.5.1):\ For each [BAF](#abbr_BAF) selected in [FIA\_UAU.5.1](#FIA_UAU.5.1):\ \ \ In performing their review, the evaluator shall determine that the In performing their review, the evaluator shall determine that the [TSS](#abbr_TSS) contains a description of the activities that happen on [TSS](#abbr_TSS) contains a description of the activities that happen on biometric authentication, including how any plaintext material, biometric authentication, including how any plaintext material, including critical security parameters and results of biometric including critical security parameters and results of biometric algorithms, are protected and accessed.\ algorithms, are protected and accessed.\ \ \ The evaluator shall ensure that the [TSS](#abbr_TSS) describes how The evaluator shall ensure that the [TSS](#abbr_TSS) describes how functions available in the biometric algorithms ensure that no functions available in the biometric algorithms ensure that no unencrypted plaintext material, including critical security parameters unencrypted plaintext material, including critical security parameters and intermediate results, is transmitted outside the security boundary and intermediate results, is transmitted outside the security boundary of the [TOE](#abbr_TOE) or to other functions or systems that transmit of the [TOE](#abbr_TOE) or to other functions or systems that transmit information outside the security boundary of the [TOE](#abbr_TOE).\ information outside the security boundary of the [TOE](#abbr_TOE).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_KST_EXT.3 .comp} ::: {#FPT_KST_EXT.3 .comp} #### FPT\_KST\_EXT.3 No Plaintext Key Export #### FPT\_KST\_EXT.3 No Plaintext Key Export ::: {.element} ::: {.element} ::: {#FPT_KST_EXT.3.1 .reqid} ::: {#FPT_KST_EXT.3.1 .reqid} [FPT\_KST\_EXT.3.1](#FPT_KST_EXT.3.1){.abbr} [FPT\_KST\_EXT.3.1](#FPT_KST_EXT.3.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall ensure it is not possible for the The [TSF](#abbr_TSF) shall ensure it is not possible for the [TOE](#abbr_TOE) user(s) to export plaintext keys. [TOE](#abbr_TOE) user(s) to export plaintext keys. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[Plaintext keys include DEKs, KEKs, | [Application Note: ]{.note-header}[Plaintext keys include and all keys stored in the secure key storage | [DEKs](#abbr_DEK), KEKs, and all keys stored in the secure key storage ([FCS\_STG\_EXT.1](#FCS_STG_EXT.1)). The intent of this requirement is ([FCS\_STG\_EXT.1](#FCS_STG_EXT.1)). The intent of this requirement is to prevent the plaintext keys from being exported during a backup to prevent the plaintext keys from being exported during a backup authorized by the [TOE](#abbr_TOE) user or administrator.]{.note} authorized by the [TOE](#abbr_TOE) user or administrator.]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_KST\_EXT.3](#FPT_KST_EXT.3):\ | ::: {.component-activity-header} > [FPT\_KST\_EXT.3](#FPT_KST_EXT.3) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The [ST](#abbr_ST) author will provide a statement of their policy for The [ST](#abbr_ST) author will provide a statement of their policy for handling and protecting keys. The evaluator shall check to ensure the handling and protecting keys. The evaluator shall check to ensure the [TSS](#abbr_TSS) describes a policy in line with not exporting either [TSS](#abbr_TSS) describes a policy in line with not exporting either plaintext DEKs, KEKs, or keys stored in the secure key storage.\ | plaintext [DEKs](#abbr_DEK), KEKs, or keys stored in the secure key \ | storage.\ \ \ > ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_NOT_EXT.1 .comp} ::: {#FPT_NOT_EXT.1 .comp} #### FPT\_NOT\_EXT.1 Self-Test Notification #### FPT\_NOT\_EXT.1 Self-Test Notification ::: {.element} ::: {.element} ::: {#FPT_NOT_EXT.1.1 .reqid} ::: {#FPT_NOT_EXT.1.1 .reqid} [FPT\_NOT\_EXT.1.1](#FPT_NOT_EXT.1.1){.abbr} [FPT\_NOT\_EXT.1.1](#FPT_NOT_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall transition to non-operational mode and The [TSF](#abbr_TSF) shall transition to non-operational mode and \[**selection**: *log failures in the audit record*, *notify the | \[**selection**: [log failures in the audit record]{#_s_393 administrator*, *\[**assignment**: [other | .selectable-content}, [notify the administrator]{#_s_394 actions]{.assignable-content}\]*, *no other actions*\] when the | .selectable-content}, [ \[**assignment**: [other following types of failures occur: | actions]{.assignable-content}\]]{#_s_395 .selectable-content}, [no other > actions]{#_s_396 .selectable-content} \] when the following types of > failures occur: - failures of the self-test(s) - failures of the self-test(s) - [TSF](#abbr_TSF) software integrity verification failures - [TSF](#abbr_TSF) software integrity verification failures - \[**selection**: *no other failures*, *\[**assignment**: [other | - \[**selection**: [no other failures]{#_s_397 .selectable-content}, [ failures]{.assignable-content}\]*\] | \[**assignment**: [other failures]{.assignable-content}\]]{#_s_398 > .selectable-content} \] ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_NOT\_EXT.1](#FPT_NOT_EXT.1):\ | ::: {.component-activity-header} > [FPT\_NOT\_EXT.1](#FPT_NOT_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) describes critical The evaluator shall verify that the [TSS](#abbr_TSS) describes critical failures that may occur and the actions to be taken upon these critical failures that may occur and the actions to be taken upon these critical failures.\ failures.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following test require the developer **Evaluation Activity Note:** The following test require the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products. tools that are typically not found on consumer Mobile Device products. > []{.testlist-} - **Test 1:** The evaluator shall use a tool provided by the developer | - [Test 76[](#_t_115){.definition}]{#_t_115}: The evaluator shall use to modify files and processes in the system that correspond to | a tool provided by the developer to modify files and processes in critical failures specified in the second list. The evaluator shall | the system that correspond to critical failures specified in the verify that creating these critical failures causes the device to | second list. The evaluator shall verify that creating these critical take the remediation actions specified in the first list. | failures causes the device to take the remediation actions specified | in the first list. \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_STM.1 .comp} ::: {#FPT_STM.1 .comp} #### FPT\_STM.1 Reliable Time Stamps #### FPT\_STM.1 Reliable Time Stamps ::: {.element} ::: {.element} ::: {#FPT_STM.1.1 .reqid} ::: {#FPT_STM.1.1 .reqid} [FPT\_STM.1.1](#FPT_STM.1.1){.abbr} [FPT\_STM.1.1](#FPT_STM.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall be able to provide reliable time stamps for The [TSF](#abbr_TSF) shall be able to provide reliable time stamps for its own use. its own use. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_STM.1](#FPT_STM.1):\ | ::: {.component-activity-header} > [FPT\_STM.1](#FPT_STM.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall examine the [TSS](#abbr_TSS) to ensure that it lists The evaluator shall examine the [TSS](#abbr_TSS) to ensure that it lists each security function that makes use of time. The [TSS](#abbr_TSS) each security function that makes use of time. The [TSS](#abbr_TSS) provides a description of how the time is maintained and considered provides a description of how the time is maintained and considered reliable in the context of each of the time related functions. This reliable in the context of each of the time related functions. This documentation must identify whether the [TSF](#abbr_TSF) uses a NTP | documentation must identify whether the [TSF](#abbr_TSF) uses a server or the carrier's network time as the primary time sources.\ | [NTP](#abbr_NTP) server or the carrier's network time as the primary \ | time sources.\ \ \ > ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator examines the operational guidance to ensure it describes The evaluator examines the operational guidance to ensure it describes how to set the time.\ how to set the time.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: - **Test 1:** The evaluator uses the operational guide to set the | ::: {.ea} time. The evaluator shall then use an available interface to observe | []{.testlist-} that the time was set correctly. < \ | - [Test 77[](#_t_118){.definition}]{#_t_118}: The evaluator uses the > operational guide to set the time. The evaluator shall then use an > available interface to observe that the time was set correctly. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_TST_EXT.1 .comp} ::: {#FPT_TST_EXT.1 .comp} #### FPT\_TST\_EXT.1 TSF Cryptographic Functionality Testing #### FPT\_TST\_EXT.1 TSF Cryptographic Functionality Testing ::: {.element} ::: {.element} ::: {#FPT_TST_EXT.1.1 .reqid} ::: {#FPT_TST_EXT.1.1 .reqid} [FPT\_TST\_EXT.1.1](#FPT_TST_EXT.1.1){.abbr} [FPT\_TST\_EXT.1.1](#FPT_TST_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall run a suite of self-tests during initial The [TSF](#abbr_TSF) shall run a suite of self-tests during initial start-up (on power on) to demonstrate the correct operation of all start-up (on power on) to demonstrate the correct operation of all cryptographic functionality. cryptographic functionality. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[This requirement may be met by [Application Note: ]{.note-header}[This requirement may be met by performing known answer tests and/or pair-wise consistency tests. The performing known answer tests and/or pair-wise consistency tests. The self-tests must be performed before the cryptographic functionality is self-tests must be performed before the cryptographic functionality is exercised (for example, during the initialization of a process that exercised (for example, during the initialization of a process that utilizes the functionality).\ utilizes the functionality).\ \ \ The cryptographic functionality includes the cryptographic operations in The cryptographic functionality includes the cryptographic operations in FCS\_COP, the key generation functions in FCS\_CKM, and the random bit FCS\_COP, the key generation functions in FCS\_CKM, and the random bit generation in FCS\_RBG\_EXT. ]{.note} generation in FCS\_RBG\_EXT. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_TST\_EXT.1](#FPT_TST_EXT.1):\ | ::: {.component-activity-header} > [FPT\_TST\_EXT.1](#FPT_TST_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall examine the [TSS](#abbr_TSS) to ensure that it The evaluator shall examine the [TSS](#abbr_TSS) to ensure that it specifies the self-tests that are performed at start-up. This specifies the self-tests that are performed at start-up. This description must include an outline of the test procedures conducted by description must include an outline of the test procedures conducted by the [TSF](#abbr_TSF) (e.g., rather than saying \"memory is tested\", a the [TSF](#abbr_TSF) (e.g., rather than saying \"memory is tested\", a description similar to \"memory is tested by writing a value to each description similar to \"memory is tested by writing a value to each memory location and reading it back to ensure it is identical to what memory location and reading it back to ensure it is identical to what was written\" shall be used). The [TSS](#abbr_TSS) must include any was written\" shall be used). The [TSS](#abbr_TSS) must include any error states that they [TSF](#abbr_TSF) may enter when self-tests fail, error states that they [TSF](#abbr_TSF) may enter when self-tests fail, and the conditions and actions necessary to exit the error states and and the conditions and actions necessary to exit the error states and resume normal operation. The evaluator shall verify that the resume normal operation. The evaluator shall verify that the [TSS](#abbr_TSS) indicates these self-tests are run at start-up [TSS](#abbr_TSS) indicates these self-tests are run at start-up automatically, and do not involve any inputs from or actions by the user automatically, and do not involve any inputs from or actions by the user or operator.\ or operator.\ \ \ The evaluator shall inspect the list of self-tests in the The evaluator shall inspect the list of self-tests in the [TSS](#abbr_TSS) and verify that it includes algorithm self-tests. The [TSS](#abbr_TSS) and verify that it includes algorithm self-tests. The algorithm self-tests will typically be conducted using known answer algorithm self-tests will typically be conducted using known answer tests.\ tests.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_TST_EXT.2/PREKERNEL .comp} ::: {#FPT_TST_EXT.2/PREKERNEL .comp} #### FPT\_TST\_EXT.2/PREKERNEL TSF Integrity Checking (Pre-Kernel) #### FPT\_TST\_EXT.2/PREKERNEL TSF Integrity Checking (Pre-Kernel) ::: {.element} ::: {.element} ::: {#FPT_TST_EXT.2.1/PREKERNEL .reqid} ::: {#FPT_TST_EXT.2.1/PREKERNEL .reqid} [FPT\_TST\_EXT.2.1/PREKERNEL](#FPT_TST_EXT.2.1/PREKERNEL){.abbr} [FPT\_TST\_EXT.2.1/PREKERNEL](#FPT_TST_EXT.2.1/PREKERNEL){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall verify the integrity of the bootchain up The [TSF](#abbr_TSF) shall verify the integrity of the bootchain up through the Application Processor [OS](#abbr_OS) kernel stored in through the Application Processor [OS](#abbr_OS) kernel stored in mutable media prior to its execution through the use of \[**selection**: mutable media prior to its execution through the use of \[**selection**: *a digital signature using an immutable hardware asymmetric key*, *an | [a digital signature using an immutable hardware asymmetric key]{#_s_401 immutable hardware hash of an asymmetric key*, *an immutable hardware | .selectable-content}, [an immutable hardware hash of an asymmetric hash*, *a digital signature using a hardware-protected asymmetric | key]{#_s_402 .selectable-content}, [an immutable hardware hash]{#_s_403 key*\]. | .selectable-content}, [a digital signature using a hardware-protected > asymmetric key]{#_s_404 .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The bootchain of the [TSF](#abbr_TSF) [Application Note: ]{.note-header}[The bootchain of the [TSF](#abbr_TSF) is the sequence of firmware and software, including [ROM](#abbr_ROM), is the sequence of firmware and software, including [ROM](#abbr_ROM), bootloader(s), and kernel, which ultimately result in loading the kernel bootloader(s), and kernel, which ultimately result in loading the kernel on the Application Processor, regardless of which processor executes on the Application Processor, regardless of which processor executes that code. Executable code that would be loaded after the kernel is that code. Executable code that would be loaded after the kernel is covered in [FPT\_TST\_EXT.2/POSTKERNEL](#FPT_TST_EXT.2/POSTKERNEL).\ covered in [FPT\_TST\_EXT.2/POSTKERNEL](#FPT_TST_EXT.2/POSTKERNEL).\ \ \ In order to meet this requirement, the hardware protection may be In order to meet this requirement, the hardware protection may be transitive in nature: a hardware-protected public key, hash of an transitive in nature: a hardware-protected public key, hash of an asymmetric key, or hash may be used to verify the mutable bootloader asymmetric key, or hash may be used to verify the mutable bootloader code which contains a key or hash used by the bootloader to verify the code which contains a key or hash used by the bootloader to verify the mutable [OS](#abbr_OS) kernel code, which contains a key or hash to mutable [OS](#abbr_OS) kernel code, which contains a key or hash to verify the next layer of executable code, and so on.\ verify the next layer of executable code, and so on.\ \ \ The cryptographic mechanism used to verify the (initial) mutable The cryptographic mechanism used to verify the (initial) mutable executable code must be protected, such as being implemented in hardware executable code must be protected, such as being implemented in hardware or in read-only memory ([ROM](#abbr_ROM)). ]{.note} or in read-only memory ([ROM](#abbr_ROM)). ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_TST\_EXT.2/PREKERNEL](#FPT_TST_EXT.2/PREKERNEL):\ | ::: {.component-activity-header} > [FPT\_TST\_EXT.2/PREKERNEL](#FPT_TST_EXT.2/PREKERNEL) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) section of the The evaluator shall verify that the [TSS](#abbr_TSS) section of the [ST](#abbr_ST) includes a description of the boot procedures, including [ST](#abbr_ST) includes a description of the boot procedures, including a description of the entire bootchain, of the software for the a description of the entire bootchain, of the software for the [TSF](#abbr_TSF)'s Application Processor. The evaluator shall ensure [TSF](#abbr_TSF)'s Application Processor. The evaluator shall ensure that before loading the bootloader(s) for the operating system and the that before loading the bootloader(s) for the operating system and the kernel, all bootloaders and the kernel software itself is kernel, all bootloaders and the kernel software itself is cryptographically verified. For each additional category of executable cryptographically verified. For each additional category of executable code verified before execution, the evaluator shall verify that the code verified before execution, the evaluator shall verify that the description in the [TSS](#abbr_TSS) describes how that software is description in the [TSS](#abbr_TSS) describes how that software is cryptographically verified.\ cryptographically verified.\ \ \ The evaluator shall verify that the [TSS](#abbr_TSS) contains a The evaluator shall verify that the [TSS](#abbr_TSS) contains a justification for the protection of the cryptographic key or hash, justification for the protection of the cryptographic key or hash, preventing it from being modified by unverified or unauthenticated preventing it from being modified by unverified or unauthenticated software. The evaluator shall verify that the [TSS](#abbr_TSS) contains software. The evaluator shall verify that the [TSS](#abbr_TSS) contains a description of the protection afforded to the mechanism performing the a description of the protection afforded to the mechanism performing the cryptographic verification.\ cryptographic verification.\ \ \ The evaluator shall verify that the [TSS](#abbr_TSS) describes each The evaluator shall verify that the [TSS](#abbr_TSS) describes each auxiliary boot mode available on the [TOE](#abbr_TOE) during the boot auxiliary boot mode available on the [TOE](#abbr_TOE) during the boot procedures. The evaluator shall verify that, for each auxiliary boot procedures. The evaluator shall verify that, for each auxiliary boot mode, a description of the cryptographic integrity of the executed code mode, a description of the cryptographic integrity of the executed code through the kernel is verified before each execution.\ through the kernel is verified before each execution.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following tests require the vendor to **Evaluation Activity Note:** The following tests require the vendor to provide access to a test platform that provides the evaluator with tools provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products.\ that are typically not found on consumer Mobile Device products.\ \ \ The evaluator shall perform the following tests: | The evaluator shall perform the following tests: []{.testlist-} - **Test 1:** The evaluator shall perform actions to cause | - [Test 78[](#_t_119){.definition}]{#_t_119}: The evaluator shall [TSF](#abbr_TSF) software to load and observe that the integrity | perform actions to cause [TSF](#abbr_TSF) software to load and mechanism does not flag any executables as containing integrity | observe that the integrity mechanism does not flag any executables errors and that the [TOE](#abbr_TOE) properly boots. | as containing integrity errors and that the [TOE](#abbr_TOE) - **Test 2:** The evaluator shall modify a [TSF](#abbr_TSF) executable | properly boots. that is integrity protected and cause that executable to be | - [Test 79[](#_t_120){.definition}]{#_t_120}: The evaluator shall successfully loaded by the [TSF](#abbr_TSF). The evaluator observes | modify a [TSF](#abbr_TSF) executable that is integrity protected and that an integrity violation is triggered and the [TOE](#abbr_TOE) | cause that executable to be successfully loaded by the does not boot. (Care must be taken so that the integrity violation | [TSF](#abbr_TSF). The evaluator observes that an integrity violation is determined to be the cause of the failure to load the module, and | is triggered and the [TOE](#abbr_TOE) does not boot. (Care must be not the fact that the module was modified so that it was rendered | taken so that the integrity violation is determined to be the cause unable to run because its format was corrupt). | of the failure to load the module, and not the fact that the module - **Test 3:** \[conditional\] If the [ST](#abbr_ST) author indicates | was modified so that it was rendered unable to run because its that the integrity verification is performed using a public key, the | format was corrupt). evaluator shall verify that the update mechanism includes a | - [Test 80[](#_t_121){.definition}]{#_t_121}: \[conditional\] If the certificate validation according to | [ST](#abbr_ST) author indicates that the integrity verification is > performed using a public key, the evaluator shall verify that the > update mechanism includes a certificate validation according to [FIA\_X509\_EXT.1](#FIA_X509_EXT.1). The evaluator shall digitally [FIA\_X509\_EXT.1](#FIA_X509_EXT.1). The evaluator shall digitally sign the [TSF](#abbr_TSF) executable with a certificate that does sign the [TSF](#abbr_TSF) executable with a certificate that does not have the Code Signing purpose in the extendedKeyUsage field and not have the Code Signing purpose in the extendedKeyUsage field and verify that an integrity violation is triggered. The evaluator shall verify that an integrity violation is triggered. The evaluator shall repeat the test using a certificate that contains the Code Signing repeat the test using a certificate that contains the Code Signing purpose and verify that the integrity verification succeeds. purpose and verify that the integrity verification succeeds. Ideally, the two certificates should be identical except for the Ideally, the two certificates should be identical except for the extendedKeyUsage field. extendedKeyUsage field. < \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_TUD_EXT.1 .comp} ::: {#FPT_TUD_EXT.1 .comp} #### FPT\_TUD\_EXT.1 Trusted Update: TSF Version Query #### FPT\_TUD\_EXT.1 Trusted Update: TSF Version Query ::: {.element} ::: {.element} ::: {#FPT_TUD_EXT.1.1 .reqid} ::: {#FPT_TUD_EXT.1.1 .reqid} [FPT\_TUD\_EXT.1.1](#FPT_TUD_EXT.1.1){.abbr} [FPT\_TUD\_EXT.1.1](#FPT_TUD_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide authorized users the ability to query The [TSF](#abbr_TSF) shall provide authorized users the ability to query the current version of the [TOE](#abbr_TOE) firmware/software. the current version of the [TOE](#abbr_TOE) firmware/software. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FPT_TUD_EXT.1.2 .reqid} ::: {#FPT_TUD_EXT.1.2 .reqid} [FPT\_TUD\_EXT.1.2](#FPT_TUD_EXT.1.2){.abbr} [FPT\_TUD\_EXT.1.2](#FPT_TUD_EXT.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide authorized users the ability to query The [TSF](#abbr_TSF) shall provide authorized users the ability to query the current version of the hardware model of the device. the current version of the hardware model of the device. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The current version of the hardware [Application Note: ]{.note-header}[The current version of the hardware model of the device is an identifier that is sufficient to indicate (in model of the device is an identifier that is sufficient to indicate (in tandem with manufacturer documentation) the hardware which comprises the tandem with manufacturer documentation) the hardware which comprises the device.]{.note} device.]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FPT_TUD_EXT.1.3 .reqid} ::: {#FPT_TUD_EXT.1.3 .reqid} [FPT\_TUD\_EXT.1.3](#FPT_TUD_EXT.1.3){.abbr} [FPT\_TUD\_EXT.1.3](#FPT_TUD_EXT.1.3){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide authorized users the ability to query The [TSF](#abbr_TSF) shall provide authorized users the ability to query the current version of installed mobile applications. the current version of installed mobile applications. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The current version of mobile [Application Note: ]{.note-header}[The current version of mobile applications is the name and published version number of each installed applications is the name and published version number of each installed mobile application.]{.note} mobile application.]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_TUD\_EXT.1](#FPT_TUD_EXT.1):\ | ::: {.component-activity-header} > [FPT\_TUD\_EXT.1](#FPT_TUD_EXT.1) > ::: ::: {.activity} < The evaluator shall establish a test environment consisting of the The evaluator shall establish a test environment consisting of the Mobile Device and any supporting software that demonstrates usage of the Mobile Device and any supporting software that demonstrates usage of the management functions. This can be test software from the developer, a management functions. This can be test software from the developer, a reference implementation of management software from the developer, or reference implementation of management software from the developer, or other commercially available software. The evaluator shall set up the other commercially available software. The evaluator shall set up the Mobile Device and the other software to exercise the management Mobile Device and the other software to exercise the management functions according to the provided guidance documentation.\ functions according to the provided guidance documentation.\ \ \ ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: - **Test 1:** Using the AGD guidance provided, the evaluator shall | ::: {.ea} test that the administrator and user can query: | []{.testlist-} > > - [Test 81[](#_t_122){.definition}]{#_t_122}: Using the AGD guidance > provided, the evaluator shall test that the administrator and user > can query: - the current version of the [TSF](#abbr_TSF) operating system and - the current version of the [TSF](#abbr_TSF) operating system and any firmware that can be updated separately any firmware that can be updated separately - the hardware model of the [TSF](#abbr_TSF) - the hardware model of the [TSF](#abbr_TSF) - the current version of all installed mobile applications - the current version of all installed mobile applications The evaluator must review manufacturer documentation to ensure that the The evaluator must review manufacturer documentation to ensure that the hardware model identifier is sufficient to identify the hardware which hardware model identifier is sufficient to identify the hardware which comprises the device.\ | comprises the device. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_TUD_EXT.2 .comp} ::: {#FPT_TUD_EXT.2 .comp} #### FPT\_TUD\_EXT.2 TSF Update Verification #### FPT\_TUD\_EXT.2 TSF Update Verification ::: {.element} ::: {.element} ::: {#FPT_TUD_EXT.2.1 .reqid} ::: {#FPT_TUD_EXT.2.1 .reqid} [FPT\_TUD\_EXT.2.1](#FPT_TUD_EXT.2.1){.abbr} [FPT\_TUD\_EXT.2.1](#FPT_TUD_EXT.2.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall verify software updates to the Application The [TSF](#abbr_TSF) shall verify software updates to the Application Processor system software and \[**selection**: *\[**assignment**: [other | Processor system software and \[**selection**: [\[**assignment**: [other processor system software]{.assignable-content}\]*, *no other processor | processor system software]{.assignable-content}\]]{#_s_412 system software*\] using a digital signature verified by the | .selectable-content}, [no other processor system software]{#_s_413 > .selectable-content} \] using a digital signature verified by the manufacturer trusted key prior to installing those updates manufacturer trusted key prior to installing those updates ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The digital signature mechanism is [Application Note: ]{.note-header}[The digital signature mechanism is implemented in accordance with [FCS\_COP.1.1/SIGN](#FCS_COP.1.1/SIGN).\ implemented in accordance with [FCS\_COP.1.1/SIGN](#FCS_COP.1.1/SIGN).\ \ \ At this time, this requirement does not require verification of software At this time, this requirement does not require verification of software updates to the software operating outside the Application Processor.\ updates to the software operating outside the Application Processor.\ \ \ Any change, via a supported mechanism, to software residing in Any change, via a supported mechanism, to software residing in non-volatile storage is deemed a software update. Thus, this requirement non-volatile storage is deemed a software update. Thus, this requirement applies to [TSF](#abbr_TSF) software updates regardless of how the applies to [TSF](#abbr_TSF) software updates regardless of how the software arrives or is delivered to the device. This includes software arrives or is delivered to the device. This includes over-the-air ([OTA](#abbr_OTA)) updates as well as partition images over-the-air ([OTA](#abbr_OTA)) updates as well as partition images containing software which may be delivered to the device over a wired containing software which may be delivered to the device over a wired interface. ]{.note} interface. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FPT_TUD_EXT.2.2 .reqid} ::: {#FPT_TUD_EXT.2.2 .reqid} [FPT\_TUD\_EXT.2.2](#FPT_TUD_EXT.2.2){.abbr} [FPT\_TUD\_EXT.2.2](#FPT_TUD_EXT.2.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall \[**selection**: *never update*, *update only | The [TSF](#abbr_TSF) shall \[**selection**: [never update]{#_s_414 by verified software*\] the [TSF](#abbr_TSF) boot integrity | .selectable-content}, [update only by verified software]{#_s_415 \[**selection**: *key*, *hash*\]. | .selectable-content} \] the [TSF](#abbr_TSF) boot integrity > \[**selection**: [key]{#_s_416 .selectable-content}, [hash]{#_s_417 > .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The key or hash updated via this [Application Note: ]{.note-header}[The key or hash updated via this requirement is used for verifying software before execution in requirement is used for verifying software before execution in [FPT\_TST\_EXT.2/PREKERNEL](#FPT_TST_EXT.2/PREKERNEL). The key or hash [FPT\_TST\_EXT.2/PREKERNEL](#FPT_TST_EXT.2/PREKERNEL). The key or hash is verified as a part of the digital signature on an update, and the is verified as a part of the digital signature on an update, and the software which performs the update of the key or hash is verified by software which performs the update of the key or hash is verified by [FPT\_TST\_EXT.2/PREKERNEL](#FPT_TST_EXT.2/PREKERNEL). ]{.note} [FPT\_TST\_EXT.2/PREKERNEL](#FPT_TST_EXT.2/PREKERNEL). ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FPT_TUD_EXT.2.3 .reqid} ::: {#FPT_TUD_EXT.2.3 .reqid} [FPT\_TUD\_EXT.2.3](#FPT_TUD_EXT.2.3){.abbr} [FPT\_TUD\_EXT.2.3](#FPT_TUD_EXT.2.3){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall verify that the digital signature The [TSF](#abbr_TSF) shall verify that the digital signature verification key used for [TSF](#abbr_TSF) updates \[**selection**: *is | verification key used for [TSF](#abbr_TSF) updates \[**selection**: [is validated to a public key in the Trust Anchor Database*, *matches an | validated to a public key in the Trust Anchor Database]{#_s_418 immutable hardware public key*\]. | .selectable-content}, [matches an immutable hardware public key]{#_s_419 > .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The [ST](#abbr_ST) author must [Application Note: ]{.note-header}[The [ST](#abbr_ST) author must indicate the method by which the signing key for system software updates indicate the method by which the signing key for system software updates is limited and, if selected in [FPT\_TUD\_EXT.2.3](#FPT_TUD_EXT.2.3), is limited and, if selected in [FPT\_TUD\_EXT.2.3](#FPT_TUD_EXT.2.3), must indicate how this signing key is protected by the hardware.\ must indicate how this signing key is protected by the hardware.\ \ \ If certificates are used, certificates are validated for the purpose of If certificates are used, certificates are validated for the purpose of software updates in accordance with [FIA\_X509\_EXT.1](#FIA_X509_EXT.1) software updates in accordance with [FIA\_X509\_EXT.1](#FIA_X509_EXT.1) and should be selected in [FIA\_X509\_EXT.2.1](#FIA_X509_EXT.2.1). and should be selected in [FIA\_X509\_EXT.2.1](#FIA_X509_EXT.2.1). Additionally, [FPT\_TUD\_EXT.4.1](#FPT_TUD_EXT.4.1) must be included in Additionally, [FPT\_TUD\_EXT.4.1](#FPT_TUD_EXT.4.1) must be included in the [ST](#abbr_ST). ]{.note} the [ST](#abbr_ST). ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_TUD\_EXT.2](#FPT_TUD_EXT.2):\ | ::: {.component-activity-header} > [FPT\_TUD\_EXT.2](#FPT_TUD_EXT.2) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) section of the The evaluator shall verify that the [TSS](#abbr_TSS) section of the [ST](#abbr_ST) describes all [TSF](#abbr_TSF) software update mechanisms [ST](#abbr_ST) describes all [TSF](#abbr_TSF) software update mechanisms for updating the system software. The evaluator shall verify that the for updating the system software. The evaluator shall verify that the description includes a digital signature verification of the software description includes a digital signature verification of the software before installation and that installation fails if the verification before installation and that installation fails if the verification fails. The evaluator shall verify that all software and firmware fails. The evaluator shall verify that all software and firmware involved in updating the [TSF](#abbr_TSF) is described and, if multiple involved in updating the [TSF](#abbr_TSF) is described and, if multiple stages and software are indicated, that the software/firmware stages and software are indicated, that the software/firmware responsible for each stage is indicated and that the stage(s) which responsible for each stage is indicated and that the stage(s) which perform signature verification of the update are identified.\ perform signature verification of the update are identified.\ \ \ The evaluator shall verify that the [TSS](#abbr_TSS) describes the The evaluator shall verify that the [TSS](#abbr_TSS) describes the method by which the digital signature is verified and that the public method by which the digital signature is verified and that the public key used to verify the signature is either hardware-protected or is key used to verify the signature is either hardware-protected or is validated to chain to a public key in the Trust Anchor Database. If validated to chain to a public key in the Trust Anchor Database. If hardware-protection is selected, the evaluator shall verify that the hardware-protection is selected, the evaluator shall verify that the method of hardware-protection is described and that the [ST](#abbr_ST) method of hardware-protection is described and that the [ST](#abbr_ST) author has justified why the public key may not be modified by author has justified why the public key may not be modified by unauthorized parties.\ unauthorized parties.\ \ \ \[conditional\] If the [ST](#abbr_ST) author indicates that software \[conditional\] If the [ST](#abbr_ST) author indicates that software updates to system software running on other processors is verified, the updates to system software running on other processors is verified, the evaluator shall verify that these other processors are listed in the evaluator shall verify that these other processors are listed in the [TSS](#abbr_TSS) and that the description includes the software update [TSS](#abbr_TSS) and that the description includes the software update mechanism for these processors, if different than the update mechanism mechanism for these processors, if different than the update mechanism for the software executing on the Application Processor.\ for the software executing on the Application Processor.\ \ \ \[conditional\] If the [ST](#abbr_ST) author indicates that the public \[conditional\] If the [ST](#abbr_ST) author indicates that the public key is used for software update digital signature verification, the key is used for software update digital signature verification, the evaluator shall verify that the update mechanism includes a certificate evaluator shall verify that the update mechanism includes a certificate validation according to [FIA\_X509\_EXT.1](#FIA_X509_EXT.1) and a check validation according to [FIA\_X509\_EXT.1](#FIA_X509_EXT.1) and a check for the Code Signing purpose in the extendedKeyUsage.\ for the Code Signing purpose in the extendedKeyUsage.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluator shall verify that the developer has provided evidence that The evaluator shall verify that the developer has provided evidence that the following tests were performed for each available update mechanism: the following tests were performed for each available update mechanism: > []{.testlist-} - **Test 1:** The tester shall try to install an update without the | - [Test 82[](#_t_123){.definition}]{#_t_123}: The tester shall try to digital signature and shall verify that installation fails. The | install an update without the digital signature and shall verify tester shall attempt to install an update with digital signature, | that installation fails. The tester shall attempt to install an and verify that installation succeeds.\ | update with digital signature, and verify that installation - **Test 2:** The tester shall digitally sign the update with a key < disallowed by the device and verify that installation fails. The < tester shall attempt to install an update signed with the allowed < key and verify that installation succeeds.\ < - **Test 3:** \[conditional\] The tester shall digitally sign the < update with an invalid certificate and verify that update < installation fails. The tester attempt to install an update that was < digitally signed using a valid certificate and a certificate that < contains the purpose and verify that the update installation < succeeds.\ succeeds.\ - **Test 4:** \[conditional\] The tester shall repeat these test for | - [Test 83[](#_t_124){.definition}]{#_t_124}: The tester shall the software executing on each processor listed in the first | digitally sign the update with a key disallowed by the device and selection. The tester shall attempt to install an update without the | verify that installation fails. The tester shall attempt to install digital signature and shall verify that installation fails. The | an update signed with the allowed key and verify that installation tester shall attempt to install an update with digital signature, | succeeds.\ and verify that installation succeeds. | - [Test 84[](#_t_125){.definition}]{#_t_125}: \[conditional\] The | tester shall digitally sign the update with an invalid certificate \ | and verify that update installation fails. The tester attempt to > install an update that was digitally signed using a valid > certificate and a certificate that contains the purpose and verify > that the update installation succeeds.\ > - [Test 85[](#_t_126){.definition}]{#_t_126}: \[conditional\] The > tester shall repeat these test for the software executing on each > processor listed in the first selection. The tester shall attempt to > install an update without the digital signature and shall verify > that installation fails. The tester shall attempt to install an > update with digital signature, and verify that installation > succeeds. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_TUD_EXT.3 .comp} ::: {#FPT_TUD_EXT.3 .comp} #### FPT\_TUD\_EXT.3 Application Signing #### FPT\_TUD\_EXT.3 Application Signing ::: {.element} ::: {.element} ::: {#FPT_TUD_EXT.3.1 .reqid} ::: {#FPT_TUD_EXT.3.1 .reqid} [FPT\_TUD\_EXT.3.1](#FPT_TUD_EXT.3.1){.abbr} [FPT\_TUD\_EXT.3.1](#FPT_TUD_EXT.3.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall verify mobile application software using a The [TSF](#abbr_TSF) shall verify mobile application software using a digital signature mechanism prior to installation. digital signature mechanism prior to installation. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[This requirement does not necessitate [Application Note: ]{.note-header}[This requirement does not necessitate an X.509v3 certificate or certificate validation. X.509v3 certificates an X.509v3 certificate or certificate validation. X.509v3 certificates and certificate validation are addressed in and certificate validation are addressed in [FPT\_TUD\_EXT.5.1](#FPT_TUD_EXT.5.1).]{.note} [FPT\_TUD\_EXT.5.1](#FPT_TUD_EXT.5.1).]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_TUD\_EXT.3](#FPT_TUD_EXT.3):\ | ::: {.component-activity-header} > [FPT\_TUD\_EXT.3](#FPT_TUD_EXT.3) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) describes how The evaluator shall verify that the [TSS](#abbr_TSS) describes how mobile application software is verified at installation. The evaluator mobile application software is verified at installation. The evaluator shall ensure that this method uses a digital signature.\ shall ensure that this method uses a digital signature.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following test does not have to be **Evaluation Activity Note:** The following test does not have to be tested using the commercial application store.\ tested using the commercial application store.\ \ \ > []{.testlist-} - **Test 1:** The evaluator shall write, or the developer shall | - [Test 86[](#_t_127){.definition}]{#_t_127}: The evaluator shall provide access to, an application. The evaluator shall try to | write, or the developer shall provide access to, an application. The install this application without a digitally signature and shall | evaluator shall try to install this application without a digitally verify that installation fails. The evaluator shall attempt to | signature and shall verify that installation fails. The evaluator install a digitally signed application, and verify that installation | shall attempt to install a digitally signed application, and verify succeeds. | that installation succeeds. < \ < ::: ::: ::: ::: ::: ::: ::: ::: ### 5.1.8 Class: TOE Access (FTA) {#fta .indexable data-level="3"} ### 5.1.8 Class: TOE Access (FTA) {#fta .indexable data-level="3"} ::: {#FTA_SSL_EXT.1 .comp} ::: {#FTA_SSL_EXT.1 .comp} #### FTA\_SSL\_EXT.1 TSF- and User-initiated Locked State #### FTA\_SSL\_EXT.1 TSF- and User-initiated Locked State ::: {.element} ::: {.element} ::: {#FTA_SSL_EXT.1.1 .reqid} ::: {#FTA_SSL_EXT.1.1 .reqid} [FTA\_SSL\_EXT.1.1](#FTA_SSL_EXT.1.1){.abbr} [FTA\_SSL\_EXT.1.1](#FTA_SSL_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall transition to a locked state after a time The [TSF](#abbr_TSF) shall transition to a locked state after a time interval of inactivity. interval of inactivity. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FTA_SSL_EXT.1.2 .reqid} ::: {#FTA_SSL_EXT.1.2 .reqid} [FTA\_SSL\_EXT.1.2](#FTA_SSL_EXT.1.2){.abbr} [FTA\_SSL\_EXT.1.2](#FTA_SSL_EXT.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall transition to a locked state after initiation The [TSF](#abbr_TSF) shall transition to a locked state after initiation by either the user or the administrator. by either the user or the administrator. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FTA_SSL_EXT.1.3 .reqid} ::: {#FTA_SSL_EXT.1.3 .reqid} [FTA\_SSL\_EXT.1.3](#FTA_SSL_EXT.1.3){.abbr} [FTA\_SSL\_EXT.1.3](#FTA_SSL_EXT.1.3){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall, upon transitioning to the locked state, The [TSF](#abbr_TSF) shall, upon transitioning to the locked state, perform the following operations: perform the following operations: a. clearing or overwriting display devices, obscuring the previous a. clearing or overwriting display devices, obscuring the previous contents; contents; b. \[**assignment**: [other actions performed upon transitioning to the b. \[**assignment**: [other actions performed upon transitioning to the locked state]{.assignable-content}\]. locked state]{.assignable-content}\]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The time interval of inactivity is [Application Note: ]{.note-header}[ The time interval of inactivity is configured using [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) function configured using [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) function [[2]{.counter}](#screenlock){.screenlock-ref}. The | [2](#mf-screenlock). The user/administrator-initiated lock is specified user/administrator-initiated lock is specified in | in [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) function [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) function | [6](#mf-lockState).]{.note} [[6]{.counter}](#lockState){.lockState-ref}.]{.note} < ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FTA\_SSL\_EXT.1](#FTA_SSL_EXT.1):\ | ::: {.component-activity-header} > [FTA\_SSL\_EXT.1](#FTA_SSL_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify the [TSS](#abbr_TSS) describes the actions The evaluator shall verify the [TSS](#abbr_TSS) describes the actions performed upon transitioning to the locked state.\ performed upon transitioning to the locked state.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluation shall verify that the AGD guidance describes the method The evaluation shall verify that the AGD guidance describes the method of setting the inactivity interval and of commanding a lock. The of setting the inactivity interval and of commanding a lock. The evaluator shall verify that the [TSS](#abbr_TSS) describes the evaluator shall verify that the [TSS](#abbr_TSS) describes the information allowed to be displayed to unauthorized users.\ information allowed to be displayed to unauthorized users.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: - **Test 1:** The evaluator shall configure the [TSF](#abbr_TSF) to | ::: {.ea} transition to the locked state after a time of inactivity | []{.testlist-} ([FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1)) according to the AGD guidance. | The evaluator shall wait until the [TSF](#abbr_TSF) locks and verify | - [Test 87[](#_t_133){.definition}]{#_t_133}: The evaluator shall that the display is cleared or overwritten and that the only actions | configure the [TSF](#abbr_TSF) to transition to the locked state allowed in the locked state are unlocking the session and those | after a time of inactivity ([FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1)) actions specified in [FIA\_UAU\_EXT.2](#FIA_UAU_EXT.2). | according to the AGD guidance. The evaluator shall wait until the - **Test 2:** The evaluator shall command the [TSF](#abbr_TSF) to < transition to the locked state according to the AGD guidance as both < the user and the administrator. The evaluator shall wait until the < [TSF](#abbr_TSF) locks and verify that the display is cleared or [TSF](#abbr_TSF) locks and verify that the display is cleared or overwritten and that the only actions allowed in the locked state overwritten and that the only actions allowed in the locked state are unlocking the session and those actions specified in are unlocking the session and those actions specified in [FIA\_UAU\_EXT.2](#FIA_UAU_EXT.2). [FIA\_UAU\_EXT.2](#FIA_UAU_EXT.2). | - [Test 88[](#_t_134){.definition}]{#_t_134}: The evaluator shall \ | command the [TSF](#abbr_TSF) to transition to the locked state > according to the AGD guidance as both the user and the > administrator. The evaluator shall wait until the [TSF](#abbr_TSF) > locks and verify that the display is cleared or overwritten and that > the only actions allowed in the locked state are unlocking the > session and those actions specified in > [FIA\_UAU\_EXT.2](#FIA_UAU_EXT.2). ::: ::: ::: ::: ::: ::: ::: ::: ### 5.1.9 Class: Trusted Path/Channels (FTP) {#ftp .indexable data-level="3"} ### 5.1.9 Class: Trusted Path/Channels (FTP) {#ftp .indexable data-level="3"} ::: {#FTP_ITC_EXT.1 .comp} ::: {#FTP_ITC_EXT.1 .comp} #### FTP\_ITC\_EXT.1 Trusted Channel Communication #### FTP\_ITC\_EXT.1 Trusted Channel Communication ::: {.element} ::: {.element} ::: {#FTP_ITC_EXT.1.1 .reqid} ::: {#FTP_ITC_EXT.1.1 .reqid} [FTP\_ITC\_EXT.1.1](#FTP_ITC_EXT.1.1){.abbr} [FTP\_ITC\_EXT.1.1](#FTP_ITC_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall use The [TSF](#abbr_TSF) shall use - 802.11-2012 in accordance with the Extended Package for WLAN - 802.11-2012 in accordance with the Extended Package for WLAN Clients, Clients, - 802.1X in accordance with the Extended Package for WLAN Clients, - 802.1X in accordance with the Extended Package for WLAN Clients, - [EAP](#abbr_EAP)-TLS in accordance with the Extended Package for - [EAP](#abbr_EAP)-TLS in accordance with the Extended Package for WLAN Clients, WLAN Clients, - mutually authenticated [TLS](#abbr_TLS) as defined in the Package - mutually authenticated [TLS](#abbr_TLS) as defined in the Package for Transport Layer Security for Transport Layer Security and \[**selection**: and \[**selection**: - *[IPsec](#abbr_IPsec) in accordance with the | - [[IPsec](#abbr_IPsec) in accordance with the [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client*, | [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client]{#_s_422 - *mutually authenticated [DTLS](#abbr_DTLS) as defined in the Package | .selectable-content} for Transport Layer Security*, | - [mutually authenticated [DTLS](#abbr_DTLS) as defined in the Package - *[HTTPS](#abbr_HTTPS)* | for Transport Layer Security]{#itc_dtls .selectable-content} > - [[HTTPS](#abbr_HTTPS)]{#_s_424 .selectable-content} \] protocols to provide a communication channel between itself and \] protocols to provide a communication channel between itself and another trusted IT product that is logically distinct from other another trusted IT product that is logically distinct from other communication channels, provides assured identification of its end communication channels, provides assured identification of its end points, protects channel data from disclosure, and detects modification points, protects channel data from disclosure, and detects modification of the channel data. of the channel data. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The intent of the mandatory portion [Application Note: ]{.note-header}[ The intent of the mandatory portion of the above requirement is to use the cryptographic protocols of the above requirement is to use the cryptographic protocols identified in the requirement to establish and maintain a trusted identified in the requirement to establish and maintain a trusted channel between the [TOE](#abbr_TOE) and an access point, channel between the [TOE](#abbr_TOE) and an access point, [VPN](#abbr_VPN) Gateway, or other trusted IT product.\ [VPN](#abbr_VPN) Gateway, or other trusted IT product.\ \ \ The [ST](#abbr_ST) author must list which trusted channel protocols are The [ST](#abbr_ST) author must list which trusted channel protocols are implemented by the Mobile Device.\ implemented by the Mobile Device.\ \ \ The [TSF](#abbr_TSF) must be validated against the Extended Package for The [TSF](#abbr_TSF) must be validated against the Extended Package for WLAN Clients to satisfy the mandatory trusted channels of 802.11-2012, WLAN Clients to satisfy the mandatory trusted channels of 802.11-2012, 802.1X, and [EAP](#abbr_EAP)-TLS.\ 802.1X, and [EAP](#abbr_EAP)-TLS.\ \ \ To satisfy the mandatory trusted channel of [TLS](#abbr_TLS) and if To satisfy the mandatory trusted channel of [TLS](#abbr_TLS) and if \"mutually authenticated [DTLS](#abbr_DTLS) as defined in the Package \"mutually authenticated [DTLS](#abbr_DTLS) as defined in the Package for Transport Layer Security\" is selected, the [TSF](#abbr_TSF) must be for Transport Layer Security\" is selected, the [TSF](#abbr_TSF) must be validated against the [TLS](#abbr_TLS) Functional Package, with the validated against the [TLS](#abbr_TLS) Functional Package, with the following selections made: ]{.note} following selections made: ]{.note} FCS\_TLS\_EXT.1: FCS\_TLS\_EXT.1: - either [TLS](#abbr_TLS) or [DTLS](#abbr_DTLS) is selected as - either [TLS](#abbr_TLS) or [DTLS](#abbr_DTLS) is selected as appropriate appropriate - client is selected - client is selected FCS\_TLSC\_EXT.1.1 or FCS\_DTLSC\_EXT.1.1 (as appropriate): FCS\_TLSC\_EXT.1.1 or FCS\_DTLSC\_EXT.1.1 (as appropriate): - The cipher suites selected must correspond with the algorithms and - The cipher suites selected must correspond with the algorithms and hash functions allowed in FCS\_COP.1. hash functions allowed in FCS\_COP.1. - Mutual authentication must be selected - Mutual authentication must be selected FCS\_TLSC\_EXT.1.3 or FCS\_DTLSC\_EXT.1.3 (as appropriate): FCS\_TLSC\_EXT.1.3 or FCS\_DTLSC\_EXT.1.3 (as appropriate): - With no exceptions is selected. - With no exceptions is selected. \ \ If the [ST](#abbr_ST) author selects [IPsec](#abbr_IPsec), the If the [ST](#abbr_ST) author selects [IPsec](#abbr_IPsec), the [TSF](#abbr_TSF) must be validated against the [TSF](#abbr_TSF) must be validated against the [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client.\ [PP-Module](#abbr_PP-Module) for [VPN](#abbr_VPN) Client.\ \ \ Appendix B - Selection-Based Requirements contains the requirements for Appendix B - Selection-Based Requirements contains the requirements for implementing each of the other optional trusted channel protocols. The implementing each of the other optional trusted channel protocols. The [ST](#abbr_ST) author must include the security functional requirements [ST](#abbr_ST) author must include the security functional requirements for the trusted channel protocol selected in for the trusted channel protocol selected in [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) in the main body of the [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) in the main body of the [ST](#abbr_ST).\ [ST](#abbr_ST).\ \ \ Assured identification of endpoints is performed according to the Assured identification of endpoints is performed according to the authentication mechanisms used by the listed trusted channel protocols. authentication mechanisms used by the listed trusted channel protocols. ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FTP_ITC_EXT.1.2 .reqid} ::: {#FTP_ITC_EXT.1.2 .reqid} [FTP\_ITC\_EXT.1.2](#FTP_ITC_EXT.1.2){.abbr} [FTP\_ITC\_EXT.1.2](#FTP_ITC_EXT.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall permit the [TSF](#abbr_TSF) to initiate The [TSF](#abbr_TSF) shall permit the [TSF](#abbr_TSF) to initiate communication via the trusted channel. communication via the trusted channel. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FTP_ITC_EXT.1.3 .reqid} ::: {#FTP_ITC_EXT.1.3 .reqid} [FTP\_ITC\_EXT.1.3](#FTP_ITC_EXT.1.3){.abbr} [FTP\_ITC\_EXT.1.3](#FTP_ITC_EXT.1.3){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall initiate communication via the trusted The [TSF](#abbr_TSF) shall initiate communication via the trusted channel for wireless access point connections, administrative channel for wireless access point connections, administrative communication, configured enterprise connections, and \[**selection**: communication, configured enterprise connections, and \[**selection**: *[OTA](#abbr_OTA) updates*, *no other connections*\]. | [[OTA](#abbr_OTA) updates]{#_s_425 .selectable-content}, [no other > connections]{#_s_426 .selectable-content} \]. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1):\ | ::: {.component-activity-header} > [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall examine the [TSS](#abbr_TSS) to determine that it The evaluator shall examine the [TSS](#abbr_TSS) to determine that it describes the details of the [TOE](#abbr_TOE) connecting to access describes the details of the [TOE](#abbr_TOE) connecting to access points, [VPN](#abbr_VPN) Gateways, and other trusted IT products in points, [VPN](#abbr_VPN) Gateways, and other trusted IT products in terms of the cryptographic protocols specified in the requirement, along terms of the cryptographic protocols specified in the requirement, along with [TOE](#abbr_TOE)-specific options or procedures that might not be with [TOE](#abbr_TOE)-specific options or procedures that might not be reflected in the specifications. The evaluator shall also confirm that reflected in the specifications. The evaluator shall also confirm that all protocols listed in the [TSS](#abbr_TSS) are specified and included all protocols listed in the [TSS](#abbr_TSS) are specified and included in the requirements in the [ST](#abbr_ST).\ in the requirements in the [ST](#abbr_ST).\ \ \ If [OTA](#abbr_OTA) updates are selected, the [TSS](#abbr_TSS) shall If [OTA](#abbr_OTA) updates are selected, the [TSS](#abbr_TSS) shall describe which trusted channel protocol is initiated by the describe which trusted channel protocol is initiated by the [TOE](#abbr_TOE) and is used for updates.\ [TOE](#abbr_TOE) and is used for updates.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall confirm that the operational guidance contains The evaluator shall confirm that the operational guidance contains instructions for establishing the connection to access points, instructions for establishing the connection to access points, [VPN](#abbr_VPN) Gateways, and other trusted IT products.\ [VPN](#abbr_VPN) Gateways, and other trusted IT products.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluator shall also perform the following tests for each protocol The evaluator shall also perform the following tests for each protocol listed: | listed: []{.testlist-} - **Test 1:** The evaluator shall ensure, for each communication | - [Test 89[](#_t_136){.definition}]{#_t_136}: The evaluator shall channel with an authorized IT entity, the channel data are not sent | ensure, for each communication channel with an authorized IT entity, in plaintext and that a protocol analyzer identifies the traffic as | the channel data are not sent in plaintext and that a protocol the protocol under testing. | analyzer identifies the traffic as the protocol under testing. - **Test 2:** \[conditional\] If [IPsec](#abbr_IPsec) is selected, the | - [Test 90[](#_t_137){.definition}]{#_t_137}: \[conditional\] If evaluator shall ensure that the [TOE](#abbr_TOE) is able to initiate | [IPsec](#abbr_IPsec) is selected, the evaluator shall ensure that communications with a [VPN](#abbr_VPN) Gateway, setting up the | the [TOE](#abbr_TOE) is able to initiate communications with a connections as described in the operational guidance and ensuring | [VPN](#abbr_VPN) Gateway, setting up the connections as described in that communication is successful. | the operational guidance and ensuring that communication is - **Test 3:** \[conditional\]If [OTA](#abbr_OTA) updates are selected, < the evaluator shall trigger an update request according to the < operational guidance and shall ensure that the communication is < successful. successful. - **Test 4:** For any other selected protocol (not tested in Test 1, | - [Test 91[](#_t_138){.definition}]{#_t_138}: \[conditional\]If 2, or 3), the evaluator shall ensure that the [TOE](#abbr_TOE) is | [OTA](#abbr_OTA) updates are selected, the evaluator shall trigger able to initiate communications with a trusted IT product using the | an update request according to the operational guidance and shall protocol, setting up the connection as described in the operational | ensure that the communication is successful. guidance and ensuring that the communication is successful. | - [Test 92[](#_t_139){.definition}]{#_t_139}: For any other selected | protocol (not tested in Test 1, 2, or 3), the evaluator shall ensure \ | that the [TOE](#abbr_TOE) is able to initiate communications with a > trusted IT product using the protocol, setting up the connection as > described in the operational guidance and ensuring that the > communication is successful. ::: ::: ::: ::: ::: ::: ::: ::: ### 5.1.10 TOE Security Functional Requirements Rationale {#obj-req-map .indexable da ### 5.1.10 TOE Security Functional Requirements Rationale {#obj-req-map .indexable da The following rationale provides justification for each security The following rationale provides justification for each security objective for the [TOE](#abbr_TOE), showing that the SFRs are suitable | objective for the [TOE](#abbr_TOE), showing that the [SFRs](#abbr_SFR) to meet and achieve the security objectives:\ | are suitable to meet and achieve the security objectives:\ > > [Table [8]{.counter}]{#t-obj_map .ctr data-myid="t-obj_map" > data-counter-type="ct-Table"}: [SFR](#abbr_SFR) Rationale > > Objective > > Addressed by > > Rationale > > [O.PROTECTED\_​COMMS](#O.PROTECTED_COMMS)\ > > [FCS\_CKM.1](#FCS_CKM.1) > > [FCS\_CKM.1](#FCS_CKM.1) supports the objective by defining the key > generation algorithms that are used for protected communications. > > [FCS\_CKM.2/UNLOCKED](#FCS_CKM.2/UNLOCKED) > > [FCS\_CKM.2/UNLOCKED](#FCS_CKM.2/UNLOCKED) supports the objective by > defining the key establishment algorithms that are used for protected > communications. > > FCS\_CKM\_EXT.8 (Bluetooth Module) > > FCS\_CKM\_EXT.8 supports the objective by requiring the [TSF](#abbr_TSF) > to perform key rotation for Bluetooth to limit the window of opportunity > for an attacker to determine the key value. > > [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT) > > [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT) supports the objective by > requiring the [TSF](#abbr_TSF) to implement symmetric encryption > algorithms that are used in support of protected communications. > > [FCS\_COP.1/HASH](#FCS_COP.1/HASH) > > [FCS\_COP.1/HASH](#FCS_COP.1/HASH) supports the objective by requiring > the [TSF](#abbr_TSF) to implement hash algorithms that are used in > support of protected communications. > > [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN) > > [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN) supports the objective by requiring > the [TSF](#abbr_TSF) to implement digital signature algorithms that are > used in support of protected communications. > > [FCS\_COP.1/KEYHMAC](#FCS_COP.1/KEYHMAC) > > [FCS\_COP.1/KEYHMAC](#FCS_COP.1/KEYHMAC) supports the objective by > requiring the [TSF](#abbr_TSF) to implement [HMAC](#abbr_HMAC) > algorithms that are used in support of protected communications. > > FCS\_DTLSC\_EXT.1 ([TLS](#abbr_TLS) Package) > > FCS\_DTLSC\_EXT.1 supports the objective by defining the > [TOE](#abbr_TOE)\'s implementation of [DTLS](#abbr_DTLS) as a client if > this protocol is used for protected communications. > > FCS\_DTLSC\_EXT.2 ([TLS](#abbr_TLS) Package) > > FCS\_DTLSC\_EXT.2 supports the objective by defining the > [TOE](#abbr_TOE)\'s implementation of mutually-authenticated > [DTLS](#abbr_DTLS) as a client if this protocol is used for protected > communications. > > [FCS\_HTTPS\_EXT.1](#FCS_HTTPS_EXT.1) > > [FCS\_HTTPS\_EXT.1](#FCS_HTTPS_EXT.1) supports the objective by defining > the [TOE](#abbr_TOE)\'s implementation of [HTTPS](#abbr_HTTPS) if this > protocol is used for protected communications. > > [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) > > [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) supports the objective by requiring > the [TSF](#abbr_TSF) to implement deterministic random bit generation > algorithms that are used in support of protected communications. > > [FCS\_RBG\_EXT.2](#FCS_RBG_EXT.2) (Objective) > > [FCS\_RBG\_EXT.2](#FCS_RBG_EXT.2) supports the objective by requiring > the [TSF](#abbr_TSF) to save the DRBG state between reboots to ensure > availability of this service. > > [FCS\_RBG\_EXT.3](#FCS_RBG_EXT.3) (Objective) > > [FCS\_RBG\_EXT.3](#FCS_RBG_EXT.3) supports the objective by defining the > [TSF](#abbr_TSF)\'s implementation of the SP 800-90A Personalization > String for applications that require this. > > [FCS\_SRV\_EXT.1](#FCS_SRV_EXT.1) > > [FCS\_SRV\_EXT.1](#FCS_SRV_EXT.1) supports the objective by defining the > cryptographic services that the [TSF](#abbr_TSF) must make available to > third-party applications, which includes those that can support > protected communications. > > [FCS\_SRV\_EXT.2](#FCS_SRV_EXT.2) (Objective) > > [FCS\_SRV\_EXT.2](#FCS_SRV_EXT.2) supports the objective by requiring > the [TSF](#abbr_TSF) to make keys in its secure key storage available > for use in encryption and signing operations. > > FCS\_TLSC\_EXT.1 ([TLS](#abbr_TLS) Package) > > FCS\_TLSC\_EXT.1 supports the objective by defining the > [TOE](#abbr_TOE)\'s implementation of [TLS](#abbr_TLS) as a client for > protected communications. > > FCS\_TLSC\_EXT.2 ([TLS](#abbr_TLS) Package) > > FCS\_TLSC\_EXT.2 supports the objective by defining the > [TOE](#abbr_TOE)\'s implementation of mutually-authenticated > [TLS](#abbr_TLS) as a client for protected communications. > > FCS\_TLSC\_EXT.3 ([TLS](#abbr_TLS) Package) > > FCS\_TLSC\_EXT.3 supports the objective by requiring the > [TSF](#abbr_TSF) to support the [TLS](#abbr_TLS) signature algorithms > extension as part of establishing [TLS](#abbr_TLS) protected > communications. > > [FDP\_BLT\_EXT.1](#FDP_BLT_EXT.1) > > [FDP\_BLT\_EXT.1](#FDP_BLT_EXT.1) supports the objective by limiting the > applications that are authorized to use the Bluetooth interface, which > may include a trusted channel. > > [FDP\_IFC\_EXT.1](#FDP_IFC_EXT.1) > > [FDP\_IFC\_EXT.1](#FDP_IFC_EXT.1) supports the objective by requiring > the [TSF](#abbr_TSF) to have either its own [IPsec](#abbr_IPsec) > [VPN](#abbr_VPN) client or interface that allows a third-party > [VPN](#abbr_VPN) client to be deployed on it. > > [FDP\_STG\_EXT.1](#FDP_STG_EXT.1) > > [FDP\_STG\_EXT.1](#FDP_STG_EXT.1) supports the objective by requiring > the [TSF](#abbr_TSF) to implement a protected key storage that can be > used to protect persistent keys used for protected communications from > disclosure. > > [FDP\_UPC\_EXT.1/APPS](#FDP_UPC_EXT.1/APPS) > > [FDP\_UPC\_EXT.1/APPS](#FDP_UPC_EXT.1/APPS) supports the objective by > defining the protected communications channels that it allows > third-party applications to invoke. > > [FDP\_UPC\_EXT.1/BLUETOOTH](#FDP_UPC_EXT.1/BLUETOOTH) > > [FDP\_UPC\_EXT.1/BLUETOOTH](#FDP_UPC_EXT.1/BLUETOOTH) supports the > objective by defining the Bluetooth interfaces that it allows > third-party applications to invoke. > > FIA\_BLT\_EXT.1 (Bluetooth Module) > > FIA\_BLT\_EXT.1 supports the objective by ensuring that Bluetooth > communications are not initiated without user approval. > > FIA\_BLT\_EXT.2 (Bluetooth Module) > > FIA\_BLT\_EXT.2 supports the objective by requiring the [TSF](#abbr_TSF) > to implement Bluetooth mutual authentication. > > FIA\_BLT\_EXT.3 (Bluetooth Module) > > FIA\_BLT\_EXT.3 supports the objective by preventing Bluetooth spoofing > by rejecting connections with duplicate device addresses. > > FIA\_BLT\_EXT.4 (Bluetooth Module) > > FIA\_BLT\_EXT.4 supports the objective by defining the > [TSF](#abbr_TSF)\'s implementation of Bluetooth Secure Simple Pairing. > > FIA\_BLT\_EXT.5 (Bluetooth Module) > > FIA\_BLT\_EXT.5 supports the objective by requiring the [TSF](#abbr_TSF) > to support Secure Connections Only mode for the supported Bluetooth > communication channels. > > FIA\_BLT\_EXT.6 (Bluetooth Module) > > FIA\_BLT\_EXT.6 supports the objective by requiring the [TSF](#abbr_TSF) > to specify the Bluetooth profiles that it requires explicit user > authorization to grant access to for trusted devices. > > FIA\_BLT\_EXT.7 (Bluetooth Module) > > FIA\_BLT\_EXT.7 supports the objective by requiring the [TSF](#abbr_TSF) > to specify the Bluetooth profiles that it requires explicit user > authorization to grant access to for untrusted devices. > > [FIA\_X509\_EXT.1](#FIA_X509_EXT.1) > > [FIA\_X509\_EXT.1](#FIA_X509_EXT.1) supports the objective by defining > the rules the [TSF](#abbr_TSF) uses to determine if a presented X.509 > certificate is valid. > > [FIA\_X509\_EXT.2](#FIA_X509_EXT.2) > > [FIA\_X509\_EXT.2](#FIA_X509_EXT.2) supports the objective by requiring > the [TSF](#abbr_TSF) to enumerate its uses of X.509 certificates > (including protected communications) and its behavior when a > certificate\'s revocation status is undetermined. > > [FIA\_X509\_EXT.3](#FIA_X509_EXT.3) > > [FIA\_X509\_EXT.3](#FIA_X509_EXT.3) supports the objective by requiring > the [TSF](#abbr_TSF) to provide a certificate validation service to > third-party applications. > > [FIA\_X509\_EXT.4](#FIA_X509_EXT.4) (Objective) > > [FIA\_X509\_EXT.4](#FIA_X509_EXT.4) supports the objective by defining > the implementation of [EST](#abbr_EST) as a method by which the > [TSF](#abbr_TSF) can obtain an X.509 certificate for its own use. > > [FIA\_X509\_EXT.5](#FIA_X509_EXT.5) (Objective) > > [FIA\_X509\_EXT.5](#FIA_X509_EXT.5) supports the objective by defining > the implementation of Certificate Request Messages as a method by which > the [TSF](#abbr_TSF) can obtain an X.509 certificate for its own use. > > [FPT\_BLT\_EXT.1](#FPT_BLT_EXT.1) (Objective) > > [FPT\_BLT\_EXT.1](#FPT_BLT_EXT.1) supports the objective by requiring > the [TSF](#abbr_TSF) to disable certain Bluetooth profiles when they are > inactive such that explicit user authorization is required to re-enable > them. ----------------------------------------------------------------------------------- | FTP\_BLT\_EXT.1 (Bluetooth Module) OBJECTIVE ADDRESSED BY < ------------------------------------------- --------------------------------------- < [O.PROTECTED\_COMMS](#O.PROTECTED_COMMS)\ [FCS\_CKM.1](#FCS_CKM.1), < [FCS\_CKM.2/UNLOCKED](#FCS_CKM.2/UNLOCK < FCS\_CKM\_EXT.8 (Bluetooth Module), < [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT < [FCS\_COP.1/HASH](#FCS_COP.1/HASH), < [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN), < [FCS\_COP.1/KEYHMAC](#FCS_COP.1/KEYHMAC < FCS\_DTLSC\_EXT.1 ([TLS](#abbr_TLS) Pac < FCS\_DTLSC\_EXT.2 ([TLS](#abbr_TLS) Pac < [FCS\_HTTPS\_EXT.1](#FCS_HTTPS_EXT.1), < [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1), < [FCS\_RBG\_EXT.2](#FCS_RBG_EXT.2) (Obje < [FCS\_RBG\_EXT.3](#FCS_RBG_EXT.3) (Obje < [FCS\_SRV\_EXT.1](#FCS_SRV_EXT.1), < [FCS\_SRV\_EXT.2](#FCS_SRV_EXT.2) (Obje < FCS\_TLSC\_EXT.1 ([TLS](#abbr_TLS) Pack < FCS\_TLSC\_EXT.2 ([TLS](#abbr_TLS) Pack < FCS\_TLSC\_EXT.3 ([TLS](#abbr_TLS) Pack < [FDP\_BLT\_EXT.1](#FDP_BLT_EXT.1), < [FDP\_IFC\_EXT.1](#FDP_IFC_EXT.1), < [FDP\_STG\_EXT.1](#FDP_STG_EXT.1), < [FDP\_UPC\_EXT.1/APPS](#FDP_UPC_EXT.1/A < [FDP\_UPC\_EXT.1/BLUETOOTH](#FDP_UPC_EX < FIA\_BLT\_EXT.1 (Bluetooth Module), FIA < (Bluetooth Module), FIA\_BLT\_EXT.3 (Bl < FIA\_BLT\_EXT.4 (Bluetooth Module), FIA < (Bluetooth Module), FIA\_BLT\_EXT.6 (Bl < FIA\_BLT\_EXT.7 (Bluetooth Module), < [FIA\_X509\_EXT.1](#FIA_X509_EXT.1), < [FIA\_X509\_EXT.2](#FIA_X509_EXT.2), < [FIA\_X509\_EXT.3](#FIA_X509_EXT.3), < [FIA\_X509\_EXT.4](#FIA_X509_EXT.4) (Ob < [FIA\_X509\_EXT.5](#FIA_X509_EXT.5) (Ob < [FPT\_BLT\_EXT.1](#FPT_BLT_EXT.1) (Obje < FTP\_BLT\_EXT.1 (Bluetooth Module), FTP < (Bluetooth Module), FTP\_BLT\_EXT.3/BR < FTP\_BLT\_EXT.3/[LE](#abbr_LE) (Bluetoo < [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < [O.STORAGE](#O.STORAGE)\ [FCS\_CKM.2/LOCKED](#FCS_CKM.2/LOCKED), < [FCS\_CKM\_EXT.1](#FCS_CKM_EXT.1), < [FCS\_CKM\_EXT.2](#FCS_CKM_EXT.2), < [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3), < [FCS\_CKM\_EXT.4](#FCS_CKM_EXT.4), < [FCS\_CKM\_EXT.5](#FCS_CKM_EXT.5), < [FCS\_CKM\_EXT.6](#FCS_CKM_EXT.6), < [FCS\_CKM\_EXT.7](#FCS_CKM_EXT.7) (Sel- < [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT < [FCS\_COP.1/HASH](#FCS_COP.1/HASH), < [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN), < [FCS\_COP.1/KEYHMAC](#FCS_COP.1/KEYHMAC < [FCS\_COP.1/CONDITION](#FCS_COP.1/CONDI < [FCS\_IV\_EXT.1](#FCS_IV_EXT.1), < [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1), < [FCS\_STG\_EXT.1](#FCS_STG_EXT.1), < [FCS\_STG\_EXT.2](#FCS_STG_EXT.2), < [FCS\_STG\_EXT.3](#FCS_STG_EXT.3), < [FDP\_ACF\_EXT.3](#FDP_ACF_EXT.3) (Obje < [FDP\_DAR\_EXT.1](#FDP_DAR_EXT.1), < [FDP\_DAR\_EXT.2](#FDP_DAR_EXT.2), < [FIA\_UAU\_EXT.1](#FIA_UAU_EXT.1), < [FPT\_KST\_EXT.1](#FPT_KST_EXT.1), < [FPT\_KST\_EXT.2](#FPT_KST_EXT.2), < [FPT\_KST\_EXT.3](#FPT_KST_EXT.3), < [FPT\_JTA\_EXT.1](#FPT_JTA_EXT.1) < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < [O.CONFIG](#O.CONFIG)\ [FMT\_MOF\_EXT.1](#FMT_MOF_EXT.1), < [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1), < [FMT\_SMF\_EXT.2](#FMT_SMF_EXT.2), < [FTA\_TAB.1](#FTA_TAB.1) (Objective) < < < < < < < < < < < < < < < [O.AUTH](#O.AUTH)\ [FDP\_PBA\_EXT.1](#FDP_PBA_EXT.1) (Sel- < [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1), FIA\ < (Bluetooth Module), FIA\_BLT\_EXT.2 (Bl < [FIA\_BMG\_EXT.1](#FIA_BMG_EXT.1) (Sel- < [FIA\_BMG\_EXT.2](#FIA_BMG_EXT.2) (Obje < [FIA\_BMG\_EXT.3](#FIA_BMG_EXT.3) (Obje < [FIA\_BMG\_EXT.4](#FIA_BMG_EXT.4) (Obje < [FIA\_BMG\_EXT.5](#FIA_BMG_EXT.5) (Obje < [FIA\_BMG\_EXT.6](#FIA_BMG_EXT.6) (Obje < [FIA\_PMG\_EXT.1](#FIA_PMG_EXT.1), < [FIA\_TRT\_EXT.1](#FIA_TRT_EXT.1), < [FIA\_UAU\_EXT.1](#FIA_UAU_EXT.1), < [FIA\_UAU\_EXT.2](#FIA_UAU_EXT.2), < [FIA\_UAU\_EXT.4](#FIA_UAU_EXT.4) (Opti < [FIA\_UAU.5](#FIA_UAU.5), [FIA\_UAU.6]( < [FIA\_UAU.7](#FIA_UAU.7), < [FIA\_X509\_EXT.2](#FIA_X509_EXT.2), < [FTA\_SSL\_EXT.1](#FTA_SSL_EXT.1) < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < [O.INTEGRITY](#O.INTEGRITY)\ [FAU\_GEN.1](#FAU_GEN.1), [FAU\_SAR.1]( < (Objective), [FAU\_SEL.1](#FAU_SEL.1) ( < [FAU\_STG.1](#FAU_STG.1), [FAU\_STG.4]( < [FCS\_COP.1/HASH](#FCS_COP.1/HASH), < [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN), < [FDP\_ACF\_EXT.1](#FDP_ACF_EXT.1), < [FDP\_ACF\_EXT.3](#FDP_ACF_EXT.3) (Obje < [FPT\_AEX\_EXT.1](#FPT_AEX_EXT.1), < [FPT\_AEX\_EXT.2](#FPT_AEX_EXT.2), < [FPT\_AEX\_EXT.3](#FPT_AEX_EXT.3), < [FPT\_AEX\_EXT.4](#FPT_AEX_EXT.4), < [FPT\_AEX\_EXT.5](#FPT_AEX_EXT.5) (Obje < [FPT\_AEX\_EXT.6](#FPT_AEX_EXT.6) (Obje < [FPT\_AEX\_EXT.7](#FPT_AEX_EXT.7) (Obje < [FPT\_BBD\_EXT.1](#FPT_BBD_EXT.1) (Obje < [FPT\_NOT\_EXT.1](#FPT_NOT_EXT.1), < [FPT\_NOT\_EXT.2](#FPT_NOT_EXT.2) (Obje < [FPT\_STM.1](#FPT_STM.1), < [FPT\_TST\_EXT.1](#FPT_TST_EXT.1), < [FPT\_TST\_EXT.2/PREKERNEL](#FPT_TST_EX < [FPT\_TST\_EXT.2/POSTKERNEL](#FPT_TST_E < [FPT\_TST\_EXT.3](#FPT_TST_EXT.3) (Sel- < [FPT\_TUD\_EXT.1](#FPT_TUD_EXT.1), < [FPT\_TUD\_EXT.2](#FPT_TUD_EXT.2), < [FPT\_TUD\_EXT.3](#FPT_TUD_EXT.3), < [FPT\_TUD\_EXT.4](#FPT_TUD_EXT.4) (Sel- < [FPT\_TUD\_EXT.5](#FPT_TUD_EXT.5) (Obje < [FPT\_TUD\_EXT.6](#FPT_TUD_EXT.6) (Obje < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < [O.PRIVACY](#O.PRIVACY)\ [FDP\_ACF\_EXT.1](#FDP_ACF_EXT.1), < [FDP\_ACF\_EXT.2](#FDP_ACF_EXT.2) (Sel- < [FDP\_BCK\_EXT.1](#FDP_BCK_EXT.1) (Obje < [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1), < [FMT\_SMF\_EXT.3](#FMT_SMF_EXT.3) (Obje < < < < < < < < < < < < < < < < < < < ----------------------------------------------------------------------------------- < : [Table [8]{.counter}]{#t-obj_map .ctr data-myid="t-obj_map" | FTP\_BLT\_EXT.1 supports the objective by requiring the [TSF](#abbr_TSF) data-counter-type="ct-Table"}: [SFR](#abbr_SFR) Rationale | to implement encryption to protect Bluetooth communications > > FTP\_BLT\_EXT.2 (Bluetooth Module) > > FTP\_BLT\_EXT.2 supports the objective by requiring the [TSF](#abbr_TSF) > to prevent data transmission over Bluetooth if the paired device is not > using encryption. > > FTP\_BLT\_EXT.3/BR (Bluetooth Module) > > FTP\_BLT\_EXT.3/BR supports the objective by defining the minimum key > size for Bluetooth [BR/EDR](#abbr_BR/EDR) communications. > > FTP\_BLT\_EXT.3/[LE](#abbr_LE) (Bluetooth Module) > > FTP\_BLT\_EXT.3/[LE](#abbr_LE) supports the objective by defining the > minimum key size for Bluetooth [LE](#abbr_LE) communications. > > [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) > > [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) supports the objective by defining the > protected communications protocols that the [TSF](#abbr_TSF) implements. > > [O.STORAGE](#O.STORAGE)\ > > [FCS\_CKM.2/LOCKED](#FCS_CKM.2/LOCKED) > > [FCS\_CKM\_EXT.1](#FCS_CKM_EXT.1) > > [FCS\_CKM\_EXT.1](#FCS_CKM_EXT.1) supports the objective by defining the > [TOE](#abbr_TOE)\'s root encryption key that is used to protect data at > rest. > > [FCS\_CKM\_EXT.2](#FCS_CKM_EXT.2) > > [FCS\_CKM\_EXT.2](#FCS_CKM_EXT.2) supports the objective by defining how > the [TSF](#abbr_TSF) creates data encryption keys that are used to > protect data at rest. > > [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3) > > [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3) supports the objective by defining the > key encryption keys the [TOE](#abbr_TOE) uses to protect data at rest > and how they are created. > > [FCS\_CKM\_EXT.4](#FCS_CKM_EXT.4) > > [FCS\_CKM\_EXT.4](#FCS_CKM_EXT.4) supports the objective by requiring > the [TSF](#abbr_TSF) to destroy keys and key material that could > otherwise be used to compromise data at rest. > > [FCS\_CKM\_EXT.5](#FCS_CKM_EXT.5) > > [FCS\_CKM\_EXT.5](#FCS_CKM_EXT.5) supports the objective by defining the > mechanism the [TSF](#abbr_TSF) uses to perform a wipe operation that > securely destroys data at rest. > > [FCS\_CKM\_EXT.6](#FCS_CKM_EXT.6) > > [FCS\_CKM\_EXT.6](#FCS_CKM_EXT.6) supports the objective by requiring > the [TSF](#abbr_TSF) to use secure salts when performing cryptographic > operations that require them. > > [FCS\_CKM\_EXT.7](#FCS_CKM_EXT.7) (Sel-Based) > > [FCS\_CKM\_EXT.7](#FCS_CKM_EXT.7) supports the objective by ensuring > that the [TOE](#abbr_TOE)\'s root encryption key cannot be disclosed. > > [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT) > > [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT) supports the objective by > defining a symmetric encryption/decryption function that can be used to > protect data at rest. > > [FCS\_COP.1/HASH](#FCS_COP.1/HASH) > > [FCS\_COP.1/HASH](#FCS_COP.1/HASH) supports the objective by defining a > hash function that can be used to protect data at rest. > > [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN) > > [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN) supports the objective by defining a > digital signature function that can be used to protect data at rest. > > [FCS\_COP.1/KEYHMAC](#FCS_COP.1/KEYHMAC) > > [FCS\_COP.1/KEYHMAC](#FCS_COP.1/KEYHMAC) supports the objective by > defining an [HMAC](#abbr_HMAC) function that can be used to protect data > at rest. > > [FCS\_COP.1/CONDITION](#FCS_COP.1/CONDITION) > > [FCS\_COP.1/CONDITION](#FCS_COP.1/CONDITION) supports the objective by > defining a key derivation function that can be used to protect data at > rest. > > [FCS\_IV\_EXT.1](#FCS_IV_EXT.1) > > [FCS\_IV\_EXT.1](#FCS_IV_EXT.1) supports the objective by ensuring that > any IVs the [TSF](#abbr_TSF) generates for [AES](#abbr_AES) keys are > generated in an appropriate manner based on the relevant standards. > > [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) > > [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1) supports the objective by defining > random bit generation function that can be used to protect data at rest. > > [FCS\_STG\_EXT.1](#FCS_STG_EXT.1) > > [FCS\_STG\_EXT.1](#FCS_STG_EXT.1) supports the objective by requiring > the [TSF](#abbr_TSF) to implement a hardware or software key store to > protect key data at rest. > > [FCS\_STG\_EXT.2](#FCS_STG_EXT.2) > > [FCS\_STG\_EXT.2](#FCS_STG_EXT.2) supports the objective by defining the > confidentiality mechanism used to protect stored key data from > unauthorized disclosure. > > [FCS\_STG\_EXT.3](#FCS_STG_EXT.3) > > [FCS\_STG\_EXT.3](#FCS_STG_EXT.3) supports the objective by defining the > integrity mechanism used to protect stored key data from unauthorized > modification. > > [FDP\_ACF\_EXT.3](#FDP_ACF_EXT.3) (Objective) > > [FDP\_ACF\_EXT.3](#FDP_ACF_EXT.3) supports the objective by ensuring > that the [TSF](#abbr_TSF) does not permit write and execute permissions > on stored data to be granted simultaneously. > > [FDP\_DAR\_EXT.1](#FDP_DAR_EXT.1) > > [FDP\_DAR\_EXT.1](#FDP_DAR_EXT.1) supports the objective by requiring > the [TSF](#abbr_TSF) to encrypt all sensitive data using data encryption > keys. > > [FDP\_DAR\_EXT.2](#FDP_DAR_EXT.2) > > [FDP\_DAR\_EXT.2](#FDP_DAR_EXT.2) supports the objective by requiring > the [TSF](#abbr_TSF) to provide a mechanism to mark data as sensitive so > that it can subject to encryption. > > [FIA\_UAU\_EXT.1](#FIA_UAU_EXT.1) ### 5.2 Security Assurance Requirements {#sar .indexable data-level="2"} | [FIA\_UAU\_EXT.1](#FIA_UAU_EXT.1) supports the objective by requiring > the presentation of a valid authorization factor in order to decrypt > sensitive data at rest. > > [FPT\_KST\_EXT.1](#FPT_KST_EXT.1) > > [FPT\_KST\_EXT.1](#FPT_KST_EXT.1) supports the objective by requiring > the [TSF](#abbr_TSF) to prevent the storage of plaintext key data in > readable non-volatile memory. > > [FPT\_KST\_EXT.2](#FPT_KST_EXT.2) > > [FPT\_KST\_EXT.2](#FPT_KST_EXT.2) supports the objective by requiring > the [TSF](#abbr_TSF) to prevent any transmission of plaintext key > material outside of the [TOE](#abbr_TOE) boundary. > > [FPT\_KST\_EXT.3](#FPT_KST_EXT.3) > > [FPT\_KST\_EXT.3](#FPT_KST_EXT.3) supports the objective by requiring > the [TSF](#abbr_TSF) to prevent export of any stored plaintext keys. > > [FPT\_JTA\_EXT.1](#FPT_JTA_EXT.1) > > [FPT\_JTA\_EXT.1](#FPT_JTA_EXT.1) supports the objective by requiring > the [TSF](#abbr_TSF) to enforce access controls against JTAG so that > this interface cannot be used to disclose data at rest. > > [O.CONFIG](#O.CONFIG)\ > > [FMT\_MOF\_EXT.1](#FMT_MOF_EXT.1) > > [FMT\_MOF\_EXT.1](#FMT_MOF_EXT.1) supports the objective by specifying > the [TSF](#abbr_TSF) management functions that an end user is authorized > to perform. > > [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) > > [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) supports the objective by defining the > [TSF](#abbr_TSF) management functions and the users or roles that are > authorized to invoke them. > > [FMT\_SMF\_EXT.2](#FMT_SMF_EXT.2) > > [FMT\_SMF\_EXT.2](#FMT_SMF_EXT.2) supports the objective by defining the > configuration actions that the [TSF](#abbr_TSF) performs automatically > upon unenrollment from mobile device management. > > [FTA\_TAB.1](#FTA_TAB.1) (Objective) > > [FTA\_TAB.1](#FTA_TAB.1) supports the objective by requiring the > [TSF](#abbr_TSF) to display a warning banner to users that governs > authorized usage of the [TOE](#abbr_TOE). > > [O.AUTH](#O.AUTH)\ > > [FDP\_PBA\_EXT.1](#FDP_PBA_EXT.1) (Sel-Based) > > [FDP\_PBA\_EXT.1](#FDP_PBA_EXT.1) supports the objective by defining the > mechanism that the [TSF](#abbr_TSF) uses to protect stored biometric > templates. > > [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1) > > [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1) supports the objective by defining the > authentication mechanisms that are subject to lockout behavior and how > the [TSF](#abbr_TSF) handles repeated failed authentication attempts. > > FIA\_BLT\_EXT.1(Bluetooth Module) > > FIA\_BLT\_EXT.1 supports the objective by requiring a user to authorize > all Bluetooth pairings. > > FIA\_BLT\_EXT.2 (Bluetooth Module) > > FIA\_BLT\_EXT.2 supports the objective by requiring the [TSF](#abbr_TSF) > to enforce mutual authentication for Bluetooth. > > [FIA\_BMG\_EXT.1](#FIA_BMG_EXT.1) (Sel-Based) > > [FIA\_BMG\_EXT.1](#FIA_BMG_EXT.1) supports the objective by defining the > minimum accuracy of biometric authentication methods that the > [TSF](#abbr_TSF) must support. > > [FIA\_BMG\_EXT.2](#FIA_BMG_EXT.2) (Objective) > > [FIA\_BMG\_EXT.2](#FIA_BMG_EXT.2) supports the objective by requiring > the [TSF](#abbr_TSF) to enforce a minimum quality standard on the > biometric data used for enrollment. > > [FIA\_BMG\_EXT.3](#FIA_BMG_EXT.3) (Objective) > > [FIA\_BMG\_EXT.3](#FIA_BMG_EXT.3) supports the objective by defining the > quality metrics used by the [TSF](#abbr_TSF) to enforce minimum quality > for biometric data. > > [FIA\_BMG\_EXT.4](#FIA_BMG_EXT.4) (Objective) > > [FIA\_BMG\_EXT.4](#FIA_BMG_EXT.4) supports the objective by requiring > the [TSF](#abbr_TSF) to generate enrollment and authentication templates > using data that exceeds a minimum quality threshold. > > [FIA\_BMG\_EXT.5](#FIA_BMG_EXT.5) (Objective) > > [FIA\_BMG\_EXT.5](#FIA_BMG_EXT.5) supports the objective by defining how > the [TSF](#abbr_TSF) handles biometric data that does not match expected > parameters. > > [FIA\_BMG\_EXT.6](#FIA_BMG_EXT.6) (Objective) > > [FIA\_BMG\_EXT.6](#FIA_BMG_EXT.6) supports the objective by requiring > the [TSF](#abbr_TSF) to detect spoofed biometric data. > > [FIA\_PMG\_EXT.1](#FIA_PMG_EXT.1) > > [FIA\_PMG\_EXT.1](#FIA_PMG_EXT.1) supports the objective by defining the > minimum quality threshold for passwords that the [TSF](#abbr_TSF) must > enforce. > > [FIA\_TRT\_EXT.1](#FIA_TRT_EXT.1) > > [FIA\_TRT\_EXT.1](#FIA_TRT_EXT.1) supports the objective by enforcing an > authentication throttling mechanism that limits the rate at which > authentication attempts can be made to the [TOE](#abbr_TOE). > > [FIA\_UAU\_EXT.1](#FIA_UAU_EXT.1) > > [FIA\_UAU\_EXT.1](#FIA_UAU_EXT.1) supports the objective by requiring > the [TSF](#abbr_TSF) to be provided with a valid password before access > to protected data is granted. > > [FIA\_UAU\_EXT.2](#FIA_UAU_EXT.2) > > [FIA\_UAU\_EXT.2](#FIA_UAU_EXT.2) supports the objective by defining the > [TOE](#abbr_TOE) functions that can be accessed without authentication > such that all other services require authentication. > > [FIA\_UAU\_EXT.4](#FIA_UAU_EXT.4) (Optional) > > [FIA\_UAU\_EXT.4](#FIA_UAU_EXT.4) supports the objective by defining a > secondary authentication mechanism for Enterprise resources. > > [FIA\_UAU.5](#FIA_UAU.5) > > [FIA\_UAU.5](#FIA_UAU.5) supports the objective by defining all > authentication factors the [TSF](#abbr_TSF) supports and rules for how > these authentication factors are used to gain access to the > [TSF](#abbr_TSF). > > [FIA\_UAU.6](#FIA_UAU.6) > > [FIA\_UAU.6](#FIA_UAU.6) supports the objective by requiring the > [TSF](#abbr_TSF) to re-authenticate users with their password prior to > allowing them to change any other authentication data. > > [FIA\_UAU.7](#FIA_UAU.7) > > [FIA\_UAU.7](#FIA_UAU.7) supports the objective by ensuring that > [TSF](#abbr_TSF) does not disclose user authentication data as it is > being input to the [TOE](#abbr_TOE). > > [FIA\_X509\_EXT.2](#FIA_X509_EXT.2) > > [FIA\_X509\_EXT.2](#FIA_X509_EXT.2) supports the objective by defining > the functions for which the [TSF](#abbr_TSF) uses X.509 certificates as > an authentication mechanism. > > [FTA\_SSL\_EXT.1](#FTA_SSL_EXT.1) > > [FTA\_SSL\_EXT.1](#FTA_SSL_EXT.1) supports the objective by requiring > the [TSF](#abbr_TSF) to ensure that an idle user session is terminated > after a given period of time. > > [O.INTEGRITY](#O.INTEGRITY)\ > > [FAU\_GEN.1](#FAU_GEN.1) > > [FAU\_GEN.1](#FAU_GEN.1) supports the objective by requiring the > [TSF](#abbr_TSF) to record actions performed against it to establish a > record of potential malicious activity. > > [FAU\_SAR.1](#FAU_SAR.1) (Objective) > > [FAU\_SAR.1](#FAU_SAR.1) supports the objective by requiring the > [TSF](#abbr_TSF) to provide a mechanism to review the stored audit data > so administrators can diagnose the root cause of malicious usage. > > [FAU\_SEL.1](#FAU_SEL.1) (Objective) > > [FAU\_SEL.1](#FAU_SEL.1) supports the objective by allowing the > [TSF](#abbr_TSF) to restrict the audit records that are generated so > that records unrelated to potential malicious usage can be suppressed. > > [FAU\_STG.1](#FAU_STG.1) > > [FAU\_STG.1](#FAU_STG.1) supports the objective by ensuring that a > malicious user cannot tamper with audit records by modifying or deleting > them. > > [FAU\_STG.4](#FAU_STG.4) > > [FAU\_STG.4](#FAU_STG.4) supports the objective by ensuring the > availability of audit records. > > [FCS\_COP.1/HASH](#FCS_COP.1/HASH) > > [FCS\_COP.1/HASH](#FCS_COP.1/HASH) supports the objective by requiring > the [TSF](#abbr_TSF) to implement hash algorithms that can be used to > assert and verify integrity. > > [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN) > > [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN) supports the objective by requiring > the [TSF](#abbr_TSF) to implement digital signature algorithms that can > be used to assert and verify integrity. > > [FDP\_ACF\_EXT.1](#FDP_ACF_EXT.1) > > [FDP\_ACF\_EXT.1](#FDP_ACF_EXT.1) supports the objective by requiring > the [TSF](#abbr_TSF) to maintain the integrity of its system services by > limiting the entities that can access them. > > [FDP\_ACF\_EXT.3](#FDP_ACF_EXT.3) (Objective) > > [FDP\_ACF\_EXT.3](#FDP_ACF_EXT.3) supports the objective by requiring > the [TSF](#abbr_TSF) to ensure that writable files cannot be executed > and vice versa, such that arbitrary code or scripts cannot be executed > to compromise the integrity of the [TOE](#abbr_TOE). > > [FPT\_AEX\_EXT.1](#FPT_AEX_EXT.1) > > [FPT\_AEX\_EXT.1](#FPT_AEX_EXT.1) supports the objective by requiring > the [TSF](#abbr_TSF) to implement [ASLR](#abbr_ASLR) to prevent a > compromise of the [TSF](#abbr_TSF). > > [FPT\_AEX\_EXT.2](#FPT_AEX_EXT.2) > > [FPT\_AEX\_EXT.2](#FPT_AEX_EXT.2) supports the objective by requiring > the [TSF](#abbr_TSF) to enforce permissions against memory pages to > prevent a compromise of the [TSF](#abbr_TSF). > > [FPT\_AEX\_EXT.3](#FPT_AEX_EXT.3) > > [FPT\_AEX\_EXT.3](#FPT_AEX_EXT.3) supports the objective by requiring > the [TSF](#abbr_TSF) to implement stack overflow protection to prevent a > compromise of the [TSF](#abbr_TSF). > > [FPT\_AEX\_EXT.4](#FPT_AEX_EXT.4) > > [FPT\_AEX\_EXT.4](#FPT_AEX_EXT.4) supports the objective by requiring > the [TSF](#abbr_TSF) to enforce address space separation to prevent a > compromise of the [TSF](#abbr_TSF). > > [FPT\_AEX\_EXT.5](#FPT_AEX_EXT.5) (Objective) > > [FPT\_AEX\_EXT.5](#FPT_AEX_EXT.5) supports the objective by requiring > the [TSF](#abbr_TSF) to implement [ASLR](#abbr_ASLR) to prevent a > compromise of the [TSF](#abbr_TSF). > > [FPT\_AEX\_EXT.6](#FPT_AEX_EXT.6) (Objective) > > [FPT\_AEX\_EXT.6](#FPT_AEX_EXT.6) supports the objective by requiring > the [TSF](#abbr_TSF) to ensure that writable files cannot be executed > and vice versa, such that arbitrary code or scripts cannot be executed > to compromise the integrity of the [TOE](#abbr_TOE). > > [FPT\_AEX\_EXT.7](#FPT_AEX_EXT.7) (Objective) > > [FPT\_AEX\_EXT.7](#FPT_AEX_EXT.7) supports the objective by requiring > the [TSF](#abbr_TSF) to implement heap overflow protection to prevent a > compromise of the [TSF](#abbr_TSF). > > [FPT\_BBD\_EXT.1](#FPT_BBD_EXT.1) (Objective) > > [FPT\_BBD\_EXT.1](#FPT_BBD_EXT.1) supports the objective by ensuring > that isolation between the [TOE](#abbr_TOE)\'s baseband processor and > application processor is enforced so that access to the baseband > processor is strictly controlled. > > [FPT\_NOT\_EXT.1](#FPT_NOT_EXT.1) > > [FPT\_NOT\_EXT.1](#FPT_NOT_EXT.1) supports the objective by requiring > the [TSF](#abbr_TSF) to take some action to prevent its integrity in the > event of various failure conditions. > > [FPT\_NOT\_EXT.2](#FPT_NOT_EXT.2) (Objective) > > [FPT\_NOT\_EXT.2](#FPT_NOT_EXT.2) supports the objective by requiring > the [TSF](#abbr_TSF) to make its integrity verification values available > for the purpose of remote attestation. > > [FPT\_STM.1](#FPT_STM.1) > > [FPT\_STM.1](#FPT_STM.1) supports the objective by ensuring accurate > system time data is applied to audit logs. > > [FPT\_TST\_EXT.1](#FPT_TST_EXT.1) > > [FPT\_TST\_EXT.1](#FPT_TST_EXT.1) supports the objective by defining the > self-tests that the [TSF](#abbr_TSF) performs to validate its own > integrity. > > [FPT\_TST\_EXT.2/PREKERNEL](#FPT_TST_EXT.2/PREKERNEL) > > [FPT\_TST\_EXT.2/PREKERNEL](#FPT_TST_EXT.2/PREKERNEL) supports the > objective by requiring the [TSF](#abbr_TSF) to verify the integrity of > its bootchain prior to kernel load. > > [FPT\_TST\_EXT.2/POSTKERNEL](#FPT_TST_EXT.2/POSTKERNEL) > > [FPT\_TST\_EXT.2/POSTKERNEL](#FPT_TST_EXT.2/POSTKERNEL) supports the > objective by requiring the [TSF](#abbr_TSF) to verify the integrity of > stored executable code prior to its execution. > > [FPT\_TST\_EXT.3](#FPT_TST_EXT.3) (Sel-Based) > > [FPT\_TST\_EXT.3](#FPT_TST_EXT.3) supports the objective by requiring > the [TSF](#abbr_TSF) to block code execution if its code signing > certificate is invalid. > > [FPT\_TUD\_EXT.1](#FPT_TUD_EXT.1) > > [FPT\_TUD\_EXT.1](#FPT_TUD_EXT.1) supports the objective by allowing > users to determine the version of the [TOE](#abbr_TOE)\'s hardware, > software/firmware, and installed applications. > > [FPT\_TUD\_EXT.2](#FPT_TUD_EXT.2) > > [FPT\_TUD\_EXT.2](#FPT_TUD_EXT.2) supports the objective by requiring > the [TSF](#abbr_TSF) to validate the integrity of software updates prior > to installing them. > > [FPT\_TUD\_EXT.3](#FPT_TUD_EXT.3) > > [FPT\_TUD\_EXT.3](#FPT_TUD_EXT.3) supports the objective by requiring > the [TSF](#abbr_TSF) to validate the integrity of third-party > applications prior to installing them. > > [FPT\_TUD\_EXT.4](#FPT_TUD_EXT.4) (Sel-Based) > > [FPT\_TUD\_EXT.4](#FPT_TUD_EXT.4) supports the objective by requiring > the [TSF](#abbr_TSF) to block installation of code if its associated > code signing certificate is invalid. > > [FPT\_TUD\_EXT.5](#FPT_TUD_EXT.5) (Objective) > > [FPT\_TUD\_EXT.5](#FPT_TUD_EXT.5) supports the objective by specifying > the X.509 certificate that the [TSF](#abbr_TSF) uses to verify > applications prior to their installation. > > [FPT\_TUD\_EXT.6](#FPT_TUD_EXT.6) (Objective) > > [FPT\_TUD\_EXT.6](#FPT_TUD_EXT.6) supports the objective by preventing > the [TSF](#abbr_TSF) from being rolled back to an earlier version that > may have known vulnerabilities that were subsequently patched. > > [O.PRIVACY](#O.PRIVACY)\ > > [FDP\_ACF\_EXT.1](#FDP_ACF_EXT.1) > > [FDP\_ACF\_EXT.1](#FDP_ACF_EXT.1) supports the objective by enforcing > restrictions on services that could compromise user privacy if accessed > inappropriately. > > [FDP\_ACF\_EXT.2](#FDP_ACF_EXT.2) (Sel-Based) > > [FDP\_ACF\_EXT.2](#FDP_ACF_EXT.2) supports the objective by requiring > the [TSF](#abbr_TSF) to provide separate user data stores for > application groups so that the privacy of that data can be maintained. > > [FDP\_BCK\_EXT.1](#FDP_BCK_EXT.1) (Objective) > > [FDP\_BCK\_EXT.1](#FDP_BCK_EXT.1) supports the objective by allowing > data to be excluded from backup operations that could compromise user > privacy if disclosed. > > [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) > > [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) supports the objective by requiring > the [TSF](#abbr_TSF) to implement management functions that control the > extent to which user data is collected and disseminated. > > [FMT\_SMF\_EXT.3](#FMT_SMF_EXT.3) (Objective) > > [FMT\_SMF\_EXT.3](#FMT_SMF_EXT.3) supports the objective by requiring > the [TSF](#abbr_TSF) to identify its authorized administrators so that a > user knows the extent to which various administrators have access to the > device. > > 5.2 Security Assurance Requirements {#sar .indexable data-level="2"} > ----------------------------------- The Security Objectives in [Section 4 Security The Security Objectives in [Section 4 Security Objectives](#sobj){.dynref} were constructed to address threats Objectives](#sobj){.dynref} were constructed to address threats identified in [Section 3 Security Problem Description](#spd){.dynref}. identified in [Section 3 Security Problem Description](#spd){.dynref}. The Security Functional Requirements (SFRs) in [Section 5.1 Security | The Security Functional Requirements ([SFRs](#abbr_SFR)) in [Section 5.1 Functional Requirements](#sfr){.dynref} are a formal instantiation of | Security Functional Requirements](#sfr){.dynref} are a formal the Security Objectives. The [PP](#abbr_PP) identifies the Security | instantiation of the Security Objectives. The [PP](#abbr_PP) identifies Assurance Requirements (SARs) to frame the extent to which the evaluator | the Security Assurance Requirements ([SARs](#abbr_SAR)) to frame the assesses the documentation applicable for the evaluation and performs | extent to which the evaluator assesses the documentation applicable for independent testing.\ | the evaluation and performs independent testing.\ \ | \ This section lists the set of SARs from [CC](#abbr_CC) part 3 that are | This section lists the set of [SARs](#abbr_SAR) from [CC](#abbr_CC) part required in evaluations against this [PP](#abbr_PP). Individual | 3 that are required in evaluations against this [PP](#abbr_PP). Evaluation Activities to be performed are specified both in [Section 5.1 | Individual Evaluation Activities to be performed are specified both in Security Functional Requirements](#sfr){.dynref} as well as in this | [Section 5.1 Security Functional Requirements](#sfr){.dynref} as well as section.\ | in this section.\ \ | \ The general model for evaluation of TOEs against STs written to conform | The general model for evaluation of [TOEs](#abbr_TOE) against to this [PP](#abbr_PP) is as follows:\ | [STs](#abbr_ST) written to conform to this [PP](#abbr_PP) is as > follows:\ \ \ After the [ST](#abbr_ST) has been approved for evaluation, the ITSEF After the [ST](#abbr_ST) has been approved for evaluation, the ITSEF will obtain the [TOE](#abbr_TOE), supporting environmental IT, and the will obtain the [TOE](#abbr_TOE), supporting environmental IT, and the administrative/user guides for the [TOE](#abbr_TOE). The ITSEF is administrative/user guides for the [TOE](#abbr_TOE). The ITSEF is expected to perform actions mandated by the Common Evaluation expected to perform actions mandated by the Common Evaluation Methodology ([CEM](#abbr_CEM)) for the ASE and ALC SARs. The ITSEF also | Methodology ([CEM](#abbr_CEM)) for the ASE and ALC [SARs](#abbr_SAR). performs the Evaluation Activities contained within [Section 5.1 | The ITSEF also performs the Evaluation Activities contained within Security Functional Requirements](#sfr){.dynref}, which are intended to | [Section 5.1 Security Functional Requirements](#sfr){.dynref}, which are be an interpretation of the other [CEM](#abbr_CEM) evaluation | intended to be an interpretation of the other [CEM](#abbr_CEM) requirements as they apply to the specific technology instantiated in | evaluation requirements as they apply to the specific technology the [TOE](#abbr_TOE). The Evaluation Activities that are captured in | instantiated in the [TOE](#abbr_TOE). The Evaluation Activities that are [Section 5.1 Security Functional Requirements](#sfr){.dynref} also | captured in [Section 5.1 Security Functional provide clarification as to what the developer needs to provide to | Requirements](#sfr){.dynref} also provide clarification as to what the demonstrate the [TOE](#abbr_TOE) is compliant with the [PP](#abbr_PP).\ | developer needs to provide to demonstrate the [TOE](#abbr_TOE) is > compliant with the [PP](#abbr_PP).\ \ \ The [TOE](#abbr_TOE) Security Assurance Requirements are identified in The [TOE](#abbr_TOE) Security Assurance Requirements are identified in [Table [9]{.counter}](#sartable){.sartable-ref}.\ [Table [9]{.counter}](#sartable){.sartable-ref}.\ \ \ [Table [9]{.counter}: Security Assurance Requirements]{#sartable .ctr [Table [9]{.counter}: Security Assurance Requirements]{#sartable .ctr data-myid="sartable" data-counter-type="ct-Table"} data-myid="sartable" data-counter-type="ct-Table"} Assurance Class Assurance Class Assurance Components Assurance Components Security Target (ASE) Security Target (ASE) Conformance Claims (ASE\_CCL.1) Conformance Claims (ASE\_CCL.1) Extended Components Definition (ASE\_ECD.1) Extended Components Definition (ASE\_ECD.1) [ST](#abbr_ST) Introduction (ASE\_INT.1) [ST](#abbr_ST) Introduction (ASE\_INT.1) Security Objectives for the Operational Environment (ASE\_OBJ.1) Security Objectives for the Operational Environment (ASE\_OBJ.1) Stated Security Requirements (ASE\_REQ.1) Stated Security Requirements (ASE\_REQ.1) Security Problem Definition (ASE\_SPD.1) Security Problem Definition (ASE\_SPD.1) [TOE](#abbr_TOE) Summary Specification (ASE\_TSS.1) [TOE](#abbr_TOE) Summary Specification (ASE\_TSS.1) Development (ADV) Development (ADV) Basic Functional Specification ([ADV\_FSP.1](#ADV_FSP.1)) Basic Functional Specification ([ADV\_FSP.1](#ADV_FSP.1)) Guidance Documents (AGD) Guidance Documents (AGD) Operational User Guidance ([AGD\_OPE.1](#AGD_OPE.1)) Operational User Guidance ([AGD\_OPE.1](#AGD_OPE.1)) Preparative Procedures ([AGD\_PRE.1](#AGD_PRE.1)) Preparative Procedures ([AGD\_PRE.1](#AGD_PRE.1)) Life Cycle Support (ALC) Life Cycle Support (ALC) Labeling of the [TOE](#abbr_TOE) ([ALC\_CMC.1](#ALC_CMC.1)) Labeling of the [TOE](#abbr_TOE) ([ALC\_CMC.1](#ALC_CMC.1)) [TOE](#abbr_TOE) CM Coverage ([ALC\_CMS.1](#ALC_CMS.1)) [TOE](#abbr_TOE) CM Coverage ([ALC\_CMS.1](#ALC_CMS.1)) Timely Security Updates (ALC\_TSU\_EXT) Timely Security Updates (ALC\_TSU\_EXT) Tests (ATE) Tests (ATE) Independent Testing -- Sample ([ATE\_IND.1](#ATE_IND.1)) Independent Testing -- Sample ([ATE\_IND.1](#ATE_IND.1)) Vulnerability Assessment (AVA) Vulnerability Assessment (AVA) Vulnerability Survey ([AVA\_VAN.1](#AVA_VAN.1)) Vulnerability Survey ([AVA\_VAN.1](#AVA_VAN.1)) #### 5.2.1 Class ASE: Security Target {#ase .indexable data-level="3"} | ### 5.2.1 Class ASE: Security Target {#ase .indexable data-level="3"} The [ST](#abbr_ST) is evaluated as per ASE activities defined in the The [ST](#abbr_ST) is evaluated as per ASE activities defined in the [CEM](#abbr_CEM) for ASE\_CCL.1, ASE\_ECD.1, ASE\_INT.1, ASE\_OBJ.2, [CEM](#abbr_CEM) for ASE\_CCL.1, ASE\_ECD.1, ASE\_INT.1, ASE\_OBJ.2, ASE\_REQ.2, ASE\_SPD.1, and ASE\_TSS.1. In addition, there may be ASE\_REQ.2, ASE\_SPD.1, and ASE\_TSS.1. In addition, there may be Evaluation Activities specified within [Section 5.1 Security Functional Evaluation Activities specified within [Section 5.1 Security Functional Requirements](#sfr){.dynref} that call for necessary descriptions to be Requirements](#sfr){.dynref} that call for necessary descriptions to be included in the [TSS](#abbr_TSS) that are specific to the included in the [TSS](#abbr_TSS) that are specific to the [TOE](#abbr_TOE) technology type. [TOE](#abbr_TOE) technology type. #### 5.2.2 Class ADV: Development {#adv .indexable data-level="3"} | ### 5.2.2 Class ADV: Development {#adv .indexable data-level="3"} The design information about the [TOE](#abbr_TOE) is contained in the The design information about the [TOE](#abbr_TOE) is contained in the guidance documentation available to the end user as well as the guidance documentation available to the end user as well as the [TSS](#abbr_TSS) portion of the [ST](#abbr_ST), and any additional [TSS](#abbr_TSS) portion of the [ST](#abbr_ST), and any additional information required by this [PP](#abbr_PP) that is not to be made information required by this [PP](#abbr_PP) that is not to be made public. public. ::: {#ADV_FSP.1 .comp} ::: {#ADV_FSP.1 .comp} #### ADV\_FSP.1 Basic Functional Specification #### ADV\_FSP.1 Basic Functional Specification The functional specification describes the [TOE](#abbr_TOE) Security The functional specification describes the [TOE](#abbr_TOE) Security Functions Interface ([TSFIs](#abbr_TSFI)). It is not necessary to have a Functions Interface ([TSFIs](#abbr_TSFI)). It is not necessary to have a formal or complete specification of these interfaces. Additionally, formal or complete specification of these interfaces. Additionally, because TOEs conforming to this [PP](#abbr_PP) will necessarily have | because [TOEs](#abbr_TOE) conforming to this [PP](#abbr_PP) will interfaces to the Operational Environment that are not directly | necessarily have interfaces to the Operational Environment that are not invokable by [TOE](#abbr_TOE) users, there is little point specifying | directly invokable by [TOE](#abbr_TOE) users, there is little point that such interfaces be described in and of themselves since only | specifying that such interfaces be described in and of themselves since indirect testing of such interfaces may be possible. For this | only indirect testing of such interfaces may be possible. For this [PP](#abbr_PP), the activities for this family should focus on [PP](#abbr_PP), the activities for this family should focus on understanding the interfaces presented in the [TSS](#abbr_TSS) in understanding the interfaces presented in the [TSS](#abbr_TSS) in response to the functional requirements and the interfaces presented in response to the functional requirements and the interfaces presented in the AGD documentation. No additional \"functional specification\" the AGD documentation. No additional \"functional specification\" documentation is necessary to satisfy the evaluation activities documentation is necessary to satisfy the evaluation activities specified.\ specified.\ \ \ The interfaces that need to be evaluated are characterized through the The interfaces that need to be evaluated are characterized through the information needed to perform the evaluation activities listed, rather information needed to perform the evaluation activities listed, rather than as an independent, abstract list. than as an independent, abstract list. #### Developer action elements: #### Developer action elements: ::: {.element} ::: {.element} ::: {#ADV_FSP.1.1D .reqid} ::: {#ADV_FSP.1.1D .reqid} [ADV\_FSP.1.1D](#ADV_FSP.1.1D){.abbr} [ADV\_FSP.1.1D](#ADV_FSP.1.1D){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The developer shall provide a functional specification. The developer shall provide a functional specification. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#ADV_FSP.1.2D .reqid} ::: {#ADV_FSP.1.2D .reqid} [ADV\_FSP.1.2D](#ADV_FSP.1.2D){.abbr} [ADV\_FSP.1.2D](#ADV_FSP.1.2D){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The developer shall provide a tracing from the functional specification The developer shall provide a tracing from the functional specification to the SFRs. | to the [SFRs](#abbr_SFR). ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[As indicated in the introduction to [Application Note: ]{.note-header}[As indicated in the introduction to this section, the functional specification is comprised of the this section, the functional specification is comprised of the information contained in the AGD\_OPE, AGD\_PRE, and the information contained in the AGD\_OPE, AGD\_PRE, and the [API](#abbr_API) information that is provided to application developers, [API](#abbr_API) information that is provided to application developers, including the APIs that require privilege to invoke.\ including the APIs that require privilege to invoke.\ \ \ The developer may reference a website accessible to application The developer may reference a website accessible to application developers and the evaluator. The [API](#abbr_API) documentation must developers and the evaluator. The [API](#abbr_API) documentation must include those interfaces required in this profile. The [API](#abbr_API) include those interfaces required in this profile. The [API](#abbr_API) documentation must clearly indicate to which products and versions each documentation must clearly indicate to which products and versions each available function applies.\ available function applies.\ \ \ The evaluation activities in the functional requirements point to The evaluation activities in the functional requirements point to evidence that should exist in the documentation and [TSS](#abbr_TSS) evidence that should exist in the documentation and [TSS](#abbr_TSS) section; since these are directly associated with the SFRs, the tracing | section; since these are directly associated with the [SFRs](#abbr_SFR), in element [ADV\_FSP.1.2D](#ADV_FSP.1.2D) is implicitly already done and | the tracing in element [ADV\_FSP.1.2D](#ADV_FSP.1.2D) is implicitly no additional documentation is necessary.]{.note} | already done and no additional documentation is necessary.]{.note} ::: ::: ::: ::: ::: ::: #### Content and presentation elements: #### Content and presentation elements: ::: {.element} ::: {.element} ::: {#ADV_FSP.1.3C .reqid} | ::: {#ADV_FSP.1.1C .reqid} [ADV\_FSP.1.3C](#ADV_FSP.1.3C){.abbr} | [ADV\_FSP.1.1C](#ADV_FSP.1.1C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The functional specification shall describe the purpose and method of The functional specification shall describe the purpose and method of use for each [SFR](#abbr_SFR)-enforcing and [SFR](#abbr_SFR)-supporting use for each [SFR](#abbr_SFR)-enforcing and [SFR](#abbr_SFR)-supporting [TSFI](#abbr_TSFI). [TSFI](#abbr_TSFI). ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#ADV_FSP.1.4C .reqid} | ::: {#ADV_FSP.1.2C .reqid} [ADV\_FSP.1.4C](#ADV_FSP.1.4C){.abbr} | [ADV\_FSP.1.2C](#ADV_FSP.1.2C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The functional specification shall identify all parameters associated The functional specification shall identify all parameters associated with each [SFR](#abbr_SFR)-enforcing and [SFR](#abbr_SFR)-supporting with each [SFR](#abbr_SFR)-enforcing and [SFR](#abbr_SFR)-supporting [TSFI](#abbr_TSFI). [TSFI](#abbr_TSFI). ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#ADV_FSP.1.5C .reqid} | ::: {#ADV_FSP.1.3C .reqid} [ADV\_FSP.1.5C](#ADV_FSP.1.5C){.abbr} | [ADV\_FSP.1.3C](#ADV_FSP.1.3C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The functional specification shall provide rationale for the implicit The functional specification shall provide rationale for the implicit categorization of interfaces as [SFR](#abbr_SFR)-non-interfering. categorization of interfaces as [SFR](#abbr_SFR)-non-interfering. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#ADV_FSP.1.6C .reqid} | ::: {#ADV_FSP.1.4C .reqid} [ADV\_FSP.1.6C](#ADV_FSP.1.6C){.abbr} | [ADV\_FSP.1.4C](#ADV_FSP.1.4C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The tracing shall demonstrate that the SFRs trace to [TSFIs](#abbr_TSFI) | The tracing shall demonstrate that the [SFRs](#abbr_SFR) trace to in the functional specification. | [TSFIs](#abbr_TSFI) in the functional specification. ::: ::: ::: ::: #### Evaluator action elements: #### Evaluator action elements: ::: {.element} ::: {.element} ::: {#ADV_FSP.1.7E .reqid} | ::: {#ADV_FSP.1.1E .reqid} [ADV\_FSP.1.7E](#ADV_FSP.1.7E){.abbr} | [ADV\_FSP.1.1E](#ADV_FSP.1.1E){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The evaluator shall confirm that the information provided meets all The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence. requirements for content and presentation of evidence. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#ADV_FSP.1.8E .reqid} | ::: {#ADV_FSP.1.2E .reqid} [ADV\_FSP.1.8E](#ADV_FSP.1.8E){.abbr} | [ADV\_FSP.1.2E](#ADV_FSP.1.2E){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The evaluator shall determine that the functional specification is an The evaluator shall determine that the functional specification is an accurate and complete instantiation of the SFRs. | accurate and complete instantiation of the [SFRs](#abbr_SFR). ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [ADV\_FSP.1](#ADV_FSP.1):\ | ::: {.component-activity-header} > [ADV\_FSP.1](#ADV_FSP.1) > ::: ::: {.activity} | There are no specific evaluation activities associated with these There are no specific evaluation activities associated with these SARs, | [SARs](#abbr_SAR), except ensuring the information is provided. The except ensuring the information is provided. The functional | functional specification documentation is provided to support the specification documentation is provided to support the evaluation | evaluation activities described in [Section 5.1 Security Functional activities described in [Section 5.1 Security Functional < Requirements](#sfr){.dynref}, and other activities described for AGD, Requirements](#sfr){.dynref}, and other activities described for AGD, ATE, and AVA SARs. The requirements on the content of the functional | ATE, and AVA [SARs](#abbr_SAR). The requirements on the content of the specification information is implicitly assessed by virtue of the other | functional specification information is implicitly assessed by virtue of evaluation activities being performed; if the evaluator is unable to | the other evaluation activities being performed; if the evaluator is perform an activity because there is insufficient interface information, | unable to perform an activity because there is insufficient interface then an adequate functional specification has not been provided. | information, then an adequate functional specification has not been ::: | provided. ::: ::: ::: ::: ::: ::: #### 5.2.3 Class AGD: Guidance Documentation {#agd .indexable data-level="3"} | ### 5.2.3 Class AGD: Guidance Documentation {#agd .indexable data-level="3"} The guidance documents will be provided with the [ST](#abbr_ST). The guidance documents will be provided with the [ST](#abbr_ST). Guidance must include a description of how the IT personnel verifies Guidance must include a description of how the IT personnel verifies that the Operational Environment can fulfill its role for the security that the Operational Environment can fulfill its role for the security functionality. The documentation should be in an informal style and functionality. The documentation should be in an informal style and readable by the IT personnel.\ readable by the IT personnel.\ \ \ Guidance must be provided for every operational environment that the Guidance must be provided for every operational environment that the product supports as claimed in the [ST](#abbr_ST). This guidance product supports as claimed in the [ST](#abbr_ST). This guidance includes: includes: - instructions to successfully install the [TSF](#abbr_TSF) in that - instructions to successfully install the [TSF](#abbr_TSF) in that environment environment - instructions to manage the security of the [TSF](#abbr_TSF) as a - instructions to manage the security of the [TSF](#abbr_TSF) as a product and as a component of the larger operational environment product and as a component of the larger operational environment - instructions to provide a protected administrative capability - instructions to provide a protected administrative capability \ \ Guidance pertaining to particular security functionality is also Guidance pertaining to particular security functionality is also provided; requirements on such guidance are contained in the evaluation provided; requirements on such guidance are contained in the evaluation activities specified with each requirement. activities specified with each requirement. ::: {#AGD_OPE.1 .comp} ::: {#AGD_OPE.1 .comp} #### AGD\_OPE.1 Operational User Guidance #### AGD\_OPE.1 Operational User Guidance #### Developer action elements: #### Developer action elements: ::: {.element} ::: {.element} ::: {#AGD_OPE.1.1D .reqid} ::: {#AGD_OPE.1.1D .reqid} [AGD\_OPE.1.1D](#AGD_OPE.1.1D){.abbr} [AGD\_OPE.1.1D](#AGD_OPE.1.1D){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The developer shall provide operational user guidance. The developer shall provide operational user guidance. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The operational user guidance does [Application Note: ]{.note-header}[The operational user guidance does not have to be contained in a single document. Guidance to users, not have to be contained in a single document. Guidance to users, administrators and application developers can be spread among documents administrators and application developers can be spread among documents or web pages. Where appropriate, the guidance documentation is expressed or web pages. Where appropriate, the guidance documentation is expressed in the eXtensible Configuration Checklist Description Format in the eXtensible Configuration Checklist Description Format ([XCCDF](#abbr_XCCDF)) to support security automation.\ ([XCCDF](#abbr_XCCDF)) to support security automation.\ \ \ Rather than repeat information here, the developer should review the Rather than repeat information here, the developer should review the evaluation activities for this component to ascertain the specifics of evaluation activities for this component to ascertain the specifics of the guidance that the evaluator will be checking for. This will provide the guidance that the evaluator will be checking for. This will provide the necessary information for the preparation of acceptable the necessary information for the preparation of acceptable guidance.]{.note} guidance.]{.note} ::: ::: ::: ::: ::: ::: #### Content and presentation elements: #### Content and presentation elements: ::: {.element} ::: {.element} ::: {#AGD_OPE.1.2C .reqid} | ::: {#AGD_OPE.1.1C .reqid} [AGD\_OPE.1.2C](#AGD_OPE.1.2C){.abbr} | [AGD\_OPE.1.1C](#AGD_OPE.1.1C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The operational user guidance shall describe, for each user role, the The operational user guidance shall describe, for each user role, the user-accessible functions and privileges that should be controlled in a user-accessible functions and privileges that should be controlled in a secure processing environment, including appropriate warnings. secure processing environment, including appropriate warnings. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[User and administrator (e.g., [Application Note: ]{.note-header}[User and administrator (e.g., [MDM](#abbr_MDM) agent), and application developer are to be considered [MDM](#abbr_MDM) agent), and application developer are to be considered in the definition of user role.]{.note} in the definition of user role.]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#AGD_OPE.1.3C .reqid} | ::: {#AGD_OPE.1.2C .reqid} [AGD\_OPE.1.3C](#AGD_OPE.1.3C){.abbr} | [AGD\_OPE.1.2C](#AGD_OPE.1.2C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The operational user guidance shall describe, for each user role, how to The operational user guidance shall describe, for each user role, how to use the available interfaces provided by the [TOE](#abbr_TOE) in a use the available interfaces provided by the [TOE](#abbr_TOE) in a secure manner. secure manner. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#AGD_OPE.1.4C .reqid} | ::: {#AGD_OPE.1.3C .reqid} [AGD\_OPE.1.4C](#AGD_OPE.1.4C){.abbr} | [AGD\_OPE.1.3C](#AGD_OPE.1.3C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The operational user guidance shall describe, for each user role, the The operational user guidance shall describe, for each user role, the available functions and interfaces, in particular all security available functions and interfaces, in particular all security parameters under the control of the user, indicating secure values as parameters under the control of the user, indicating secure values as appropriate. appropriate. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#AGD_OPE.1.5C .reqid} | ::: {#AGD_OPE.1.4C .reqid} [AGD\_OPE.1.5C](#AGD_OPE.1.5C){.abbr} | [AGD\_OPE.1.4C](#AGD_OPE.1.4C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The operational user guidance shall, for each user role, clearly present The operational user guidance shall, for each user role, clearly present each type of security-relevant event relative to the user-accessible each type of security-relevant event relative to the user-accessible functions that need to be performed, including changing the security functions that need to be performed, including changing the security characteristics of entities under the control of the [TSF](#abbr_TSF). characteristics of entities under the control of the [TSF](#abbr_TSF). ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#AGD_OPE.1.6C .reqid} | ::: {#AGD_OPE.1.5C .reqid} [AGD\_OPE.1.6C](#AGD_OPE.1.6C){.abbr} | [AGD\_OPE.1.5C](#AGD_OPE.1.5C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The operational user guidance shall identify all possible modes of The operational user guidance shall identify all possible modes of operation of the [OS](#abbr_OS) (including operation following failure operation of the [OS](#abbr_OS) (including operation following failure or operational error), their consequences, and implications for or operational error), their consequences, and implications for maintaining secure operation. maintaining secure operation. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#AGD_OPE.1.7C .reqid} | ::: {#AGD_OPE.1.6C .reqid} [AGD\_OPE.1.7C](#AGD_OPE.1.7C){.abbr} | [AGD\_OPE.1.6C](#AGD_OPE.1.6C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The operational user guidance shall, for each user role, describe the The operational user guidance shall, for each user role, describe the security measures to be followed in order to fulfill the security security measures to be followed in order to fulfill the security objectives for the operational environment as described in the objectives for the operational environment as described in the [ST](#abbr_ST). [ST](#abbr_ST). ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#AGD_OPE.1.8C .reqid} | ::: {#AGD_OPE.1.7C .reqid} [AGD\_OPE.1.8C](#AGD_OPE.1.8C){.abbr} | [AGD\_OPE.1.7C](#AGD_OPE.1.7C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The operational user guidance shall be clear and reasonable. The operational user guidance shall be clear and reasonable. ::: ::: ::: ::: #### Evaluator action elements: #### Evaluator action elements: ::: {.element} ::: {.element} ::: {#AGD_OPE.1.9E .reqid} | ::: {#AGD_OPE.1.1E .reqid} [AGD\_OPE.1.9E](#AGD_OPE.1.9E){.abbr} | [AGD\_OPE.1.1E](#AGD_OPE.1.1E){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The evaluator shall confirm that the information provided meets all The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence. requirements for content and presentation of evidence. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [AGD\_OPE.1](#AGD_OPE.1):\ | ::: {.component-activity-header} > [AGD\_OPE.1](#AGD_OPE.1) > ::: ::: {.activity} < Some of the contents of the operational guidance are verified by the Some of the contents of the operational guidance are verified by the evaluation activities in [Section 5.1 Security Functional evaluation activities in [Section 5.1 Security Functional Requirements](#sfr){.dynref} and evaluation of the [TOE](#abbr_TOE) Requirements](#sfr){.dynref} and evaluation of the [TOE](#abbr_TOE) according to the [\[CEM\]](#CEM). The following additional information according to the [\[CEM\]](#CEM). The following additional information is also required.\ is also required.\ \ \ The operational guidance shall contain a list of natively installed The operational guidance shall contain a list of natively installed applications and any relevant version numbers. If any third party applications and any relevant version numbers. If any third party vendors are permitted to install applications before purchase by the end vendors are permitted to install applications before purchase by the end user or enterprise, these applications shall also be listed.\ user or enterprise, these applications shall also be listed.\ \ \ The operational guidance shall contain instructions for configuring the The operational guidance shall contain instructions for configuring the cryptographic engine associated with the evaluated configuration of the cryptographic engine associated with the evaluated configuration of the [TOE](#abbr_TOE). It shall provide a warning to the administrator that [TOE](#abbr_TOE). It shall provide a warning to the administrator that use of other cryptographic engines was not evaluated nor tested during use of other cryptographic engines was not evaluated nor tested during the [CC](#abbr_CC) evaluation of the [TOE](#abbr_TOE).\ the [CC](#abbr_CC) evaluation of the [TOE](#abbr_TOE).\ \ \ The documentation must describe the process for verifying updates to the The documentation must describe the process for verifying updates to the [TOE](#abbr_TOE) by verifying a digital signature. The evaluator shall [TOE](#abbr_TOE) by verifying a digital signature. The evaluator shall verify that this process includes the following steps: verify that this process includes the following steps: - Instructions for obtaining the update itself. This should include - Instructions for obtaining the update itself. This should include instructions for making the update accessible to the instructions for making the update accessible to the [TOE](#abbr_TOE) (e.g., placement in a specific directory). [TOE](#abbr_TOE) (e.g., placement in a specific directory). - Instructions for initiating the update process, as well as - Instructions for initiating the update process, as well as discerning whether the process was successful or unsuccessful. This discerning whether the process was successful or unsuccessful. This includes generation of the hash/digital signature. includes generation of the hash/digital signature. The [TOE](#abbr_TOE) will likely contain security functionality that The [TOE](#abbr_TOE) will likely contain security functionality that does not fall in the scope of evaluation under this [PP](#abbr_PP). The does not fall in the scope of evaluation under this [PP](#abbr_PP). The operational guidance shall make it clear to an administrator which operational guidance shall make it clear to an administrator which security functionality is covered by the evaluation activities. security functionality is covered by the evaluation activities. ::: ::: ::: ::: ::: ::: ::: < ::: {#AGD_PRE.1 .comp} ::: {#AGD_PRE.1 .comp} #### AGD\_PRE.1 Preparative Procedures #### AGD\_PRE.1 Preparative Procedures #### Developer action elements: #### Developer action elements: ::: {.element} ::: {.element} ::: {#AGD_PRE.1.1D .reqid} ::: {#AGD_PRE.1.1D .reqid} [AGD\_PRE.1.1D](#AGD_PRE.1.1D){.abbr} [AGD\_PRE.1.1D](#AGD_PRE.1.1D){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The developer shall provide the [TOE](#abbr_TOE), including its The developer shall provide the [TOE](#abbr_TOE), including its preparative procedures. preparative procedures. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[As with the operational guidance, the [Application Note: ]{.note-header}[As with the operational guidance, the developer should look to the evaluation activities to determine the developer should look to the evaluation activities to determine the required content with respect to preparative procedures.]{.note} required content with respect to preparative procedures.]{.note} ::: ::: ::: ::: ::: ::: #### Content and presentation elements: #### Content and presentation elements: ::: {.element} ::: {.element} ::: {#AGD_PRE.1.2C .reqid} | ::: {#AGD_PRE.1.1C .reqid} [AGD\_PRE.1.2C](#AGD_PRE.1.2C){.abbr} | [AGD\_PRE.1.1C](#AGD_PRE.1.1C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The preparative procedures shall describe all the steps necessary for The preparative procedures shall describe all the steps necessary for secure acceptance of the delivered [TOE](#abbr_TOE) in accordance with secure acceptance of the delivered [TOE](#abbr_TOE) in accordance with the developer\'s delivery procedures. the developer\'s delivery procedures. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#AGD_PRE.1.3C .reqid} | ::: {#AGD_PRE.1.2C .reqid} [AGD\_PRE.1.3C](#AGD_PRE.1.3C){.abbr} | [AGD\_PRE.1.2C](#AGD_PRE.1.2C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The preparative procedures shall describe all the steps necessary for The preparative procedures shall describe all the steps necessary for secure installation of the [TOE](#abbr_TOE) and for the secure secure installation of the [TOE](#abbr_TOE) and for the secure preparation of the operational environment in accordance with the preparation of the operational environment in accordance with the security objectives for the operational environment as described in the security objectives for the operational environment as described in the [ST](#abbr_ST). [ST](#abbr_ST). ::: ::: ::: ::: #### Evaluator action elements: #### Evaluator action elements: ::: {.element} ::: {.element} ::: {#AGD_PRE.1.4E .reqid} | ::: {#AGD_PRE.1.1E .reqid} [AGD\_PRE.1.4E](#AGD_PRE.1.4E){.abbr} | [AGD\_PRE.1.1E](#AGD_PRE.1.1E){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The evaluator shall confirm that the information provided meets all The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence. requirements for content and presentation of evidence. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#AGD_PRE.1.5E .reqid} | ::: {#AGD_PRE.1.2E .reqid} [AGD\_PRE.1.5E](#AGD_PRE.1.5E){.abbr} | [AGD\_PRE.1.2E](#AGD_PRE.1.2E){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The evaluator shall apply the preparative procedures to confirm that the The evaluator shall apply the preparative procedures to confirm that the [OS](#abbr_OS) can be prepared securely for operation. [OS](#abbr_OS) can be prepared securely for operation. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [AGD\_PRE.1](#AGD_PRE.1):\ | ::: {.component-activity-header} > [AGD\_PRE.1](#AGD_PRE.1) > ::: ::: {.activity} < As indicated in the introduction above, there are significant As indicated in the introduction above, there are significant expectations with respect to the documentation---especially when expectations with respect to the documentation---especially when configuring the operational environment to support [TOE](#abbr_TOE) configuring the operational environment to support [TOE](#abbr_TOE) functional requirements. The evaluator shall check to ensure that the functional requirements. The evaluator shall check to ensure that the guidance provided for the [TOE](#abbr_TOE) adequately addresses all guidance provided for the [TOE](#abbr_TOE) adequately addresses all platforms claimed for the [TOE](#abbr_TOE) in the [ST](#abbr_ST). platforms claimed for the [TOE](#abbr_TOE) in the [ST](#abbr_ST). ::: ::: ::: ::: ::: ::: ::: < #### 5.2.4 Class ALC: Life-cycle Support {#alc .indexable data-level="3"} | ### 5.2.4 Class ALC: Life-cycle Support {#alc .indexable data-level="3"} At the assurance level provided for TOEs conformant to this | At the assurance level provided for [TOEs](#abbr_TOE) conformant to this [PP](#abbr_PP), life-cycle support is limited to end-user-visible [PP](#abbr_PP), life-cycle support is limited to end-user-visible aspects of the life-cycle, rather than an examination of the aspects of the life-cycle, rather than an examination of the [TOE](#abbr_TOE) vendor's development and configuration management [TOE](#abbr_TOE) vendor's development and configuration management process. This is not meant to diminish the critical role that a process. This is not meant to diminish the critical role that a developer's practices play in contributing to the overall developer's practices play in contributing to the overall trustworthiness of a product; rather, it is a reflection on the trustworthiness of a product; rather, it is a reflection on the information to be made available for evaluation at this assurance level. information to be made available for evaluation at this assurance level. ::: {#ALC_CMC.1 .comp} ::: {#ALC_CMC.1 .comp} #### ALC\_CMC.1 Labeling of the TOE #### ALC\_CMC.1 Labeling of the TOE This component is targeted at identifying the [TOE](#abbr_TOE) such that This component is targeted at identifying the [TOE](#abbr_TOE) such that it can be distinguished from other products or versions from the same it can be distinguished from other products or versions from the same vendor and can be easily specified when being procured by an end user. vendor and can be easily specified when being procured by an end user. #### Developer action elements: #### Developer action elements: ::: {.element} ::: {.element} ::: {#ALC_CMC.1.1D .reqid} ::: {#ALC_CMC.1.1D .reqid} [ALC\_CMC.1.1D](#ALC_CMC.1.1D){.abbr} [ALC\_CMC.1.1D](#ALC_CMC.1.1D){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The developer shall provide the [TOE](#abbr_TOE) and a reference for the The developer shall provide the [TOE](#abbr_TOE) and a reference for the [TOE](#abbr_TOE). [TOE](#abbr_TOE). ::: ::: ::: ::: #### Content and presentation elements: #### Content and presentation elements: ::: {.element} ::: {.element} ::: {#ALC_CMC.1.2C .reqid} | ::: {#ALC_CMC.1.1C .reqid} [ALC\_CMC.1.2C](#ALC_CMC.1.2C){.abbr} | [ALC\_CMC.1.1C](#ALC_CMC.1.1C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TOE](#abbr_TOE) shall be labeled with a unique reference. The [TOE](#abbr_TOE) shall be labeled with a unique reference. ::: ::: ::: ::: #### Evaluator action elements: #### Evaluator action elements: ::: {.element} ::: {.element} ::: {#ALC_CMC.1.3E .reqid} | ::: {#ALC_CMC.1.1E .reqid} [ALC\_CMC.1.3E](#ALC_CMC.1.3E){.abbr} | [ALC\_CMC.1.1E](#ALC_CMC.1.1E){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The evaluator shall confirm that the information provided meets all The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence. requirements for content and presentation of evidence. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [ALC\_CMC.1](#ALC_CMC.1):\ | ::: {.component-activity-header} > [ALC\_CMC.1](#ALC_CMC.1) > ::: ::: {.activity} < The evaluator shall check the [ST](#abbr_ST) to ensure that it contains The evaluator shall check the [ST](#abbr_ST) to ensure that it contains an identifier (such as a product name/version number) that specifically an identifier (such as a product name/version number) that specifically identifies the version that meets the requirements of the identifies the version that meets the requirements of the [ST](#abbr_ST). Further, the evaluator shall check the AGD guidance and [ST](#abbr_ST). Further, the evaluator shall check the AGD guidance and [TOE](#abbr_TOE) samples received for testing to ensure that the version [TOE](#abbr_TOE) samples received for testing to ensure that the version number is consistent with that in the [ST](#abbr_ST). If the vendor number is consistent with that in the [ST](#abbr_ST). If the vendor maintains a web site advertising the [TOE](#abbr_TOE), the evaluator maintains a web site advertising the [TOE](#abbr_TOE), the evaluator shall examine the information on the web site to ensure that the shall examine the information on the web site to ensure that the information in the [ST](#abbr_ST) is sufficient to distinguish the information in the [ST](#abbr_ST) is sufficient to distinguish the product. product. ::: ::: ::: ::: ::: ::: ::: < ::: {#ALC_CMS.1 .comp} ::: {#ALC_CMS.1 .comp} #### ALC\_CMS.1 TOE CM Coverage #### ALC\_CMS.1 TOE CM Coverage Given the scope of the [TOE](#abbr_TOE) and its associated evaluation Given the scope of the [TOE](#abbr_TOE) and its associated evaluation evidence requirements, this component's evaluation activities are evidence requirements, this component's evaluation activities are covered by the evaluation activities listed for covered by the evaluation activities listed for [ALC\_CMC.1](#ALC_CMC.1). [ALC\_CMC.1](#ALC_CMC.1). #### Developer action elements: #### Developer action elements: ::: {.element} ::: {.element} ::: {#ALC_CMS.1.1D .reqid} ::: {#ALC_CMS.1.1D .reqid} [ALC\_CMS.1.1D](#ALC_CMS.1.1D){.abbr} [ALC\_CMS.1.1D](#ALC_CMS.1.1D){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The developer shall provide a configuration list for the The developer shall provide a configuration list for the [TOE](#abbr_TOE). [TOE](#abbr_TOE). ::: ::: ::: ::: #### Content and presentation elements: #### Content and presentation elements: ::: {.element} ::: {.element} ::: {#ALC_CMS.1.2C .reqid} | ::: {#ALC_CMS.1.1C .reqid} [ALC\_CMS.1.2C](#ALC_CMS.1.2C){.abbr} | [ALC\_CMS.1.1C](#ALC_CMS.1.1C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The configuration list shall include the following: the [TOE](#abbr_TOE) The configuration list shall include the following: the [TOE](#abbr_TOE) itself; and the evaluation evidence required by the SARs. | itself; and the evaluation evidence required by the [SARs](#abbr_SAR). ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#ALC_CMS.1.3C .reqid} | ::: {#ALC_CMS.1.2C .reqid} [ALC\_CMS.1.3C](#ALC_CMS.1.3C){.abbr} | [ALC\_CMS.1.2C](#ALC_CMS.1.2C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The configuration list shall uniquely identify the configuration items. The configuration list shall uniquely identify the configuration items. ::: ::: ::: ::: #### Evaluator action elements: #### Evaluator action elements: ::: {.element} ::: {.element} ::: {#ALC_CMS.1.4E .reqid} | ::: {#ALC_CMS.1.1E .reqid} [ALC\_CMS.1.4E](#ALC_CMS.1.4E){.abbr} | [ALC\_CMS.1.1E](#ALC_CMS.1.1E){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The evaluator shall confirm that the information provided meets all The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence. requirements for content and presentation of evidence. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The \"evaluation evidence required [Application Note: ]{.note-header}[ The \"evaluation evidence required by the SARs\" in this [PP](#abbr_PP) is limited to the information in | by the [SARs](#abbr_SAR)\" in this [PP](#abbr_PP) is limited to the the [ST](#abbr_ST) coupled with the guidance provided to administrators | information in the [ST](#abbr_ST) coupled with the guidance provided to and users under the AGD requirements. By ensuring that the | administrators and users under the AGD requirements. By ensuring that [TOE](#abbr_TOE) is specifically identified and that this identification | the [TOE](#abbr_TOE) is specifically identified and that this is consistent in the [ST](#abbr_ST) and in the AGD guidance (as done in | identification is consistent in the [ST](#abbr_ST) and in the AGD the evaluation activity for [ALC\_CMC.1](#ALC_CMC.1)), the evaluator | guidance (as done in the evaluation activity for implicitly confirms the information required by this component.\ | [ALC\_CMC.1](#ALC_CMC.1)), the evaluator implicitly confirms the > information required by this component.\ \ \ Life-cycle support is targeted aspects of the developer's life-cycle and Life-cycle support is targeted aspects of the developer's life-cycle and instructions to providers of applications for the developer's devices, instructions to providers of applications for the developer's devices, rather than an in-depth examination of the [TSF](#abbr_TSF) rather than an in-depth examination of the [TSF](#abbr_TSF) manufacturer's development and configuration management process. This is manufacturer's development and configuration management process. This is not meant to diminish the critical role that a developer's practices not meant to diminish the critical role that a developer's practices play in contributing to the overall trustworthiness of a product; play in contributing to the overall trustworthiness of a product; rather, it's a reflection on the information to be made available for rather, it's a reflection on the information to be made available for evaluation.]{.note} evaluation.]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [ALC\_CMS.1](#ALC_CMS.1):\ | ::: {.component-activity-header} > [ALC\_CMS.1](#ALC_CMS.1) > ::: ::: {.activity} < The evaluator shall ensure that the developer has identified (in The evaluator shall ensure that the developer has identified (in public-facing development guidance for their platform) one or more public-facing development guidance for their platform) one or more development environments appropriate for use in developing applications development environments appropriate for use in developing applications for the developer's platform. For each of these development for the developer's platform. For each of these development environments, the developer shall provide information on how to environments, the developer shall provide information on how to configure the environment to ensure that buffer overflow protection configure the environment to ensure that buffer overflow protection mechanisms in the environment(s) are invoked (e.g., compiler and linker mechanisms in the environment(s) are invoked (e.g., compiler and linker flags). The evaluator shall ensure that this documentation also includes flags). The evaluator shall ensure that this documentation also includes an indication of whether such protections are on by default, or have to an indication of whether such protections are on by default, or have to be specifically enabled.\ be specifically enabled.\ \ \ The evaluator shall ensure that the [TSF](#abbr_TSF) is uniquely The evaluator shall ensure that the [TSF](#abbr_TSF) is uniquely identified (with respect to other products from the [TSF](#abbr_TSF) identified (with respect to other products from the [TSF](#abbr_TSF) vendor), and that documentation provided by the developer in association vendor), and that documentation provided by the developer in association with the requirements in the [ST](#abbr_ST) is associated with the with the requirements in the [ST](#abbr_ST) is associated with the [TSF](#abbr_TSF) using this unique identification. [TSF](#abbr_TSF) using this unique identification. ::: ::: ::: ::: ::: ::: ::: < ::: {#ALC_TSU_EXT.1 .comp} ::: {#ALC_TSU_EXT.1 .comp} #### ALC\_TSU\_EXT.1 Timely Security Updates #### ALC\_TSU\_EXT.1 Timely Security Updates This component requires the [TOE](#abbr_TOE) developer, in conjunction This component requires the [TOE](#abbr_TOE) developer, in conjunction with any other necessary parties, to provide information as to how the with any other necessary parties, to provide information as to how the end-user devices are updated to address security issues in a timely end-user devices are updated to address security issues in a timely manner. The documentation describes the process of providing updates to manner. The documentation describes the process of providing updates to the public from the time a security flaw is reported/discovered, to the the public from the time a security flaw is reported/discovered, to the time an update is released. This description includes the parties time an update is released. This description includes the parties involved (e.g., the developer, carriers(s)) and the steps that are involved (e.g., the developer, carriers(s)) and the steps that are performed (e.g., developer testing, carrier testing), including performed (e.g., developer testing, carrier testing), including worst-case time periods, before an update is made available to the worst-case time periods, before an update is made available to the public. public. #### Developer action elements: #### Developer action elements: ::: {.element} ::: {.element} ::: {#ALC_TSU_EXT.1.1D .reqid} ::: {#ALC_TSU_EXT.1.1D .reqid} [ALC\_TSU\_EXT.1.1D](#ALC_TSU_EXT.1.1D){.abbr} [ALC\_TSU\_EXT.1.1D](#ALC_TSU_EXT.1.1D){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The developer shall provide a description in the [TSS](#abbr_TSS) of how The developer shall provide a description in the [TSS](#abbr_TSS) of how timely security updates are made to the [TOE](#abbr_TOE). timely security updates are made to the [TOE](#abbr_TOE). ::: ::: ::: ::: #### Content and presentation elements: #### Content and presentation elements: ::: {.element} ::: {.element} ::: {#ALC_TSU_EXT.1.2C .reqid} | ::: {#ALC_TSU_EXT.1.1C .reqid} [ALC\_TSU\_EXT.1.2C](#ALC_TSU_EXT.1.2C){.abbr} | [ALC\_TSU\_EXT.1.1C](#ALC_TSU_EXT.1.1C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The description shall include the process for creating and deploying The description shall include the process for creating and deploying security updates for the [TOE](#abbr_TOE) software. security updates for the [TOE](#abbr_TOE) software. ::: {.appnote} ::: {.appnote} [ Note: ]{.note-header}[The software to be described includes the [ Note: ]{.note-header}[The software to be described includes the operating systems of the application processor and the baseband operating systems of the application processor and the baseband processor, as well as any firmware and applications. The process processor, as well as any firmware and applications. The process description includes the [TOE](#abbr_TOE) developer processes as well as description includes the [TOE](#abbr_TOE) developer processes as well as any third-party (carrier) processes. The process description includes any third-party (carrier) processes. The process description includes each deployment mechanism (e.g., over-the-air updates, per-carrier each deployment mechanism (e.g., over-the-air updates, per-carrier updates, downloaded updates).]{.note} updates, downloaded updates).]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#ALC_TSU_EXT.1.3C .reqid} | ::: {#ALC_TSU_EXT.1.2C .reqid} [ALC\_TSU\_EXT.1.3C](#ALC_TSU_EXT.1.3C){.abbr} | [ALC\_TSU\_EXT.1.2C](#ALC_TSU_EXT.1.2C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The description shall express the time window as the length of time, in The description shall express the time window as the length of time, in days, between public disclosure of a vulnerability and the public days, between public disclosure of a vulnerability and the public availability of security updates to the [TOE](#abbr_TOE). availability of security updates to the [TOE](#abbr_TOE). ::: {.appnote} ::: {.appnote} [ Note: ]{.note-header}[ The total length of time may be presented as a [ Note: ]{.note-header}[ The total length of time may be presented as a summation of the periods of time that each party (e.g., [TOE](#abbr_TOE) summation of the periods of time that each party (e.g., [TOE](#abbr_TOE) developer, mobile carrier) on the critical path consumes. The time developer, mobile carrier) on the critical path consumes. The time period until public availability per deployment mechanism may differ; period until public availability per deployment mechanism may differ; each is described.]{.note} each is described.]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#ALC_TSU_EXT.1.4C .reqid} | ::: {#ALC_TSU_EXT.1.3C .reqid} [ALC\_TSU\_EXT.1.4C](#ALC_TSU_EXT.1.4C){.abbr} | [ALC\_TSU\_EXT.1.3C](#ALC_TSU_EXT.1.3C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The description shall include the mechanisms publicly available for The description shall include the mechanisms publicly available for reporting security issues pertaining to the [TOE](#abbr_TOE). reporting security issues pertaining to the [TOE](#abbr_TOE). ::: {.appnote} ::: {.appnote} [ Note: ]{.note-header}[The reporting mechanism could include web sites, [ Note: ]{.note-header}[The reporting mechanism could include web sites, email addresses, as well as a means to protect the sensitive nature of email addresses, as well as a means to protect the sensitive nature of the report (e.g., public keys that could be used to encrypt the details the report (e.g., public keys that could be used to encrypt the details of a proof-of-concept exploit).]{.note} of a proof-of-concept exploit).]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#ALC_TSU_EXT.1.5C .reqid} | ::: {#ALC_TSU_EXT.1.4C .reqid} [ALC\_TSU\_EXT.1.5C](#ALC_TSU_EXT.1.5C){.abbr} | [ALC\_TSU\_EXT.1.4C](#ALC_TSU_EXT.1.4C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The description shall include where users can seek information about the The description shall include where users can seek information about the availability of new updates including details (e.g. CVE identifiers) of availability of new updates including details (e.g. CVE identifiers) of the specific public vulnerabilities corrected by each update. the specific public vulnerabilities corrected by each update. ::: {.appnote} ::: {.appnote} [ Note: ]{.note-header}[The purpose of providing this information is so [ Note: ]{.note-header}[The purpose of providing this information is so that users and enterprises can determine which devices are susceptible that users and enterprises can determine which devices are susceptible to publicly known vulnerabilities so that they can make appropriate risk to publicly known vulnerabilities so that they can make appropriate risk decisions, such as limiting access to enterprise resources until updates decisions, such as limiting access to enterprise resources until updates are installed. ]{.note} are installed. ]{.note} ::: ::: ::: ::: ::: ::: #### Evaluator action elements: #### Evaluator action elements: ::: {.element} ::: {.element} ::: {#ALC_TSU_EXT.1.6E .reqid} | ::: {#ALC_TSU_EXT.1.1E .reqid} [ALC\_TSU\_EXT.1.6E](#ALC_TSU_EXT.1.6E){.abbr} | [ALC\_TSU\_EXT.1.1E](#ALC_TSU_EXT.1.1E){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The evaluator shall confirm that the information provided meets all The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence. requirements for content and presentation of evidence. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [ALC\_TSU\_EXT.1](#ALC_TSU_EXT.1):\ | ::: {.component-activity-header} > [ALC\_TSU\_EXT.1](#ALC_TSU_EXT.1) > ::: ::: {.activity} < The evaluator shall verify that the [TSS](#abbr_TSS) contains a The evaluator shall verify that the [TSS](#abbr_TSS) contains a description of the timely security update process used by the developer description of the timely security update process used by the developer to create and deploy security updates. The evaluator shall verify that to create and deploy security updates. The evaluator shall verify that this description addresses the [TOE](#abbr_TOE) [OS](#abbr_OS), the this description addresses the [TOE](#abbr_TOE) [OS](#abbr_OS), the firmware, and bundled applications, each. The evaluator shall also firmware, and bundled applications, each. The evaluator shall also verify that, in addition to the [TOE](#abbr_TOE) developer's process, verify that, in addition to the [TOE](#abbr_TOE) developer's process, any carrier or other third-party processes are also addressed in the any carrier or other third-party processes are also addressed in the description. The evaluator shall also verify that each mechanism for description. The evaluator shall also verify that each mechanism for deployment of security updates is described.\ deployment of security updates is described.\ \ \ The evaluator shall verify that, for each deployment mechanism described The evaluator shall verify that, for each deployment mechanism described for the update process, the [TSS](#abbr_TSS) lists a time between public for the update process, the [TSS](#abbr_TSS) lists a time between public disclosure of a vulnerability and public availability of the security disclosure of a vulnerability and public availability of the security update to the [TOE](#abbr_TOE) patching this vulnerability, to include update to the [TOE](#abbr_TOE) patching this vulnerability, to include any third-party or carrier delays in deployment. The evaluator shall any third-party or carrier delays in deployment. The evaluator shall verify that this time is expressed in a number or range of days.\ verify that this time is expressed in a number or range of days.\ \ \ The evaluator shall verify that this description includes the publicly The evaluator shall verify that this description includes the publicly available mechanisms (including either an email address or website) for available mechanisms (including either an email address or website) for reporting security issues related to the [TOE](#abbr_TOE). The evaluator reporting security issues related to the [TOE](#abbr_TOE). The evaluator shall verify that the description of this mechanism includes a method shall verify that the description of this mechanism includes a method for protecting the report either using a public key for encrypting email for protecting the report either using a public key for encrypting email or a trusted channel for a website.\ or a trusted channel for a website.\ \ \ The evaluator shall verify that the description includes where users can The evaluator shall verify that the description includes where users can seek information about the availability of new security updates seek information about the availability of new security updates including details of the specific public vulnerabilities corrected by including details of the specific public vulnerabilities corrected by each update. The evaluator shall verify that the description includes each update. The evaluator shall verify that the description includes the minimum amount of time that the [TOE](#abbr_TOE) is expected to be the minimum amount of time that the [TOE](#abbr_TOE) is expected to be supported with security updates, and the process by which users can seek supported with security updates, and the process by which users can seek information about when the [TOE](#abbr_TOE) is no longer expected to information about when the [TOE](#abbr_TOE) is no longer expected to receive security updates. receive security updates. ::: ::: ::: ::: ::: ::: ::: < #### 5.2.5 Class ATE: Tests {#ate .indexable data-level="3"} | ### 5.2.5 Class ATE: Tests {#ate .indexable data-level="3"} Testing is specified for functional aspects of the system as well as Testing is specified for functional aspects of the system as well as aspects that take advantage of design or implementation weaknesses. The aspects that take advantage of design or implementation weaknesses. The former is done through the ATE\_IND family, while the latter is through former is done through the ATE\_IND family, while the latter is through the AVA\_VAN family. At the assurance level specified in this the AVA\_VAN family. At the assurance level specified in this [PP](#abbr_PP), testing is based on advertised functionality and [PP](#abbr_PP), testing is based on advertised functionality and interfaces with dependency on the availability of design information. interfaces with dependency on the availability of design information. One of the primary outputs of the evaluation process is the test report One of the primary outputs of the evaluation process is the test report as specified in the following requirements.\ as specified in the following requirements.\ \ \ Since many of the APIs are not exposed at the user interface (e.g., Since many of the APIs are not exposed at the user interface (e.g., touch screen), the ability to stimulate the necessary interfaces touch screen), the ability to stimulate the necessary interfaces requires a developer's test environment. This test environment will requires a developer's test environment. This test environment will allow the evaluator, for example, to access APIs and view file system allow the evaluator, for example, to access APIs and view file system information that is not available on consumer Mobile Devices. information that is not available on consumer Mobile Devices. ::: {#ATE_IND.1 .comp} ::: {#ATE_IND.1 .comp} #### ATE\_IND.1 Independent Testing -- Conformance #### ATE\_IND.1 Independent Testing -- Conformance Testing is performed to confirm the functionality described in the Testing is performed to confirm the functionality described in the [TSS](#abbr_TSS) as well as the administrative (including configuration [TSS](#abbr_TSS) as well as the administrative (including configuration and operational) documentation provided. The focus of the testing is to and operational) documentation provided. The focus of the testing is to confirm that the requirements specified in [Section 5.1 Security confirm that the requirements specified in [Section 5.1 Security Functional Requirements](#sfr){.dynref} being met, although some Functional Requirements](#sfr){.dynref} being met, although some additional testing is specified for SARs in [Section 5.2 Security | additional testing is specified for [SARs](#abbr_SAR) in [Section 5.2 Assurance Requirements](#sar){.dynref}. The Evaluation Activities | Security Assurance Requirements](#sar){.dynref}. The Evaluation identify the additional testing activities associated with these | Activities identify the additional testing activities associated with components. The evaluator produces a test report documenting the plan | these components. The evaluator produces a test report documenting the for and results of testing, as well as coverage arguments focused on the | plan for and results of testing, as well as coverage arguments focused platform/[TOE](#abbr_TOE) combinations that are claiming conformance to | on the platform/[TOE](#abbr_TOE) combinations that are claiming this [PP](#abbr_PP). | conformance to this [PP](#abbr_PP). #### Developer action elements: #### Developer action elements: ::: {.element} ::: {.element} ::: {#ATE_IND.1.1D .reqid} ::: {#ATE_IND.1.1D .reqid} [ATE\_IND.1.1D](#ATE_IND.1.1D){.abbr} [ATE\_IND.1.1D](#ATE_IND.1.1D){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The developer shall provide the [TOE](#abbr_TOE) for testing. The developer shall provide the [TOE](#abbr_TOE) for testing. ::: ::: ::: ::: #### Content and presentation elements: #### Content and presentation elements: ::: {.element} ::: {.element} ::: {#ATE_IND.1.2C .reqid} | ::: {#ATE_IND.1.1C .reqid} [ATE\_IND.1.2C](#ATE_IND.1.2C){.abbr} | [ATE\_IND.1.1C](#ATE_IND.1.1C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TOE](#abbr_TOE) shall be suitable for testing. The [TOE](#abbr_TOE) shall be suitable for testing. ::: ::: ::: ::: #### Evaluator action elements: #### Evaluator action elements: ::: {.element} ::: {.element} ::: {#ATE_IND.1.3E .reqid} | ::: {#ATE_IND.1.1E .reqid} [ATE\_IND.1.3E](#ATE_IND.1.3E){.abbr} | [ATE\_IND.1.1E](#ATE_IND.1.1E){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The evaluator shall confirm that the information provided meets all The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence. requirements for content and presentation of evidence. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#ATE_IND.1.4E .reqid} | ::: {#ATE_IND.1.2E .reqid} [ATE\_IND.1.4E](#ATE_IND.1.4E){.abbr} | [ATE\_IND.1.2E](#ATE_IND.1.2E){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The evaluator shall test a subset of the [TSF](#abbr_TSF) to confirm The evaluator shall test a subset of the [TSF](#abbr_TSF) to confirm that the [TSF](#abbr_TSF) operates as specified. that the [TSF](#abbr_TSF) operates as specified. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [ATE\_IND.1](#ATE_IND.1):\ | ::: {.component-activity-header} > [ATE\_IND.1](#ATE_IND.1) > ::: ::: {.activity} < The evaluator shall prepare a test plan and report documenting the The evaluator shall prepare a test plan and report documenting the testing aspects of the system. The test plan covers all of the testing testing aspects of the system. The test plan covers all of the testing actions contained in the [\[CEM\]](#CEM) and the body of this actions contained in the [\[CEM\]](#CEM) and the body of this [PP](#abbr_PP)'s Evaluation Activities. While it is not necessary to [PP](#abbr_PP)'s Evaluation Activities. While it is not necessary to have one test case per test listed in an evaluation activity, the have one test case per test listed in an evaluation activity, the evaluator must document in the test plan that each applicable testing evaluator must document in the test plan that each applicable testing requirement in the [ST](#abbr_ST) is covered.\ requirement in the [ST](#abbr_ST) is covered.\ \ \ The test plan identifies the platforms to be tested, and for those The test plan identifies the platforms to be tested, and for those platforms not included in the test plan but included in the platforms not included in the test plan but included in the [ST](#abbr_ST), the test plan provides a justification for not testing [ST](#abbr_ST), the test plan provides a justification for not testing the platforms. This justification must address the differences between the platforms. This justification must address the differences between the tested platforms and the untested platforms, and make an argument the tested platforms and the untested platforms, and make an argument that the differences do not affect the testing to be performed. It is that the differences do not affect the testing to be performed. It is not sufficient to merely assert that the differences have no affect; not sufficient to merely assert that the differences have no affect; rationale must be provided. If all platforms claimed in the rationale must be provided. If all platforms claimed in the [ST](#abbr_ST) are tested, then no rationale is necessary.\ [ST](#abbr_ST) are tested, then no rationale is necessary.\ \ \ The test plan describes the composition of each platform to be tested, The test plan describes the composition of each platform to be tested, and any setup that is necessary beyond what is contained in the AGD and any setup that is necessary beyond what is contained in the AGD documentation. It should be noted that the evaluator is expected to documentation. It should be noted that the evaluator is expected to follow the AGD documentation for installation and setup of each platform follow the AGD documentation for installation and setup of each platform either as part of a test or as a standard pre-test condition. This may either as part of a test or as a standard pre-test condition. This may include special test drivers or tools. For each driver or tool, an include special test drivers or tools. For each driver or tool, an argument (not just an assertion) should be provided that the driver or argument (not just an assertion) should be provided that the driver or tool will not adversely affect the performance of the functionality by tool will not adversely affect the performance of the functionality by the [TOE](#abbr_TOE) and its platform. This also includes the the [TOE](#abbr_TOE) and its platform. This also includes the configuration of the cryptographic engine to be used. The cryptographic configuration of the cryptographic engine to be used. The cryptographic algorithms implemented by this engine are those specified by this algorithms implemented by this engine are those specified by this [PP](#abbr_PP) and used by the cryptographic protocols being evaluated [PP](#abbr_PP) and used by the cryptographic protocols being evaluated ([IPsec](#abbr_IPsec), [TLS](#abbr_TLS)/[HTTPS](#abbr_HTTPS), ([IPsec](#abbr_IPsec), [TLS](#abbr_TLS)/[HTTPS](#abbr_HTTPS), [SSH](#abbr_SSH)).\ [SSH](#abbr_SSH)).\ \ \ The test plan identifies high-level test objectives as well as the test The test plan identifies high-level test objectives as well as the test procedures to be followed to achieve those objectives. These procedures procedures to be followed to achieve those objectives. These procedures include expected results. The test report (which could just be an include expected results. The test report (which could just be an annotated version of the test plan) details the activities that took annotated version of the test plan) details the activities that took place when the test procedures were executed, and includes the actual place when the test procedures were executed, and includes the actual results of the tests. This shall be a cumulative account, so if there results of the tests. This shall be a cumulative account, so if there was a test run that resulted in a failure; a fix installed; and then a was a test run that resulted in a failure; a fix installed; and then a successful re-run of the test, the report would show a \"fail\" and successful re-run of the test, the report would show a \"fail\" and \"pass\" result (and the supporting details), and not just the \"pass\" \"pass\" result (and the supporting details), and not just the \"pass\" result. result. ::: ::: ::: ::: ::: ::: ::: < #### 5.2.6 Class AVA: Vulnerability Assessment {#ava .indexable data-level="3"} | ### 5.2.6 Class AVA: Vulnerability Assessment {#ava .indexable data-level="3"} For the current generation of this protection profile, the evaluation For the current generation of this protection profile, the evaluation lab is expected to survey open sources to discover what vulnerabilities lab is expected to survey open sources to discover what vulnerabilities have been discovered in these types of products. In most cases, these have been discovered in these types of products. In most cases, these vulnerabilities will require sophistication beyond that of a basic vulnerabilities will require sophistication beyond that of a basic attacker. Until penetration tools are created and uniformly distributed attacker. Until penetration tools are created and uniformly distributed to the evaluation labs, the evaluator will not be expected to test for to the evaluation labs, the evaluator will not be expected to test for these vulnerabilities in the [TOE](#abbr_TOE). The labs will be expected these vulnerabilities in the [TOE](#abbr_TOE). The labs will be expected to comment on the likelihood of these vulnerabilities given the to comment on the likelihood of these vulnerabilities given the documentation provided by the vendor. This information will be used in documentation provided by the vendor. This information will be used in the development of penetration testing tools and for the development of the development of penetration testing tools and for the development of future protection profiles. future protection profiles. ::: {#AVA_VAN.1 .comp} ::: {#AVA_VAN.1 .comp} #### AVA\_VAN.1 Vulnerability Survey #### AVA\_VAN.1 Vulnerability Survey #### Developer action elements: #### Developer action elements: ::: {.element} ::: {.element} ::: {#AVA_VAN.1.1D .reqid} ::: {#AVA_VAN.1.1D .reqid} [AVA\_VAN.1.1D](#AVA_VAN.1.1D){.abbr} [AVA\_VAN.1.1D](#AVA_VAN.1.1D){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The developer shall provide the [TOE](#abbr_TOE) for testing. The developer shall provide the [TOE](#abbr_TOE) for testing. ::: ::: ::: ::: #### Content and presentation elements: #### Content and presentation elements: ::: {.element} ::: {.element} ::: {#AVA_VAN.1.2C .reqid} | ::: {#AVA_VAN.1.1C .reqid} [AVA\_VAN.1.2C](#AVA_VAN.1.2C){.abbr} | [AVA\_VAN.1.1C](#AVA_VAN.1.1C){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TOE](#abbr_TOE) shall be suitable for testing. The [TOE](#abbr_TOE) shall be suitable for testing. ::: ::: ::: ::: #### Evaluator action elements: #### Evaluator action elements: ::: {.element} ::: {.element} ::: {#AVA_VAN.1.3E .reqid} | ::: {#AVA_VAN.1.1E .reqid} [AVA\_VAN.1.3E](#AVA_VAN.1.3E){.abbr} | [AVA\_VAN.1.1E](#AVA_VAN.1.1E){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The evaluator shall confirm that the information provided meets all The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence. requirements for content and presentation of evidence. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#AVA_VAN.1.4E .reqid} | ::: {#AVA_VAN.1.2E .reqid} [AVA\_VAN.1.4E](#AVA_VAN.1.4E){.abbr} | [AVA\_VAN.1.2E](#AVA_VAN.1.2E){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The evaluator shall perform a search of public domain sources to The evaluator shall perform a search of public domain sources to identify potential vulnerabilities in the [TOE](#abbr_TOE). identify potential vulnerabilities in the [TOE](#abbr_TOE). ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[Public domain sources include the [Application Note: ]{.note-header}[Public domain sources include the Common Vulnerabilities and Exposures (CVE) dictionary for publicly-known Common Vulnerabilities and Exposures (CVE) dictionary for publicly-known vulnerabilities. ]{.note} vulnerabilities. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#AVA_VAN.1.5E .reqid} | ::: {#AVA_VAN.1.3E .reqid} [AVA\_VAN.1.5E](#AVA_VAN.1.5E){.abbr} | [AVA\_VAN.1.3E](#AVA_VAN.1.3E){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The evaluator shall conduct penetration testing, based on the identified The evaluator shall conduct penetration testing, based on the identified potential vulnerabilities, to determine that the [TOE](#abbr_TOE) is potential vulnerabilities, to determine that the [TOE](#abbr_TOE) is resistant to attacks performed by an attacker possessing Basic attack resistant to attacks performed by an attacker possessing Basic attack potential. potential. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [AVA\_VAN.1](#AVA_VAN.1):\ | ::: {.component-activity-header} > [AVA\_VAN.1](#AVA_VAN.1) > ::: ::: {.activity} < The evaluator shall generate a report to document their findings with The evaluator shall generate a report to document their findings with respect to this requirement. This report could physically be part of the respect to this requirement. This report could physically be part of the overall test report mentioned in ATE\_IND, or a separate document. The overall test report mentioned in ATE\_IND, or a separate document. The evaluator performs a search of public information to find evaluator performs a search of public information to find vulnerabilities that have been found in mobile devices and the vulnerabilities that have been found in mobile devices and the implemented communication protocols in general, as well as those that implemented communication protocols in general, as well as those that pertain to the particular [TOE](#abbr_TOE). The evaluator documents the pertain to the particular [TOE](#abbr_TOE). The evaluator documents the sources consulted and the vulnerabilities found in the report.\ sources consulted and the vulnerabilities found in the report.\ \ \ For each vulnerability found, the evaluator either provides a rationale For each vulnerability found, the evaluator either provides a rationale with respect to its non-applicability, or the evaluator formulates a with respect to its non-applicability, or the evaluator formulates a test (using the guidelines provided in ATE\_IND) to confirm the test (using the guidelines provided in ATE\_IND) to confirm the vulnerability, if suitable. Suitability is determined by assessing the vulnerability, if suitable. Suitability is determined by assessing the attack vector needed to take advantage of the vulnerability. If attack vector needed to take advantage of the vulnerability. If exploiting the vulnerability requires expert skills and an electron exploiting the vulnerability requires expert skills and an electron microscope, for instance, then a test would not be suitable and an microscope, for instance, then a test would not be suitable and an appropriate justification would be formulated. appropriate justification would be formulated. ::: ::: ::: ::: ::: ::: ::: < Appendix A - Optional Requirements {#opt-app .indexable data-level="A"} Appendix A - Optional Requirements {#opt-app .indexable data-level="A"} ================================== ================================== As indicated in the introduction to this [PP](#abbr_PP), the baseline As indicated in the introduction to this [PP](#abbr_PP), the baseline requirements (those that must be performed by the [TOE](#abbr_TOE)) are requirements (those that must be performed by the [TOE](#abbr_TOE)) are contained in the body of this [PP](#abbr_PP). This appendix contains contained in the body of this [PP](#abbr_PP). This appendix contains three other types of optional requirements that may be included in the three other types of optional requirements that may be included in the [ST](#abbr_ST), but are not required in order to conform to this [ST](#abbr_ST), but are not required in order to conform to this [PP](#abbr_PP). However, applied modules, packages and/or use cases may [PP](#abbr_PP). However, applied modules, packages and/or use cases may refine specific requirements as mandatory.\ refine specific requirements as mandatory.\ \ \ The first type ( [A.1 Strictly Optional | The first type ([A.1 Strictly Optional Requirements](#optional-reqs){.dynref} ) are strictly optional | Requirements](#optional-reqs){.dynref}) are strictly optional requirements that are independent of the [TOE](#abbr_TOE) implementing requirements that are independent of the [TOE](#abbr_TOE) implementing any function. If the [TOE](#abbr_TOE) fulfills any of these requirements any function. If the [TOE](#abbr_TOE) fulfills any of these requirements or supports a certain functionality, the vendor is encouraged to include or supports a certain functionality, the vendor is encouraged to include the SFRs in the [ST](#abbr_ST), but are not required in order to conform | the [SFRs](#abbr_SFR) in the [ST](#abbr_ST), but are not required in to this [PP](#abbr_PP).\ | order to conform to this [PP](#abbr_PP).\ \ \ The second type ( [A.2 Objective Requirements](#objective-reqs){.dynref} | The second type ([A.2 Objective Requirements](#objective-reqs){.dynref}) ) are objective requirements that describe security functionality not | are objective requirements that describe security functionality not yet yet widely available in commercial technology. The requirements are not | widely available in commercial technology. The requirements are not currently mandated in the body of this [PP](#abbr_PP), but will be currently mandated in the body of this [PP](#abbr_PP), but will be included in the baseline requirements in future versions of this included in the baseline requirements in future versions of this [PP](#abbr_PP). Adoption by vendors is encouraged and expected as soon [PP](#abbr_PP). Adoption by vendors is encouraged and expected as soon as possible.\ as possible.\ \ \ The third type ( [A.3 Implementation-based | The third type ([A.3 Implementation-based Requirements](#feat-based-reqs){.dynref} ) are dependent on the | Requirements](#feat-based-reqs){.dynref}) are dependent on the [TOE](#abbr_TOE) implementing a particular function. If the [TOE](#abbr_TOE) implementing a particular function. If the [TOE](#abbr_TOE) fulfills any of these requirements, the vendor must [TOE](#abbr_TOE) fulfills any of these requirements, the vendor must either add the related [SFR](#abbr_SFR) or disable the functionality for either add the related [SFR](#abbr_SFR) or disable the functionality for the evaluated configuration. the evaluated configuration. A.1 Strictly Optional Requirements {#optional-reqs .indexable data-level="2"} A.1 Strictly Optional Requirements {#optional-reqs .indexable data-level="2"} ---------------------------------- ---------------------------------- ### A.1.1 Class: Identification and Authentication (FIA) {#fia-obj .indexable data-le | ### A.1.1 Class: Identification and Authentication (FIA) {#fia-optional .indexable da ::: {#FIA_UAU_EXT.4 .comp} ::: {#FIA_UAU_EXT.4 .comp} #### FIA\_UAU\_EXT.4 Secondary User Authentication #### FIA\_UAU\_EXT.4 Secondary User Authentication ::: {.element} ::: {.element} ::: {#FIA_UAU_EXT.4.1 .reqid} ::: {#FIA_UAU_EXT.4.1 .reqid} [FIA\_UAU\_EXT.4.1](#FIA_UAU_EXT.4.1){.abbr} [FIA\_UAU\_EXT.4.1](#FIA_UAU_EXT.4.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide a secondary authentication mechanism The [TSF](#abbr_TSF) shall provide a secondary authentication mechanism for accessing Enterprise applications and resources. The secondary for accessing Enterprise applications and resources. The secondary authentication mechanism shall control access to the Enterprise authentication mechanism shall control access to the Enterprise application and shared resources and shall be incorporated into the application and shared resources and shall be incorporated into the encryption of protected and sensitive data belonging to Enterprise encryption of protected and sensitive data belonging to Enterprise applications and shared resources. applications and shared resources. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[For the BYOD use case, Enterprise | [Application Note: ]{.note-header}[For the [BYOD](#abbr_BYOD) use case, applications and data must be protected using a different password than | Enterprise applications and data must be protected using a different the user authentication to gain access to the personal applications and | password than the user authentication to gain access to the personal data, if configured.\ | applications and data, if configured.\ \ \ This requirement must be included in the [ST](#abbr_ST) if the This requirement must be included in the [ST](#abbr_ST) if the [TOE](#abbr_TOE) implements a container solution, in which there is a [TOE](#abbr_TOE) implements a container solution, in which there is a separate authentication, to separate user and Enterprise applications separate authentication, to separate user and Enterprise applications and resources. ]{.note} and resources. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_UAU_EXT.4.2 .reqid} ::: {#FIA_UAU_EXT.4.2 .reqid} [FIA\_UAU\_EXT.4.2](#FIA_UAU_EXT.4.2){.abbr} [FIA\_UAU\_EXT.4.2](#FIA_UAU_EXT.4.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall require the user to present the secondary The [TSF](#abbr_TSF) shall require the user to present the secondary authentication factor prior to decryption of Enterprise application data authentication factor prior to decryption of Enterprise application data and Enterprise shared resource data. and Enterprise shared resource data. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[This requirement must be selected if [Application Note: ]{.note-header}[This requirement must be selected if [FIA\_UAU\_EXT.4.1](#FIA_UAU_EXT.4.1) is selected. The intent of this [FIA\_UAU\_EXT.4.1](#FIA_UAU_EXT.4.1) is selected. The intent of this requirement is to prevent decryption of protected Enterprise application requirement is to prevent decryption of protected Enterprise application data and Enterprise shared resource data before the user has data and Enterprise shared resource data before the user has authenticated to the device using the secondary authentication factor. authenticated to the device using the secondary authentication factor. Enterprise shared resource data consists of the Enterprise shared resource data consists of the [FDP\_ACF\_EXT.2.1](#FDP_ACF_EXT.2.1) selections.]{.note} [FDP\_ACF\_EXT.2.1](#FDP_ACF_EXT.2.1) selections.]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_UAU\_EXT.4](#FIA_UAU_EXT.4):\ | ::: {.component-activity-header} > [FIA\_UAU\_EXT.4](#FIA_UAU_EXT.4) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this element.\ There are no [TSS](#abbr_TSS) evaluation activities for this element.\ \ \ > The evaluator shall verify that the [TSS](#abbr_TSS) section of the > [ST](#abbr_ST) describes the process for decrypting Enterprise > application data and shared resource data. The evaluator shall ensure > that this process requires the user to enter an Authentication Factor > and, in accordance with [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3), derives a > [KEK](#abbr_KEK) which is used to protect the software-based secure key > storage and (optionally) [DEK](#abbr_DEK)(s) for sensitive data, in > accordance with [FCS\_STG\_EXT.2](#FCS_STG_EXT.2).\ \ \ > ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this element.\ There are no guidance evaluation activities for this element.\ \ \ > There are no guidance evaluation activities for this element.\ \ \ > ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The Evaluation Activities for any selected requirements related to The Evaluation Activities for any selected requirements related to device authentication must be separately performed for the secondary device authentication must be separately performed for the secondary authentication mechanism (in addition to activities performed for the authentication mechanism (in addition to activities performed for the primary authentication mechanism). The requirements are: primary authentication mechanism). The requirements are: [FIA\_UAU.6](#FIA_UAU.6), [FIA\_PMG\_EXT.1](#FIA_PMG_EXT.1), [FIA\_UAU.6](#FIA_UAU.6), [FIA\_PMG\_EXT.1](#FIA_PMG_EXT.1), [FIA\_TRT\_EXT.1](#FIA_TRT_EXT.1), [FIA\_UAU.7](#FIA_UAU.7), [FIA\_TRT\_EXT.1](#FIA_TRT_EXT.1), [FIA\_UAU.7](#FIA_UAU.7), [FIA\_UAU\_EXT.2](#FIA_UAU_EXT.2), [FTA\_SSL\_EXT.1](#FTA_SSL_EXT.1), [FIA\_UAU\_EXT.2](#FIA_UAU_EXT.2), [FTA\_SSL\_EXT.1](#FTA_SSL_EXT.1), [FCS\_STG\_EXT.2](#FCS_STG_EXT.2), [FCS\_STG\_EXT.2](#FCS_STG_EXT.2), [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1)/[FMT\_MOF\_EXT.1](#FMT_MOF_EXT.1) \#1, [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1)/[FMT\_MOF\_EXT.1](#FMT_MOF_EXT.1) \#1, \#2, \#8, \#21, and \#36.\ \#2, \#8, \#21, and \#36.\ \ \ Additionally, [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1) must be met, except that Additionally, [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1) must be met, except that in [FIA\_AFL\_EXT.1.2](#FIA_AFL_EXT.1.2) the separate test is performed in [FIA\_AFL\_EXT.1.2](#FIA_AFL_EXT.1.2) the separate test is performed with the text \"wipe of all protected data\" changed to \"wipe of all with the text \"wipe of all protected data\" changed to \"wipe of all Enterprise application data and all Enterprise shared resource data.\"\ | Enterprise application data and all Enterprise shared resource data.\" ::: | There are no test evaluation activities for this element. < ::: {.activity} < ::: {.eacategory} < [TSS](#abbr_TSS) < ::: < < The evaluator shall verify that the [TSS](#abbr_TSS) section of the < [ST](#abbr_ST) describes the process for decrypting Enterprise < application data and shared resource data. The evaluator shall ensure < that this process requires the user to enter an Authentication Factor < and, in accordance with [FCS\_CKM\_EXT.3](#FCS_CKM_EXT.3), derives a < [KEK](#abbr_KEK) which is used to protect the software-based secure key < storage and (optionally) [DEK](#abbr_DEK)(s) for sensitive data, in < accordance with [FCS\_STG\_EXT.2](#FCS_STG_EXT.2).\ < \ < \ < < ::: {.eacategory} < Guidance < ::: < < There are no guidance evaluation activities for this element.\ < \ < \ < < ::: {.eacategory} < Tests < ::: < < There are no test evaluation activities for this element.\ < ::: ::: ::: ::: ::: ::: ::: ::: A.2 Objective Requirements {#objective-reqs .indexable data-level="2"} A.2 Objective Requirements {#objective-reqs .indexable data-level="2"} -------------------------- -------------------------- ### A.2.1 Class: Security Audit (FAU) {#fau-obj .indexable data-level="3"} | ### A.2.1 Class: Security Audit (FAU) {#fau-objective .indexable data-level="3"} ::: {#FAU_SAR.1 .comp} ::: {#FAU_SAR.1 .comp} #### FAU\_SAR.1 Audit Review #### FAU\_SAR.1 Audit Review ::: {.element} ::: {.element} ::: {#FAU_SAR.1.1 .reqid} ::: {#FAU_SAR.1.1 .reqid} [FAU\_SAR.1.1](#FAU_SAR.1.1){.abbr} [FAU\_SAR.1.1](#FAU_SAR.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide [the administrator]{.refinement} with The [TSF](#abbr_TSF) shall provide [the administrator]{.refinement} with the capability to read [all audited events and record the capability to read [all audited events and record contents]{.refinement} from the audit records. contents]{.refinement} from the audit records. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The administrator must have access [Application Note: ]{.note-header}[ The administrator must have access to read the audit record, perhaps through an [API](#abbr_API) or via an to read the audit record, perhaps through an [API](#abbr_API) or via an [MDM](#abbr_MDM) Agent, which transfers the local records stored on the [MDM](#abbr_MDM) Agent, which transfers the local records stored on the [TOE](#abbr_TOE) to the [MDM](#abbr_MDM) Server where the enterprise [TOE](#abbr_TOE) to the [MDM](#abbr_MDM) Server where the enterprise administrator may view them. If this requirement is included in the administrator may view them. If this requirement is included in the [ST](#abbr_ST), function [[32]{.counter}](#auditLogs){.auditLogs-ref} | [ST](#abbr_ST), function [32](#mf-auditLogs) must be included in the must be included in the selection of [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1). | selection of [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1). ]{.note} ]{.note} < ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FAU_SAR.1.2 .reqid} ::: {#FAU_SAR.1.2 .reqid} [FAU\_SAR.1.2](#FAU_SAR.1.2){.abbr} [FAU\_SAR.1.2](#FAU_SAR.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide the audit records in a manner The [TSF](#abbr_TSF) shall provide the audit records in a manner suitable for the user to interpret the information. suitable for the user to interpret the information. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FAU\_SAR.1](#FAU_SAR.1):\ | ::: {.component-activity-header} > [FAU\_SAR.1](#FAU_SAR.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluation activity for this requirement is performed in conjunction The evaluation activity for this requirement is performed in conjunction with test for function [[32]{.counter}](#auditLogs){.auditLogs-ref} of | with test for function [32](#mf-auditLogs) of [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1).\ | [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1). ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FAU_SEL.1 .comp} ::: {#FAU_SEL.1 .comp} #### FAU\_SEL.1 Selective Audit #### FAU\_SEL.1 Selective Audit ::: {.element} ::: {.element} ::: {#FAU_SEL.1.1 .reqid} ::: {#FAU_SEL.1.1 .reqid} [FAU\_SEL.1.1](#FAU_SEL.1.1){.abbr} [FAU\_SEL.1.1](#FAU_SEL.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall be able to select the set of events to be The [TSF](#abbr_TSF) shall be able to select the set of events to be audited from the set of all auditable events based on the following audited from the set of all auditable events based on the following attributes \[**selection**: attributes \[**selection**: - *event type*, | - [event type]{#_s_53 .selectable-content} - *success of auditable security events*, | - [success of auditable security events]{#_s_54 .selectable-content} - *failure of auditable security events*, | - [failure of auditable security events]{#_s_55 .selectable-content} - *\[**assignment**: [other attributes]{.assignable-content}\]* | - [\[**assignment**: [other attributes]{.assignable-content}\]]{#_s_56 > .selectable-content} \]. \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The intent of this requirement is to [Application Note: ]{.note-header}[ The intent of this requirement is to identify all criteria that can be selected to trigger an audit event. identify all criteria that can be selected to trigger an audit event. This can be configured through an interface on the [TSF](#abbr_TSF) for This can be configured through an interface on the [TSF](#abbr_TSF) for a user or administrator to invoke. For the [ST](#abbr_ST) author, the a user or administrator to invoke. For the [ST](#abbr_ST) author, the assignment is used to list any additional criteria or \"none\". ]{.note} assignment is used to list any additional criteria or \"none\". ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FAU\_SEL.1](#FAU_SEL.1):\ | ::: {.component-activity-header} > [FAU\_SEL.1](#FAU_SEL.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall review the administrative guidance to ensure that The evaluator shall review the administrative guidance to ensure that the guidance itemizes all event types, as well as describes all the guidance itemizes all event types, as well as describes all attributes that are to be selectable in accordance with the requirement, attributes that are to be selectable in accordance with the requirement, to include those attributes listed in the assignment. The administrative to include those attributes listed in the assignment. The administrative guidance shall also contain instructions on how to set the pre-selection guidance shall also contain instructions on how to set the pre-selection as well as explain the syntax (if present) for multi-value as well as explain the syntax (if present) for multi-value pre-selection. The administrative guidance shall also identify those pre-selection. The administrative guidance shall also identify those audit records that are always recorded, regardless of the selection audit records that are always recorded, regardless of the selection criteria currently being enforced.\ criteria currently being enforced.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluator shall also perform the following tests:\ The evaluator shall also perform the following tests:\ > []{.testlist-} - **Test 1:** For each attribute listed in the requirement, the | - [Test 93[](#_t_1){.definition}]{#_t_1}: For each attribute listed in evaluator shall devise a test to show that selecting the attribute | the requirement, the evaluator shall devise a test to show that causes only audit events with that attribute (or those that are | selecting the attribute causes only audit events with that attribute always recorded, as identified in the administrative guidance) to be | (or those that are always recorded, as identified in the recorded. | administrative guidance) to be recorded. - **Test 2:** \[conditional\] If the [TSF](#abbr_TSF) supports | - [Test 94[](#_t_2){.definition}]{#_t_2}: \[conditional\] If the specification of more complex audit pre-selection criteria (e.g., | [TSF](#abbr_TSF) supports specification of more complex audit multiple attributes, logical expressions using attributes) then the | pre-selection criteria (e.g., multiple attributes, logical evaluator shall devise tests showing that this capability is | expressions using attributes) then the evaluator shall devise tests correctly implemented. The evaluator shall also, in the test plan, | showing that this capability is correctly implemented. The evaluator provide a short narrative justifying the set of tests as | shall also, in the test plan, provide a short narrative justifying representative and sufficient to exercise the capability. | the set of tests as representative and sufficient to exercise the | capability. \ < ::: ::: ::: ::: ::: ::: ::: ::: ### A.2.2 Class: Cryptographic Support (FCS) {#fcs-obj .indexable data-level="3"} | ### A.2.2 Class: Cryptographic Support (FCS) {#fcs-objective .indexable data-level="3 ::: {#FCS_RBG_EXT.2 .comp} ::: {#FCS_RBG_EXT.2 .comp} #### FCS\_RBG\_EXT.2 Random Bit Generator State Preservation #### FCS\_RBG\_EXT.2 Random Bit Generator State Preservation ::: {.element} ::: {.element} ::: {#FCS_RBG_EXT.2.1 .reqid} ::: {#FCS_RBG_EXT.2.1 .reqid} [FCS\_RBG\_EXT.2.1](#FCS_RBG_EXT.2.1){.abbr} [FCS\_RBG\_EXT.2.1](#FCS_RBG_EXT.2.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall save the state of the deterministic The [TSF](#abbr_TSF) shall save the state of the deterministic [RBG](#abbr_RBG) at power-off, and shall use this state as input to the [RBG](#abbr_RBG) at power-off, and shall use this state as input to the deterministic [RBG](#abbr_RBG) at startup. deterministic [RBG](#abbr_RBG) at startup. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ The capability to add the state [Application Note: ]{.note-header}[ The capability to add the state saved at power-off as input to the [RBG](#abbr_RBG) prevents an saved at power-off as input to the [RBG](#abbr_RBG) prevents an [RBG](#abbr_RBG) that is slow to gather entropy from producing the same [RBG](#abbr_RBG) that is slow to gather entropy from producing the same output regularly and across reboots. Since there is no guarantee of the output regularly and across reboots. Since there is no guarantee of the protections provided when the state is stored (or a requirement for any protections provided when the state is stored (or a requirement for any such protection), it is assumed that the state is \'known\', and such protection), it is assumed that the state is \'known\', and therefore cannot contribute entropy to the [RBG](#abbr_RBG), but can therefore cannot contribute entropy to the [RBG](#abbr_RBG), but can introduce enough variation that the initial [RBG](#abbr_RBG) values are introduce enough variation that the initial [RBG](#abbr_RBG) values are not predictable and exploitable. ]{.note} not predictable and exploitable. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_RBG\_EXT.2](#FCS_RBG_EXT.2):\ | ::: {.component-activity-header} > [FCS\_RBG\_EXT.2](#FCS_RBG_EXT.2) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluation activity for this requirement is captured in the The evaluation activity for this requirement is captured in the [RBG](#abbr_RBG) documentation for [Appendix D - Entropy Documentation [RBG](#abbr_RBG) documentation for [Appendix D - Entropy Documentation And Assessment](#entropy){.dynref}. The evaluator shall verify that the And Assessment](#entropy){.dynref}. The evaluator shall verify that the documentation describes how the state is generated so as to be available documentation describes how the state is generated so as to be available for the next startup, how the state is used as input to the DRBG, and for the next startup, how the state is used as input to the DRBG, and any protection measures used for the state while the [TOE](#abbr_TOE) is any protection measures used for the state while the [TOE](#abbr_TOE) is powered off.\ powered off.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_RBG_EXT.3 .comp} ::: {#FCS_RBG_EXT.3 .comp} #### FCS\_RBG\_EXT.3 Support for Personalization String #### FCS\_RBG\_EXT.3 Support for Personalization String ::: {.element} ::: {.element} ::: {#FCS_RBG_EXT.3.1 .reqid} ::: {#FCS_RBG_EXT.3.1 .reqid} [FCS\_RBG\_EXT.3.1](#FCS_RBG_EXT.3.1){.abbr} [FCS\_RBG\_EXT.3.1](#FCS_RBG_EXT.3.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall allow applications to add data to the The [TSF](#abbr_TSF) shall allow applications to add data to the deterministic [RBG](#abbr_RBG) using the Personalization String as deterministic [RBG](#abbr_RBG) using the Personalization String as defined in SP 800-90A. defined in SP 800-90A. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ As specified in SP 800-90A, the [Application Note: ]{.note-header}[ As specified in SP 800-90A, the [TSF](#abbr_TSF) must not count data input from an application towards [TSF](#abbr_TSF) must not count data input from an application towards the entropy required by [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1). Thus, the the entropy required by [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1). Thus, the [TSF](#abbr_TSF) must not allow the only input to the [RBG](#abbr_RBG) [TSF](#abbr_TSF) must not allow the only input to the [RBG](#abbr_RBG) seed to be from an application. ]{.note} seed to be from an application. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_RBG\_EXT.3](#FCS_RBG_EXT.3):\ | ::: {.component-activity-header} > [FCS\_RBG\_EXT.3](#FCS_RBG_EXT.3) > ::: ::: {.activity} < The evaluator shall verify that this function is included as an The evaluator shall verify that this function is included as an interface to the [RBG](#abbr_RBG) in the documentation required by interface to the [RBG](#abbr_RBG) in the documentation required by [Appendix D - Entropy Documentation And Assessment](#entropy){.dynref} [Appendix D - Entropy Documentation And Assessment](#entropy){.dynref} and that the behavior of the [RBG](#abbr_RBG) following a call to this and that the behavior of the [RBG](#abbr_RBG) following a call to this interface is described. The evaluator shall also verify that the interface is described. The evaluator shall also verify that the documentation of the [RBG](#abbr_RBG) describes the conditions of use documentation of the [RBG](#abbr_RBG) describes the conditions of use and possible values for the Personalization String input to the SP and possible values for the Personalization String input to the SP 800-90A specified DRBG.\ 800-90A specified DRBG.\ \ \ ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: - **Test 1:** The evaluator shall write, or the developer shall | ::: {.ea} provide, an application that adds data to the [RBG](#abbr_RBG) via | []{.testlist-} the Personalization String. The evaluator shall verify that the < request succeeds. < \ | - [Test 95[](#_t_45){.definition}]{#_t_45}: The evaluator shall write, > or the developer shall provide, an application that adds data to the > [RBG](#abbr_RBG) via the Personalization String. The evaluator shall > verify that the request succeeds. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FCS_SRV_EXT.2 .comp} ::: {#FCS_SRV_EXT.2 .comp} #### FCS\_SRV\_EXT.2 Cryptographic Algorithm Services #### FCS\_SRV\_EXT.2 Cryptographic Algorithm Services ::: {.element} ::: {.element} ::: {#FCS_SRV_EXT.2.1 .reqid} ::: {#FCS_SRV_EXT.2.1 .reqid} [FCS\_SRV\_EXT.2.1](#FCS_SRV_EXT.2.1){.abbr} [FCS\_SRV\_EXT.2.1](#FCS_SRV_EXT.2.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide a mechanism for applications to The [TSF](#abbr_TSF) shall provide a mechanism for applications to request the [TSF](#abbr_TSF) to perform the following cryptographic request the [TSF](#abbr_TSF) to perform the following cryptographic operations: operations: - Algorithms in [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT) - Algorithms in [FCS\_COP.1/ENCRYPT](#FCS_COP.1/ENCRYPT) - Algorithms in [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN) - Algorithms in [FCS\_COP.1/SIGN](#FCS_COP.1/SIGN) by keys stored in the secure key storage. by keys stored in the secure key storage. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The [TOE](#abbr_TOE) will, therefore, [Application Note: ]{.note-header}[The [TOE](#abbr_TOE) will, therefore, be required to perform cryptographic operations on behalf of be required to perform cryptographic operations on behalf of applications using the keys stored in the [TOE](#abbr_TOE)'s secure key applications using the keys stored in the [TOE](#abbr_TOE)'s secure key storage. ]{.note} storage. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_SRV\_EXT.2](#FCS_SRV_EXT.2):\ | ::: {.component-activity-header} > [FCS\_SRV\_EXT.2](#FCS_SRV_EXT.2) > ::: ::: {.activity} < The evaluator shall verify that the [API](#abbr_API) documentation for The evaluator shall verify that the [API](#abbr_API) documentation for the secure key storage includes the cryptographic operations by the the secure key storage includes the cryptographic operations by the stored keys.\ stored keys.\ \ \ ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluator shall write, or the developer shall provide access to, an The evaluator shall write, or the developer shall provide access to, an application that requests cryptographic operations of stored keys by the application that requests cryptographic operations of stored keys by the [TSF](#abbr_TSF). The evaluator shall verify that the results from the [TSF](#abbr_TSF). The evaluator shall verify that the results from the operation match the expected results according to the [API](#abbr_API) operation match the expected results according to the [API](#abbr_API) documentation. The evaluator shall use these APIs to test the documentation. The evaluator shall use these APIs to test the functionality of the secure key storage according to the Evaluation functionality of the secure key storage according to the Evaluation Activities in [FCS\_STG\_EXT.1](#FCS_STG_EXT.1).\ | Activities in [FCS\_STG\_EXT.1](#FCS_STG_EXT.1). ::: ::: ::: ::: ::: ::: ::: ::: ### A.2.3 Class: User Data Protection (FDP) {#fdp-obj .indexable data-level="3"} | ### A.2.3 Class: User Data Protection (FDP) {#fdp-objective .indexable data-level="3" ::: {#FDP_ACF_EXT.3 .comp} ::: {#FDP_ACF_EXT.3 .comp} #### FDP\_ACF\_EXT.3 Security Attribute Based Access Control #### FDP\_ACF\_EXT.3 Security Attribute Based Access Control ::: {.element} ::: {.element} ::: {#FDP_ACF_EXT.3.1 .reqid} ::: {#FDP_ACF_EXT.3.1 .reqid} [FDP\_ACF\_EXT.3.1](#FDP_ACF_EXT.3.1){.abbr} [FDP\_ACF\_EXT.3.1](#FDP_ACF_EXT.3.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall enforce an access control policy that The [TSF](#abbr_TSF) shall enforce an access control policy that prohibits an application from granting both write and execute permission prohibits an application from granting both write and execute permission to a file on the device except for \[**selection**: *files stored in the | to a file on the device except for \[**selection**: [files stored in the application\'s private data folder*, *no exceptions*\]. | application\'s private data folder]{#_s_248 .selectable-content}, [no > exceptions]{#_s_249 .selectable-content} \]. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FDP\_ACF\_EXT.3](#FDP_ACF_EXT.3):\ | ::: {.component-activity-header} > [FDP\_ACF\_EXT.3](#FDP_ACF_EXT.3) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following tests require the developer **Evaluation Activity Note:** The following tests require the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products.\ tools that are typically not found on consumer Mobile Device products.\ \ \ > []{.testlist-} - **Test 1:** The evaluator shall write, or the developer shall | - [Test 96[](#_t_54){.definition}]{#_t_54}: The evaluator shall write, provide, an application that attempts to store a file with both | or the developer shall provide, an application that attempts to write and execute permissions. If the selection is \"no | store a file with both write and execute permissions. If the exceptions\", then the evaluator shall verify that this action fails | selection is \"no exceptions\", then the evaluator shall verify that and that the permissions on the file are not simultaneously write | this action fails and that the permissions on the file are not and execute. If the selection is \"application\'s private data | simultaneously write and execute. If the selection is folder\", then the evaluator shall ensure that the attempt to store | \"application\'s private data folder\", then the evaluator shall the file is outside of the application\'s private data folder. | ensure that the attempt to store the file is outside of the - **Test 2:** The evaluator shall traverse the file system examining | application\'s private data folder. the permission on each [TSF](#abbr_TSF) file to verify that no file | - [Test 97[](#_t_55){.definition}]{#_t_55}: The evaluator shall has both write and execute permissions set. If the selection is | traverse the file system examining the permission on each \"application\'s private data folder\", then only files outside of | [TSF](#abbr_TSF) file to verify that no file has both write and this folder need to be examined by the evaluator for this test. | execute permissions set. If the selection is \"application\'s | private data folder\", then only files outside of this folder need \ | to be examined by the evaluator for this test. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FDP_BCK_EXT.1 .comp} ::: {#FDP_BCK_EXT.1 .comp} #### FDP\_BCK\_EXT.1 Application Backup #### FDP\_BCK\_EXT.1 Application Backup ::: {.element} ::: {.element} ::: {#FDP_BCK_EXT.1.1 .reqid} ::: {#FDP_BCK_EXT.1.1 .reqid} [FDP\_BCK\_EXT.1.1](#FDP_BCK_EXT.1.1){.abbr} [FDP\_BCK\_EXT.1.1](#FDP_BCK_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide a mechanism for applications to mark The [TSF](#abbr_TSF) shall provide a mechanism for applications to mark \[**selection**: *all application data*, *selected application data*\] | \[**selection**: [all application data]{#_s_250 .selectable-content}, to be excluded from device backups. | [selected application data]{#_s_251 .selectable-content} \] to be > excluded from device backups. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ Device backups include any mechanism [Application Note: ]{.note-header}[ Device backups include any mechanism built into the [TOE](#abbr_TOE) that allows stored application data to built into the [TOE](#abbr_TOE) that allows stored application data to be extracted over a physical port or sent over the network, but does not be extracted over a physical port or sent over the network, but does not include any functionality implemented by a specific application itself include any functionality implemented by a specific application itself if the application is not included in the [TOE](#abbr_TOE). The lack of if the application is not included in the [TOE](#abbr_TOE). The lack of a public/documented [API](#abbr_API) for performing backups, when a a public/documented [API](#abbr_API) for performing backups, when a private/undocumented [API](#abbr_API) exists, is not sufficient to meet private/undocumented [API](#abbr_API) exists, is not sufficient to meet this requirement. ]{.note} this requirement. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FDP\_BCK\_EXT.1](#FDP_BCK_EXT.1):\ | ::: {.component-activity-header} > [FDP\_BCK\_EXT.1](#FDP_BCK_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} If \"all application data\" is selected, the evaluator shall install an If \"all application data\" is selected, the evaluator shall install an application that has marked all of its application data to be excluded application that has marked all of its application data to be excluded from backups. The evaluator shall cause data to be placed into the from backups. The evaluator shall cause data to be placed into the application's storage area. The evaluator shall attempt to back up the application's storage area. The evaluator shall attempt to back up the application data and verify that the backup fails or that the application data and verify that the backup fails or that the application's data was not included in the backup.\ application's data was not included in the backup.\ \ \ If \"selected application data\" is selected, the evaluator shall If \"selected application data\" is selected, the evaluator shall install an application that has marked selected application data to be install an application that has marked selected application data to be excluded from backups. The evaluator shall cause data covered by excluded from backups. The evaluator shall cause data covered by \"selected application data\" to be placed into the application's \"selected application data\" to be placed into the application's storage area. The evaluator shall attempt to backup that selected storage area. The evaluator shall attempt to backup that selected application data and verify that either the backup fails or that the application data and verify that either the backup fails or that the selected data is excluded from the backup.\ | selected data is excluded from the backup. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FDP_BLT_EXT.1 .comp} ::: {#FDP_BLT_EXT.1 .comp} #### FDP\_BLT\_EXT.1 Limitation of Bluetooth Device Access #### FDP\_BLT\_EXT.1 Limitation of Bluetooth Device Access ::: {.element} ::: {.element} ::: {#FDP_BLT_EXT.1.1 .reqid} ::: {#FDP_BLT_EXT.1.1 .reqid} [FDP\_BLT\_EXT.1.1](#FDP_BLT_EXT.1.1){.abbr} [FDP\_BLT\_EXT.1.1](#FDP_BLT_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall limit the applications that may communicate The [TSF](#abbr_TSF) shall limit the applications that may communicate with a particular paired Bluetooth device. with a particular paired Bluetooth device. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ Not every application with [Application Note: ]{.note-header}[ Not every application with privileges to use Bluetooth should be permitted to communicate with privileges to use Bluetooth should be permitted to communicate with every paired Bluetooth device. For example, the [TSF](#abbr_TSF) may every paired Bluetooth device. For example, the [TSF](#abbr_TSF) may choose to require that only the application that initiated the current choose to require that only the application that initiated the current connection may communicate with the device, or it may strictly tie the connection may communicate with the device, or it may strictly tie the paired device to the first application that makes a socket connection to paired device to the first application that makes a socket connection to the device following initial pairing. Additionally, for more the device following initial pairing. Additionally, for more flexibility, the [TSF](#abbr_TSF) may choose to provide the user with a flexibility, the [TSF](#abbr_TSF) may choose to provide the user with a way to select which applications on the device may communicate with or way to select which applications on the device may communicate with or observe communications with each paired Bluetooth device. ]{.note} observe communications with each paired Bluetooth device. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FDP\_BLT\_EXT.1](#FDP_BLT_EXT.1):\ | ::: {.component-activity-header} > [FDP\_BLT\_EXT.1](#FDP_BLT_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure that the [TSS](#abbr_TSS) describes the The evaluator shall ensure that the [TSS](#abbr_TSS) describes the mechanism used to prevent unrestricted access to paired Bluetooth mechanism used to prevent unrestricted access to paired Bluetooth devices (and/or their communication data) by every application with devices (and/or their communication data) by every application with access to the Bluetooth system service on the [TOE](#abbr_TOE). The access to the Bluetooth system service on the [TOE](#abbr_TOE). The evaluator shall verify that this method either restricts access to a evaluator shall verify that this method either restricts access to a single application or provides explicit control of the applications that single application or provides explicit control of the applications that may communicate with the paired Bluetooth device.\ may communicate with the paired Bluetooth device.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall verify that the AGD contains the steps to configure The evaluator shall verify that the AGD contains the steps to configure which applications are allowed to communicate with a given Bluetooth which applications are allowed to communicate with a given Bluetooth peripheral.\ peripheral.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluator shall establish a Bluetooth connection with any The evaluator shall establish a Bluetooth connection with any peripheral. The evaluator shall verify that an application that is peripheral. The evaluator shall verify that an application that is allowed to communicate with the Bluetooth peripheral is able to and that allowed to communicate with the Bluetooth peripheral is able to and that an application that is not allowed to communicate with that Bluetooth an application that is not allowed to communicate with that Bluetooth peripheral is unable to communicate with the peripheral.\ | peripheral is unable to communicate with the peripheral. ::: ::: ::: ::: ::: ::: ::: ::: ### A.2.4 Class: Identification and Authentication (FIA) {#fia-obj .indexable data-le | ### A.2.4 Class: Identification and Authentication (FIA) {#fia-objective .indexable d ::: {#FIA_BMG_EXT.2 .comp} ::: {#FIA_BMG_EXT.2 .comp} #### FIA\_BMG\_EXT.2 Biometric Enrollment #### FIA\_BMG\_EXT.2 Biometric Enrollment ::: {.element} ::: {.element} ::: {#FIA_BMG_EXT.2.1 .reqid} ::: {#FIA_BMG_EXT.2.1 .reqid} [FIA\_BMG\_EXT.2.1](#FIA_BMG_EXT.2.1){.abbr} [FIA\_BMG\_EXT.2.1](#FIA_BMG_EXT.2.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall only use biometric samples of sufficient The [TSF](#abbr_TSF) shall only use biometric samples of sufficient quality for enrollment. Sample data shall have \[**assignment**: quality for enrollment. Sample data shall have \[**assignment**: [quality metrics corresponding to each biometric [quality metrics corresponding to each biometric modality]{.assignable-content}\]. modality]{.assignable-content}\]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ Different biometric modalities [Application Note: ]{.note-header}[ Different biometric modalities utilize different quality standards. The quality standard for the each utilize different quality standards. The quality standard for the each [BAF](#abbr_BAF) selected in [FIA\_UAU.5](#FIA_UAU.5) should be listed [BAF](#abbr_BAF) selected in [FIA\_UAU.5](#FIA_UAU.5) should be listed in the assignment. For example, fingerprint may utilize the in the assignment. For example, fingerprint may utilize the [NFIQ](#abbr_NFIQ) standard where [NFIQ](#abbr_NFIQ) 1.0 scores of 1, 2, [NFIQ](#abbr_NFIQ) standard where [NFIQ](#abbr_NFIQ) 1.0 scores of 1, 2, or 3 are required for use in hardware PIV, where 1 is the highest | or 3 are required for use in hardware [PIV](#abbr_PIV), where 1 is the quality standard. [NFIQ](#abbr_NFIQ) 2.0 is a newer version of the | highest quality standard. [NFIQ](#abbr_NFIQ) 2.0 is a newer version of [NFIQ](#abbr_NFIQ) standard that has not seen widespread adoption as of | the [NFIQ](#abbr_NFIQ) standard that has not seen widespread adoption as the publication of this [PP](#abbr_PP) but is being considered by the | of the publication of this [PP](#abbr_PP) but is being considered by the scientific community as well as by industry. Samples used to create the scientific community as well as by industry. Samples used to create the authentication template/profile at enrollment must be mutually authentication template/profile at enrollment must be mutually consistent. After the authentication template has been created, it must consistent. After the authentication template has been created, it must be tested to determine whether or not it is of sufficient quality and if be tested to determine whether or not it is of sufficient quality and if not, more quality samples must be added until it is of sufficient not, more quality samples must be added until it is of sufficient quality.]{.note} quality.]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_BMG\_EXT.2](#FIA_BMG_EXT.2):\ | ::: {.component-activity-header} > [FIA\_BMG\_EXT.2](#FIA_BMG_EXT.2) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) describes how the The evaluator shall verify that the [TSS](#abbr_TSS) describes how the quality of samples used to create the authentication template at quality of samples used to create the authentication template at enrollment are verified. As well as the quality standard that the enrollment are verified. As well as the quality standard that the validation method uses to perform the assessment.\ validation method uses to perform the assessment.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall verify that the AGD guidance describes how to enroll The evaluator shall verify that the AGD guidance describes how to enroll a user for each biometric modality supported.\ a user for each biometric modality supported.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluator shall input biometric samples for enrollment. Upon The evaluator shall input biometric samples for enrollment. Upon inputting biometric samples a fixed number of times as specified in the inputting biometric samples a fixed number of times as specified in the prompts, one or more authentication templates will be generated. The prompts, one or more authentication templates will be generated. The evaluator shall verify that the device only accepts samples of evaluator shall verify that the device only accepts samples of sufficient quality or requests additional samples if the authentication sufficient quality or requests additional samples if the authentication template is not of sufficient quality. For all quality metrics, the template is not of sufficient quality. For all quality metrics, the evaluator shall ensure that biometric samples achieving a worse quality evaluator shall ensure that biometric samples achieving a worse quality score than the prescribed threshold are rejected.\ | score than the prescribed threshold are rejected. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FIA_BMG_EXT.3 .comp} ::: {#FIA_BMG_EXT.3 .comp} #### FIA\_BMG\_EXT.3 Biometric Verification #### FIA\_BMG\_EXT.3 Biometric Verification ::: {.element} ::: {.element} ::: {#FIA_BMG_EXT.3.1 .reqid} ::: {#FIA_BMG_EXT.3.1 .reqid} [FIA\_BMG\_EXT.3.1](#FIA_BMG_EXT.3.1){.abbr} [FIA\_BMG\_EXT.3.1](#FIA_BMG_EXT.3.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall only use biometric samples of sufficient The [TSF](#abbr_TSF) shall only use biometric samples of sufficient quality for verification. As such, sample data shall have quality for verification. As such, sample data shall have \[**assignment**: [quality metrics corresponding to each biometric \[**assignment**: [quality metrics corresponding to each biometric modality]{.assignable-content}\]. modality]{.assignable-content}\]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[Different biometric modalities [Application Note: ]{.note-header}[Different biometric modalities utilize different quality standards. The quality standard for the each utilize different quality standards. The quality standard for the each [BAF](#abbr_BAF) selected in [FIA\_UAU.5](#FIA_UAU.5) should be listed [BAF](#abbr_BAF) selected in [FIA\_UAU.5](#FIA_UAU.5) should be listed in the assignment. For example, fingerprint may utilize the in the assignment. For example, fingerprint may utilize the [NFIQ](#abbr_NFIQ) standard where [NFIQ](#abbr_NFIQ) 1.0 scores of 1, 2, [NFIQ](#abbr_NFIQ) standard where [NFIQ](#abbr_NFIQ) 1.0 scores of 1, 2, or 3 are required for use in hardware PIV, where 1 is the highest | or 3 are required for use in hardware [PIV](#abbr_PIV), where 1 is the quality standard. [NFIQ](#abbr_NFIQ) 2.0 is a newer version of the | highest quality standard. [NFIQ](#abbr_NFIQ) 2.0 is a newer version of [NFIQ](#abbr_NFIQ) standard that has not seen widespread adoption as of | the [NFIQ](#abbr_NFIQ) standard that has not seen widespread adoption as the publication of this [PP](#abbr_PP) but is being considered by the | of the publication of this [PP](#abbr_PP) but is being considered by the scientific community as well as by industry.]{.note} scientific community as well as by industry.]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_BMG\_EXT.3](#FIA_BMG_EXT.3):\ | ::: {.component-activity-header} > [FIA\_BMG\_EXT.3](#FIA_BMG_EXT.3) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) describes how the The evaluator shall verify that the [TSS](#abbr_TSS) describes how the quality of samples used to verify authentication are verified. As well quality of samples used to verify authentication are verified. As well as the quality standard that the validation method uses to perform the as the quality standard that the validation method uses to perform the assessment. The evaluator shall enroll a user for each biometric assessment. The evaluator shall enroll a user for each biometric modality supported. The evaluator will then input biometric samples for modality supported. The evaluator will then input biometric samples for verification and ensure that the device only accepts samples of verification and ensure that the device only accepts samples of sufficient quality. The evaluator shall ensure that biometric samples sufficient quality. The evaluator shall ensure that biometric samples achieving a worse quality score than the prescribed threshold are achieving a worse quality score than the prescribed threshold are rejected.\ rejected.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FIA_BMG_EXT.4 .comp} ::: {#FIA_BMG_EXT.4 .comp} #### FIA\_BMG\_EXT.4 Biometric Templates #### FIA\_BMG\_EXT.4 Biometric Templates ::: {.element} ::: {.element} ::: {#FIA_BMG_EXT.4.1 .reqid} ::: {#FIA_BMG_EXT.4.1 .reqid} [FIA\_BMG\_EXT.4.1](#FIA_BMG_EXT.4.1){.abbr} [FIA\_BMG\_EXT.4.1](#FIA_BMG_EXT.4.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall only generate and use enrollment templates The [TSF](#abbr_TSF) shall only generate and use enrollment templates and/or authentication templates of sufficient quality for any subsequent and/or authentication templates of sufficient quality for any subsequent authentication functions. authentication functions. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ If the vendor needs to develop an [Application Note: ]{.note-header}[ If the vendor needs to develop an authentication template using multiple enrollment samples, they must all authentication template using multiple enrollment samples, they must all be mutually consistent and correspond to the biometric characteristics be mutually consistent and correspond to the biometric characteristics of a single user and source. For the purposes of this requirement, of a single user and source. For the purposes of this requirement, enrollment templates are templates constructed from sample data, while enrollment templates are templates constructed from sample data, while authentication templates are generated based on sample data and/or authentication templates are generated based on sample data and/or enrollment templates and stored for matching/biometric verification enrollment templates and stored for matching/biometric verification purposes. One or more templates could be generated during enrollment purposes. One or more templates could be generated during enrollment without the user knowing how many.\ without the user knowing how many.\ \ \ Authentication templates may not have standard quality metrics, but Authentication templates may not have standard quality metrics, but vendor and/or labs still need to ensure that such templates have a vendor and/or labs still need to ensure that such templates have a sufficient feature set available to provide a desired identity assurance sufficient feature set available to provide a desired identity assurance level. Examples include minimum number of fingerprint minutiae. ]{.note} level. Examples include minimum number of fingerprint minutiae. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_BMG\_EXT.4](#FIA_BMG_EXT.4):\ | ::: {.component-activity-header} > [FIA\_BMG\_EXT.4](#FIA_BMG_EXT.4) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) describes how the The evaluator shall verify that the [TSS](#abbr_TSS) describes how the samples used to create the authentication template at enrollment are samples used to create the authentication template at enrollment are mutually consistent and how the mutual consistency is validated, both in mutually consistent and how the mutual consistency is validated, both in terms of the method of validation as well as the quality standard that terms of the method of validation as well as the quality standard that the validation method uses to perform the assessment.\ the validation method uses to perform the assessment.\ \ \ The evaluator shall input biometric samples for enrollment. In doing so, The evaluator shall input biometric samples for enrollment. In doing so, the evaluator shall verify the enrollment templates generated are of the evaluator shall verify the enrollment templates generated are of sufficient quality. Upon inputting biometric samples a fixed number of sufficient quality. Upon inputting biometric samples a fixed number of times as specified in the prompts, the evaluator shall additionally times as specified in the prompts, the evaluator shall additionally verify that any enrollment and authentication templates generated are of verify that any enrollment and authentication templates generated are of sufficient quality. That is, they shall all be mutually consistent and sufficient quality. That is, they shall all be mutually consistent and correspond to the biometric characteristics of a single user and source correspond to the biometric characteristics of a single user and source (e.g. the same finger from the same person).\ (e.g. the same finger from the same person).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FIA_BMG_EXT.5 .comp} ::: {#FIA_BMG_EXT.5 .comp} #### FIA\_BMG\_EXT.5 Handling Unusual Biometric Templates #### FIA\_BMG\_EXT.5 Handling Unusual Biometric Templates ::: {.element} ::: {.element} ::: {#FIA_BMG_EXT.5.1 .reqid} ::: {#FIA_BMG_EXT.5.1 .reqid} [FIA\_BMG\_EXT.5.1](#FIA_BMG_EXT.5.1){.abbr} [FIA\_BMG\_EXT.5.1](#FIA_BMG_EXT.5.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The matching algorithm shall handle properly formatted enrollment The matching algorithm shall handle properly formatted enrollment templates and/or authentication templates, especially those with unusual templates and/or authentication templates, especially those with unusual data properties, appropriately. If such templates contain incorrect data properties, appropriately. If such templates contain incorrect syntax, are of low quality, or contain enrollment data considered syntax, are of low quality, or contain enrollment data considered unrealistic for a given modality, then they shall be rejected by the unrealistic for a given modality, then they shall be rejected by the matching algorithm and an error code shall be reported. matching algorithm and an error code shall be reported. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[While it is important to have [Application Note: ]{.note-header}[While it is important to have properly formatted enrollment or authentication templates, it is equally properly formatted enrollment or authentication templates, it is equally important for the matching algorithm to correctly handle enrollment important for the matching algorithm to correctly handle enrollment and/or authentication templates that have unusual data properties or are and/or authentication templates that have unusual data properties or are of low quality. If the matching algorithm detects templates that are of of low quality. If the matching algorithm detects templates that are of low quality, have low numbers of bits of complexity, or maintain unusual low quality, have low numbers of bits of complexity, or maintain unusual data properties, it must return an error code or other indication in data properties, it must return an error code or other indication in order to protect the system from possible spoofing or denial-of-service order to protect the system from possible spoofing or denial-of-service attacks. For the purposes of this requirement, enrollment templates are attacks. For the purposes of this requirement, enrollment templates are templates constructed from sample data, while authentication templates templates constructed from sample data, while authentication templates are stored for matching/biometric verification purposes.\ are stored for matching/biometric verification purposes.\ \ \ Examples of unusual data properties that may cause fingerprint Examples of unusual data properties that may cause fingerprint enrollment template rejection include, but are not limited to, minutia enrollment template rejection include, but are not limited to, minutia counts that are too high or too low, direction field maps that do not counts that are too high or too low, direction field maps that do not correspond to real fingerprint ridge flow maps, all detected minutia correspond to real fingerprint ridge flow maps, all detected minutia crowded to the extreme edges of the image area, and ridge widths that crowded to the extreme edges of the image area, and ridge widths that are too wide or too narrow.\ are too wide or too narrow.\ \ \ Accordingly, if an enrollment template and/or authentication template Accordingly, if an enrollment template and/or authentication template meets the structural requirements but without proper syntax, the meets the structural requirements but without proper syntax, the matching algorithm must similarly return an error code or other matching algorithm must similarly return an error code or other indication to similar effect. ]{.note} indication to similar effect. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_BMG\_EXT.5](#FIA_BMG_EXT.5):\ | ::: {.component-activity-header} > [FIA\_BMG\_EXT.5](#FIA_BMG_EXT.5) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) how the matching The evaluator shall verify that the [TSS](#abbr_TSS) how the matching algorithm addresses properly formatted templates with unusual data algorithm addresses properly formatted templates with unusual data properties, incorrect syntax, or low quality. The evaluator shall ensure properties, incorrect syntax, or low quality. The evaluator shall ensure that these claims are sound through appropriate testing based on test that these claims are sound through appropriate testing based on test programs provided by the vendor.\ programs provided by the vendor.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FIA_BMG_EXT.6 .comp} ::: {#FIA_BMG_EXT.6 .comp} #### FIA\_BMG\_EXT.6 Spoof Detections for Biometrics #### FIA\_BMG\_EXT.6 Spoof Detections for Biometrics ::: {.element} ::: {.element} ::: {#FIA_BMG_EXT.6.1 .reqid} ::: {#FIA_BMG_EXT.6.1 .reqid} [FIA\_BMG\_EXT.6.1](#FIA_BMG_EXT.6.1){.abbr} [FIA\_BMG\_EXT.6.1](#FIA_BMG_EXT.6.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall perform Presentation Attack Detection testing The [TSF](#abbr_TSF) shall perform Presentation Attack Detection testing up to the attack potential of \[**selection**: *basic*, *intermediate*, | up to the attack potential of \[**selection, choose one of**: *advanced*\] attacks, for each biometric modalities selected in | [basic]{#_s_276 .selectable-content}, [intermediate]{#_s_277 > .selectable-content}, [advanced]{#_s_278 .selectable-content} \] > attacks, for each biometric modalities selected in [FIA\_UAU.5.1](#FIA_UAU.5.1) on each enrollment and authentication [FIA\_UAU.5.1](#FIA_UAU.5.1) on each enrollment and authentication attempt, rejecting detected spoofs. When an authentication attempt fails attempt, rejecting detected spoofs. When an authentication attempt fails due to [PAD](#abbr_PAD) testing, the [TSF](#abbr_TSF) shall not indicate due to [PAD](#abbr_PAD) testing, the [TSF](#abbr_TSF) shall not indicate to the user the reason for failure to authenticate. to the user the reason for failure to authenticate. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ Presentation Attack Detection [Application Note: ]{.note-header}[ Presentation Attack Detection ([PAD](#abbr_PAD)) is also known as liveness detection or spoof ([PAD](#abbr_PAD)) is also known as liveness detection or spoof detection. If multiple modalities are selected in detection. If multiple modalities are selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), then this [SFR](#abbr_SFR) must be [FIA\_UAU.5.1](#FIA_UAU.5.1), then this [SFR](#abbr_SFR) must be iterated for each modality. For each modality, only one attack strength iterated for each modality. For each modality, only one attack strength must be selected.\ must be selected.\ \ \ Because Presentation Attack Detection ([PAD](#abbr_PAD)) is an Because Presentation Attack Detection ([PAD](#abbr_PAD)) is an open-ended problem much like vulnerability testing, it is neither open-ended problem much like vulnerability testing, it is neither cost-effective nor feasible to create a complete list of attack vectors cost-effective nor feasible to create a complete list of attack vectors and perform testing on all of them during the timeframe for | and perform testing on all of them during the time frame for [CC](#abbr_CC) evaluations. Such a list would be ever-changing, and [CC](#abbr_CC) evaluations. Such a list would be ever-changing, and unlike code vulnerabilities (i.e. CVEs), the equipment, skill, time, and unlike code vulnerabilities (i.e. CVEs), the equipment, skill, time, and cost required to test highly sophisticated attacks is highly infeasible cost required to test highly sophisticated attacks is highly infeasible for a testing lab given the current timeframe for [CC](#abbr_CC) | for a testing lab given the current time frame for [CC](#abbr_CC) evaluations. Nevertheless, it is a known risk that has been documented evaluations. Nevertheless, it is a known risk that has been documented by researchers for years.\ by researchers for years.\ \ \ Therefore, vendors are responsible for providing their own documentation Therefore, vendors are responsible for providing their own documentation specifying the measures the [TSF](#abbr_TSF) takes to mitigate specifying the measures the [TSF](#abbr_TSF) takes to mitigate presentation attacks and the appropriate pen-testing (for example, red presentation attacks and the appropriate pen-testing (for example, red teaming and blue teaming) performed as proof.\ teaming and blue teaming) performed as proof.\ \ \ To be specific, basic attacks (including basic and enhanced-basic To be specific, basic attacks (including basic and enhanced-basic [\[IBPC\]](#IBPC)) refer to attacks in literature of low skill that can [\[IBPC\]](#IBPC)) refer to attacks in literature of low skill that can be performed on a limited budget. This includes, but is not limited to, be performed on a limited budget. This includes, but is not limited to, playback attacks of a spoken utterance using a different mobile device playback attacks of a spoken utterance using a different mobile device for voice authentication, taking a photograph of a fingerprint or facial for voice authentication, taking a photograph of a fingerprint or facial and submitting it to the sensor, among other examples.\ and submitting it to the sensor, among other examples.\ \ \ Intermediate (or moderate [\[IBPC\]](#IBPC)) attacks can include, but Intermediate (or moderate [\[IBPC\]](#IBPC)) attacks can include, but are not limited to, creating a foam finger to thwart fingerprint are not limited to, creating a foam finger to thwart fingerprint detection and using a higher quality playback device to thwart liveness detection and using a higher quality playback device to thwart liveness detection.\ detection.\ \ \ Advanced (including high and beyond high [\[IBPC\]](#IBPC)) attacks can Advanced (including high and beyond high [\[IBPC\]](#IBPC)) attacks can include, but are not limited to, creating a synthetic hand with the include, but are not limited to, creating a synthetic hand with the given fingerprint using an expensive 3D-printer and forcing someone to given fingerprint using an expensive 3D-printer and forcing someone to reveal one's credentials through coercion or threats that may cause harm reveal one's credentials through coercion or threats that may cause harm (where detection of duress is required). Many of these attack techniques (where detection of duress is required). Many of these attack techniques may be sensitive or government classified. ]{.note} may be sensitive or government classified. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_BMG\_EXT.6](#FIA_BMG_EXT.6):\ | ::: {.component-activity-header} > [FIA\_BMG\_EXT.6](#FIA_BMG_EXT.6) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The testing methodology specified in ISO 19989 Information technology The testing methodology specified in ISO 19989 Information technology --- Security evaluation of presentation attack detection for biometrics --- Security evaluation of presentation attack detection for biometrics [\[ISO 19989\]](#ISO19989) is to be used to determine the efficacy of [\[ISO 19989\]](#ISO19989) is to be used to determine the efficacy of the [PAD](#abbr_PAD) for the selected attack potential.\ the [PAD](#abbr_PAD) for the selected attack potential.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** ISO 19989 is in draft status at the time **Evaluation Activity Note:** ISO 19989 is in draft status at the time of publication of this [PP](#abbr_PP). Once the ISO standard is of publication of this [PP](#abbr_PP). Once the ISO standard is published, it shall be used to meet the evaluation activity for this published, it shall be used to meet the evaluation activity for this requirement. Henniger, Scheuermann, and Kniess [\[IBPC\]](#IBPC), requirement. Henniger, Scheuermann, and Kniess [\[IBPC\]](#IBPC), provide a description of attack potential calculation with examples. provide a description of attack potential calculation with examples. Until such time as ISO 19989 is published, the vendor shall provide to Until such time as ISO 19989 is published, the vendor shall provide to the lab a description of the [PAD](#abbr_PAD) processing implemented in the lab a description of the [PAD](#abbr_PAD) processing implemented in the [TSF](#abbr_TSF), test procedures used to validate successful the [TSF](#abbr_TSF), test procedures used to validate successful operation of [PAD](#abbr_PAD), and test data with results of the operation of [PAD](#abbr_PAD), and test data with results of the [PAD](#abbr_PAD) validation testing. The lab may analyze the test [PAD](#abbr_PAD) validation testing. The lab may analyze the test procedures and data to validate vendor test results or, optionally, may procedures and data to validate vendor test results or, optionally, may conduct its own testing.\ conduct its own testing.\ \ \ If the lab performs its own testing, it is highly recommended that the If the lab performs its own testing, it is highly recommended that the vendor provides spoof testing tools, as it is not expected for the lab vendor provides spoof testing tools, as it is not expected for the lab to create a test procedure for modalities outside of established to create a test procedure for modalities outside of established standards and easily implemented procedures. Labs can also expedite the standards and easily implemented procedures. Labs can also expedite the testing process by purchasing the appropriate spoof kits and recipes testing process by purchasing the appropriate spoof kits and recipes from specialized biometrics testing labs.\ | from specialized biometrics testing labs. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FIA_X509_EXT.4 .comp} ::: {#FIA_X509_EXT.4 .comp} #### FIA\_X509\_EXT.4 X.509 Certificate Enrollment #### FIA\_X509\_EXT.4 X.509 Certificate Enrollment ::: {.element} ::: {.element} ::: {#FIA_X509_EXT.4.1 .reqid} ::: {#FIA_X509_EXT.4.1 .reqid} [FIA\_X509\_EXT.4.1](#FIA_X509_EXT.4.1){.abbr} [FIA\_X509\_EXT.4.1](#FIA_X509_EXT.4.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall use the Enrollment over Secure Transport The [TSF](#abbr_TSF) shall use the Enrollment over Secure Transport ([EST](#abbr_EST)) protocol as specified in RFC 7030 to request ([EST](#abbr_EST)) protocol as specified in RFC 7030 to request certificate enrollment using the simple enrollment method described in certificate enrollment using the simple enrollment method described in RFC 7030 Section 4.2. RFC 7030 Section 4.2. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_X509_EXT.4.2 .reqid} ::: {#FIA_X509_EXT.4.2 .reqid} [FIA\_X509\_EXT.4.2](#FIA_X509_EXT.4.2){.abbr} [FIA\_X509\_EXT.4.2](#FIA_X509_EXT.4.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall be capable of authenticating [EST](#abbr_EST) The [TSF](#abbr_TSF) shall be capable of authenticating [EST](#abbr_EST) requests using an existing certificate and corresponding private key as requests using an existing certificate and corresponding private key as specified by RFC 7030 Section 3.3.2. specified by RFC 7030 Section 3.3.2. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_X509_EXT.4.3 .reqid} ::: {#FIA_X509_EXT.4.3 .reqid} [FIA\_X509\_EXT.4.3](#FIA_X509_EXT.4.3){.abbr} [FIA\_X509\_EXT.4.3](#FIA_X509_EXT.4.3){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall be capable of authenticating [EST](#abbr_EST) The [TSF](#abbr_TSF) shall be capable of authenticating [EST](#abbr_EST) requests using HTTP Basic Authentication with a username and password as requests using HTTP Basic Authentication with a username and password as specified by RFC 7030 Section 3.2.3. specified by RFC 7030 Section 3.2.3. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_X509_EXT.4.4 .reqid} ::: {#FIA_X509_EXT.4.4 .reqid} [FIA\_X509\_EXT.4.4](#FIA_X509_EXT.4.4){.abbr} [FIA\_X509\_EXT.4.4](#FIA_X509_EXT.4.4){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall perform authentication of the The [TSF](#abbr_TSF) shall perform authentication of the [EST](#abbr_EST) server using an Explicit Trust Anchor following the [EST](#abbr_EST) server using an Explicit Trust Anchor following the rules described in RFC 7030, section 3.6.1. rules described in RFC 7030, section 3.6.1. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[[EST](#abbr_EST) also uses [Application Note: ]{.note-header}[[EST](#abbr_EST) also uses [HTTPS](#abbr_HTTPS) as specified in [HTTPS](#abbr_HTTPS) as specified in [FCS\_HTTPS\_EXT.1](#FCS_HTTPS_EXT.1) to establish a secure connection [FCS\_HTTPS\_EXT.1](#FCS_HTTPS_EXT.1) to establish a secure connection to an [EST](#abbr_EST) server. The separate Trust Anchor Database to an [EST](#abbr_EST) server. The separate Trust Anchor Database dedicated to [EST](#abbr_EST) operations is described as Explicit Trust dedicated to [EST](#abbr_EST) operations is described as Explicit Trust Anchors in RFC 7030. ]{.note} Anchors in RFC 7030. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_X509_EXT.4.5 .reqid} ::: {#FIA_X509_EXT.4.5 .reqid} [FIA\_X509\_EXT.4.5](#FIA_X509_EXT.4.5){.abbr} [FIA\_X509\_EXT.4.5](#FIA_X509_EXT.4.5){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall be capable of requesting server-provided The [TSF](#abbr_TSF) shall be capable of requesting server-provided private keys as specified in RFC 7030 Section 4.4. private keys as specified in RFC 7030 Section 4.4. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_X509_EXT.4.6 .reqid} ::: {#FIA_X509_EXT.4.6 .reqid} [FIA\_X509\_EXT.4.6](#FIA_X509_EXT.4.6){.abbr} [FIA\_X509\_EXT.4.6](#FIA_X509_EXT.4.6){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall be capable of updating its The [TSF](#abbr_TSF) shall be capable of updating its [EST](#abbr_EST)-specific Trust Anchor Database using the \"Root [EST](#abbr_EST)-specific Trust Anchor Database using the \"Root [CA](#abbr_CA) Key Update\" process described in RFC 7030 Section 4.1.3. [CA](#abbr_CA) Key Update\" process described in RFC 7030 Section 4.1.3. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_X509_EXT.4.7 .reqid} ::: {#FIA_X509_EXT.4.7 .reqid} [FIA\_X509\_EXT.4.7](#FIA_X509_EXT.4.7){.abbr} [FIA\_X509\_EXT.4.7](#FIA_X509_EXT.4.7){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall generate a Certificate Request Message for The [TSF](#abbr_TSF) shall generate a Certificate Request Message for [EST](#abbr_EST) as specified in RFC 2986 and be able to provide the [EST](#abbr_EST) as specified in RFC 2986 and be able to provide the following information in the request: public key and \[**selection**: following information in the request: public key and \[**selection**: *device-specific information*, *Common Name*, *Organization*, | [device-specific information]{#_s_321 .selectable-content}, [Common *Organizational Unit*, *Country*\]. | Name]{#_s_322 .selectable-content}, [Organization]{#_s_323 > .selectable-content}, [Organizational Unit]{#_s_324 > .selectable-content}, [Country]{#_s_325 .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The public key referenced is the [Application Note: ]{.note-header}[The public key referenced is the public key portion of the public-private key pair generated by the public key portion of the public-private key pair generated by the [TOE](#abbr_TOE) as specified in [FCS\_CKM.1](#FCS_CKM.1).]{.note} [TOE](#abbr_TOE) as specified in [FCS\_CKM.1](#FCS_CKM.1).]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_X509_EXT.4.8 .reqid} ::: {#FIA_X509_EXT.4.8 .reqid} [FIA\_X509\_EXT.4.8](#FIA_X509_EXT.4.8){.abbr} [FIA\_X509\_EXT.4.8](#FIA_X509_EXT.4.8){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall validate the chain of certificates from the The [TSF](#abbr_TSF) shall validate the chain of certificates from the Root [CA](#abbr_CA) certificate in the Trust Anchor Database to the Root [CA](#abbr_CA) certificate in the Trust Anchor Database to the [EST](#abbr_EST) Server [CA](#abbr_CA) certificate upon receiving a [EST](#abbr_EST) Server [CA](#abbr_CA) certificate upon receiving a [CA](#abbr_CA) Certificates Response. [CA](#abbr_CA) Certificates Response. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_X509\_EXT.4](#FIA_X509_EXT.4):\ | ::: {.component-activity-header} > [FIA\_X509\_EXT.4](#FIA_X509_EXT.4) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall check to ensure that the operational guidance The evaluator shall check to ensure that the operational guidance contains instructions on requesting certificates from an contains instructions on requesting certificates from an [EST](#abbr_EST) server, including generating a Certificate Request [EST](#abbr_EST) server, including generating a Certificate Request Message.\ Message.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluator shall also perform the following tests. Other tests are The evaluator shall also perform the following tests. Other tests are performed in conjunction with the evaluation activity listed in the performed in conjunction with the evaluation activity listed in the Package for Transport Layer Security.\ Package for Transport Layer Security.\ > []{.testlist-} - **Test 1:** The evaluator shall use the operational guidance to | - [Test 98[](#_t_93){.definition}]{#_t_93}: The evaluator shall use cause the [TOE](#abbr_TOE) to request certificate enrollment from an | the operational guidance to cause the [TOE](#abbr_TOE) to request [EST](#abbr_EST) server using the simple enrollment method described | certificate enrollment from an [EST](#abbr_EST) server using the in RFC 7030 Section 4.2, authenticating the certificate request to | simple enrollment method described in RFC 7030 Section 4.2, the server using an existing certificate and private key as | authenticating the certificate request to the server using an described by RFC 7030 Section 3.3.2. The evaluator shall confirm | existing certificate and private key as described by RFC 7030 that the resulting certificate is successfully obtained and | Section 3.3.2. The evaluator shall confirm that the resulting installed in the [TOE](#abbr_TOE) key store. < - **Test 2:** The evaluator shall use the operational guidance to < cause the [TOE](#abbr_TOE) to request certificate enrollment from an < [EST](#abbr_EST) server using the simple enrollment method described < in RFC 7030 Section 4.2, authenticating the certificate request to < the server using a username and password as described by RFC 7030 < Section 3.2.3. The evaluator shall confirm that the resulting < certificate is successfully obtained and installed in the certificate is successfully obtained and installed in the [TOE](#abbr_TOE) key store. [TOE](#abbr_TOE) key store. - **Test 3:** The evaluator shall modify the [EST](#abbr_EST) server | - [Test 99[](#_t_94){.definition}]{#_t_94}: The evaluator shall use to return a certificate containing a different public key than the | the operational guidance to cause the [TOE](#abbr_TOE) to request key included in the [TOE](#abbr_TOE)'s certificate request. The | certificate enrollment from an [EST](#abbr_EST) server using the evaluator shall use the operational guidance to cause the | simple enrollment method described in RFC 7030 Section 4.2, [TOE](#abbr_TOE) to request certificate enrollment from an | authenticating the certificate request to the server using a [EST](#abbr_EST) server. The evaluator shall confirm that the | username and password as described by RFC 7030 Section 3.2.3. The [TOE](#abbr_TOE) does not accept the resulting certificate since the | evaluator shall confirm that the resulting certificate is public key in the issued certificate does not match the public key < in the certificate request. < - **Test 4:** The evaluator shall configure the [EST](#abbr_EST) < server or use a man-in-the-middle tool to present a server < certificate to the [TOE](#abbr_TOE) that is present in the < [TOE](#abbr_TOE) general Trust Anchor Database but not its < [EST](#abbr_EST)-specific Trust Anchor Database. The evaluator shall < cause the [TOE](#abbr_TOE) to request certificate enrollment from < the [EST](#abbr_EST) server. The evaluator shall verify that the < request is not successful. < - **Test 5:** The evaluator shall configure the [EST](#abbr_EST) < server or use a man-in-the-middle tool to present an invalid < certificate. The evaluator shall cause the [TOE](#abbr_TOE) to < request certificate enrollment from the [EST](#abbr_EST) server. The < evaluator shall verify that the request is not successful The < evaluator shall configure the [EST](#abbr_EST) server or use a < man-in-the-middle tool to present a certificate that does not have < the [CMC](#abbr_CMC) [RA](#abbr_RA) purpose and verify that requests < to the [EST](#abbr_EST) server fail. The tester shall repeat the < test using a valid certificate and a certificate that contains the < [CMC](#abbr_CMC) [RA](#abbr_RA) purpose and verify that the < certificate enrollment requests succeed. < - **Test 6:** The evaluator shall use a packet sniffing tool between < the [TOE](#abbr_TOE) and an [EST](#abbr_EST) server. The evaluator < shall turn on the sniffing tool and cause the [TOE](#abbr_TOE) to < request certificate enrollment from an [EST](#abbr_EST) server. The < evaluator shall verify that the [EST](#abbr_EST) protocol < interaction occurs over a Transport Layer Security < ([TLS](#abbr_TLS)) protected connection. The evaluator is not < expected to decrypt the connection but rather observe that the < packets conform to the [TLS](#abbr_TLS) protocol format. < - **Test 7:** The evaluator shall use the operational guidance to < cause the [TOE](#abbr_TOE) to request a server-provided private key < and certificate from an [EST](#abbr_EST) server. The evaluator shall < confirm that the resulting private key and certificate are < successfully obtained and installed in the [TOE](#abbr_TOE) key successfully obtained and installed in the [TOE](#abbr_TOE) key store. store. - **Test 8:** The evaluator shall modify the [EST](#abbr_EST) server | - [Test 100[](#_t_95){.definition}]{#_t_95}: The evaluator shall to, in response to a server-provided private key and certificate | modify the [EST](#abbr_EST) server to return a certificate request, return a private key that does not correspond with the | containing a different public key than the key included in the public key in the returned certificate. The evaluator shall use the | [TOE](#abbr_TOE)'s certificate request. The evaluator shall use the operational guidance to cause the [TOE](#abbr_TOE) to request a | operational guidance to cause the [TOE](#abbr_TOE) to request server-provided private key and certificate. The evaluator shall | certificate enrollment from an [EST](#abbr_EST) server. The confirm that the [TOE](#abbr_TOE) does not accept the resulting | evaluator shall confirm that the [TOE](#abbr_TOE) does not accept private key and certificate since the private key and public key do | the resulting certificate since the public key in the issued not correspond. | certificate does not match the public key in the certificate - **Test 9:** The evaluator shall configure the [EST](#abbr_EST) | request. server to provide a \"Root [CA](#abbr_CA) Key Update\" as described | - [Test 101[](#_t_96){.definition}]{#_t_96}: The evaluator shall in RFC 7030 Section 4.1.3. The evaluator shall cause the | configure the [EST](#abbr_EST) server or use a man-in-the-middle [TOE](#abbr_TOE) to request [CA](#abbr_CA) certificates from the | tool to present a server certificate to the [TOE](#abbr_TOE) that is [EST](#abbr_EST) server and shall confirm that the | present in the [TOE](#abbr_TOE) general Trust Anchor Database but [EST](#abbr_EST)-specific Trust Anchor Database is updated with the | not its [EST](#abbr_EST)-specific Trust Anchor Database. The new trust anchor. | evaluator shall cause the [TOE](#abbr_TOE) to request certificate - **Test 10:** The evaluator shall configure the [EST](#abbr_EST) | enrollment from the [EST](#abbr_EST) server. The evaluator shall server to provide a \"Root [CA](#abbr_CA) Key Update\" as described | verify that the request is not successful. in RFC 7030 Section 4.1.3, but shall modify part of the NewWithOld | - [Test 102[](#_t_97){.definition}]{#_t_97}: The evaluator shall certificate's generated signature. The evaluator shall cause the | configure the [EST](#abbr_EST) server or use a man-in-the-middle [TOE](#abbr_TOE) to request [CA](#abbr_CA) certificates from the | tool to present an invalid certificate. The evaluator shall cause [EST](#abbr_EST) server and shall confirm that the | the [TOE](#abbr_TOE) to request certificate enrollment from the [EST](#abbr_EST)-specific Trust Anchor Database is not updated with | [EST](#abbr_EST) server. The evaluator shall verify that the request the new trust anchor since the signature did not verify. | is not successful The evaluator shall configure the [EST](#abbr_EST) - **Test 11:** The evaluator shall use the operational guidance to | server or use a man-in-the-middle tool to present a certificate that cause the [TOE](#abbr_TOE) to generate a certificate request | does not have the [CMC](#abbr_CMC) [RA](#abbr_RA) purpose and verify message. The evaluator shall capture the generated message and | that requests to the [EST](#abbr_EST) server fail. The tester shall ensure that it conforms to the format specified by RFC 2986. The | repeat the test using a valid certificate and a certificate that evaluator shall confirm that the certificate request provides the | contains the [CMC](#abbr_CMC) [RA](#abbr_RA) purpose and verify that public key and other required information, including any necessary | the certificate enrollment requests succeed. user-input information. | - [Test 103[](#_t_98){.definition}]{#_t_98}: The evaluator shall use a | packet sniffing tool between the [TOE](#abbr_TOE) and an \ | [EST](#abbr_EST) server. The evaluator shall turn on the sniffing > tool and cause the [TOE](#abbr_TOE) to request certificate > enrollment from an [EST](#abbr_EST) server. The evaluator shall > verify that the [EST](#abbr_EST) protocol interaction occurs over a > Transport Layer Security ([TLS](#abbr_TLS)) protected connection. > The evaluator is not expected to decrypt the connection but rather > observe that the packets conform to the [TLS](#abbr_TLS) protocol > format. > - [Test 104[](#_t_99){.definition}]{#_t_99}: The evaluator shall use > the operational guidance to cause the [TOE](#abbr_TOE) to request a > server-provided private key and certificate from an [EST](#abbr_EST) > server. The evaluator shall confirm that the resulting private key > and certificate are successfully obtained and installed in the > [TOE](#abbr_TOE) key store. > - [Test 105[](#_t_100){.definition}]{#_t_100}: The evaluator shall > modify the [EST](#abbr_EST) server to, in response to a > server-provided private key and certificate request, return a > private key that does not correspond with the public key in the > returned certificate. The evaluator shall use the operational > guidance to cause the [TOE](#abbr_TOE) to request a server-provided > private key and certificate. The evaluator shall confirm that the > [TOE](#abbr_TOE) does not accept the resulting private key and > certificate since the private key and public key do not correspond. > - [Test 106[](#_t_101){.definition}]{#_t_101}: The evaluator shall > configure the [EST](#abbr_EST) server to provide a \"Root > [CA](#abbr_CA) Key Update\" as described in RFC 7030 Section 4.1.3. > The evaluator shall cause the [TOE](#abbr_TOE) to request > [CA](#abbr_CA) certificates from the [EST](#abbr_EST) server and > shall confirm that the [EST](#abbr_EST)-specific Trust Anchor > Database is updated with the new trust anchor. > - [Test 107[](#_t_102){.definition}]{#_t_102}: The evaluator shall > configure the [EST](#abbr_EST) server to provide a \"Root > [CA](#abbr_CA) Key Update\" as described in RFC 7030 Section 4.1.3, > but shall modify part of the NewWithOld certificate's generated > signature. The evaluator shall cause the [TOE](#abbr_TOE) to request > [CA](#abbr_CA) certificates from the [EST](#abbr_EST) server and > shall confirm that the [EST](#abbr_EST)-specific Trust Anchor > Database is not updated with the new trust anchor since the > signature did not verify. > - [Test 108[](#_t_103){.definition}]{#_t_103}: The evaluator shall use > the operational guidance to cause the [TOE](#abbr_TOE) to generate a > certificate request message. The evaluator shall capture the > generated message and ensure that it conforms to the format > specified by RFC 2986. The evaluator shall confirm that the > certificate request provides the public key and other required > information, including any necessary user-input information. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FIA_X509_EXT.5 .comp} ::: {#FIA_X509_EXT.5 .comp} #### FIA\_X509\_EXT.5 X.509 Certificate Requests #### FIA\_X509\_EXT.5 X.509 Certificate Requests ::: {.element} ::: {.element} ::: {#FIA_X509_EXT.5.1 .reqid} ::: {#FIA_X509_EXT.5.1 .reqid} [FIA\_X509\_EXT.5.1](#FIA_X509_EXT.5.1){.abbr} [FIA\_X509\_EXT.5.1](#FIA_X509_EXT.5.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall generate a Certificate Request Message as The [TSF](#abbr_TSF) shall generate a Certificate Request Message as specified in RFC 2986 and be able to provide the following information specified in RFC 2986 and be able to provide the following information in the request: public key and \[**selection**: *device-specific | in the request: public key and \[**selection**: [device-specific information*, *Common Name*, *Organization*, *Organizational Unit*, | information]{#_s_326 .selectable-content}, [Common Name]{#_s_327 *Country*\]. | .selectable-content}, [Organization]{#_s_328 .selectable-content}, > [Organizational Unit]{#_s_329 .selectable-content}, [Country]{#_s_330 > .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The public key referenced in [Application Note: ]{.note-header}[The public key referenced in [FIA\_X509\_EXT.5.1](#FIA_X509_EXT.5.1) is the public key portion of the [FIA\_X509\_EXT.5.1](#FIA_X509_EXT.5.1) is the public key portion of the public-private key pair generated by the [TOE](#abbr_TOE) as specified public-private key pair generated by the [TOE](#abbr_TOE) as specified in [FCS\_CKM.1](#FCS_CKM.1). The trusted channel requirements do not in [FCS\_CKM.1](#FCS_CKM.1). The trusted channel requirements do not apply to communication with the [CA](#abbr_CA) for the certificate apply to communication with the [CA](#abbr_CA) for the certificate request/response messages.\ request/response messages.\ \ \ As Enrollment over Secure Transport ([EST](#abbr_EST)) is a new standard As Enrollment over Secure Transport ([EST](#abbr_EST)) is a new standard that has not yet been widely adopted, this requirement is included as an that has not yet been widely adopted, this requirement is included as an interim objective requirement in order to allow developers to interim objective requirement in order to allow developers to distinguish those products which have do have the ability to generate distinguish those products which have do have the ability to generate Certificate Request Messages but do not yet implement [EST](#abbr_EST). Certificate Request Messages but do not yet implement [EST](#abbr_EST). ]{.note} ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_X509_EXT.5.2 .reqid} ::: {#FIA_X509_EXT.5.2 .reqid} [FIA\_X509\_EXT.5.2](#FIA_X509_EXT.5.2){.abbr} [FIA\_X509\_EXT.5.2](#FIA_X509_EXT.5.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall validate the chain of certificates from the The [TSF](#abbr_TSF) shall validate the chain of certificates from the Root [CA](#abbr_CA) upon receiving the [CA](#abbr_CA) Certificate Root [CA](#abbr_CA) upon receiving the [CA](#abbr_CA) Certificate Response. Response. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_X509\_EXT.5](#FIA_X509_EXT.5):\ | ::: {.component-activity-header} > [FIA\_X509\_EXT.5](#FIA_X509_EXT.5) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} If the [ST](#abbr_ST) author selects \"device-specific information\", If the [ST](#abbr_ST) author selects \"device-specific information\", the evaluator shall verify that the [TSS](#abbr_TSS) contains a the evaluator shall verify that the [TSS](#abbr_TSS) contains a description of the device-specific fields used in certificate requests.\ description of the device-specific fields used in certificate requests.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall check to ensure that the operational guidance The evaluator shall check to ensure that the operational guidance contains instructions on generating a Certificate Request Message. If contains instructions on generating a Certificate Request Message. If the [ST](#abbr_ST) author selects \"Common Name\", \"Organization\", the [ST](#abbr_ST) author selects \"Common Name\", \"Organization\", \"Organizational Unit\", or \"Country\", the evaluator shall ensure that \"Organizational Unit\", or \"Country\", the evaluator shall ensure that this guidance includes instructions for establishing these fields before this guidance includes instructions for establishing these fields before creating the certificate request message.\ creating the certificate request message.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: The evaluator shall also perform the following tests: | ::: {.ea} > The evaluator shall also perform the following tests: []{.testlist-} - **Test 1:** The evaluator shall use the operational guidance to | - [Test 109[](#_t_104){.definition}]{#_t_104}: The evaluator shall use cause the [TOE](#abbr_TOE) to generate a certificate request | the operational guidance to cause the [TOE](#abbr_TOE) to generate a message. The evaluator shall capture the generated message and | certificate request message. The evaluator shall capture the ensure that it conforms to the format specified. The evaluator shall | generated message and ensure that it conforms to the format confirm that the certificate request provides the public key and | specified. The evaluator shall confirm that the certificate request other required information, including any necessary user-input | provides the public key and other required information, including information. | any necessary user-input information. - **Test 2:** The evaluator shall demonstrate that validating a | - [Test 110[](#_t_105){.definition}]{#_t_105}: The evaluator shall certificate response message without a valid certification path | demonstrate that validating a certificate response message without a results in the function failing. The evaluator shall then load a | valid certification path results in the function failing. The certificate or certificates as trusted CAs needed to validate the | evaluator shall then load a certificate or certificates as trusted certificate response message, and demonstrate that the function | CAs needed to validate the certificate response message, and succeeds. The evaluator shall then delete one of the certificates, | demonstrate that the function succeeds. The evaluator shall then and show that the function fails. | delete one of the certificates, and show that the function fails. < \ < ::: ::: ::: ::: ::: ::: ::: ::: ### A.2.5 Class: Security Management (FMT) {#fmt-obj .indexable data-level="3"} | ### A.2.5 Class: Security Management (FMT) {#fmt-objective .indexable data-level="3"} ::: {#FMT_SMF_EXT.3 .comp} ::: {#FMT_SMF_EXT.3 .comp} #### FMT\_SMF\_EXT.3 Current Administrator #### FMT\_SMF\_EXT.3 Current Administrator ::: {.element} ::: {.element} ::: {#FMT_SMF_EXT.3.1 .reqid} ::: {#FMT_SMF_EXT.3.1 .reqid} [FMT\_SMF\_EXT.3.1](#FMT_SMF_EXT.3.1){.abbr} [FMT\_SMF\_EXT.3.1](#FMT_SMF_EXT.3.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide a mechanism that allows users to view The [TSF](#abbr_TSF) shall provide a mechanism that allows users to view a list of currently authorized administrators and the management a list of currently authorized administrators and the management functions that each administrator is authorized to perform. functions that each administrator is authorized to perform. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FMT\_SMF\_EXT.3](#FMT_SMF_EXT.3):\ | ::: {.component-activity-header} > [FMT\_SMF\_EXT.3](#FMT_SMF_EXT.3) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluator shall cause the [TOE](#abbr_TOE) to be enrolled into The evaluator shall cause the [TOE](#abbr_TOE) to be enrolled into management. The evaluator shall then invoke this mechanism and verify management. The evaluator shall then invoke this mechanism and verify the ability to view that the device has been enrolled, and view the the ability to view that the device has been enrolled, and view the management functions that the administrator is authorized to perform.\ | management functions that the administrator is authorized to perform. ::: ::: ::: ::: ::: ::: ::: ::: ### A.2.6 Class: Protection of the TSF (FPT) {#fpt-obj .indexable data-level="3"} | ### A.2.6 Class: Protection of the TSF (FPT) {#fpt-objective .indexable data-level="3 ::: {#FPT_AEX_EXT.5 .comp} ::: {#FPT_AEX_EXT.5 .comp} #### FPT\_AEX\_EXT.5 Kernel Address Space Layout Randomization #### FPT\_AEX\_EXT.5 Kernel Address Space Layout Randomization ::: {.element} ::: {.element} ::: {#FPT_AEX_EXT.5.1 .reqid} ::: {#FPT_AEX_EXT.5.1 .reqid} [FPT\_AEX\_EXT.5.1](#FPT_AEX_EXT.5.1){.abbr} [FPT\_AEX\_EXT.5.1](#FPT_AEX_EXT.5.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide address space layout randomization The [TSF](#abbr_TSF) shall provide address space layout randomization ([ASLR](#abbr_ASLR)) to the kernel. ([ASLR](#abbr_ASLR)) to the kernel. ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FPT_AEX_EXT.5.2 .reqid} ::: {#FPT_AEX_EXT.5.2 .reqid} [FPT\_AEX\_EXT.5.2](#FPT_AEX_EXT.5.2){.abbr} [FPT\_AEX\_EXT.5.2](#FPT_AEX_EXT.5.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The base address of any kernel-space memory mapping will consist of The base address of any kernel-space memory mapping will consist of \[**assignment**: [number greater than or equal to \[**assignment**: [number greater than or equal to 4]{.assignable-content}\] unpredictable bits. 4]{.assignable-content}\] unpredictable bits. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The unpredictable bits may be [Application Note: ]{.note-header}[The unpredictable bits may be provided by the [TSF](#abbr_TSF) [RBG](#abbr_RBG) (as specified in provided by the [TSF](#abbr_TSF) [RBG](#abbr_RBG) (as specified in [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1)). ]{.note} [FCS\_RBG\_EXT.1](#FCS_RBG_EXT.1)). ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_AEX\_EXT.5](#FPT_AEX_EXT.5):\ | ::: {.component-activity-header} > [FPT\_AEX\_EXT.5](#FPT_AEX_EXT.5) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure that the [TSS](#abbr_TSS) section of the The evaluator shall ensure that the [TSS](#abbr_TSS) section of the [ST](#abbr_ST) describes how the bits are generated and provides a [ST](#abbr_ST) describes how the bits are generated and provides a justification as to why those bits are unpredictable.\ justification as to why those bits are unpredictable.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following test require the developer **Evaluation Activity Note:** The following test require the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products. tools that are typically not found on consumer Mobile Device products. > []{.testlist-} - **Test 1:** The evaluator shall reboot the [TOE](#abbr_TOE) six | - [Test 111[](#_t_112){.definition}]{#_t_112}: The evaluator shall times. For each of these reboots, the evaluator shall examine memory | reboot the [TOE](#abbr_TOE) six times. For each of these reboots, mapping locations of the kernel. The evaluator must ensure that for | the evaluator shall examine memory mapping locations of the kernel. at least five reboots the memory mappings are not placed in the same | The evaluator must ensure that for at least five reboots the memory location on both devices. | mappings are not placed in the same location on both devices. < \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_AEX_EXT.6 .comp} ::: {#FPT_AEX_EXT.6 .comp} #### FPT\_AEX\_EXT.6 Write or Execute Memory Page Permissions #### FPT\_AEX\_EXT.6 Write or Execute Memory Page Permissions ::: {.element} ::: {.element} ::: {#FPT_AEX_EXT.6.1 .reqid} ::: {#FPT_AEX_EXT.6.1 .reqid} [FPT\_AEX\_EXT.6.1](#FPT_AEX_EXT.6.1){.abbr} [FPT\_AEX\_EXT.6.1](#FPT_AEX_EXT.6.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall prevent write and execute permissions from The [TSF](#abbr_TSF) shall prevent write and execute permissions from being simultaneously granted to any page of physical memory being simultaneously granted to any page of physical memory \[**selection**: *with no exceptions*, *\[**assignment**: [specific | \[**selection**: [with no exceptions]{#_s_389 .selectable-content}, [ exceptions]{.assignable-content}\]*\]. | \[**assignment**: [specific exceptions]{.assignable-content}\]]{#_s_390 > .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[Memory used for just-in-time (JIT) [Application Note: ]{.note-header}[Memory used for just-in-time (JIT) compilation is anticipated as an exception in this requirement; if so, compilation is anticipated as an exception in this requirement; if so, the [ST](#abbr_ST) author must address how this exception is permitted. the [ST](#abbr_ST) author must address how this exception is permitted. It is expected that the memory management unit will transition the It is expected that the memory management unit will transition the system to a non-operational state if any violation is detected in kernel system to a non-operational state if any violation is detected in kernel memory space.]{.note} memory space.]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_AEX\_EXT.6](#FPT_AEX_EXT.6):\ | ::: {.component-activity-header} > [FPT\_AEX\_EXT.6](#FPT_AEX_EXT.6) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure that the [TSS](#abbr_TSS) describes how the The evaluator shall ensure that the [TSS](#abbr_TSS) describes how the operating system of the application processor prevents all processes operating system of the application processor prevents all processes executing in a non-privileged execution domain from achieving write and executing in a non-privileged execution domain from achieving write and execute permissions on any page of memory (with only specified execute permissions on any page of memory (with only specified exceptions). The evaluator shall ensure that the [TSS](#abbr_TSS) exceptions). The evaluator shall ensure that the [TSS](#abbr_TSS) describes how such processes are unable to request pages of memory with describes how such processes are unable to request pages of memory with such permissions, and how they are unable to change permissions to both such permissions, and how they are unable to change permissions to both write and execute on any pages already allocated to them.\ write and execute on any pages already allocated to them.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_AEX_EXT.7 .comp} ::: {#FPT_AEX_EXT.7 .comp} #### FPT\_AEX\_EXT.7 Heap Overflow Protection #### FPT\_AEX\_EXT.7 Heap Overflow Protection ::: {.element} ::: {.element} ::: {#FPT_AEX_EXT.7.1 .reqid} ::: {#FPT_AEX_EXT.7.1 .reqid} [FPT\_AEX\_EXT.7.1](#FPT_AEX_EXT.7.1){.abbr} [FPT\_AEX\_EXT.7.1](#FPT_AEX_EXT.7.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall include heap-based buffer overflow The [TSF](#abbr_TSF) shall include heap-based buffer overflow protections in the runtime environment it provides to processes that protections in the runtime environment it provides to processes that execute on the application processor. execute on the application processor. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[These heap-based buffer overflow [Application Note: ]{.note-header}[These heap-based buffer overflow protections are expected to ensure the integrity of heap metadata such protections are expected to ensure the integrity of heap metadata such as memory addresses or offsets recorded by the heap implementation to as memory addresses or offsets recorded by the heap implementation to manage memory blocks. This includes chunk headers, look-aside lists, and manage memory blocks. This includes chunk headers, look-aside lists, and other data structures used to track the state and location of memory other data structures used to track the state and location of memory blocks managed by the heap.]{.note} blocks managed by the heap.]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_AEX\_EXT.7](#FPT_AEX_EXT.7):\ | ::: {.component-activity-header} > [FPT\_AEX\_EXT.7](#FPT_AEX_EXT.7) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) enumerates the heap The evaluator shall verify that the [TSS](#abbr_TSS) enumerates the heap implementations provided to userspace processes. The evaluator shall implementations provided to userspace processes. The evaluator shall ensure that the [TSS](#abbr_TSS) lists all types of heap metadata and ensure that the [TSS](#abbr_TSS) lists all types of heap metadata and identifies how the integrity of each type of metadata is ensured. The identifies how the integrity of each type of metadata is ensured. The evaluator shall ensure that the [TSS](#abbr_TSS) identifies all fields evaluator shall ensure that the [TSS](#abbr_TSS) identifies all fields within each type of metadata and identifies how the integrity of these within each type of metadata and identifies how the integrity of these fields is ensured. The evaluator shall verify that the [TSS](#abbr_TSS) fields is ensured. The evaluator shall verify that the [TSS](#abbr_TSS) identifies the manner in which an error condition is entered when a heap identifies the manner in which an error condition is entered when a heap overflow is detected and the resulting actions taken by the overflow is detected and the resulting actions taken by the [TSF](#abbr_TSF).\ [TSF](#abbr_TSF).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} For each heap implementation, the evaluator shall write, or the For each heap implementation, the evaluator shall write, or the developer shall provide access to, an application, which allocates developer shall provide access to, an application, which allocates memory from the heap and then writes arbitrary data significantly beyond memory from the heap and then writes arbitrary data significantly beyond the end of the allocated buffer. The evaluator shall attempt to execute the end of the allocated buffer. The evaluator shall attempt to execute this application and verify that the write is not allowed.\ | this application and verify that the write is not allowed. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_BBD_EXT.1 .comp} ::: {#FPT_BBD_EXT.1 .comp} #### FPT\_BBD\_EXT.1 Application Processor Mediation #### FPT\_BBD\_EXT.1 Application Processor Mediation ::: {.element} ::: {.element} ::: {#FPT_BBD_EXT.1.1 .reqid} ::: {#FPT_BBD_EXT.1.1 .reqid} [FPT\_BBD\_EXT.1.1](#FPT_BBD_EXT.1.1){.abbr} [FPT\_BBD\_EXT.1.1](#FPT_BBD_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall prevent code executing on any baseband The [TSF](#abbr_TSF) shall prevent code executing on any baseband processor ([BP](#abbr_BP)) from accessing application processor processor ([BP](#abbr_BP)) from accessing application processor ([AP](#abbr_AP)) resources except when mediated by the [AP](#abbr_AP). ([AP](#abbr_AP)) resources except when mediated by the [AP](#abbr_AP). ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ These resources include:\ [Application Note: ]{.note-header}[ These resources include:\ ]{.note} ]{.note} - Volatile and non-volatile memory - Volatile and non-volatile memory - Control of and data from integrated and non-integrated peripherals - Control of and data from integrated and non-integrated peripherals (e.g. [USB](#abbr_USB) controllers, touch screen controllers, LCD (e.g. [USB](#abbr_USB) controllers, touch screen controllers, LCD controller, codecs) controller, codecs) - Control of and data from integrated and non-integrated I/O sensors - Control of and data from integrated and non-integrated I/O sensors (e.g. camera, light, microphone, [GPS](#abbr_GPS), accelerometers, (e.g. camera, light, microphone, [GPS](#abbr_GPS), accelerometers, geomagnetic field sensors) geomagnetic field sensors) \ \ Mobile devices are becoming increasingly complex having an application Mobile devices are becoming increasingly complex having an application processor that runs an operating system and user applications and processor that runs an operating system and user applications and separate baseband processor(s) that handle cellular and other wireless separate baseband processor(s) that handle cellular and other wireless network connectivity.\ network connectivity.\ \ \ - The application processor within most modern Mobile Devices is a - The application processor within most modern Mobile Devices is a system on a chip (SoC) that integrates, for example, | system on a chip ([SoC](#abbr_SoC)) that integrates, for example, [CPU](#abbr_CPU)/[GPU](#abbr_GPU) cores and memory interface [CPU](#abbr_CPU)/[GPU](#abbr_GPU) cores and memory interface electronics into a single, power-efficient package. electronics into a single, power-efficient package. - Baseband processors are becoming increasingly complex themselves - Baseband processors are becoming increasingly complex themselves delivering voice encoding alongside multiple independent radios delivering voice encoding alongside multiple independent radios ([LTE](#abbr_LTE), Wi-Fi, Bluetooth, [FM](#abbr_FM), ([LTE](#abbr_LTE), Wi-Fi, Bluetooth, [FM](#abbr_FM), [GPS](#abbr_GPS)) in a single package containing multiple CPUs and | [GPS](#abbr_GPS)) in a single package containing multiple DSPs. | [CPUs](#abbr_CPU) and DSPs. \ \ Thus, the baseband processor(s) in these requirements include such Thus, the baseband processor(s) in these requirements include such integrated SoCs and include any radio processors (integrated or not) on | integrated [SoCs](#abbr_SoC) and include any radio processors the Mobile Device.\ | (integrated or not) on the Mobile Device.\ \ \ All other requirements mostly, except where noted, apply to All other requirements mostly, except where noted, apply to firmware/software on the application processor, but future requirements firmware/software on the application processor, but future requirements (notably, all Integrity, Access Control, and Anti-Exploitation (notably, all Integrity, Access Control, and Anti-Exploitation requirements) will apply to application processors and baseband requirements) will apply to application processors and baseband processors. processors. ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_BBD\_EXT.1](#FPT_BBD_EXT.1):\ | ::: {.component-activity-header} > [FPT\_BBD\_EXT.1](#FPT_BBD_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure that the [TSS](#abbr_TSS) section of the The evaluator shall ensure that the [TSS](#abbr_TSS) section of the [ST](#abbr_ST) describes at a high level how the processors on the [ST](#abbr_ST) describes at a high level how the processors on the Mobile Device interact, including which bus protocols they use to Mobile Device interact, including which bus protocols they use to communicate, any other devices operating on that bus (peripherals and communicate, any other devices operating on that bus (peripherals and sensors), and identification of any shared resources. The evaluator sensors), and identification of any shared resources. The evaluator shall verify that the design described in the [TSS](#abbr_TSS) does not shall verify that the design described in the [TSS](#abbr_TSS) does not permit any BPs from accessing any of the peripherals and sensors or from | permit any [BPs](#abbr_BP) from accessing any of the peripherals and accessing main memory (volatile and non-volatile) used by the | sensors or from accessing main memory (volatile and non-volatile) used [AP](#abbr_AP). In particular, the evaluator shall ensure that the | by the [AP](#abbr_AP). In particular, the evaluator shall ensure that design prevents modification of executable memory of the [AP](#abbr_AP) | the design prevents modification of executable memory of the by the [BP](#abbr_BP).\ | [AP](#abbr_AP) by the [BP](#abbr_BP).\ \ < \ \ > ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_BLT_EXT.1 .comp} ::: {#FPT_BLT_EXT.1 .comp} #### FPT\_BLT\_EXT.1 Limitation of Bluetooth Profile Support #### FPT\_BLT\_EXT.1 Limitation of Bluetooth Profile Support ::: {.element} ::: {.element} ::: {#FPT_BLT_EXT.1.1 .reqid} ::: {#FPT_BLT_EXT.1.1 .reqid} [FPT\_BLT\_EXT.1.1](#FPT_BLT_EXT.1.1){.abbr} [FPT\_BLT\_EXT.1.1](#FPT_BLT_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall disable support for \[**assignment**: [list The [TSF](#abbr_TSF) shall disable support for \[**assignment**: [list of Bluetooth profiles]{.assignable-content}\] Bluetooth profiles when of Bluetooth profiles]{.assignable-content}\] Bluetooth profiles when they are not currently being used by an application on the Mobile they are not currently being used by an application on the Mobile Device, and shall require explicit user action to enable them. Device, and shall require explicit user action to enable them. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ Some Bluetooth services incur more [Application Note: ]{.note-header}[ Some Bluetooth services incur more serious consequences if unauthorized remote devices gain access to them. serious consequences if unauthorized remote devices gain access to them. Such services should be protected by measures like disabling support for Such services should be protected by measures like disabling support for the associated Bluetooth profile unless it is actively being used by an the associated Bluetooth profile unless it is actively being used by an application on the Mobile Device (in order to prevent discovery by a application on the Mobile Device (in order to prevent discovery by a Service Discovery Protocol search), and then requiring explicit user Service Discovery Protocol search), and then requiring explicit user action to enable those profiles in order to use the services. It may be action to enable those profiles in order to use the services. It may be further appropriate to require additional user action before granting a further appropriate to require additional user action before granting a remote device access to that service.\ remote device access to that service.\ \ \ For example, it may be appropriate to disable the OBEX Push Profile For example, it may be appropriate to disable the OBEX Push Profile until a user on the Mobile Device pushes a button in an application until a user on the Mobile Device pushes a button in an application indicating readiness to transfer an object. After completion of the indicating readiness to transfer an object. After completion of the object transfer, support for the OBEX profile should be suspended until object transfer, support for the OBEX profile should be suspended until the next time the user requests its use.]{.note} the next time the user requests its use.]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_BLT\_EXT.1](#FPT_BLT_EXT.1):\ | ::: {.component-activity-header} > [FPT\_BLT\_EXT.1](#FPT_BLT_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall ensure that the [TSS](#abbr_TSS) lists all Bluetooth The evaluator shall ensure that the [TSS](#abbr_TSS) lists all Bluetooth profiles that are disabled while not in use by an application and which profiles that are disabled while not in use by an application and which need explicit user action in order to become enabled.\ need explicit user action in order to become enabled.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: The evaluator shall perform the following tests: | ::: {.ea} | The evaluator shall perform the following tests: []{.testlist-} - **Test 1:** While the service is not in active use by an application < on the [TOE](#abbr_TOE), the evaluator shall attempt to discover a < service associated with a \"protected\" Bluetooth profile (as < specified by the requirement) on the [TOE](#abbr_TOE) via a Service < Discovery Protocol search. The evaluator shall verify that the < service does not appear in the Service Discovery Protocol search < results. Next, the evaluator shall attempt to gain remote access to < the service from a device that does not currently have a trusted < device relationship with the [TOE](#abbr_TOE). The evaluator shall < verify that this attempt fails due to the unavailability of the < service and profile. < - **Test 2:** The evaluator shall repeat Test 1 with a device that < currently has a trusted device relationship with the < [TOE](#abbr_TOE) and verify that the same behavior is exhibited. < \ | - [Test 112[](#_t_113){.definition}]{#_t_113}: While the service is > not in active use by an application on the [TOE](#abbr_TOE), the > evaluator shall attempt to discover a service associated with a > \"protected\" Bluetooth profile (as specified by the requirement) on > the [TOE](#abbr_TOE) via a Service Discovery Protocol search. The > evaluator shall verify that the service does not appear in the > Service Discovery Protocol search results. Next, the evaluator shall > attempt to gain remote access to the service from a device that does > not currently have a trusted device relationship with the > [TOE](#abbr_TOE). The evaluator shall verify that this attempt fails > due to the unavailability of the service and profile. > - [Test 113[](#_t_114){.definition}]{#_t_114}: The evaluator shall > repeat Test 1 with a device that currently has a trusted device > relationship with the [TOE](#abbr_TOE) and verify that the same > behavior is exhibited. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_NOT_EXT.2 .comp} ::: {#FPT_NOT_EXT.2 .comp} #### FPT\_NOT\_EXT.2 Self-Test Notification #### FPT\_NOT\_EXT.2 Self-Test Notification ::: {.element} ::: {.element} ::: {#FPT_NOT_EXT.2.1 .reqid} ::: {#FPT_NOT_EXT.2.1 .reqid} [FPT\_NOT\_EXT.2.1](#FPT_NOT_EXT.2.1){.abbr} [FPT\_NOT\_EXT.2.1](#FPT_NOT_EXT.2.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall \[**selection**: *audit*, *provide the | The [TSF](#abbr_TSF) shall \[**selection**: [audit]{#_s_399 administrator with*\] [TSF](#abbr_TSF)-software integrity verification | .selectable-content}, [provide the administrator with]{#_s_400 > .selectable-content} \] [TSF](#abbr_TSF)-software integrity verification values. values. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[These notifications are typically [Application Note: ]{.note-header}[These notifications are typically called remote attestation and these integrity values are typically called remote attestation and these integrity values are typically called measurements. The integrity values are calculated from hashes of called measurements. The integrity values are calculated from hashes of critical memory and values, including executable code. The critical memory and values, including executable code. The [ST](#abbr_ST) author must select whether these values are logged as a [ST](#abbr_ST) author must select whether these values are logged as a part of [FAU\_GEN.1.1](#FAU_GEN.1.1) or are provided to the part of [FAU\_GEN.1.1](#FAU_GEN.1.1) or are provided to the administrator. ]{.note} administrator. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FPT_NOT_EXT.2.2 .reqid} ::: {#FPT_NOT_EXT.2.2 .reqid} [FPT\_NOT\_EXT.2.2](#FPT_NOT_EXT.2.2){.abbr} [FPT\_NOT\_EXT.2.2](#FPT_NOT_EXT.2.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall cryptographically sign all integrity The [TSF](#abbr_TSF) shall cryptographically sign all integrity verification values. verification values. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The intent of this requirement is to [Application Note: ]{.note-header}[The intent of this requirement is to provide assurance to the administrator that the responses provided are provide assurance to the administrator that the responses provided are from the [TOE](#abbr_TOE) and have not been modified or spoofed by a from the [TOE](#abbr_TOE) and have not been modified or spoofed by a man-in-the-middle such as a network-based adversary or a malicious man-in-the-middle such as a network-based adversary or a malicious [MDM](#abbr_MDM) Agent. ]{.note} [MDM](#abbr_MDM) Agent. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_NOT\_EXT.2](#FPT_NOT_EXT.2):\ | ::: {.component-activity-header} > [FPT\_NOT\_EXT.2](#FPT_NOT_EXT.2) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) describes which The evaluator shall verify that the [TSS](#abbr_TSS) describes which critical memory is measured for these integrity values and how the critical memory is measured for these integrity values and how the measurement is performed (including which [TOE](#abbr_TOE) software measurement is performed (including which [TOE](#abbr_TOE) software performs these generates these values, how that software accesses the performs these generates these values, how that software accesses the critical memory, and which algorithms are used).\ critical memory, and which algorithms are used).\ \ \ > The evaluator shall verify that the [TSS](#abbr_TSS) describes which key > the [TSF](#abbr_TSF) uses to sign the responses to queries and the > certificate used to prove ownership of the key, and the method of > associating the certificate with a particular device manufacturer and > model.\ \ \ > ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} If the integrity values are provided to the administrator, the evaluator If the integrity values are provided to the administrator, the evaluator shall verify that the AGD guidance contains instructions for retrieving shall verify that the AGD guidance contains instructions for retrieving these values and information for interpreting them. For example, if these values and information for interpreting them. For example, if multiple measurements are taken, what those measurements are and how multiple measurements are taken, what those measurements are and how changes to those values relate to changes in the device state.\ changes to those values relate to changes in the device state.\ \ \ > There are no guidance evaluation activities for this element.\ \ \ > ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following test may require the **Evaluation Activity Note:** The following test may require the developer to provide access to a test platform that provides the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile evaluator with tools that are typically not found on consumer Mobile Device products.\ Device products.\ \ \ The evaluator shall repeat the following test for each measurement: The evaluator shall repeat the following test for each measurement: > []{.testlist-} - **Test 1:** The evaluator shall boot the device in an approved state | - [Test 114[](#_t_116){.definition}]{#_t_116}: The evaluator shall and record the measurement taken (either from the log or by using | boot the device in an approved state and record the measurement the administrative guidance to retrieve the value via an | taken (either from the log or by using the administrative guidance [MDM](#abbr_MDM) Agent). The evaluator shall modify the critical | to retrieve the value via an [MDM](#abbr_MDM) Agent). The evaluator memory or value that is measured. The evaluator shall boot the | shall modify the critical memory or value that is measured. The device and verify that the measurement changed. | evaluator shall boot the device and verify that the measurement | changed. \ | ::: | The evaluator shall perform the following test: []{.testlist-} | ::: {.activity} | - [Test 115[](#_t_117){.definition}]{#_t_117}: The evaluator shall ::: {.eacategory} | write, or the developer shall provide, a management application that [TSS](#abbr_TSS) | queries either the audit logs or the measurements. The evaluator ::: | shall verify that the responses to these queries are signed and | verify the signatures against the [TOE](#abbr_TOE)'s certificate. The evaluator shall verify that the [TSS](#abbr_TSS) describes which key < the [TSF](#abbr_TSF) uses to sign the responses to queries and the < certificate used to prove ownership of the key, and the method of < associating the certificate with a particular device manufacturer and < model.\ < \ < \ < < ::: {.eacategory} < Guidance < ::: < < There are no guidance evaluation activities for this element.\ < \ < \ < < ::: {.eacategory} < Tests < ::: < < The evaluator shall perform the following test: < < - **Test 1:** The evaluator shall write, or the developer shall < provide, a management application that queries either the audit logs < or the measurements. The evaluator shall verify that the responses < to these queries are signed and verify the signatures against the < [TOE](#abbr_TOE)'s certificate. < < \ < ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_TST_EXT.2/POSTKERNEL .comp} ::: {#FPT_TST_EXT.2/POSTKERNEL .comp} #### FPT\_TST\_EXT.2/POSTKERNEL TSF Integrity Checking (Post-Kernel) #### FPT\_TST\_EXT.2/POSTKERNEL TSF Integrity Checking (Post-Kernel) ::: {.element} ::: {.element} ::: {#FPT_TST_EXT.2.1/POSTKERNEL .reqid} ::: {#FPT_TST_EXT.2.1/POSTKERNEL .reqid} [FPT\_TST\_EXT.2.1/POSTKERNEL](#FPT_TST_EXT.2.1/POSTKERNEL){.abbr} [FPT\_TST\_EXT.2.1/POSTKERNEL](#FPT_TST_EXT.2.1/POSTKERNEL){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall verify the integrity of \[**selection**: *all | The [TSF](#abbr_TSF) shall verify the integrity of \[**selection**: [all executable code*, *\[**assignment**: [subset of executable | executable code]{#_s_405 .selectable-content}, [\[**assignment**: code]{.assignable-content}\]*\] stored in mutable media prior to its | [subset of executable code]{.assignable-content}\]]{#_s_406 execution through the use of \[**selection**: *a digital signature using | .selectable-content} \] stored in mutable media prior to its execution an immutable hardware asymmetric key*, *an immutable hardware hash of an | through the use of \[**selection**: [a digital signature using an asymmetric key*, *an immutable hardware hash*, *a digital signature | immutable hardware asymmetric key]{#_s_407 .selectable-content}, [an using a hardware-protected asymmetric key*, *hardware-protected hash*\]. | immutable hardware hash of an asymmetric key]{#_s_408 > .selectable-content}, [an immutable hardware hash]{#_s_409 > .selectable-content}, [a digital signature using a hardware-protected > asymmetric key]{#_s_410 .selectable-content}, [hardware-protected > hash]{#_s_411 .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[All executable code covered in this [Application Note: ]{.note-header}[All executable code covered in this requirement is executed after the kernel is loaded.\ requirement is executed after the kernel is loaded.\ \ \ If \"all executable code in mutable media\" is verified, implementation If \"all executable code in mutable media\" is verified, implementation in hardware or in read-only memory is a natural logical consequence.\ in hardware or in read-only memory is a natural logical consequence.\ \ \ At this time, the verification of software executed on other processors At this time, the verification of software executed on other processors stored in mutable media is not required; however, it may be added in the stored in mutable media is not required; however, it may be added in the first assignment. If all executable code (including bootloader(s), first assignment. If all executable code (including bootloader(s), kernel, device drivers, pre-loaded applications, user-loaded kernel, device drivers, pre-loaded applications, user-loaded applications, and libraries) is verified, \"all executable code stored applications, and libraries) is verified, \"all executable code stored in mutable media\" should be selected. ]{.note} in mutable media\" should be selected. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_TST\_EXT.2/POSTKERNEL](#FPT_TST_EXT.2/POSTKERNEL):\ | ::: {.component-activity-header} > [FPT\_TST\_EXT.2/POSTKERNEL](#FPT_TST_EXT.2/POSTKERNEL) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluation activity shall be completed in conjunction with The evaluation activity shall be completed in conjunction with [FPT\_TST\_EXT.2/PREKERNEL](#FPT_TST_EXT.2/PREKERNEL) for all executable [FPT\_TST\_EXT.2/PREKERNEL](#FPT_TST_EXT.2/PREKERNEL) for all executable code specified.\ | code specified. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_TUD_EXT.5 .comp} ::: {#FPT_TUD_EXT.5 .comp} #### FPT\_TUD\_EXT.5 Application Verification #### FPT\_TUD\_EXT.5 Application Verification ::: {.element} ::: {.element} ::: {#FPT_TUD_EXT.5.1 .reqid} ::: {#FPT_TUD_EXT.5.1 .reqid} [FPT\_TUD\_EXT.5.1](#FPT_TUD_EXT.5.1){.abbr} [FPT\_TUD\_EXT.5.1](#FPT_TUD_EXT.5.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall by default only install mobile applications The [TSF](#abbr_TSF) shall by default only install mobile applications cryptographically verified by \[**selection**: *a built-in X.509v3 | cryptographically verified by \[**selection**: [a built-in X.509v3 certificate*, *a configured X.509v3 certificate*\]. | certificate]{#_s_420 .selectable-content}, [a configured X.509v3 > certificate]{#_s_421 .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[The built-in certificate is installed [Application Note: ]{.note-header}[The built-in certificate is installed by the manufacturer either at time of manufacture or as a part of system by the manufacturer either at time of manufacture or as a part of system updates. The configured certificate used to verify the signature is set updates. The configured certificate used to verify the signature is set according to [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) function according to [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) function [[33]{.counter}](#digSign){.digSign-ref}.]{.note} | [33](#mf-digSign).]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_TUD\_EXT.5](#FPT_TUD_EXT.5):\ | ::: {.component-activity-header} > [FPT\_TUD\_EXT.5](#FPT_TUD_EXT.5) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) describes how The evaluator shall verify that the [TSS](#abbr_TSS) describes how mobile application software is verified at installation. The evaluator mobile application software is verified at installation. The evaluator shall ensure that this method uses a digital signature by a code signing shall ensure that this method uses a digital signature by a code signing certificate.\ certificate.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: - **Test 1:** The evaluator shall write, or the developer shall | ::: {.ea} provide access to, an application. The evaluator shall try to | []{.testlist-} install this application without a digitally signature and shall < verify that installation fails. The evaluator shall attempt to < install an application digitally signed with an appropriate < certificate, and verify that installation succeeds. < - **Test 2:** The evaluator shall digitally sign the application with < an invalid certificate and verify that application installation < fails. The evaluator shall digitally sign the application with a < certificate that does not have the Code Signing purpose and verify < that application installation fails. This test may be performed in < conjunction with the Evaluation Activities for < [FIA\_X509\_EXT.1](#FIA_X509_EXT.1). < - **Test 3:** If necessary, the evaluator shall configure the device < to limit the public keys that can sign application software < according to the AGD guidance. The evaluator shall digitally sign < the application with a certificate disallowed by the device or < configuration and verify that application installation fails. The < evaluator shall attempt to install an application digitally signed < with an authorized certificate and verify that application < installation succeeds. < \ | - [Test 116[](#_t_128){.definition}]{#_t_128}: The evaluator shall > write, or the developer shall provide access to, an application. The > evaluator shall try to install this application without a digitally > signature and shall verify that installation fails. The evaluator > shall attempt to install an application digitally signed with an > appropriate certificate, and verify that installation succeeds. > - [Test 117[](#_t_129){.definition}]{#_t_129}: The evaluator shall > digitally sign the application with an invalid certificate and > verify that application installation fails. The evaluator shall > digitally sign the application with a certificate that does not have > the Code Signing purpose and verify that application installation > fails. This test may be performed in conjunction with the Evaluation > Activities for [FIA\_X509\_EXT.1](#FIA_X509_EXT.1). > - [Test 118[](#_t_130){.definition}]{#_t_130}: If necessary, the > evaluator shall configure the device to limit the public keys that > can sign application software according to the AGD guidance. The > evaluator shall digitally sign the application with a certificate > disallowed by the device or configuration and verify that > application installation fails. The evaluator shall attempt to > install an application digitally signed with an authorized > certificate and verify that application installation succeeds. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_TUD_EXT.6 .comp} ::: {#FPT_TUD_EXT.6 .comp} #### FPT\_TUD\_EXT.6 Trusted Update Verification #### FPT\_TUD\_EXT.6 Trusted Update Verification ::: {.element} ::: {.element} ::: {#FPT_TUD_EXT.6.1 .reqid} ::: {#FPT_TUD_EXT.6.1 .reqid} [FPT\_TUD\_EXT.6.1](#FPT_TUD_EXT.6.1){.abbr} [FPT\_TUD\_EXT.6.1](#FPT_TUD_EXT.6.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall verify that software updates to the The [TSF](#abbr_TSF) shall verify that software updates to the [TSF](#abbr_TSF) are a current or later version than the current version [TSF](#abbr_TSF) are a current or later version than the current version of the [TSF](#abbr_TSF). of the [TSF](#abbr_TSF). ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ A later version has a larger version [Application Note: ]{.note-header}[ A later version has a larger version number. The method for distinguishing newer software versions from older number. The method for distinguishing newer software versions from older versions is determined by the manufacturer. ]{.note} versions is determined by the manufacturer. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_TUD\_EXT.6](#FPT_TUD_EXT.6):\ | ::: {.component-activity-header} > [FPT\_TUD\_EXT.6](#FPT_TUD_EXT.6) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) describes the The evaluator shall verify that the [TSS](#abbr_TSS) describes the mechanism that prevents the [TSF](#abbr_TSF) from installing software mechanism that prevents the [TSF](#abbr_TSF) from installing software updates that are an older version that the currently installed version.\ updates that are an older version that the currently installed version.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} The evaluator shall repeat the following tests to cover all allowed The evaluator shall repeat the following tests to cover all allowed software update mechanisms as described in the [TSS](#abbr_TSS). For software update mechanisms as described in the [TSS](#abbr_TSS). For example, if the update mechanism replaces an entire partition containing example, if the update mechanism replaces an entire partition containing many separate code files, the evaluator does not need to repeat the test many separate code files, the evaluator does not need to repeat the test for each individual file. | for each individual file. []{.testlist-} < - **Test 1:** The evaluator shall attempt to install an earlier < version of software (as determined by the manufacturer). The < evaluator shall verify that this attempt fails by checking the < version identifiers or cryptographic hashes of the privileged < software against those previously recorded and checking that the < values have not changed. < - **Test 2:** The evaluator shall attempt to install a current or < later version and shall verify that the update succeeds. < \ | - [Test 119[](#_t_131){.definition}]{#_t_131}: The evaluator shall > attempt to install an earlier version of software (as determined by > the manufacturer). The evaluator shall verify that this attempt > fails by checking the version identifiers or cryptographic hashes of > the privileged software against those previously recorded and > checking that the values have not changed. > - [Test 120[](#_t_132){.definition}]{#_t_132}: The evaluator shall > attempt to install a current or later version and shall verify that > the update succeeds. ::: ::: ::: ::: ::: ::: ::: ::: ### A.2.7 Class: TOE Access (FTA) {#fta-obj .indexable data-level="3"} | ### A.2.7 Class: TOE Access (FTA) {#fta-objective .indexable data-level="3"} ::: {#FTA_TAB.1 .comp} ::: {#FTA_TAB.1 .comp} #### FTA\_TAB.1 Default TOE Access Banners #### FTA\_TAB.1 Default TOE Access Banners ::: {.element} ::: {.element} ::: {#FTA_TAB.1.1 .reqid} ::: {#FTA_TAB.1.1 .reqid} [FTA\_TAB.1.1](#FTA_TAB.1.1){.abbr} [FTA\_TAB.1.1](#FTA_TAB.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} Before establishing a user session, the [TSF](#abbr_TSF) shall display Before establishing a user session, the [TSF](#abbr_TSF) shall display an advisory warning message regarding unauthorized use of the an advisory warning message regarding unauthorized use of the [TOE](#abbr_TOE). [TOE](#abbr_TOE). ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[This requirement may be met with the [Application Note: ]{.note-header}[This requirement may be met with the configuration of either text or an image containing the text of the configuration of either text or an image containing the text of the desired message. The [TSF](#abbr_TSF) must minimally display this desired message. The [TSF](#abbr_TSF) must minimally display this information at startup, but may also display the information at every information at startup, but may also display the information at every unlock. The banner is configured according to unlock. The banner is configured according to [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) function [FMT\_SMF\_EXT.1](#FMT_SMF_EXT.1) function [[36]{.counter}](#unlockBanner){.unlockBanner-ref}.]{.note} | [36](#mf-unlockBanner).]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FTA\_TAB.1](#FTA_TAB.1):\ | ::: {.component-activity-header} > [FTA\_TAB.1](#FTA_TAB.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The [TSS](#abbr_TSS) shall describe when the banner is displayed.\ The [TSS](#abbr_TSS) shall describe when the banner is displayed.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: The evaluator shall also perform the following test: | ::: {.ea} | The evaluator shall also perform the following test: []{.testlist-} - **Test 1:** The evaluator follows the operational guidance to < configure a notice and consent warning message. The evaluator shall < then start up or unlock the [TSF](#abbr_TSF). The evaluator shall < verify that the notice and consent warning message is displayed in < each instance described in the [TSS](#abbr_TSS). < \ | - [Test 121[](#_t_135){.definition}]{#_t_135}: The evaluator follows > the operational guidance to configure a notice and consent warning > message. The evaluator shall then start up or unlock the > [TSF](#abbr_TSF). The evaluator shall verify that the notice and > consent warning message is displayed in each instance described in > the [TSS](#abbr_TSS). ::: ::: ::: ::: ::: ::: ::: ::: A.3 Implementation-based Requirements {#feat-based-reqs .indexable data-level="2"} A.3 Implementation-based Requirements {#feat-based-reqs .indexable data-level="2"} ------------------------------------- ------------------------------------- ### A.3.1 Bluetooth {#bluetooth .indexable data-level="3"} ### A.3.1 Bluetooth {#bluetooth .indexable data-level="3"} If the [TOE](#abbr_TOE) includes Bluetooth hardware, the following SFRs | [ If the [TOE](#abbr_TOE) includes Bluetooth hardware, the following must be claimed: | [SFRs](#abbr_SFR) must be claimed: ]{.description} If this is implemented by the [TOE](#abbr_TOE), the following If this is implemented by the [TOE](#abbr_TOE), the following requirements must be included in the [ST](#abbr_ST): requirements must be included in the [ST](#abbr_ST): - **[FDP\_UPC\_EXT.1/BLUETOOTH](#FDP_UPC_EXT.1/BLUETOOTH)** - **[FDP\_UPC\_EXT.1/BLUETOOTH](#FDP_UPC_EXT.1/BLUETOOTH)** ### A.3.1.1 Class: User Data Protection (FDP) {#fdp-impl .indexable data-level="4"} ### A.3.1.1 Class: User Data Protection (FDP) {#fdp-impl .indexable data-level="4"} ::: {#FDP_UPC_EXT.1/BLUETOOTH .comp} ::: {#FDP_UPC_EXT.1/BLUETOOTH .comp} #### FDP\_UPC\_EXT.1/BLUETOOTH Inter-TSF User Data Transfer Protection (Bluetooth) #### FDP\_UPC\_EXT.1/BLUETOOTH Inter-TSF User Data Transfer Protection (Bluetooth) ::: {.element} ::: {.element} ::: {#FDP_UPC_EXT.1.1/BLUETOOTH .reqid} ::: {#FDP_UPC_EXT.1.1/BLUETOOTH .reqid} [FDP\_UPC\_EXT.1.1/BLUETOOTH](#FDP_UPC_EXT.1.1/BLUETOOTH){.abbr} [FDP\_UPC\_EXT.1.1/BLUETOOTH](#FDP_UPC_EXT.1.1/BLUETOOTH){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide a means for non-TSF applications The [TSF](#abbr_TSF) shall provide a means for non-TSF applications executing on the [TOE](#abbr_TOE) to use executing on the [TOE](#abbr_TOE) to use - Bluetooth [BR/EDR](#abbr_BR/EDR) in accordance with the - Bluetooth [BR/EDR](#abbr_BR/EDR) in accordance with the [PP-Module](#abbr_PP-Module) for Bluetooth, [PP-Module](#abbr_PP-Module) for Bluetooth, and \[**selection**: and \[**selection**: - *Bluetooth [LE](#abbr_LE) in accordance with the | - [Bluetooth [LE](#abbr_LE) in accordance with the [PP-Module](#abbr_PP-Module) for Bluetooth*, | [PP-Module](#abbr_PP-Module) for Bluetooth]{#_s_265 - *no other protocol* | .selectable-content} > - [no other protocol]{#_s_266 .selectable-content} \] to provide a protected communication channel between the non-TSF \] to provide a protected communication channel between the non-TSF application and another IT product that is logically distinct from other application and another IT product that is logically distinct from other communication channels, provides assured identification of its end communication channels, provides assured identification of its end points, protects channel data from disclosure, and detects modification points, protects channel data from disclosure, and detects modification of the channel data. of the channel data. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[ If the [TOE](#abbr_TOE) includes [Application Note: ]{.note-header}[ If the [TOE](#abbr_TOE) includes Bluetooth hardware, this requirement must be included in the Bluetooth hardware, this requirement must be included in the [ST](#abbr_ST). The intent of this requirement is that Bluetooth [ST](#abbr_ST). The intent of this requirement is that Bluetooth [BR/EDR](#abbr_BR/EDR) and optionally Bluetooth [LE](#abbr_LE) is [BR/EDR](#abbr_BR/EDR) and optionally Bluetooth [LE](#abbr_LE) is available for use by user applications running on the device for use in available for use by user applications running on the device for use in connecting to distant-end services that are not necessarily part of the connecting to distant-end services that are not necessarily part of the enterprise infrastructure. The [ST](#abbr_ST) author must list which enterprise infrastructure. The [ST](#abbr_ST) author must list which trusted channel protocols are implemented by the Mobile Device for use trusted channel protocols are implemented by the Mobile Device for use by non-TSF apps.\ by non-TSF apps.\ \ \ The [TSF](#abbr_TSF) must be validated against requirements from the The [TSF](#abbr_TSF) must be validated against requirements from the [PP-Module](#abbr_PP-Module) for Bluetooth. It should be noted that the [PP-Module](#abbr_PP-Module) for Bluetooth. It should be noted that the [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) requires that all [TSF](#abbr_TSF) [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1) requires that all [TSF](#abbr_TSF) communications be protected using the protocols indicated in that communications be protected using the protocols indicated in that requirement, so the protocols required by this component ride \"on top requirement, so the protocols required by this component ride \"on top of\" those listed in [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1).\ of\" those listed in [FTP\_ITC\_EXT.1](#FTP_ITC_EXT.1).\ \ \ ]{.note} ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FDP_UPC_EXT.1.2/BLUETOOTH .reqid} ::: {#FDP_UPC_EXT.1.2/BLUETOOTH .reqid} [FDP\_UPC\_EXT.1.2/BLUETOOTH](#FDP_UPC_EXT.1.2/BLUETOOTH){.abbr} [FDP\_UPC\_EXT.1.2/BLUETOOTH](#FDP_UPC_EXT.1.2/BLUETOOTH){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall permit the non-TSF applications to initiate The [TSF](#abbr_TSF) shall permit the non-TSF applications to initiate communication via the trusted channel. communication via the trusted channel. ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FDP\_UPC\_EXT.1/BLUETOOTH](#FDP_UPC_EXT.1/BLUETOOTH):\ | ::: {.component-activity-header} > [FDP\_UPC\_EXT.1/BLUETOOTH](#FDP_UPC_EXT.1/BLUETOOTH) > ::: ::: {.activity} < The evaluator shall verify that the [API](#abbr_API) documentation The evaluator shall verify that the [API](#abbr_API) documentation provided according to [Section 5.2.2 Class ADV: provided according to [Section 5.2.2 Class ADV: Development](#adv){.dynref} includes the security functions (protection Development](#adv){.dynref} includes the security functions (protection channel) described in these requirements, and verify that the APIs channel) described in these requirements, and verify that the APIs implemented to support this requirement include the appropriate implemented to support this requirement include the appropriate settings/parameters so that the application can both provide and obtain settings/parameters so that the application can both provide and obtain the information needed to assure mutual identification of the endpoints the information needed to assure mutual identification of the endpoints of the communication as required by this component.\ of the communication as required by this component.\ \ \ ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall examine the [TSS](#abbr_TSS) to determine that it The evaluator shall examine the [TSS](#abbr_TSS) to determine that it describes that all protocols listed in the [TSS](#abbr_TSS) are describes that all protocols listed in the [TSS](#abbr_TSS) are specified and included in the requirements in the [ST](#abbr_ST).\ specified and included in the requirements in the [ST](#abbr_ST).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} The evaluator shall confirm that the operational guidance contains The evaluator shall confirm that the operational guidance contains instructions necessary for configuring the protocol(s) selected for use instructions necessary for configuring the protocol(s) selected for use by the applications.\ by the applications.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} **Evaluation Activity Note:** The following test requires the developer **Evaluation Activity Note:** The following test requires the developer to provide access to a test platform that provides the evaluator with to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products.\ tools that are typically not found on consumer Mobile Device products.\ \ \ The evaluator shall write, or the developer shall provide access to, an The evaluator shall write, or the developer shall provide access to, an application that requests protected channel services by the application that requests protected channel services by the [TSF](#abbr_TSF). The evaluator shall verify that the results from the [TSF](#abbr_TSF). The evaluator shall verify that the results from the protected channel match the expected results according to the protected channel match the expected results according to the [API](#abbr_API) documentation. This application may be used to assist [API](#abbr_API) documentation. This application may be used to assist in verifying the protected channel Evaluation Activities for the in verifying the protected channel Evaluation Activities for the protocol requirements. The evaluator shall also perform the following protocol requirements. The evaluator shall also perform the following tests: | tests: []{.testlist-} < - **Test 1:** The evaluators shall ensure that the application is able < to initiate communications with an external IT entity using each < protocol specified in the requirement, setting up the connections as < described in the operational guidance and ensuring that < communication is successful. < - **Test 2:** The evaluator shall ensure, for each communication < channel with an authorized IT entity, the channel data are not sent < in plaintext. < \ | - [Test 122[](#_t_61){.definition}]{#_t_61}: The evaluators shall > ensure that the application is able to initiate communications with > an external IT entity using each protocol specified in the > requirement, setting up the connections as described in the > operational guidance and ensuring that communication is successful. > - [Test 123[](#_t_62){.definition}]{#_t_62}: The evaluator shall > ensure, for each communication channel with an authorized IT entity, > the channel data are not sent in plaintext. ::: ::: ::: ::: ::: ::: ::: ::: Appendix B - Selection-based Requirements {#sel-based-reqs .indexable data-level="A"} Appendix B - Selection-based Requirements {#sel-based-reqs .indexable data-level="A"} ========================================= ========================================= > [ ]{.description} > As indicated in the introduction to this [PP](#abbr_PP), the baseline As indicated in the introduction to this [PP](#abbr_PP), the baseline requirements (those that must be performed by the [TOE](#abbr_TOE) or requirements (those that must be performed by the [TOE](#abbr_TOE) or its underlying platform) are contained in the body of this its underlying platform) are contained in the body of this [PP](#abbr_PP). There are additional requirements based on selections in [PP](#abbr_PP). There are additional requirements based on selections in the body of the [PP](#abbr_PP): if certain selections are made, then the body of the [PP](#abbr_PP): if certain selections are made, then additional requirements below must be included. additional requirements below must be included. B.1 Class: Cryptographic Support (FCS) {#fcs-obj .indexable data-level="2"} | B.1 Class: Cryptographic Support (FCS) {#fcs-sel-based .indexable data-level="2"} -------------------------------------- -------------------------------------- ::: {#FCS_CKM_EXT.7 .comp} ::: {#FCS_CKM_EXT.7 .comp} #### FCS\_CKM\_EXT.7 Cryptographic Key Support (REK) #### FCS\_CKM\_EXT.7 Cryptographic Key Support (REK) ::: {.statustag} ::: {.statustag} ***The inclusion of this selection-based component depends upon a | ***The inclusion of this selection-based component depends upon selection in [FCS\_CKM\_EXT.1.1](#FCS_CKM_EXT.1.1).*** selection in [FCS\_CKM\_EXT.1.1](#FCS_CKM_EXT.1.1).*** ::: ::: ::: {.element} ::: {.element} ::: {#FCS_CKM_EXT.7.1 .reqid} ::: {#FCS_CKM_EXT.7.1 .reqid} [FCS\_CKM\_EXT.7.1](#FCS_CKM_EXT.7.1){.abbr} [FCS\_CKM\_EXT.7.1](#FCS_CKM_EXT.7.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} A [REK](#abbr_REK) shall not be able to be read from or exported from A [REK](#abbr_REK) shall not be able to be read from or exported from the hardware. the hardware. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[If \"mutable-hardware\" is selected [Application Note: ]{.note-header}[If \"mutable-hardware\" is selected in [FCS\_CKM\_EXT.1.1](#FCS_CKM_EXT.1.1), in [FCS\_CKM\_EXT.1.1](#FCS_CKM_EXT.1.1), [FCS\_CKM\_EXT.7](#FCS_CKM_EXT.7) must be included in the [FCS\_CKM\_EXT.7](#FCS_CKM_EXT.7) must be included in the [ST](#abbr_ST). Note that if \"immutable-hardware\" is selected in [ST](#abbr_ST). Note that if \"immutable-hardware\" is selected in [FCS\_CKM\_EXT.1.1](#FCS_CKM_EXT.1.1) it implicitly meets [FCS\_CKM\_EXT.1.1](#FCS_CKM_EXT.1.1) it implicitly meets [FCS\_CKM\_EXT.7](#FCS_CKM_EXT.7).\ [FCS\_CKM\_EXT.7](#FCS_CKM_EXT.7).\ \ \ The lack of a public/documented [API](#abbr_API) for importing or The lack of a public/documented [API](#abbr_API) for importing or exporting, when a private/undocumented [API](#abbr_API) exists, is not exporting, when a private/undocumented [API](#abbr_API) exists, is not sufficient to meet this requirement. ]{.note} sufficient to meet this requirement. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FCS\_CKM\_EXT.7](#FCS_CKM_EXT.7):\ | ::: {.component-activity-header} > [FCS\_CKM\_EXT.7](#FCS_CKM_EXT.7) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluation activity for this component is performed in conjunction The evaluation activity for this component is performed in conjunction with the evaluation activity for [FCS\_CKM\_EXT.1](#FCS_CKM_EXT.1).\ with the evaluation activity for [FCS\_CKM\_EXT.1](#FCS_CKM_EXT.1).\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: B.2 Class: User Data Protection (FDP) {#fdp-obj .indexable data-level="2"} | B.2 Class: User Data Protection (FDP) {#fdp-sel-based .indexable data-level="2"} ------------------------------------- ------------------------------------- ::: {#FDP_ACF_EXT.2 .comp} ::: {#FDP_ACF_EXT.2 .comp} #### FDP\_ACF\_EXT.2 Access Control for System Resources #### FDP\_ACF\_EXT.2 Access Control for System Resources ::: {.statustag} ::: {.statustag} ***The inclusion of this selection-based component depends upon a | ***The inclusion of this selection-based component depends upon selection in [FDP\_ACF\_EXT.1.2](#FDP_ACF_EXT.1.2).*** selection in [FDP\_ACF\_EXT.1.2](#FDP_ACF_EXT.1.2).*** ::: ::: ::: {.element} ::: {.element} ::: {#FDP_ACF_EXT.2.1 .reqid} ::: {#FDP_ACF_EXT.2.1 .reqid} [FDP\_ACF\_EXT.2.1](#FDP_ACF_EXT.2.1){.abbr} [FDP\_ACF\_EXT.2.1](#FDP_ACF_EXT.2.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall provide a separate \[**selection**: *address | The [TSF](#abbr_TSF) shall provide a separate \[**selection**: [address book*, *calendar*, *keystore*, *account credential database, | book]{#_s_241 .selectable-content}, [calendar]{#_s_242 \[**assignment**: [list of additional | .selectable-content}, [keystore]{#_s_243 .selectable-content}, [account resources]{.assignable-content}\]*\] for each application group and only | credential database, \[**assignment**: [list of additional allow applications within that process group to access the resource. | resources]{.assignable-content}\]]{#_s_244 .selectable-content} \] for Exceptions may only be explicitly authorized for such sharing by | each application group and only allow applications within that process \[**selection**: *the user*, *the administrator*, *no one*\]. | group to access the resource. Exceptions may only be explicitly > authorized for such sharing by \[**selection**: [the user]{#_s_245 > .selectable-content}, [the administrator]{#_s_246 .selectable-content}, > [no one]{#_s_247 .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[If \"groups of applications\" is [Application Note: ]{.note-header}[If \"groups of applications\" is selected in [FDP\_ACF\_EXT.1.2](#FDP_ACF_EXT.1.2), selected in [FDP\_ACF\_EXT.1.2](#FDP_ACF_EXT.1.2), [FDP\_ACF\_EXT.2](#FDP_ACF_EXT.2) must be included in the [FDP\_ACF\_EXT.2](#FDP_ACF_EXT.2) must be included in the [ST](#abbr_ST). ]{.note} [ST](#abbr_ST). ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FDP\_ACF\_EXT.2](#FDP_ACF_EXT.2):\ | ::: {.component-activity-header} > [FDP\_ACF\_EXT.2](#FDP_ACF_EXT.2) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} For each selected resource, the evaluator shall cause data to be placed For each selected resource, the evaluator shall cause data to be placed into the Enterprise group's instance of that shared resource. The into the Enterprise group's instance of that shared resource. The evaluator shall install an application into the Personal group that evaluator shall install an application into the Personal group that attempts to access the shared resource information and verify that it attempts to access the shared resource information and verify that it cannot access the information.\ | cannot access the information. ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FDP_PBA_EXT.1 .comp} ::: {#FDP_PBA_EXT.1 .comp} #### FDP\_PBA\_EXT.1 Storage of Critical Biometric Parameters #### FDP\_PBA\_EXT.1 Storage of Critical Biometric Parameters ::: {.statustag} ::: {.statustag} ***The inclusion of this selection-based component depends upon a | ***The inclusion of this selection-based component depends upon selection in [FIA\_UAU.5.1](#FIA_UAU.5.1), [FIA\_UAU.5.1](#FIA_UAU.5.1), | selection in [FIA\_UAU.5.1](#FIA_UAU.5.1).*** [FIA\_UAU.5.1](#FIA_UAU.5.1), [FIA\_UAU.5.1](#FIA_UAU.5.1), < [FIA\_UAU.5.1](#FIA_UAU.5.1), [FIA\_UAU.5.1](#FIA_UAU.5.1).*** < ::: ::: ::: {.element} ::: {.element} ::: {#FDP_PBA_EXT.1.1 .reqid} ::: {#FDP_PBA_EXT.1.1 .reqid} [FDP\_PBA\_EXT.1.1](#FDP_PBA_EXT.1.1){.abbr} [FDP\_PBA\_EXT.1.1](#FDP_PBA_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall protect the authentication template The [TSF](#abbr_TSF) shall protect the authentication template \[**selection**: *using a PIN as an additional factor*, *using a | \[**selection**: [using a PIN as an additional factor]{#_s_252 password as an additional factor*, *\[**assignment**: [other | .selectable-content}, [using a password as an additional factor]{#_s_253 circumstances]{.assignable-content}\]*\]. | .selectable-content}, [\[**assignment**: [other > circumstances]{.assignable-content}\]]{#_s_254 .selectable-content} \]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[If a [BAF](#abbr_BAF) or \"hybrid\" [Application Note: ]{.note-header}[If a [BAF](#abbr_BAF) or \"hybrid\" is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), [FDP\_PBA\_EXT.1.1](#FDP_PBA_EXT.1.1) must be included in the [FDP\_PBA\_EXT.1.1](#FDP_PBA_EXT.1.1) must be included in the [ST](#abbr_ST). If \"hybrid\" is selected in [ST](#abbr_ST). If \"hybrid\" is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), then \"using a PIN as an additional [FIA\_UAU.5.1](#FIA_UAU.5.1), then \"using a PIN as an additional factor\" or \"using a password as an additional factor\" must be factor\" or \"using a password as an additional factor\" must be selected. If \"hybrid\" is not selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), selected. If \"hybrid\" is not selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), then the authentication template must be secured by other means, which then the authentication template must be secured by other means, which should be specified in the assignment. Since compromised authentication should be specified in the assignment. Since compromised authentication templates can be used in generating presentation/spoof attacks, it is templates can be used in generating presentation/spoof attacks, it is important to utilize secure methods for protecting them.]{.note} important to utilize secure methods for protecting them.]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FDP\_PBA\_EXT.1](#FDP_PBA_EXT.1):\ | ::: {.component-activity-header} > [FDP\_PBA\_EXT.1](#FDP_PBA_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall determine that the [TSS](#abbr_TSS) contains a The evaluator shall determine that the [TSS](#abbr_TSS) contains a description of the activities that happen during biometric description of the activities that happen during biometric authentication.\ authentication.\ \ \ The evaluator shall ensure that the authentication template is protected The evaluator shall ensure that the authentication template is protected either using a PIN or by other secure means, as specified by the either using a PIN or by other secure means, as specified by the vendor.\ vendor.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this component.\ | ::: {.ea} > There are no test evaluation activities for this component. ::: ::: ::: ::: ::: ::: ::: ::: B.3 Class: Identification and Authentication (FIA) {#fia-obj .indexable data-level="2 | B.3 Class: Identification and Authentication (FIA) {#fia-sel-based .indexable data-le -------------------------------------------------- -------------------------------------------------- ::: {#FIA_BMG_EXT.1 .comp} ::: {#FIA_BMG_EXT.1 .comp} #### FIA\_BMG\_EXT.1 Accuracy of Biometric Authentication #### FIA\_BMG\_EXT.1 Accuracy of Biometric Authentication ::: {.statustag} ::: {.statustag} ***The inclusion of this selection-based component depends upon a | ***The inclusion of this selection-based component depends upon selection in [FIA\_UAU.5.1](#FIA_UAU.5.1), [FIA\_UAU.5.1](#FIA_UAU.5.1), | selection in [FIA\_UAU.5.1](#FIA_UAU.5.1).*** [FIA\_UAU.5.1](#FIA_UAU.5.1), [FIA\_UAU.5.1](#FIA_UAU.5.1), < [FIA\_UAU.5.1](#FIA_UAU.5.1), [FIA\_UAU.5.1](#FIA_UAU.5.1).*** < ::: ::: ::: {.element} ::: {.element} ::: {#FIA_BMG_EXT.1.1 .reqid} ::: {#FIA_BMG_EXT.1.1 .reqid} [FIA\_BMG\_EXT.1.1](#FIA_BMG_EXT.1.1){.abbr} [FIA\_BMG\_EXT.1.1](#FIA_BMG_EXT.1.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The one-attempt [BAF](#abbr_BAF) False Accept Rate ([FAR](#abbr_FAR)) The one-attempt [BAF](#abbr_BAF) False Accept Rate ([FAR](#abbr_FAR)) for \[**assignment**: [biometric modality selected in for \[**assignment**: [biometric modality selected in [FIA\_UAU.5.1](#FIA_UAU.5.1)]{.assignable-content}\] shall not exceed [FIA\_UAU.5.1](#FIA_UAU.5.1)]{.assignable-content}\] shall not exceed \[**assignment**: [ claimed [FAR](#abbr_FAR) no greater than \[**assignment**: [ claimed [FAR](#abbr_FAR) no greater than 1:100]{.assignable-content}\] with a one-attempt [BAF](#abbr_BAF) False 1:100]{.assignable-content}\] with a one-attempt [BAF](#abbr_BAF) False Reject Rate ([FRR](#abbr_FRR)) not to exceed 1 in \[**assignment**: Reject Rate ([FRR](#abbr_FRR)) not to exceed 1 in \[**assignment**: [claimed [FRR](#abbr_FRR) no greater than 1:10]{.assignable-content}\]. [claimed [FRR](#abbr_FRR) no greater than 1:10]{.assignable-content}\]. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[If a [BAF](#abbr_BAF) or \"hybrid\" [Application Note: ]{.note-header}[If a [BAF](#abbr_BAF) or \"hybrid\" is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), [FIA\_BMG\_EXT.1.1](#FIA_BMG_EXT.1.1) must be included in the [FIA\_BMG\_EXT.1.1](#FIA_BMG_EXT.1.1) must be included in the [ST](#abbr_ST). The assignment must be completed for each biometric [ST](#abbr_ST). The assignment must be completed for each biometric modality selected in [FIA\_UAU.5.1](#FIA_UAU.5.1). If multiple biometric modality selected in [FIA\_UAU.5.1](#FIA_UAU.5.1). If multiple biometric modalities are selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), it is modalities are selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), it is acceptable for each modality to have a different [FAR](#abbr_FAR) and acceptable for each modality to have a different [FAR](#abbr_FAR) and [FRR](#abbr_FRR).\ [FRR](#abbr_FRR).\ \ \ The False Accept Rate ([FAR](#abbr_FAR)) is the measure of the The False Accept Rate ([FAR](#abbr_FAR)) is the measure of the likelihood that the biometric will incorrectly accept an authentication likelihood that the biometric will incorrectly accept an authentication attempt by an unauthorized user. A system\'s [FAR](#abbr_FAR) typically attempt by an unauthorized user. A system\'s [FAR](#abbr_FAR) typically is stated as the proportion of verification transactions with wrongful is stated as the proportion of verification transactions with wrongful claims of identity that are incorrectly confirmed.\ claims of identity that are incorrectly confirmed.\ \ \ The False Reject Rate ([FRR](#abbr_FRR)) is the measure of the The False Reject Rate ([FRR](#abbr_FRR)) is the measure of the likelihood that the biometric security system will incorrectly reject an likelihood that the biometric security system will incorrectly reject an authentication attempt by an authorized user. A system\'s authentication attempt by an authorized user. A system\'s [FRR](#abbr_FRR) typically is stated as the proportion of verification [FRR](#abbr_FRR) typically is stated as the proportion of verification transactions with truthful claims of identity that are incorrectly transactions with truthful claims of identity that are incorrectly denied.\ denied.\ \ \ Please note that without the use of hybrid authentication, multiple Please note that without the use of hybrid authentication, multiple authentication attempts for a [BAF](#abbr_BAF) that is claimed to have a authentication attempts for a [BAF](#abbr_BAF) that is claimed to have a one-attempt [FAR](#abbr_FAR) between 1:100 and 1:500 inclusive will not one-attempt [FAR](#abbr_FAR) between 1:100 and 1:500 inclusive will not produce an acceptable SAFAR in meeting | produce an acceptable [SAFAR](#abbr_SAFAR) in meeting [FIA\_BMG\_EXT.1.2](#FIA_BMG_EXT.1.2). More generally, depending on the [FIA\_BMG\_EXT.1.2](#FIA_BMG_EXT.1.2). More generally, depending on the number of authentication attempts allowed for the [BAF](#abbr_BAF), the number of authentication attempts allowed for the [BAF](#abbr_BAF), the claimed [FAR](#abbr_FAR) must be strong (or equivalently, low) enough so claimed [FAR](#abbr_FAR) must be strong (or equivalently, low) enough so that the SAFAR chosen in [FIA\_BMG\_EXT.1.2](#FIA_BMG_EXT.1.2) can be | that the [SAFAR](#abbr_SAFAR) chosen in met within the 1% margin mandated.\ | [FIA\_BMG\_EXT.1.2](#FIA_BMG_EXT.1.2) can be met within the 1% margin > mandated.\ \ \ Generally testing environments for a biometric system in a mobile device Generally testing environments for a biometric system in a mobile device are based on a single legitimate user enrolling and test subjects are based on a single legitimate user enrolling and test subjects attempt to authenticate. Since a thorough evaluation for attempt to authenticate. Since a thorough evaluation for [FAR](#abbr_FAR) and [FRR](#abbr_FRR) meeting all the conditions of [FAR](#abbr_FAR) and [FRR](#abbr_FRR) meeting all the conditions of statistical independence is not feasible in the timeframe of | statistical independence is not feasible in the time frame of [CC](#abbr_CC) evaluations and in agreement with ISO/IEC 19795, the use [CC](#abbr_CC) evaluations and in agreement with ISO/IEC 19795, the use of offline testing is acceptable even if this causes the biometric of offline testing is acceptable even if this causes the biometric system to deviate slightly from the evaluated configuration. system to deviate slightly from the evaluated configuration. Additionally, full cross-comparison (i.e. all test subjects are compared Additionally, full cross-comparison (i.e. all test subjects are compared to non-self) is acceptable.\ to non-self) is acceptable.\ \ \ Detailed explanations corresponding to the testing environments that are Detailed explanations corresponding to the testing environments that are acceptable, to include the number of trials needed, can be found in acceptable, to include the number of trials needed, can be found in [Section G.1 Experimental Setups And Error Bars In Testing FAR And [Section G.1 Experimental Setups And Error Bars In Testing FAR And FRR](#biometric1){.dynref}.\ FRR](#biometric1){.dynref}.\ \ \ ]{.note} ]{.note} ::: ::: ::: ::: ::: ::: ::: {.element} ::: {.element} ::: {#FIA_BMG_EXT.1.2 .reqid} ::: {#FIA_BMG_EXT.1.2 .reqid} [FIA\_BMG\_EXT.1.2](#FIA_BMG_EXT.1.2){.abbr} [FIA\_BMG\_EXT.1.2](#FIA_BMG_EXT.1.2){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The overall System Authentication False Accept Rate (SAFAR) shall be no | The overall System Authentication False Accept Rate greater than 1 in \[**assignment**: [ a SAFAR no greater than | ([SAFAR](#abbr_SAFAR)) shall be no greater than 1 in \[**assignment**: [ 1:500]{.assignable-content}\] within a 1% margin. | a [SAFAR](#abbr_SAFAR) no greater than 1:500]{.assignable-content}\] > within a 1% margin. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[If a [BAF](#abbr_BAF) or \"hybrid\" [Application Note: ]{.note-header}[If a [BAF](#abbr_BAF) or \"hybrid\" is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), is selected in [FIA\_UAU.5.1](#FIA_UAU.5.1), [FIA\_BMG\_EXT.1.2](#FIA_BMG_EXT.1.2) must be included in the [FIA\_BMG\_EXT.1.2](#FIA_BMG_EXT.1.2) must be included in the [ST](#abbr_ST).\ [ST](#abbr_ST).\ \ \ System Authentication False Accept Rate (SAFAR) is defined by the | System Authentication False Accept Rate ([SAFAR](#abbr_SAFAR)) is combination of individual error rates for each authentication factor and | defined by the combination of individual error rates for each attempts used for access to a single session on the device.\ | authentication factor and attempts used for access to a single session > on the device.\ \ \ Accessing a single session may involve a single authentication factor, Accessing a single session may involve a single authentication factor, in which case the SAFAR for a single attempt will be equal to the false | in which case the [SAFAR](#abbr_SAFAR) for a single attempt will be accept rate ([FAR](#abbr_FAR)) of that authentication factor and the | equal to the false accept rate ([FAR](#abbr_FAR)) of that authentication SAFAR for n attempts will be \$1-\\left(1-FAR\\right)\^n\$, assuming | factor and the [SAFAR](#abbr_SAFAR) for n attempts will be independence.\ | \$1-\\left(1-FAR\\right)\^n\$, assuming independence.\ \ \ Accessing a single session on the device may involve the ability to use Accessing a single session on the device may involve the ability to use multiple authentication factors. It may be the case that only one multiple authentication factors. It may be the case that only one authentication factor is needed to access a single session on the device authentication factor is needed to access a single session on the device (i.e. both a password and a [BAF](#abbr_BAF) can be used, but only one (i.e. both a password and a [BAF](#abbr_BAF) can be used, but only one is needed) or that both authentication factors are needed to access a is needed) or that both authentication factors are needed to access a single session on the device (i.e. both the [BAF](#abbr_BAF) and a PIN single session on the device (i.e. both the [BAF](#abbr_BAF) and a PIN must be entered). The full equations for calculating the SAFAR can be | must be entered). The full equations for calculating the found in [Section G.3 SAFAR Calculation | [SAFAR](#abbr_SAFAR) can be found in [Section G.3 SAFAR Calculation Equations](#biometric3){.dynref}. A fully worked-out example that Equations](#biometric3){.dynref}. A fully worked-out example that applies the equations in [Section G.3 SAFAR Calculation applies the equations in [Section G.3 SAFAR Calculation Equations](#biometric3){.dynref} for calculating the SAFAR can be found | Equations](#biometric3){.dynref} for calculating the in [Section G.4 SAFAR Calculation Example](#biometric4){.dynref}.\ | [SAFAR](#abbr_SAFAR) can be found in [Section G.4 SAFAR Calculation \ | Example](#biometric4){.dynref}.\ The worst-case scenario must be used to calculate the SAFAR. Thus the | \ authentication factor with the highest [FAR](#abbr_FAR) must be used for | The worst-case scenario must be used to calculate the the maximum number of authentication attempts allowed for that factor. | [SAFAR](#abbr_SAFAR). Thus the authentication factor with the highest If any authentication attempts remain, then the authentication factor | [FAR](#abbr_FAR) must be used for the maximum number of authentication with the second highest [FAR](#abbr_FAR) is used for the maximum number | attempts allowed for that factor. If any authentication attempts remain, of authentication attempts allowed for that factor and so on. For | then the authentication factor with the second highest [FAR](#abbr_FAR) example, the [TOE](#abbr_TOE) supports a password and a | is used for the maximum number of authentication attempts allowed for [BAF](#abbr_BAF), the [FAR](#abbr_FAR) for the [BAF](#abbr_BAF) is | that factor and so on. For example, the [TOE](#abbr_TOE) supports a higher than the [FAR](#abbr_FAR) for the password and each | password and a [BAF](#abbr_BAF), the [FAR](#abbr_FAR) for the authentication factor utilizes a shared counter per | [BAF](#abbr_BAF) is higher than the [FAR](#abbr_FAR) for the password > and each authentication factor utilizes a shared counter per [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1). Then the worst-case scenario is the [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1). Then the worst-case scenario is the [BAF](#abbr_BAF) is utilized for the maximum number of authentication [BAF](#abbr_BAF) is utilized for the maximum number of authentication attempts allowed for the [BAF](#abbr_BAF). For any remaining attempts allowed for the [BAF](#abbr_BAF). For any remaining authentication attempts allowed the password is utilized.\ authentication attempts allowed the password is utilized.\ \ \ Another example is the [TOE](#abbr_TOE) supports a password and two Another example is the [TOE](#abbr_TOE) supports a password and two BAFs, where the BAFs have different FARs, with both FARs being higher | [BAFs](#abbr_BAF), where the [BAFs](#abbr_BAF) have different than the password [FAR](#abbr_FAR). Then the worst-case scenario is that | [FARs](#abbr_FAR), with both [FARs](#abbr_FAR) being higher than the the [BAF](#abbr_BAF) with the highest [FAR](#abbr_FAR) is used for the | password [FAR](#abbr_FAR). Then the worst-case scenario is that the > [BAF](#abbr_BAF) with the highest [FAR](#abbr_FAR) is used for the maximum number of authentication attempts allowed for that maximum number of authentication attempts allowed for that [BAF](#abbr_BAF), followed by the second [BAF](#abbr_BAF) if any [BAF](#abbr_BAF), followed by the second [BAF](#abbr_BAF) if any authentication attempts are allowed for that [BAF](#abbr_BAF). If any authentication attempts are allowed for that [BAF](#abbr_BAF). If any authentication attempts remain, then the password is utilized for those authentication attempts remain, then the password is utilized for those attempts.\ attempts.\ \ \ The 1% margin is included for cases where a [BAF](#abbr_BAF) is not a The 1% margin is included for cases where a [BAF](#abbr_BAF) is not a critical authentication factor and thus both [BAF](#abbr_BAF) and critical authentication factor and thus both [BAF](#abbr_BAF) and password can be used in a session without exceeding the declared SAFAR.\ | password can be used in a session without exceeding the declared > [SAFAR](#abbr_SAFAR).\ \ \ ]{.note} ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FIA\_BMG\_EXT.1](#FIA_BMG_EXT.1):\ | ::: {.component-activity-header} > [FIA\_BMG\_EXT.1](#FIA_BMG_EXT.1) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} The evaluator shall verify that the [TSS](#abbr_TSS) contains evidence The evaluator shall verify that the [TSS](#abbr_TSS) contains evidence supporting the testing and calculations completed to determine the supporting the testing and calculations completed to determine the [FAR](#abbr_FAR) and [FRR](#abbr_FRR). [Appendix G - Biometric [FAR](#abbr_FAR) and [FRR](#abbr_FRR). [Appendix G - Biometric Derivation and Examples](#biometric){.dynref} provides guidance to how Derivation and Examples](#biometric){.dynref} provides guidance to how this testing could be completed and to what error bars are expected when this testing could be completed and to what error bars are expected when the Rule of 3 is applied. The evaluator shall consult [Appendix G - the Rule of 3 is applied. The evaluator shall consult [Appendix G - Biometric Derivation and Examples](#biometric){.dynref} as a reference, Biometric Derivation and Examples](#biometric){.dynref} as a reference, but should not treat it as a mandate. The evaluator shall verify that but should not treat it as a mandate. The evaluator shall verify that the [TSS](#abbr_TSS) contains evidence of whether online or offline the [TSS](#abbr_TSS) contains evidence of whether online or offline testing was used. If offline testing was completed, evidence describing testing was used. If offline testing was completed, evidence describing the differences between the biometric system used for testing and the the differences between the biometric system used for testing and the [TOE](#abbr_TOE) in the evaluated configuration, if any must be [TOE](#abbr_TOE) in the evaluated configuration, if any must be included.\ included.\ \ \ The following documentation is not required to be part of the The following documentation is not required to be part of the [TSS](#abbr_TSS) - it may be submitted as a separate proprietary [TSS](#abbr_TSS) - it may be submitted as a separate proprietary document. The evaluator shall verify the evidence includes how many document. The evaluator shall verify the evidence includes how many imposters were used for testing and that the testing describes how imposters were used for testing and that the testing describes how imposters are compared to enrolled users, for example, if multiple imposters are compared to enrolled users, for example, if multiple devices for online testing or full cross-comparison for offline testing devices for online testing or full cross-comparison for offline testing was used. Adequate documentation is required to demonstrate that testing was used. Adequate documentation is required to demonstrate that testing was completed to support the claimed [FAR](#abbr_FAR) and was completed to support the claimed [FAR](#abbr_FAR) and [FRR](#abbr_FRR).\ [FRR](#abbr_FRR).\ \ \ \ < < ::: {.eacategory} < Guidance < ::: < < There are no guidance evaluation activities for this element.\ < \ < \ < < ::: {.eacategory} < Tests < ::: < < There are no test evaluation activities for this element.\ < ::: < < ::: {.activity} < ::: {.eacategory} < [TSS](#abbr_TSS) < ::: < < The evaluator shall verify that the [TSS](#abbr_TSS) indicates which The evaluator shall verify that the [TSS](#abbr_TSS) indicates which SAFAR the [TOE](#abbr_TOE) is targeting and contains evidence supporting | [SAFAR](#abbr_SAFAR) the [TOE](#abbr_TOE) is targeting and contains the calculations, per [Section G.3 SAFAR Calculation | evidence supporting the calculations, per [Section G.3 SAFAR Calculation Equations](#biometric3){.dynref}, completed to determine the SAFAR. The | Equations](#biometric3){.dynref}, completed to determine the evaluator shall verify that the [TSS](#abbr_TSS) contains evidence of | [SAFAR](#abbr_SAFAR). The evaluator shall verify that the how the authentication factors interact, per | [TSS](#abbr_TSS) contains evidence of how the authentication factors [FIA\_UAU.5.2](#FIA_UAU.5.2) and [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1). The | interact, per [FIA\_UAU.5.2](#FIA_UAU.5.2) and evaluator shall verify that the [TSS](#abbr_TSS), contains the | [FIA\_AFL\_EXT.1](#FIA_AFL_EXT.1). The evaluator shall verify that the combination(s) of authentication factors needed to meet the SAFAR, and | [TSS](#abbr_TSS), contains the combination(s) of authentication factors the number of attempts for each authentication factor the | needed to meet the [SAFAR](#abbr_SAFAR), and the number of attempts for [TOE](#abbr_TOE) is configured to allow. Adequate documentation is | each authentication factor the [TOE](#abbr_TOE) is configured to allow. required to demonstrate the calculations completed to support the | Adequate documentation is required to demonstrate the calculations claimed SAFAR.\ | completed to support the claimed [SAFAR](#abbr_SAFAR).\ \ < \ \ > ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this element.\ There are no guidance evaluation activities for this element.\ \ \ > There are no guidance evaluation activities for this element.\ \ \ > ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: There are no test evaluation activities for this element.\ | ::: {.ea} > There are no test evaluation activities for this element.There are no > test evaluation activities for this element. ::: ::: ::: ::: ::: ::: ::: ::: B.4 Class: Protection of the TSF (FPT) {#fpt-obj .indexable data-level="2"} | B.4 Class: Protection of the TSF (FPT) {#fpt-sel-based .indexable data-level="2"} -------------------------------------- -------------------------------------- ::: {#FPT_TST_EXT.3 .comp} ::: {#FPT_TST_EXT.3 .comp} #### FPT\_TST\_EXT.3 TSF Integrity Testing #### FPT\_TST\_EXT.3 TSF Integrity Testing ::: {.statustag} ::: {.statustag} ***The inclusion of this selection-based component depends upon a | ***The inclusion of this selection-based component depends upon selection in [FIA\_X509\_EXT.2.1](#FIA_X509_EXT.2.1).*** selection in [FIA\_X509\_EXT.2.1](#FIA_X509_EXT.2.1).*** ::: ::: ::: {.element} ::: {.element} ::: {#FPT_TST_EXT.3.1 .reqid} ::: {#FPT_TST_EXT.3.1 .reqid} [FPT\_TST\_EXT.3.1](#FPT_TST_EXT.3.1){.abbr} [FPT\_TST\_EXT.3.1](#FPT_TST_EXT.3.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall not execute code if the code signing The [TSF](#abbr_TSF) shall not execute code if the code signing certificate is deemed invalid. certificate is deemed invalid. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[Certificates may optionally be used [Application Note: ]{.note-header}[Certificates may optionally be used for code signing for integrity verification for code signing for integrity verification ([FPT\_TST\_EXT.2.1/PREKERNEL](#FPT_TST_EXT.2.1/PREKERNEL)). If \"code ([FPT\_TST\_EXT.2.1/PREKERNEL](#FPT_TST_EXT.2.1/PREKERNEL)). If \"code signing for integrity verification\" is selected in signing for integrity verification\" is selected in [FIA\_X509\_EXT.2.1](#FIA_X509_EXT.2.1), [FIA\_X509\_EXT.2.1](#FIA_X509_EXT.2.1), [FPT\_TST\_EXT.3.1](#FPT_TST_EXT.3.1) must be included in the [FPT\_TST\_EXT.3.1](#FPT_TST_EXT.3.1) must be included in the [ST](#abbr_ST).\ [ST](#abbr_ST).\ \ \ Validity is determined by the certificate path, the expiration date, and Validity is determined by the certificate path, the expiration date, and the revocation status in accordance with RFC 5280. ]{.note} the revocation status in accordance with RFC 5280. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_TST\_EXT.3](#FPT_TST_EXT.3):\ | ::: {.component-activity-header} > [FPT\_TST\_EXT.3](#FPT_TST_EXT.3) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} Testing for this element is performed in conjunction with the Evaluation Testing for this element is performed in conjunction with the Evaluation Activities for Activities for [FPT\_TST\_EXT.2.1/PREKERNEL](#FPT_TST_EXT.2.1/PREKERNEL).\ | [FPT\_TST\_EXT.2.1/PREKERNEL](#FPT_TST_EXT.2.1/PREKERNEL). ::: ::: ::: ::: ::: ::: ::: ::: ::: {#FPT_TUD_EXT.4 .comp} ::: {#FPT_TUD_EXT.4 .comp} #### FPT\_TUD\_EXT.4 Trusted Update Verification #### FPT\_TUD\_EXT.4 Trusted Update Verification ::: {.statustag} ::: {.statustag} ***The inclusion of this selection-based component depends upon a | ***The inclusion of this selection-based component depends upon selection in [FIA\_X509\_EXT.2.1](#FIA_X509_EXT.2.1), | selection in [FIA\_X509\_EXT.2.1](#FIA_X509_EXT.2.1).*** [FIA\_X509\_EXT.2.1](#FIA_X509_EXT.2.1).*** < ::: ::: ::: {.element} ::: {.element} ::: {#FPT_TUD_EXT.4.1 .reqid} ::: {#FPT_TUD_EXT.4.1 .reqid} [FPT\_TUD\_EXT.4.1](#FPT_TUD_EXT.4.1){.abbr} [FPT\_TUD\_EXT.4.1](#FPT_TUD_EXT.4.1){.abbr} ::: ::: ::: {.reqdesc} ::: {.reqdesc} The [TSF](#abbr_TSF) shall not install code if the code signing The [TSF](#abbr_TSF) shall not install code if the code signing certificate is deemed invalid. certificate is deemed invalid. ::: {.appnote} ::: {.appnote} [Application Note: ]{.note-header}[Certificates may optionally be used [Application Note: ]{.note-header}[Certificates may optionally be used for code signing of system software updates for code signing of system software updates ([FPT\_TUD\_EXT.2.3](#FPT_TUD_EXT.2.3)) and of mobile applications ([FPT\_TUD\_EXT.2.3](#FPT_TUD_EXT.2.3)) and of mobile applications ([FPT\_TUD\_EXT.5.1](#FPT_TUD_EXT.5.1)). This element must be included ([FPT\_TUD\_EXT.5.1](#FPT_TUD_EXT.5.1)). This element must be included in the [ST](#abbr_ST) if certificates are used for either update in the [ST](#abbr_ST) if certificates are used for either update element. If either \"code signing for system software updates\" or element. If either \"code signing for system software updates\" or \"code signing for mobile applications\" is selected in \"code signing for mobile applications\" is selected in [FIA\_X509\_EXT.2.1](#FIA_X509_EXT.2.1), [FIA\_X509\_EXT.2.1](#FIA_X509_EXT.2.1), [FPT\_TUD\_EXT.4.1](#FPT_TUD_EXT.4.1) must be included in the [FPT\_TUD\_EXT.4.1](#FPT_TUD_EXT.4.1) must be included in the [ST](#abbr_ST).\ [ST](#abbr_ST).\ \ \ Validity is determined by the certificate path, the expiration date, and Validity is determined by the certificate path, the expiration date, and the revocation status in accordance with RFC 5280. ]{.note} the revocation status in accordance with RFC 5280. ]{.note} ::: ::: ::: ::: ::: ::: ::: {.activity_pane .hide} ::: {.activity_pane .hide} ::: {.activity_pane_header} ::: {.activity_pane_header} [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) [[ Evaluation Activities ]{.activity_pane_label}[]{.toggler}](#) ::: ::: ::: {.activity_pane_body} ::: {.activity_pane_body} [FPT\_TUD\_EXT.4](#FPT_TUD_EXT.4):\ | ::: {.component-activity-header} > [FPT\_TUD\_EXT.4](#FPT_TUD_EXT.4) > ::: ::: {.activity} < ::: {.eacategory} ::: {.eacategory} [TSS](#abbr_TSS) [TSS](#abbr_TSS) ::: ::: > ::: {.ea} There are no [TSS](#abbr_TSS) evaluation activities for this component.\ There are no [TSS](#abbr_TSS) evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Guidance Guidance ::: ::: > ::: {.ea} There are no guidance evaluation activities for this component.\ There are no guidance evaluation activities for this component.\ \ \ \ | ::: ::: {.eacategory} ::: {.eacategory} Tests Tests ::: ::: > ::: {.ea} Testing for this element is performed in conjunction with the Evaluation Testing for this element is performed in conjunction with the Evaluation Activities for [FPT\_TUD\_EXT.2](#FPT_TUD_EXT.2) and Activities for [FPT\_TUD\_EXT.2](#FPT_TUD_EXT.2) and [FPT\_TUD\_EXT.5](#FPT_TUD_EXT.5).\ | [FPT\_TUD\_EXT.5](#FPT_TUD_EXT.5). ::: ::: ::: ::: ::: ::: ::: ::: Appendix C - Implicitly Satisfied Requirements {#satisfiedreqs .indexable data-level= Appendix C - Implicitly Satisfied Requirements {#satisfiedreqs .indexable data-level= ============================================== ============================================== This appendix lists requirements that should be considered satisfied by This appendix lists requirements that should be considered satisfied by products successfully evaluated against this Protection Profile. | products successfully evaluated against this [PP](#abbr_PP). These However, these requirements are not featured explicitly as SFRs and | requirements are not featured explicitly as [SFRs](#abbr_SFR) and should should not be included in the [ST](#abbr_ST). They are not included as | not be included in the [ST](#abbr_ST). They are not included as standalone SFRs because it would increase the time, cost, and complexity | standalone [SFRs](#abbr_SFR) because it would increase the time, cost, of evaluation. This approach is permitted by [\[CC\]](#bibCC) Part 1, | and complexity of evaluation. This approach is permitted by **8.2 Dependencies between components**. | [\[CC\]](#bibCC) Part 1, 8.2 Dependencies between components. This information benefits systems engineering activities which call for This information benefits systems engineering activities which call for inclusion of particular security controls. Evaluation against the inclusion of particular security controls. Evaluation against the Protection Profile provides evidence that these controls are present and | [PP](#abbr_PP) provides evidence that these controls are present and have been evaluated. have been evaluated. Requirement Rationale for Satisf Requirement Rationale for Satisf -------------------------------------------------------------- -------------------- -------------------------------------------------------------- -------------------- [FAU\_SEL.1](#FAU_SEL.1) - Selective Audit [FAU\_SEL.1](#FAU_SE [FAU\_SEL.1](#FAU_SEL.1) - Selective Audit [FAU\_SEL.1](#FAU_SE [FCS\_CKM.1](#FCS_CKM.1) - Cryptographic Key Generation [FCS\_CKM.1](#FCS_CK [FCS\_CKM.1](#FCS_CKM.1) - Cryptographic Key Generation [FCS\_CKM.1](#FCS_CK [FCS\_CKM.1](#FCS_CKM.1) - Cryptographic Key Generation [FCS\_CKM.1](#FCS_CK [FCS\_CKM.1](#FCS_CKM.1) - Cryptographic Key Generation [FCS\_CKM.1](#FCS_CK FCS\_CKM.2 - Cryptographic Key Establishment Both iterations of F FCS\_CKM.2 - Cryptographic Key Establishment Both iterations of F FCS\_COP.1 - Cryptographic Operation All iterations of FC FCS\_COP.1 - Cryptographic Operation All iterations of FC [FIA\_UAU.7](#FIA_UAU.7) - Protected Authentication Feedback [FIA\_UAU.7](#FIA_UA [FIA\_UAU.7](#FIA_UAU.7) - Protected Authentication Feedback [FIA\_UAU.7](#FIA_UA Appendix D - Entropy Documentation And Assessment {#entropy .indexable data-level="A" Appendix D - Entropy Documentation And Assessment {#entropy .indexable data-level="A" ================================================= ================================================= The documentation of the entropy source should be detailed enough that, The documentation of the entropy source should be detailed enough that, after reading, the evaluator will thoroughly understand the entropy after reading, the evaluator will thoroughly understand the entropy source and why it can be relied upon to provide entropy. This source and why it can be relied upon to provide entropy. This documentation should include multiple detailed sections: design documentation should include multiple detailed sections: design description, entropy justification, operating conditions, and health description, entropy justification, operating conditions, and health testing. This documentation is not required to be part of the testing. This documentation is not required to be part of the [TSS](#abbr_TSS). [TSS](#abbr_TSS). ### D.1 Design Description {#description .indexable data-level="2"} | D.1 Design Description {#description .indexable data-level="2"} > ---------------------- Documentation shall include the design of the entropy source as a whole, Documentation shall include the design of the entropy source as a whole, including the interaction of all entropy source components. It will including the interaction of all entropy source components. It will describe the operation of the entropy source to include how it works, describe the operation of the entropy source to include how it works, how entropy is produced, and how unprocessed (raw) data can be obtained how entropy is produced, and how unprocessed (raw) data can be obtained from within the entropy source for testing purposes. The documentation from within the entropy source for testing purposes. The documentation should walk through the entropy source design indicating where the should walk through the entropy source design indicating where the random comes from, where it is passed next, any post-processing of the random comes from, where it is passed next, any post-processing of the raw outputs (hash, XOR, etc.), if/where it is stored, and finally, how raw outputs (hash, XOR, etc.), if/where it is stored, and finally, how it is output from the entropy source. Any conditions placed on the it is output from the entropy source. Any conditions placed on the process (e.g., blocking) should also be described in the entropy source process (e.g., blocking) should also be described in the entropy source design. Diagrams and examples are encouraged.\ design. Diagrams and examples are encouraged.\ \ \ This design must also include a description of the content of the This design must also include a description of the content of the security boundary of the entropy source and a description of how the security boundary of the entropy source and a description of how the security boundary ensures that an adversary outside the boundary cannot security boundary ensures that an adversary outside the boundary cannot affect the entropy rate.\ affect the entropy rate.\ \ \ If implemented, the design description shall include a description of If implemented, the design description shall include a description of how third-party applications can add entropy to the [RBG](#abbr_RBG). A how third-party applications can add entropy to the [RBG](#abbr_RBG). A description of any [RBG](#abbr_RBG) state saving between power-off and description of any [RBG](#abbr_RBG) state saving between power-off and power-on shall be included. power-on shall be included. ### D.2 Entropy Justification {#justification .indexable data-level="2"} | D.2 Entropy Justification {#justification .indexable data-level="2"} > ------------------------- There should be a technical argument for where the unpredictability in There should be a technical argument for where the unpredictability in the source comes from and why there is confidence in the entropy source the source comes from and why there is confidence in the entropy source exhibiting probabilistic behavior (an explanation of the probability exhibiting probabilistic behavior (an explanation of the probability distribution and justification for that distribution given the distribution and justification for that distribution given the particular source is one way to describe this). This argument will particular source is one way to describe this). This argument will include a description of the expected entropy rate and explain how you include a description of the expected entropy rate and explain how you ensure that sufficient entropy is going into the [TOE](#abbr_TOE) ensure that sufficient entropy is going into the [TOE](#abbr_TOE) randomizer seeding process. This discussion will be part of a randomizer seeding process. This discussion will be part of a justification for why the entropy source can be relied upon to produce justification for why the entropy source can be relied upon to produce bits with entropy.\ bits with entropy.\ \ \ The entropy justification shall not include any data added from any The entropy justification shall not include any data added from any third-party application or from any state saving between restarts. third-party application or from any state saving between restarts. ### D.3 Operating Conditions {#conditions .indexable data-level="2"} | D.3 Operating Conditions {#conditions .indexable data-level="2"} > ------------------------ Documentation will also include the range of operating conditions under Documentation will also include the range of operating conditions under which the entropy source is expected to generate random data. It will which the entropy source is expected to generate random data. It will clearly describe the measures that have been taken in the system design clearly describe the measures that have been taken in the system design to ensure the entropy source continues to operate under those to ensure the entropy source continues to operate under those conditions. Similarly, documentation shall describe the conditions under conditions. Similarly, documentation shall describe the conditions under which the entropy source is known to malfunction or become inconsistent. which the entropy source is known to malfunction or become inconsistent. Methods used to detect failure or degradation of the source shall be Methods used to detect failure or degradation of the source shall be included. included. ### D.4 Health Testing {#testing .indexable data-level="2"} | D.4 Health Testing {#testing .indexable data-level="2"} > ------------------ More specifically, all entropy source health tests and their rationale More specifically, all entropy source health tests and their rationale will be documented. This will include a description of the health tests, will be documented. This will include a description of the health tests, the rate and conditions under which each health test is performed (e.g., the rate and conditions under which each health test is performed (e.g., at startup, continuously, or on-demand), the expected results for each at startup, continuously, or on-demand), the expected results for each health test, and rationale indicating why each test is believed to be health test, and rationale indicating why each test is believed to be appropriate for detecting one or more failures in the entropy source. appropriate for detecting one or more failures in the entropy source. Appendix E - Use Case Templates {#use .indexable data-level="A"} Appendix E - Use Case Templates {#use .indexable data-level="A"} =============================== =============================== The following use case templates list those selections, assignments, and The following use case templates list those selections, assignments, and objective requirements that best support the use cases identified by objective requirements that best support the use cases identified by this Protection Profile. Note that the templates assume that all SFRs | this Protection Profile. Note that the templates assume that all listed in [Section 5.1 Security Functional Requirements](#sfr){.dynref} | [SFRs](#abbr_SFR) listed in [Section 5.1 Security Functional are included in the [ST](#abbr_ST), not just those listed in the | Requirements](#sfr){.dynref} are included in the [ST](#abbr_ST), not templates. These templates and deviations from the template should be | just those listed in the templates. These templates and deviations from identified in the Security Target to assist customers with making | the template should be identified in the Security Target to assist risk-based purchasing decisions. Products that do not meet these | customers with making risk-based purchasing decisions. Products that do templates are not precluded from use in the scenarios identified by this | not meet these templates are not precluded from use in the scenarios Protection Profile.\ | identified by this Protection Profile.\ \ \ Several of the use cases templates include objective requirements that Several of the use cases templates include objective requirements that are strongly desired for the indicated use cases. Readers can expect are strongly desired for the indicated use cases. Readers can expect those requirements to be made mandatory in a future revision of this those requirements to be made mandatory in a future revision of this protection profile, and industry should aim to include that security protection profile, and industry should aim to include that security functionality in products in the near-term.\ functionality in products in the near-term.\ \ \ Where selections for a particular requirement are not identified in a Where selections for a particular requirement are not identified in a use case template, all available selections are equally applicable to use case template, all available selections are equally applicable to the use case. the use case. ### E.1 \[USE CASE 1\] Enterprise-owned device for general-purpose enterprise use {#u | E.1 \[USE CASE 1\] Enterprise-owned device for general-purpose enterprise use {#useca > ----------------------------------------------------------------------------- [Table [10]{.counter}: Enterprise-Owned Template]{#uc1 .ctr [Table [10]{.counter}: Enterprise-Owned Template]{#uc1 .ctr data-myid="uc1" data-counter-type="ct-Table"} data-myid="uc1" data-counter-type="ct-Table"} ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------- -------- Requirement | Requirement Action [FCS\_STG\_EXT.1.4](#FCS_STG_EXT.1.4) | [FCS\_STG\_EXT.1.4](#FCS_STG_EXT.1.4) Do not s [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [[21]{.counter}](#location){.locatio | [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [21](#mf-location) Include [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [[25]{.counter}](#serverProtocols){. | [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [25](#mf-serverProtocols) Include [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [[36]{.counter}](#unlockBanner){.unl | [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [36](#mf-unlockBanner) Include [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [[39]{.counter}](#USB){.USB-ref} | [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [39](#mf-USB) Include [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [[41]{.counter}](#hotspot){.hotspot- | [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [41](#mf-hotspot) Include [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [[25]{.counter}](#serverProtocols){. | [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [25](#mf-serverProtocols) Include [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [[36]{.counter}](#unlockBanner){.unl | [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [36](#mf-unlockBanner) Include [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [[39]{.counter}](#USB){.USB-ref} | [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [39](#mf-USB) Include [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [[41]{.counter}](#hotspot){.hotspot- | [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [41](#mf-hotspot) Include [FPT\_BBD\_EXT.1.1](#FPT_BBD_EXT.1.1) | [FPT\_BBD\_EXT.1.1](#FPT_BBD_EXT.1.1) Include [FPT\_TST\_EXT.2.1/POSTKERNEL](#FPT_TST_EXT.2.1/POSTKERNEL) | [FPT\_TST\_EXT.2.1/POSTKERNEL](#FPT_TST_EXT.2.1/POSTKERNEL) Include [FPT\_TUD\_EXT.5.1](#FPT_TUD_EXT.5.1) | [FPT\_TUD\_EXT.5.1](#FPT_TUD_EXT.5.1) Include [FTA\_TAB.1.1](#FTA_TAB.1.1) | [FTA\_TAB.1.1](#FTA_TAB.1.1) Include ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------- -------- ### E.2 \[USE CASE 2\] Enterprise-owned device for specialized, high-security use {#u | E.2 \[USE CASE 2\] Enterprise-owned device for specialized, high-security use {#useca > ----------------------------------------------------------------------------- [Table [11]{.counter}: High Security Template]{#uc2 .ctr data-myid="uc2" [Table [11]{.counter}: High Security Template]{#uc2 .ctr data-myid="uc2" data-counter-type="ct-Table"} data-counter-type="ct-Table"} ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------- -------- Requirement | Requirement Action [FCS\_CKM.1.1](#FCS_CKM.1.1) | [FCS\_CKM.1.1](#FCS_CKM.1.1) Select [ [FCS\_CKM.2.1/UNLOCKED](#FCS_CKM.2.1/UNLOCKED) | [FCS\_CKM.2.1/UNLOCKED](#FCS_CKM.2.1/UNLOCKED) Select E [FCS\_CKM.2.1/LOCKED](#FCS_CKM.2.1/LOCKED) | [FCS\_CKM.2.1/LOCKED](#FCS_CKM.2.1/LOCKED) Select \ [FCS\_CKM\_EXT.1.1](#FCS_CKM_EXT.1.1) | [FCS\_CKM\_EXT.1.1](#FCS_CKM_EXT.1.1) If \"sym [FCS\_CKM\_EXT.2.1](#FCS_CKM_EXT.2.1) | [FCS\_CKM\_EXT.2.1](#FCS_CKM_EXT.2.1) Select 2 [FCS\_CKM\_EXT.3.1](#FCS_CKM_EXT.3.1) | [FCS\_CKM\_EXT.3.1](#FCS_CKM_EXT.3.1) If asymm [FCS\_COP.1.1/ENCRYPT](#FCS_COP.1.1/ENCRYPT) | [FCS\_COP.1.1/ENCRYPT](#FCS_COP.1.1/ENCRYPT) Select 2 [FCS\_COP.1.1/HASH](#FCS_COP.1.1/HASH) | [FCS\_COP.1.1/HASH](#FCS_COP.1.1/HASH) Select [ [FCS\_COP.1.1/SIGN](#FCS_COP.1.1/SIGN) | [FCS\_COP.1.1/SIGN](#FCS_COP.1.1/SIGN) Assign a [FCS\_COP.1.1/CONDITION](#FCS_COP.1.1/CONDITION) | [FCS\_COP.1.1/CONDITION](#FCS_COP.1.1/CONDITION) Select 2 [FCS\_RBG\_EXT.1.2](#FCS_RBG_EXT.1.2) | [FCS\_RBG\_EXT.1.2](#FCS_RBG_EXT.1.2) Select 2 FCS\_TLSC\_EXT.1.1 ([TLS](#abbr_TLS) Package) | FCS\_TLSC\_EXT.1.1 ([TLS](#abbr_TLS) Package) Select T FCS\_TLSC\_EXT.2.1 ([TLS](#abbr_TLS) Package) | FCS\_TLSC\_EXT.2.1 ([TLS](#abbr_TLS) Package) Select s [FDP\_DAR\_EXT.1.2](#FDP_DAR_EXT.1.2) | [FDP\_DAR\_EXT.1.2](#FDP_DAR_EXT.1.2) Select 2 [FIA\_X509\_EXT.2.2](#FIA_X509_EXT.2.2) | [FIA\_X509\_EXT.2.2](#FIA_X509_EXT.2.2) Select e [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [[3]{.counter}](#vpn){.vpn-ref} | [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [3](#mf-vpn) Include [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [[4]{.counter}](#radios){.radios-ref | [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [4](#mf-radios) Assign a [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [[5]{.counter}](#audioVisual){.audio | [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [5](#mf-audioVisual) Assign a [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [[19]{.counter}](#dar){.dar-ref} | [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [19](#mf-dar) Include [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [[21]{.counter}](#location){.locatio | [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [21](#mf-location) Include [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [[44]{.counter}](#unenroll){.unenrol | [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [44](#mf-unenroll) Include [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [[45]{.counter}](#alwaysOnVPN){.alwa | [FMT\_MOF\_EXT.1.2](#FMT_MOF_EXT.1.2) Function [45](#mf-alwaysOnVPN) Include [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [[12]{.counter}](#certWipe){.certWip | [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [12](#mf-certWipe) Assign a [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [[18]{.counter}](#notifications){.no | [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [18](#mf-notifications) Select \ [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [[24]{.counter}](#externalPorts){.ex | [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [24](#mf-externalPorts) Include [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [[25]{.counter}](#serverProtocols){. | [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [25](#mf-serverProtocols) Include [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [[36]{.counter}](#unlockBanner){.unl | [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [36](#mf-unlockBanner) Include [FMT\_SMF\_EXT.2.1](#FMT_SMF_EXT.2.1) | [FMT\_SMF\_EXT.2.1](#FMT_SMF_EXT.2.1) Select \ [FAU\_SAR.1.1](#FAU_SAR.1.1) | [FAU\_SAR.1.1](#FAU_SAR.1.1) Include [FAU\_SAR.1.2](#FAU_SAR.1.2) | [FAU\_SAR.1.2](#FAU_SAR.1.2) Include [FAU\_SEL.1.1](#FAU_SEL.1.1) | [FAU\_SEL.1.1](#FAU_SEL.1.1) Include [FCS\_SRV\_EXT.2.1](#FCS_SRV_EXT.2.1) | [FCS\_SRV\_EXT.2.1](#FCS_SRV_EXT.2.1) Include [FPT\_AEX\_EXT.5.1](#FPT_AEX_EXT.5.1) | [FPT\_AEX\_EXT.5.1](#FPT_AEX_EXT.5.1) Include [FPT\_AEX\_EXT.5.2](#FPT_AEX_EXT.5.2) | [FPT\_AEX\_EXT.5.2](#FPT_AEX_EXT.5.2) Include [FPT\_BBD\_EXT.1.1](#FPT_BBD_EXT.1.1) | [FPT\_BBD\_EXT.1.1](#FPT_BBD_EXT.1.1) Include [FTA\_TAB.1.1](#FTA_TAB.1.1) | [FTA\_TAB.1.1](#FTA_TAB.1.1) Include ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------- -------- | ### E.3 \[USE CASE 3\] Personally-owned device for personal and enterprise use {#usec | E.3 \[USE CASE 3\] Personally-owned device for personal and enterprise use {#usecase3 | -------------------------------------------------------------------------- [Table [12]{.counter}: BYOD Template]{#uc3 .ctr data-myid="uc3" | data-counter-type="ct-Table"} | [Table [12]{.counter}: [BYOD](#abbr_BYOD) Template]{#uc3 .ctr | data-myid="uc3" data-counter-type="ct-Table"} ----------------------------------------------------------------------------------- | Requirement | ----------------------------------------------------------------------- ----------- [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [[3]{.counter}](#vpn){.vpn-ref} | Requirement Action [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [[5]{.counter}](#audioVisual){.audio | [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [3](#mf-vpn) Select \"b. [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [[17]{.counter}](#entAppRemove){.ent | [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [5](#mf-audioVisual) Select \"b. [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [[28]{.counter}](#wipeEntData){.wipe | [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [17](#mf-entAppRemove) Include in [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [[44]{.counter}](#unenroll){.unenrol | [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [28](#mf-wipeEntData) Include in [FMT\_SMF\_EXT.2.1](#FMT_SMF_EXT.2.1) | [FMT\_SMF\_EXT.1.1](#FMT_SMF_EXT.1.1) Function [44](#mf-unenroll) Include in [FDP\_ACF\_EXT.1.2](#FDP_ACF_EXT.1.2) | [FMT\_SMF\_EXT.2.1](#FMT_SMF_EXT.2.1) Select \"Re [FDP\_ACF\_EXT.2.1](#FDP_ACF_EXT.2.1) | [FDP\_ACF\_EXT.1.2](#FDP_ACF_EXT.1.2) Select \"Gr ----------------------------------------------------------------------------------- | [FDP\_ACF\_EXT.2.1](#FDP_ACF_EXT.2.1) Include in > ----------------------------------------------------------------------- ----------- ### E.4 \[USE CASE 4\] Personally-owned device for personal and limited enterprise us | E.4 \[USE CASE 4\] Personally-owned device for personal and limited enterprise use {# > ---------------------------------------------------------------------------------- At this time no requirements or selections are recommended for this use At this time no requirements or selections are recommended for this use case. case. Appendix F - Initialization Vector Requirements for NIST-Approved Cipher Modes {#vect Appendix F - Initialization Vector Requirements for NIST-Approved Cipher Modes {#vect ============================================================================== ============================================================================== [Table [13]{.counter}: References and IV Requirements for [Table [13]{.counter}: References and IV Requirements for [NIST](#abbr_NIST)-approved Cipher Modes]{#ivtable .ctr [NIST](#abbr_NIST)-approved Cipher Modes]{#ivtable .ctr data-myid="ivtable" data-counter-type="ct-Table"} data-myid="ivtable" data-counter-type="ct-Table"} ----------------------------------------------------------------------------------- ----------------------------------------------------------------------------------- Cipher Mode Cipher Mode Electronic Codebook (ECB) Electronic Codebook (ECB) Counter (CTR) Counter (CTR) Cipher Block Chaining ([CBC](#abbr_CBC)) Cipher Block Chaining ([CBC](#abbr_CBC)) Output Feedback (OFB) Output Feedback (OFB) Cipher Feedback (CFB) Cipher Feedback (CFB) XEX (XOR Encrypt XOR) Tweakable Block Cipher with Ciphertext Stealing ([XTS](#abbr_ XEX (XOR Encrypt XOR) Tweakable Block Cipher with Ciphertext Stealing ([XTS](#abbr_ Cipher-based Message Authentication Code (CMAC) Cipher-based Message Authentication Code (CMAC) Key Wrap and Key Wrap with Padding Key Wrap and Key Wrap with Padding Counter with [CBC](#abbr_CBC)-Message Authentication Code ([CCM](#abbr_CCM)) Counter with [CBC](#abbr_CBC)-Message Authentication Code ([CCM](#abbr_CCM)) Galois Counter Mode ([GCM](#abbr_GCM)) Galois Counter Mode ([GCM](#abbr_GCM)) ----------------------------------------------------------------------------------- ----------------------------------------------------------------------------------- Appendix G - Biometric Derivation and Examples {#biometric .indexable data-level="A"} Appendix G - Biometric Derivation and Examples {#biometric .indexable data-level="A"} ============================================== ============================================== ### G.1 Experimental Setups And Error Bars In Testing FAR And FRR {#biometric1 .index | G.1 Experimental Setups And Error Bars In Testing FAR And FRR {#biometric1 .indexable > ------------------------------------------------------------- #### G.1.1 Introduction {#sub1 .indexable data-level="3"} | ### G.1.1 Introduction {#sub1 .indexable data-level="3"} For the purposes of this [PP](#abbr_PP), For the purposes of this [PP](#abbr_PP), [FIA\_BMG\_EXT.1](#FIA_BMG_EXT.1) requires testing for [FAR](#abbr_FAR), [FIA\_BMG\_EXT.1](#FIA_BMG_EXT.1) requires testing for [FAR](#abbr_FAR), [FRR](#abbr_FRR) and SAFAR if a [BAF](#abbr_BAF) is included in the | [FRR](#abbr_FRR) and [SAFAR](#abbr_SAFAR) if a [BAF](#abbr_BAF) is [TOE](#abbr_TOE). In this version of the [PP](#abbr_PP) it is expected | included in the [TOE](#abbr_TOE). In this version of the [PP](#abbr_PP) that the vendor will provide evidence to the evaluator of the testing | it is expected that the vendor will provide evidence to the evaluator of completed to support the claimed [FAR](#abbr_FAR) and [FRR](#abbr_FRR). | the testing completed to support the claimed [FAR](#abbr_FAR) and This Appendix provides a guide to how this testing could be done and to | [FRR](#abbr_FRR). This Appendix provides a guide to how this testing what error bars are expected when the Rule of 3 is applied. This guide | could be done and to what error bars are expected when the Rule of 3 is should be treated as a reference and not as a NIAP mandate, requirement, | applied. This guide should be treated as a reference and not as a NIAP or set of mandates or requirements.\ | mandate, requirement, or set of mandates or requirements.\ \ \ #### G.1.2 Testing environment that could meet FIA\_BMG\_EXT.1.1 {#sub2 .indexable da | ### G.1.2 Testing environment that could meet FIA\_BMG\_EXT.1.1 {#sub2 .indexable dat In performing tests for [FAR](#abbr_FAR) and [FRR](#abbr_FRR), ISO/IEC In performing tests for [FAR](#abbr_FAR) and [FRR](#abbr_FRR), ISO/IEC 19795-1 recommends that vendors or testing labs use the largest test 19795-1 recommends that vendors or testing labs use the largest test population that can be reasonably managed. Generally, testing population that can be reasonably managed. Generally, testing environments for mobile devices are based upon individual devices with environments for mobile devices are based upon individual devices with their own local authentication templates/profiles where the submitted their own local authentication templates/profiles where the submitted biometric samples are destroyed after submission. It is infeasible to biometric samples are destroyed after submission. It is infeasible to meet the given timeframe for [CC](#abbr_CC) evaluations of mobile | meet the given time frame for [CC](#abbr_CC) evaluations of mobile devices if offline testing is not supported. Either online or offline devices if offline testing is not supported. Either online or offline testing is acceptable. The number of test subjects needed to support a testing is acceptable. The number of test subjects needed to support a claimed [FAR](#abbr_FAR) and [FRR](#abbr_FRR), will depend on if online claimed [FAR](#abbr_FAR) and [FRR](#abbr_FRR), will depend on if online or offline testing is used due to how the subjects are compared.\ or offline testing is used due to how the subjects are compared.\ \ \ If online testing is utilized, it is expected that the testing is If online testing is utilized, it is expected that the testing is conducted directly on the [TOE](#abbr_TOE). The legitimate user will conducted directly on the [TOE](#abbr_TOE). The legitimate user will enroll on the [TOE](#abbr_TOE) and all test subjects will be compared to enroll on the [TOE](#abbr_TOE) and all test subjects will be compared to only the legitimate user. Thus if the target [FAR](#abbr_FAR) is 1:100, only the legitimate user. Thus if the target [FAR](#abbr_FAR) is 1:100, at least 300 independent samples shall be used corresponding to 300 at least 300 independent samples shall be used corresponding to 300 users and at least 300 independent trials are required in testing this users and at least 300 independent trials are required in testing this [FAR](#abbr_FAR). It is acceptable that multiple TOEs, each with a | [FAR](#abbr_FAR). It is acceptable that multiple [TOEs](#abbr_TOE), each different legitimate user, could be used to reduce the number of test | with a different legitimate user, could be used to reduce the number of subjects needed for online testing. With the assumption that the test | test subjects needed for online testing. With the assumption that the subjects are compared against all legitimate users and no legitimate | test subjects are compared against all legitimate users and no users are counted as test subjects, if *N~D~* devices are used, the | legitimate users are counted as test subjects, if *N~D~* devices are number of test subjects needed can be divided by *N~D~*.\ | used, the number of test subjects needed can be divided by *N~D~*.\ \ \ If offline testing is used, it is expected that the biometric system If offline testing is used, it is expected that the biometric system used for testing will not be in the evaluated configuration of the used for testing will not be in the evaluated configuration of the [TOE](#abbr_TOE) to allow for a full cross-comparison, in which the [TOE](#abbr_TOE) to allow for a full cross-comparison, in which the biometric sample from the test subjects is compared with every non-self biometric sample from the test subjects is compared with every non-self template. It is expected, that the biometric system used for testing template. It is expected, that the biometric system used for testing will collect samples and generate templates exactly the same as the will collect samples and generate templates exactly the same as the biometric system in the [TOE](#abbr_TOE). However, even though the biometric system in the [TOE](#abbr_TOE). However, even though the comparison to determine if a valid sample is provided (i.e. matching comparison to determine if a valid sample is provided (i.e. matching algorithm) should remain the same, it is acceptable if the biometric algorithm) should remain the same, it is acceptable if the biometric system is modified to complete a full cross-comparison. Per ISO/IEC system is modified to complete a full cross-comparison. Per ISO/IEC 19795, these comparisons will not be statistically independent, but this 19795, these comparisons will not be statistically independent, but this approach is statistically unbiased. Additionally, offline testing with a approach is statistically unbiased. Additionally, offline testing with a full cross-comparison greatly reduces the number of test subjects full cross-comparison greatly reduces the number of test subjects needed. If there are *N~U~* users, the number of available individual needed. If there are *N~U~* users, the number of available individual independent comparisons will be *N~U~\*(N~U~-1)/2*. Thus if the target independent comparisons will be *N~U~\*(N~U~-1)/2*. Thus if the target [FAR](#abbr_FAR) is 1:10000, only 246 test subjects are needed if [FAR](#abbr_FAR) is 1:10000, only 246 test subjects are needed if offline testing of a full cross-comparison is used.\ offline testing of a full cross-comparison is used.\ \ \ #### G.1.3 Deriving False Accept Rate {#sub3 .indexable data-level="3"} | ### G.1.3 Deriving False Accept Rate {#sub3 .indexable data-level="3"} To expedite approval while maintaining a statistically valid result, it To expedite approval while maintaining a statistically valid result, it is required for the vendor or independent lab to perform testing using is required for the vendor or independent lab to perform testing using *three* times the sample size, at a minimum, i.e. the \"Rule of 3\" for *three* times the sample size, at a minimum, i.e. the \"Rule of 3\" for the number of trials.\ the number of trials.\ \ \ Three times the sample size corresponds to 90% confidence and *c* = 0.95 Three times the sample size corresponds to 90% confidence and *c* = 0.95 (rounded, worst-case), where *c* is a percentage/fraction of the (rounded, worst-case), where *c* is a percentage/fraction of the intended false error rate (either [FAR](#abbr_FAR) or [FRR](#abbr_FRR)) intended false error rate (either [FAR](#abbr_FAR) or [FRR](#abbr_FRR)) for which the error bar is calculated.\ for which the error bar is calculated.\ \ \ The parameters associated with the Rule of 3 are derived by treating a The parameters associated with the Rule of 3 are derived by treating a biometric test, consisting of many comparisons, as a series of Bernoulli biometric test, consisting of many comparisons, as a series of Bernoulli trials.\ trials.\ \ \ As shown in the tables below, the error bar may be large if a higher As shown in the tables below, the error bar may be large if a higher false error rate is declared.\ false error rate is declared.\ \ \ The table below assumes online testing using a single device, thus a The table below assumes online testing using a single device, thus a single legitimate user.\ single legitimate user.\ \ \ [Table [14]{.counter}: Comparison of false error rates, number of [Table [14]{.counter}: Comparison of false error rates, number of errors, and number of test subjects needed for online testing, given errors, and number of test subjects needed for online testing, given Rule of 3]{#biotable1 .ctr data-myid="biotable1" Rule of 3]{#biotable1 .ctr data-myid="biotable1" data-counter-type="ct-Table"} data-counter-type="ct-Table"} --------------------- ----------------------------------------------- ------------- --------------------- ----------------------------------------------- ------------- False Error Rate False error rates, 90% confidence, *c* = 0.95 Number of err False Error Rate False error rates, 90% confidence, *c* = 0.95 Number of err 1% (1:100) 1% ± 0.95% 3 1% (1:100) 1% ± 0.95% 3 0.1% (1:1000) 0.1% ± 0.095% 3 0.1% (1:1000) 0.1% ± 0.095% 3 0.01% (1:10000) 0.01% ± 0.0095% 3 0.01% (1:10000) 0.01% ± 0.0095% 3 0.001% (1:100000) 0.001% ± 0.00095% 3 0.001% (1:100000) 0.001% ± 0.00095% 3 0.0001% (1:1000000) 0.0001% ± 0.000095% 3 0.0001% (1:1000000) 0.0001% ± 0.000095% 3 --------------------- ----------------------------------------------- ------------- --------------------- ----------------------------------------------- ------------- \ \ \ \ The table below assumes that *N~D~* devices are used for online The table below assumes that *N~D~* devices are used for online testing.\ testing.\ \ \ [Table [15]{.counter}: Comparison of false error rates, number of [Table [15]{.counter}: Comparison of false error rates, number of errors, and number of test subjects needed for online testing with errors, and number of test subjects needed for online testing with *N~D~* devices, given Rule of 3]{#biotable2 .ctr data-myid="biotable2" *N~D~* devices, given Rule of 3]{#biotable2 .ctr data-myid="biotable2" data-counter-type="ct-Table"} data-counter-type="ct-Table"} --------------------- ----------------------------------------------- ------------- --------------------- ----------------------------------------------- ------------- False Error Rate False error rates, 90% confidence, *c* = 0.95 Number of err False Error Rate False error rates, 90% confidence, *c* = 0.95 Number of err 1% (1:100) 1% ± 0.95% 3 1% (1:100) 1% ± 0.95% 3 0.1% (1:1000) 0.1% ± 0.095% 3 0.1% (1:1000) 0.1% ± 0.095% 3 0.01% (1:10000) 0.01% ± 0.0095% 3 0.01% (1:10000) 0.01% ± 0.0095% 3 0.001% (1:100000) 0.001% ± 0.00095% 3 0.001% (1:100000) 0.001% ± 0.00095% 3 0.0001% (1:1000000) 0.0001% ± 0.000095% 3 0.0001% (1:1000000) 0.0001% ± 0.000095% 3 --------------------- ----------------------------------------------- ------------- --------------------- ----------------------------------------------- ------------- \ \ \ \ The table below assumes offline testing using a full cross-comparison.\ The table below assumes offline testing using a full cross-comparison.\ \ \ [Table [16]{.counter}: Comparison of false error rates, number of [Table [16]{.counter}: Comparison of false error rates, number of errors, and number of test subjects needed for offline testing and full errors, and number of test subjects needed for offline testing and full cross-comparison, given Rule of 3]{#biotable3 .ctr data-myid="biotable3" cross-comparison, given Rule of 3]{#biotable3 .ctr data-myid="biotable3" data-counter-type="ct-Table"} data-counter-type="ct-Table"} --------------------- ----------------------------------------------- ------------- --------------------- ----------------------------------------------- ------------- False Error Rate False error rates, 90% confidence, *c* = 0.95 Number of err False Error Rate False error rates, 90% confidence, *c* = 0.95 Number of err 1% (1:100) 1% ± 0.95% 3 1% (1:100) 1% ± 0.95% 3 0.1% (1:1000) 0.1% ± 0.095% 3 0.1% (1:1000) 0.1% ± 0.095% 3 0.01% (1:10000) 0.01% ± 0.0095% 3 0.01% (1:10000) 0.01% ± 0.0095% 3 0.001% (1:100000) 0.001% ± 0.00095% 3 0.001% (1:100000) 0.001% ± 0.00095% 3 0.0001% (1:1000000) 0.0001% ± 0.000095% 3 0.0001% (1:1000000) 0.0001% ± 0.000095% 3 --------------------- ----------------------------------------------- ------------- --------------------- ----------------------------------------------- ------------- \ \ \ \ #### G.1.4 Deriving False Reject Rate {#sub4 .indexable data-level="3"} | ### G.1.4 Deriving False Reject Rate {#sub4 .indexable data-level="3"} As with False Accept Rate, it is required for the vendor or lab to As with False Accept Rate, it is required for the vendor or lab to perform testing using *three* times the sample size, at a minimum, i.e. perform testing using *three* times the sample size, at a minimum, i.e. the \"Rule of 3\". Three times the sample size corresponds to 90% the \"Rule of 3\". Three times the sample size corresponds to 90% confidence and *c* = 0.95 (rounded, worst-case), where *c* is a confidence and *c* = 0.95 (rounded, worst-case), where *c* is a percentage/fraction of the intended false error rate (either percentage/fraction of the intended false error rate (either [FAR](#abbr_FAR) or [FRR](#abbr_FRR)) for which the error bar is [FAR](#abbr_FAR) or [FRR](#abbr_FRR)) for which the error bar is calculated.\ calculated.\ \ \ As shown in the table below, the error bar may be large if a higher As shown in the table below, the error bar may be large if a higher false error rate is declared:\ false error rate is declared:\ \ \ [Table [17]{.counter}: Comparison of false error rates, number of [Table [17]{.counter}: Comparison of false error rates, number of errors, and number of test subjects needed, given Rule of 3]{#biotable4 errors, and number of test subjects needed, given Rule of 3]{#biotable4 .ctr data-myid="biotable4" data-counter-type="ct-Table"} .ctr data-myid="biotable4" data-counter-type="ct-Table"} ------------------ ----------------------------------------------- ---------------- ------------------ ----------------------------------------------- ---------------- False Error Rate False error rates, 90% confidence, *c* = 0.95 Number of errors False Error Rate False error rates, 90% confidence, *c* = 0.95 Number of errors 10% (1:10) 10% ± 9.5% 3 10% (1:10) 10% ± 9.5% 3 5% (1:20) 5% ± 4.75% 3 5% (1:20) 5% ± 4.75% 3 2% (1:50) 2% ± 1.9% 3 2% (1:50) 2% ± 1.9% 3 1% (1:100) 1% ± 0.95% 3 1% (1:100) 1% ± 0.95% 3 ------------------ ----------------------------------------------- ---------------- ------------------ ----------------------------------------------- ---------------- \ \ \ \ ### G.2 Derivation of the Rule of 3 (and similar rules, for completeness) {#biometric | G.2 Derivation of the Rule of 3 (and similar rules, for completeness) {#biometric2 .i > --------------------------------------------------------------------- A biometric test can be treated as a series of Bernoulli trials for A biometric test can be treated as a series of Bernoulli trials for which a binomial distribution of the number of successes and failures is which a binomial distribution of the number of successes and failures is assumed. When calculating an error interval for which a binomial assumed. When calculating an error interval for which a binomial distribution is assumed, one confidence interval (denoted *I~conf~*) distribution is assumed, one confidence interval (denoted *I~conf~*) that is widely used is the standard Wald interval, expressed in Equation that is widely used is the standard Wald interval, expressed in Equation (1) as:\ (1) as:\ \ \ \$\$\\left(p-z\_{α/2}√\\frac{p\\left(1-p\\right)}{n}\\right)≤I\_{conf}≤ \$\$\\left(p-z\_{α/2}√\\frac{p\\left(1-p\\right)}{n}\\right)≤I\_{conf}≤ \\left(p+z\_{α/2}√\\frac{p\\left(1-p\\right)}{n}\\right)\\quad\\quad(1)\$\$\ \\left(p+z\_{α/2}√\\frac{p\\left(1-p\\right)}{n}\\right)\\quad\\quad(1)\$\$\ \ \ where *p = X/n* is the sample proportion of successes (or error in this where *p = X/n* is the sample proportion of successes (or error in this case), *z~α/2~* is the 100(1 -- α/2)th percentile of the standard normal case), *z~α/2~* is the 100(1 -- α/2)th percentile of the standard normal distribution, and *n* is the number of trials.\ distribution, and *n* is the number of trials.\ \ \ Although intervals such as the Wilson, Agresti-Coull, and Jeffreys Although intervals such as the Wilson, Agresti-Coull, and Jeffreys intervals are recommended by Brown et al., biometrics testing in intervals are recommended by Brown et al., biometrics testing in practice rests on the derivation of the Rule of 30 based on the Wald practice rests on the derivation of the Rule of 30 based on the Wald distribution [\[BROWN\]](#Brown). However, because of the large sample distribution [\[BROWN\]](#Brown). However, because of the large sample size, number of test subjects, and number of trials required for the size, number of test subjects, and number of trials required for the Rule of 30, this [PP](#abbr_PP) mandates the Rule of 3 to make testing Rule of 30, this [PP](#abbr_PP) mandates the Rule of 3 to make testing more feasible.\ more feasible.\ \ \ In simpler form, this refers to a confidence interval with error *E* In simpler form, this refers to a confidence interval with error *E* expressed as:\ expressed as:\ \ \ \$\$E=z\_{α/2}√\\frac{p\\left(1-p\\right)}{n}\\quad\\quad(2)\$\$\ \$\$E=z\_{α/2}√\\frac{p\\left(1-p\\right)}{n}\\quad\\quad(2)\$\$\ \ \ Rearranging the equation to express the number of trials, *n*, in terms Rearranging the equation to express the number of trials, *n*, in terms of error *E*, this expression becomes:\ of error *E*, this expression becomes:\ \ \ \$\$n=\\left(\\frac{z\_{α/2}}{E}\\right)\^2p\\left(1-p\\right)\\quad\\quad(3)\$\$\ \$\$n=\\left(\\frac{z\_{α/2}}{E}\\right)\^2p\\left(1-p\\right)\\quad\\quad(3)\$\$\ \ \ In practice, *E* is expressed as a proportion of the error probability In practice, *E* is expressed as a proportion of the error probability as:\ as:\ \ \ \$\$E = cp\\quad\\quad(4)\$\$\ \$\$E = cp\\quad\\quad(4)\$\$\ \ \ Thus, *n* finally becomes:\ Thus, *n* finally becomes:\ \ \ \$\$n=\\left(\\frac{z\_{α/2}}{c}\\right)\^2\\frac{\\left(1-p\\right)}{p}\\quad\\quad( \$\$n=\\left(\\frac{z\_{α/2}}{c}\\right)\^2\\frac{\\left(1-p\\right)}{p}\\quad\\quad( \ \ For a 90% confidence interval, *z~α/2~* = 1.6449, while for a 95% For a 90% confidence interval, *z~α/2~* = 1.6449, while for a 95% confidence interval, *z~α/2~* = 1.96.\ confidence interval, *z~α/2~* = 1.96.\ \ \ Thus it is easy to see that for a 90% confidence interval with *c* = Thus it is easy to see that for a 90% confidence interval with *c* = 0.95:\ 0.95:\ \ \ \$\$\\left ( \\frac{1.6449}{0.95}\\right )\^{2}= 2.998 ≈ \$\$\\left ( \\frac{1.6449}{0.95}\\right )\^{2}= 2.998 ≈ 3\\quad\\quad(6)\$\$\ 3\\quad\\quad(6)\$\$\ \ \ which confirms the rule of 3 and completes our derivation. which confirms the rule of 3 and completes our derivation. ### G.3 SAFAR Calculation Equations {#biometric3 .indexable data-level="2"} | G.3 SAFAR Calculation Equations {#biometric3 .indexable data-level="2"} > ------------------------------- A number of equations can be used in calculating SAFAR. A fully-worked | A number of equations can be used in calculating [SAFAR](#abbr_SAFAR). A example that applies the equations below can be found in [Section G.4 | fully-worked example that applies the equations below can be found in SAFAR Calculation Example](#biometric4){.dynref}.\ | [Section G.4 SAFAR Calculation Example](#biometric4){.dynref}.\ \ | \ The SAFAR for a single authentication factor is calculated as | The [SAFAR](#abbr_SAFAR) for a single authentication factor is \$SAFAR=1-\\left(1-FAR\\right)\^{attempts allowed}\$.\ | calculated as \$[SAFAR](#abbr_SAFAR)=1-\\left(1-FAR\\right)\^{attempts \ | allowed}\$.\ Thus let *SAFAR~i~* be the SAFAR for the *i^th^* authentication factor | \ where *n~i~* is the number of authentication attempts allowed for the | Thus let *[SAFAR](#abbr_SAFAR)~i~* be the [SAFAR](#abbr_SAFAR) for the given factor, treated individually as a separate authentication system, | *i^th^* authentication factor where *n~i~* is the number of which can be expressed as\ | authentication attempts allowed for the given factor, treated > individually as a separate authentication system, which can be expressed > as\ \ \ \$\$SAFAR\_i=1-\\left(1-FAR\_i\\right)\^{ni},\\quad\\quad (1)\$\$\ \$\$SAFAR\_i=1-\\left(1-FAR\_i\\right)\^{ni},\\quad\\quad (1)\$\$\ \ \ assuming each attempt is independent.\ assuming each attempt is independent.\ \ \ If multiple authentication factors are required (with all to pass), i.e. If multiple authentication factors are required (with all to pass), i.e. password plus biometric factor, the SAFAR for a single attempt will be | password plus biometric factor, the [SAFAR](#abbr_SAFAR) for a single the product of each individual factor's false accept rate, assuming each | attempt will be the product of each individual factor's false accept attempt is independent.\ | rate, assuming each attempt is independent.\ \ \ Thus, for a hybrid combination of *m* PIN/password and biometric factors Thus, for a hybrid combination of *m* PIN/password and biometric factors (denoted with index *j*) with *n~i~* attempts allowed, treated (denoted with index *j*) with *n~i~* attempts allowed, treated collectively as an individual authentication factor in a separate collectively as an individual authentication factor in a separate authentication system, the SAFAR can be expressed as:\ | authentication system, the [SAFAR](#abbr_SAFAR) can be expressed as:\ \ \ \$\$SAFAR\_i=1-\\left(1-∏\^m\_{j=1}FAR\_j\\right)\^{ni},\\quad\\quad \$\$SAFAR\_i=1-\\left(1-∏\^m\_{j=1}FAR\_j\\right)\^{ni},\\quad\\quad (2)\$\$\ (2)\$\$\ assuming each attempt is independent. Because this is currently assuming each attempt is independent. Because this is currently associated with a PIN/password and biometrics, *m* = 2 in this case.\ associated with a PIN/password and biometrics, *m* = 2 in this case.\ \ \ When ordered, let *SAFAR~(k)~* be the SAFAR for the authentication | When ordered, let *[SAFAR](#abbr_SAFAR)~(k)~* be the factor with the largest SAFAR, and *SAFAR~(1)~* be the SAFAR for the | [SAFAR](#abbr_SAFAR) for the authentication factor with the largest authentication factor with the smallest SAFAR, i.e. *SAFAR~(1)~* ≤ | [SAFAR](#abbr_SAFAR), and *[SAFAR](#abbr_SAFAR)~(1)~* be the *SAFAR~(s)~* ≤ ... ≤ *SAFAR~(k-1)~* ≤ *SAFAR~(k)~*.\ | [SAFAR](#abbr_SAFAR) for the authentication factor with the smallest > [SAFAR](#abbr_SAFAR), i.e. *[SAFAR](#abbr_SAFAR)~(1)~* ≤ > *[SAFAR](#abbr_SAFAR)~(s)~* ≤ ... ≤ *[SAFAR](#abbr_SAFAR)~(k-1)~* ≤ > *[SAFAR](#abbr_SAFAR)~(k)~*.\ \ \ As such, the following equations for SAFAR utilizing multiple factors | As such, the following equations for [SAFAR](#abbr_SAFAR) utilizing follow (using the worst SAFARs):\ | multiple factors follow (using the worst [SAFARs](#abbr_SAFAR)):\ \ \ If the user has a choice of multiple authentication factors with a If the user has a choice of multiple authentication factors with a choice of only one authentication factor in a given session (i.e. all choice of only one authentication factor in a given session (i.e. all authentication factors are considered critical and a user cannot switch authentication factors are considered critical and a user cannot switch between authentication factors), the overall SAFAR will be equal to | between authentication factors), the overall [SAFAR](#abbr_SAFAR) will *SAFAR~(k)~*, assuming each attempt is independent.\ | be equal to *[SAFAR](#abbr_SAFAR)~(k)~*, assuming each attempt is > independent.\ \ \ If the user has a choice of multiple authentication factors and can If the user has a choice of multiple authentication factors and can choose to attempt authentication using more than one factor with success choose to attempt authentication using more than one factor with success requiring any factor to pass and *n~i~* attempts allowed per factor) for requiring any factor to pass and *n~i~* attempts allowed per factor) for a given session, the SAFAR for *k* available authentication factors will | a given session, the [SAFAR](#abbr_SAFAR) for *k* available be\ | authentication factors will be\ \ \ \$\$SAFAR\_{any}=1-∏\^k\_{i=1}\\left(1-SAFAR\_i\\right)\\quad\\quad \$\$SAFAR\_{any}=1-∏\^k\_{i=1}\\left(1-SAFAR\_i\\right)\\quad\\quad (3)\$\$\ (3)\$\$\ assuming each attempt is independent. If there are *critical factors*, assuming each attempt is independent. If there are *critical factors*, the highest SAFAR corresponding to the *worst-case* set of choices shall | the highest [SAFAR](#abbr_SAFAR) corresponding to the *worst-case* set be reported.\ | of choices shall be reported.\ \ \ If the user has the choice of a number of authentication factors from If the user has the choice of a number of authentication factors from which the user must choose *m* factors, all of which must pass with *n* which the user must choose *m* factors, all of which must pass with *n* attempts per factor allowed, the SAFAR for a single combination of *m* | attempts per factor allowed, the [SAFAR](#abbr_SAFAR) for a single factors will be\ | combination of *m* factors will be\ \ \ \$\$SAFAR\_{m factors}=∏\^m\_{i=1}\\left(SAFAR\_i\\right)\\quad\\quad \$\$SAFAR\_{m factors}=∏\^m\_{i=1}\\left(SAFAR\_i\\right)\\quad\\quad (4)\$\$\ (4)\$\$\ \ \ assuming each attempt is independent. If *m \< k* available factors, the assuming each attempt is independent. If *m \< k* available factors, the worst-case of all \$\\left(\^k\_m\\right)\$ combinations of factors worst-case of all \$\\left(\^k\_m\\right)\$ combinations of factors becomes the overall SAFAR. | becomes the overall [SAFAR](#abbr_SAFAR). ### G.4 SAFAR Calculation Example {#biometric4 .indexable data-level="2"} | G.4 SAFAR Calculation Example {#biometric4 .indexable data-level="2"} > ----------------------------- *Password and fingerprint authentication example:*\ *Password and fingerprint authentication example:*\ \ \ Suppose the overall authentication system consists of two authentication Suppose the overall authentication system consists of two authentication factors: a four character password factor allowing for ten attempts and factors: a four character password factor allowing for ten attempts and a fingerprint biometric factor with an [FAR](#abbr_FAR) of 1:1000 a fingerprint biometric factor with an [FAR](#abbr_FAR) of 1:1000 allowing for five attempts.\ allowing for five attempts.\ \ \ Passwords utilize the minimum character set of 63 characters, plus one Passwords utilize the minimum character set of 63 characters, plus one additional accepted character, making it 64. Assume each attempt is additional accepted character, making it 64. Assume each attempt is independent.\ independent.\ \ \ a. What is the SAFAR of each individual authentication factor, treated | a. What is the [SAFAR](#abbr_SAFAR) of each individual authentication separately? | factor, treated separately? b. If the user can only authenticate using a single authentication b. If the user can only authenticate using a single authentication factor, assuming all authentication factors available are critical factor, assuming all authentication factors available are critical and there is no possibility for the user to switch between and there is no possibility for the user to switch between authentication factors, what is the overall SAFAR? | authentication factors, what is the overall [SAFAR](#abbr_SAFAR)? c. If the user can authenticate using any authentication factor in an c. If the user can authenticate using any authentication factor in an authentication session, and none are considered critical factors, authentication session, and none are considered critical factors, what is the overall SAFAR? | what is the overall [SAFAR](#abbr_SAFAR)? d. If the conditions are the same as in c) but password is now a d. If the conditions are the same as in c) but password is now a *critical* authentication factor that will cause a device wipe, what *critical* authentication factor that will cause a device wipe, what is the overall SAFAR? | is the overall [SAFAR](#abbr_SAFAR)? e. If the password factor and fingerprint biometric factor are both e. If the password factor and fingerprint biometric factor are both required with the number of attempts for fingerprint increased to required with the number of attempts for fingerprint increased to ten, what is the overall SAFAR? What is the risk if authentication | ten, what is the overall [SAFAR](#abbr_SAFAR)? What is the risk if feedback is provided for each modality (i.e. fingerprint failed or | authentication feedback is provided for each modality (i.e. password failed)? | fingerprint failed or password failed)? f. f\) If the password/PIN factor and fingerprint biometric factor are both f. f\) If the password/PIN factor and fingerprint biometric factor are both combined into a hybrid factor (both must be used and the only combined into a hybrid factor (both must be used and the only authentication feedback allowed is valid login or invalid login) for authentication feedback allowed is valid login or invalid login) for entry with ten attempts allowed for the hybrid factor, what is the entry with ten attempts allowed for the hybrid factor, what is the overall SAFAR? Why is this scenario more secure than e)? | overall [SAFAR](#abbr_SAFAR)? Why is this scenario more secure than e)? \ \ *Solution:*\ *Solution:*\ \ \ a. The SAFAR for a four-character password allowing for ten attempts, | a. The [SAFAR](#abbr_SAFAR) for a four-character password allowing for utilizing a 64 character set, is:\ | ten attempts, utilizing a 64 character set, is:\ \ \ \$\$SAFAR\_{\\left(password\|10 attempts\\right)} = 1 - \\left(1 - \$\$SAFAR\_{\\left(password\|10 attempts\\right)} = 1 - \\left(1 - Character set \^{length}\\right)\^{attempts allowed}\$\$ Character set \^{length}\\right)\^{attempts allowed}\$\$ \$\$SAFAR\_{\\left(password\|10 attempts\\right)} = 1 - \\left(1 - \$\$SAFAR\_{\\left(password\|10 attempts\\right)} = 1 - \\left(1 - 64 \^{4}\\right)\^{10}=5.960 \* 10\^{-7} \\left(rounded\\right)\$\$\ 64 \^{4}\\right)\^{10}=5.960 \* 10\^{-7} \\left(rounded\\right)\$\$\ The SAFAR for a fingerprint biometric factor with an | The [SAFAR](#abbr_SAFAR) for a fingerprint biometric factor with an [FAR](#abbr_FAR) of 1:1000, allowing for five attempts, is:\ [FAR](#abbr_FAR) of 1:1000, allowing for five attempts, is:\ \ \ \$\$SAFAR\_{\\left(fingerprint\|5 attempts\\right)} = 1 - \\left(1 - \$\$SAFAR\_{\\left(fingerprint\|5 attempts\\right)} = 1 - \\left(1 - [FAR](#abbr_FAR) \\right)\^{attempts}\$\$ [FAR](#abbr_FAR) \\right)\^{attempts}\$\$ \$\$SAFAR\_{\\left(fingerprint\|5 attempts\\right)} = 1 - \\left(1 - \$\$SAFAR\_{\\left(fingerprint\|5 attempts\\right)} = 1 - \\left(1 - 10 \^{-3}\\right)\^{5}=4.990 \* 10\^{-3} \\left(rounded\\right)\$\$\ 10 \^{-3}\\right)\^{5}=4.990 \* 10\^{-3} \\left(rounded\\right)\$\$\ b. If the user is only allowed to pick one factor, the overall SAFAR is | b. If the user is only allowed to pick one factor, the overall that of the weakest one, which is\ | [SAFAR](#abbr_SAFAR) is that of the weakest one, which is\ \ \ \$\$SAFAR\_{\\left(fingerprint\|5 attempts\\right)} = 4.990 \* \$\$SAFAR\_{\\left(fingerprint\|5 attempts\\right)} = 4.990 \* 10\^{-3}\$\$\ 10\^{-3}\$\$\ c. If the user can authenticate using any authentication factor in an c. If the user can authenticate using any authentication factor in an authentication session, the overall SAFAR is:\ | authentication session, the overall [SAFAR](#abbr_SAFAR) is:\ \ \ \$\$SAFAR\_{any} = 1 - \\left(1 - \\left(5.96 \* \$\$SAFAR\_{any} = 1 - \\left(1 - \\left(5.96 \* 10\^{-7}\\right)\\right) \* \\left(1-\\left(4.99 \* 10 10\^{-7}\\right)\\right) \* \\left(1-\\left(4.99 \* 10 \^{-3}\\right)\\right)\$\$ \$\$= 4.991 \* 10{-3} (rounded)\$\$\ \^{-3}\\right)\\right)\$\$ \$\$= 4.991 \* 10{-3} (rounded)\$\$\ d. If the conditions are the same as in c) but with password as a d. If the conditions are the same as in c) but with password as a critical factor, the worst-case scenario is the same as in c) in critical factor, the worst-case scenario is the same as in c) in that the password factor is picked last, thus\ that the password factor is picked last, thus\ \ \ \$\$SAFAR\_{any password critical} = 4.991\* 10\^{-3} \$\$SAFAR\_{any password critical} = 4.991\* 10\^{-3} \\left(rounded\\right)\$\$\ \\left(rounded\\right)\$\$\ e. If password and fingerprint are now required factors, the SAFAR for | e. If password and fingerprint are now required factors, the fingerprint has to be recalculated for ten attempts:\ | [SAFAR](#abbr_SAFAR) for fingerprint has to be recalculated for ten > attempts:\ \ \ \$\$SAFAR\_{fingerprint\|10 attempts} = 1 - \$\$SAFAR\_{fingerprint\|10 attempts} = 1 - \\left(1-10\^{-3}\\right)\^{10} = 9.955 \* 10 \^{-3} \\left(1-10\^{-3}\\right)\^{10} = 9.955 \* 10 \^{-3} \\left(rounded\\right)\$\$\ \\left(rounded\\right)\$\$\ \ \ Since the SAFAR for password with ten attempts allowed is known, it | Since the [SAFAR](#abbr_SAFAR) for password with ten attempts then follows that:\ | allowed is known, it then follows that:\ \ \ \$\$SAFAR\_{fingerprint+password} = \$\$SAFAR\_{fingerprint+password} = \\left(5.960\*10\^{-7}\\right) \* \\left(9.955\*10\^{-3}\\right) = \\left(5.960\*10\^{-7}\\right) \* \\left(9.955\*10\^{-3}\\right) = 5.933 \* 10\^{-9} \\left(rounded\\right)\$\$\ 5.933 \* 10\^{-9} \\left(rounded\\right)\$\$\ The risk of providing authentication feedback is that if either The risk of providing authentication feedback is that if either authentication factor is compromised, the same sample can then be authentication factor is compromised, the same sample can then be used by the adversary for every authentication after, thus reducing used by the adversary for every authentication after, thus reducing the SAFAR for the system to that of the other authentication | the [SAFAR](#abbr_SAFAR) for the system to that of the other factor.\ | authentication factor.\ \ \ f. If password/PIN and fingerprint are now combined into a single f. If password/PIN and fingerprint are now combined into a single hybrid factor, the SAFAR is as follows:\ | hybrid factor, the [SAFAR](#abbr_SAFAR) is as follows:\ \ \ \$\$SAFAR\_{fingerprint+password\|10 attempts} = 1 - \$\$SAFAR\_{fingerprint+password\|10 attempts} = 1 - \\left(1-2\^{-6\*4}\*10\^{-3}\\right)\^{10}\$\$ \$\$=5.960 \* 10 \\left(1-2\^{-6\*4}\*10\^{-3}\\right)\^{10}\$\$ \$\$=5.960 \* 10 \^{-10} \\left(rounded\\right)\$\$\ \^{-10} \\left(rounded\\right)\$\$\ This is more secure than e) because not only are there less attempts This is more secure than e) because not only are there less attempts overall before the maximum count is exceeded (10 instead of 20), the overall before the maximum count is exceeded (10 instead of 20), the adversary would not know if a sample submitted for either factor adversary would not know if a sample submitted for either factor results in authentication unless the presentation of both factors results in authentication unless the presentation of both factors results in successful authentication. results in successful authentication. Appendix H - Acknowledgements {#ack .indexable data-level="A"} | Appendix H - Acknowledgments {#ack .indexable data-level="A"} ============================= | ============================ This protection profile was developed by the Mobility Technical This protection profile was developed by the Mobility Technical Community with representatives from industry, U.S. Government agencies, Community with representatives from industry, U.S. Government agencies, Common Criteria Test Laboratories, and international Common Criteria Common Criteria Test Laboratories, and international Common Criteria schemes. The National Information Assurance Partnership wishes to schemes. The National Information Assurance Partnership wishes to acknowledge and thank the members of this group whose dedicated efforts acknowledge and thank the members of this group whose dedicated efforts contributed significantly to the publication. These organizations contributed significantly to the publication. These organizations include:\ include:\ \ \ **U.S. Government**\ **U.S. Government**\ Defense Information Systems Agency (DISA)\ Defense Information Systems Agency (DISA)\ Information Assurance Directorate (IAD)\ | CyberSecurity Directorate (CSD)\ National Information Assurance Partnership (NIAP)\ National Information Assurance Partnership (NIAP)\ National Institute of Standards and Technology ([NIST](#abbr_NIST))\ National Institute of Standards and Technology ([NIST](#abbr_NIST))\ \ \ **International Common Criteria Schemes**\ **International Common Criteria Schemes**\ Australasian Information Security Evaluation Program (AISEP)\ | Australian Information Security Evaluation Program (AISEP)\ Canadian Common Criteria Evaluation and Certification Scheme (CSEC)\ Canadian Common Criteria Evaluation and Certification Scheme (CSEC)\ Information-technology Promotion Agency, Japan (IPA)\ Information-technology Promotion Agency, Japan (IPA)\ UK IT Security Evaluation and Certificate Scheme (NCSC)\ UK IT Security Evaluation and Certificate Scheme (NCSC)\ \ \ **Industry**\ **Industry**\ Apple, Inc.\ Apple, Inc.\ BlackBerry\ BlackBerry\ LG Electronics, Inc.\ LG Electronics, Inc.\ Microsoft Corporation\ Microsoft Corporation\ Motorola Solutions\ Motorola Solutions\ Samsung Electronics Co., Ltd.\ Samsung Electronics Co., Ltd.\ Other Members of the Mobility Technical Community\ Other Members of the Mobility Technical Community\ \ \ **Common Criteria Test Laboratories**\ **Common Criteria Test Laboratories**\ EWA-Canada, Ltd.\ EWA-Canada, Ltd.\ Gossamer Security Solutions\ Gossamer Security Solutions\ Appendix I - Acronyms {#acronyms .indexable data-level="A"} Appendix I - Acronyms {#acronyms .indexable data-level="A"} ===================== ===================== Acronym Meanin Acronym Meanin ---------------------------------------------------------------------------- ------ ---------------------------------------------------------------------------- ------ [[AEAD](#abbr_AEAD)]{#abbr_AEAD .term} [Authe [[AEAD](#abbr_AEAD)]{#abbr_AEAD .term} [Authe [[AES](#abbr_AES)]{#abbr_AES .term} [Advan [[AES](#abbr_AES)]{#abbr_AES .term} [Advan [[ANSI](#abbr_ANSI)]{#abbr_ANSI .term} [Ameri [[ANSI](#abbr_ANSI)]{#abbr_ANSI .term} [Ameri [[AP](#abbr_AP)]{#abbr_AP .term} [Appli [[AP](#abbr_AP)]{#abbr_AP .term} [Appli [[API](#abbr_API)]{#abbr_API .term} [Appli [[API](#abbr_API)]{#abbr_API .term} [Appli [[ASLR](#abbr_ASLR)]{#abbr_ASLR .term} [Addre [[ASLR](#abbr_ASLR)]{#abbr_ASLR .term} [Addre [[BAF](#abbr_BAF)]{#abbr_BAF .term} [Biome | [[BAF](#abbr_BAF)]{#abbr_BAF .term data-plural="BAFs"} [Biome [[BP](#abbr_BP)]{#abbr_BP .term} [Baseb | [[Base-PP](#abbr_Base-PP)]{#abbr_Base-PP .term data-plural="Base-PPs"} [Base > [[BP](#abbr_BP)]{#abbr_BP .term data-plural="BPs"} [Baseb [[BR/EDR](#abbr_BR/EDR)]{#abbr_BR/EDR .term} [(Blue [[BR/EDR](#abbr_BR/EDR)]{#abbr_BR/EDR .term} [(Blue [[Base-PP](#abbr_Base-PP)]{#abbr_Base-PP .term} [Base | [[BYOD](#abbr_BYOD)]{#abbr_BYOD .term} [Bring [[CA](#abbr_CA)]{#abbr_CA .term} [Certi [[CA](#abbr_CA)]{#abbr_CA .term} [Certi [[CBC](#abbr_CBC)]{#abbr_CBC .term} [Ciphe [[CBC](#abbr_CBC)]{#abbr_CBC .term} [Ciphe [[CC](#abbr_CC)]{#abbr_CC .term} [Commo [[CC](#abbr_CC)]{#abbr_CC .term} [Commo [[CCM](#abbr_CCM)]{#abbr_CCM .term} [Count [[CCM](#abbr_CCM)]{#abbr_CCM .term} [Count [[CCMP](#abbr_CCMP)]{#abbr_CCMP .term} [[CCM] [[CCMP](#abbr_CCMP)]{#abbr_CCMP .term} [[CCM] [[CEM](#abbr_CEM)]{#abbr_CEM .term} [Commo [[CEM](#abbr_CEM)]{#abbr_CEM .term} [Commo [[CMC](#abbr_CMC)]{#abbr_CMC .term} [Certi [[CMC](#abbr_CMC)]{#abbr_CMC .term} [Certi [[CPU](#abbr_CPU)]{#abbr_CPU .term} [Centr | [[cPP](#abbr_cPP)]{#abbr_cPP .term data-plural="cPPs"} [Colla > [[CPU](#abbr_CPU)]{#abbr_CPU .term data-plural="CPUs"} [Centr [[CRL](#abbr_CRL)]{#abbr_CRL .term} [Certi [[CRL](#abbr_CRL)]{#abbr_CRL .term} [Certi [[CSP](#abbr_CSP)]{#abbr_CSP .term} [Criti [[CSP](#abbr_CSP)]{#abbr_CSP .term} [Criti [[DAR](#abbr_DAR)]{#abbr_DAR .term} [Data [[DAR](#abbr_DAR)]{#abbr_DAR .term} [Data [[DEK](#abbr_DEK)]{#abbr_DEK .term} [Data | [[DEK](#abbr_DEK)]{#abbr_DEK .term data-plural="DEKs"} [Data [[DEP](#abbr_DEP)]{#abbr_DEP .term} [Data [[DEP](#abbr_DEP)]{#abbr_DEP .term} [Data [[DH](#abbr_DH)]{#abbr_DH .term} [Diffi [[DH](#abbr_DH)]{#abbr_DH .term} [Diffi [[DNS](#abbr_DNS)]{#abbr_DNS .term} [Domai [[DNS](#abbr_DNS)]{#abbr_DNS .term} [Domai [[DSA](#abbr_DSA)]{#abbr_DSA .term} [Digit [[DSA](#abbr_DSA)]{#abbr_DSA .term} [Digit [[DTLS](#abbr_DTLS)]{#abbr_DTLS .term} [Datag [[DTLS](#abbr_DTLS)]{#abbr_DTLS .term} [Datag [[EAP](#abbr_EAP)]{#abbr_EAP .term} [Exten [[EAP](#abbr_EAP)]{#abbr_EAP .term} [Exten [[EAPOL](#abbr_EAPOL)]{#abbr_EAPOL .term} [[EAP] [[EAPOL](#abbr_EAPOL)]{#abbr_EAPOL .term} [[EAP] [[ECDH](#abbr_ECDH)]{#abbr_ECDH .term} [Ellip [[ECDH](#abbr_ECDH)]{#abbr_ECDH .term} [Ellip [[ECDSA](#abbr_ECDSA)]{#abbr_ECDSA .term} [Ellip [[ECDSA](#abbr_ECDSA)]{#abbr_ECDSA .term} [Ellip [[EEPROM](#abbr_EEPROM)]{#abbr_EEPROM .term} [Elect [[EEPROM](#abbr_EEPROM)]{#abbr_EEPROM .term} [Elect > [[EP](#abbr_EP)]{#abbr_EP .term} [Exten [[EST](#abbr_EST)]{#abbr_EST .term} [Enrol [[EST](#abbr_EST)]{#abbr_EST .term} [Enrol [[FAR](#abbr_FAR)]{#abbr_FAR .term} [False | [[FAR](#abbr_FAR)]{#abbr_FAR .term data-plural="FARs"} [False [[FEK](#abbr_FEK)]{#abbr_FEK .term} [File | [[FEK](#abbr_FEK)]{#abbr_FEK .term data-plural="FEKs"} [File > [[FFC](#abbr_FFC)]{#abbr_FFC .term} [Finit [[FIPS](#abbr_FIPS)]{#abbr_FIPS .term} [Feder [[FIPS](#abbr_FIPS)]{#abbr_FIPS .term} [Feder [[FM](#abbr_FM)]{#abbr_FM .term} [Frequ [[FM](#abbr_FM)]{#abbr_FM .term} [Frequ > [[FP](#abbr_FP)]{#abbr_FP .term} [Funct [[FQDN](#abbr_FQDN)]{#abbr_FQDN .term} [Fully [[FQDN](#abbr_FQDN)]{#abbr_FQDN .term} [Fully [[FRR](#abbr_FRR)]{#abbr_FRR .term} [False [[FRR](#abbr_FRR)]{#abbr_FRR .term} [False [[GCM](#abbr_GCM)]{#abbr_GCM .term} [Galoi [[GCM](#abbr_GCM)]{#abbr_GCM .term} [Galoi [[GPS](#abbr_GPS)]{#abbr_GPS .term} [Globa [[GPS](#abbr_GPS)]{#abbr_GPS .term} [Globa [[GPU](#abbr_GPU)]{#abbr_GPU .term} [Graph [[GPU](#abbr_GPU)]{#abbr_GPU .term} [Graph [[HDMI](#abbr_HDMI)]{#abbr_HDMI .term} [High [[HDMI](#abbr_HDMI)]{#abbr_HDMI .term} [High [[HMAC](#abbr_HMAC)]{#abbr_HMAC .term} [Keyed [[HMAC](#abbr_HMAC)]{#abbr_HMAC .term} [Keyed [[HTTPS](#abbr_HTTPS)]{#abbr_HTTPS .term} [Hyper [[HTTPS](#abbr_HTTPS)]{#abbr_HTTPS .term} [Hyper [[IEEE](#abbr_IEEE)]{#abbr_IEEE .term} [Insti [[IEEE](#abbr_IEEE)]{#abbr_IEEE .term} [Insti [[IP](#abbr_IP)]{#abbr_IP .term} [Inter [[IP](#abbr_IP)]{#abbr_IP .term} [Inter [[IPC](#abbr_IPC)]{#abbr_IPC .term} [Inter [[IPC](#abbr_IPC)]{#abbr_IPC .term} [Inter [[IPsec](#abbr_IPsec)]{#abbr_IPsec .term} [Inter [[IPsec](#abbr_IPsec)]{#abbr_IPsec .term} [Inter > [[KAT](#abbr_KAT)]{#abbr_KAT .term data-plural="KATs"} [Known > [[KDF](#abbr_KDF)]{#abbr_KDF .term} [Key D [[KEK](#abbr_KEK)]{#abbr_KEK .term} [Key E [[KEK](#abbr_KEK)]{#abbr_KEK .term} [Key E [[LE](#abbr_LE)]{#abbr_LE .term} [(Blue [[LE](#abbr_LE)]{#abbr_LE .term} [(Blue [[LTE](#abbr_LTE)]{#abbr_LTE .term} [Long [[LTE](#abbr_LTE)]{#abbr_LTE .term} [Long [[MD](#abbr_MD)]{#abbr_MD .term} [Mobil [[MD](#abbr_MD)]{#abbr_MD .term} [Mobil [[MDM](#abbr_MDM)]{#abbr_MDM .term} [Mobil [[MDM](#abbr_MDM)]{#abbr_MDM .term} [Mobil [[MMI](#abbr_MMI)]{#abbr_MMI .term} [Man-M [[MMI](#abbr_MMI)]{#abbr_MMI .term} [Man-M [[MMS](#abbr_MMS)]{#abbr_MMS .term} [Multi [[MMS](#abbr_MMS)]{#abbr_MMS .term} [Multi > [[MMU](#abbr_MMU)]{#abbr_MMU .term} [Memor [[NFC](#abbr_NFC)]{#abbr_NFC .term} [Near [[NFC](#abbr_NFC)]{#abbr_NFC .term} [Near [[NFIQ](#abbr_NFIQ)]{#abbr_NFIQ .term} [[NIST [[NFIQ](#abbr_NFIQ)]{#abbr_NFIQ .term} [[NIST [[NIST](#abbr_NIST)]{#abbr_NIST .term} [Natio [[NIST](#abbr_NIST)]{#abbr_NIST .term} [Natio > [[NTP](#abbr_NTP)]{#abbr_NTP .term} [Netwo [[NX](#abbr_NX)]{#abbr_NX .term} [Never [[NX](#abbr_NX)]{#abbr_NX .term} [Never [[OCSP](#abbr_OCSP)]{#abbr_OCSP .term} [Onlin [[OCSP](#abbr_OCSP)]{#abbr_OCSP .term} [Onlin [[OE](#abbr_OE)]{#abbr_OE .term} [Opera [[OE](#abbr_OE)]{#abbr_OE .term} [Opera [[OID](#abbr_OID)]{#abbr_OID .term} [Objec [[OID](#abbr_OID)]{#abbr_OID .term} [Objec [[OS](#abbr_OS)]{#abbr_OS .term} [Opera [[OS](#abbr_OS)]{#abbr_OS .term} [Opera [[OTA](#abbr_OTA)]{#abbr_OTA .term} [Over [[OTA](#abbr_OTA)]{#abbr_OTA .term} [Over [[PAD](#abbr_PAD)]{#abbr_PAD .term} [Prese [[PAD](#abbr_PAD)]{#abbr_PAD .term} [Prese [[PAE](#abbr_PAE)]{#abbr_PAE .term} [Port [[PAE](#abbr_PAE)]{#abbr_PAE .term} [Port [[PBKDF](#abbr_PBKDF)]{#abbr_PBKDF .term} [Passw [[PBKDF](#abbr_PBKDF)]{#abbr_PBKDF .term} [Passw [[PD](#abbr_PD)]{#abbr_PD .term} [Prote [[PD](#abbr_PD)]{#abbr_PD .term} [Prote > [[PIV](#abbr_PIV)]{#abbr_PIV .term} [Perso [[PMK](#abbr_PMK)]{#abbr_PMK .term} [Pairw [[PMK](#abbr_PMK)]{#abbr_PMK .term} [Pairw [[PP](#abbr_PP)]{#abbr_PP .term} [Prote | [[PP](#abbr_PP)]{#abbr_PP .term data-plural="PPs"} [Prote [[PP-Configuration](#abbr_PP-Configuration)]{#abbr_PP-Configuration .term} [Prote [[PP-Configuration](#abbr_PP-Configuration)]{#abbr_PP-Configuration .term} [Prote [[PP-Module](#abbr_PP-Module)]{#abbr_PP-Module .term} [Prote [[PP-Module](#abbr_PP-Module)]{#abbr_PP-Module .term} [Prote > [[PRF](#abbr_PRF)]{#abbr_PRF .term} [Pseud > [[PSK](#abbr_PSK)]{#abbr_PSK .term data-plural="PSKs"} [Pre-S [[PTK](#abbr_PTK)]{#abbr_PTK .term} [Pairw [[PTK](#abbr_PTK)]{#abbr_PTK .term} [Pairw [[RA](#abbr_RA)]{#abbr_RA .term} [Regis [[RA](#abbr_RA)]{#abbr_RA .term} [Regis [[RBG](#abbr_RBG)]{#abbr_RBG .term} [Rando [[RBG](#abbr_RBG)]{#abbr_RBG .term} [Rando [[REK](#abbr_REK)]{#abbr_REK .term} [Root | [[REK](#abbr_REK)]{#abbr_REK .term data-plural="REKs"} [Root [[ROM](#abbr_ROM)]{#abbr_ROM .term} [Read- [[ROM](#abbr_ROM)]{#abbr_ROM .term} [Read- [[RSA](#abbr_RSA)]{#abbr_RSA .term} [Rives [[RSA](#abbr_RSA)]{#abbr_RSA .term} [Rives [[SAR](#abbr_SAR)]{#abbr_SAR .term} [Secur | [[SAFAR](#abbr_SAFAR)]{#abbr_SAFAR .term data-plural="SAFARs"} [Syste [[SFR](#abbr_SFR)]{#abbr_SFR .term} [Secur | [[SAR](#abbr_SAR)]{#abbr_SAR .term data-plural="SARs"} [Secur > [[SFR](#abbr_SFR)]{#abbr_SFR .term data-plural="SFRs"} [Secur [[SHA](#abbr_SHA)]{#abbr_SHA .term} [Secur [[SHA](#abbr_SHA)]{#abbr_SHA .term} [Secur [[SMS](#abbr_SMS)]{#abbr_SMS .term} [Short [[SMS](#abbr_SMS)]{#abbr_SMS .term} [Short > [[SoC](#abbr_SoC)]{#abbr_SoC .term data-plural="SoCs"} [Syste [[SPI](#abbr_SPI)]{#abbr_SPI .term} [Secur [[SPI](#abbr_SPI)]{#abbr_SPI .term} [Secur [[SSH](#abbr_SSH)]{#abbr_SSH .term} [Secur [[SSH](#abbr_SSH)]{#abbr_SSH .term} [Secur [[SSID](#abbr_SSID)]{#abbr_SSID .term} [Servi [[SSID](#abbr_SSID)]{#abbr_SSID .term} [Servi [[ST](#abbr_ST)]{#abbr_ST .term} [Secur | [[ST](#abbr_ST)]{#abbr_ST .term data-plural="STs"} [Secur [[TLS](#abbr_TLS)]{#abbr_TLS .term} [Trans [[TLS](#abbr_TLS)]{#abbr_TLS .term} [Trans [[TOE](#abbr_TOE)]{#abbr_TOE .term} [Targe | [[TOE](#abbr_TOE)]{#abbr_TOE .term data-plural="TOEs"} [Targe [[TSF](#abbr_TSF)]{#abbr_TSF .term} [[TOE] [[TSF](#abbr_TSF)]{#abbr_TSF .term} [[TOE] [[TSFI](#abbr_TSFI)]{#abbr_TSFI .term data-plural="TSFIs"} [[TSF] [[TSFI](#abbr_TSFI)]{#abbr_TSFI .term data-plural="TSFIs"} [[TSF] [[TSS](#abbr_TSS)]{#abbr_TSS .term} [[TOE] [[TSS](#abbr_TSS)]{#abbr_TSS .term} [[TOE] [[URI](#abbr_URI)]{#abbr_URI .term} [Unifo [[URI](#abbr_URI)]{#abbr_URI .term} [Unifo [[USB](#abbr_USB)]{#abbr_USB .term} [Unive [[USB](#abbr_USB)]{#abbr_USB .term} [Unive [[USSD](#abbr_USSD)]{#abbr_USSD .term} [Unstr [[USSD](#abbr_USSD)]{#abbr_USSD .term} [Unstr [[VPN](#abbr_VPN)]{#abbr_VPN .term} [Virtu [[VPN](#abbr_VPN)]{#abbr_VPN .term} [Virtu [[XCCDF](#abbr_XCCDF)]{#abbr_XCCDF .term} [eXten [[XCCDF](#abbr_XCCDF)]{#abbr_XCCDF .term} [eXten [[XTS](#abbr_XTS)]{#abbr_XTS .term} [XEX ( [[XTS](#abbr_XTS)]{#abbr_XTS .term} [XEX ( Appendix J - Bibliography {#appendix-bibliography .indexable data-level="A"} Appendix J - Bibliography {#appendix-bibliography .indexable data-level="A"} ========================= ========================= +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | Identifier | Title | | Identifier | Title | +===================================+===================================+ +===================================+===================================+ | [\[[ANSI](#abbr_ANSI) | [ANSI](#abbr_ANSI)/CITS | | | [\[[ANSI](#abbr_ANSI) | [ [ANSI](#abbr_ANSI)/CITS | | 409.1\]]{#ANSI409.1} | 409.1-2005. Biometrics | | 409.1\]]{#ANSI409.1} | 409.1-2005. Biometrics | | | Performance Testing and | | | Performance Testing and | | | Reporting---Part 1: Principles | | | Reporting---Part 1: Principles | | | and Findings.\" Annex B. | | | and Findings.\" Annex B. | | | [ANSI](#abbr_ANSI)/CITS, 2005. | | | [ANSI](#abbr_ANSI)/CITS, 2005. | > | | ]{.description} | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | [\[BROWN\]]{#Brown} | [Interval Estimation for a | | | [\[BROWN\]]{#Brown} | [ [Interval Estimation for a | | | Binomial | | | Binomial | | | Proportion.](http://projecteuclid | | | Proportion.](http://projecteuclid | | | .org/download/pdf_1/euclid.ss/100 | | | .org/download/pdf_1/euclid.ss/100 | | | 9213286)Brown, | | | 9213286)Brown, | | | Cai, and DasGupta. | | | Cai, and DasGupta. | > | | ]{.description} | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | [\[[CC](#abbr_CC)\]]{#bibCC} | Common Criteria for Information | | | [\[[CC](#abbr_CC)\]]{#bibCC} | [Common Criteria for Information | | | Technology Security Evaluation - | | | Technology Security Evaluation - | > | | ]{.description} | | | | | | | | | - [Part 1: Introduction and | | | - [Part 1: Introduction and | | | General | | | General | | | Model](http://www.commoncrite | | | Model](http://www.commoncrite | | | riaportal.org/files/ccfiles/CCPAR | | | riaportal.org/files/ccfiles/CCPAR | | | T1V3.1R5.pdf), | | | T1V3.1R5.pdf), | | | CCMB-2017-04-001, Version 3.1 | | | CCMB-2017-04-001, Version 3.1 | | | Revision 5, April 2017. | | | Revision 5, April 2017. | | | - [Part 2: Security Functional | | | - [Part 2: Security Functional | | | Components](http://www.common | | | Components](http://www.common | | | criteriaportal.org/files/ccfiles/ | | | criteriaportal.org/files/ccfiles/ | | | CCPART2V3.1R5.pdf), | | | CCPART2V3.1R5.pdf), | | | CCMB-2017-04-002, Version 3.1 | | | CCMB-2017-04-002, Version 3.1 | | | Revision 5, April 2017. | | | Revision 5, April 2017. | | | - [Part 3: Security Assurance | | | - [Part 3: Security Assurance | | | Components](http://www.common | | | Components](http://www.common | | | criteriaportal.org/files/ccfiles/ | | | criteriaportal.org/files/ccfiles/ | | | CCPART3V3.1R5.pdf), | | | CCPART3V3.1R5.pdf), | | | CCMB-2017-04-003, Version 3.1 | | | CCMB-2017-04-003, Version 3.1 | | | Revision 5, April 2017. | | | Revision 5, April 2017. | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | [\[[CEM](#abbr_CEM)\]]{#CEM} | [Common Evaluation Methodology | | | [\[[CEM](#abbr_CEM)\]]{#CEM} | [ [Common Evaluation Methodology | | | for Information Technology | | | for Information Technology | | | Security - Evaluation | | | Security - Evaluation | | | Methodology](http://www.commoncri | | | Methodology](http://www.commoncri | | | teriaportal.org/files/ccfiles/CEM | | | teriaportal.org/files/ccfiles/CEM | | | V3.1R5.pdf), | | | V3.1R5.pdf), | | | CCMB-2012-09-004, Version 3.1, | | | CCMB-2012-09-004, Version 3.1, | | | Revision 5, April 2017. | | | Revision 5, April 2017. | > | | ]{.description} | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | [\[IBPC\]]{#IBPC} | [On security evaluation of | | | [\[IBPC\]]{#IBPC} | [ [On security evaluation of | | | fingerprint recognition | | | fingerprint recognition | | | systems\-- IBPC | | | systems\-- IBPC | | | Presentation.](https://www.nist.g | | | Presentation.](https://www.nist.g | | | ov/document/hennigerolafibpc-pres | | | ov/document/hennigerolafibpc-pres | | | entationpdf), | | | entationpdf), | | | Henniger, Scheuermann, and | | | Henniger, Scheuermann, and | | | Kniess.International Biometric | | | Kniess.International Biometric | | | Performance Testing Conference | | | Performance Testing Conference | | | (IBPC), 2010. Retrieved June 12, | | | (IBPC), 2010. Retrieved June 12, | | | 2015. | | | | 2015. ]{.description} | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | [\[ISO 19989\]]{#ISO19989} | [ISO/IEC NP 19989: Evaluation of | | | [\[ISO 19989\]]{#ISO19989} | [ [ISO/IEC NP 19989: Evaluation | | | presentation attack detection for | | | | of presentation attack detection | > | | for | | | biometrics](http://www.iso.org/is | | | biometrics](http://www.iso.org/is | | | o/home/store/catalogue_tc/catalog | | | o/home/store/catalogue_tc/catalog | | | ue_detail.htm?csnumber=66801) | | | ue_detail.htm?csnumber=66801) | | | International Organization for | | | International Organization for | | | Standardization (ISO), 2014. | | | Standardization (ISO), 2014. | > | | ]{.description} | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | [\[[NFIQ](#abbr_NFIQ) | [NIST Fingerprint Image Quality | | | [\[[NFIQ](#abbr_NFIQ) | [ [NIST Fingerprint Image Quality | | 1.0\]]{#NFIQ1.0} | and relation to | | 1.0\]]{#NFIQ1.0} | and relation to | | | PIV](http://biometrics.nist.gov/c | | | PIV](http://biometrics.nist.gov/c | | | s_links/standard/archived/worksho | | | s_links/standard/archived/worksho | | | ps/workshop1/presentations/Tabass | | | ps/workshop1/presentations/Tabass | | | i-Image-Quality.pdf), | | | i-Image-Quality.pdf), | | | Tabassi, Elham. | | | Tabassi, Elham. | | | [NIST](#abbr_NIST) Information | | | [NIST](#abbr_NIST) Information | | | Technology Laboratory, 2005. | | | Technology Laboratory, 2005. | | | Retrieved June 13, 2015. | | | Retrieved June 13, 2015. | > | | ]{.description} | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | [\[[NFIQ](#abbr_NFIQ) | [Biometric Quality: The push | | | [\[[NFIQ](#abbr_NFIQ) | [ [Biometric Quality: The push | | 2.0\]]{#NFIQ2.0} | towards zero error | | 2.0\]]{#NFIQ2.0} | towards zero error | | | biometrics.](http://biometrics.ni | | | biometrics.](http://biometrics.ni | | | st.gov/cs_links/ibpc2016/presenta | | | st.gov/cs_links/ibpc2016/presenta | | | tions/ibpc2016_may04/13_tabassi_i | | | tions/ibpc2016_may04/13_tabassi_i | | | bpc2016_nfiq_4May2016.pdf), | | | bpc2016_nfiq_4May2016.pdf), | | | Tabassi, Elham et al. | | | Tabassi, Elham et al. | | | International Biometrics | | | International Biometrics | | | Performance Conference (IBPC), | | | Performance Conference (IBPC), | | | 2016. Retrieved May 30, 2016. | | | 2016. Retrieved May 30, 2016. | > | | ]{.description} | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+ | [\[[NIST](#abbr_NIST)\]]{#NIST} | [The NIST speaker recognition | | | [\[[NIST](#abbr_NIST)\]]{#NIST} | [ [The NIST speaker recognition | | | evaluation---Overview, | | | evaluation---Overview, | | | methodology, systems, results, | | | methodology, systems, results, | | | perspective](http://www.isca-spee | | | perspective](http://www.isca-spee | | | ch.org/archive_open/archive_paper | | | ch.org/archive_open/archive_paper | | | s/odyssey/pres/odys_doddington_p. | | | s/odyssey/pres/odys_doddington_p. | | | pdf), | | | pdf), | | | Doddington, Przybocki, Martin, | | | Doddington, Przybocki, Martin, | | | and Reynolds. Speech | | | and Reynolds. Speech | | | Communication 31: Elsevier, 2000, | | | Communication 31: Elsevier, 2000, | | | Retrieved June 10, 2015. | | | Retrieved June 10, 2015. | > | | ]{.description} | +-----------------------------------+-----------------------------------+ +-----------------------------------+-----------------------------------+