<PP xmlns="https://niap-ccevs.org/cc/v1" xmlns:cc="https://niap-ccevs.org/cc/v1" xmlns:sec="https://niap-ccevs.org/cc/v1/section" xmlns:htm="http://www.w3.org/1999/xhtml" boilerplate="yes" target-product="Mobile Device">
  <PPReference>
    <ReferenceTable>
      <PPTitle>Mobile Device Fundamentals</PPTitle>
      <PPVersion>3.3</PPVersion>
      <PPAuthor>National Information Assurance Partnership</PPAuthor>
      <PPPubDate>2022-09-12</PPPubDate>
      <Keywords>??</Keywords>
    </ReferenceTable>
  </PPReference>
  <RevisionHistory>
    <entry>
      <version>1.0</version>
      <date>2013-10-21</date>
      <subject>Initial Release</subject>
    </entry>
    <entry>
      <version>1.1</version>
      <date>2014-01-12</date>
      <subject>Typographical changes and additional clarifications in application notes. Removed<htm:br/>assignment from FCS_TLS_EXT.1 and limited testing to those ciphersuites in both<htm:br/>FCS_TLS_EXT.1 and FCS_TLS_EXT.2.</subject>
    </entry>
    <entry>
      <version>2.0</version>
      <date>2015-09-14</date>
      <subject>Included changes based on Technical Rapid Response Team Decisions. Clarified many<htm:br/>requirements and evaluation activities. Mandated objective requirements:Application Access Control (FDP_ACF_EXT.1.2)VPN Information Flow Control (FDP_IFC_EXT.1) Added new objective requirements:Suite B cryptography for IEEE 802.11Certificate enrollmentProtection of additional key material typesHeap overflow protectionBluetooth requirementsCryptographic operation services for applicationsRemote Attestation (FPT_NOT_EXT.1) Added transition dates for some objective requirements. Included<htm:br/>hardware-isolated REK and key storage selections. Allowed key derivation by<htm:br/>REK. Clarified FTP_ITC_EXT.1 and added FDP_UPC_EXT.1. Mandated HTTPS and<htm:br/>TLS for application use. (FDP_UPC_EXT.1) Removed Dual_EC_DRBG as an approved<htm:br/>DRBG. Adopted new TLS requirements.  Mandated TSF Wipe upon authentication<htm:br/>failure limit and required number of authentication failures be maintained across<htm:br/>reboot. Clarified Management Class. Included more domain isolation<htm:br/>discussion and tests. Updated Audit requirements and added Auditable Events<htm:br/>table. Added SFR Category Mapping Table. Updated Use Case<htm:br/>Templates. Moved Glossary to Introduction.</subject>
    </entry>
    <entry>
      <version>3.0</version>
      <date>2015-09-17</date>
      <subject>Included changes based on Technical Rapid Response Team Decisions. Clarified<htm:br/>many requirements and evaluation activities. Mandated objective requirements:Generation of Audit Records (FAU_GEN.1)Audit Storage Protection (FAU_STG.1)Audit Storage Overwrite (FAU_STG.4)Lock Screen DAR (FDP_DAR_EXT.2)Discard Bluetooth Connection Attempts from Bluetooth Addresses with Existing<htm:br/>Connection (FIA_BLT_EXT.3)JTAG Disablement (FPT_JTA) Added new objective requirements:Application BackupBiometric Authentication FactorAccess ControlUser AuthenticationBluetooth Encryption WLAN client requirements moved to Extended Package for WLAN Client. Added<htm:br/>SFRs to support BYOD Use Case BYOD Use Case Updated key destruction SFR<htm:br/></subject>
    </entry>
    <entry>
      <version>3.1</version>
      <date>2017-04-05</date>
      <subject>Included changes based on Technical Rapid Response Team Decisions and incorporated<htm:br/>Technical Decisions. Modified biometric requirements: FIA_UAU.5 - Added iris, face, voice and vein as supported modalities, in addition<htm:br/>to fingerprint (allowed in version 3)FIA_BMG_EXT.1.1 - Clarified AA to specify that vendor evidence is acceptable and<htm:br/>expectations of evidence provided. FIA_BMG_EXT.1.2 - SAFAR was changed to an assignment of a SAFAR no greater than<htm:br/>1:500. FIA_AFL_EXT.1 - Updated to allow each biometric modality to utilize an individual<htm:br/>or shared counter. FCS_TLSC_EXT.1.1 - Removed TLS ciphersuites that utilized SHA1 and updated<htm:br/>optional ciphersuites to be uniformed across PPs. FCS_STG_EXT.2.2 - Modified to<htm:br/>require long term trusted channel key material be encrypted by an approved method.<htm:br/>FIA_UAU_EXT.1.1 - Modified to allow the long term trusted channel key material to be<htm:br/>available prior to password being entered at start-up.</subject>
    </entry>
    <entry>
      <version>3.2</version>
      <date>2021-04-15</date>
      <subject>Removed TLS SFRs and utilized TLS Functional Package Removed Bluetooth SFRs<htm:br/>and utilized Bluetooth Module. Bluetooth SFR moved to Implementation Dependent.<htm:br/>FPT_TUD_EXT.4.2 renumbered to</subject>
    </entry>
    <entry>
      <version>3.3</version>
      <date>2022-09-12</date>
      <subject>Integrated Biometrics cPP Module, Included changes based on Technical Rapid Response Team Decisions and open issues from GitHub.Removed biometric definitions from Tech TermsRemoved FDP_PBARemoved FIA_BMGUpdated FIA_UAU.5 to support bio cPP moduleMoved FTA_TAB.1 to mandatoryMoved FAU_SAR.1 to mandatoryAdded ECDUpdated WLAN Client reference from Extended Package to ModuleRemoved Diffie-Hellman group 14 selection from FCS_CKM.1.1 and FCS_CKM.2.1/UNLOCKED</subject>
    </entry>
  </RevisionHistory>
  <release-notes><htm:h3>TDs Applied</htm:h3></release-notes><include-pkg id="pkg-tls">
    <git>
      <url>https://github.com/commoncriteria/tls</url>
      <branch>release-1.1</branch>
    </git>
    <url>https://www.niap-ccevs.org/Profile/Info.cfm?PPID=439&amp;id=439</url>
  </include-pkg>
  <modules><module id="mod-vpnclient"><git><url>https://github.com/commoncriteria/vpnclient </url> <branch>v2.4 </branch> </git> <url/> </module> <module id="mod-bluetooth"><git><url>https://github.com/commoncriteria/bluetooth </url> <branch>v1.0 </branch> </git> <url/> </module> <module id="mod-mdmagent"><git><url>https://github.com/commoncriteria/mdmagent </url> <branch>Release-1.0 </branch> </git> <url/> </module> <module id="mod-wlanclient"><git><url>https://github.com/commoncriteria/wlanclient </url> <branch>release-1.0 </branch> </git> <url/> </module> <module id="mod-biometrics" name="Biometric Enrollment and Verification" product="Biometric Devices" short="Biometric cPP" version="1.1"><url>https://github.com/biometricITC/cPP-biometrics/blob/master/Protection%20Profile/BiocPP.adoc </url> </module> </modules>
  <pp-preferences/>
  <sec:Introduction>
    <sec:Objectives_of_Document>
The scope of this Protection Profile (PP) is to describe the security functionality of mobile devices in terms of [CC] and to define functional and assurance requirements for such devices.		
    </sec:Objectives_of_Document>
    <tech-terms>
      <term full="Address Space Layout Randomization" abbr="ASLR"> An anti-exploitation feature,
        which loads memory mappings into unpredictable locations. ASLR makes it more difficult for
        an attacker to redirect control to code that they have introduced into the address space of
        a process or the kernel.</term>
      <term full="Administrator"> The Administrator is responsible for management activities,
        including setting the policy that is applied by the enterprise on the Mobile Device. This
        administrator is likely to be acting remotely and could be the Mobile Device Management
        (MDM) Administrator acting through an MDM Agent. If the device is unenrolled, the user is
        the administrator.</term>
      <term full="Auxiliary Boot Modes"> Auxiliary boot modes are states in which the device
        provides power to one or more components to provide an interface that enables an
        unauthenticated user to interact with either a specific component or several components that
        exist outside of the device’s fully authenticated, operational state.</term>
      <term full="Biometric Authentication Factor" abbr="BAF"> Authentication factor, which uses
        biometric sample, matched to a biometric authentication template to help establish
        identity.</term>
      <term full="Common Application Developer"> Application developers (or software companies)
        often produce many applications under the same name. Mobile devices often allow shared
        resources by such applications where otherwise resources would not be shared. </term>
      <term full="Critical Security Parameter" abbr="CSP"> Security-related information whose
        disclosure or modification can compromise the security of a cryptographic module or
        authentication system. </term>
      <term full="Data"> Program/application or data files that are stored or transmitted by a
        server or Mobile Device (MD). </term>
      <term full="Data Encryption Key" abbr="DEK">A key used to encrypt data-at-rest.</term>
      <term full="Developer Modes"> Developer modes are states in which additional services are
        available to a user in order to provide enhanced system access for debugging of software. </term>
      <term full="Encrypted Software Keys"> These keys are stored in the main file system encrypted
        by another key and can be changed and sanitized.</term>
      <term full="Enrolled State"> The state in which the Mobile Device is managed with active
        policy settings from the administrator.</term>
      <term full="Enterprise Data"> Enterprise data is any data residing in the enterprise servers,
        or temporarily stored on Mobile Devices to which the Mobile Device user is allowed access
        according to security policy defined by the enterprise and implemented by the
        administrator.</term>
      <term full="Ephemeral Keys"> These keys are stored in volatile memory.</term>
      <term full="File Encryption Key" abbr="FEK"> A DEK used to encrypt a file or a director when
        File Encryption is used. FEKs are unique to each encrypted file or directory. </term>
      <term full="Hardware-Isolated Keys"> The OS can only access these keys by reference, if
        at all, during runtime. </term>
      <term full="Hybrid Authentication"> A hybrid authentication factor is one where a user has to
        submit a combination of a biometric sample and a PIN or password and both must pass. If either factor fails, the entire attempt fails. The user shall not be made aware of which factor failed, if either fails.</term>
      <term full="Immutable Hardware Key"> These keys are stored as hardware-protected raw key and
        cannot be changed or sanitized.</term>
      <term full="Key Chaining"> The method of using multiple layers of encryption keys to protect
        data. A top layer key encrypts a lower layer key, which encrypts the data; this method can
      have any number of layers.</term>
      <term full="Key Encryption Key" abbr="KEK"> A key used to encrypt other keys, such as DEKs or
        storage that contains keys.</term>
      <term full="Locked State"> Powered on but most functionality is unavailable for use. User
        authentication is required to access functionality.</term>
      <term full="Mobile Device" abbr="MD"> A device which is composed of a hardware platform and
        its system software. The device typically provides wireless connectivity and may include
        software for functions like secure messaging, email, web, VPN (Virtual Private Network) connection, and VoIP (Voice
        over IP), for access to the protected enterprise network, enterprise data and applications,
        and for communicating to other Mobile Devices. </term>
      <term full="Mobile Device Management" abbr="MDM"> Mobile device management (MDM) products
        allow enterprises to apply security policies to mobile devices. This system consists of two
        primary components: the MDM Server and the MDM Agent. </term>
      <term full="MDM Agent"> The MDM Agent is installed on a Mobile Device as an application or is
        part of the Mobile Device’s OS. The MDM Agent establishes a secure connection back to the
        MDM Server controlled by the administrator.</term>
      <term full="Minutia Point"> Friction ridge characteristics that are used to individualize a
        fingerprint image. Minutia are the points where friction ridges begin, terminate, or split
        into two or more ridges. In many fingerprint systems, the minutia points are compared for
        recognition purposes.</term>
      <term full="Mobile Device User"> The individual authorized to physically control and
        operate the Mobile Device. Depending on the use case, this can be the device owner or an
        individual authorized by the device owner.</term>
      <term full="Modality"> A type or class of biometric system, such as fingerprint
        recognition, facial recognition, iris recognition, voice recognition, signature/sign, and
        others.</term>
      <term full="Mutable Hardware Key"> These keys are stored as hardware-protected raw key and can
      be changed or sanitized.</term>
      <term full="Operating System" abbr="OS"> Software that runs at the highest privilege level
        and can directly control hardware resources. Modern Mobile Devices typically have at least
        two primary operating systems: one, which runs on the application processor and one,
        which runs on the cellular baseband processor. The OS of the application processor handles most
        user interactions and provides the execution environment for apps. The OS of the cellular
        baseband processor handles communications with the cellular network and may control other
        peripherals. The term OS, without context, may be assumed to refer to the OS of the
        application processor. </term>
      <term full="Password Authentication Factor"> A type of authentication factor requiring the
        user to provide a secret set of characters to gain access.</term>
      <term full="PIN Authentication Factor"> A PIN is a set of numeric or alphabetic characters that may be used
        in addition to a biometric factor to provide a hybrid authentication factor. At this time it
        is not considered as a stand-alone authentication mechanism. A PIN is distinct from a password in that the allowed character set and required length of a PIN
      is typically smaller than that of a password as it is designed to be input quickly.</term>
      <term full="Powered Off State"> The device has been shut down such that no TOE function can be
        performed.</term>
      <term full="Protected Data" abbr="PD"> 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. </term>
      <term full="Root Encryption Key" abbr="REK"> A key tied to the device used to encrypt other
        keys. </term>
      <term full="Sensitive data"> Sensitive data shall be identified in the TSS section of the
        Security Target (ST) by the ST author. Sensitive data is a subset or all of the Protected
        data. Sensitive data may include all user or enterprise data or may be specific application
        data such as emails, messaging, documents, calendar items, and contacts. Sensitive data is
        protected while in the locked state (FDP_DAR_EXT.2). </term>
      <term full="Software Keys"> The OS access the raw bytes of these keys during runtime.</term>
      <term full="Trust Anchor Database"> A list of trusted root Certificate Authority
        certificates.</term>
      <term full="TSF Data"> Data for the operation of the TSF upon which the enforcement of the
        requirements relies.</term>
      <term full="Unenrolled State"> The state in which the Mobile Device is not managed. </term>
      <term full="Unlocked State"> Powered on and device functionality is available for use. Implies
        user authentication has occurred (when so configured).</term>
      <term full="Verification"> A task where the biometric system attempts to confirm
        an individual’s claimed identity by comparing a submitted sample to one or more previously
        enrolled authentication templates.</term>
      <term full="Advanced Encryption Standard" abbr="AES"/>
      <term full="Authenticated Encryption with Associated Data" abbr="AEAD"/>
      <term full="American National Standards Institute" abbr="ANSI"/>
      <term full="Application Processor" abbr="AP"/>
      <term full="Application Programming Interface" abbr="API"/>
      <term full="Baseband Processor" abbr="BP"/>
      <term full="Basic Rate/Enhanced Data Rate (BR/EDR)" abbr="BR/EDR"/>
      <term full="Bring Your Own Device" abbr="BYOD"/>
      <term full="Certificate Authority" abbr="CA"/>
      <term full="Cipher Block Chaining" abbr="CBC"/>
      <term full="Counter with CBC-Message Authentication Code" abbr="CCM"/>
      <term full="CCM Protocol" abbr="CCMP"/>
      <term full="Certificate Management over Cryptographic Message Syntax  (CMC)" abbr="CMC"/>
      <term full="Central Processing Unit" abbr="CPU"/>
      <term full="Certificate Revocation List" abbr="CRL"/>
      <term full="Data At Rest" abbr="DAR"/>
      <term full="Data Encryption Key" abbr="DEK"/>
      <term full="Data Execution Prevention" abbr="DEP"/>
      <term full="Diffie-Hellman" abbr="DH"/>
      <term full="Domain Name System" abbr="DNS"/>
      <term full="Digital Signature Algorithm" abbr="DSA"/>
      <term full="Datagram Transport Layer Security" abbr="DTLS"/>
      <term full="Extensible Authentication Protocol" abbr="EAP"/>
      <term full="EAP Over LAN" abbr="EAPOL"/>
      <term full="Elliptic Curve Diffie Hellman" abbr="ECDH"/>
      <term full="Elliptic Curve Digital Signature Algorithm" abbr="ECDSA"/>
      <term full="Electrically Erasable Programmable Read-Only Memory" abbr="EEPROM"/>
      <term full="Enrollment over Secure Transport" abbr="EST"/>
      <term full="Federal Information Processing Standards" abbr="FIPS"/>
      <term full="Frequency Modulation" abbr="FM"/>
      <term full="Fully Qualified Domain Name" abbr="FQDN"/>
      <term full="Finite Field Cryptography" abbr="FFC"/>
      <term full="Galois Counter Mode" abbr="GCM"/>
      <term full="Global Positioning System" abbr="GPS"/>
      <term full="Graphics Processing Unit" abbr="GPU"/>
      <term full="High Definition Multimedia Interface" abbr="HDMI"/>
      <term full="Keyed-Hash Message Authentication Code" abbr="HMAC"/>
      <term full="HyperText Transfer Protocol Secure" abbr="HTTPS"/>
      <term full="Institute of Electrical and Electronics Engineers" abbr="IEEE"/>
      <term full="Internet Protocol" abbr="IP"/>
      <term full="Inter-Process Communication" abbr="IPC"/>
      <term full="Internet Protocol Security" abbr="IPsec"/>
      <term full="Known Answer Test" abbr="KAT"/>
      <term full="Key Derivation Function" abbr="KDF"/>
      <term full="Low Energy (LE)" abbr="LE"/>
      <term full="Long Term Evolution" abbr="LTE"/>
      <term full="Man-Machine Interface" abbr="MMI"/>
      <term full="Memory Management Unit" abbr="MMU"/>
      <term full="Multimedia Messaging Service" abbr="MMS"/>
      <term full="Network Time Protocol" abbr="NTP"/>
      <term full="Near Field Communication" abbr="NFC"/>
      <term full="National Institute of Standards and Technology" abbr="NIST"/>
      <term full="Never Execute" abbr="NX"/>
      <term full="Online Certificate Status Protocol" abbr="OCSP"/>
      <term full="Object Identifier" abbr="OID"/>
      <term full="Over the Air" abbr="OTA"/>
      <term full="Personal Identity Verification" abbr="PIV"/>
      <term full="Port Access Entity" abbr="PAE"/>
      <term full="Password-Based Key Derivation Function" abbr="PBKDF"/>
      <term full="Pre-Shared Key" abbr="PSK"/>
      <term full="Pseudorandom Function" abbr="PRF"/>
      <term full="Pairwise Master Key" abbr="PMK"/>
      <term full="Pairwise Temporal Key" abbr="PTK"/>
      <term full="Registration Authority" abbr="RA"/>
      <term full="Random Bit Generator" abbr="RBG"/>
      <term full="Read-only memory" abbr="ROM"/>
      <term full="Rivest Shamir Adleman Algorithm" abbr="RSA"/>
      <term full="Secure Hash Algorithm" abbr="SHA"/>
      <term full="Short Messaging Service" abbr="SMS"/>
      <term full="Security Parameter Index" abbr="SPI"/>
      <term full="Secure Shell" abbr="SSH"/>
      <term full="Service Set Identifier" abbr="SSID"/>
      <term full="System Authentication False Accept Rate" abbr="SAFAR"/>
      <term full="System On a Chip" abbr="SoC"/>
      <term full="Transport Layer Security" abbr="TLS"/>
      <term full="Uniform Resource Identifier" abbr="URI"/>
      <term full="Universal Serial Bus" abbr="USB"/>
      <term full="Unstructured Supplementary Service Data" abbr="USSD"/>
      <term full="Virtual Private Network" abbr="VPN"/>
      <term full="eXtensible Configuration Checklist Description Format" abbr="XCCDF"/>
      <term full="XEX  Tweakable Block Cipher with Ciphertext Stealing (XTS)" abbr="XTS"/>
    </tech-terms>
    <section title="Compliant Targets of Evaluation" id="TOEdescription">This assurance standard specifies information security requirements for 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 platform and its system software. The device typically provides wireless connectivityand may include software for functions like secure messaging, email, web, VPN connection, and VoIP (Voice over IP), for access to the protected enterprise network, enterprise data and applications, and for communicating to other Mobile Devices.<htm:br/><htm:br/><xref to="NetEnv"/>  illustrates the network operating environment of the Mobile Device.<htm:br/><htm:br/><figure entity="images/figure1.jpg" title="Mobile Device Network Environment" id="NetEnv"/>  <htm:br/><htm:br/>Examples of a "Mobile Device" that should claim conformance to this Protection Profile include smartphones, tablet computers, and other Mobile Devices with similar capabilities.<htm:br/><htm:br/>The Mobile Device provides essential services, such as cryptographic services, data-at-rest protection, and key storage services to support the secure operation of applications on the device. Additional security features such as security policy enforcement, application mandatory access control, anti-exploitation features, user authentication, and software integrity protection are implemented in order to address threats.<htm:br/><htm:br/>This assurance standard describes these essential security services provided by the Mobile Device and serves as a foundation for a secure mobile architecture. The wireless connectivity shall be validated against the<xref to="mod-wlanclient"/>  . If the mobile device contains Bluetooth functionality (i.e., has Bluetooth hardware), the Bluetooth connectivity shall be evaluated against the<xref to="mod-bluetooth"/>  . As illustrated in<xref to="TOE"/>  , it is expected that a typical deployment would also include either third-party or bundled components. Whether these components are bundled as part of the Mobile Device by the manufacturer or developed by a third-party, they must be separately validated against the related assurance standards such as the PP-Module for MDM Agent, PP-Module for VPN Client, PP-Module for VVoIP, and cPP-Module for Biometrics. It is the responsibility of the architect of the overall secure mobile architecture to ensure validation of these components. Additional applications that may come pre-installed on the Mobile Device that are not validated are considered to be potentially flawed, but not malicious. Examples include email client and web browser.<htm:br/><htm:br/><figure entity="images/figure2.jpg" title="Optional Additional Mobile Device Components" id="TOE"/>  <htm:br/></section>
    <sec:Use_Cases>
      <htm:p>The Mobile Device may be operated in a number of use cases.<xref g="use-case-appendix"/>  provides use case templates that list those selections, assignments, and objective requirements that best support the use cases identified by this Protection Profile. In addition to providing essential security services, the Mobile Device includes the necessary security functionality to support configurations for these various use cases. Each use case may require additional configuration and applications to achieve the desired security. A selection of these use cases is elaborated below.</htm:p> <htm:p>Several of the use case templates include objective requirements that are strongly desired for the indicated use cases. Readers can expect those requirements to be made mandatory in a future revision of this protection profile, and industry should aim to include that security functionality in products in the near-term.</htm:p> <htm:p>As of publication of this version of the Protection Profile, meeting the requirements in<xref to="Security_Requirements"/>  is necessary for all use cases.</htm:p> 
      <usecases>
        <usecase title="Enterprise-owned device for general-purpose enterprise use and limited personal use" id="uc-enterprise">
          <description> 
          An enterprise-owned device for general-purpose business use is commonly
          called Corporately Owned, Personally Enabled (COPE).
          This use case entails a significant degree of enterprise control over configuration 
          and, possibly, software inventory.
          The enterprise elects to provide users with Mobile Devices and additional applications (such as
          VPN or email clients) in order to maintain control of their Enterprise data and security of
          their networks.
          Users may use Internet connectivity to browse the web or access corporate mail
          or run enterprise applications, but this connectivity may be under significant control of the
          enterprise.
        </description>
        </usecase>
        <usecase title="Enterprise-owned device for specialized, high security use" id="uc-secure">
          <description>
     An enterprise-owned device with intentionally limited network connectivity, tightly controlled configuration, and limited software inventory is appropriate for specialized, high-security use cases. For example, the device may not be permitted connectivity to any external peripherals. It may only be able to communicate via its Wi-Fi or cellular radios with the enterprise-run network, which may not even permit connectivity to the Internet. Use of the device may entail compliance with policies that are more restrictive than those in any general-purpose use case, yet may mitigate risks to highly sensitive information. As in the previous case, the enterprise will look for additional applications providing enterprise connectivity and services to have a similar level of assurance as the platform.
       </description>
        </usecase>
        <usecase title="Personally-owned device for personal and enterprise use" id="uc-personal">
          <description>
        A personally-owned device that is used for both personal activities and enterprise data is commonly called Bring Your Own Device (BYOD). The device may be provisioned for access to enterprise resources after significant personal usage has occurred. Unlike in the enterprise-owned cases, the enterprise is limited in what security policies it can enforce because the user purchased the device primarily for personal use and is unlikely to accept policies that limit the functionality of the device. However, because the enterprise allows the user full (or nearly full) access to the enterprise network, the enterprise will require their own security controls to ensure that enterprise resources are protected from potential threats posed by the personal activities on the device. These controls could potentially be enforced by a separation mechanism built-in to the device itself to distinguish between enterprise and personal activities, or by a third-party application that provides access to enterprise resources and leverages security capabilities provided by the mobile device. Based upon the operational environment and the acceptable risk level of the enterprise, those security functional requirements outlined in  of this PP along with the selections in the Use Case 3 template defined in Appendix F - Use Case Templates are sufficient for the secure implementation of this BYOD use case.
	   </description>
        </usecase>
        <usecase title="Personally-owned device for personal and limited enterprise use" id="uc-personal-limited">
          <description>
          A personally-owned device that is used for both personal activities and enterprise data is commonly called Bring Your Own Device (BYOD). This device may be provisioned for limited access to enterprise resources such as enterprise email. Because the user does not have full access to the enterprise or enterprise data, the enterprise may not need to enforce any security policies on the device. However, the enterprise may want secure email and web browsing with assurance that the services being provided to those clients by the Mobile Device are not compromised. Based upon the operational environment and the acceptable risk level of the enterprise, those security functional requirements outlined in Section 5 Security Requirements of this PP are sufficient for the secure implementation of this BYOD use case.
          </description>
        </usecase>
      </usecases>
    </sec:Use_Cases>
  </sec:Introduction>
  <sec:Conformance_Claims/>
  <!-- 3.0 Security Problem Definition-->
  <sec:Security_Problem_Definition>
    <!-- 3.1 Threats -->
    <sec:Threats>
      Mobile devices are subject to the threats of traditional computer systems along with those entailed by their mobile nature. The threats considered in this PP are those of network eavesdropping, network attacks, physical access, malicious or flawed applications, persistent presence, and backup as detailed in the following sections. An attacker is positioned on a wireless communications channel or elsewhere on the network infrastructure. Attackers may monitor and gain access to data exchanged between the Mobile Device and other endpoints.The threat T.NETWORK_EAVESDROP is countered by O.PROTECTED_COMMS as this provides the capability to communicate using one (or more) standard protocols as a means to maintain the confidentiality of data that are transmitted outside of the TOE.The threat T.NETWORK_EAVESDROP is countered by O.CONFIG as this provides a secure configuration of the mobile device to protect data that it processes.The threat T.NETWORK_EAVESDROP is countered by O.AUTH as this provides authentication of the endpoints of a trusted communication path.An attacker is positioned on a wireless communications channel or elsewhere on the network infrastructure. Attackers may initiate communications with the Mobile Device or alter communications between the Mobile Device and other endpoints in order to compromise the Mobile Device. These attacks include malicious software update of any applications or system software on the device. These attacks also include malicious web pages or email attachments, which are usually delivered to devices over the network.The threat T.NETWORK_ATTACK is countered by O.PROTECTED_COMMS as this provides the capability to communicate using one (or more) standard protocols as a means to maintain the confidentiality of data that are transmitted outside of the TOE.The threat T.NETWORK_ATTACK is countered by O.CONFIG as this provides a secure configuration of the mobile device to protect data that it processes.The threat T.NETWORK_ATTACK is countered by O.AUTH as this provides authentication of the endpoints of a trusted communication path.An attacker, with physical access, may attempt to access user data on the Mobile Device including credentials. These physical access threats may involve attacks, which attempt to access the device through external hardware ports, impersonate the user authentication mechanisms, through its user interface, and also through direct and possibly destructive access to its storage media. Note: Defending against device re-use after physical compromise is out of scope for this Protection Profile.The threat T.PHYSICAL_ACCESS is countered by O.STORAGE as this provides the capability to encrypt all user and enterprise data and authentication keys to ensure the confidentiality of data that it stores.The threat T.PHYSICAL_ACCESS is countered by O.AUTH as this provides the capability to authenticate the user prior to accessing protected functionality and data.Applications loaded onto the Mobile Device may include malicious or exploitable code. This code could be included intentionally or unknowingly by the developer, perhaps as part of a software library. Malicious apps may attempt to exfiltrate data to which they have access. They may also conduct attacks against the platform’s system software, which will provide them with additional privileges and the ability to conduct further malicious activities. Malicious applications may be able to control the device's sensors (GPS, camera, microphone) to gather intelligence about the user's surroundings even when those activities do not involve data resident or transmitted from the device. Flawed applications may give an attacker access to perform network-based or physical attacks that otherwise would have been preventedThe threat T.MALICIOUS_APP is countered by O.PROTECTED_COMMS as this provides the capability to communicate using one (or more) standard protocols as a means to maintain the confidentiality of data that are transmitted outside of the TOE.The threat T.MALICIOUS_APP is countered by O.CONFIG as this provides the capability to configure and apply security policies to ensure the Mobile Device can protect user and enterprise data that it may store or process.The threat T.MALICIOUS_APP is countered by O.AUTH as this provides the capability to authenticate the user and endpoints of a trusted path to ensure they are communicating with an authorized entity with appropriate privileges.The threat T.MALICIOUS_APP is countered by O.INTEGRITY as this provides the capability to perform self-tests to ensure the integrity of critical functionality, software/firmware and data has been maintained.The threat T.MALICIOUS_APP is countered by O.PRIVACY as this provides separation and privacy between user activities.Persistent presence on a device by an attacker implies that the device has lost integrity and cannot regain it. The device has likely lost this integrity due to some other threat vector, yet the continued access by an attacker constitutes an on-going threat in itself. In this case, the device and its data may be controlled by an adversary as well as by its legitimate owner.The threat T.PERSISTENT_PRESENCE is countered by O.INTEGRITY as this provides the capability to perform self-tests to ensure the integrity of critical functionality, software/firmware and data has been maintained.The threat T.PERSISTENT_PRESENCE is countered by O.PRIVACY as this provides separation and privacy between user activities.
      <threats>
        <threat name="T.MALICIOUS_APP">
          <description> Applications loaded onto the Mobile Device may include malicious or            exploitable code. This code could be included intentionally or unknowingly by the            developer, perhaps as part of a software library. Malicious apps may attempt to            exfiltrate data to which they have access. They may also conduct attacks against the            platform’s system software, which will provide them with additional privileges and the            ability to conduct further malicious activities. Malicious applications may be able to            control the device's sensors (GPS, camera, microphone) to gather intelligence about the            user's surroundings even when those activities do not involve data resident or            transmitted from the device. Flawed applications may give an attacker access to perform            network-based or physical attacks that otherwise would have been prevented</description>
          <objective-refer ref="O.PROTECTED_COMMS">
            <rationale>The threat T.MALICIOUS_APP is countered by O.PROTECTED_COMMS as this provides the              capability to communicate using one (or more) standard protocols as a means to              maintain the confidentiality of data that are transmitted outside of the              TOE.</rationale>
          </objective-refer>
          <objective-refer ref="O.CONFIG">
            <rationale>The threat T.MALICIOUS_APP is countered by O.CONFIG as this provides the              capability to configure and apply security policies to ensure the Mobile Device can              protect user and enterprise data that it may store or process.</rationale>
          </objective-refer>
          <objective-refer ref="O.AUTH">
            <rationale>The threat T.MALICIOUS_APP is countered by O.AUTH as this provides the              capability to authenticate the user and endpoints of a trusted path to ensure they are              communicating with an authorized entity with appropriate privileges.</rationale>
          </objective-refer>
          <objective-refer ref="O.INTEGRITY">
            <rationale>The threat T.MALICIOUS_APP is countered by O.INTEGRITY as this provides the              capability to perform self-tests to ensure the integrity of critical functionality,              software/firmware and data has been maintained.</rationale>
          </objective-refer>
          <objective-refer ref="O.PRIVACY">
            <rationale>The threat T.MALICIOUS_APP is countered by O.PRIVACY as this provides              separation and privacy between user activities.</rationale>
          </objective-refer>
        </threat>
        <threat name="T.NETWORK_ATTACK">
          <description> An attacker is positioned on a wireless communications channel or elsewhere            on the network infrastructure. Attackers may initiate communications with the Mobile            Device or alter communications between the Mobile Device and other endpoints in order to            compromise the Mobile Device. These attacks include malicious software update of any            applications or system software on the device. These attacks also include malicious web            pages or email attachments, which are usually delivered to devices over the            network.</description>
          <objective-refer ref="O.PROTECTED_COMMS">
            <rationale>The threat T.NETWORK_ATTACK is countered by O.PROTECTED_COMMS as this provides the              capability to communicate using one (or more) standard protocols as a means to              maintain the confidentiality of data that are transmitted outside of the              TOE.</rationale>
          </objective-refer>
          <objective-refer ref="O.CONFIG">
            <rationale>The threat T.NETWORK_ATTACK is countered by O.CONFIG as this provides a              secure configuration of the mobile device to protect data that it              processes.</rationale>
          </objective-refer>
          <objective-refer ref="O.AUTH">
            <rationale>The threat T.NETWORK_ATTACK is countered by O.AUTH as this provides              authentication of the endpoints of a trusted communication path.</rationale>
          </objective-refer>
        </threat>
        <threat name="T.NETWORK_EAVESDROP">
          <description> An attacker is positioned on a wireless communications channel or elsewhere            on the network infrastructure. Attackers may monitor and gain access to data exchanged            between the Mobile Device and other endpoints. </description>
          <objective-refer ref="O.PROTECTED_COMMS">
            <rationale>The threat T.NETWORK_EAVESDROP is countered by O.PROTECTED_COMMS as this provides the              capability to communicate using one (or more) standard protocols as a means to              maintain the confidentiality of data that are transmitted outside of the              TOE.</rationale>
          </objective-refer>
          <objective-refer ref="O.CONFIG">
            <rationale>The threat T.NETWORK_EAVESDROP is countered by O.CONFIG as this provides a              secure configuration of the mobile device to protect data that it              processes.</rationale>
          </objective-refer>
          <objective-refer ref="O.AUTH">
            <rationale>The threat T.NETWORK_EAVESDROP is countered by O.AUTH as this provides              authentication of the endpoints of a trusted communication path.</rationale>
          </objective-refer>
        </threat>
        <threat name="T.PERSISTENT_PRESENCE">
          <description> Persistent presence on a device by an attacker implies that the device has            lost integrity and cannot regain it. The device has likely lost this integrity due to            some other threat vector, yet the continued access by an attacker constitutes an            on-going threat in itself. In this case, the device and its data may be controlled by an            adversary as well as by its legitimate owner.</description>
          <objective-refer ref="O.INTEGRITY">
            <rationale>The threat T.PERSISTENT_PRESENCE is countered by O.INTEGRITY as this provides              the capability to perform self-tests to ensure the integrity of critical              functionality, software/firmware and data has been maintained.</rationale>
          </objective-refer>
          <objective-refer ref="O.PRIVACY">
            <rationale>The threat T.PERSISTENT_PRESENCE is countered by O.PRIVACY as this provides              separation and privacy between user activities.</rationale>
          </objective-refer>
        </threat>
        <threat name="T.PHYSICAL_ACCESS">
          <description> An attacker, with physical access, may attempt to access user data on the            Mobile Device including credentials. These physical access threats may involve attacks,            which attempt to access the device through external hardware ports, impersonate the user            authentication mechanisms, through its user interface, and also through direct and            possibly destructive access to its storage media. Note: Defending against device re-use            after physical compromise is out of scope for this Protection Profile.</description>
          <objective-refer ref="O.STORAGE">
            <rationale>The threat T.PHYSICAL_ACCESS is countered by O.STORAGE as this provides the              capability to encrypt all user and enterprise data and authentication keys to ensure              the confidentiality of data that it stores.</rationale>
          </objective-refer>
          <objective-refer ref="O.AUTH">
            <rationale>The threat T.PHYSICAL_ACCESS is countered by O.AUTH as this provides the              capability to authenticate the user prior to accessing protected functionality and              data. </rationale>
          </objective-refer>
        </threat>
      </threats>
    </sec:Threats>
    <!-- 3.2 Assumptions -->
    <sec:Assumptions>
      <assumptions>
        <assumption name="A.CONFIG">
          <description>It is assumed that the TOE’s security functions are configured correctly in a
            manner to ensure that the TOE security policies will be enforced on all applicable
            network traffic flowing among the attached networks.</description>
          <objective-refer ref="OE.CONFIG">
            <rationale>The operational environment objective OE.CONFIG is realized through A.CONFIG.</rationale>
          </objective-refer>
        </assumption>
        <assumption name="A.NOTIFY">
          <description>It is assumed that the mobile user will immediately notify the administrator
            if the Mobile Device is lost or stolen.</description>
          <objective-refer ref="OE.NOTIFY">
            <rationale>The operational environment objective OE.NOTIFY is realized through A.NOTIFY.
            </rationale>
          </objective-refer>
        </assumption>
        <assumption name="A.PRECAUTION">
          <description>It is assumed that the mobile user exercises precautions to reduce the risk
            of loss or theft of the Mobile Device.</description>
          <objective-refer ref="OE.PRECAUTION">
            <rationale>The operational environment objective OE.PRECAUTION is realized through
              A.PRECAUTION. </rationale>
          </objective-refer>
        </assumption>
        <assumption name="A.PROPER_USER">
          <description> Mobile Device users are not willfully negligent or hostile, and use the
            device within compliance of a reasonable Enterprise security policy. </description>
          <objective-refer ref="OE.DATA_PROPER_USER">
            <rationale>The operational environment objective OE.DATA_PROPER_USER is realized through
              A.PROPER_USER. </rationale>
          </objective-refer>
        </assumption>
      </assumptions>
    </sec:Assumptions>
    <!-- 3.3 Organizational Security Policies -->
    <sec:Organizational_Security_Policies>
      <OSPs/>
    </sec:Organizational_Security_Policies>
  </sec:Security_Problem_Definition>
  <!-- 4.0 Security Objectives -->
  <sec:Security_Objectives>
    <!-- 4.1 Security Objectives for the TOE -->
    <sec:Security_Objectives_for_the_TOE>
      <SOs>
        <SO name="O.AUTH">
          <description> To address the issue of loss of confidentiality of user data in the event of
            loss of a Mobile Device (T.PHYSICAL_ACCESS), users are required to enter an authentication
            factor to the device prior to accessing protected functionality and data. Some
            non-sensitive functionality (e.g., emergency calling, text notification) can be accessed
            prior to entering the authentication factor. The device will automatically lock
            following a configured period of inactivity in an attempt to ensure authorization will
            be required in the event of the device being lost or stolen.
			  
            Authentication of the endpoints of a trusted communication path is required for network
            access to ensure attacks are unable to establish unauthorized network connections to
            undermine the integrity of the device. 
			
			Repeated attempts by a user to
            authorize to the TSF will be limited or throttled to enforce a delay between
            unsuccessful attempts.
          </description>
          <addressed-by>FIA_AFL_EXT.1</addressed-by>
          <rationale>FIA_AFL_EXT.1 supports the objective by defining the authentication mechanisms that are subject to lockout behavior and how the TSF handles repeated failed authentication attempts.</rationale>
          <addressed-by>FIA_PMG_EXT.1</addressed-by>
          <rationale>FIA_PMG_EXT.1 supports the objective by defining the minimum quality threshold for passwords that the TSF must enforce.</rationale>
          <addressed-by>FIA_TRT_EXT.1</addressed-by>
          <rationale>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.</rationale>
          <addressed-by>FIA_UAU.5</addressed-by>
          <rationale>FIA_UAU.5 supports the objective by defining all authentication factors the TSF supports and rules for how these authentication factors are used to gain access to the TSF.</rationale>
          <addressed-by>FIA_UAU.6/CREDENTIAL</addressed-by>
          <rationale>FIA_UAU.6/CREDENTIAL supports the objective by requiring the TSF to re-authenticate users with their password prior to allowing them to change any other authentication data.</rationale>
          <addressed-by>FIA_UAU.6/LOCKED</addressed-by>
          <rationale>FIA_UAU.6/LOCKED supports the objective by requiring the TSF to re-authenticate users with a valid credential prior to allowing a locked device to be unlocked.</rationale>
          <addressed-by>FIA_UAU.7</addressed-by>
          <rationale>FIA_UAU.7 supports the objective by ensuring that TSF does not disclose user authentication data as it is being input to the TOE.</rationale>
          <addressed-by>FIA_UAU_EXT.1</addressed-by>
          <rationale>FIA_UAU_EXT.1 supports the objective by requiring the TSF to be provided with a valid password before access to protected data is granted.</rationale>
          <addressed-by>FIA_UAU_EXT.2</addressed-by>
          <rationale>FIA_UAU_EXT.2 supports the objective by defining the TOE functions that can be accessed without authentication such that all other services require authentication.</rationale>
          <addressed-by>FIA_UAU_EXT.4</addressed-by>
          <rationale>FIA_UAU_EXT.4 supports the objective by defining a secondary authentication mechanism for Enterprise resources.</rationale>
          <addressed-by>FIA_X509_EXT.2</addressed-by>
          <rationale>FIA_X509_EXT.2 supports the objective by defining the functions for which the TSF uses X.509 certificates as an authentication mechanism.</rationale>
          <addressed-by>FTA_SSL_EXT.1</addressed-by>
          <rationale>FTA_SSL_EXT.1 supports the objective by requiring the TSF to ensure that an idle user session is terminated after a given period of time.</rationale>
        </SO>
        <SO name="O.CONFIG">
          <description> To ensure a Mobile Device protects user and enterprise data that it may
            store or process, conformant TOEs will provide the capability to configure and apply
            security policies defined by the user and the Enterprise Administrator. If Enterprise
            security policies are configured these must be applied in precedence of user specified
            security policies. </description>
          <addressed-by>FMT_MOF_EXT.1</addressed-by>
          <rationale>FMT_MOF_EXT.1 supports the objective by specifying the TSF management functions that an end user is authorized to perform.</rationale>
          <addressed-by>FMT_SMF.1</addressed-by>
          <rationale>FMT_SMF.1 supports the objective by defining the TSF management functions and the users or roles that are authorized to invoke them.</rationale>
          <addressed-by>FMT_SMF_EXT.2</addressed-by>
          <rationale>FMT_SMF_EXT.2 supports the objective by defining the configuration actions that the TSF performs automatically upon unenrollment from mobile device management.</rationale>
          <addressed-by>FTA_TAB.1</addressed-by>
          <rationale>FTA_TAB.1 supports the objective by requiring the TSF to display a warning banner to users that governs authorized usage of the TOE.</rationale>
        </SO>
        <SO name="O.INTEGRITY">
          <description> To ensure the integrity of the Mobile Device is maintained conformant TOEs
            will perform self-tests to ensure the integrity of critical functionality,
            software/firmware and data has been maintained. The user shall be notified of any
            failure of these self-tests. This will protect against the threat T.PERSISTENT.
             To address the issue of an application containing malicious or flawed
            code (T.MALICIOUS_APP), the integrity of downloaded updates to software/firmware will be
            verified prior to installation/execution of the object on the Mobile Device. In
            addition, the TOE will restrict applications to only have access to the system services
            and data they are permitted to interact with. The TOE will further protect against
            malicious applications from gaining access to data they are not authorized to access by
            randomizing the memory layout. </description>
          <addressed-by>FAU_GEN.1</addressed-by>
          <rationale>FAU_GEN.1 supports the objective by requiring the TSF to record actions performed against it to establish a record of potential malicious activity.</rationale>
          <addressed-by>FAU_SAR.1</addressed-by>
          <rationale>FAU_SAR.1 supports the objective by requiring the TSF to provide a mechanism to review the stored audit data so administrators can diagnose the root cause of malicious usage.</rationale>
          <addressed-by>FAU_SEL.1</addressed-by>
          <rationale>FAU_SEL.1 supports the objective by allowing the TSF to restrict the audit records that are generated so that records unrelated to potential malicious usage can be suppressed.</rationale>
          <addressed-by>FAU_STG.1</addressed-by>
          <rationale>FAU_STG.1 supports the objective by ensuring that a malicious user cannot tamper with audit records by modifying or deleting them.</rationale>
          <addressed-by>FAU_STG.4</addressed-by>
          <rationale>FAU_STG.4 supports the objective by ensuring the availability of audit records.</rationale>
          <addressed-by>FCS_COP.1/HASH</addressed-by>
          <rationale>FCS_COP.1/HASH supports the objective by requiring the TSF to implement hash algorithms that can be used to assert and verify integrity.</rationale>
          <addressed-by>FCS_COP.1/SIGN</addressed-by>
          <rationale>FCS_COP.1/SIGN supports the objective by requiring the TSF to implement digital signature algorithms that can be used to assert and verify integrity.</rationale>
          <addressed-by>FDP_ACF_EXT.1</addressed-by>
          <rationale>FDP_ACF_EXT.1 supports the objective by requiring the TSF to maintain the integrity of its system services by limiting the entities that can access them.</rationale>
          <addressed-by>FDP_ACF_EXT.3</addressed-by>
          <rationale>FDP_ACF_EXT.3 supports the objective by requiring the 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.</rationale>
          <addressed-by>FPT_AEX_EXT.1</addressed-by>
          <rationale>FPT_AEX_EXT.1 supports the objective by requiring the TSF to implement ASLR to prevent a compromise of the TSF.</rationale>
          <addressed-by>FPT_AEX_EXT.2</addressed-by>
          <rationale>FPT_AEX_EXT.2 supports the objective by requiring the TSF to enforce permissions against memory pages to prevent a compromise of the TSF.</rationale>
          <addressed-by>FPT_AEX_EXT.3</addressed-by>
          <rationale>FPT_AEX_EXT.3 supports the objective by requiring the TSF to implement stack overflow protection to prevent a compromise of the TSF.</rationale>
          <addressed-by>FPT_AEX_EXT.4</addressed-by>
          <rationale>FPT_AEX_EXT.4 supports the objective by requiring the TSF to enforce address space separation to prevent a compromise of the TSF.</rationale>
          <addressed-by>FPT_AEX_EXT.5</addressed-by>
          <rationale>FPT_AEX_EXT.5 supports the objective by requiring the TSF to implement ASLR to prevent a compromise of the TSF.</rationale>
          <addressed-by>FPT_AEX_EXT.6</addressed-by>
          <rationale>FPT_AEX_EXT.6 supports the objective by requiring the 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.</rationale>
          <addressed-by>FPT_AEX_EXT.7</addressed-by>
          <rationale>FPT_AEX_EXT.7 supports the objective by requiring the TSF to implement heap overflow protection to prevent a compromise of the TSF.</rationale>
          <addressed-by>FPT_BBD_EXT.1</addressed-by>
          <rationale>FPT_BBD_EXT.1 supports the objective by ensuring that isolation between the TOE's baseband processor and application processor is enforced so that access to the baseband processor is strictly controlled.</rationale>
          <addressed-by>FPT_NOT_EXT.1</addressed-by>
          <rationale>FPT_NOT_EXT.1 supports the objective by requiring the TSF to take some action to prevent its integrity in the event of various failure conditions.</rationale>
          <addressed-by>FPT_NOT_EXT.2</addressed-by>
          <rationale>FPT_NOT_EXT.2 supports the objective by requiring the TSF to make its integrity verification values available for the purpose of remote attestation.</rationale>
          <addressed-by>FPT_STM.1</addressed-by>
          <rationale>FPT_STM.1 supports the objective by ensuring accurate system time data is applied to audit logs.</rationale>
          <addressed-by>FPT_TST_EXT.1</addressed-by>
          <rationale>FPT_TST_EXT.1 supports the objective by defining the self-tests that the TSF performs to validate its own integrity.</rationale>
          <addressed-by>FPT_TST_EXT.2/POSTKERNEL</addressed-by>
          <rationale>FPT_TST_EXT.2/POSTKERNEL supports the objective by requiring the TSF to verify the integrity of stored executable code prior to its execution.</rationale>
          <addressed-by>FPT_TST_EXT.2/PREKERNEL</addressed-by>
          <rationale>FPT_TST_EXT.2/PREKERNEL supports the objective by requiring the TSF to verify the integrity of its bootchain prior to kernel load.</rationale>
          <addressed-by>FPT_TST_EXT.3</addressed-by>
          <rationale>FPT_TST_EXT.3 supports the objective by requiring the TSF to block code execution if its code signing certificate is invalid.</rationale>
          <addressed-by>FPT_TUD_EXT.1</addressed-by>
          <rationale>FPT_TUD_EXT.1 supports the objective by allowing users to determine the version of the TOE's hardware, software/firmware, and installed applications.</rationale>
          <addressed-by>FPT_TUD_EXT.2</addressed-by>
          <rationale>FPT_TUD_EXT.2 supports the objective by requiring the TSF to validate the integrity of software updates prior to installing them.</rationale>
          <addressed-by>FPT_TUD_EXT.3</addressed-by>
          <rationale>FPT_TUD_EXT.3 supports the objective by requiring the TSF to validate the integrity of third-party applications prior to installing them.</rationale>
          <addressed-by>FPT_TUD_EXT.4</addressed-by>
          <rationale>FPT_TUD_EXT.4 supports the objective by requiring the TSF to block installation of code if its associated code signing certificate is invalid.</rationale>
          <addressed-by>FPT_TUD_EXT.5</addressed-by>
          <rationale>FPT_TUD_EXT.5 supports the objective by specifying the X.509 certificate that the TSF uses to verify applications prior to their installation.</rationale>
          <addressed-by>FPT_TUD_EXT.6</addressed-by>
          <rationale>FPT_TUD_EXT.6 supports the objective by preventing the TSF from being rolled back to an earlier version that may have known vulnerabilities that were subsequently patched.</rationale>
        </SO>
        <SO name="O.PRIVACY">
          <description> In a BYOD environment (use cases 3 and 4), a personally-owned mobile device
            is used for both personal activities and enterprise data. Enterprise management
            solutions may have the technical capability to monitor and enforce security policies on
            the device. However, the privacy of the personal activities and data must be ensured. In
            addition, since there are limited controls that the enterprise can enforce on the
            personal side, separation of personal and enterprise data is needed. This will protect
            against the T.MALICIOUS_APP and T.PERSISTENT_PRESENCE threats. </description>
          <addressed-by>FDP_ACF_EXT.1</addressed-by>
          <rationale>FDP_ACF_EXT.1 supports the objective by enforcing restrictions on services that could compromise user privacy if accessed inappropriately.</rationale>
          <addressed-by>FDP_ACF_EXT.2</addressed-by>
          <rationale>FDP_ACF_EXT.2 supports the objective by requiring the TSF to provide separate user data stores for application groups so that the privacy of that data can be maintained.</rationale>
          <addressed-by>FDP_BCK_EXT.1</addressed-by>
          <rationale>FDP_BCK_EXT.1 supports the objective by allowing data to be excluded from backup operations that could compromise user privacy if disclosed.</rationale>
          <addressed-by>FMT_SMF.1</addressed-by>
          <rationale>FMT_SMF.1 supports the objective by requiring the TSF to implement management functions that control the extent to which user data is collected and disseminated.</rationale>
          <addressed-by>FMT_SMF_EXT.3</addressed-by>
          <rationale>FMT_SMF_EXT.3 supports the objective by requiring the TSF to identify its authorized administrators so that a user knows the extent to which various administrators have access to the device.</rationale>
        </SO>
        <SO name="O.PROTECTED_COMMS">
          <description> To address the network eavesdropping (T.NETWORK_EAVESDROP) and network attack
            (T.NETWORK_ATTACK) threats described in , concerning wireless
            transmission of Enterprise and user data and configuration data between the TOE and
            remote network entities, conformant TOEs will use a trusted communication path. The TOE
            must be capable of communicating using mutually authenticated TLS, EAP-TLS, HTTPS, 802.1X, and 802.11-2012. The TOE may optionally communicate using these standard protocols: IPsec,
            mutually-authenticated DTLS, or Bluetooth. These protocols are specified by RFCs that offer a variety
            of implementation choices. Requirements have been imposed on some of these choices
            (particularly those for cryptographic primitives) to provide interoperability and
            resistance to cryptographic attack.  
            While conformant TOEs must
            support all of the choices specified in the ST including any optional SFRs defined in
            this PP, they may support additional algorithms and protocols. If such additional
            mechanisms are not evaluated, guidance must be given to the administrator to make clear
            the fact that they were not evaluated. </description>
          <addressed-by>FCS_CKM.1</addressed-by>
          <rationale>FCS_CKM.1 supports the objective by defining the key generation algorithms that are used for protected communications.</rationale>
          <addressed-by>FCS_CKM.2/UNLOCKED</addressed-by>
          <rationale>FCS_CKM.2/UNLOCKED supports the objective by defining the key establishment algorithms that are used for protected communications.</rationale>
          <addressed-by>FCS_COP.1/ENCRYPT</addressed-by>
          <rationale>FCS_COP.1/ENCRYPT supports the objective by requiring the TSF to implement symmetric encryption algorithms that are used in support of protected communications.</rationale>
          <addressed-by>FCS_COP.1/HASH</addressed-by>
          <rationale>FCS_COP.1/HASH supports the objective by requiring the TSF to implement hash algorithms that are used in support of protected communications.</rationale>
          <addressed-by>FCS_COP.1/KEYHMAC</addressed-by>
          <rationale>FCS_COP.1/KEYHMAC supports the objective by requiring the TSF to implement HMAC algorithms that are used in support of protected communications.</rationale>
          <addressed-by>FCS_COP.1/SIGN</addressed-by>
          <rationale>FCS_COP.1/SIGN supports the objective by requiring the TSF to implement digital signature algorithms that are used in support of protected communications.</rationale>
          <addressed-by>FCS_HTTPS_EXT.1</addressed-by>
          <rationale>FCS_HTTPS_EXT.1 supports the objective by defining the TOE's implementation of HTTPS if this protocol is used for protected communications.</rationale>
          <addressed-by>FCS_RBG_EXT.1</addressed-by>
          <rationale>FCS_RBG_EXT.1 supports the objective by requiring the TSF to implement deterministic random bit generation algorithms that are used in support of protected communications.</rationale>
          <addressed-by>FCS_RBG_EXT.2</addressed-by>
          <rationale>FCS_RBG_EXT.2 supports the objective by requiring the TSF to save the DRBG state between reboots to ensure availability of this service.</rationale>
          <addressed-by>FCS_RBG_EXT.3</addressed-by>
          <rationale>FCS_RBG_EXT.3 supports the objective by defining the TSF's implementation of the SP 800-90A Personalization String for applications that require this.</rationale>
          <addressed-by>FCS_SRV_EXT.1</addressed-by>
          <rationale>FCS_SRV_EXT.1 supports the objective by defining the cryptographic services that the TSF must make available to third-party applications, which includes those that can support protected communications.</rationale>
          <addressed-by>FCS_SRV_EXT.2</addressed-by>
          <rationale>FCS_SRV_EXT.2 supports the objective by requiring the TSF to make keys in its secure key storage available for use in encryption and signing operations.</rationale>
          <addressed-by>FDP_BLT_EXT.1</addressed-by>
          <rationale>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.</rationale>
          <addressed-by>FDP_IFC_EXT.1</addressed-by>
          <rationale>FDP_IFC_EXT.1 supports the objective by requiring the TSF to have either its own IPsec VPN client or interface that allows a third-party VPN client to be deployed on it.</rationale>
          <addressed-by>FDP_STG_EXT.1</addressed-by>
          <rationale>FDP_STG_EXT.1 supports the objective by requiring the TSF to implement a protected key storage that can be used to protect persistent keys used for protected communications from disclosure.</rationale>
          <addressed-by>FDP_UPC_EXT.1/APPS</addressed-by>
          <rationale>FDP_UPC_EXT.1/APPS supports the objective by defining the protected communications channels that it allows third-party applications to invoke.</rationale>
          <addressed-by>FDP_UPC_EXT.1/BLUETOOTH</addressed-by>
          <rationale>FDP_UPC_EXT.1/BLUETOOTH supports the objective by defining the Bluetooth interfaces that it allows third-party applications to invoke.</rationale>
          <addressed-by>FIA_X509_EXT.1</addressed-by>
          <rationale>FIA_X509_EXT.1 supports the objective by defining the rules the TSF uses to determine if a presented X.509 certificate is valid.</rationale>
          <addressed-by>FIA_X509_EXT.2</addressed-by>
          <rationale>FIA_X509_EXT.2 supports the objective by requiring the TSF to enumerate its uses of X.509 certificates (including protected communications) and its behavior when a certificate's revocation status is undetermined.</rationale>
          <addressed-by>FIA_X509_EXT.3</addressed-by>
          <rationale>FIA_X509_EXT.3 supports the objective by requiring the TSF to provide a certificate validation service to third-party applications.</rationale>
          <addressed-by>FIA_X509_EXT.4</addressed-by>
          <rationale>FIA_X509_EXT.4 supports the objective by defining the implementation of EST as a method by which the TSF can obtain an X.509 certificate for its own use.</rationale>
          <addressed-by>FIA_X509_EXT.5</addressed-by>
          <rationale>FIA_X509_EXT.5 supports the objective by defining the implementation of Certificate Request Messages as a method by which the TSF can obtain an X.509 certificate for its own use.</rationale>
          <addressed-by>FPT_BLT_EXT.1</addressed-by>
          <rationale>FPT_BLT_EXT.1 supports the objective by requiring the TSF to disable certain Bluetooth profiles when they are inactive such that explicit user authorization is required to re-enable them.</rationale>
        </SO>
        <SO name="O.STORAGE">
          <description> To address the issue of loss of confidentiality of user data in the event of
            loss of a Mobile Device (T.PHYSICAL_ACCESS), conformant TOEs will use data-at-rest protection.
            The TOE will be capable of encrypting data and keys stored on the device and will
            prevent unauthorized access to encrypted data. </description>
          <addressed-by>FCS_CKM.2/LOCKED</addressed-by>
          <rationale>FCS_CKM.2/LOCKED supports the objective by defining the key establishment mechanism used for keys that protect data at rest when the TOE is in a locked state.</rationale>
          <addressed-by>FCS_CKM_EXT.1</addressed-by>
          <rationale>FCS_CKM_EXT.1 supports the objective by defining the TOE's root encryption key that is used to protect data at rest.</rationale>
          <addressed-by>FCS_CKM_EXT.2</addressed-by>
          <rationale>FCS_CKM_EXT.2 supports the objective by defining how the TSF creates data encryption keys that are used to protect data at rest.</rationale>
          <addressed-by>FCS_CKM_EXT.3</addressed-by>
          <rationale>FCS_CKM_EXT.3 supports the objective by defining the key encryption keys the TOE uses to protect data at rest and how they are created.</rationale>
          <addressed-by>FCS_CKM_EXT.4</addressed-by>
          <rationale>FCS_CKM_EXT.4 supports the objective by requiring the TSF to destroy keys and key material that could otherwise be used to compromise data at rest.</rationale>
          <addressed-by>FCS_CKM_EXT.5</addressed-by>
          <rationale>FCS_CKM_EXT.5 supports the objective by defining the mechanism the TSF uses to perform a wipe operation that securely destroys data at rest.</rationale>
          <addressed-by>FCS_CKM_EXT.6</addressed-by>
          <rationale>FCS_CKM_EXT.6 supports the objective by requiring the TSF to use secure salts when performing cryptographic operations that require them.</rationale>
          <addressed-by>FCS_CKM_EXT.7</addressed-by>
          <rationale>FCS_CKM_EXT.7 supports the objective by ensuring that the TOE's root encryption key cannot be disclosed.</rationale>
          <addressed-by>FCS_COP.1/CONDITION</addressed-by>
          <rationale>FCS_COP.1/CONDITION supports the objective by defining a key derivation function that can be used to protect data at rest.</rationale>
          <addressed-by>FCS_COP.1/ENCRYPT</addressed-by>
          <rationale>FCS_COP.1/ENCRYPT supports the objective by defining a symmetric encryption/decryption function that can be used to protect data at rest.</rationale>
          <addressed-by>FCS_COP.1/HASH</addressed-by>
          <rationale>FCS_COP.1/HASH supports the objective by defining a hash function that can be used to protect data at rest.</rationale>
          <addressed-by>FCS_COP.1/KEYHMAC</addressed-by>
          <rationale>FCS_COP.1/KEYHMAC supports the objective by defining an HMAC function that can be used to protect data at rest.</rationale>
          <addressed-by>FCS_COP.1/SIGN</addressed-by>
          <rationale>FCS_COP.1/SIGN supports the objective by defining a digital signature function that can be used to protect data at rest.</rationale>
          <addressed-by>FCS_IV_EXT.1</addressed-by>
          <rationale>FCS_IV_EXT.1 supports the objective by ensuring that any IVs the TSF generates for AES keys are generated in an appropriate manner based on the relevant standards.</rationale>
          <addressed-by>FCS_RBG_EXT.1</addressed-by>
          <rationale>FCS_RBG_EXT.1 supports the objective by defining random bit generation function that can be used to protect data at rest.</rationale>
          <addressed-by>FCS_STG_EXT.1</addressed-by>
          <rationale>FCS_STG_EXT.1 supports the objective by requiring the TSF to implement a hardware or software key store to protect key data at rest.</rationale>
          <addressed-by>FCS_STG_EXT.2</addressed-by>
          <rationale>FCS_STG_EXT.2 supports the objective by defining the confidentiality mechanism used to protect stored key data from unauthorized disclosure.</rationale>
          <addressed-by>FCS_STG_EXT.3</addressed-by>
          <rationale>FCS_STG_EXT.3 supports the objective by defining the integrity mechanism used to protect stored key data from unauthorized modification.</rationale>
          <addressed-by>FDP_ACF_EXT.3</addressed-by>
          <rationale>FDP_ACF_EXT.3 supports the objective by ensuring that the TSF does not permit write and execute permissions on stored data to be granted simultaneously.</rationale>
          <addressed-by>FDP_DAR_EXT.1</addressed-by>
          <rationale>FDP_DAR_EXT.1 supports the objective by requiring the TSF to encrypt all sensitive data using data encryption keys.</rationale>
          <addressed-by>FDP_DAR_EXT.2</addressed-by>
          <rationale>FDP_DAR_EXT.2 supports the objective by requiring the TSF to provide a mechanism to mark data as sensitive so that it can be subject to encryption.</rationale>
          <addressed-by>FIA_UAU_EXT.1</addressed-by>
          <rationale>FIA_UAU_EXT.1 supports the objective by requiring the presentation of a valid authorization factor in order to decrypt sensitive data at rest.</rationale>
          <addressed-by>FPT_JTA_EXT.1</addressed-by>
          <rationale>FPT_JTA_EXT.1 supports the objective by requiring the TSF to enforce access controls against JTAG so that this interface cannot be used to disclose data at rest.</rationale>
          <addressed-by>FPT_KST_EXT.1</addressed-by>
          <rationale>FPT_KST_EXT.1 supports the objective by requiring the TSF to prevent the storage of plaintext key data in readable non-volatile memory.</rationale>
          <addressed-by>FPT_KST_EXT.2</addressed-by>
          <rationale>FPT_KST_EXT.2 supports the objective by requiring the TSF to prevent any transmission of plaintext key material outside of the TOE boundary.</rationale>
          <addressed-by>FPT_KST_EXT.3</addressed-by>
          <rationale>FPT_KST_EXT.3 supports the objective by requiring the TSF to prevent export of any stored plaintext keys.</rationale>
        </SO>
      </SOs>
    </sec:Security_Objectives_for_the_TOE>
    <!-- 4.2 Security Objctives for the Operational Environment -->
    <sec:Security_Objectives_for_the_Operational_Environment>
      The following security objectives for the operational environment assist the OS in correctly providing its security functionality. These track with the assumptions about the environment.
      <SOEs>
        <SOE name="OE.CONFIG">
          <description>TOE administrators will configure the Mobile Device security functions
            correctly to create the intended security policy</description>
        </SOE>
        <SOE name="OE.DATA_PROPER_USER">
          <description>Administrators take measures to ensure that mobile device users are adequately vetted against malicious intent and are made aware of the expectations for appropriate use of the device.</description>
        </SOE>
        <SOE name="OE.NOTIFY">
          <description>The Mobile User will immediately notify the administrator if the Mobile
            Device is lost or stolen.</description>
        </SOE>
        <SOE name="OE.PRECAUTION">
          <description>The mobile device user exercises precautions to reduce the risk of loss or theft of
            the Mobile Device.</description>
        </SOE>
      </SOEs>
    </sec:Security_Objectives_for_the_Operational_Environment>
    <!-- 4.3 Security Objectives Rationale -->
    <sec:Security_Objectives_Rationale/>
  </sec:Security_Objectives>
  <!-- 5.0 Security Requirements -->
  <sec:req title="Security Requirements">
    <!-- 5.1 Security Functional Requirements-->
    <sec:SFRs title="Security Functional Requirements">
      <sec:Auditable_Events_for_Mandatory_SFRs><audit-table table="mandatory" id="t-audit-mandatory"/> <audit-table table="additional" id="t-audit-additional" title="Additional Audit Events"/> <!--  
	<external-doc ref="pkg-tls">
	  <audit-event table="additional" ref-cc-id="FCS_DTLS_EXT.1">
	    <audit-event-descr>Failure of the certificate validity check</audit-event-descr>
	    <audit-event-info>Issuer Name and Subject Name of certificate</audit-event-info>
	  </audit-event>
	  <audit-event table="additional" ref-cc-id="FCS_TLS_EXT.1">
	    <audit-event-descr>Establishment/termination of a TLS session</audit-event-descr>
	    <audit-event-info>Non-TOE endpoint of connection</audit-event-info>
	  </audit-event>
	  <audit-event table="additional" ref-cc-id="FCS_TLS_EXT.1">
	    <audit-event-descr>Failure to establish a TLS session</audit-event-descr>
	    <audit-event-info>Reason for failure</audit-event-info>
	  </audit-event>
	  <audit-event table="additional" ref-cc-id="FCS_TLS_EXT.1">
	    <audit-event-descr>Failure to verify presented identifier</audit-event-descr>
	    <audit-event-info>Presented identifier and reference identifier</audit-event-info>
	  </audit-event>
	</external-doc>   --></sec:Auditable_Events_for_Mandatory_SFRs> 
      <!--5.1.1 Class: Security Audit (FAU)-->
      <section id="fau" title="Class: Security Audit (FAU)">
        <!--FAU_GEN.1 Audit Data Generation-->
        <f-component cc-id="fau_gen.1" id="fau-gen-1" name="Audit Data Generation">
          <f-element id="fel-audit-gen">
            <title>The TSF shall be able to generate an audit record of the following auditable events:  <htm:ol><htm:li>Start-up and shutdown of the audit functions</htm:li> <htm:li>All auditable events for the [<htm:b>not selected</htm:b> ] level of audit</htm:li> <htm:li><htm:b>All administrative actions</htm:b> </htm:li> <htm:li><htm:b>Start-up and shutdown of the OS</htm:b> </htm:li> <htm:li><htm:b>Insertion or removal of removable media</htm:b> </htm:li> <htm:li><htm:b>Specifically defined auditable events in<xref g="t-audit-mandatory"/> </htm:b> </htm:li> <htm:li><htm:b> <selectables><selectable id="fau_gen.1.1_1">Audit records reaching <assignable>integer value less than 100</assignable> percentage of audit capacity</selectable><selectable id="fau_gen.1.1_3">Specifically defined auditable events in <xref to="t-audit-additional"/></selectable><selectable id="fau_gen.1.1_5"><assignable>other auditable events derived from this Protection Profile</assignable></selectable><selectable id="s-audit-gen-no-add-audit" exclusive="yes">no additional auditable events</selectable> </selectables> </htm:b> </htm:li></htm:ol></title>
            <note role="application">Administrator actions are defined as functions labeled as mandatory for FMT_MOF_EXT.1.2 (i.e. ‘M-MM’ in<xref to="fmt_smf"/>  ). If the TSF does not support removable media, number 4 is implicitly met.<htm:br/><htm:br/>The TSF must generate an audit record for all events contained in<xref g="t-audit-mandatory"/>  . Generating audit records for events in<xref to="t-audit-additional"/>  is currently objective. It is acceptable to include individual SFRs from<xref to="t-audit-additional"/>  in the ST, without including the entirety of<xref to="t-audit-additional"/>  .<htm:br/><htm:br/><htm:b><xref g="t-audit-mandatory"/>  Application Note:</htm:b> <htm:br/>FPT_TST_EXT.1 – Audit of self-tests is required only at initial start-up. Since the TOE "transitions to non-operational mode" upon failure of a self-test, per FPT_NOT_EXT.1, this is considered equivalent evidence to an audit record for the failure of a self-test.<htm:br/><htm:br/>FDP_DAR_EXT.1 - "None" must be selected, if the TOE utilizes whole volume encryption for protected data, since it is not feasible to audit when the encryption/decryption fails. If the TOE utilizes file-based encryption for protected data and audits when this encryption/decryption fails, then that auditable event should be selected.<htm:br/><htm:br/><htm:b><xref to="t-audit-additional"/>  Application Note:</htm:b> <htm:br/>If the audit event for FMT_SMF.1 is included in the ST, it is acceptable for the initiation of the software update to be audited without indicating the outcome (success or failure) of the update.<htm:br/></note>
            <aactivity level="component">
              <TSS>The evaluator shall check the TSS and ensure that it lists all of the auditable events and provides a format for audit records. Each audit record format type must be covered, along with a brief description of each field. The evaluator shall check to make sure that every audit event type mandated by the PP is described and that the description of the fields contains the information required in FAU_GEN.1.2.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall also make a determination of the administrative actions that are relevant in the context of this PP including those listed in the Management section. The evaluator shall examine the administrative guide and make a determination of which administrative commands are related to the configuration (including enabling or disabling) of the mechanisms implemented in the TOE that are necessary to enforce the requirements specified in the PP. The evaluator shall document the methodology or approach taken while determining which actions in the administrative guide are security relevant with respect to this PP. The evaluator may perform this activity as part of the activities associated with ensuring the AGD_OPE guidance satisfies the requirements.<htm:br/><htm:br/></Guidance>
              <Tests>The evaluator shall test the TOE’s ability to correctly generate audit records by having the TOE generate audit records for the events listed in the provided table and administrative actions. This should include all instances of an event. The evaluator shall test that audit records are generated for the establishment and termination of a channel for each of the cryptographic protocols contained in the ST. For administrative actions, the evaluator shall test that each action determined by the evaluator above to be security relevant in the context of this PP is auditable. When verifying the test results, the evaluator shall ensure the audit records generated during testing match the format specified in the administrative guide, and that the fields specified in FAU_GEN.1.2 are contained in each audit record. <htm:br/><htm:br/> <htm:br/><htm:br/>Note that the testing here can be accomplished in conjunction with the testing of the security mechanisms directly. For example, testing performed to ensure that the administrative guidance provided is correct verifies that AGD_OPE.1 is satisfied and should address the invocation of the administrative actions that are needed to verify the audit records are generated as expected. <htm:br/><htm:br/> <htm:br/><htm:br/></Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-audit-what">
            <title>The TSF shall record within each audit record at least the following information:  <htm:ol><htm:li>Date and time of the event</htm:li> <htm:li>Type of event</htm:li> <htm:li>Subject identity</htm:li> <htm:li>The outcome (success or failure) of the event</htm:li> <htm:b><htm:li>Additional information in<xref g="t-audit-mandatory"/> </htm:li> <htm:li> <selectables><selectable id="fau_gen.1.2_1">Additional information in <xref to="t-audit-additional"/></selectable><selectable id="s-audit-no-add-info" exclusive="yes">no additional information</selectable> </selectables> </htm:li> </htm:b></htm:ol></title>
            <note role="application">The subject identity is usually the process name/ID. The event type is often indicated by a severity level, for example, ‘info’, ‘warning’, or ‘error’.<htm:br/><htm:br/>If<xref to="s-audit-gen-no-add-audit"/>  is selected in the second selection of FAU_GEN.1.1, then<xref to="s-audit-no-add-info"/>  must be selected.<rule id="r-no-add-audit"><if><ref-id>s-audit-gen-no-add-audit </ref-id> </if> <then><ref-id>s-audit-no-add-info </ref-id> </then> </rule>  <htm:br/><htm:br/>For each audit event selected from<xref to="t-audit-additional"/>  in FAU_GEN.1.1 if additional information is required to be recorded within the audit record, it should be included in this selection.</note>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FAU_SAR.1 Audit Review-->
        <f-component cc-id="fau_sar.1" id="fau-sar-1" name="Audit Review">
          <f-element id="fau-sar-1e1">
            <title>The TSF shall provide [ <htm:i>the administrator</htm:i>  ] with the capability to read [ <htm:i>all audited events and record contents</htm:i>  ] from the audit records.</title>
            <note role="application">The administrator must have access to read the audit record, perhaps through an API or via an MDM Agent, which transfers the local records stored on the TOE to the MDM Server where the enterprise administrator may view them. If this requirement is included in the ST, function<xref to="mf-auditLogs"/>  must be included in the selection of FMT_SMF.1.</note>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>The evaluation activity for this requirement is performed in conjunction with test for function <xref to="mf-auditLogs"/>  of FMT_SMF.1.</Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-audit-provide">
            <title>The TSF shall provide the audit records in a manner suitable for the userto interpret the information.</title>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FAU_SEL.1 Selective Audit-->
        <f-component cc-id="fau_sel.1" id="fau-sel-1" name="Selective Audit" status="objective">
          <f-element id="fel-audit-select">
            <title>The TSF shall be able to select the set of events to be audited from the set of all auditable events based on the following attributes: <selectables linebreak="yes"><selectable id="fau_sel.1.1_1">[event type]</selectable><selectable id="fau_sel.1.1_2">[success of auditable security events</selectable><selectable id="fau_sel.1.1_3">failure of auditable security events</selectable><selectable id="fau_sel.1.1_4"> <assignable>other attributes</assignable> ]</selectable> </selectables>.</title>
            <note role="application">The intent of this requirement is to identify all criteria that can be selected to trigger an audit event. This can be configured through an interface on the TSF for a user or administrator to invoke. For the ST author, the assignment is used to list any additional criteria or "none".</note>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall review the administrative guidance to ensure that the guidance itemizes all event types, as well as describes all attributes that are to be selectable in accordance with the requirement, to include those attributes listed in the assignment. The administrative guidance shall also contain instructions on how to set the pre-selection as well as explain the syntax (if present) for multi-value pre-selection. The administrative guidance shall also identify those audit records that are always recorded, regardless of the selection criteria currently being enforced.<htm:br/><htm:br/></Guidance>
              <Tests>
                The evaluator shall also perform the following tests: <htm:br/><htm:br/>
                <testlist>
                   <htm:br/><htm:br/> 
                  <test>For each attribute listed in the requirement, the evaluator shall devise a test to show that selecting the attribute causes only audit events with that attribute (or those that are always recorded, as identified in the administrative guidance) to be recorded.</test>
                  <test>[conditional] If the TSF supports specification of more complex audit pre-selection criteria (e.g., multiple attributes, logical expressions using attributes) then the evaluator shall devise tests showing that this capability is correctly implemented. The evaluator shall also, in the test plan, provide a short narrative justifying the set of tests as representative and sufficient to exercise the capability.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>All modifications to the audit configuration that occur while the audit collection functions are operating</audit-event-descr>
          </audit-event>
        </f-component>
        <!--FAU_STG.1 Audit Storage Protection-->
        <f-component cc-id="fau_stg.1" id="fau-stg-1" name="Audit Storage Protection">
          <f-element id="fel-audit-store">
            <title>The TSF shall protect the stored audit records in the audit trail from unauthorized deletion.</title>
            <aactivity level="component">
              <TSS>The evaluator shall ensure that the TSS lists the location of all logs and the access controls of those files such that unauthorized modification and deletion are prevented.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                <testlist>
                  <test>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>
                  <test>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>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-audit-mod">
            <title>The TSF shall be able to [ <htm:i>prevent</htm:i>  ] unauthorized modifications to the stored audit records in the audit trail.</title>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FAU_STG.4 Prevention of Audit Data Loss-->
        <f-component cc-id="fau_stg.4" id="fau-stg-4" name="Prevention of Audit Data Loss">
          <f-element id="fel-audit-loss">
            <title>The TSF shall [ <htm:i>overwrite the oldest stored audit records</htm:i>  ] <htm:s>and [assignment: other actions to be taken in case of audit storage failure]</htm:s>  if the audit trail is full.</title>
            <aactivity level="component">
              <TSS>The evaluator shall examine the TSS to ensure that it describes the size limits on the audit records, the detection of a full audit trail, and the actions taken by the TSF when the audit trail is full. The evaluator shall ensure that the actions results in the deletion or overwrite of the oldest stored record.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
      </section>
      <!--5.1.2 Class: Cryptographic Support (FCS)-->
      <section id="fcs" title="Class: Cryptographic Support (FCS)">
        This section describes how keys are generated, derived, combined, released and destroyed. There are two major types of keys: DEKs and KEKs. (A REK is considered a KEK.) DEKs are used to protect data (as in the DAR protection described in FDP_DAR_EXT.1 and FDP_DAR_EXT.2). KEKs are used to protect other keys – DEKs, other KEKs, and other types of keys stored by the user or applications. The following diagram shows an example key hierarchy to illustrate the concepts of this profile. This example is not meant as an approved design, but ST authors will be expected to provide a diagram illustrating their key hierarchy in order to demonstrate that they meet the requirements of this profile. Please note if<xref to="uau_biometric"/>  is selected in FIA_UAU.5.1, each BAF claimed in FIA_MBV_EXT.1.1 in the<xref to="mod-biometrics"/>  shall be illustrated in the key hierarchy diagram, to include a description of when and how the BAF is used to release keys. If<xref to="uau_hybr"/>  is selected in FIA_UAU.5.1, meaning that a PIN or password must be used in conjunction with the BAF, this interaction shall be included.<htm:br/><figure entity="images/figure3.jpg" title="An Illustrative Key Hierarchy" id="Keys"/>  
        <ext-comp-def title="Cryptographic Key Management" fam-id="FCS_CKM_EXT">
          <fam-behavior>This family defines requirements for management of cryptographic keys that are not addressed by FCS_CKM in CC Part 2.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="HTTPS Protocol" fam-id="FCS_HTTPS_EXT">
          <fam-behavior>This family defines requirements for implementation of the HTTPS protocol.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Initialization Vector Generation" fam-id="FCS_IV_EXT">
          <fam-behavior>This family defines requirements for initialization vector generation in support of key generation.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Random Bit Generation" fam-id="FCS_RBG_EXT">
          <fam-behavior>This family defines requirements for the generation of random bits.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Cryptographic Algorithm Services" fam-id="FCS_SRV_EXT">
          <fam-behavior>This family defines requirements for the ability of the TOE to make its cryptographic operations available to non-TSF components.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Cryptographic Key Storage" fam-id="FCS_STG_EXT">
          <fam-behavior>This family defines requirements for the implementation of secure key storage with access control, confidentiality, and integrity protections.</fam-behavior>
        </ext-comp-def>
        <!--FCS_CKM.1 Cryptographic Key Generation-->
        <f-component cc-id="fcs_ckm.1" id="fcs-ckm-1" name="Cryptographic Key Generation">
          <f-element id="fel-asym-key-gen">
            <title>The TSF shall generate <htm:b>asymmetric</htm:b>  cryptographic keys in accordance with a specified cryptographic key generation algorithm <selectables linebreak="yes"><selectable id="fcs_ckm.1.1_1"><htm:b>RSA schemes using</htm:b>cryptographic key sizes of <assignable>2048-bit or greater</assignable> that meet [<htm:i>FIPS PUB 186-4, "Digital Signature Standard (DSS)", Appendix B.3</htm:i>]</selectable><selectable id="s-keygen-ecc"><htm:b>ECC schemes using:</htm:b> <selectables linebreak="yes"><selectable id="fcs_ckm.1.1_3"><htm:b>"NIST curves" P-384 and</htm:b> <selectables><selectable id="fcs_ckm.1.1_4"><htm:b>P-256</htm:b></selectable><selectable id="fcs_ckm.1.1_5"><htm:b>P-521</htm:b></selectable><selectable id="fcs_ckm.1.1_6" exclusive="yes"><htm:b>no other curves</htm:b></selectable></selectables> that meet the following: [<htm:i>FIPS PUB 186-4, "Digital Signature Standard (DSS)", Appendix B.4</htm:i>]</selectable><selectable id="fcs_ckm.1.1_7"><htm:b>Curve25519 schemes</htm:b>that meet the following: [<htm:i>RFC 7748</htm:i>]</selectable></selectables> </selectable><selectable id="fcs_ckm.1.1_8"><htm:b>FFC schemes using:</htm:b> <selectables linebreak="yes"><selectable id="fcs_ckm.1.1_9">cryptographic key sizes of<htm:b>2048-bit or greater</htm:b>that meet the following [<htm:i>FIPS PUB 186-4, "Digital Signature Standard (DSS)", Appendix B.1</htm:i>]</selectable><selectable id="fcs_ckm.1.1_10"><htm:b>"safe-prime" groups</htm:b>that meet the following: [<htm:i>NIST Special Publication 800-56A Revision 3, "Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography"</htm:i>]</selectable></selectables> </selectable> </selectables>.</title>
            <note role="application">The ST author must select all key generation schemes used for key establishment and entity authentication. When key generation is used for key establishment, the schemes in FCS_CKM.2/UNLOCKED and selected cryptographic protocols must match the selection. When key generation is used for entity authentication, the public key may be associated with an X.509v3 certificate.<htm:br/><htm:br/>If the TOE acts as a receiver in the RSA key establishment scheme, the TOE does not need to implement RSA key generation.<htm:br/><htm:br/>Curve25519 can only be used for ECDH and in conjunction with FDP_DAR_EXT.2.2.</note>
            <aactivity level="component">
              <TSS>The evaluator shall ensure that the TSS identifies the key sizes supported by the TOE. If the ST specifies more than one scheme, the evaluator shall examine the TSS to verify that it identifies the usage for each scheme.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall verify that the AGD guidance instructs the administrator how to configure the TOE to use the selected key generation schemes and key sizes for all uses defined in this PP.<htm:br/><htm:br/></Guidance>
              <Tests> <htm:b>Evaluation Activity Note:</htm:b>The following tests require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:i><htm:b>Key Generation for FIPS PUB 186-4 RSA Schemes</htm:b> </htm:i> <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall verify the implementation of RSA Key Generation by the TOE using the Key Generation test. This test verifies the ability of the TSF to correctly produce values for the key components including the public verification exponent <htm:i>e</htm:i>, the private prime factors <htm:i>p</htm:i>and <htm:i>q</htm:i>, the public modulus n and the calculation of the private signature exponent <htm:i>d</htm:i>. <htm:br/><htm:br/> <htm:br/><htm:br/>Key Pair generation specifies 5 ways (or methods) to generate the primes <htm:i>p</htm:i>and <htm:i>q</htm:i>. These include: <htm:ol><htm:li>Random Primes:<htm:ul><htm:li>Provable primes</htm:li> <htm:li>Probable primes</htm:li> </htm:ul> </htm:li> <htm:li>Primes with Conditions:<htm:ul><htm:li>Primes p1, p2, q1,q2, p and q shall all be provable primes</htm:li> <htm:li>Primes p1, p2, q1, and q2 shall be provable primes and p and q shall be probable primes</htm:li> <htm:li>Primes p1, p2, q1,q2, p and q shall all be probable primes</htm:li> </htm:ul> </htm:li> </htm:ol>To test the key generation method for the Random Provable primes method and for all the Primes with Conditions methods, the evaluator must seed the TSF key generation routine with sufficient data to deterministically generate the RSA key pair. This includes the random seeds, the public exponent of the RSA key, and the desired key length. For each key length supported, the evaluator shall have the TSF generate 25 key pairs. The evaluator shall verify the correctness of the TSF’s implementation by comparing values generated by the TSF with those generated from a known good implementation. <htm:br/><htm:br/> <htm:br/><htm:br/>If possible, the Random Probable primes method should also be verified against a known good implementation as described above. Otherwise, the evaluator shall have the TSF generate 10 keys pairs for each supported key length nlen and verify: <htm:ul><htm:li>n = p*q</htm:li> <htm:li>p and q are probably prime according to Miller-Rabin tests</htm:li> <htm:li>GCD(p-1,e) = 1</htm:li> <htm:li>GCD(q-1,e) = 1</htm:li> <htm:li>2^16 &lt; e &lt; 2^256 and e is an odd integer</htm:li> <htm:li>|p-q| &gt; 2^(nlen/2 – 100)</htm:li> <htm:li>p &gt;= squareroot(2)*( 2^(nlen/2 -1) )</htm:li> <htm:li>q &gt;= squareroot(2)*( 2^(nlen/2 -1) )</htm:li> <htm:li>2^(nlen/2) &lt; d &lt; LCM(p-1,q-1)</htm:li> <htm:li>e*d = 1 mod LCM(p-1,q-1)</htm:li> </htm:ul> <htm:br/><htm:br/> <htm:i><htm:b>Key Generation for FIPS 186-4 Elliptic Curve Cryptography (ECC)</htm:b> </htm:i> <htm:br/><htm:br/> <htm:i>FIPS 186-4 ECC Key Generation Test</htm:i> <htm:br/><htm:br/> <htm:br/><htm:br/>For each supported NIST curve, i.e. P-256, P-384 and P-521, the evaluator shall require the implementation under test (IUT) to generate 10 private/public key pairs. The private key shall be generated using an approved random bit generator (RBG). To determine correctness, the evaluator shall submit the generated key pairs to the public key verification (PKV) function of a known good implementation. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:i>FIPS 186-4 Public Key Verification (PKV) Test</htm:i> <htm:br/><htm:br/> <htm:br/><htm:br/>For each supported NIST curve, i.e. P-256, P-384 and P-521, the evaluator shall generate 10 private/public key pairs using the key generation function of a known good implementation and modify five of the public key values so that they are incorrect, leaving five values unchanged (i.e. correct). The evaluator shall obtain in response a set of 10 PASS/FAIL values. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:i><htm:b>Key Generation for Curve25519</htm:b> </htm:i> <htm:br/><htm:br/>The evaluator shall require the implementation under test (IUT) to generate 10 private/public key pairs. The private key shall be generated as specified in RFC 7748 using an approved random bit generator (RBG) and shall be written in little-endian order (least significant byte first). To determine correctness, the evaluator shall submit the generated key pairs to the public key verification (PKV) function of a known good implementation. <htm:br/><htm:br/> <htm:br/><htm:br/>Note: Assuming the PKV function of the good implementation will (using little-endian order): <htm:ol type="a"><htm:li>Confirm the private and public keys are 32-byte values</htm:li> <htm:li>Confirm the three least significant bits of the first byte of the private key are zero</htm:li> <htm:li>Confirm the most significant bit of the last byte is zero</htm:li> <htm:li>Confirm the second most significant bit of the last byte is one</htm:li> <htm:li>Calculate the expected public key from the private key and confirm it matches the supplied public key</htm:li> </htm:ol> <htm:br/><htm:br/>The evaluator shall generate 10 private/public key pairs using the key generation function of a known good implementation and modify 5 of the public key values so that they are incorrect, leaving five values unchanged (i.e. correct). The evaluator shall obtain in response a set of 10 PASS/FAIL values. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:i><htm:b>Key Generation for Finite-Field Cryptography (FFC)</htm:b> </htm:i> <htm:br/><htm:br/>The evaluator shall verify the implementation of the Parameters Generation and the Key Generation for FFC by the TOE using the Parameter Generation and Key Generation test. This test verifies the ability of the TSF to correctly produce values for the field prime p, the cryptographic prime q (dividing p-1), the cryptographic group generator g, and the calculation of the private key x and public key y. <htm:br/><htm:br/>The Parameter generation specifies 2 ways (or methods) to generate the cryptographic prime q and the field prime p: <htm:br/><htm:br/> <htm:br/><htm:br/>Cryptographic and Field Primes: <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:ul><htm:li>Primes q and p shall both be provable primes</htm:li> <htm:li>Primes q and field prime p shall both be probable primes</htm:li> </htm:ul>and two ways to generate the cryptographic group generator g: <htm:br/><htm:br/> <htm:br/><htm:br/>Cryptographic Group Generator: <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:ul><htm:li>Generator g constructed through a verifiable process</htm:li> <htm:li>Generator g constructed through an unverifiable process</htm:li> </htm:ul>The Key generation specifies 2 ways to generate the private key x: <htm:br/><htm:br/> <htm:br/><htm:br/>Private Key: <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:ul><htm:li>len(q) bit output of RBG where 1 ‌&lt;= x ‌&lt;= q-1</htm:li> <htm:li>len(q) + 64 bit output of RBG, followed by a mod q-1 operation where 1‌&lt;= x‌&lt;=q-1</htm:li> </htm:ul>The security strength of the RBG must be at least that of the security offered by the FFC parameter set. <htm:br/><htm:br/> <htm:br/><htm:br/>To test the cryptographic and field prime generation method for the provable primes method or the group generator g for a verifiable process, the evaluator must seed the TSF parameter generation routine with sufficient data to deterministically generate the parameter set. <htm:br/><htm:br/> <htm:br/><htm:br/>For each key length supported, the evaluator shall have the TSF generate 25 parameter sets and key pairs. The evaluator shall verify the correctness of the TSF’s implementation by comparing values generated by the TSF with those generated from a known good implementation. Verification must also confirm <htm:br/><htm:br/> <htm:ul><htm:li>g != 0,1</htm:li> <htm:li>q divides p-1</htm:li> <htm:li>g^q mod p = 1</htm:li> <htm:li>g^x mod p = y</htm:li> </htm:ul> <htm:br/><htm:br/>for each FFC parameter set and key pair. <htm:br/><htm:br/> <htm:br/><htm:br/></Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>
              <selectables onlyone="yes">
                <selectable>Failure of key generation activity for authentication keys</selectable>
                <selectable>none</selectable>
              </selectables>
            </audit-event-descr>
          </audit-event>
        </f-component>
        <!--FCS_CKM.2/LOCKED Cryptographic Key Establishment-->
        <f-component cc-id="fcs_ckm.2" id="fcs-ckm-2-locked" name="Cryptographic Key Establishment" iteration="LOCKED">
          <f-element id="fel-key-locked">
            <title>The TSF shall <htm:b>perform</htm:b>  cryptographic <htm:b>key establishment</htm:b>  in accordance with a specified cryptographic key <htm:b>establishment</htm:b>  method: <selectables linebreak="yes"><selectable id="s-locked-rsa">[<htm:i>RSA-based key establishment schemes</htm:i>] that meet the following: [<htm:i>NIST Special Publication 800-56B, “Recommendation for Pair-Wise Key Establishment Schemes Using Integer Factorization Cryptography”</htm:i>]</selectable><selectable id="fcs_ckm.2.1_LOCKED_1">[<htm:i>Elliptic curve-based key establishment schemes</htm:i>] that meet the following: <selectables linebreak="yes"><selectable id="s-locked-ecc-800-56A"><htm:b>NIST Special Publication 800-56A Revision 3, "Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography"</htm:b></selectable><selectable id="fcs_ckm.2.1_LOCKED_2"><htm:b>RFC 7748, "Elliptic Curves for Security"</htm:b></selectable></selectables> </selectable><selectable id="fcs_ckm.2.1_LOCKED_3">[<htm:i>Finite field-based key establishment schemes</htm:i>] that meet the following: [<htm:i>NIST Special Publication 800-56A Revision 3, "Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography"</htm:i>]</selectable> </selectables> <htm:b>for the purposes of encrypting sensitive data received while the device is locked.</htm:b></title>
            <note role="application">The RSA-based key establishment schemes are described in Section 9 of NIST SP 800-56B; however, Section 9 relies on implementation of other sections in SP 800-56B. If the TOE acts as a receiver in the RSA key establishment scheme, the TOE does not need to implement RSA key generation.<htm:br/><htm:br/>The elliptic curves used for the key establishment scheme must correlate with the curves specified in FCS_CKM.1.1.<htm:br/><htm:br/>The domain parameters used for the finite field-based key establishment scheme are specified by the key generation according to FCS_CKM.1.1.</note>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>The test for SP800-56A Revision 3 and SP800-56B key establishment schemes is performed in association with FCS_CKM.2/UNLOCKED. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:b>Curve25519 Key Establishment Schemes</htm:b> <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall verify a TOE's implementation of the key agreement scheme using the following Function and Validity tests. These validation tests for each key agreement scheme verify that a TOE has implemented the components of the key agreement scheme according to the specification. These components include the calculation of the shared secret K and the hash of K. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:b>Function Test</htm:b> <htm:br/><htm:br/> <htm:br/><htm:br/>The Function test verifies the ability of the TOE to implement the key agreement schemes correctly. To conduct this test the evaluator shall generate or obtain test vectors from a known good implementation of the TOE supported schemes. For each supported key agreement role and hash function combination, the tester shall generate 10 sets of public keys. These keys are static, ephemeral or both depending on the scheme being tested. <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall obtain the shared secret value K, and the hash of K. <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall verify the correctness of the TSF’s implementation of a given scheme by using a known good implementation to calculate the shared secret value K and compare the hash generated from this value. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:b>Validity Test</htm:b> <htm:br/><htm:br/> <htm:br/><htm:br/>The Validity test verifies the ability of the TOE to recognize another party’s valid and invalid key agreement results. To conduct this test, the evaluator generates a set of 30 test vectors consisting of data sets including the evaluator’s public keys and the TOE’s public/private key pairs. <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall inject an error in some of the test vectors to test that the TOE recognizes invalid key agreement results 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 unmodified and therefore should result in valid key agreement results (they should pass). <htm:br/><htm:br/> <htm:br/><htm:br/>The TOE shall use these modified test vectors to emulate the key agreement scheme using the corresponding parameters. The evaluator shall compare the TOE’s results with the results using a known good implementation verifying that the TOE detects these errors. <htm:br/><htm:br/> <htm:br/><htm:br/></Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_CKM.2/UNLOCKED Cryptographic Key Establishment-->
        <f-component cc-id="fcs_ckm.2" id="fcs-ckm-2-unlocked" name="Cryptographic Key Establishment" iteration="UNLOCKED">
          <f-element id="fel-unlocked-key">
            <title>The TSF shall <htm:b>perform</htm:b>  cryptographic <htm:b>key establishment</htm:b>  in accordance with a specified cryptographic key <htm:b>establishment</htm:b>  method <selectables linebreak="yes"><selectable id="fcs_ckm.2.1_UNLOCKED_1">[<htm:i>RSA-based key establishment schemes</htm:i>] that meet the following <selectables linebreak="yes"><selectable id="fcs_ckm.2.1_UNLOCKED_2">NIST Special Publication 800-56B, “Recommendation for Pair-Wise Key Establishment Schemes Using Integer Factorization Cryptography”</selectable><selectable id="fcs_ckm.2.1_UNLOCKED_3">RSAES-PKCS1-v1_5 as specified in Section 7.2 of RFC 8017, "Public-Key Cryptography Standards (PKCS) #1:RSA Cryptography Specifications Version 2.2"</selectable></selectables> </selectable><selectable id="fcs_ckm.2.1_UNLOCKED_4">[<htm:i>Elliptic curve-based key establishment schemes</htm:i>] that meet the following: [<htm:i>NIST Special Publication 800-56A Revision 3, "Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography"</htm:i>]</selectable><selectable id="fcs_ckm.2.1_UNLOCKED_5">[<htm:i>Finite field-based key establishment schemes</htm:i>] that meet the following: [<htm:i>NIST Special Publication 800-56A Revision 3, "Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography"</htm:i>]</selectable> </selectables>.</title>
            <note role="application">The ST author must select all key establishment schemes used for the selected cryptographic protocols and any RSA-based key establishment schemes that may be used to satisfy FDP_DAR or FCS_STG. Also, FCS_TLSC_EXT.1 requires ciphersuites that use RSA-based key establishment schemes.<htm:br/><htm:br/>The RSA-based key establishment schemes are described in Section 9 of NIST SP 800-56B; however, Section 9 relies on implementation of other sections in SP 800-56B. If the TOE only acts as a receiver in the RSA key establishment scheme, the TOE does not need to implement RSA key generation.<htm:br/><htm:br/>The elliptic curves used for the key establishment scheme must correlate with the curves specified in FCS_CKM.1.1.<htm:br/><htm:br/>The domain parameters used for the finite field-based key establishment scheme are specified by the key generation according to FCS_CKM.1.1. The finite field-based key establishment schemes that conform to NIST SP 800-56A Revision 3 correspond to the "safe-prime" groups selection in FCS_CKM.1.1.</note>
            <aactivity level="component">
              <TSS>The evaluator shall ensure that the supported key establishment schemes correspond to the key generation schemes identified in FCS_CKM.1.1. If the ST specifies more than one scheme, the evaluator shall examine the TSS to verify that it identifies the usage for each scheme.</TSS>
              <Guidance>The evaluator shall verify that the AGD guidance instructs the administrator how to configure the TOE to use the selected key establishment schemes.<htm:br/><htm:br/></Guidance>
              <Tests> <htm:b>Evaluation Activity Note:</htm:b>The following tests require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products. <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall verify the implementation of the key establishment schemes supported by the TOE using the applicable tests below. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:h3>SP800-56A Revision 3 Key Establishment Schemes</htm:h3>The evaluator shall verify a TOE's implementation of SP800-56A Revision 3 key establishment schemes using the following Function and Validity tests. These validation tests for each key agreement scheme verify that a TOE has implemented the components of the key agreement scheme according to the specifications in the Recommendation. These components include 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 key confirmation is supported, the evaluator shall also verify that the components of key confirmation have been implemented correctly, using the test procedures described below. This includes the parsing of the DKM, the generation of MACdata and the calculation of MacTag. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:i><htm:b>Function Test</htm:b> </htm:i> <htm:br/><htm:br/> <htm:br/><htm:br/>The Function test verifies the ability of the TOE to implement the key agreement schemes correctly. To conduct this test the evaluator shall generate or obtain test vectors from a known good implementation of the TOE supported schemes. For each supported key agreement scheme-key agreement role combination, KDF type, and, if supported, key confirmation role- key confirmation type combination, the tester shall generate 10 sets of test vectors. The data set consists of one set of domain parameter values (FFC) or the NIST approved curve (ECC) per 10 sets of public keys. These keys are static, ephemeral or both depending on the scheme being tested. <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall obtain the DKM, the corresponding TOE’s public keys (static or ephemeral), the MAC tags, and any inputs used in the KDF, such as the Other Information field OI and TOE id fields. <htm:br/><htm:br/> <htm:br/><htm:br/>If the TOE does not use a KDF defined in SP 800-56A Revision 3, the evaluator shall obtain only the public keys and the hashed value of the shared secret. <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall verify the correctness of the TSF’s implementation of a given scheme by using a known good implementation to calculate the shared secret value, derive the keying material DKM, and compare hashes or MAC tags generated from these values. <htm:br/><htm:br/> <htm:br/><htm:br/>If key confirmation is supported, the TSF shall perform the above for each implemented approved MAC algorithm. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:i><htm:b>Validity Test</htm:b> </htm:i> <htm:br/><htm:br/> <htm:br/><htm:br/>The Validity test verifies the ability of the TOE to recognize another party’s valid and invalid key agreement results with or without key confirmation. To conduct this test, the evaluator shall obtain a list of the supporting cryptographic functions included in the SP800-56A Revision 3 key agreement implementation to determine which errors the TOE should be able to recognize. The evaluator generates a set of 24 (FFC) or 30 (ECC) test vectors consisting of data sets including domain parameter values or NIST approved curves, the evaluator’s public keys, the TOE’s public/private key pairs, MacTag, and any inputs used in the KDF, such as the other info and TOE id fields. <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall inject an error in some of the test vectors to test that the TOE recognizes invalid key agreement results 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 generated MacTag. If the TOE contains the full or partial (only ECC) public key validation, the evaluator will also individually inject errors in both parties’ static public keys, both parties’ ephemeral public keys and the TOE’s static private key to assure the TOE detects errors in the public key validation function or the partial key validation function (in ECC only). At least two of the test vectors shall remain unmodified and therefore should result in valid key agreement results (they should pass). <htm:br/><htm:br/> <htm:br/><htm:br/>The TOE shall use these modified test vectors to emulate the key agreement scheme using the corresponding parameters. The evaluator shall compare the TOE’s results with the results using a known good implementation verifying that the TOE detects these errors. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:h3>SP800-56B Key Establishment Schemes</htm:h3>The evaluator shall verify that the TSS describes whether the TOE acts as a sender, a recipient, or both for RSA-based key establishment schemes. <htm:br/><htm:br/> <htm:br/><htm:br/>If the TOE acts as a sender, the following evaluation activity shall be performed to ensure the proper operation of every TOE supported combination of RSA-based key establishment scheme: <htm:br/><htm:br/>To conduct this test the evaluator shall generate or obtain test vectors from a known good implementation of the TOE supported schemes. For each combination of supported key establishment scheme and its options (with or without key confirmation if supported, for each supported key confirmation MAC function if key confirmation is supported, and for each supported mask generation function if KTS-OAEP is supported), the tester shall generate 10 sets of test vectors. Each test vector shall include the RSA public key, the plaintext keying material, any additional input parameters if applicable, the MacKey and MacTag if key confirmation is incorporated, and the outputted ciphertext. For each test vector, the evaluator shall perform a key establishment encryption operation on the TOE with the same inputs (in cases where key confirmation is incorporated, the test shall use the MacKey from the test vector instead of the randomly generated MacKey used in normal operation) and ensure that the outputted ciphertext is equivalent to the ciphertext in the test vector. <htm:br/><htm:br/> <htm:br/><htm:br/>If the TOE acts as a receiver, the following evaluation activities shall be performed to ensure the proper operation of every TOE supported combination of RSA-based key establishment scheme: <htm:br/><htm:br/>To conduct this test the evaluator shall generate or obtain test vectors FCS_CKM.2.1/LOCKED from a known good implementation of the TOE supported schemes. For each combination of supported key establishment scheme and its options (with our without key confirmation if supported, for each supported key confirmation MAC function if key confirmation is supported, and for each supported mask generation function if KTS-OAEP is supported), the tester shall generate 10 sets of test vectors. Each test vector shall include the RSA private key, the plaintext keying material (KeyData), any additional input parameters if applicable, the MacTag in cases where key confirmation is incorporated, and the outputted ciphertext. For each test vector, the evaluator shall perform the key establishment decryption operation on the TOE and ensure that the outputted plaintext keying material (KeyData) is equivalent to the plaintext keying material in the test vector. In cases where key confirmation is incorporated, the evaluator shall perform the key confirmation steps and ensure that the outputted MacTag is equivalent to the MacTag in the test vector. <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall ensure that the TSS describes how the TOE handles decryption errors. In accordance with NIST Special Publication 800-56B, the TOE must not reveal the particular error that occurred, either through the contents of any outputted or logged error message or through timing variations. If KTS-OAEP is supported, the evaluator shall create separate contrived ciphertext values that trigger each of the three decryption error checks described in NIST Special 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 message is identical for each. If KTS-KEM-KWS is supported, the evaluator shall create separate contrived ciphertext values that trigger each of the three decryption error checks described in NIST Special Publication 800-56B section 7.2.3.3, ensure that each decryption attempt results in an error, and ensure that any outputted or logged error message is identical for each. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:h3>RSAES-PKCS1-v1_5 Key Establishment Schemes</htm:h3>The evaluator shall verify the correctness of the TSF's implementation of RSAES-PKCS1-v1_5 by using a known good implementation for each protocol selected in FTP_ITC_EXT.1 that uses RSAES-PKCS1-v1_5. <htm:h3>FFC Schemes using "safe-prime" groups</htm:h3>The evaluator shall verify the correctness of the TSF's implementation of "safe-prime" groups by using a known good implementation for each protocol selected in FTP_ITC_EXT.1 that uses "safe-prime" groups. This test must be performed for each "safe-prime" group that each protocol uses.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_CKM_EXT.1 Cryptographic Key Support-->
        <f-component cc-id="fcs_ckm_ext.1" id="fcs-ckm-ext-1" name="Cryptographic Key Support">
          <comp-lev>requires the TSF to implement a Root Encryption Key (REK).</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Generation of a REK.</htm:li> </htm:ul> </audit>
          <dependencies>FCS_RBG_EXT.1 Random Bit Generation</dependencies>
          <f-element id="fel-mut-hard">
            <title>The TSF shall support <selectables><selectable id="s-immutable-hardware">immutable hardware</selectable><selectable id="mutable_hardware">mutable hardware</selectable> </selectables> REKs with a <selectables><selectable id="s-rek-sym">symmetric</selectable><selectable id="s-rek-asym">asymmetric</selectable> </selectables> key of strength <selectables><selectable id="fcs_ckm_ext.1.1_1">112 bits</selectable><selectable id="s-rek-128">128 bits</selectable><selectable id="s-rek-192">192 bits</selectable><selectable id="s-rek-256">256 bits</selectable> </selectables>.</title>
            <ext-comp-def-title><title>The TSF shall support <assignable>description of REKs </assignable> </title> </ext-comp-def-title>
            <aactivity level="component">
              <TSS>The evaluator shall review the TSS to determine that a REK is supported by the TOE, that the TSS includes a description of the protection provided by the TOE for a REK, and that the TSS includes a description of the method of generation of a REK.<htm:br/><htm:br/>The evaluator shall verify that the description of the protection of a REK describes how any reading, import, and export of that REK is prevented. For example, if the hardware protecting the REK is removable, the description should include how other devices are prevented from reading the REK. The evaluator shall verify that the TSS describes how encryption/decryption/derivation actions are isolated so as to prevent applications and system-level processes from reading the REK while allowing encryption/decryption/derivation by the key.<htm:br/><htm:br/>The evaluator shall verify that the description includes how the OS is prevented from accessing the memory containing REK key material, which software is allowed access to the REK, how any other software in the execution environment is prevented from reading that key material, and what other mechanisms prevent the REK key material from being written to shared memory locations between the OS and the separate execution environment.<htm:br/><htm:br/>If key derivation is performed using a REK, the evaluator shall ensure that the TSS description includes a description of the key derivation function and shall verify the key derivation uses an approved derivation mode and key expansion algorithm according to FCS_CKM_EXT.3.2.<htm:br/><htm:br/>The evaluator shall verify that the generation of a REK meets the FCS_RBG_EXT.1.1 and FCS_RBG_EXT.1.2 requirements:<htm:br/><htm:ul><htm:li>If REKs is/are generated on-device, the TSS shall include a description of the generation mechanism including what triggers a generation, how the functionality described by FCS_RBG_EXT.1 is invoked, and whether a separate instance of the RBG is used for REKs.</htm:li> <htm:li>If REKs is/are generated off-device, the TSS shall include evidence that the RBG meets FCS_RBG_EXT.1. This will likely necessitate a second set of RBG documentation equivalent to the documentation provided for the RBG Evaluation Activities. In addition, the TSS shall describe the manufacturing process that prevents the device manufacturer from accessing any REKs.</htm:li> </htm:ul> <htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-rek-iso">
            <title>Each REK shall be hardware-isolated from the OS on the TSF in runtime.</title>
          </f-element>
          <f-element id="fel-rek-gen">
            <title>Each REK shall be generated by an RBG in accordance with FCS_RBG_EXT.1.</title>
            <note role="application">Either asymmetric or symmetric keys are allowed; the ST author makes the selection appropriate for the device. Symmetric keys must be of size 128 or 256 bits in order to correspond with FCS_COP.1/ENCRYPT. Asymmetric keys may be of any strength corresponding to FCS_CKM.1.<htm:br/><htm:br/>The raw key material of "immutable hardware" REKs is computationally processed by hardware and software cannot access the raw key material. Thus if<xref to="s-immutable-hardware"/>  is selected in FCS_CKM_EXT.1.1 it implicitly meets FCS_CKM_EXT.7. If<xref to="mutable_hardware"/>  is selected in FCS_CKM_EXT.1.1, FCS_CKM_EXT.7 must be included in the ST.<htm:br/><htm:br/>The lack of a public/documented API for importing or exporting the REK, when a private/undocumented API exists, is not sufficient to meet this requirement.<htm:br/><htm:br/>The RBG used to generate a REK may be an RBG native to the hardware key container or may be an off-device RBG. If performed by an off-device RBG, the device manufacturer must not be able to access a REK after the manufacturing process has been completed. The Evaluation Activities for these two cases differ.</note>
          </f-element>
          <audit-event>
            <audit-event-descr>
              <selectables onlyone="yes">
                <selectable>generation of a REK</selectable>
                <selectable>none</selectable>
              </selectables>
            </audit-event-descr>
          </audit-event>
        </f-component>
        <!--FCS_CKM_EXT.2 Cryptographic Key Random Generation-->
        <f-component cc-id="fcs_ckm_ext.2" id="fcs-ckm-ext-2" name="Cryptographic Key Random Generation">
          <comp-lev>requires the TSF to specify the mechanism it uses to generate Data Encryption Keys (DEKs).</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_RBG_EXT.1 Random Bit Generation</dependencies>
          <f-element id="fel-dek-gen">
            <title>All DEKs shall be <selectables><selectable id="fcs_ckm_ext.2.1_1">randomly generated</selectable><selectable id="fcs_ckm_ext.2.1_2">from the combination of a randomly generated DEK with another DEK or salt in a way that preserves the effective entropy of each factor by <selectables><selectable id="fcs_ckm_ext.2.1_3">using an XOR operation</selectable><selectable id="fcs_ckm_ext.2.1_4">concatenating the keys and using a KDF (as described in SP 800-108)</selectable><selectable id="s-dek-800-56">concatenating the keys and using a KDF (as described in SP 800-56C)</selectable></selectables> </selectable> </selectables> with entropy corresponding to the security strength of AES key sizes of <selectables><selectable id="fcs_ckm_ext.2.1_5">128</selectable><selectable id="s-dek-256">256</selectable> </selectables> bits.</title>
            <ext-comp-def-title><title>All DEKs shall be <assignable>generation mechanism </assignable> with entropy corresponding to the security strength of AES key sizes of <assignable>number greater than 128 </assignable> bits. </title> </ext-comp-def-title>
            <note role="application">The intent of this requirement is to ensure that the DEK cannot be recovered with less work than a full exhaust of the key space for AES. The key generation capability of the TOE uses an RBG implemented on the TOE device (FCS_RBG_EXT.1). Either 128-bit or 256-bit (or both) are allowed; the ST author makes the selection appropriate for the device. A DEK is used in addition to the KEK so that authentication factors can be changed without having to re-encrypt all of the user data on the device.<htm:br/><htm:br/>The ST author selects all applicable DEK generation types implemented by the TOE.<htm:br/><htm:br/>SP 800-56C specifies a two-step key derivation procedure that employs an extraction-then-expansion technique for deriving keying material from a shared secret generated during a key establishment scheme. The Randomness Extraction step as described in Section 5 of SP 800-56C is followed by Key Expansion using the key derivation functions defined in SP 800-108 (as described in Section 6 of SP 800-56C).</note>
            <aactivity level="component">
              <TSS>The evaluator shall ensure that the documentation of the product's encryption key management is detailed enough that, after reading, the product's key management hierarchy is clear and that it meets the requirements to ensure the keys are adequately protected. The evaluator shall ensure that the documentation includes both an essay and one or more diagrams. Note that this may also be documented as separate proprietary evidence rather than being included in the TSS.<htm:br/><htm:br/>The evaluator shall also examine the key hierarchy section of the TSS to ensure that the formation of all DEKs is described and that the key sizes match that described by the ST author. The evaluator shall examine the key hierarchy section of the TSS to ensure that each DEK is generated or combined from keys of equal or greater security strength using one of the selected methods.<htm:br/><htm:ul><htm:li>If the symmetric DEK is generated by an RBG, the evaluator shall review the TSS to determine that it describes how the functionality described by FCS_RBG_EXT.1 is invoked. The evaluator uses the description of the RBG functionality in FCS_RBG_EXT.1 or documentation available for the 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 encryption/decryption of the data.</htm:li> <htm:li>If the DEK is formed from a combination, the evaluator shall verify that the TSS describes the method of combination and that this method is either an XOR or a KDF to justify that the effective entropy of each factor is preserved. The evaluator shall also verify that each combined value was originally generated from an Approved DRBG described in FCS_RBG_EXT.1.</htm:li> <htm:li>If<xref to="s-dek-800-56"/>  is selected, the evaluator shall ensure the TSS includes a description of the randomness extraction step.</htm:li> </htm:ul> The description must include how an approved untruncated MAC function is being used for the randomness extraction step and the evaluator must verify the TSS describes that the output length (in bits) of the MAC function is at least as large as the targeted security strength (in bits) of the parameter set employed by the key establishment scheme (see Tables 1-3 of SP 800-56C).<htm:br/><htm:br/>The description must include how the MAC function being used for the randomness extraction step is related to the PRF used in the key expansion and verify the TSS description includes the correct MAC function:<htm:ul><htm:li>If an HMAC-hash is used in the randomness extraction step, then the same HMAC-hash (with the same hash function hash) is used as the PRF in the key expansion step.</htm:li> <htm:li>If an AES-CMAC (with key length 128, 192, or 256 bits) is used in the randomness extraction step, then AES-CMAC with a 128-bit key is used as the PRF in the key expansion step.</htm:li> <htm:li>The description must include the lengths of the salt values being used in the randomness extraction step and the evaluator shall verify the TSS description includes correct salt lengths:</htm:li> <htm:li>If an HMAC-hash is being used as the MAC, the salt length can be any value up to the maximum bit length permitted for input to the hash function hash.</htm:li> <htm:li>If an AES-CMAC is being used as the MAC, the salt length shall be the same length as the AES key (i.e. 128, 192, or 256 bits).</htm:li> </htm:ul> (conditional) If a KDF is used, the evaluator shall ensure that the TSS includes a description of the key derivation function and shall verify the key derivation uses an approved derivation mode and key expansion algorithm according to SP 800-108 or SP 800-56C.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator uses the description of the RBG functionality in FCS_RBG_EXT.1 or documentation available for the 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 encryption/decryption of the data.<htm:br/><htm:br/></Guidance>
              <Tests>If a 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 modes that are supported. <xref to="notations"/>  maps the data fields to the notations used in SP 800-108 and SP 800-56C. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:b><ctr ctr-type="Table" id="notations">: Notations used in SP 800-108 and SP 800-56C </ctr>  </htm:b> <htm:br/><htm:br/> <htm:table><htm:tr class="header"><htm:td>Data Fields</htm:td><htm:td>Notations</htm:td><htm:td/></htm:tr><htm:tr class="header"><htm:td/><htm:td>SP 800-108</htm:td><htm:td>SP 800-56C</htm:td></htm:tr><htm:tr><htm:td>Pseudorandom function</htm:td><htm:td>PRF</htm:td><htm:td>PRF</htm:td></htm:tr><htm:tr><htm:td>Counter length</htm:td><htm:td>r</htm:td><htm:td>r</htm:td></htm:tr><htm:tr><htm:td>Length of output of PRF</htm:td><htm:td>h</htm:td><htm:td>h</htm:td></htm:tr><htm:tr><htm:td>Length of derived keying material</htm:td><htm:td>L</htm:td><htm:td>L</htm:td></htm:tr><htm:tr><htm:td>Length of input values</htm:td><htm:td>l length</htm:td><htm:td>l length</htm:td></htm:tr><htm:tr><htm:td>Pseudorandom input values I</htm:td><htm:td>K1 (key derivation key)</htm:td><htm:td>Z (shared secret)</htm:td></htm:tr><htm:tr><htm:td>Pseudorandom salt values</htm:td><htm:td>n/a</htm:td><htm:td>s</htm:td></htm:tr><htm:tr><htm:td>Randomness extraction MAC</htm:td><htm:td>n/a</htm:td><htm:td>MAC</htm:td></htm:tr></htm:table> <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:b>Counter Mode Tests:</htm:b> <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall determine the following characteristics of the key derivation function: <htm:ul><htm:li>One or more pseudorandom functions that are supported by the implementation (PRF).</htm:li> <htm:li>One or more of the values {8, 16, 24, 32} that equal the length of the binary representation of the counter (r).</htm:li> <htm:li>The length (in bits) of the output of the PRF (h).</htm:li> <htm:li>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 supported. These must be evenly divisible by h.</htm:li> <htm:li>Up to two values of L that are NOT evenly divisible by h.</htm:li> <htm:li>Location of the counter relative to fixed input data: before, after, or in the middle.</htm:li> <htm:ul><htm:li>Counter before fixed input data: fixed input data string length (in bytes), fixed input data string value.</htm:li> <htm:li>Counter after fixed input data: fixed input data string length (in bytes), fixed input data string value.</htm:li> <htm:li>Counter in the middle of fixed input data: length of data before counter (in bytes), length of data after counter (in bytes), value of string input before counter, value of string input after counter.</htm:li> </htm:ul> <htm:li>The length (I_length) of the input values I.</htm:li> </htm:ul>For each supported combination of I_length, MAC, salt, PRF, counter location, value of r, and value of L, the evaluator shall generate 10 test vectors that include pseudorandom input values I, and pseudorandom salt values. If there is 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 TOE in order to produce the keying material output. <htm:br/><htm:br/> <htm:br/><htm:br/>The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a known good implementation. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:b>Feedback Mode Tests:</htm:b> <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall determine the following characteristics of the key derivation function: <htm:ul><htm:li>One or more pseudorandom functions that are supported by the implementation (PRF).</htm:li> <htm:li>The length (in bits) of the output of the PRF (h).</htm:li> <htm:li>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 supported. These must be evenly divisible by h.</htm:li> <htm:li>Up to two values of L that are NOT evenly divisible by h.</htm:li> <htm:li>Whether or not zero-length IVs are supported.</htm:li> <htm:li>Whether or not a counter is used, and if so:</htm:li> <htm:ul><htm:li>One or more of the values {8, 16, 24, 32} that equal the length of the binary representation of the counter (r).</htm:li> <htm:li>Location of the counter relative to fixed input data: before, after, or in the middle.</htm:li> <htm:ul><htm:li>Counter before fixed input data: fixed input data string length (in bytes), fixed input data string value.</htm:li> <htm:li>Counter after fixed input data: fixed input data string length (in bytes), fixed input data string value.</htm:li> <htm:li>Counter in the middle of fixed input data: length of data before counter (in bytes), length of data after counter (in bytes), value of string input before counter, value of string input after counter.</htm:li> </htm:ul> </htm:ul> <htm:li>The length (I_length) of the input values I.</htm:li> </htm:ul>For each supported combination of I_length, MAC, salt, PRF, counter location (if a counter is used), value of r (if a counter is used), and value of L, the evaluator shall generate 10 test vectors that include pseudorandom input values I and pseudorandom salt values. If the KDF supports zero-length IVs, five of these test vectors will be accompanied by pseudorandom IVs and the other five will use zero-length IVs. If zero-length IVs are not supported, each test vector will be accompanied by an pseudorandom IV. If there is only one value of L that is evenly divisible by h, the evaluator shall generate 20 test vectors for it. <htm:br/><htm:br/> <htm:br/><htm:br/>For each test vector, the evaluator shall supply this data to the TOE in order to produce the keying material output. The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a known good implementation. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:b>Double Pipeline Iteration Mode Tests:</htm:b> <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall determine the following characteristics of the key derivation function: <htm:ul><htm:li>One or more pseudorandom functions that are supported by the implementation (PRF).</htm:li> <htm:li>The length (in bits) of the output of the PRF (h).</htm:li> <htm:li>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 supported. These must be evenly divisible by h.</htm:li> <htm:li>Up to two values of L that are NOT evenly divisible by h.</htm:li> <htm:li>Whether or not a counter is used, and if so:</htm:li> <htm:ul><htm:li>One or more of the values {8, 16, 24, 32} that equal the length of the binary representation of the counter (r).</htm:li> <htm:li>Location of the counter relative to fixed input data: before, after, or in the middle.</htm:li> <htm:ul><htm:li>Counter before fixed input data: fixed input data string length (in bytes), fixed input data string value.</htm:li> <htm:li>Counter after fixed input data: fixed input data string length (in bytes), fixed input data string value.</htm:li> <htm:li>Counter in the middle of fixed input data: length of data before counter (in bytes), length of data after counter (in bytes), value of string input before counter, value of string input after counter.</htm:li> </htm:ul> </htm:ul> <htm:li>The length (I_length) of the input values I.</htm:li> </htm:ul>For each supported combination of I_length, MAC, salt, PRF, counter location (if a counter is used), value of r (if a counter is used), and value of L, the evaluator shall generate 10 test vectors that include pseudorandom input values I, and pseudorandom salt values. If there is only one value of L that is evenly divisible by h, the evaluator shall generate 20 test vectors for it. <htm:br/><htm:br/> <htm:br/><htm:br/>For each test vector, the evaluator shall supply this data to the TOE in order to produce the keying material output. The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a known good implementation. <htm:br/><htm:br/> <htm:br/><htm:br/></Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_CKM_EXT.3 Cryptographic Key Generation-->
        <f-component cc-id="fcs_ckm_ext.3" id="fcs-ckm-ext-3" name="Cryptographic Key Generation">
          <comp-lev>requires the TSF to generate and manage the strength of Key Encryption Keys (KEKs).</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_CKM.1 Cryptographic Key Generation<htm:br/>FCS_COP.1 Cryptographic Operation<htm:br/>FCS_RBG_EXT.1 Random Bit Generation<htm:br/></dependencies>
          <f-element id="fel-kek-asym">
            <title>The TSF shall use <selectables><selectable id="s-kek-asym">asymmetric KEKsof <assignable>security strength greater than or equal to 112 bits</assignable> security strength</selectable><selectable id="s-kek-sym">symmetric KEKsof <selectables><selectable id="fcs_ckm_ext.3.1_2">128-bit</selectable><selectable id="s-kek-sym-256">256-bit</selectable></selectables> security strength corresponding to at least the security strength of the keys encrypted by the KEK</selectable> </selectables>.</title>
            <ext-comp-def-title><title>The TSF shall use <assignable>description of KEKs </assignable> . </title> </ext-comp-def-title>
            <note role="application">The ST author selects all applicable KEK types implemented by the TOE.</note>
            <aactivity level="component">
              <TSS>The evaluator shall examine the key hierarchy section of the TSS to ensure that the formation of all KEKs are described and that the key sizes match that described by the ST author. The evaluator shall examine the key hierarchy section of the TSS to ensure that each key (DEKs, software-based key storage, and KEKs) is encrypted by keys of equal or greater security strength using one of the selected methods.<htm:br/><htm:br/>The evaluator shall review the TSS to verify that it contains a description of the conditioning used to derive KEKs. This description must include the size and storage location of salts. This activity may be performed in combination with that for FCS_COP.1/CONDITION.<htm:br/><htm:br/>(conditional) If the symmetric KEK is generated by an RBG, the evaluator shall review the TSS to determine that it describes how the functionality described by FCS_RBG_EXT.1 is invoked. The evaluator uses the description of the RBG functionality in FCS_RBG_EXT.1 or documentation available for the 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 encryption/decryption of the data.<htm:br/><htm:br/>(conditional) If the KEK is generated according to an asymmetric key scheme, the evaluator shall review the TSS to determine that it describes how the functionality described by FCS_CKM.1 is invoked. The evaluator uses the description of the key generation functionality in FCS_CKM.1 or documentation available for the operational environment to determine that the key strength being requested is greater than or equal to 112 bits.<htm:br/><htm:br/>(conditional) If the KEK is formed from a combination, the evaluator shall verify that the TSS describes the method of combination and that this method is either an XOR, a KDF, or encryption.<htm:br/><htm:br/>(conditional) If a KDF is used, the evaluator shall ensure that the TSS includes a description of the key derivation function and shall verify the key derivation uses an approved derivation mode and key expansion algorithm according to SP 800-108.<htm:br/><htm:br/>(conditional) If<xref to="s-dek-800-56"/>  is selected, the evaluator shall ensure the TSS includes a description of the randomness extraction step. The description must include<htm:ul><htm:li>How an approved untruncated MAC function is being used for the randomness extraction step and the evaluator must verify the TSS describes that the output length (in bits) of the MAC function is at least as large as the targeted security strength (in bits) of the parameter set employed by the key establishment scheme (see Tables 1-3 of SP 800-56C).</htm:li> <htm:li>How the MAC function being used for the randomness extraction step is related to the PRF used in the key expansion and verify the TSS description includes the correct MAC function:</htm:li> <htm:ul><htm:li>If an HMAC-hash is used in the randomness extraction step, then the same HMAC-hash (with the same hash function hash) is used as the PRF in the key expansion step.</htm:li> <htm:li>If an AES-CMAC (with key length 128, 192, or 256 bits) is used in the randomness extraction step, then AES-CMAC with a 128-bit key is used as the PRF in the key expansion step.</htm:li> </htm:ul> <htm:li>The lengths of the salt values being used in the randomness extraction step and the evaluator shall verify the TSS description includes correct salt lengths:</htm:li> <htm:ul><htm:li>If an HMAC-hash is being used as the MAC, the salt length can be any value up to the maximum bit length permitted for input to the hash function hash.</htm:li> <htm:li>If an AES-CMAC is being used as the MAC, the salt length shall be the same length as the AES key (i.e. 128, 192, or 256 bits).</htm:li> </htm:ul> </htm:ul> <htm:br/>The evaluator shall also ensure that the documentation of the product's encryption key management is detailed enough that, after reading, the product's key management hierarchy is clear and that it meets the requirements to ensure the keys are adequately protected. The evaluator shall ensure that the documentation includes both an essay and one or more diagrams. Note that this may also be documented as separate proprietary evidence rather than being included in the TSS.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>If a 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 modes that are supported. <xref to="KDF"/>  maps the data fields to the notations used in SP 800-108 and SP 800-56C. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:b><ctr ctr-type="Table" id="KDF">: Notations used in SP 800-108 and SP 800-56C </ctr>  </htm:b> <htm:br/><htm:br/> <htm:table><htm:tr class="header"><htm:td>Data Fields</htm:td><htm:td colspan="2">Notations</htm:td></htm:tr><htm:tr class="header"><htm:td/><htm:td>SP 800-108</htm:td><htm:td>SP 800-56C</htm:td></htm:tr><htm:tr><htm:td>Pseudorandom function</htm:td><htm:td>PRF</htm:td><htm:td>PRF</htm:td></htm:tr><htm:tr><htm:td>Counter length</htm:td><htm:td>r</htm:td><htm:td>r</htm:td></htm:tr><htm:tr><htm:td>Length of output of PRF</htm:td><htm:td>h</htm:td><htm:td>h</htm:td></htm:tr><htm:tr><htm:td>Length of derived keying material</htm:td><htm:td>L</htm:td><htm:td>L</htm:td></htm:tr><htm:tr><htm:td>Length of input values</htm:td><htm:td>I_length</htm:td><htm:td>I_length</htm:td></htm:tr><htm:tr><htm:td>Pseudorandom input values I</htm:td><htm:td>K<htm:sub>1</htm:sub> (key derivation key)</htm:td><htm:td>Z (shared secret)</htm:td></htm:tr><htm:tr><htm:td>Pseudorandom salt values</htm:td><htm:td>n/a</htm:td><htm:td>s</htm:td></htm:tr><htm:tr><htm:td>Randomness extraction MAC</htm:td><htm:td>n/a</htm:td><htm:td>MAC</htm:td></htm:tr></htm:table> <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:b>Counter Mode Tests:</htm:b> <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall determine the following characteristics of the key derivation function: <htm:ul><htm:li>One or more pseudorandom functions that are supported by the implementation (PRF).</htm:li> <htm:li>One or more of the values {8, 16, 24, 32} that equal the length of the binary representation of the counter (r).</htm:li> <htm:li>The length (in bits) of the output of the PRF (h).</htm:li> <htm:li>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 supported. These must be evenly divisible by h.</htm:li> <htm:li>Up to two values of L that are NOT evenly divisible by h.</htm:li> <htm:li>Location of the counter relative to fixed input data: before, after, or in the middle.<htm:ul><htm:li>Counter before fixed input data: fixed input data string length (in bytes), fixed input data string value.</htm:li> <htm:li>Counter after fixed input data: fixed input data string length (in bytes), fixed input data string value.</htm:li> <htm:li>Counter in the middle of fixed input data: length of data before counter (in bytes), length of data after counter (in bytes), value of string input before counter, value of string input after counter.</htm:li> </htm:ul> </htm:li> <htm:li>The length (I_length) of the input values I.</htm:li> </htm:ul> <htm:br/><htm:br/>For each supported combination of I_length, MAC, salt, PRF, counter location, value of r, and value of L, the evaluator shall generate 10 test vectors that include pseudorandom input values I, and pseudorandom salt values. If there is 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 TOE in order to produce the keying material output. <htm:br/><htm:br/> <htm:br/><htm:br/>The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a known good implementation. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:b>Feedback Mode Tests:</htm:b> <htm:br/><htm:br/>The evaluator shall determine the following characteristics of the key derivation function: <htm:br/><htm:br/> <htm:ul><htm:li>One or more pseudorandom functions that are supported by the implementation (PRF).</htm:li> <htm:li>The length (in bits) of the output of the PRF (h).</htm:li> <htm:li>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 supported. These must be evenly divisible by h.</htm:li> <htm:li>Up to two values of L that are NOT evenly divisible by h.</htm:li> <htm:li>Whether or not zero-length IVs are supported.</htm:li> <htm:li>Whether or not a counter is used, and if so:<htm:ul><htm:li>One or more of the values {8, 16, 24, 32} that equal the length of the binary representation of the counter (r).</htm:li> <htm:li>Location of the counter relative to fixed input data: before, after, or in the middle.</htm:li> <htm:ul><htm:li>Counter before fixed input data: fixed input data string length (in bytes), fixed input data string value.</htm:li> <htm:li>Counter after fixed input data: fixed input data string length (in bytes), fixed input data string value.</htm:li> <htm:li>Counter in the middle of fixed input data: length of data before counter (in bytes), length of data after counter (in bytes), value of string input before counter, value of string input after counter.</htm:li> </htm:ul> </htm:ul> </htm:li> <htm:li>The length (I_length) of the input values I.</htm:li> </htm:ul> <htm:br/><htm:br/>For each supported combination of I_length, MAC, salt, PRF, counter location (if a counter is used), value of r (if a counter is used), and value of L, the evaluator shall generate 10 test vectors that include pseudorandom input values I and pseudorandom salt values. If the KDF supports zero-length IVs, five of these test vectors will be accompanied by pseudorandom IVs and the other five will use zero-length IVs. If zero-length IVs are not supported, each test vector will be accompanied by an pseudorandom IV. If there is only one value of L that is evenly divisible by h, the evaluator shall generate 20 test vectors for it. <htm:br/><htm:br/> <htm:br/><htm:br/>For each test vector, the evaluator shall supply this data to the TOE in order to produce the keying material output. The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a known good implementation. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:b>Double Pipeline Iteration Mode Tests:</htm:b> <htm:br/><htm:br/>The evaluator shall determine the following characteristics of the key derivation function: <htm:br/><htm:br/> <htm:ul><htm:li>One or more pseudorandom functions that are supported by the implementation (PRF).</htm:li> <htm:li>The length (in bits) of the output of the PRF (h).</htm:li> <htm:li>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 supported. These must be evenly divisible by h.</htm:li> <htm:li>Up to two values of L that are NOT evenly divisible by h.</htm:li> <htm:li>Whether or not a counter is used, and if so:<htm:ul><htm:li>One or more of the values {8, 16, 24, 32} that equal the length of the binary representation of the counter (r).</htm:li> <htm:li>Location of the counter relative to fixed input data: before, after, or in the middle.<htm:ul><htm:li>Counter before fixed input data: fixed input data string length (in bytes), fixed input data string value.</htm:li> <htm:li>Counter after fixed input data: fixed input data string length (in bytes), fixed input data string value.</htm:li> <htm:li>Counter in the middle of fixed input data: length of data before counter (in bytes), length of data after counter (in bytes), value of string input before counter, value of string input after counter.</htm:li> </htm:ul> </htm:li> </htm:ul> </htm:li> <htm:li>The length (I_length) of the input values I.</htm:li> </htm:ul> <htm:br/><htm:br/>For each supported combination of I_length, MAC, salt, PRF, counter location (if a counter is used), value of r (if a counter is used), and value of L, the evaluator shall generate 10 test vectors that include pseudorandom input values I, and pseudorandom salt values. If there is only one value of L that is evenly divisible by h, the evaluator shall generate 20 test vectors for it. <htm:br/><htm:br/> <htm:br/><htm:br/>For each test vector, the evaluator shall supply this data to the TOE in order to produce the keying material output. The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a known good implementation.</Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-kek-gen">
            <title>The TSF shall generate all KEKs using one of the following methods: <htm:ul><htm:li>Derive the KEK from a Password Authentication Factor according to FCS_COP.1.1<htm:b>/CONDITION</htm:b> and</htm:li></htm:ul> <selectables linebreak="yes"><selectable id="fcs_ckm_ext.3.2_1">Generate the KEK using an RBG that meets this profile (as specified in FCS_RBG_EXT.1)</selectable><selectable id="fcs_ckm_ext.3.2_2">Generate the KEK using a key generation scheme that meets this profile (as specified in FCS_CKM.1)</selectable><selectable id="fcs_ckm_ext.3.2_3">Combine the KEK from other KEKs in a way that preserves the effective entropy of each factor by <selectables><selectable id="fcs_ckm_ext.3.2_4">using an XOR operation</selectable><selectable id="fcs_ckm_ext.3.2_5">concatenating the keys and using a KDF (as described in SP 800-108)</selectable><selectable id="fcs_ckm_ext.3.2_6">concatenating the keys and using a KDF (as described in SP 800-56C)</selectable><selectable id="fcs_ckm_ext.3.2_7">encrypting one key with another</selectable></selectables> </selectable> </selectables>.</title>
            <ext-comp-def-title><title>The TSF shall generate all KEKs using one of the following methods: <htm:ul><htm:li>Derive the KEK from a Password Authentication Factor according to FCS_COP.1.1 and </htm:li> </htm:ul> <selectables linebreak="yes"><selectable>Generate the KEK using an RBG that meets this profile (as specified in FCS_RBG_EXT.1) </selectable> <selectable>Generate the KEK using a key generation scheme that meets this profile (as specified in FCS_CKM.1) </selectable> <selectable>Combine the KEK from other KEKs in a way that preserves the effective entropy of each factor by <selectables><selectable>using an XOR operation </selectable> <selectable>concatenating the keys and using a KDF (as described in SP 800-108) </selectable> <selectable>concatenating the keys and using a KDF (as described in SP 800-56C) </selectable> <selectable>encrypting one key with another </selectable> </selectables> </selectable> </selectables> . </title> </ext-comp-def-title>
            <note role="application">The conditioning of passwords is performed in accordance with FCS_COP.1/CONDITION.<htm:br/><htm:br/>It is expected that key generation derived from conditioning, using an RBG or generation scheme, and through combination, will each be necessary to meet the requirements set out in this document. In particular,<xref to="Keys"/>  has KEKs of each type: KEK_3 is generated, KEK_1 is derived from a Password Authentication Factor, and KEK_2 is combined from two KEKs. In<xref to="Keys"/>  , KEK_3 may either be a symmetric key generated from an RBG or an asymmetric key generated using a key generation scheme according to FCS_CKM.1.<htm:br/><htm:br/>If combined, the ST author should describe which method of combination is used in order to justify that the effective entropy of each factor is preserved.<htm:br/><htm:br/>SP 800-56C specifies a two-step key derivation procedure that employs an extraction-then-expansion technique for deriving keying material from a shared secret generated during a key establishment scheme. The Randomness Extraction step as described in Section 5 of SP 800-56C is followed by Key Expansion using the key derivation functions defined in SP 800-108 (as described in Section 6 of SP 800-56C).</note>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_CKM_EXT.4 Key Destruction-->
        <f-component cc-id="fcs_ckm_ext.4" id="fcs-ckm-ext-4" name="Key Destruction">
          <comp-lev>requires the TSF to be able to follow specified rules to destroy plaintext keying material and cryptographic keys when no longer needed.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_RBG_EXT.1 Random Bit Generation</dependencies>
          <f-element id="fel-key-kill-how">
            <title>The TSF shall destroy cryptographic keys in accordance with the specified cryptographic key destruction methods:  <htm:ul><htm:li>By clearing the KEK encrypting the target key</htm:li> <htm:li>In accordance with the following rules<htm:ul><htm:li>For volatile memory, the destruction shall be executed by a single direct overwrite <selectables><selectable id="fcs_ckm_ext.4.1_1">consisting of a pseudorandom pattern using the TSF’s RBG</selectable><selectable id="fcs_ckm_ext.4.1_2">consisting of zeros</selectable> </selectables> .</htm:li> <htm:li>For non-volatile EEPROM, the destruction shall be executed by a single direct overwrite consisting of a pseudo random pattern using the TSF’s RBG (as specified in FCS_RBG_EXT.1), followed by a read-verify.</htm:li> <htm:li>For non-volatile flash memory, that is not wear-leveled, the destruction shall be executed <selectables><selectable id="fcs_ckm_ext.4.1_3">by a single direct overwrite consisting of zeros followed by a read-verify</selectable><selectable id="fcs_ckm_ext.4.1_4">by a block erase that erases the reference to memory that stores data as well as the data itself</selectable> </selectables> .</htm:li> <htm:li>For non-volatile flash memory, that is wear-leveled, the destruction shall be executed <selectables><selectable id="fcs_ckm_ext.4.1_5">by a single direct overwrite consisting of zeros</selectable><selectable id="fcs_ckm_ext.4.1_6">by a block erase</selectable> </selectables> .</htm:li> <htm:li>For non-volatile memory other than EEPROM and flash, the destruction shall be executed by a single direct overwrite with a random pattern that is changed before each write.</htm:li> </htm:ul> </htm:li></htm:ul></title>
            <note role="application">The clearing indicated above applies to each intermediate storage area for plaintext key or cryptographic 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 key or cryptographic critical security parameter to another location.<htm:br/><htm:br/>Because plaintext key material is not allowed to be written to non-volatile memory (FPT_KST_EXT.1), the second selection only applies to key material written to volatile memory.</note>
            <aactivity level="component">
              <TSS>The evaluator shall check to ensure the TSS lists each type of plaintext key material (DEKs, software-based key storage, KEKs, trusted channel keys, passwords, etc.) and its generation and storage location.<htm:br/><htm:br/>The evaluator shall verify that the TSS describes when each type of key material is cleared (for example, on system power off, on wipe function, on disconnection of trusted channels, when no longer 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, etc.).<htm:br/><htm:br/>The evaluator shall also verify that, for each type of key, the type of clearing procedure that is performed (cryptographic erase, overwrite with zeros, overwrite with random pattern, or block erase) is listed. If different types of memory are used to store the materials to be protected, the evaluator shall check to ensure that the TSS describes the clearing procedure in terms of the memory in which the data are stored.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following tests require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products. <htm:br/><htm:br/> <htm:br/><htm:br/>For each software and firmware key clearing situation (including on system power off, on wipe function, on disconnection of trusted channels, when no longer 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) the evaluator shall repeat the following tests. <htm:br/><htm:br/> <htm:br/><htm:br/>For these tests the evaluator shall utilize appropriate development environment (e.g. a Virtual Machine) and development tools (debuggers, simulators, etc.) to test that keys are cleared, including all copies of the key that may have been created internally by the TOE during normal cryptographic processing with that key. <htm:br/><htm:br/> <htm:br/><htm:br/>
                <testlist>
                  <test>Applied to each key held as plaintext in volatile memory and subject to destruction by overwrite by the TOE (whether or not the plaintext value is subsequently encrypted for storage in volatile or non-volatile memory). In the case where the only selection made for the destruction method key was removal of power, then this test is unnecessary. The evaluator shall:<htm:br/><htm:ol><htm:li>Record the value of the key in the TOE subject to clearing.</htm:li> <htm:li>Cause the TOE to perform a normal cryptographic processing with the key from Step #1.</htm:li> <htm:li>Cause the TOE to clear the key.</htm:li> <htm:li>Cause the TOE to stop the execution but not exit.</htm:li> <htm:li>Cause the TOE to dump the entire memory of the TOE into a binary file.</htm:li> <htm:li>Search the content of the binary file created in Step #5 for instances of the known key value from Step #1.</htm:li> <htm:li>Break the key value from Step #1 into 3 similar sized pieces and perform a search using each piece.</htm:li> </htm:ol> <htm:br/>Steps 1-6 ensure that the complete key does not exist anywhere in volatile memory. If a copy is found, then the test fails.<htm:br/><htm:br/>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 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 different key in Step #1. If a fragment is found the test fails.<htm:br/><htm:br/></test>
                  <test>Applied to each key held in non-volatile memory and subject to destruction by overwrite by the TOE. The evaluator shall use special tools (as needed), provided by the TOE developer if necessary, to view the key storage location:<htm:br/><htm:ol><htm:li>Record the value of the key in the TOE subject to clearing.</htm:li> <htm:li>Cause the TOE to perform a normal cryptographic processing with the key from Step #1.</htm:li> <htm:li>Cause the TOE to clear the key.</htm:li> <htm:li>Search the non-volatile memory the key was stored in for instances of the known key value from Step #1. If a copy is found, then the test fails.</htm:li> <htm:li>Break the key value from Step #1 into 3 similar sized pieces and perform a search using each piece. If a fragment is found 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.</htm:li> </htm:ol> <htm:br/><htm:br/></test>
                  <test>Applied to each key held as non-volatile memory and subject to destruction by overwrite by the TOE. The evaluator shall use special tools (as needed), provided by the TOE developer if necessary, to view the key storage location:<htm:br/><htm:ol><htm:li>Record the storage location of the key in the TOE subject to clearing.</htm:li> <htm:li>Cause the TOE to perform a normal cryptographic processing with the key from Step #1.</htm:li> <htm:li>Cause the TOE to clear the key.</htm:li> <htm:li>Read the storage location in Step #1 of non-volatile memory to ensure the appropriate pattern is utilized.</htm:li> </htm:ol> <htm:br/>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.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-key-kill-when">
            <title>The TSF shall destroy all plaintext keying material and critical security parameters when no longer needed.</title>
            <note role="application">For the purposes of this requirement, plaintext keying material refers to authentication data, passwords, secret/private symmetric keys, private asymmetric keys, data used to derive keys, values derived from passwords, etc.<htm:br/><htm:br/>Key destruction procedures are performed in accordance with FCS_CKM_EXT.4.1.<htm:br/><htm:br/>There are multiple situations in which plaintext keying material is no longer necessary, including when the TOE is powered off, when the wipe function is performed, when trusted channels are disconnected, when keying material is no longer needed by the trusted channel per the protocol, and when transitioning to the locked state (for those values derived from the Password Authentication Factor or that key material which is protected by the password-derived or biometric-unlocked KEK according to FCS_STG_EXT.2 – see<xref to="Keys"/>  ). For keys (or key material used to derive those keys) protecting sensitive data received in the locked state, "no longer needed" includes "while in the locked state."<htm:br/><htm:br/>Trusted channels may include TLS, HTTPS, DTLS, IPsec VPNs, Bluetooth BR/EDR, and Bluetooth LE. The plaintext keying material for these channels includes (but is not limited to) master secrets, and Security Associations (SAs).<htm:br/><htm:br/>If REKs are processed in a separate execution environment on the same Application Processor as the OS, REK key material must be cleared from RAM immediately after use, and at least, must be wiped when the device is locked, as the REK is part of the key hierarchy protecting sensitive data.</note>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_CKM_EXT.5 TSF Wipe-->
        <f-component cc-id="fcs_ckm_ext.5" id="fcs-ckm-ext-5" name="TSF Wipe">
          <comp-lev>requires the TSF to implement a cryptographic or other mechanism to make TSF data unreadable.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>TSF wipe of protected data.</htm:li> <htm:li>TSF wipe of enterprise data.</htm:li> </htm:ul> </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Failure of the wipe.</htm:li> </htm:ul> </audit>
          <dependencies>FCS_RBG_EXT.1 Random Bit Generation</dependencies>
          <f-element id="fel-wipe-how">
            <title>The TSF shall wipe all protected data by <selectables linebreak="yes"><selectable id="fcs_ckm_ext.5.1_1">Cryptographically erasing the encrypted DEKs or the KEKs in non-volatile memory by following the requirements in FCS_CKM_EXT.4.1</selectable><selectable id="fcs_ckm_ext.5.1_2">Overwriting all PD according to the following rules:<htm:ul><htm:li>For EEPROM, the destruction shall be executed by a single direct overwrite consisting of a pseudo random pattern using the TSF’s RBG (as specified in FCS_RBG_EXT.1, followed by a read-verify.</htm:li><htm:li>For flash memory, that is not wear-leveled, the destruction shall be executed <selectables><selectable id="fcs_ckm_ext.5.1_3">by a single direct overwrite consisting of zeros followed by a read-verify</selectable><selectable id="fcs_ckm_ext.5.1_4">by a block erase that erases the reference to memory that stores data as well as the data itself</selectable></selectables> .</htm:li><htm:li>For flash memory, that is wear-leveled, the destruction shall be executed <selectables><selectable id="fcs_ckm_ext.5.1_5">by a single direct overwrite consisting of zeros</selectable><selectable id="fcs_ckm_ext.5.1_6">by a block erase</selectable></selectables> .</htm:li><htm:li>For non-volatile memory other than EEPROM and flash, the destruction shall be executed by a single direct overwrite with a random pattern that is changed before each write.</htm:li></htm:ul></selectable> </selectables>.</title>
            <note role="application">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.</note>
            <aactivity level="component">
              <TSS>The evaluator shall check to ensure the TSS describes how the device is wiped, the type of clearing procedure that is performed (cryptographic erase or overwrite) and, if overwrite is performed, the overwrite procedure (overwrite with zeros, overwrite three or more times by a different alternating pattern, overwrite with random pattern, or block erase).<htm:br/><htm:br/>If different types of memory are used to store the data to be protected, the evaluator shall check to ensure that the TSS describes the clearing procedure in terms of the memory in which the data are stored (for example, data stored on flash are cleared by overwriting once with zeros, while data stored on the internal persistent storage device are cleared by overwriting three times with a random pattern that is changed before each write).<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall verify that the AGD guidance describes how to enable encryption, if it is not enabled by default. Additionally the evaluator shall verify that the AGD guidance describes how to initiate the wipe command.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following test may require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products. <htm:br/><htm:br/> <htm:br/><htm:br/>
                <testlist>
                  <test>
                    The evaluator shall perform one of the following tests. The test before and after the wipe command shall be identical. This test shall be repeated for each type of memory used to store the data to be protected.<htm:br/><htm:br/>
                    <testlist>
                      <test><htm:b>For File-based Methods:</htm:b> <htm:br/>The evaluator shall enable encryption according to the AGD guidance. The evaluator shall create a user data (protected data or sensitive data) file, for example, by using an application. The evaluator shall use a tool provided by the developer to examine this data stored in memory (for example, by examining a decrypted files). The evaluator shall initiate the wipe command according to the AGD guidance provided for FMT_SMF.1. The evaluator shall use a tool provided by the developer to examine the same data location in memory to verify that the data has been wiped according to the method described in the TSS (for example, the files are still encrypted and cannot be accessed).</test>
                      <test><htm:b>For Volume-based Methods:</htm:b> <htm:br/>The evaluator shall enable encryption according to the AGD guidance. The evaluator shall create a unique data string, for example, by using an application. The evaluator shall use a tool provided by the developer to search decrypted data for the unique string. The evaluator shall initiate the wipe command according to the AGD guidance provided for FMT_SMF.1. The evaluator shall use a tool provided by the developer to search for the same unique string in decrypted memory to verify that the data has been wiped according to the method described in the TSS (for example, the files are still encrypted and cannot be accessed).</test>
                    </testlist>
                  </test>
                  <test>The evaluator shall cause the device to wipe and verify that the wipe concludes with a power cycle.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-wipe-power">
            <title>The TSF shall perform a power cycle on conclusion of the wipe procedure.</title>
          </f-element>
          <audit-event>
            <audit-event-descr>
              <selectables onlyone="yes">
                <selectable>Failure of the wipe</selectable>
                <selectable>none</selectable>
              </selectables>
            </audit-event-descr>
          </audit-event>
        </f-component>
        <!--FCS_CKM_EXT.6 Salt Generation-->
        <f-component cc-id="fcs_ckm_ext.6" id="fcs-ckm-ext-6" name="Salt Generation">
          <comp-lev>requires the TSF to generate salts in a specified manner.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_RBG_EXT.1 Random Bit Generation</dependencies>
          <f-element id="fel-salt-gen">
            <title>The TSF shall generate all salts using an RBG that meets FCS_RBG_EXT.1.</title>
            <note role="application">This requirement refers only to salt generation. In the examples given, a salt may be used as part of the scheme/algorithm. Requirements on nonces or ephemeral keys are provided elsewhere, if needed. The list below is provided for clarity, in order to give examples of where the TSF may be generating cryptographic salts; it is not exhaustive nor is it intended to mandate implementation of all of these schemes/algorithms. Cryptographic salts are generated for various uses including:<htm:ul><htm:li>RSASSA-PSS signature generation</htm:li> <htm:li>DSA signature generation</htm:li> <htm:li>ECDSA signature generation</htm:li> <htm:li>DH static key agreement scheme</htm:li> <htm:li>PBKDF</htm:li> <htm:li>Key Agreement Scheme in NIST SP 800-56B</htm:li> <htm:li>AES GCM</htm:li> </htm:ul> </note>
            <aactivity level="component">
              <TSS>The evaluator shall verify that the TSS contains a description regarding the salt generation, including which algorithms on the TOE require salts. The evaluator shall confirm that the salt is generated using an RBG described in FCS_RBG_EXT.1. For PBKDF derivation of KEKs, this evaluation activity may be performed in conjunction with FCS_CKM_EXT.3.2.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_CKM_EXT.7 Cryptographic Key Support (REK)-->
        <f-component cc-id="fcs_ckm_ext.7" id="fcs-ckm-ext-7" name="Cryptographic Key Support (REK)" status="sel-based">
          <depends on-sel="mutable_hardware"/>
          <comp-lev>requires the TSF to prevent the reading or exporting of REKs.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_CKM_EXT.1 Cryptographic Key Support</dependencies>
          <f-element id="fel-rek-stay-hardware">
            <title>A REK shall not be able to be read from or exported from the hardware.</title>
            <note role="application">If<xref to="mutable_hardware"/>  is selected in FCS_CKM_EXT.1.1, FCS_CKM_EXT.7 must be included in the ST. Note that if<xref to="s-immutable-hardware"/>  is selected in FCS_CKM_EXT.1.1 it implicitly meets FCS_CKM_EXT.7.<htm:br/><htm:br/>The lack of a public/documented API for importing or exporting, when a private/undocumented API exists, is not sufficient to meet this requirement.</note>
            <aactivity level="component">
              <TSS>The evaluation activity for this component is performed in conjunction with the evaluation activity for FCS_CKM_EXT.1.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_COP.1/CONDITION Cryptographic Operation-->
        <f-component cc-id="fcs_cop.1" id="fcs-cop-1-condition" name="Cryptographic Operation" iteration="CONDITION">
          <f-element id="fel-cond-how">
            <title>The TSF shall perform <htm:b>conditioning</htm:b>  in accordance with a specified cryptographic algorithm  <htm:b>HMAC- <selectables><selectable id="fcs_cop.1.1_CONDITION_1">SHA-256</selectable><selectable id="fcs_cop.1.1_CONDITION_2">SHA-384</selectable><selectable id="fcs_cop.1.1_CONDITION_3">SHA-512</selectable> </selectables> using a salt, and <selectables><selectable id="fcs_cop.1.1_CONDITION_4">PBKDF2 with <assignable>number of iterations</assignable> iterations</selectable><selectable id="fcs_cop.1.1_CONDITION_7"><assignable>key stretching function</assignable></selectable><selectable id="fcs_cop.1.1_CONDITION_8" exclusive="yes">no other function</selectable> </selectables> and output</htm:b>  cryptographic key sizes  <htm:b> <selectables><selectable id="fcs_cop.1.1_CONDITION_9">128</selectable><selectable id="fcs_cop.1.1_CONDITION_10">256</selectable> </selectables> </htm:b>  that meet the following:  <htm:b> <selectables><selectable id="fcs_cop.1.1_CONDITION_11">NIST SP 800-132</selectable><selectable id="fcs_cop.1.1_CONDITION_12" exclusive="yes">no standard</selectable> </selectables> .</htm:b></title>
            <note role="application">The key cryptographic key sizes in the third selection should be made to correspond to the KEK key sizes selected in FCS_CKM_EXT.3.<htm:br/><htm:br/>This password must be conditioned into a string of bits that forms the submask to be used as input into the KEK. Conditioning can be performed using one of the identified hash functions and may include a key stretching function; the method used is selected by the ST author. If selected, NIST SP 800-132 requires the use of a pseudorandom function (PRF) consisting of HMAC with an approved hash function. The ST author selects the hash function used, also includes the appropriate requirements for HMAC and the hash function.<htm:br/><htm:br/>Appendix A of NIST SP 800-132 recommends setting the iteration count in order to increase the computation needed to derive a key from a password and, therefore, increase the workload of performing a dictionary attack.</note>
            <aactivity level="component">
              <TSS>The evaluator shall check that the TSS describes the method by which the password is first encoded and then fed to the SHA algorithm and verify the SHA algorithm matches the first selection.<htm:br/><htm:br/>If a key stretching function, such as PBKDF2, is selected the settings for the algorithm (padding, blocking, etc.) shall be described. The evaluator shall verify that the TSS contains a description 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 same length as the KEK as specified in FCS_CKM_EXT.3.<htm:br/><htm:br/>If any manipulation of the key is performed in forming the submask that will be used to form the KEK, that process shall be described in the TSS.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component. No explicit testing of the formation of the submask from the input password is required.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_COP.1/ENCRYPT Cryptographic Operation-->
        <f-component cc-id="fcs_cop.1" id="fcs-cop-1-encrypt" name="Cryptographic Operation" iteration="ENCRYPT">
          <f-element id="fel-crypt-how">
            <title>The TSF shall perform [ <htm:i>encryption/decryption</htm:i>  ] in accordance with a specified cryptographic algorithm: [  <htm:i><htm:br/><htm:ul><htm:li>AES-CBC (as defined in FIPS PUB 197, and NIST SP 800-38A) mode</htm:li> <htm:li>AES-CCMP (as defined in FIPS PUB 197, NIST SP 800-38C and IEEE 802.11-2012), and</htm:li> <htm:li> <selectables linebreak="yes"><selectable id="fcs_cop.1.1_ENCRYPT_1">AES Key Wrap (KW) (as defined in NIST SP 800-38F)</selectable><selectable id="fcs_cop.1.1_ENCRYPT_2">AES Key Wrap with Padding (KWP) (as defined in NIST SP 800-38F)</selectable><selectable id="fcs_cop.1.1_ENCRYPT_3">AES-GCM (as defined in NIST SP 800-38D)</selectable><selectable id="fcs_cop.1.1_ENCRYPT_4">AES-CCM (as defined in NIST SP 800-38C)</selectable><selectable id="fcs_cop.1.1_ENCRYPT_5">AES-XTS (as defined in NIST SP 800-38E) mode</selectable><selectable id="fcs_cop.1.1_ENCRYPT_6">AES-CCMP-256 (as defined in NIST SP800-38C and IEEE 802.11ac-2013)</selectable><selectable id="fcs_cop.1.1_ENCRYPT_7">AES-GCMP-256 (as defined in NIST SP800-38D and IEEE 802.11ac-2013)</selectable><selectable id="fcs_cop.1.1_ENCRYPT_8" exclusive="yes">no other modes</selectable> </selectables> </htm:li> </htm:ul></htm:i>  ] and cryptographic key sizes [  <htm:i>128-bit key sizes and <selectables><selectable id="s-encrypt-256">256-bit key sizes</selectable><selectable id="fcs_cop.1.1_ENCRYPT_9" exclusive="yes">no other key sizes</selectable> </selectables> </htm:i>  ].</title>
            <note role="application">For the first selection, the ST author should choose the mode or modes in which AES operates. For the second selection, the ST author should choose the key sizes that are supported by this functionality. 128-bit CBC and CCMP are required in order to comply with the<xref to="mod-wlanclient"/>  .<htm:br/><htm:br/>Note that to comply with the<xref to="mod-wlanclient"/>  , AES CCMP (which uses AES in CCM as specified in SP 800-38C) with cryptographic key size of 128 bits must be implemented. If CCM is only implemented to support CCMP for WLAN, AES-CCM does not need be selected. Optionally, AES-CCMP-256 or AES-GCMP-256 with cryptographic key size of 256 bits may be implemented.</note>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following tests require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:br/><htm:br/>
                <testlist>
                   <htm:b><htm:u>AES-CBC Tests</htm:u> </htm:b>  <htm:br/><htm:br/>  <htm:br/><htm:br/> 
                  <test>
                    AES-CBC Known Answer Tests<htm:br/><htm:br/>There are four Known Answer Tests (KATs), described below. In all KATs, the plaintext, ciphertext, and IV values shall be 128-bit blocks. The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a known good implementation.
                    <testlist>
                      <test>KAT-1. To test the encrypt functionality of AES-CBC, the evaluator shall supply a set of 10 plaintext values and obtain the ciphertext value that results from AES-CBC encryption of the given plaintext using a key value of all zeros and an IV of all zeros. Five plaintext values shall be encrypted with a 128-bit all-zeros key, and the other five shall be encrypted with a 256-bit all-zeros key.<htm:br/><htm:br/>To test the decrypt functionality of AES-CBC, the evaluator shall perform the same test as for encrypt, using 10 ciphertext values as input and AES-CBC decryption.</test>
                      <test>KAT-2. To test the encrypt functionality of AES-CBC, the evaluator shall supply a set of 10 key values and obtain the ciphertext value that results from AES-CBC encryption of an all-zeros plaintext using the given key value and an IV of all zeros. Five of the keys shall be 128-bit keys, and the other five shall be 256-bit keys.<htm:br/><htm:br/>To test the decrypt functionality of AES-CBC, the evaluator shall perform the same test as for encrypt, using an all-zero ciphertext value as input and AES-CBC decryption.</test>
                      <test>KAT-3. To test the encrypt functionality of AES-CBC, the evaluator shall supply the two sets of key values described below and obtain the ciphertext value that results from AES encryption of an all-zeros plaintext using the given key value and an IV of all zeros. The first set of keys shall have 128 128-bit keys, and the second set shall have 256 256-bit keys. Key i in each set shall have the leftmost i bits be ones and the rightmost N-i bits be zeros, for i in [1,N].<htm:br/><htm:br/>To test the decrypt functionality of AES-CBC, the evaluator shall supply the two sets of key and ciphertext value pairs described below and obtain the plaintext value that results from AES-CBC decryption of the given ciphertext using the given key and an IV of all zeros. The first set of key or ciphertext pairs shall have 128 128-bit key or ciphertext pairs, and the second set of key or ciphertext pairs shall have 256 256-bit key or ciphertext pairs. Key i in each set 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 pair shall be the value that results in an all-zeros plaintext when decrypted with its corresponding key.</test>
                      <test>KAT-4. To test the encrypt functionality of AES-CBC, the evaluator shall supply the set of 128 plaintext values described below and obtain the two ciphertext values that result from AES-CBC encryption of the given plaintext using a 128-bit key value of all zeros with an IV of all zeros and using a 256-bit key value of all zeros with an IV of all zeros, respectively. Plaintext value i in each set shall have the leftmost i bits be ones and the rightmost 128-i bits be zeros, for i in [1,128].<htm:br/><htm:br/>To test the decrypt functionality of AES-CBC, the evaluator shall perform the same test as for encrypt, using ciphertext values of the same form as the plaintext in the encrypt test as input and AES-CBC decryption.</test>
                    </testlist>
                  </test>
                  <test>AES-CBC Multi-Block Message Test<htm:br/><htm:br/>The evaluator shall test the encrypt functionality by encrypting an i-block message where 1 &lt; i ‌&lt;= 10. The evaluator shall choose a 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. The ciphertext shall be compared to the result of encrypting the same plaintext message with the same key and IV using a known good implementation.<htm:br/><htm:br/>The evaluator shall also test the decrypt functionality for each mode by decrypting an i-block message where 1 &lt; i ‌&lt;= 10. The evaluator shall choose a key, an IV and a ciphertext message of length i blocks and decrypt the message, using the mode to be tested, with the chosen key and IV. The plaintext shall be compared to the result of decrypting the same ciphertext message with the same key and IV using a known good implementation.</test>
                  <test>AES-CBC Monte Carlo Tests<htm:br/><htm:br/>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 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 run as follows:<htm:br/><htm:br/><htm:pre># 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-CBC-Encrypt(Key, PT) PT = CT[i-1]</htm:pre> <htm:br/>The ciphertext computed in the 1000<htm:sup>th</htm:sup> iteration (i.e. CT[1000]) 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 good implementation.<htm:br/><htm:br/>The evaluator shall test the decrypt functionality using the same test as for encrypt, exchanging CT and PT and replacing AES-CBC-Encrypt with AES-CBC-Decrypt.</test>
                </testlist>
                <testlist>
                   <htm:b><htm:u>AES-CCM Tests</htm:u> </htm:b> 
                  <test>
                    The evaluator shall test the generation-encryption and decryption-verification functionality of AES-CCM for the following input parameter and tag lengths:<htm:br/><htm:br/><htm:ul style="list-style-type:none"><htm:li><htm:b>128 bit and 256 bit keys</htm:b> </htm:li> <htm:br/><htm:li><htm:b>Two payload lengths.</htm:b> One payload length shall be the shortest supported payload length, greater than or equal to zero bytes. The other payload length shall be the longest supported payload length, less than or equal to 32 bytes (256 bits).</htm:li> <htm:br/><htm:li><htm:b>Two or three associated data lengths.</htm:b> One associated data length shall be 0, if supported. One associated data length shall be the shortest supported payload length, greater than or equal to zero bytes. One associated data length shall be the longest supported payload length, less than or equal to 32 bytes (256 bits). If the implementation supports an associated data length of 2<htm:sup>16</htm:sup> bytes, an associated data length of 2<htm:sup>16</htm:sup> bytes shall be tested.</htm:li> <htm:br/><htm:li><htm:b>Nonce lengths.</htm:b> All supported nonce lengths between 7 and 13 bytes, inclusive, shall be tested.</htm:li> <htm:br/><htm:li><htm:b>Tag lengths.</htm:b> All supported tag lengths of 4, 6, 8, 10, 12, 14 and 16 bytes shall be tested.</htm:li> </htm:ul> To test the generation-encryption functionality of AES-CCM, the evaluator shall perform the following four tests:<htm:br/>To determine correctness in each of the above tests, the evaluator shall compare the ciphertext with the result of generation-encryption of the same inputs with a known good implementation.<htm:br/><htm:br/>To test the decryption-verification functionality of AES-CCM, for EACH combination of supported associated data length, payload length, nonce length and tag length, the 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 with the decrypted payload. The evaluator shall supply 10 tuples that should FAIL and 5 that should PASS per set of 15.
                    <testlist>
                      <test>For EACH supported key and associated data length and ANY supported payload, nonce and tag 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.</test>
                      <test>For EACH supported key and payload length and ANY supported associated data, nonce and tag 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.</test>
                      <test>For EACH supported key and nonce length and ANY supported associated data, payload and tag length, the evaluator shall supply one key value and 10 associated data, payload and nonce value 3-tuples and obtain the resulting ciphertext.</test>
                      <test>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.</test>
                    </testlist>
                  </test>
                </testlist>
                <testlist>
                   <htm:b><htm:u>AES-GCM Test</htm:u> </htm:b>  <htm:br/><htm:br/> The evaluator shall test the authenticated encrypt functionality of AES-GCM for each combination of the following input parameter lengths: <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:ul style="list-style-type:none"><htm:li><htm:b>128 bit and 256 bit keys</htm:b> </htm:li> <htm:br/><htm:li><htm:b>Two plaintext lengths.</htm:b> One of the plaintext lengths shall be a non-zero integer multiple of 128 bits, if supported. The other plaintext length shall not be an integer multiple of 128 bits, if supported.</htm:li> <htm:br/><htm:li><htm:b>Three AAD lengths.</htm:b> One AAD length shall be 0, if supported. One 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 bits, if supported.</htm:li> <htm:br/><htm:li><htm:b>Two IV lengths.</htm:b> If 96 bit IV is supported, 96 bits shall be one of the two IV lengths tested.</htm:li> </htm:ul>  <htm:br/><htm:br/> 
                  <test>The evaluator shall test the encrypt functionality using a set of 10 key, plaintext, AAD, and IV tuples for each combination of parameter lengths above and obtain the ciphertext value and tag that results from AES-GCM authenticated encrypt. Each supported tag length shall be tested at least once per set of 10. The IV value may be supplied by the evaluator or the implementation being tested, as long as it is known.</test>
                  <test>The evaluator shall test the decrypt functionality using a set of 10 key, ciphertext, tag, AAD, and IV 5-tuples for each combination of parameter lengths above and obtain a Pass/Fail result on authentication and the decrypted plaintext if Pass. The set shall include five tuples that Pass and five that Fail.</test>
                   <htm:br/><htm:br/> The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a known good implementation.
                </testlist>
                <testlist>
                   <htm:b><htm:u>XTS-AES Test</htm:u> </htm:b>  <htm:br/><htm:br/>  <htm:br/><htm:br/> 
                  <test>The evaluator shall test the encrypt functionality of XTS-AES for each combination of the following input parameter lengths:<htm:br/><htm:br/><htm:ul style="list-style-type:none"><htm:li><htm:b>256 bit (for AES-128) and 512 bit (for AES-256) keys</htm:b> </htm:li> <htm:br/><htm:li><htm:b>Three data unit (i.e. plaintext) lengths.</htm:b> One of the data unit lengths shall be a non-zero integer multiple of 128 bits, if supported. One of the data unit lengths shall be an integer multiple of 128 bits, if supported. The third data unit length shall be either the longest supported data unit length or 216 bits, whichever is smaller.</htm:li> <htm:br/></htm:ul> using a set of 100 (key, plaintext and 128-bit random tweak value) 3-tuples and obtain the ciphertext that results from XTS-AES encrypt.<htm:br/><htm:br/>The evaluator may supply a data unit sequence number instead of the tweak value if the implementation supports it. The data unit sequence number is a base-10 number ranging between 0 and 255 that implementations convert to a tweak value internally.</test>
                  <test>The evaluator shall test the decrypt functionality of XTS-AES using the same test as for encrypt, replacing plaintext values with ciphertext values and XTS-AES encrypt with XTS-AES decrypt.</test>
                </testlist>
                <testlist>
                   <htm:b><htm:u>AES Key Wrap (AES-KW) and Key Wrap with Padding (AES-KWP) Test</htm:u> </htm:b>  <htm:br/><htm:br/>  <htm:br/><htm:br/> 
                  <test>The evaluator shall test the authenticated encryption functionality of AES-KW for EACH combination of the following input parameter lengths:<htm:br/><htm:br/><htm:ul style="list-style-type:none"><htm:li><htm:b>128 and 256 bit key encryption keys (KEKs)</htm:b> </htm:li> <htm:br/><htm:li><htm:b>Three plaintext lengths.</htm:b> One of the plaintext lengths shall be two semi-blocks (128 bits). One of the plaintext lengths shall be three semi-blocks (192 bits). The third data unit length shall be the longest supported plaintext length less than or equal to 64 semi-blocks (4096 bits).</htm:li> </htm:ul> using a set of 100 key and plaintext pairs and obtain the ciphertext that results from AES-KW authenticated encryption. To determine correctness, the evaluator shall use the AES-KW authenticated-encryption function of a known good implementation.</test>
                  <test>The evaluator shall test the authenticated-decryption functionality of AES-KW using the same test as for authenticated-encryption, replacing plaintext values with ciphertext values and AES-KW authenticated-encryption with AES-KW authenticated-decryption.</test>
                  <test>The evaluator shall test the authenticated-encryption functionality of AES-KWP using the same test as for AES-KW authenticated-encryption with the following change in the three plaintext lengths:<htm:ul><htm:li>One plaintext length shall be one octet. One plaintext length shall be 20 octets (160 bits).</htm:li> <htm:br/><htm:li>One plaintext length shall be the longest supported plaintext length less than or equal to 512 octets (4096 bits).</htm:li> </htm:ul> </test>
                  <test>The evaluator shall test the authenticated-decryption functionality of AES-KWP using the same test as for AES-KWP authenticated-encryption, replacing plaintext values with ciphertext values and AES-KWP authenticated-encryption with AES-KWP authenticated-decryption.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_COP.1/HASH Cryptographic Operation-->
        <f-component cc-id="fcs_cop.1" id="fcs-cop-1-hash" name="Cryptographic Operation" iteration="HASH">
          <f-element id="fel-hash-how">
            <title>The TSF shall perform [ <htm:i>cryptographic hashing</htm:i>  ] in accordance with a specified cryptographic algorithm [  <htm:i>SHA-1 and <selectables><selectable id="s-sha-256">SHA-256</selectable><selectable id="s-sha-384">SHA-384</selectable><selectable id="s-sha-512">SHA-512</selectable><selectable id="fcs_cop.1.1_HASH_1" exclusive="yes">no other algorithms</selectable> </selectables> </htm:i>  ] and <htm:b>message digest</htm:b>  sizes [  <htm:i>160 and <selectables><selectable id="s-hash-size-256">256 bits</selectable><selectable id="s-hash-size-384">384 bits</selectable><selectable id="s-hash-size-512">512 bits</selectable><selectable id="fcs_cop.1.1_HASH_2" exclusive="yes">no other message digest sizes</selectable> </selectables> </htm:i>  ] that meet the following: [ <htm:i>FIPS Pub 180-4</htm:i>  ]. <rule id="r-sha256"><or><and><ref-id>s-sha-256 </ref-id> <ref-id>s-hash-size-256 </ref-id> </and> <and><not><ref-id>s-sha-256 </ref-id> </not> <not><ref-id>s-hash-size-256 </ref-id> </not> </and> </or> </rule>  <rule id="r-sha384"><or><and><ref-id>s-sha-384 </ref-id> <ref-id>s-hash-size-384 </ref-id> </and> <and><not><ref-id>s-sha-384 </ref-id> </not> <not><ref-id>s-hash-size-384 </ref-id> </not> </and> </or> </rule>  <rule id="r-sha512"><or><and><ref-id>s-sha-512 </ref-id> <ref-id>s-hash-size-512 </ref-id> </and> <and><not><ref-id>s-sha-512 </ref-id> </not> <not><ref-id>s-hash-size-512 </ref-id> </not> </and> </or> </rule> </title>
            <note role="application">Per NIST SP 800-131A, SHA-1 for generating digital signatures is no longer allowed, and SHA-1 for verification of digital signatures is strongly discouraged as there may be risk in accepting these signatures. It is expected that vendors will implement SHA-2 algorithms in accordance with SP 800-131A.<htm:br/><htm:br/>SHA-1 is currently required in order to comply with the<xref to="mod-wlanclient"/>  . Vendors are strongly encouraged to implement updated protocols that support the SHA-2 family; until updated protocols are supported, this PP allows support for SHA-1 implementations in compliance with SP 800-131A.<htm:br/><htm:br/>The intent of this requirement is to specify the hashing function. The hash selection must support the message digest size selection. The hash selection should be consistent with the overall strength of the algorithm used (for example, SHA 256 for 128-bit keys).<htm:br/><htm:br/>The TSF hashing functions can be implemented in one of two modes. The first mode is the byte­oriented mode. In this mode the 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 is divisible by 8. The second mode is the bit­oriented mode. In this mode the TSF hashes messages of arbitrary length. The TSF may implement either bit-oriented or byte-oriented; both implementations are not required.</note>
            <aactivity level="component">
              <TSS>The evaluator shall check that the association of the hash function with other TSF cryptographic functions (for example, the digital signature verification function) is documented in the TSS. The evaluator shall check that the TSS indicates if the hashing function is implemented in bit-oriented or byte-oriented mode.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator checks the AGD documents to determine that any configuration that is required to be done to configure the functionality for the required hash sizes is present.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following tests require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products. <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall perform all of the following tests for each hash algorithm implemented by the TSF and used to satisfy the requirements of this PP. As there are different tests for each mode, an indication is given in the following sections for the bit­oriented vs. the byte­oriented tests. <htm:br/><htm:br/> <htm:br/><htm:br/>
                <testlist>
                   <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:br/><htm:br/> 
                  <test><htm:i>Short Messages Test: Bit-oriented Mode</htm:i> <htm:br/>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 messages ranges sequentially from 0 to m bits. The message text shall be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is produced when the messages are provided to the TSF.</test>
                  <test><htm:i>Short Messages Test: Byte-oriented Mode</htm:i> <htm:br/>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 messages range sequentially from 0 to m/8 bytes, with each message being an integral number of bytes. The message text shall be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is produced when the messages are provided to the TSF.</test>
                  <test><htm:i>Selected Long Messages Test: Bit-oriented Mode</htm:i> <htm:br/>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<htm:sup>th</htm:sup> message is 512 + 99*i, where 1 ≤ i ≤ m. The message text shall be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is produced when the messages are provided to the TSF.</test>
                  <test><htm:i>Selected Long Messages Test: Byte-oriented Mode</htm:i> <htm:br/>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<htm:sup>th</htm:sup> message is 512 + 8*99*i, where 1 ≤ i ≤ m/8. The message text shall be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is produced when the messages are provided to the TSF.</test>
                  <test><htm:i>Pseudorandomly Generated Messages Test: Byte-oriented Mode</htm:i> <htm:br/>This test is for byte­oriented implementations only. The evaluators 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. The evaluators then formulate a set of 100 messages and associated digests by following the algorithm provided in Figure 1 of SHAVS. The evaluators then ensure that the correct result is produced when the messages are provided to the TSF.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_COP.1/KEYHMAC Cryptographic Operation-->
        <f-component cc-id="fcs_cop.1" id="fcs-cop-1-keyhmac" name="Cryptographic Operation" iteration="KEYHMAC">
          <f-element id="fel-keyed-hash-how">
            <title>The TSF shall perform [ <htm:i>keyed-hash message authentication</htm:i>  ] in accordance with a specified cryptographic algorithm [  <htm:i>HMAC-SHA-1 and <selectables><selectable id="fcs_cop.1.1_KEYHMAC_1">HMAC-SHA-256</selectable><selectable id="fcs_cop.1.1_KEYHMAC_2">HMAC-SHA-384</selectable><selectable id="fcs_cop.1.1_KEYHMAC_3">HMAC-SHA-512</selectable><selectable id="fcs_cop.1.1_KEYHMAC_4" exclusive="yes">no other algorithms</selectable> </selectables> </htm:i>  ] and cryptographic key sizes <assignable>key size (in bits) used in HMAC</assignable> <htm:b>and message digest sizes 160 and <selectables><selectable id="fcs_cop.1.1_KEYHMAC_6">256</selectable><selectable id="fcs_cop.1.1_KEYHMAC_7">384</selectable><selectable id="fcs_cop.1.1_KEYHMAC_8">512</selectable><selectable id="fcs_cop.1.1_KEYHMAC_9" exclusive="yes">no other</selectable> </selectables> bits</htm:b>  that meet the following: [ <htm:i>FIPS Pub 198-1, "The Keyed-Hash Message Authentication Code", and FIPS Pub 180-4, "Secure Hash Standard"</htm:i>  ].</title>
            <note role="application">The selection in this requirement must be consistent with the key size specified for the size of the keys used in conjunction with the keyed-hash message authentication. HMAC-SHA-1 is currently required in order to comply with the<xref to="mod-wlanclient"/>  .</note>
            <aactivity level="component">
              <TSS>The evaluator shall examine the TSS to ensure that it specifies the following values used by the HMAC function: key length, hash function used, block size, and output MAC length used.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests> <htm:b>Evaluation Activity Note:</htm:b>The following tests require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products. <htm:br/><htm:br/> <htm:br/><htm:br/>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 evaluator shall have the TSF generate HMAC tags for these sets of test data. The resulting MAC tags shall be compared to the result of generating HMAC tags with the same key and IV using a known good implementation.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_COP.1/SIGN Cryptographic Operation-->
        <f-component cc-id="fcs_cop.1" id="fcs-cop-1-sign" name="Cryptographic Operation" iteration="SIGN">
          <f-element id="fel-sign-how">
            <title>The TSF shall perform [ <htm:i>cryptographic signature services (generation and verification)</htm:i>  ] in accordance with a specified cryptographic algorithm <selectables linebreak="yes"><selectable id="s-sign-rsa">[<htm:i>RSA schemes</htm:i>]<htm:b>using</htm:b>cryptographic key sizes of [<htm:i>2048-bit or greater</htm:i>] that meet the following: [<htm:i>FIPS PUB 186-4, "Digital Signature Standard (DSS)", Section 4</htm:i>]</selectable><selectable id="s-sign-ecdsa">[<htm:i>ECDSA schemes</htm:i>]<htm:b>using</htm:b>[<htm:i>"NIST curves" P-384 and <selectables><selectable id="fcs_cop.1.1_SIGN_1">P-256</selectable><selectable id="fcs_cop.1.1_SIGN_2">P-521</selectable><selectable id="fcs_cop.1.1_SIGN_3" exclusive="yes">no other curves</selectable></selectables> </htm:i>] that meet the following: [<htm:i>FIPS PUB 186-4, "Digital Signature Standard (DSS)", Section 5</htm:i>]</selectable> </selectables>.</title>
            <note role="application">The ST author should choose the algorithm implemented to perform digital signatures; if more than one algorithm is available, this requirement should be iterated to specify the functionality. For the algorithm chosen, the ST author should make the appropriate assignments/selections to specify the parameters that are implemented for that algorithm.</note>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following tests require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products. <htm:br/><htm:br/> <htm:br/><htm:br/>
                <testlist>
                  <test>
                    <htm:b>[conditional] If<xref to="s-sign-ecdsa"/>  is selected in FCS_COP.1.1/SIGN</htm:b> <htm:br/>
                    <testlist>
                      <test><htm:b>ECDSA FIPS 186-4 Signature Generation Test</htm:b> <htm:br/>For each supported NIST curve (i.e. P-256, P-384 and P-521) and SHA function pair, the evaluator shall generate 10 1024-bit long messages and obtain for each message a public key and the resulting signature values R and S. To determine correctness, the evaluator shall use the signature verification function of a known good implementation.</test>
                      <test><htm:b>ECDSA FIPS 186-4 Signature Verification Test</htm:b> <htm:br/>For each supported NIST curve (i.e. P-256, P-384 and P-521) and SHA function pair, the evaluator shall generate a set of 10 1024-bit message, public key and signature tuples and modify one of the values (message, public key or signature) in five of the 10 tuples. The evaluator shall obtain in response a set of 10 PASS/FAIL values.</test>
                    </testlist>
                  </test>
                  <test>
                    <htm:b>[conditional] If<xref to="s-sign-rsa"/>  is selected in FCS_COP.1.1/SIGN</htm:b> <htm:br/>
                    <testlist>
                      <test><htm:b>Signature Generation Test</htm:b> <htm:br/>The evaluator shall verify the implementation of RSA Signature Generation by the TOE using the Signature Generation Test. To conduct this test the evaluator must generate or obtain 10 messages from a trusted reference implementation for each modulus size/SHA combination supported by the TSF. The evaluator shall have the TOE use their private key and modulus value to sign these messages.<htm:br/><htm:br/>The evaluator shall verify the correctness of the TSF’s signature using a known good implementation and the associated public keys to verify the signatures.</test>
                      <test><htm:b>Signature Verification Test</htm:b> <htm:br/>The evaluator shall perform the Signature Verification test to verify the ability of the TOE to recognize another party’s valid and invalid signatures. The evaluator shall inject errors into the test vectors produced during the Signature Verification Test by introducing errors in some of the public keys e, messages, IR format, or signatures. The TOE attempts to verify the signatures and returns success or failure.<htm:br/><htm:br/>The evaluator shall use these test vectors to emulate the signature verification test using the corresponding parameters and verify that the TOE detects these errors.</test>
                    </testlist>
                  </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_HTTPS_EXT.1 HTTPS Protocol-->
        <f-component cc-id="fcs_https_ext.1" id="fcs-https-ext-1" name="HTTPS Protocol">
          <comp-lev>requires the TSF to implement the HTTPS protocol in accordance with the specified standard, using TLS, and notifying the application if invalid.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Configuring whether to allow or disallow establishment of a trusted channel if the peer or server certificate is deemed invalid.</htm:li> </htm:ul> </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Failure of the certificate validity check.</htm:li> </htm:ul> </audit>
          <dependencies>FIA_X509_EXT.1 X.509 Validation of Certificates<htm:br/>FMT_SMF.1 Specification of Management Functions</dependencies>
          <f-element id="fel-https-how">
            <title>The TSF shall implement the HTTPS protocol that complies with RFC 2818.</title>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                <testlist>
                   <htm:br/><htm:br/> 
                  <test>The evaluator shall attempt to establish an 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 or HTTPS.<htm:br/><htm:br/>Other tests are performed in conjunction with testing in the<xref to="pkg-tls"/>  .<htm:br/><htm:br/>Certificate validity shall be tested in accordance with testing performed for FIA_X509_EXT.1, and the evaluator shall perform the following test:</test>
                  <test>The evaluator shall demonstrate that using a certificate without a valid certification path results in an application notification. Using the administrative guidance, the evaluator shall then load a certificate or certificates to the Trust Anchor Database needed to validate the certificate to be used in the function, and demonstrate that the function succeeds. The evaluator then shall delete one of the certificates, and show that the application is notified of the validation failure.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-https-tls">
            <title>The TSF shall implement HTTPS using TLS as defined in [ <htm:i>the<xref to="pkg-tls"/></htm:i>  ].</title>
            <ext-comp-def-title><title>The TSF shall implement HTTPS using TLS as defined in <assignable>specification that defines TLS implementation requirements </assignable> . </title> </ext-comp-def-title>
            <note role="application">The<xref to="pkg-tls"/>  must be included in the ST, with the following selections made:<htm:ul><htm:li>FCS_TLS_EXT.1:</htm:li> <htm:ul><htm:li>TLS must be selected</htm:li> <htm:li>Client must be selected</htm:li> </htm:ul> </htm:ul> </note>
          </f-element>
          <f-element id="fel-conn-notify">
            <title>The TSF shall notify the application and <selectables><selectable id="s-not-estab">not establish the connection</selectable><selectable id="s-req-app-auth">request application authorization to establish the connection</selectable><selectable id="s-no-other-action" exclusive="yes">no other action</selectable> </selectables> if the peer certificate is deemed invalid.</title>
            <ext-comp-def-title><title>The TSF shall notify the application and <assignable>a response </assignable> if the peer certificate is deemed invalid. </title> </ext-comp-def-title>
            <note role="application">Validity is determined by the certificate path, the expiration date, and the revocation status in accordance with RFC 5280.<htm:br/><htm:br/>If<xref to="s-not-estab"/>  is selected then "with no exceptions" must be selected for FCS_TLSC_EXT.1.3 in the<xref to="pkg-tls"/>  .<rule id="r-not-estab"><if><ref-id>s-not-estab </ref-id> </if> <then><doc ref="pkg-tls"><ref-id>s-tlsc-no-excep </ref-id> </doc> </then> </rule>  If<xref to="s-req-app-auth"/>  is selected then "except when override is authorized" must be selected for FCS_TLSC_EXT.1.3 in the Package for Transport Layer Security.<rule id="r-override"><if><ref-id>s-req-app-auth </ref-id> </if> <then><doc ref="pkg-tls"><ref-id>s-tlsc-override </ref-id> </doc> </then> </rule>  If<xref to="s-no-other-action"/>  is selected either selection can be made in FCS_TLSC_EXT.1.3.<htm:br/><htm:br/>FMT_SMF.1 Function<xref to="mf-certInvalid"/>  configures whether to allow or disallow the establishment of a trusted channel if the peer certificate is deemed invalid.</note>
          </f-element>
          <audit-event>
            <audit-event-descr>Failure of the certificate validity check.</audit-event-descr>
            <audit-event-info>Issuer Name and Subject Name of certificate</audit-event-info>
            <audit-event-info>
              <selectables onlyone="yes">
                <selectable>User’s authorization decision</selectable>
                <selectable>No additional information</selectable>
              </selectables>
            </audit-event-info>
          </audit-event>
        </f-component>
        <!--FCS_IV_EXT.1 Initialization Vector Generation-->
        <f-component cc-id="fcs_iv_ext.1" id="fcs-iv-ext-1" name="Initialization Vector Generation">
          <comp-lev>requires the TSF to generate IVs in accordance with a set of approved modes.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-ivs-how">
            <title>The TSF shall generate IVs in accordance with [ <htm:i><xref to="ivtable"/> : References and IV Requirements for NIST-approved Cipher Modes</htm:i>  ].</title>
            <ext-comp-def-title><title>The TSF shall generate IVs in accordance with <assignable>standard or specification for IV generation </assignable> . </title> </ext-comp-def-title>
            <note role="application"><xref to="ivtable"/>  lists the requirements for composition of IVs according to the NIST Special Publications for each cipher mode. The composition of IVs generated for encryption according to a cryptographic protocol is addressed by the protocol. Thus, this requirement addresses only IVs generated for key storage and data storage encryption.</note>
            <aactivity level="component">
              <TSS>The evaluator shall examine the key hierarchy section of the TSS to ensure that the encryption of all keys is described and the formation of the IVs for each key encrypted by the same KEK meets FCS_IV_EXT.1.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_RBG_EXT.1 Random Bit Generation-->
        <f-component cc-id="fcs_rbg_ext.1" id="fcs-rbg-ext-1" name="Random Bit Generation">
          <comp-lev>requires the TSF to generate random data with a certain amount of entropy and in accordance with applicable standards.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Failure of the randomization process.</htm:li> </htm:ul> </audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-rbg-how">
            <title>The TSF shall perform all deterministic random bit generation services in accordance with NIST Special Publication 800-90A using <selectables><selectable id="fcs_rbg_ext.1.1_1">Hash_DRBG (any)</selectable><selectable id="fcs_rbg_ext.1.1_2">HMAC_DRBG (any)</selectable><selectable id="fcs_rbg_ext.1.1_3">CTR_DRBG (AES)</selectable> </selectables>.</title>
            <ext-comp-def-title><title>The TSF shall perform all deterministic random bit generation services in accordance with NIST Special Publication 800-90A using <assignable>list of DRBG algorithms </assignable> . </title> </ext-comp-def-title>
            <aactivity level="component">
              The evaluator shall verify that the API documentation provided according to<xref to="adv"/>  , includes the security functions described in FCS_RBG_EXT.1.3.
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall also confirm that the operational guidance contains appropriate instructions for configuring the RNG functionality.<htm:br/><htm:br/></Guidance>
              <Tests> <htm:b>Evaluation Activity Note:</htm:b>The following tests require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products. <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall perform 15 trials for the RNG implementation. If the RNG is configurable, the evaluator shall perform 15 trials for each configuration. <htm:br/><htm:br/> <htm:br/><htm:br/>If the RNG has prediction resistance enabled, each trial consists of (1) instantiate DRBG, (2) generate the first block of random bits (3) generate a second block of random bits (4) uninstantiate. The evaluator 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 a count (0 – 14). The next three are entropy input, nonce, and personalization string for the instantiate operation. The next two are 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 generate. These values are randomly generated. "generate one block of random bits" means to generate random bits with number of returned bits equal to the Output Block Length (as defined in NIST SP800-90A). <htm:br/><htm:br/> <htm:br/><htm:br/>If the RNG does not have prediction resistance, each trial consists of (1) instantiate DRBG, (2) generate the first block of random bits (3) reseed, (4) generate a second block of random bits (5) uninstantiate. The evaluator 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 a count (0 – 14). The next three are entropy input, nonce, and personalization string for the instantiate operation. The 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 reseed. The final value is additional input to the second generate call. <htm:br/><htm:br/> <htm:br/><htm:br/>The following paragraphs contain more information on some of the input values to be generated/selected by the evaluator. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:ul style="list-style-type:none"><htm:li><htm:b>Entropy input:</htm:b> the length of the entropy input value must equal the seed length.</htm:li> <htm:li><htm:b>Nonce:</htm:b> If a nonce is supported (CTR_DRBG with no Derivation Function does not use a nonce), the nonce bit length is one-half the seed length.</htm:li> <htm:li><htm:b>Personalization string:</htm:b> The length of the personalization string must be ࣘ seed length. If the implementation only supports one personalization string length, then the same length can be used for both values. If more than one string length is support, the evaluator shall use personalization strings of two different lengths. If the implementation does not use a personalization string, no value needs to be supplied.</htm:li> <htm:li><htm:b>Additional input:</htm:b> the additional input bit lengths have the same defaults and restrictions as the personalization string lengths.</htm:li> </htm:ul></Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-rbg-seed">
            <title>The deterministic RBG shall be seeded by an entropy source that accumulates entropy from <selectables><selectable id="fcs_rbg_ext.1.2_1">a software-based noise source</selectable><selectable id="fcs_rbg_ext.1.2_2">TSF-hardware-based noise source</selectable> </selectables> with a minimum of <selectables><selectable id="fcs_rbg_ext.1.2_3">128 bits</selectable><selectable id="s-rbg-256">256 bits</selectable> </selectables> of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.</title>
            <ext-comp-def-title><title>The deterministic RBG shall be seeded by an entropy source that accumulates entropy from <assignable>list of sources of random </assignable> with a minimum of <assignable>number of bits </assignable> of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate. </title> </ext-comp-def-title>
          </f-element>
          <f-element id="fel-rbg-give">
            <title>The TSF shall be capable of providing output of the RBG to applications running on the TSF that request random bits.</title>
            <note role="application">SP 800-90A contains three different methods of generating random numbers; each of these, in turn, depends on underlying cryptographic primitives (hash functions/ciphers). The ST author will select the function used, and include the specific underlying cryptographic primitives used in the requirement or in the TSS. While any of the identified hash functions (SHA-224, SHA-256, SHA-384, SHA-512) are allowed for Hash_DRBG or HMAC_DRBG, only AES-based implementations for CTR_DRBG are allowed.<htm:br/><htm:br/>The ST author must also ensure that any underlying functions are included in the baseline requirements for the TOE.<htm:br/><htm:br/>Health testing of the DRBGs is performed in conjunction with the self-tests required in FPT_TST_EXT.1.1.<htm:br/><htm:br/>For the selection in FCS_RBG_EXT.1.2, the ST author selects the appropriate number of bits of entropy that corresponds to the greatest security strength of the algorithms included in the ST. Security strength is defined in Tables 2 and 3 of NIST SP 800-57A. For example, if the implementation includes 2048-bit RSA (security strength of 112 bits), AES 128 (security strength 128 bits), and HMAC-SHA-256 (security strength 256 bits), then the ST author would select 256 bits.<htm:br/><htm:br/>The ST author may select either software or hardware noise sources. A hardware noise source is a component that produces data that cannot be explained by a deterministic rule, due to its physical nature. In other words, a hardware based noise source generates sequences of random numbers from a physical process that cannot be predicted. For example, a sampled ring oscillator consists of an odd number of inverter gates chained into a loop, with an electrical pulse traveling from inverter to inverter around the loop. The inverters are not clocked, so the precise time required for a complete circuit around the loop varies 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 approximate natural frequency that contains drift and jitter over time. The output of the ring oscillator consists of the oscillating binary value sampled at a constant rate from one of the inverters – a rate that is significantly slower than the oscillator’s natural frequency.</note>
          </f-element>
          <audit-event>
            <audit-event-descr>Failure of the randomization process</audit-event-descr>
          </audit-event>
        </f-component>
        <!--FCS_RBG_EXT.2 Random Bit Generator State Preservation-->
        <f-component cc-id="fcs_rbg_ext.2" id="fcs-rbg-ext-2" name="Random Bit Generator State Preservation" status="objective">
          <comp-lev>requires the TSF to save and restore the state of the RBG when powering off and starting up.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_RBG_EXT.1 Random Bit Generation</dependencies>
          <f-element id="fel-rbg-state-preserve">
            <title>The TSF shall save the state of the deterministic RBG at power-off, and shall use this state as input to the deterministic RBG at startup.</title>
            <note role="application">The capability to add the state saved at power-off as input to the RBG prevents an RBG that is slow to gather entropy from producing the same output regularly and across reboots. Since there is no guarantee of the protections provided when the state is stored (or a requirement for any such protection), it is assumed that the state is 'known', and therefore cannot contribute entropy to the RBG, but can introduce enough variation that the initial RBG values are not predictable and exploitable.</note>
            <aactivity level="component">
              <TSS>The evaluation activity for this requirement is captured in the RBG documentation for<xref to="entropy"/>  . The evaluator shall verify that the 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 any protection measures used for the state while the TOE is powered off.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_RBG_EXT.3 Support for Personalization String-->
        <f-component cc-id="fcs_rbg_ext.3" id="fcs-rbg-ext-3" name="Support for Personalization String" status="objective">
          <comp-lev>requires the TSF to support a personalization string as a DRBG input parameter.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_RBG_EXT.1 Random Bit Generation</dependencies>
          <f-element id="fel-rbg-person-string">
            <title>The TSF shall allow applications to add data to the deterministic RBG using the Personalization String as defined in SP 800-90A.</title>
            <note role="application">As specified in SP 800-90A, the TSF must not count data input from an application towards the entropy required by FCS_RBG_EXT.1. Thus, the TSF must not allow the only input to the RBG seed to be from an application.</note>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall write, or the developer shall provide, an application that adds data to the RBG via the Personalization String. The evaluator shall verify that the request succeeds.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_SRV_EXT.1 Cryptographic Algorithm Services-->
        <f-component cc-id="fcs_srv_ext.1" id="fcs-srv-ext-1" name="Cryptographic Algorithm Services">
          <comp-lev>requires the TSF to have externally-accessible cryptographic services for making algorithm functions available to applications.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_CKM.1 Cryptographic Key Generation<htm:br/>FCS_COP.1 Cryptographic Operation</dependencies>
          <f-element id="fel-crypt-service">
            <title>The TSF shall provide a mechanism for applications to request the TSF to perform the following cryptographic operations: [  <htm:i><htm:ul><htm:li>All mandatory and <selectables><selectable id="fcs_srv_ext.1.1_1">selected algorithms</selectable><selectable id="fcs_srv_ext.1.1_2">selected algorithms with the exception of ECC over curve 25519-based algorithms</selectable> </selectables> in FCS_CKM.2/LOCKED</htm:li> <htm:li>The following algorithms in FCS_COP.1/ENCRYPT: AES-CBC, <selectables><selectable id="fcs_srv_ext.1.1_3">AES Key Wrap</selectable><selectable id="fcs_srv_ext.1.1_4">AES Key Wrap with Padding</selectable><selectable id="fcs_srv_ext.1.1_5">AES-GCM</selectable><selectable id="fcs_srv_ext.1.1_6">AES-CCM</selectable><selectable id="fcs_srv_ext.1.1_7" exclusive="yes">no other modes</selectable> </selectables> </htm:li> <htm:li>All selected algorithms in FCS_COP.1/SIGN</htm:li> <htm:li>All mandatory and selected algorithms in FCS_COP.1/HASH</htm:li> <htm:li>All mandatory and selected algorithms in FCS_COP.1/KEYHMAC</htm:li> <htm:li> <selectables linebreak="yes"><selectable id="fcs_srv_ext.1.1_8">All mandatory and <selectables><selectable id="fcs_srv_ext.1.1_9">selected algorithms</selectable><selectable id="fcs_srv_ext.1.1_10">selected algorithms with the exception of ECC over curve 25519-based algorithms</selectable></selectables> in FCS_CKM.1</selectable><selectable id="fcs_srv_ext.1.1_11">The selected algorithms in FCS_COP.1<htm:b>/CONDITION</htm:b></selectable><selectable id="fcs_srv_ext.1.1_12" exclusive="yes">No other cryptographic operations</selectable> </selectables> </htm:li> </htm:ul></htm:i>  ].</title>
            <ext-comp-def-title><title>The TSF shall provide a mechanism for applications to request the TSF to perform the following cryptographic operations: <assignable>cryptographic operations defined by the TSF in FCS_CKM.1 or FCS_COP.1 </assignable> </title> </ext-comp-def-title>
            <note role="application">For each of the listed FCS components in the bulleted list, the intent is that the TOE will make available all algorithms specified for that component in the ST. For example, if for FCS_COP.1/HASH the ST author selects SHA-256, then the TOE would have to make available an interface to perform SHA-1 (the "mandatory" portion of FCS_COP.1/HASH) and SHA-256 (the "selected" portion of FCS_COP.1/HASH).<htm:br/><htm:br/>The exception is for FCS_COP.1/ENCRYPT. The 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 perform TSF-related functions. It is acceptable for the platform to not provide AES Key Wrap (KW) and AES Key Wrap with Padding (KWP) to applications even if selected in FCS_COP.1/ENCRYPT.However, the ST author is expected to select AES-GCM or AES-CCM if it is selected in the ST for the FCS_COP.1/ENCRYPT component.</note>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>The evaluator shall write, or the developer shall provide access to, an application that requests cryptographic operations by the TSF. The evaluator shall verify that the results from the operation match the expected results according to the API documentation. This application may be used to assist in verifying the cryptographic operation Evaluation Activities for the other algorithm services requirements.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_SRV_EXT.2 Cryptographic Key Storage Services-->
        <f-component cc-id="fcs_srv_ext.2" id="fcs-srv-ext-2" name="Cryptographic Key Storage Services" status="objective">
          <comp-lev>requires the TSF to support its stored keys being usable by external applications through cryptographic algorithm services.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_COP.1 Cryptographic Operation</dependencies>
          <f-element id="fel-crypt-service-extra">
            <title>The TSF shall provide a mechanism for applications to request the TSF to perform the following cryptographic operations: [ <htm:i><htm:ul><htm:li>Algorithms in FCS_COP.1/ENCRYPT</htm:li> <htm:li>Algorithms in FCS_COP.1/SIGN</htm:li> </htm:ul></htm:i>  ] by keys stored in the secure key storage.</title>
            <ext-comp-def-title><title>The TSF shall provide a mechanism for applications to request the TSF to perform the following cryptographic operations: <assignable>cryptographic operations defined by the TSF in FCS_COP.1 </assignable> by keys stored in the secure key storage. </title> </ext-comp-def-title>
            <note role="application">The TOE will, therefore, be required to perform cryptographic operations on behalf of applications using the keys stored in the TOE’s secure key storage.</note>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>The evaluator shall write, or the developer shall provide access to, an application that requests cryptographic operations of stored keys by the TSF. The evaluator shall verify that the results from the operation match the expected results according to the API documentation. The evaluator shall use these APIs to test the functionality of the secure key storage according to the Evaluation Activities in FCS_STG_EXT.1.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
      </section>
      <!--5.1.3 Class: Cryptographic Storage (FCS_STG_EXT)-->
      <section id="fcs_stg_ext" title="Class: Cryptographic Storage (FCS_STG_EXT)">
        The following requirements describe how keys are protected. All keys must ultimately be protected by a REK, and may optionally be protected by the user’s authentication factor. Each key’s confidentiality and integrity must be protected. This section also describes the secure key storage services to be provided by the Mobile Device for use by applications and users, applying the same level of protection for these keys as keys internal to the OS.
        <!--FCS_STG_EXT.1 Cryptographic Key Storage-->
        <f-component cc-id="fcs_stg_ext.1" id="fcs-stg-ext-1" name="Cryptographic Key Storage">
          <comp-lev>requires the TSF to implement a secure key storage and defines the access restrictions to be enforced on this.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Importing keys or secrets into the secure key storage.</htm:li> <htm:li>Destroying imported keys or secrets in the secure key storage.</htm:li> <htm:li>Approving exceptions for shared use of keys or secrets by multiple applications.</htm:li> <htm:li>Approving exceptions for destruction of keys or secrets by applications that did not import the key or secret</htm:li> </htm:ul> </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Import or destruction of key.</htm:li> <htm:li>Exceptions to use and destruction rules.</htm:li> </htm:ul> </audit>
          <dependencies>[FCS_CKM.1 Cryptographic Key Generation, or<htm:br/>FDP_ITC.1 Import of User Data without Security Attributes, or<htm:br/>FDP_ITC.2 Import of User Data with Security Attributes]<htm:br/>FMT_SMR.1 Security Roles</dependencies>
          <f-element id="fel-key-store">
            <title>The TSF shall provide <selectables><selectable id="fcs_stg_ext.1.1_1">mutable hardware</selectable><selectable id="s-software-store">software-based</selectable> </selectables> secure key storage for asymmetric private keys and <selectables><selectable id="fcs_stg_ext.1.1_2">symmetric keys</selectable><selectable id="fcs_stg_ext.1.1_3">persistent secrets</selectable><selectable id="fcs_stg_ext.1.1_4" exclusive="yes">no other keys</selectable> </selectables>.</title>
            <ext-comp-def-title><title>The TSF shall provide <assignable>storage medium </assignable> secure key storage for asymmetric private keys and <assignable>list of secrets </assignable> . </title> </ext-comp-def-title>
            <note role="application">A hardware keystore can be exposed to the TSF through a variety of interfaces, including embedded on the motherboard, USB, microSD, and Bluetooth.<htm:br/><htm:br/>Immutable hardware is considered outside of this requirement and will be covered elsewhere.<htm:br/><htm:br/>If the secure key storage is implemented in software that is protected as required by FCS_STG_EXT.2, the ST author must select<xref to="s-software-store"/>  . If<xref to="s-software-store"/>  is selected, the ST author must select<xref to="s-all-software-key-store"/>  in FCS_STG_EXT.2.1.<rule id="r-store"><if><ref-id>s-software-store </ref-id> </if> <then><ref-id>s-all-software-key-store </ref-id> </then> </rule>  <htm:br/><htm:br/>Support for secure key storage for all symmetric keys and persistent secrets will be required in future revisions.</note>
            <aactivity level="component">
              <TSS>The evaluator shall review the TSS to determine that the TOE implements the required secure key storage. The evaluator shall ensure that the TSS contains a description of the key storage mechanism that justifies the selection of "mutable hardware" or "software-based".<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall review the AGD guidance to determine that it describes the steps needed to import or destroy keys or secrets.<htm:br/><htm:br/></Guidance>
              <Tests>
                The evaluator shall test the functionality of each security function:
                <testlist>
                   <htm:br/><htm:br/>  <htm:br/><htm:br/> 
                  <test>The evaluator shall import keys or secrets of each supported type according to the AGD guidance. The evaluator shall write, or the developer shall provide access to, an application that generates a key or secret of each supported type and calls the import functions. The evaluator shall verify that no errors occur during import.</test>
                  <test>The evaluator shall write, or the developer shall provide access to, an application that uses an imported key or secret:<htm:br/><htm:ul><htm:li>For RSA, the secret shall be used to sign data.</htm:li> <htm:li>For ECDSA, the secret shall be used to sign data</htm:li> </htm:ul> <htm:br/>In the future additional types will be required to be tested:<htm:br/><htm:ul><htm:li>For symmetric algorithms, the secret shall be used to encrypt data.</htm:li> <htm:li>For persistent secrets, the secret shall be compared to the imported secret.</htm:li> </htm:ul> <htm:br/>The evaluator shall repeat this test with the application-imported keys or secrets and a different application’s imported keys or secrets. The evaluator shall verify that the TOE requires approval before allowing the application to use the key or secret imported by the user or by a different application:<htm:br/><htm:ul><htm:li>The evaluator shall deny the approvals to verify that the application is not able to use the key or secret as described.</htm:li> <htm:li>The evaluator shall repeat the test, allowing the approvals to verify that the application is able to use the key or secret as described.</htm:li> </htm:ul> <htm:br/>If the ST author has selected "common application developer", this test is performed by either using applications from different developers or appropriately (according to API documentation) not authorizing sharing.</test>
                  <test>The evaluator shall destroy keys or secrets of each supported type according to the AGD guidance. The evaluator shall write, or the developer shall provide access to, an application that destroys an imported key or secret.<htm:br/><htm:br/>The evaluator shall repeat this test with the application-imported keys or secrets and a different application’s imported keys or secrets. The evaluator shall verify that the TOE requires approval before allowing the application to destroy the key or secret imported by the administrator or by a different application:<htm:br/><htm:br/><htm:ul><htm:li>The evaluator shall deny the approvals and verify that the application is still able to use the key or secret as described.</htm:li> <htm:li>The evaluator shall repeat the test, allowing the approvals and verifying that the application is no longer able to use the key or secret as described.</htm:li> </htm:ul> <htm:br/>If the ST author has selected "common application developer", this test is performed by either using applications from different developers or appropriately (according to API documentation) not authorizing sharing.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-key-import">
            <title>The TSF shall be capable of importing keys or secrets into the secure key storage upon request of <selectables><selectable id="import-user">the user</selectable><selectable id="s-import-admin">the administrator</selectable> </selectables> and <selectables><selectable id="fcs_stg_ext.1.2_1">applications running on the TSF</selectable><selectable id="fcs_stg_ext.1.2_2" exclusive="yes">no other subjects</selectable> </selectables>.</title>
            <ext-comp-def-title><title>The TSF shall be capable of importing keys or secrets into the secure key storage upon request of <assignable>list of users </assignable> and <assignable>list of other subjects </assignable> . </title> </ext-comp-def-title>
            <note role="application">If the ST selects only<xref to="import-user"/>  , the ST author must select function<xref to="mf-keyStorage"/>  in FMT_MOF_EXT.1.1.</note>
          </f-element>
          <f-element id="fel-keystore-kill">
            <title>The TSF shall be capable of destroying keys or secrets in the secure key storage upon request of <selectables><selectable id="fcs_stg_ext.1.3_1">the user</selectable><selectable id="fcs_stg_ext.1.3_2">the administrator</selectable> </selectables>.</title>
            <note role="application">If the ST selects<xref to="import-user"/>  , the ST author must select function<xref to="mf-keyWipe"/>  in FMT_MOF_EXT.1.1.</note>
          </f-element>
          <f-element id="fel-keystore-who-access">
            <title>The TSF shall have the capability to allow only the application that imported the key or secret the use of the key or secret. Exceptions may only be explicitly authorized by <selectables><selectable id="fcs_stg_ext.1.4_1">the user</selectable><selectable id="fcs_stg_ext.1.4_2">the administrator</selectable><selectable id="fcs_stg_ext.1.4_3">a common application developer</selectable> </selectables>.</title>
            <note role="application">If the ST selects<xref to="import-user"/>  or<xref to="s-import-admin"/>  , the ST author must also select<xref to="mf-sharedKeys"/>  in FMT_SMF.1.1. If the ST selects<xref to="import-user"/>  , the ST author must select function<xref to="mf-sharedKeys"/>  in FMT_MOF_EXT.1.1.</note>
          </f-element>
          <f-element id="fel-keystore-who-kill">
            <title>The TSF shall allow only the application that imported the key or secret to request that the key or secret be destroyed. Exceptions may only be explicitly authorized by <selectables><selectable id="s-killkey-user">the user</selectable><selectable id="s-killkey-admin">the administrator</selectable><selectable id="fcs_stg_ext.1.5_1">a common application developer</selectable> </selectables>.</title>
            <ext-comp-def-title><title>The TSF shall allow only the application that imported the key or secret to request that the key or secret be destroyed. Exceptions may only be explicitly authorized by <assignable>list of subjects </assignable> . </title> </ext-comp-def-title>
            <note role="application">If the ST selects<xref to="s-killkey-user"/>  or<xref to="s-killkey-admin"/>  , the ST author must also select function<xref to="mf-keyWipeRules"/>  in FMT_SMF.1.1. If the ST selects only<xref to="s-killkey-user"/>  , the ST author must select function<xref to="mf-keyWipeRules"/>  in FMT_MOF_EXT.1.1.</note>
          </f-element>
          <audit-event>
            <audit-event-descr>Import or destruction of key</audit-event-descr>
            <audit-event-info>Identity of key, role and identity of requester</audit-event-info>
          </audit-event>
          <audit-event>
            <audit-event-descr>
              <selectables onlyone="yes">
                <selectable>Exceptions to use and destruction rules</selectable>
                <selectable>none</selectable>
              </selectables>
            </audit-event-descr>
            <audit-event-info>Identity of key, role and identity of requester</audit-event-info>
          </audit-event>
        </f-component>
        <!--FCS_STG_EXT.2 Encrypted Cryptographic Key Storage-->
        <f-component cc-id="fcs_stg_ext.2" id="fcs-stg-ext-2" name="Encrypted Cryptographic Key Storage">
          <comp-lev>requires the TSF to implement confidentiality measures to protect the key storage.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_COP.1 Cryptographic Operation<htm:br/>FCS_STG_EXT.1 Cryptographic Key Storage</dependencies>
          <f-element id="fel-encrypt-key-what">
            <title>The TSF shall encrypt all DEKs, KEKs, <assignable>any long-term trusted channel key material</assignable> and <selectables><selectable id="s-all-software-key-store">all software-based key storage</selectable><selectable id="fcs_stg_ext.2.1_2" exclusive="yes">no other keys</selectable> </selectables> by KEKs that are <selectables linebreak="yes"><selectable id="fcs_stg_ext.2.1_3">Protected by the REK with <selectables linebreak="yes"><selectable id="fcs_stg_ext.2.1_4">encryption by a REK</selectable><selectable id="fcs_stg_ext.2.1_5">encryption by a KEK chaining from a REK</selectable><selectable id="fcs_stg_ext.2.1_6">encryption by a KEK that is derived from a REK</selectable></selectables> </selectable><selectable id="fcs_stg_ext.2.1_7">Protected by the REK and the password with <selectables linebreak="yes"><selectable id="fcs_stg_ext.2.1_8">encryption by a REK and the password-derived KEK</selectable><selectable id="fcs_stg_ext.2.1_9">encryption by a KEK chaining to a REK and the password-derived or biometric-unlocked KEK</selectable><selectable id="fcs_stg_ext.2.1_10">encryption by a KEK that is derived from a REK and the password-derived or biometric-unlocked KEK</selectable></selectables> </selectable> </selectables>.</title>
            <ext-comp-def-title><title>The TSF shall encrypt all DEKs, KEKs, <assignable>any long-term trusted channel key material </assignable> and <assignable>other secrets </assignable> by KEKs that are <assignable>protection mechanism </assignable> . </title> </ext-comp-def-title>
            <note role="application">The ST author must select<xref to="s-all-software-key-store"/>  if<xref to="s-software-store"/>  is selected in FCS_STG_EXT.1.1. If the ST author selects<xref to="mutable_hardware"/>  in FCS_STG_EXT.1.1, the secure key storage is not subject to this requirement. REKs are not subject to this requirement.<htm:br/><htm:br/>A REK and the password-derived KEK may be combined to form a combined KEK (as described in FCS_CKM_EXT.3) in order to meet this requirement.<htm:br/><htm:br/>Software-based key storage must be protected by the password or biometric and REK.<htm:br/><htm:br/>All keys must ultimately be protected by a REK. In particular,<xref to="Keys"/>  has KEKs protected according to these requirements: DEK_1 meets the "encryption by a REK and the password-derived KEK" case and would be appropriate for sensitive data, DEK_2 meets the "encryption by a KEK chaining from a REK" case and would not be appropriate for sensitive data, K_1 meets the "encryption by a REK" case and is not considered a sensitive key, and K_2 meets the "encryption by a KEK chaining to a REK and the password-derived or biometric-unlocked KEK" case and is considered a sensitive key.<htm:br/><htm:br/>Long-term trusted channel key material includes Wi-Fi (PSKs), IPsec (PSKs and client certificates) and Bluetooth keys. These keys must not be protected by the password, as they may be necessary in the locked state. For clarity, the ST author must assign any Long-term trusted channel key material supported by the TOE . At a minimum, a TOE must support at least Wi-Fi and Bluetooth keys.</note>
            <aactivity level="component">
              <TSS>The evaluator shall examine the key hierarchy description in the TSS section to verify that each DEK and software-stored key is encrypted according to FCS_STG_EXT.2.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-encrypt-key-how">
            <title>DEKs, KEKs, <assignable>any long-term trusted channel key material</assignable> and <selectables><selectable id="fcs_stg_ext.2.2_2">all software-based key storage</selectable><selectable id="fcs_stg_ext.2.2_3" exclusive="yes">no other keys</selectable> </selectables> shall be encrypted using one of the following methods: <selectables><selectable id="fcs_stg_ext.2.2_4">using a SP800-56B key establishment scheme</selectable><selectable id="fcs_stg_ext.2.2_5">using AES in the <selectables><selectable id="fcs_stg_ext.2.2_6">Key Wrap (KW) mode</selectable><selectable id="fcs_stg_ext.2.2_7">Key Wrap with Padding (KWP) mode</selectable><selectable id="fcs_stg_ext.2.2_8">GCM</selectable><selectable id="fcs_stg_ext.2.2_9">CCM</selectable><selectable id="fcs_stg_ext.2.2_10">CBC mode</selectable></selectables> </selectable> </selectables>.</title>
            <note role="application">The ST author selects which key encryption schemes are used by the TOE. This requirement refers only to KEKs as defined this PP and does not refer to those KEKs specified in other standards. The ST author must assign the same Long-term trusted channel key material assigned in FCS_STG_EXT.2.1.</note>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FCS_STG_EXT.3 Integrity of Encrypted Key Storage-->
        <f-component cc-id="fcs_stg_ext.3" id="fcs-stg-ext-3" name="Integrity of Encrypted Key Storage">
          <comp-lev>requires the TSF to implement integrity measures to protect the key storage.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Failure to verify the integrity of stored key.</htm:li> </htm:ul> </audit>
          <dependencies>FCS_COP.1 Cryptographic Operation<htm:br/>FCS_STG_EXT.2 Encrypted Cryptographic Key Storage</dependencies>
          <f-element id="fel-protect-key-what">
            <title>The TSF shall protect the integrity of any encrypted DEKs and KEKs and <selectables><selectable id="fcs_stg_ext.3.1_1">long-term trusted channel key material</selectable><selectable id="fcs_stg_ext.3.1_2">all software-based key storage</selectable><selectable id="fcs_stg_ext.3.1_3" exclusive="yes">no other keys</selectable> </selectables> by <selectables linebreak="yes"><selectable id="fcs_stg_ext.3.1_4"> <selectables><selectable id="fcs_stg_ext.3.1_5">GCM</selectable><selectable id="fcs_stg_ext.3.1_6">CCM</selectable><selectable id="fcs_stg_ext.3.1_7">Key Wrap</selectable><selectable id="fcs_stg_ext.3.1_8">Key Wrap with Padding</selectable></selectables> cipher mode for encryption according to FCS_STG_EXT.2</selectable><selectable id="fcs_stg_ext.3.1_9">a hash (FCS_COP.1<htm:b>/HASH</htm:b>) of the stored key that is encrypted by a key protected by FCS_STG_EXT.2</selectable><selectable id="fcs_stg_ext.3.1_10">a keyed hash (FCS_COP.1<htm:b>/KEYHMAC</htm:b>) using a key protected by a key protected by FCS_STG_EXT.2</selectable><selectable id="fcs_stg_ext.3.1_11">a digital signature of the stored key using an asymmetric key protected according to FCS_STG_EXT.2</selectable><selectable id="fcs_stg_ext.3.1_12">an immediate application of the key for decrypting the protected data followed by a successful verification of the decrypted data with previously known information</selectable> </selectables>.</title>
            <ext-comp-def-title><title>The TSF shall protect the integrity of any encrypted DEKs and KEKs and <selectables><selectable>long-term trusted channel key material </selectable> <selectable>all software-based key storage </selectable> <selectable exclusive="yes">no other keys </selectable> </selectables> by <selectables linebreak="yes"><selectable><selectables><selectable>GCM </selectable> <selectable>CCM </selectable> <selectable>Key Wrap </selectable> <selectable>Key Wrap with Padding </selectable> </selectables> cipher mode for encryption according to FCS_STG_EXT.2 </selectable> <selectable>a hash (FCS_COP.1) of the stored key that is encrypted by a key protected by FCS_STG_EXT.2 </selectable> <selectable>a keyed hash (FCS_COP.1) using a key protected by a key protected by FCS_STG_EXT.2 </selectable> <selectable>a digital signature of the stored key using an asymmetric key protected according to FCS_STG_EXT.2 </selectable> <selectable>an immediate application of the key for decrypting the protected data followed by a successful verification of the decrypted data with previously known information </selectable> </selectables> . </title> </ext-comp-def-title>
            <note role="application">The ST author must assign the same Long-term trusted channel key material assigned in FCS_STG_EXT.2.1.</note>
            <aactivity level="component">
              <TSS>The evaluator shall examine the key hierarchy description in the TSS section to verify that each encrypted key is integrity protected according to one of the options in FCS_STG_EXT.3.<htm:br/><htm:br/>The evaluator shall also ensure that the documentation of the product's encryption key management is detailed enough that, after reading, the product's key management hierarchy is clear and that it meets the requirements to ensure the keys are adequately protected. The evaluator shall ensure that the documentation includes both an essay and one or more diagrams. Note that this may also be documented as separate proprietary evidence rather than being included in the TSS.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-integrity-key-how">
            <title>The TSF shall verify the integrity of the <selectables><selectable id="fcs_stg_ext.3.2_1">hash</selectable><selectable id="fcs_stg_ext.3.2_2">digital signature</selectable><selectable id="fcs_stg_ext.3.2_3">MAC</selectable> </selectables> of the stored key prior to use of the key.</title>
            <note role="application">This requirement is not applicable to 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, 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 Activities for each of the options will be addressed in each of the requirements (FCS_COP.1.1/HASH, FCS_COP.1.1/KEYHMAC).<htm:br/><htm:br/>Key Wrapping must be implemented per SP800-38F.</note>
          </f-element>
          <audit-event>
            <audit-event-descr>Failure to verify integrity of stored key</audit-event-descr>
            <audit-event-info>Identity of key being verified</audit-event-info>
          </audit-event>
        </f-component>
      </section>
      <!--5.1.4 Class: User Data Protection (FDP)-->
      <section id="fdp" title="Class: User Data Protection (FDP)">
        <htm:p>A subset of the User Data Protection focuses on protecting Data-At-Rest, namely FDP_DAR_EXT.1 and FDP_DAR_EXT.2. Three levels of data-at-rest protection are addressed: TSF data, Protected Data (and keys), and sensitive data.<xref to="datalevels"/>  addresses the level of protection required for each level of data-at-rest.</htm:p> <htm:b><ctr id="datalevels" ctr-type="Table">: Protection of Data Levels </ctr>  </htm:b> <htm:br/><htm:br/><htm:table><htm:tr class="header"><htm:td>Data Level</htm:td><htm:td>Protection Required</htm:td></htm:tr><htm:tr><htm:td>TSF Data</htm:td><htm:td>TSF data does not require confidentiality, but does require integrity protection. (FPT_TST_EXT.2/PREKERNEL)</htm:td></htm:tr><htm:tr><htm:td>Protected Data</htm:td><htm:td>Protected data is encrypted while powered off. (FDP_DAR_EXT.1)</htm:td></htm:tr><htm:tr><htm:td>Sensitive Data</htm:td><htm:td>Sensitive data is encrypted while in the locked state, in addition to while powered off. (FDP_DAR_EXT.2)</htm:td></htm:tr></htm:table> <htm:br/>All keys, protected data, and sensitive data must ultimately be protected by the REK. Sensitive data must be protected by the password in addition to the REK. In particular,<xref to="Keys"/>  has KEKs protected according to these requirements: DEK_1 would be appropriate for sensitive data, DEK_2 would not be appropriate for sensitive data, K_1 is not considered a sensitive key, and K_2 is considered a sensitive key.<htm:br/><htm:br/>These requirements include a capability for encrypting sensitive data 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 transport scheme (RSA) by using a public key to encrypt the DEK while protecting the corresponding private key with a password-derived or biometric-unlocked KEK.<htm:br/><htm:br/>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 private key of which is protected by a password-derived or biometric-unlocked KEK) and an asymmetric pair for the 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 generate a shared secret, which can be used as a KEK or a DEK. The data private key and shared secret are cleared 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 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 the stored data.<xref to="KeysLocked"/>  , below, illustrates this scheme.<htm:br/><htm:br/><figure id="KeysLocked" entity="images/figure4.jpg" title="Key Agreement Scheme for Encrypting Received Sensitive Data in the Locked State"/>  <htm:br/><htm:br/>
        <ext-comp-def title="Access Control Functions" fam-id="FDP_ACF_EXT">
          <fam-behavior>This family defines the rules for access control functions that are not addressed by the FDP_ACF family in CC Part 2.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Application Backup" fam-id="FDP_BCK_EXT">
          <fam-behavior>This family defines requirements for managing device backups.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Limitation of Bluetooth Device Access" fam-id="FDP_BLT_EXT">
          <fam-behavior>This family defines requirements for managing Bluetooth devices.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Data-at-Rest Encryption" fam-id="FDP_DAR_EXT">
          <fam-behavior>This family defines requirements for implementation of data-at-rest protection.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Subset Information Flow Control" fam-id="FDP_IFC_EXT">
          <fam-behavior>This family defines requirements for handling of information flows that are not addressed by FDP_IFC in CC Part 2.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="User Data Storage" fam-id="FDP_STG_EXT">
          <fam-behavior>This family defines requirements for managing data storage.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Inter-TSF User Data Transfer Protection" fam-id="FDP_UPC_EXT">
          <fam-behavior>This family defines requirements for the use of trusted channel protocols to protect user data.</fam-behavior>
        </ext-comp-def>
        <!--FDP_ACF_EXT.1 Access Control for System Services-->
        <f-component cc-id="fdp_acf_ext.1" id="fdp-acf-ext-1" name="Access Control for System Services">
          <comp-lev>requires the TSF to be able to control access to its own services.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Placing applications into application groups based on enterprise configuration settings.</htm:li> <htm:li>Enabling/disabling location services.</htm:li> <htm:li>Enabling/disabling data signaling over externally-accessible hardware ports.</htm:li> </htm:ul> </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FMT_SMR.1 Security Roles</dependencies>
          <f-element id="fel-restrict-sys-service">
            <title>The TSF shall provide a mechanism to restrict the system services that are accessible to an application.</title>
            <note role="application">Examples of system services to which this requirement applies include:<htm:br/><htm:br/><htm:ul><htm:li>Obtain data from camera and microphone input devices</htm:li> <htm:li>Obtain current device location</htm:li> <htm:li>Retrieve credentials from system-wide credential store</htm:li> <htm:li>Retrieve contacts list / address book</htm:li> <htm:li>Retrieve stored pictures</htm:li> <htm:li>Retrieve text messages</htm:li> <htm:li>Retrieve emails</htm:li> <htm:li>Retrieve device identifier information</htm:li> <htm:li>Obtain network access</htm:li> </htm:ul> </note>
            <aactivity level="element">
              <TSS>The evaluator shall ensure the TSS lists all system services available for use by an application. The evaluator shall also ensure that the TSS describes how applications interface with these system services, and means by which these system services are protected by the TSF.<htm:br/><htm:br/>The TSS shall describe which of the following categories each system service falls in:<htm:br/><htm:ol><htm:li>No applications are allowed access</htm:li> <htm:li>Privileged applications are allowed access</htm:li> <htm:li>Applications are allowed access by user authorization</htm:li> <htm:li>All applications are allowed access</htm:li> </htm:ol> Privileged applications include any applications developed by the TSF developer. The TSS shall describe how privileges are granted to third-party applications. For both types of privileged applications, the TSS shall describe how and when the privileges are verified and how the TSF prevents unprivileged applications from accessing those services.<htm:br/><htm:br/>For any services for which the user may grant access, the evaluator shall ensure that the TSS identifies whether the user is prompted for authorization when the application is installed, or during runtime. The evaluator shall ensure that the operational user guidance contains instructions for restricting application access to system services.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following tests require the vendor to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products. <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall write, or the developer shall provide, applications for the purposes of the following tests. <htm:br/><htm:br/> <htm:br/><htm:br/>
                <testlist>
                  <test>For each system service to which no applications are allowed access, the evaluator shall attempt to access the system service with a test application and verify that the application is not able to access that system service.</test>
                  <test>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 service. The evaluator shall attempt to access the system service with a privileged application and verify that the application can access the service.</test>
                  <test>For each system service to which the user may grant access, the evaluator shall attempt to access the system service with a test application. The evaluator shall ensure that either the system blocks such accesses or prompts 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.</test>
                  <test>For each system service listed in the TSS that is accessible by all applications, the evaluator shall test that an application can access that system service.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-acp">
            <title>The TSF shall provide an access control policy that prevents <selectables><selectable id="s-fdp-app">application</selectable><selectable id="fdp_group">groups of applications</selectable> </selectables> from accessing <selectables><selectable id="fdp_acf_ext.1.2_1">all</selectable><selectable id="s-private">private</selectable> </selectables> data stored by other <selectables><selectable id="fdp_acf_ext.1.2_2">application</selectable><selectable id="fdp_acf_ext.1.2_3">groups of applications</selectable> </selectables> . Exceptions may only be explicitly authorized for such sharing by <selectables><selectable id="s-acl-user">the user</selectable><selectable id="s-acl-admin">the administrator</selectable><selectable id="s-acl-devel">a common application developer</selectable><selectable id="fdp_acf_ext.1.2_4">no one</selectable> </selectables>.</title>
            <ext-comp-def-title><title>The TSF shall provide an access control policy that prevents <assignable>list of subjects </assignable> from accessing <selectables><selectable>all </selectable> <selectable>private </selectable> </selectables> data stored by other <assignable>list of subjects </assignable> . Exceptions may only be explicitly authorized for such sharing by <assignable>list of authorized subjects </assignable> . </title> </ext-comp-def-title>
            <note role="application">Application groups may be designated Enterprise or Personal. Applications installed by the user default to being in the Personal application group unless otherwise designated by the administrator in function<xref to="mf-appGroups"/>  of FMT_SMF.1.1. Applications installed by the administrator default to being in the Enterprise application group (this category includes applications that the user requests the administrator install, for instance by selecting the application for installation through an enterprise application catalog) unless otherwise designated by the administrator in function<xref to="mf-appGroups"/>  of FMT_SMF.1.1. It is acceptable for the same application to have multiple instances installed, each in different application groups. Private data is defined as data that is accessible only by the application that wrote it. Private data is distinguished from data that an application may, by design, write to shared storage areas.<htm:br/><htm:br/>If<xref to="fdp_group"/>  is selected, FDP_ACF_EXT.2 must be included in the ST.</note>
            <aactivity level="element">
              <TSS>The evaluator shall examine the 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 is expected to describe the data sharing policies that would be applied in each case.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<htm:br/><htm:br/></Guidance>
              <Tests>
                <testlist>
                  <test>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<xref to="fdp_group"/>  is selected, the applications shall be placed into different groups. If<xref to="s-fdp-app"/>  is selected, the evaluator shall install the two applications. If<xref to="s-private"/>  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.<htm:br/><htm:br/>If<xref to="s-acl-user"/>  is selected, the evaluator shall grant access as the user and verify that the second application is able to access the stored unique string.<htm:br/><htm:br/>If<xref to="s-acl-admin"/>  is selected, the evaluator shall grant access as the administrator and verify that the second application is able to access the stored unique string.<htm:br/><htm:br/>If<xref to="s-acl-devel"/>  is selected, the evaluator shall grant access to an, application with a common application developer to the first, and verify that the application is able to access the stored unique string.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
          <audit-event/>
        </f-component>
        <!--FDP_ACF_EXT.2 Access Control for System Resources-->
        <f-component cc-id="fdp_acf_ext.2" id="fc_access_control_system" name="Access Control for System Resources" status="sel-based">
          <depends on-sel="fdp_group"/>
          <comp-lev>requires the TSF to be able to provide separate copies of system resources for different application groups.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Approving exceptions for sharing data between applications or groups of applications.</htm:li> </htm:ul> </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FDP_ACF_EXT.1 Access Control for System Services<htm:br/>FMT_SMR.1 Security Roles</dependencies>
          <f-element id="fel-per-app-resources">
            <title>The TSF shall provide a separate <selectables><selectable id="fdp_acf_ext.2.1_1">address book</selectable><selectable id="fdp_acf_ext.2.1_2">calendar</selectable><selectable id="fdp_acf_ext.2.1_3">keystore</selectable><selectable id="fdp_acf_ext.2.1_4">account credential database, <assignable>list of additional resources</assignable> </selectable> </selectables> for each application group and only allow applications within that process group to access the resource. Exceptions may only be explicitly authorized for such sharing by <selectables><selectable id="fdp_acf_ext.2.1_6">the user</selectable><selectable id="fdp_acf_ext.2.1_7">the administrator</selectable><selectable id="fdp_acf_ext.2.1_8">no one</selectable> </selectables>.</title>
            <note role="application">If<xref to="fdp_group"/>  is selected in FDP_ACF_EXT.1.2,FDP_ACF_EXT.2 must be included in the ST.</note>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>For each selected resource, the evaluator shall cause data to be placed into the Enterprise group’s instance of that shared resource. The evaluator shall install an application into the Personal group that attempts to access the shared resource information and verify that it cannot access the information.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
          <audit-event/>
        </f-component>
        <!--FDP_ACF_EXT.3 Security Attribute Based Access Control-->
        <f-component cc-id="fdp_acf_ext.3" id="fdp-acf-ext-3" name="Security Attribute Based Access Control" status="objective">
          <comp-lev>requires the TSF to enforce policies on applications that prohibit write and execute permissions from being granted simultaneously.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-no-write-exe">
            <title>The TSF shall enforce an access control policy that prohibits an application from granting both write and execute permission to a file on the device except for <selectables><selectable id="fdp_acf_ext.3.1_1">files stored in the application's private data folder</selectable><selectable id="fdp_acf_ext.3.1_2">no exceptions</selectable> </selectables>.</title>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following tests require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products. <htm:br/><htm:br/> <htm:br/><htm:br/>
                <testlist>
                  <test>The evaluator shall write, or the developer shall provide, an application that attempts to store a file with both write and execute permissions. If the selection is "no exceptions", then the evaluator shall verify that this action fails and that the permissions on the file are not simultaneously write and execute. If the selection is "application's private data folder", then the evaluator shall ensure that the attempt to store the file is outside of the application's private data folder.</test>
                  <test>The evaluator shall traverse the file system examining the permission on each TSF file to verify that no file has both write and 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.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
          <audit-event/>
        </f-component>
        <!--FDP_BCK_EXT.1 Application Backup-->
        <f-component cc-id="fdp_bck_ext.1" id="fdp-bck-ext-1" name="Application Backup" status="objective">
          <comp-lev>requires the TSF to be able to determine which data to include in backup operations.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Enable/disable backup of certain applications to a local or remote system.</htm:li> </htm:ul> </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-backup-mark">
            <title>The TSF shall provide a mechanism for applications to mark <selectables><selectable id="s-all-app-data">all application data</selectable><selectable id="s-sel-app-data">selected application data</selectable> </selectables> to be excluded from device backups.</title>
            <ext-comp-def-title><title>The TSF shall provide a mechanism for applications to mark <assignable>list of data categories </assignable> to be excluded from device backups. </title> </ext-comp-def-title>
            <note role="application">Device backups include any mechanism built into the TOE that allows stored application data to be extracted over a physical port or sent over the network, but does not include any functionality implemented by a specific application itself if the application is not included in the TOE. The lack of a public/documented API for performing backups, when a private/undocumented API exists, is not sufficient to meet this requirement.</note>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>If <xref to="s-all-app-data"/>  is selected, the evaluator shall install an application that has marked all of its application data to be excluded 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 data and verify that the backup fails or that the application’s data was not included in the backup. <htm:br/><htm:br/> <htm:br/><htm:br/>If <xref to="s-sel-app-data"/>  is selected, the evaluator shall install an application that has marked selected application data to be excluded from backups. The evaluator shall cause data covered by "selected application data" to be placed into the application’s storage area. The evaluator shall attempt to backup that selected application data and verify that either the backup fails or that the selected data is excluded from the backup.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
          <audit-event/>
        </f-component>
        <!--FDP_BLT_EXT.1 Limitation of Bluetooth Device Access-->
        <f-component cc-id="fdp_blt_ext.1" id="fdp-blt-ext-1" name="Limitation of Bluetooth Device Access" status="objective">
          <comp-lev>requires the TSF to manage which applications communicate with Bluetooth devices.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fdp-blt-ext-1e1">
            <title>The TSF shall limit the applications that may communicate with a particular paired Bluetooth device.</title>
            <note role="application">Not every application with privileges to use Bluetooth should be permitted to communicate with every paired Bluetooth device. For example, the TSF may choose to require that only the application that initiated the current connection may communicate with the device, or it may strictly tie the paired device to the first application that makes a socket connection to the device following initial pairing. Additionally, for more flexibility, the TSF may choose to provide the user with a way to select which applications on the device may communicate with or observe communications with each paired Bluetooth device.</note>
            <aactivity level="component">
              <TSS>The evaluator shall ensure that the TSS describes the mechanism used to prevent unrestricted access to paired Bluetooth devices (or their communication data) by every application with access to the Bluetooth system service on the TOE. The evaluator shall verify that this method either restricts access to a single application or provides explicit control of the applications that may communicate with the paired Bluetooth device.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall verify that the AGD contains the steps to configure which applications are allowed to communicate with a given Bluetooth peripheral.<htm:br/><htm:br/></Guidance>
              <Tests>The evaluator shall establish a Bluetooth connection with any peripheral. The evaluator shall verify that an application that is allowed to communicate with the Bluetooth peripheral is able to and that an application that is not allowed to communicate with that Bluetooth peripheral is unable to communicate with the peripheral.</Tests>
            </aactivity>
          </f-element>
        </f-component>
        <!--FDP_DAR_EXT.1 Protected Data Encryption-->
        <f-component cc-id="fdp_dar_ext.1" id="fdp-dar-ext-1" name="Protected Data Encryption">
          <comp-lev>requires the TSF to be able to protect all data with a chosen method of encryption.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Enabling data-at-rest protection.</htm:li> <htm:li>Enabling removable media’s data-at-rest protection.</htm:li> </htm:ul> </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Failure to encrypt/decrypt data.</htm:li> </htm:ul> </audit>
          <dependencies>FCS_COP.1 Cryptographic Operation</dependencies>
          <f-element id="fel-dar-what">
            <title>Encryption shall cover all protected data.</title>
            <note role="application">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.</note>
            <aactivity level="component">
              <TSS>The evaluator shall verify that the TSS section of the ST indicates which data is protected by the DAR implementation and what data is considered TSF data. The evaluator shall ensure that this data includes all protected data.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall review the AGD guidance to determine that the description of the configuration and use of the DAR protection does not require the user to perform any actions beyond configuration and providing the authentication credential. The evaluator shall also review the AGD guidance to determine that the configuration does not require the user to identify encryption on a per-file basis.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following test requires the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products. <htm:br/><htm:br/> <htm:br/><htm:br/>
                <testlist>
                  <test>The evaluator shall enable encryption according to the AGD guidance. The evaluator shall create user data (non-system) either by creating a file or by using an application. The evaluator shall use a tool provided by the developer to verify that this data is encrypted when the product is powered off, in conjunction with Test 1 for FIA_UAU_EXT.1.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-dar-how">
            <title>Encryption shall be performed using DEKs with AES in the <selectables><selectable id="fdp_dar_ext.1.2_1">XTS</selectable><selectable id="fdp_dar_ext.1.2_2">CBC</selectable><selectable id="fdp_dar_ext.1.2_3">GCM</selectable> </selectables> mode with key size <selectables><selectable id="fdp_dar_ext.1.2_4">128</selectable><selectable id="s-dar-256">256</selectable> </selectables> bits.</title>
            <ext-comp-def-title><title>Encryption shall be performed using DEKs with AES in the <assignable>list of AES modes </assignable> mode with key size <assignable>list of acceptable key sizes </assignable> bits. </title> </ext-comp-def-title>
            <note role="application">IVs must be generated in accordance with FCS_IV_EXT.1.1.</note>
          </f-element>
          <audit-event>
            <audit-event-descr>
              <selectables onlyone="yes">
                <selectable>Failure to encrypt/decrypt data</selectable>
                <selectable>none</selectable>
              </selectables>
            </audit-event-descr>
          </audit-event>
        </f-component>
        <!--FDP_DAR_EXT.2 Sensitive Data Encryption-->
        <f-component cc-id="fdp_dar_ext.2" id="fdp-dar-ext-2" name="Sensitive Data Encryption">
          <comp-lev>requires the TSF to protect the Trust Anchor Database.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Importing X.509v3 certificates into the Trust Anchor Database.</htm:li> <htm:li>Removing imported X.509v3 certificates from the Trust Anchor Database.</htm:li> <htm:li>Approving import and removal by applications of X.509v3 certificates in the Trust Anchor Database.</htm:li> </htm:ul> </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Addition or removal of certificate from Trust Anchor Database</htm:li> </htm:ul> </audit>
          <dependencies>FCS_COP.1 Cryptographic Operation<htm:br/>FCS_CKM.2 Cryptographic Key Establishment<htm:br/>FCS_STG_EXT.2 Encrypted Cryptographic Key Storage</dependencies>
          <f-element id="fel-dar-app-what">
            <title>The TSF shall provide a mechanism for applications to mark data and keys as sensitive.</title>
            <note role="application">Data and keys that have been marked as sensitive will be subject to certain restrictions (through other requirements) in both the locked and unlocked states of the Mobile Device. This mechanism allows an application to choose those data and keys under its control to be subject to those requirements.<htm:br/><htm:br/>In the future, this PP may require that all data and key created by applications will default to the "sensitive" marking, requiring an explicit "non-sensitive" marking rather than an explicit "sensitive" marking.</note>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS includes a description of which data stored by the TSF (such as by native applications) is treated as sensitive. This data may include all or some user or enterprise data and must be specific regarding the level of protection of email, contacts, calendar appointments, messages, and documents.<htm:br/><htm:br/>The evaluator shall examine the TSS to determine that it describes the mechanism that is provided for applications to use to mark data and keys as sensitive. This description shall also contain information reflecting how data and keys marked in this manner are distinguished from data and keys that are not (for instance, tagging, segregation in a "special" area of memory or container, etc.).<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<htm:br/><htm:br/></Guidance>
              <Tests>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 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. <htm:br/><htm:br/> <htm:br/><htm:br/></Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-dar-lock">
            <title>The TSF shall use an asymmetric key scheme to encrypt and store sensitive data received while the product is locked.</title>
            <note role="application">Sensitive data is encrypted according to FDP_DAR_EXT.1.2. The asymmetric key scheme must be performed in accordance with FCS_CKM.2/LOCKED.<htm:br/><htm:br/>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 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, this subset must be described in the TSS.<htm:br/><htm:br/>Key material must be cleared when no longer needed according to FCS_CKM_EXT.4. For keys (or key material used to derive those keys) protecting sensitive data received in the locked state, "no longer needed" includes "while in the locked state." For example, in the first key scheme, this includes the DEK 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 pair, the generated shared secret, and any generated DEKs. Of course, both schemes require that a private key of an asymmetric pair (the RSA private key and the device-wide private key, respectively) be cleared when transitioning to the locked state.</note>
            <aactivity level="element">
              <TSS>The evaluator shall review the TSS section of the ST to determine that the TSS includes a description of the process of receiving sensitive data while the device is in a locked state. The evaluator shall also verify that the description indicates if sensitive data that may be received in the locked state is treated differently than sensitive data that cannot be received in the locked state. The description shall include the key scheme for encrypting and storing the received data, which must involve 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 (as described in the application note). The introduction to this section provides two different schemes that meet the requirements, but other solutions may address this requirement.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<htm:br/><htm:br/></Guidance>
              <Tests>The evaluator shall perform the tests in 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. <htm:br/><htm:br/> <htm:br/><htm:br/></Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-dar-symkey">
            <title>The TSF shall encrypt any stored symmetric key and any stored private key of the asymmetric keys used for the protection of sensitive data according to [ <htm:i>FCS_STG_EXT.2.1 selection 2</htm:i>  ].</title>
            <ext-comp-def-title><title>The TSF shall encrypt any stored symmetric key and any stored private key of the asymmetric keys used for the protection of sensitive data according to <assignable>mechanism for encrypted key storage </assignable> . </title> </ext-comp-def-title>
            <note role="application">Symmetric keys used to encrypt sensitive data while the TSF is in the unlocked state must be encrypted with (or chain to a KEK encrypted with) the REK and password-derived or biometric-unlocked KEK. A stored private key of the asymmetric key scheme for encrypting data in the locked state must be encrypted with (or chain to a KEK encrypted with) the REK and password-derived or biometric-unlocked KEK.</note>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the key hierarchy section of the TSS required for FCS_STG_EXT.2.1 includes the symmetric encryption keys (DEKs) used to encrypt sensitive data. The evaluator shall ensure that these DEKs are encrypted by a key encrypted with (or chain to a KEK encrypted with) the REK and password-derived or biometric-unlocked KEK.<htm:br/><htm:br/>The evaluator shall verify that the TSS section of the ST that describes the asymmetric key scheme includes the 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 the TSF are stored encrypted by a key encrypted with (or chain to a KEK encrypted with) the REK and password-derived or biometric-unlocked KEK.<htm:br/><htm:br/>The evaluator shall also ensure that the documentation of the product's encryption key management is detailed enough that, after reading, the product's key management hierarchy is clear and that it meets the requirements to ensure the keys are adequately protected. The evaluator shall ensure that the documentation includes both an essay and one or more diagrams. Note that this may also be documented as separate proprietary evidence rather than being included in the TSS.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this element. <htm:br/><htm:br/> <htm:br/><htm:br/></Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-dar-unlock-data">
            <title>The TSF shall decrypt the sensitive data that was received 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 symmetric key scheme.</title>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS section of the ST that describes the asymmetric key scheme includes a description of the actions taken by the TSF for the purposes of DAR upon transitioning to the unlocked state. These actions shall minimally include decrypting all received data using the asymmetric key scheme and re-encrypting with the symmetric key scheme used to store data while the device is unlocked.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this element. <htm:br/><htm:br/> <htm:br/><htm:br/></Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>
              <selectables onlyone="yes">
                <selectable>Failure to encrypt/decrypt data</selectable>
                <selectable>none</selectable>
              </selectables>
            </audit-event-descr>
          </audit-event>
        </f-component>
        <!--FDP_IFC_EXT.1 Subset Information Flow Control-->
        <f-component cc-id="fdp_ifc_ext.1" id="fdp-ifc-ext-1" name="Subset Information Flow Control">
          <comp-lev>requires the TSF to be able to support the use of an IPsec VPN to protect data in transit.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Enabling/disabling VPN protection.</htm:li> <htm:li>Enabling/disabling Always On VPN protection.</htm:li> </htm:ul> </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FTP_ITC_EXT.1 Trusted Channel Communication</dependencies>
          <f-element id="fel-vpn-service">
            <title>The TSF shall <selectables linebreak="yes"><selectable id="fdp_ifc_ext.1.1_1">provide an interface which allows a VPN client to protect all IP traffic using IPsec</selectable><selectable id="fdp_ifc_ext.1.1_2">provide a VPN client which can protect all IP traffic using IPsec<htm:b>as defined in the <xref to="mod-vpnclient"/> </htm:b></selectable> </selectables> with the exception of IP traffic needed to manage the VPN connection, and <selectables><selectable id="fdp_ifc_ext.1.1_4"><assignable>traffic needed for correct functioning of the TOE</assignable></selectable><selectable id="fdp_ifc_ext.1.1_5">no other traffic</selectable> </selectables> , when the VPN is enabled.</title>
            <note role="application">Typically, the traffic needed to manage the VPN connection is referred to as "Control Plane" traffic; whereas, the IP traffic protected by the IPsec VPN is referred to as "Data Plane" traffic. All "Data Plane" traffic must flow through the VPN connection and the VPN must not split-tunnel. “IP traffic needed for correct functioning of the TOE” comprises traffic that would prevent the TOE from proper operation if it was either blocked by or routed through the VPN. Enabling the VPN means that the VPN client has been activated by the user. If the VPN tunnel gets interrupted, then no “Data Plane” traffic should be sent without the VPN tunnel being re-established or the user disabling the VPN client.<htm:br/><htm:br/>If no native IPsec client is validated or third-party VPN clients may also implement the required Information Flow Control, the first option must be selected. In these cases, the TOE provides an API to third-party VPN clients that allow them to configure the TOE’s network stack to perform the required Information Flow Control.<htm:br/><htm:br/>The ST author must select the second option if the TSF implements a native VPN client (<xref to="s-itc-ipsec"/>  is selected in<xref to="fel-wlan"/>  ). Thus the TSF must be validated against the<xref to="mod-vpnclient"/>  and the ST author must also include<no-link>FDP_IFC_EXT.1 </no-link>  from the<xref to="mod-vpnclient"/>  .<htm:br/><htm:br/>It is optional for the VPN client to be configured to be always-on per FMT_SMF.1 Function<xref to="mf-alwaysOnVPN"/>  . Always-on means the establishment of an IPsec trusted channel to allow any communication by the TSF.</note>
            <aactivity level="component">
              <TSS>The evaluator shall verify that the TSS section of the ST describes the routing of IP traffic through processes on the TSF when a VPN client is enabled. The evaluator shall ensure that the description indicates which traffic does not go through the VPN and which traffic does. The evaluator shall verify that a configuration exists for each baseband protocol in which only the traffic identified by the ST author as necessary for establishing the VPN connection (IKE traffic and perhaps HTTPS or DNS traffic) or needed for the correct functioning of the TOE is not encapsulated by the VPN protocol (IPsec). The evaluator shall verify that the TSS section describes any differences in the routing of IP traffic when using any supported baseband protocols (e.g. Wi-Fi or, LTE).<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall verify that one (or more) of the following options is addressed by the documentation:<htm:br/><htm:ul><htm:li>The description above indicates that if a VPN client is enabled, all configurations route all Data Plane traffic through the tunnel interface established by the VPN client.</htm:li> <htm:li>The AGD guidance describes how the user or administrator can configure the TSF to meet this requirement.</htm:li> <htm:li>The API documentation includes a security function that allows a VPN client to specify this routing.</htm:li> </htm:ul> <htm:br/></Guidance>
              <Tests>
                <testlist>
                  <test>If the 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.<htm:br/><htm:br/>Step 1: The evaluator shall enable a Wi-Fi configuration as described in the AGD guidance (as required by FTP_ITC_EXT.1). The evaluator shall use a packet sniffing tool between the wireless access point and an Internet-connected network. The evaluator shall turn on the sniffing tool and perform actions with the device such as navigating to websites, using provided applications, and accessing other Internet resources. The evaluator shall verify that the sniffing tool captures the traffic generated by these actions, turn off the sniffing tool, and save the session data.<htm:br/><htm:br/>Step 2: The evaluator shall configure an IPsec VPN client that supports the routing specified in this requirement, and if necessary, configure the device to perform the routing specified as described in the AGD guidance. The evaluator shall ensure the test network is capable of sending any traffic identified as exceptions. The evaluator shall turn on the sniffing tool, establish the VPN connection, and perform the same actions with the device as performed in the first step, as well as ensuring that all exception traffic is generated. The evaluator shall verify that the sniffing tool captures traffic generated by these actions, turn off the sniffing tool, and save the session data.<htm:br/><htm:br/>Step 3: The evaluator shall examine the traffic from both step one and step two to verify that all Data Plane traffic is encapsulated by IPsec, modulo the exceptions identified in the SFR (if applicable). For each exception listed in the SFR, the evaluator shall verify that that traffic is allowed outside of the VPN tunnel. The evaluator shall examine the Security Parameter Index (SPI) value present in the encapsulated packets captured in Step two from the TOE to the Gateway and shall verify this value is the same for all actions used to generate traffic through the VPN. Note that it is expected that the SPI value for packets from the Gateway to the TOE is different than the SPI value for packets from the TOE to the Gateway. The evaluator shall be aware that IP traffic on the cellular baseband outside of the IPsec tunnel may be emanating from the baseband processor and shall verify with the manufacturer that any identified traffic is not emanating from the application processor.<htm:br/><htm:br/>Step 4: (Conditional: If ICMP is not listed as part of the IP traffic needed for the correct functioning of the TOE) The evaluator shall perform an ICMP echo from the TOE to the IP address of another device on the local wireless network and shall verify that no packets are sent using the sniffing tool. The evaluator shall attempt to send packets to the TOE outside the VPN tunnel (i.e. not through the VPN gateway), including from the local wireless network, and shall verify that the TOE discards them.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FDP_STG_EXT.1 User Data Storage-->
        <f-component cc-id="fdp_stg_ext.1" id="fdp-stg-ext-1" name="User Data Storage">
          <comp-lev>requires the TSF to be able to label, encrypt, store, and decrypt sensitive data and keys.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Failure to encrypt/decrypt data.</htm:li> </htm:ul> </audit>
          <dependencies>FCS_COP.1 Cryptographic Operation<htm:br/>FCS_CKM.2 Cryptographic Key Establishment<htm:br/>FCS_STG_EXT.2 Encrypted Cryptographic Key Storage</dependencies>
          <f-element id="fel-trust-anchor">
            <title>The TSF shall provide protected storage for the Trust Anchor Database.</title>
            <aactivity level="component">
              <TSS>The evaluator shall ensure the TSS describes the Trust Anchor Database implemented that contain certificates used to meet the requirements of this PP. This description shall contain information pertaining to how certificates are loaded into the store, and how the store is protected from unauthorized access (for example, UNIX permissions) in accordance with the permissions established in FMT_SMF.1 and FMT_MOF_EXT.1.1.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>Addition or removal of certificate from Trust Anchor Database</audit-event-descr>
            <audit-event-info>Subject name of certificate.</audit-event-info>
          </audit-event>
        </f-component>
        <!--FDP_UPC_EXT.1 Inter-TSF User Data Transfer Protection-->
        <f-component cc-id="fdp_upc_ext.1" id="fdp-upc-ext-1" name="Inter-TSF User Data Transfer Protection" status="invisible">
          <comp-lev>requires the TSF to be able to protect communication channels between products using a chosen secure method.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Application initiation of trusted channel.</htm:li> </htm:ul> </audit>
          <dependencies>FTP_ITC_EXT.1 Trusted Channel Communication</dependencies>
          <f-element id="fel-tls-app-stub">
            <title>The TSF shall provide a means for non-TSF applications executing on the TOE to use <assignable>data transfer protocol</assignable> to provide a protected communication channel between the non-TSF application and another IT product that is logically distinct from other communication channels, provides assured identification of its end points, protects channel data from disclosure, and detects modification of the channel data.</title>
            <aactivity level="component">
              <no-tests/>
            </aactivity>
          </f-element>
          <f-element id="fel-tls-app-init-stub">
            <title>The TSF shall permit the non-TSF applications to initiate communication via the trusted channel.</title>
          </f-element>
        </f-component>
        <!--FDP_UPC_EXT.1/APPS Inter-TSF User Data Transfer Protection (Applications)-->
        <f-component cc-id="fdp_upc_ext.1" id="fdp-upc-ext-1-apps" name="Inter-TSF User Data Transfer Protection (Applications)" iteration="APPS">
          <f-element id="fel-tls-app">
            <title>The TSF shall provide a means for non-TSF applications executing on the TOE to use [  <htm:i><htm:ul><htm:li>Mutually authenticated TLS as defined in the<xref to="pkg-tls"/> ,</htm:li> <htm:li>HTTPS,</htm:li> </htm:ul> and <selectables linebreak="yes"><selectable id="upc_dtls">mutually authenticated DTLS as defined in the <xref to="pkg-tls"/></selectable><selectable id="s-upc-ipsec">IPsec as defined in the <xref to="mod-vpnclient"/></selectable><selectable id="fdp_upc_ext.1.1_APPS_1" exclusive="yes">no other protocol</selectable> </selectables> </htm:i>  ] to provide a protected communication channel between the non-TSF application and another IT product that is logically distinct from other communication channels, provides assured identification of its end points, protects channel data from disclosure, and detects modification of the channel data.</title>
            <note role="application">The intent of this requirement is that one of the selected protocols is 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 enterprise infrastructure. It should be noted that the FTP_ITC_EXT.1 requires that all TSF communications be protected using the protocols indicated in that requirement, so the protocols required by this component ride "on top of" those listed in FTP_ITC_EXT.1.<htm:br/><htm:br/>It should also be noted that some applications are part of the TSF, and FTP_ITC_EXT.1 requires that TSF applications be protected by at least one of the protocols in first selection in FTP_ITC_EXT.1. It is not required to have two different implementations of a protocol, or two different protocols, to satisfy both this requirement (for non-TSF apps) and FTP_ITC_EXT.1 (for TSF apps), as long as the services specified are provided.<htm:br/><htm:br/>The ST author must list which trusted channel protocols are implemented by the Mobile Device for use by non-TSF apps.<htm:br/><htm:br/>The TSF must be validated against requirements from the<xref to="pkg-tls"/>  , with the following selections made:<htm:ul><htm:li>FCS_TLS_EXT.1:</htm:li> <htm:ul><htm:li>TLS is selected</htm:li> <htm:li>Client is selected</htm:li> </htm:ul> <htm:li>FCS_TLSC_EXT.1.1:</htm:li> <htm:ul><htm:li>The cipher suites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</htm:li> <htm:li>Mutual authentication must be selected</htm:li> </htm:ul> <htm:li>FCS_TLSC_EXT.1.3</htm:li> <htm:ul><htm:li>With no exceptions is selected.</htm:li> </htm:ul> </htm:ul> <htm:br/>If<xref to="upc_dtls"/>  is selected, the TSF must be validated against requirements from the<xref to="pkg-tls"/>  , with the following selections made:<htm:ul><htm:li>FCS_TLS_EXT.1:</htm:li> <htm:ul><htm:li>DTLS is selected</htm:li> <htm:li>Client is selected</htm:li> </htm:ul> <htm:li>FCS_DTLSC_EXT.1.1:</htm:li> <htm:ul><htm:li>The cipher suites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</htm:li> <htm:li>Mutual authentication must be selected</htm:li> </htm:ul> <htm:li>FCS_DTLSC_EXT.1.3</htm:li> <htm:ul><htm:li>With no exceptions is selected.</htm:li> </htm:ul> </htm:ul> <htm:br/>If the ST author selects<xref to="s-upc-ipsec"/>  , the TSF must be validated against the PP-Module for Virtual Private Network (VPN) Clients.</note>
            <aactivity level="component">
              <TSS>The evaluator shall examine the TSS to determine that it describes that all protocols listed in the TSS are specified and included in the requirements in the ST.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall confirm that the operational guidance contains instructions necessary for configuring the protocols selected for use by the applications.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following test requires the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products. <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall write, or the developer shall provide access to, an application that requests protected channel services by the TSF. The evaluator shall verify that the results from the protected channel match the expected results according to the API documentation. This application may be used to assist in verifying the protected channel Evaluation Activities for the protocol requirements. The evaluator shall also perform the following tests:
                <testlist>
                  <test>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>
                  <test>The evaluator shall ensure, for each communication channel with an authorized IT entity, the channel data are not sent in plaintext.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-tls-app-init">
            <title>The TSF shall permit the non-TSF applications to initiate communication via the trusted channel.</title>
          </f-element>
          <audit-event>
            <audit-event-descr>Application initiation of trusted channel</audit-event-descr>
            <audit-event-info>Name of application. Trusted channel protocol. Non-TOE endpoint of connection</audit-event-info>
          </audit-event>
        </f-component>
        <!--FDP_UPC_EXT.1/BLUETOOTH Inter-TSF User Data Transfer Protection (Bluetooth)-->
        <f-component cc-id="fdp_upc_ext.1" id="fdp-upc-ext-1-bluetooth" name="Inter-TSF User Data Transfer Protection (Bluetooth)" iteration="BLUETOOTH" status="feat-based">
          <depends on="bluetooth"/>
          <f-element id="fel-bluetooth">
            <title>The TSF shall provide a means for non-TSF applications executing on the TOE to use [  <htm:i><htm:ul><htm:li>Bluetooth BR/EDR in accordance with the<xref to="mod-bluetooth"/> ,</htm:li> </htm:ul> and <selectables linebreak="yes"><selectable id="fdp_upc_ext.1.1_BLUETOOTH_1">Bluetooth LE in accordance with the <xref to="mod-bluetooth"/></selectable><selectable id="fdp_upc_ext.1.1_BLUETOOTH_2" exclusive="yes">no other protocol</selectable> </selectables> </htm:i>  ] to provide a protected communication channel between the non-TSF application and another IT product that is logically distinct from other communication channels, provides assured identification of its end points, protects channel data from disclosure, and detects modification of the channel data.</title>
            <note role="application">If the TOE includes Bluetooth hardware,this requirement must be included in the ST. The intent of this requirement is that Bluetooth BR/EDR and optionally Bluetooth LE is 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 enterprise infrastructure. The ST author must list which trusted channel protocols are implemented by the Mobile Device for use by non-TSF apps.<htm:br/><htm:br/>The TSF must be validated against requirements from the<xref to="mod-bluetooth"/>  . It should be noted that the FTP_ITC_EXT.1 requires that all TSF communications be protected using the protocols indicated in that requirement, so the protocols required by this component ride "on top of" those listed in FTP_ITC_EXT.1.<htm:br/><htm:br/></note>
            <aactivity level="component">
              <TSS>The evaluator shall examine the TSS to determine that it describes that all protocols listed in the TSS are specified and included in the requirements in the ST.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall confirm that the operational guidance contains instructions necessary for configuring the protocols selected for use by the applications.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following test requires the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products. <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall write, or the developer shall provide access to, an application that requests protected channel services by the TSF. The evaluator shall verify that the results from the protected channel match the expected results according to the API documentation. This application may be used to assist in verifying the protected channel Evaluation Activities for the protocol requirements. The evaluator shall also perform the following tests:
                <testlist>
                  <test>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>
                  <test>The evaluator shall ensure, for each communication channel with an authorized IT entity, the channel data are not sent in plaintext.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-bluetooth-chan">
            <title>The TSF shall permit the non-TSF applications to initiate communication via the trusted channel.</title>
          </f-element>
          <audit-event>
            <audit-event-descr>Application initiation of trusted channel</audit-event-descr>
            <audit-event-info>Name of application. Trusted channel protocol. Non-TOE endpoint of connection</audit-event-info>
          </audit-event>
        </f-component>
      </section>
      <!--5.1.5 Class: Identification and Authentication (FIA)-->
      <section id="fia" title="Class: Identification and Authentication (FIA)">
        <ext-comp-def title="Authentication Failures" fam-id="FIA_AFL_EXT">
          <fam-behavior>This family defines requirements for authentication failure handling that are not addressed by the FIA_AFL family in CC Part 2.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Password Management" fam-id="FIA_PMG_EXT">
          <fam-behavior>This family defines requirements for the composition of password credentials.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Authentication Throttling" fam-id="FIA_TRT_EXT">
          <fam-behavior>This family defines requirements for prevention of brute-force authentication attempts.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="User Authentication" fam-id="FIA_UAU_EXT">
          <fam-behavior>This family defines requirements for user authentication that are not addressed by FIA_UAU in CC Part 2.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="X.509 Certificates" fam-id="FIA_X509_EXT">
          <fam-behavior>This family defines requirements for the management and use of X.509 certificates.</fam-behavior>
        </ext-comp-def>
        <!--FIA_AFL_EXT.1 Authentication Failure Handling-->
        <f-component cc-id="fia_afl_ext.1" id="fia-afl-ext-1" name="Authentication Failure Handling">
          <comp-lev>requires the TSF be able to manage unsuccessful authentication attempts and limit the number of attempts for each method.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Configuration of authentication failure limit.</htm:li> </htm:ul> </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Exceeding configured authentication failure limit.</htm:li> </htm:ul> </audit>
          <dependencies>FCS_CKM_EXT.5 TSF Wipe<htm:br/>FIA_UAU.1 Timing of Authentication</dependencies>
          <f-element id="fel-authfail-what">
            <title>The TSF shall consider password and <selectables><selectable id="fia_afl_ext.1.1_1">biometric in accordance with the <xref to="mod-biometrics"/></selectable><selectable id="fia_afl_ext.1.1_2">hybrid</selectable><selectable id="s-authfail-noother" exclusive="yes">no other mechanism</selectable> </selectables> as critical authentication mechanisms.</title>
            <ext-comp-def-title><title>The TSF shall consider password and <assignable>list of acceptable authentication mechanisms </assignable> as critical authentication mechanisms. </title> </ext-comp-def-title>
            <note role="application">A critical authentication mechanism is one in which countermeasures are triggered (i.e. wipe of the device) when the maximum number of unsuccessful authentication attempts is exceeded, rendering the other factors unavailable.<htm:br/><htm:br/>If no additional authentication mechanisms are selected in FIA_UAU.5.1, then<xref to="s-authfail-noother"/>  must be selected. If an additional authentication mechanism is selected in FIA_UAU.5.1, then it must only be selected in FIA_AFL_EXT.1.1 if surpassing the authentication failure threshold for biometric data causes a countermeasure to be triggered regardless of the failure status of the other authentication mechanisms.<htm:br/><htm:br/>If the TOE implements multiple Authentication Factor interfaces (for example, a DAR decryption interface, a lock screen interface, an auxiliary boot mode interface), this component applies to all available interfaces. For example, a password is a critical authentication mechanism regardless of if it is being entered at the DAR decryption interface or at a lock screen interface.</note>
            <aactivity level="component">
              <TSS>The evaluator shall ensure that the TSS describes that a value corresponding to the number of unsuccessful authentication attempts since the last successful authentication is kept for each Authentication Factor interface. The evaluator shall ensure that this description also includes if and how this value is maintained when the TOE loses power, either through a graceful powered off or an ungraceful loss of power. The evaluator shall ensure that if the value is not maintained, the interface is after another interface in the boot sequence for which the value is maintained.<htm:br/><htm:br/>If the TOE supports multiple authentication mechanisms, the evaluator shall ensure that this description also includes how the unsuccessful authentication attempts for each mechanism selected in FIA_UAU.5.1 is handled. The evaluator shall verify that the TSS describes if each authentication mechanism utilizes its own counter or if multiple authentication mechanisms utilize a shared counter. If multiple authentication mechanisms utilize a shared counter, the evaluator shall verify that the TSS describes this interaction.<htm:br/><htm:br/>The evaluator shall confirm that the TSS describes how the process used to determine if the authentication attempt was successful. The evaluator shall ensure that the counter would be updated even if power to the device is cut immediately following notifying the TOE user if the authentication attempt was successful or not.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall verify that the AGD guidance describes how the administrator configures the maximum number of unique unsuccessful authentication attempts.<htm:br/><htm:br/></Guidance>
              <Tests>
                <testlist>
                   <htm:br/><htm:br/> 
                  <test>The evaluator shall configure the device with all authentication mechanisms selected in FIA_UAU.5.1. The evaluator shall perform the following tests for each available authentication interface:<htm:br/><htm:br/>Test 1a: The evaluator shall configure the TOE, according to the AGD guidance, with a maximum number of unsuccessful authentication attempts. The evaluator shall enter the locked state and enter incorrect passwords until the wipe occurs. The evaluator shall verify that the number of password entries corresponds to the configured maximum and that the wipe is implemented.<htm:br/><htm:br/>Test 1b: [conditional] If the TOE supports multiple authentication mechanisms the previous test shall be repeated using a combination of authentication mechanisms confirming that the critical authentication mechanisms will cause the device to wipe and that when the maximum number of unsuccessful authentication attempts for a non-critical authentication mechanism is exceeded, the device limits authentication attempts to other available authentication mechanisms. If multiple authentication mechanisms utilize a shared counter, then the evaluator shall verify that the maximum number of unsuccessful authentication attempts can be reached by using each individual authentication mechanism and a combination of all authentication mechanisms that share the counter.</test>
                  <test>The evaluator shall repeat test one, but shall power off (by removing the battery, if possible) the TOE between unsuccessful authentication attempts. The evaluator shall verify that the total number of unsuccessful authentication attempts for each authentication mechanism corresponds to the configured maximum and that the critical authentication mechanisms cause the device to wipe. Alternatively, if the number of authentication failures is not maintained for the interface under test, the evaluator shall verify that upon booting the TOE between unsuccessful authentication attempts another authentication factor interface is presented before the interface under test.</test>
                   <htm:br/><htm:br/> 
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-authfail-num">
            <title>The TSF shall detect when a configurable positive integer within <assignable>range of acceptable values for each authentication mechanism</assignable> of <selectables><selectable id="s-authfail-num-unique">unique</selectable><selectable id="s-authfail-num-non-unique">non-unique</selectable> </selectables> unsuccessful authentication attempts occur related to last successful authentication for each authentication mechanism.</title>
            <ext-comp-def-title><title>The TSF shall detect when a configurable positive integer within <assignable>range of acceptable values for each authentication mechanism </assignable> of <selectables><selectable>unique </selectable> <selectable>non-unique </selectable> </selectables> unsuccessful authentication attempts occur related to last successful authentication for each authentication mechanism. </title> </ext-comp-def-title>
            <note role="application">The positive integers is configured according to FMT_SMF.1.1 function<xref to="mf-screenlock"/>  .<htm:br/><htm:br/>An unique authentication attempt is defined as any attempt to verify a password or biometric sample, in which the input is different from a previous attempt. "<xref to="s-authfail-num-unique"/>  " must be selected if the authentication system increments the counter only for unique unsuccessful authentication attempts. For example, if the same incorrect password is attempted twice the authentication system increments the counter once. "<xref to="s-authfail-num-non-unique"/>  " must be selected if the authentication system increments the counter for each unsuccessful authentication attempt, regardless of if the input is unique. For example, if the same incorrect password is attempted twice the authentication system increments the counter twice.<htm:br/><htm:br/>If hybrid authentication (i.e. a combination of biometric and pin/password) is supported, a failed authentication attempt can be counted as a single attempt, even if both the biometric and pin/password were incorrect.<htm:br/><htm:br/>If the TOE supports multiple authentication mechanisms per FIA_UAU.5.1, this component applies to all authentication mechanisms. It is acceptable for each authentication mechanism to utilize an independent counter or for multiple authentication mechanisms to utilize a shared counter. The interaction between the authentication factors in regards to the authentication counter must be in accordance with FIA_UAU.5.2.<htm:br/><htm:br/>If the TOE implements multiple Authentication Factor interfaces (for example, a DAR decryption interface, a lock screen interface, an auxiliary boot mode interface), this component applies to all available interfaces. However, it is acceptable for each Authentication Factor interface to be configurable with a different number of unsuccessful authentication attempts.</note>
          </f-element>
          <f-element id="fel-authfail-power">
            <title>The TSF shall maintain the number of unsuccessful authentication attempts that have occurred upon power off.</title>
            <note role="application">The TOE may implement an Authentication Factor interface that precedes another Authentication Factor interface in the boot sequence (for example, a volume DAR decryption interface which precedes the lock screen interface) before the user can access the device. In this situation, because the user must successfully authenticate to the first interface to access the second, the number of unsuccessful authentication attempts need not be maintained for the second interface.</note>
          </f-element>
          <f-element id="fel-authfail-reach-max">
            <title>When the defined number of unsuccessful authentication attempts has exceeded the maximum allowed for a given authentication mechanism, all future authentication attempts will be limited to other available authentication mechanisms, unless the given mechanism is designated as a critical authentication mechanism.</title>
            <note role="application">In accordance with FIA_AFL_EXT.1.3, this requirement also applies after the TOE is powered off and powered back on.</note>
          </f-element>
          <f-element id="fel-authfail-reach-max-wipe">
            <title>When the defined number of unsuccessful authentication attempts for the last available authentication mechanism or single critical authentication mechanism has been surpassed, the TSF shall perform a wipe of all protected data.</title>
            <note role="application">Wipe is performed in accordance with 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 considered sensitive data as well.<htm:br/><htm:br/>If the TOE implements multiple Authentication Factor interfaces (for example, a DAR decryption interface, a lock screen interface, an auxiliary boot mode interface), this component applies to all available interfaces.</note>
          </f-element>
          <f-element id="fel-authfail-incr">
            <title>The TSF shall increment the number of unsuccessful authentication attempts prior to notifying the user that the authentication was unsuccessful.</title>
            <note role="application">This requirement is to ensure that if power is cut to the device directly after an authentication attempt, the counter will be incremented to reflect that attempt.</note>
          </f-element>
          <audit-event>
            <audit-event-descr>Excess of authentication failure limit</audit-event-descr>
            <audit-event-info>Authentication factor used</audit-event-info>
          </audit-event>
        </f-component>
        <!--FIA_PMG_EXT.1 Password Management-->
        <f-component cc-id="fia_pmg_ext.1" id="fia-pmg-ext-1" name="Password Management">
          <comp-lev>requires the TSF to enforce character length and composition requirements for password credentials.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Configuring password policy.</htm:li> </htm:ul> </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FIA_UAU.1 Timing of Authentication</dependencies>
          <f-element id="fel-password-manage">
            <title>The TSF shall support the following for the Password Authentication Factor:  <htm:ol><htm:li>Passwords shall be able to be composed of any combination of <selectables><selectable id="fia_pmg_ext.1.1_1">upper and lower case letters</selectable><selectable id="fia_pmg_ext.1.1_3"><assignable>a character set of at least 52 characters</assignable></selectable> </selectables> , numbers, and special characters: <selectables><selectable id="fia_pmg_ext.1.1_4">"!"</selectable><selectable id="fia_pmg_ext.1.1_5">"@"</selectable><selectable id="fia_pmg_ext.1.1_6">"#"</selectable><selectable id="fia_pmg_ext.1.1_7">"$"</selectable><selectable id="fia_pmg_ext.1.1_8">"%"</selectable><selectable id="fia_pmg_ext.1.1_9">"^"</selectable><selectable id="fia_pmg_ext.1.1_10">"&amp;"</selectable><selectable id="fia_pmg_ext.1.1_11">"*"</selectable><selectable id="fia_pmg_ext.1.1_12">"("</selectable><selectable id="fia_pmg_ext.1.1_13">")"</selectable><selectable id="fia_pmg_ext.1.1_15"><assignable>other characters</assignable></selectable> </selectables> ;</htm:li> <htm:li>Password length up to <assignable>an integer greater than or equal to 14</assignable> characters shall be supported.</htm:li></htm:ol></title>
            <note role="application">While some corporate policies require passwords of 14 characters or better, the use of a REK for DAR protection and key storage protection and the anti-hammer requirement (FIA_TRT_EXT.1) addresses the threat of attackers with physical access using much smaller and less complex passwords.<htm:br/><htm:br/>The ST author selects the character set: either the upper and lower case Basic Latin letters or another assigned character set containing at least 52 characters. The assigned character set must be well defined: either according to an international encoding standard (such as Unicode) or defined in the assignment by the ST author. The ST author also selects the special characters that are supported by the TOE; they may optionally list additional special characters supported using the assignment.</note>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall examine the operational guidance to determine that it provides guidance to security administrators on the composition of strong passwords, and that it provides instructions on setting the minimum password length. The evaluator shall also perform the following tests. Note that one or more of these tests can be performed with a single test case.</Guidance>
              <Tests>
                <testlist>
                  <test>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 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>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FIA_TRT_EXT.1 Authentication Throttling-->
        <f-component cc-id="fia_trt_ext.1" id="fia-trt-ext-1" name="Authentication Throttling">
          <comp-lev>requires the TSF to limit authentication attempts by number of attempts in a set amount of time.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FIA_UAU.5 Multiple Authentication Mechanisms</dependencies>
          <f-element id="fel-auth-throttle">
            <title>The TSF shall limit automated user authentication attempts by <selectables><selectable id="fia_trt_ext.1.1_1">preventing authentication via an external port</selectable><selectable id="fia_trt_ext.1.1_2">enforcing a delay between incorrect authentication attempts</selectable> </selectables> for all authentication mechanisms selected in FIA_UAU.5.1. The minimum delay shall be such that no more than 10 attempts can be attempted per 500 milliseconds.</title>
            <note role="application">The authentication throttling applies to all authentication mechanisms selected in FIA_UAU.5.1. The user authentication attempts in this requirement are attempts to guess the Authentication Factor. The developer can implement the timing of the delays in the requirements using unequal or equal timing of delays. The minimum delay specified in this requirement provides defense against brute forcing.</note>
            <aactivity level="component">
              <TSS>The evaluator shall verify that the TSS describes the method by which authentication attempts are not able to be automated. The evaluator shall ensure that the TSS describes either how the TSF disables authentication via external interfaces (other than the ordinary user interface) or how authentication attempts are delayed in order to slow automated entry and shall ensure that this delay totals at least 500 milliseconds over 10 attempts for all authentication mechanisms selected in FIA_UAU.5.1.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FIA_UAU.5 Multiple Authentication Mechanisms-->
        <f-component cc-id="fia_uau.5" id="fia-uau-5" name="Multiple Authentication Mechanisms">
          <f-element id="fel-uau">
            <title>The TSF shall provide  <htm:b>password and <selectables><selectable id="uau_biometric">biometric in accordance with the <xref to="mod-biometrics"/></selectable><selectable id="uau_hybr">hybrid</selectable><selectable id="fia_uau.5.1_1" exclusive="yes">no other mechanism</selectable> </selectables> </htm:b>  to support user authentication.</title>
            <note role="application">The TSF must support a Password Authentication Factor and may optionally implement a BAF. A hybrid authentication factor is where a user has 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 factor failed.<htm:br/><htm:br/>If<xref to="uau_biometric"/>  or<xref to="uau_hybr"/>  is selected, then the TSF must be validated against requirements from the<xref to="mod-biometrics"/>  .<htm:br/><htm:br/>If<xref to="uau_hybr"/>  is selected,<xref to="uau_biometric"/>  does not need to be selected, but should be selected if the biometric authentication can be used independent of the hybrid authentication, i.e. without having to enter a PIN/password.<htm:br/><htm:br/>The Password Authentication Factor is configured according to FIA_PMG_EXT.1.</note>
            <aactivity level="component">
              <TSS>The evaluator shall ensure that the TSS describes each mechanism provided to support user authentication and the rules describing how the authentication mechanisms provide authentication.<htm:br/><htm:br/>Specifically, for all authentication mechanisms specified in FIA_UAU.5.1, the evaluator shall ensure that the TSS describes the rules as to how each authentication mechanism is used. Example rules are how the authentication mechanism authenticates the user (i.e. how does the TSF verify that the correct password or biometric sample was entered), the result of a successful authentication (i.e. is the user input used to derive or unlock a key) and which authentication mechanism can be used at which authentication factor interfaces (i.e. if there are times, for example, after a reboot, that only specific authentication mechanisms can be used). If multiple BAFs are claimed in FIA_MBV_EXT.1.1 in the<xref to="mod-biometrics"/>  , the interaction between the BAFs must be described. For example, whether the multiple BAFs can be enabled at the same time.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall verify that configuration guidance for each authentication mechanism is addressed in the AGD guidance.<htm:br/><htm:br/></Guidance>
              <Tests>
                <testlist>
                  <test>For each authentication mechanism selected in 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>
                  <test>For each authentication mechanism rule, the evaluator shall ensure that the authentication mechanisms behave accordingly.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-auth-claim">
            <title>The TSF shall authenticate any user's claimed identity according to the <assignable>rules describing how each authentication mechanism selected in FIA_UAU.5.1 provides authentication</assignable>.</title>
            <note role="application">Rules regarding how the authentication factors interact in terms of unsuccessful authentication are covered in FIA_AFL_EXT.1.</note>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FIA_UAU.6/CREDENTIAL Re-Authenticating (Credential Change)-->
        <f-component cc-id="fia_uau.6" id="fia-uau-6-credential" name="Re-Authenticating (Credential Change)" iteration="CREDENTIAL">
          <f-element id="fel-reauth-when">
            <title>The TSF shall re-authenticate the user <htm:b>via the Password Authentication Factor</htm:b>  under the conditions [ <htm:i>attempted change to any supported authentication mechanisms</htm:i>  ].</title>
            <note role="application">The password authentication factor must be entered before either the password or biometric authentication factor, if selected in FIA_UAU.5.1, can be changed.</note>
            <aactivity level="element">
              <TSS>There are no TSS evaluation activities for this element.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<htm:br/><htm:br/></Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall configure the 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 requires the entry of the Password Authentication Factor before allowing the factor to be changed.</test>
                  <test>[conditional] If<xref to="uau_biometric"/>  is selected in FIA_UAU.5.1, for each BAF claimed in FIA_MBV_EXT.1.1 in the<xref to="mod-biometrics"/>  the evaluator shall configure the TSF to use the BAF, which includes configuring the Password Authentication Factor, according to the AGD guidance. The evaluator shall change the BAF according to the AGD guidance and verify that the TSF requires the entry of the Password Authentication Factor before allowing the BAF to be changed.</test>
                  <test>[conditional] If<xref to="uau_hybr"/>  is selected in FIA_UAU.5.1, the evaluator shall configure the TSF to use the BAF and PIN or password, which includes configuring the Password Authentication Factor, according to the AGD guidance. The evaluator shall change the BAF and PIN according to the AGD guidance and verify that the TSF requires the entry of the Password Authentication Factor before allowing the factor to be changed.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
        </f-component>
        <!--FIA_UAU.6/LOCKED Re-Authenticating (TSF Lock)-->
        <f-component cc-id="fia_uau.6" id="fia-uau-6-locked" name="Re-Authenticating (TSF Lock)" iteration="LOCKED">
          <f-element id="fel-reauth-how">
            <title>The TSF shall re-authenticate the user <htm:b>via an authentication factor defined in FIA_UAU.5.1</htm:b>  under the conditions  <htm:b>TSF-initiated lock, user-initiated lock, <assignable>other conditions</assignable> </htm:b>  .</title>
            <note role="application">Depending on the selections made in FIA_UAU.5.1, either the password (at a minimum), biometric authentication or hybrid authentication mechanisms can be used to unlock the device. TSF-initiated and user-initiated locking is described in FTA_SSL_EXT.1.</note>
            <aactivity level="element">
              <TSS>There are no TSS evaluation activities for this element.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<htm:br/><htm:br/></Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall configure the TSF to transition to the locked state after a time of inactivity (FMT_SMF.1) according to the AGD guidance. The evaluator shall wait until the TSF locks and then verify that the TSF requires the entry of the Password Authentication Factor before transitioning to the unlocked state.</test>
                  <test>[conditional] If<xref to="uau_biometric"/>  is selected in FIA_UAU.5.1, for each BAF claimed in FIA_MBV_EXT.1.1 in the<xref to="mod-biometrics"/>  the evaluator shall repeat Test 1 verifying that the TSF requires the entry of the BAF before transitioning to the unlocked state.</test>
                  <test>[conditional] If<xref to="uau_hybr"/>  is selected in FIA_UAU.5.1, the evaluator shall repeat Test 1 verifying that the TSF requires the entry of the BAF and PIN/password before transitioning to the unlocked state.</test>
                  <test id="t-locks">The evaluator shall configure user-initiated locking according to the AGD guidance. The evaluator shall lock the TSF and then verify that the TSF requires the entry of the Password Authentication Factor before transitioning to the unlocked state.</test>
                  <test>[conditional] If<xref to="uau_biometric"/>  is selected in FIA_UAU.5.1, for each BAF claimed in FIA_MBV_EXT.1.1 in the<xref to="mod-biometrics"/>  the evaluator shall repeat<xref to="t-locks"/>  verifying that the TSF requires the entry of the BAF before transitioning to the unlocked state.</test>
                  <test>[conditional] If<xref to="uau_hybr"/>  is selected in FIA_UAU.5.1, the evaluator shall repeat<xref to="t-locks"/>  verifying that the TSF requires the entry of the BAF and PIN/password before transitioning to the unlocked state.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>User changes Password Authentication Factor</audit-event-descr>
          </audit-event>
        </f-component>
        <!--FIA_UAU.7 Protected Authentication Feedback -->
        <f-component cc-id="fia_uau.7" id="fia-uau-7" name="Protected Authentication Feedback ">
          <f-element id="fel-auth-feedback">
            <title>The TSF shall provide only [ <htm:i>obscured feedback to the device’s display</htm:i>  ] to the user while the authentication is in progress.</title>
            <note role="application">This applies to all authentication methods specified in FIA_UAU.5.1. The TSF may briefly (1 second or less) display each character or provide an option to allow the user to unmask the password; however, the password must be obscured by default.<htm:br/><htm:br/>If<xref to="uau_biometric"/>  is selected in FIA_UAU.5.1, the TSF must not display sensitive information regarding any BAF that could aid an adversary in identifying or spoofing the respective biometric characteristics of a given human user. While it is true that biometric samples, by themselves, are not secret, the analysis performed by the respective biometric algorithms, as well as output data from these biometric algorithms, is considered sensitive and must be kept secret. Where applicable, the TSF must not reveal or make public the reasons for authentication failure.</note>
            <aactivity level="component">
              <TSS>The evaluator shall ensure that the TSS describes the means of obscuring the authentication entry, for all authentication methods specified in FIA_UAU.5.1.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall verify that any configuration of this requirement is addressed in the AGD guidance and that the password is obscured by default.</Guidance>
              <Tests>
                <testlist>
                  <test>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>
                  <test>[conditional] If<xref to="uau_biometric"/>  is selected in FIA_UAU.5.1, for each BAF claimed in FIA_MBV_EXT.1.1 in the<xref to="mod-biometrics"/>  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 reasons for authentication failure (user mismatch, low sample quality, etc.) are not revealed to the user. It is acceptable for the 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>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FIA_UAU_EXT.1 Authentication for Cryptographic Operation-->
        <f-component cc-id="fia_uau_ext.1" id="fia-uau-ext-1" name="Authentication for Cryptographic Operation">
          <comp-lev>requires the TSF enforce data-at-rest protection until successful authentication has occurred.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FDP_DAR_EXT.1 Protected Data Encryption<htm:br/>FDP_DAR_EXT.2 Sensitive Data Encryption</dependencies>
          <f-element id="fel-auth-before-decrypt">
            <title>The TSF shall require the user to present the Password Authentication Factor prior to decryption of protected data and encrypted DEKs, KEKs and <selectables><selectable id="fia_uau_ext.1.1_1">long-term trusted channel key material</selectable><selectable id="fia_uau_ext.1.1_2">all software-based key storage</selectable><selectable id="fia_uau_ext.1.1_3" exclusive="yes">no other keys</selectable> </selectables> at startup.</title>
            <note role="application">The intent of this requirement is to prevent decryption of protected data before the user has authorized to the device using the Password Authentication Factor. The Password Authentication Factor is also required in order derive the key used to decrypt sensitive data, which includes software-based secure key storage.</note>
            <aactivity level="component">
              <TSS>The evaluator shall verify that the TSS section of the ST describes the process for decrypting protected data and keys. The evaluator shall ensure that this process requires the user to enter a Password Authentication Factor and, in accordance with FCS_CKM_EXT.3, derives a KEK, which is used to protect the software-based secure key storage and (optionally) DEKs for sensitive data, in accordance with FCS_STG_EXT.2.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                The following tests may be performed in conjunction with FDP_DAR_EXT.1 and FDP_DAR_EXT.2. <htm:br/><htm:br/> <htm:br/><htm:br/> <htm:b>Evaluation Activity Note:</htm:b>The following test require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products. <htm:br/><htm:br/> <htm:br/><htm:br/>
                <testlist>
                   <htm:br/><htm:br/>  <htm:br/><htm:br/> 
                  <test>The evaluator shall enable encryption of protected data and require user authentication according to the AGD guidance. The evaluator shall write, or the developer shall provide access to, an application that includes a unique string treated as protected data.<htm:br/><htm:br/>The evaluator shall reboot the device, use a tool provided by developer to search for the unique string within the application data, and verify that the unique string cannot be found. The evaluator shall enter the Password Authentication Factor to access full device functionality, use a tool provided by the developer to access the unique string within the application data, and verify that the unique string can be found.</test>
                  <test>[conditional] The evaluator shall require user authentication according to the AGD guidance. The evaluator shall store a key in the software-based secure key storage.<htm:br/><htm:br/>The evaluator shall lock the device, use a tool provided by developer to access the key within the stored data, and verify that the key cannot be retrieved or accessed. The evaluator shall enter the Password Authentication Factor to access full device functionality, use a tool provided by developer to access the key, and verify that the key can be retrieved or accessed.</test>
                  <test>[conditional] The evaluator shall enable encryption of sensitive data and require user authentication according to the AGD guidance. The evaluator shall write, or the developer shall provide access to, an application that includes a unique string treated as sensitive data.<htm:br/><htm:br/>The evaluator shall lock the device, use a tool provided by developer to attempt to access the unique string within the application data, and verify that the unique string cannot be found. The evaluator shall enter the Password Authentication Factor to access full device functionality, use a tool provided by developer to access the unique string within the application data, and verify that the unique string can be retrieved.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FIA_UAU_EXT.2 Timing of Authentication-->
        <f-component cc-id="fia_uau_ext.2" id="fia-uau-ext-2" name="Timing of Authentication">
          <comp-lev>requires the TSF to prevent a subject’s use of TOE until the user is authenticated.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Enabling/disabling display TSF notifications while in the locked state.</htm:li> <htm:li>Enabling/disabling bypass of local user authentication.</htm:li> </htm:ul> </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Action performed before authentication.</htm:li> </htm:ul> </audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-before-auth-what">
            <title>The TSF shall allow <selectables><selectable id="fia_uau_ext.2.1_2"><assignable>list of actions</assignable></selectable><selectable id="fia_uau_ext.2.1_3">no actions</selectable> </selectables> on behalf of the user to be performed before the user is authenticated.</title>
            <aactivity level="component">
              <TSS>The evaluator shall verify that the TSS describes the actions allowed by unauthorized users in the locked state.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>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 actions do not succeed.</Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-auth-before-what">
            <title>The TSF shall require each user to be successfully authenticated before allowing any other TSF-mediated actions on behalf of that user.</title>
            <note role="application">The security relevant actions allowed by unauthorized users in locked state must be listed. At a minimum the actions that correspond to the functions available to the user in FMT_SMF.1 and are allowed by unauthorized users in locked state should be listed. For example, if the user can enable/disable the camera per function<xref to="mf-audioVisual"/>  of FMT_SMF.1 and unauthorized users can take a picture when the device is in locked state, this action must be listed.</note>
          </f-element>
          <audit-event>
            <audit-event-descr>Action performed before authentication.</audit-event-descr>
          </audit-event>
        </f-component>
        <!--FIA_UAU_EXT.4 Secondary User Authentication-->
        <f-component cc-id="fia_uau_ext.4" id="fc-fia-uau-ext-4" name="Secondary User Authentication" status="optional">
          <comp-lev>requires the TSF to enforce the use of a secondary authentication factor to access certain user data.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FDP_ACF_EXT.2 Access Control for System Resources<htm:br/>FIA_UAU.5 Multiple Authentication Mechanisms</dependencies>
          <f-element id="fel-two-auths">
            <title>The TSF shall provide a secondary authentication mechanism for accessing Enterprise applications and resources. The secondary authentication mechanism shall control access to the Enterprise application and shared resources and shall be incorporated into the encryption of protected and sensitive data belonging to Enterprise applications and shared resources.</title>
            <note role="application">For the BYOD use case, Enterprise applications and data must be protected using a different password than the user authentication to gain access to the personal applications and data, if configured.<htm:br/><htm:br/>This requirement must be included in the ST if the TOE implements a container solution, in which there is a separate authentication, to separate user and Enterprise applications and resources.</note>
            <aactivity level="element">
              <TSS>There are no TSS evaluation activities for this element.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<htm:br/><htm:br/></Guidance>
              <Tests>The Evaluation Activities for any selected requirements related to device authentication must be separately performed for the secondary authentication mechanism (in addition to activities performed for the primary authentication mechanism). The requirements are: FIA_UAU.6/CREDENTIAL, FIA_UAU.6/LOCKED, FIA_PMG_EXT.1, FIA_TRT_EXT.1, FIA_UAU.7, FIA_UAU_EXT.2, FTA_SSL_EXT.1, FCS_STG_EXT.2, FMT_SMF.1/FMT_MOF_EXT.1 #1, #2, #8, #21, and #36. <htm:br/><htm:br/> <htm:br/><htm:br/>Additionally, FIA_AFL_EXT.1 must be met, except that in FIA_AFL_EXT.1.2 the separate test is performed with the text "wipe of all protected data" changed to "wipe of all Enterprise application data and all Enterprise shared resource data."</Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-two-auth-when">
            <title>The TSF shall require the user to present the secondary authentication factor prior to decryption of Enterprise application data and Enterprise shared resource data.</title>
            <note role="application">The intent of this requirement is to prevent decryption of protected Enterprise application data and Enterprise shared resource data before the user has authenticated to the device using the secondary authentication factor. Enterprise shared resource data consists of the FDP_ACF_EXT.2.1 selections.</note>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS section of the 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, derives a KEK which is used to protect the software-based secure key storage and (optionally) DEKs for sensitive data, in accordance with FCS_STG_EXT.2.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this element. <htm:br/><htm:br/> <htm:br/><htm:br/></Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FIA_X509_EXT.1 X.509 Validation of Certificates-->
        <f-component cc-id="fia_x509_ext.1" id="fia-x509-ext-1" name="X.509 Validation of Certificates">
          <comp-lev>specifies the rules the TSF must follow to determine if a particular X.509 certificate is valid.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>The following action is be auditable:<htm:ul><htm:li>Failure to validate X.509v3 certificate.</htm:li> </htm:ul> </audit>
          <dependencies>FCS_COP.1 Cryptographic Operation</dependencies>
          <f-element id="fel-val-certs">
            <title>The TSF shall validate certificates in accordance with the following rules:  <htm:ul><htm:li>RFC 5280 certificate validation and certificate path validation.</htm:li> <htm:li>The certificate path must terminate with a certificate in the Trust Anchor Database.</htm:li> <htm:li>The TSF shall validate a certificate path by ensuring the presence of the basicConstraints extension, that the CA flag is set to TRUE for all CA certificates, and that any path constraints are met.</htm:li> <htm:li>The TSF shall validate that any CA certificate includes caSigning purpose in the key usage field.</htm:li> <htm:li>The TSF shall validate the revocation status of the certificate using <selectables><selectable id="fia_x509_ext.1.1_1">OCSP as specified in RFC 6960</selectable><selectable id="s-crl">CRL as specified in RFC 5759</selectable><selectable id="fia_x509_ext.1.1_2">an OCSP TLS Status Request Extension (OCSP stapling) as specified in RFC 6066</selectable><selectable id="fia_x509_ext.1.1_3">OCSP TLS Multi-Certificate Status Request Extension (i.e., OCSP Multi-Stapling) as specified in RFC 6961</selectable> </selectables> .</htm:li> <htm:li>The TSF shall validate the extendedKeyUsage field according to the following rules:<htm:ul><htm:li>Certificates used for trusted updates and executable code integrity verification shall have the Code Signing Purpose (id-kp 3 with OID 1.3.6.1.5.5.7.3.3) in the extendedKeyUsage field.</htm:li> <htm:li>Server certificates presented for TLS shall have the Server Authentication purpose (id-kp 1 with OID 1.3.6.1.5.5.7.3.1) in the extendedKeyUsage field.</htm:li> <htm:li>Server certificates presented for EST shall have the CMC Registration Authority (RA) purpose (id-kp-cmcRA with OID 1.3.6.1.5.5.7.3.28) in the extendedKeyUsage field. [conditional]</htm:li> <htm:li>Client certificates presented for TLS shall have the Client Authentication purpose (id-kp 2 with OID 1.3.6.1.5.5.7.3.2) in the extendedKeyUsage field.</htm:li> <htm:li>OCSP certificates presented for OCSP responses shall have the OCSP Signing purpose (id-kp 9 with OID 1.3.6.1.5.5.7.3.9) in the extendedKeyUsage field. [conditional]</htm:li> </htm:ul> </htm:li></htm:ul></title>
            <ext-comp-def-title><title>The TSF shall validate certificates in accordance with the following rules: <assignable>list of rules </assignable> . </title> </ext-comp-def-title>
            <note role="application">FIA_X509_EXT.1.1 lists the rules for validating certificates. The ST author must select whether revocation status is verified using OCSP or CRLs. OCSP stapling and OCSP multi-stapling only support TLS server certificate validation. If other certificate types are validated, either OCSP or CRL should be claimed. The<xref to="mod-wlanclient"/>  , to which a MDF TOE must also conform, requires that certificates are used for EAP-TLS; this use requires that the extendedKeyUsage rules are verified. Certificates may optionally be used for trusted updates of system software and applications (FPT_TUD_EXT.2) and for integrity verification (FPT_TST_EXT.2(1)) and, if implemented, must be validated to contain the Code Signing purpose extendedKeyUsage.<htm:br/><htm:br/>While FIA_X509_EXT.1.1 requires that the TOE perform certain checks on the certificate presented by a TLS server, there are corresponding checks that the authentication server will have to perform on the certificate presented by the client; namely that the extendedKeyUsage field of the client certificate includes “Client Authentication” and that the key agreement bit (for the Diffie-Hellman ciphersuites) or the key encipherment bit (for RSA ciphersuites) be set. Certificates obtained for use by the TOE will have to conform to these requirements in order to be used in the enterprise. This check is required to support EAP-TLS for the<xref to="mod-wlanclient"/>  .</note>
            <aactivity level="component">
              <TSS>The evaluator shall ensure the TSS describes where the check of validity of the certificates takes place. The evaluator ensures the TSS also provides a description of the certificate path validation algorithm.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                The tests described must be performed in conjunction with the other Certificate Services evaluation activities, including the use cases in FIA_X509_EXT.2.1 and FIA_X509_EXT.3. The tests for the extendedKeyUsage rules are performed in conjunction with the uses that require those rules. The evaluator shall create a chain of at least four certificates: the node certificate to be tested, two Intermediate CAs, and the self-signed Root CA.
                <testlist>
                   <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:br/><htm:br/> 
                  <test>The evaluator shall demonstrate that validating a certificate without a valid certification path results in the function failing, for each of the following reasons, in turn:<htm:ul><htm:li>By establishing a certificate path in which one of the issuing certificates is not a CA certificate,</htm:li> <htm:li>By omitting the basicConstraints field in one of the issuing certificates,</htm:li> <htm:li>By setting the basicConstraints field in an issuing certificate to have CA=False,</htm:li> <htm:li>By omitting the CA signing bit of the key usage field in an issuing certificate, and</htm:li> <htm:li>By setting the path length field of a valid CA field to a value strictly less than the certificate path.</htm:li> </htm:ul> The evaluator shall then establish a valid certificate path consisting of valid CA certificates, and demonstrate that the function succeeds. The evaluator shall then remove trust in one of the CA certificates, and show that the function fails.</test>
                  <test>The evaluator shall demonstrate that validating an expired certificate results in the function failing.</test>
                  <test>The evaluator shall test that the TOE can properly handle revoked certificates-conditional on whether CRL, OCSP, OSCP stapling, or OCSP multi-stapling is selected; if multiple methods are selected, then the following tests shall be performed for each method:<htm:br/><htm:br/>The evaluator shall test revocation of the node certificate.<htm:br/><htm:br/>The evaluator shall also test revocation of the intermediate CA certificate (i.e. the intermediate CA certificate should be revoked by the root CA). For the test of the WLAN use case, only pre-stored CRLs are used. If OCSP stapling per RFC 6066 is the only supported revocation method, this test is omitted.<htm:br/><htm:br/>The evaluator shall ensure that a valid certificate is used, and that the validation function succeeds. The evaluator then attempts the test with a certificate that has been revoked (for each method chosen in the selection) to ensure when the certificate is no longer valid that the validation function fails.<htm:br/></test>
                  <test>If any OCSP option is selected, the evaluator shall configure the OCSP server or use a man-in-the-middle tool to present a certificate that does not have the OCSP signing purpose and verify that validation of the OCSP response fails. If<xref to="s-crl"/>  is selected, the evaluator shall configure the CA to sign a CRL with a certificate that does not have the cRLsign key usage bit set, and verify that validation of the CRL fails.</test>
                  <test>The evaluator shall modify any byte in the first eight bytes of the certificate and demonstrate that the certificate fails to validate (the certificate will fail to parse correctly).</test>
                  <test>The evaluator shall modify any bit in the last byte of the signature algorithm of the certificate and demonstrate that the certificate fails to validate (the signature on the certificate will not validate).</test>
                  <test>The evaluator shall modify any byte in the public key of the certificate and demonstrate that the certificate fails to validate (the signature on the certificate will not validate).</test>
                  <test>
                    <testlist>
                      <test>(Conditional on support for EC certificates as indicated in FCS_COP.1(3)). The evaluator shall establish a valid, trusted certificate chain consisting of an EC leaf certificate, an EC Intermediate CA certificate not designated as a trust anchor, and an EC certificate designated as a trusted anchor, where the elliptic curve parameters are specified as a named curve. The evaluator shall confirm that the TOE validates the certificate chain.</test>
                      <test>(Conditional on support for EC certificates as indicated in FCS_COP.1(3)). The evaluator shall replace the intermediate certificate in the certificate chain for Test 8a with a modified certificate, where the modified intermediate CA has a public key information field where the EC parameters uses an explicit format version of the Elliptic Curve parameters in the public key information field of the intermediate CA certificate from Test 8a, and the modified Intermediate CA certificate is signed by the trusted EC root CA, but having no other changes. The evaluator shall confirm the TOE treats the certificate as invalid.</test>
                       <htm:br/><htm:br/> 
                    </testlist>
                  </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-cacert-what">
            <title>The TSF shall only treat a certificate as a CA certificate if the basicConstraints extension is present and the CA flag is set to TRUE.</title>
            <note role="application">This requirement applies to certificates that are used and processed by the TSF and restricts the certificates that may be added to the Trust Anchor Database.</note>
          </f-element>
          <audit-event>
            <audit-event-descr>Failure to validate X.509v3 certificate</audit-event-descr>
            <audit-event-info>Reason for failure of validation</audit-event-info>
          </audit-event>
        </f-component>
        <!--FIA_X509_EXT.2 X.509 Certificate Authentication-->
        <f-component cc-id="fia_x509_ext.2" id="fia-x509-ext-2" name="X.509 Certificate Authentication">
          <comp-lev>defines the TSF’s usage of X.509 certificates and how it reacts to certificates with undetermined revocation status.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Configuring whether to allow or disallow establishment of a trusted channel if the TSF cannot establish a connection to determine the validity of a certificate.</htm:li> </htm:ul> </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Failure to establish connection to determine revocation status.</htm:li> </htm:ul> </audit>
          <dependencies>FIA_X509_EXT.1 X.509 Validation of Certificates<htm:br/>FTP_ITC_EXT.1 Trusted Channel Communication</dependencies>
          <f-element id="fel-cert-auth">
            <title>The TSF shall use X.509v3 certificates as defined by RFC 5280 to support authentication for [  <htm:i>mutually authenticated TLS as defined in the<xref to="pkg-tls"/> , HTTPS, <selectables><selectable id="fia_x509_ext.2.1_1">IPsec in accordance with the <xref to="mod-vpnclient"/></selectable><selectable id="x509_dtls">mutually authenticated DTLS as defined in the <xref to="pkg-tls"/></selectable><selectable id="fia_x509_ext.2.1_2" exclusive="yes">no other protocol</selectable> </selectables> </htm:i>  ] and <selectables><selectable id="x509_sys">code signing for system software updates</selectable><selectable id="x509_apps">code signing for mobile applications</selectable><selectable id="x509_sign">code signing for integrity verification</selectable><selectable id="fia_x509_ext.2.1_4"><assignable>other uses</assignable></selectable><selectable id="fia_x509_ext.2.1_5" exclusive="yes">no additional uses</selectable> </selectables>.</title>
            <ext-comp-def-title><title>The TSF shall use X.509v3 certificates as defined by RFC 5280 to support authentication for <assignable>trusted channel protocol </assignable> and <selectables><selectable>code signing for system software updates </selectable> <selectable>code signing for mobile applications </selectable> <selectable>code signing for integrity verification </selectable> <selectable><assignable>other uses </assignable> </selectable> <selectable>no additional uses </selectable> </selectables> . </title> </ext-comp-def-title>
            <note role="application">The ST author’s first selection must match the selection of<xref to="fel-tls-app"/>  and<xref to="fel-wlan"/>  .<htm:br/><htm:br/>Certificates may optionally be used for trusted updates of system software (<xref to="fel-update-key-verify"/>  ) and mobile applications (<xref to="fel-updates-inc-version"/>  ) and for integrity verification (<xref to="fel-bootchain"/>  and<xref to="fel-integrity-fail"/>  ).If<xref to="x509_sys"/>  or<xref to="x509_apps"/>  is selected<xref to="fel-update-int-fail"/>  must be included in the ST.<htm:br/><htm:br/>If<xref to="x509_sign"/>  is selected<xref to="fel-integrity-fail"/>  must be included in the ST.<htm:br/><htm:br/>If<xref to="fel-app-verify-how"/>  is included in the ST,<xref to="x509_apps"/>  must be included in the selection.</note>
            <aactivity level="component">
              <TSS>The evaluator shall check the TSS to ensure that it describes how the TOE chooses which certificates to use, and any necessary instructions in the administrative guidance for configuring the operating environment so that the TOE can use the certificates.<htm:br/><htm:br/>The evaluator shall examine the TSS to confirm that it describes the behavior of the TOE when a connection cannot be established during the validity check of a certificate used in establishing a trusted channel. The evaluator shall verify that any distinctions between trusted channels are described.<htm:br/><htm:br/></TSS>
              <Guidance>If the requirement that the administrator is able to specify the default action, then the evaluator shall ensure that the operational guidance contains instructions on how this configuration action is performed.<htm:br/><htm:br/></Guidance>
              <Tests>
                The evaluator shall perform the following test for each trusted channel: <htm:br/><htm:br/> <htm:br/><htm:br/>
                <testlist>
                  <test>The evaluator shall demonstrate that using a valid certificate that requires certificate validation checking to be performed in at least some part by communicating with a non-TOE IT entity. The evaluator shall then manipulate the environment so that the TOE is unable to verify the validity of the certificate, and observe that the action selected in FIA_X509_EXT.2.2 is performed. If the selected action is administrator-configurable, then the evaluator shall follow the operational guidance to determine that all supported administrator-configurable options behave in their documented manner.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-fail-crt">
            <title>When the TSF cannot establish a connection to determine the revocation status of a certificate, the TSF shall <selectables><selectable id="s-revoke-admin">allow the administrator to choosewhether to accept the certificate in these cases</selectable><selectable id="s-revoke-user">allow the user to choosewhether to accept the certificate in these cases</selectable><selectable id="fia_x509_ext.2.2_1">accept the certificate</selectable><selectable id="s-revoke-deny">not accept the certificate</selectable> </selectables>.</title>
            <ext-comp-def-title><title>When the TSF cannot establish a connection to determine the revocation status of a certificate, the TSF shall <assignable>list of acceptable actions </assignable> . </title> </ext-comp-def-title>
            <note role="application">The TOE must not accept the certificate if it fails any of the other validation rules in FIA_X509_EXT.1. However, often a connection must be established to perform a verification of the revocation status of a certificate - either to download a CRL or to perform OCSP. The selection is used to describe the behavior in the event that such a connection cannot be established (for example, due to a network error). If the TOE has determined the certificate is valid according to all other rules in FIA_X509_EXT.1, the behavior indicated in the selection must determine the validity. If<xref to="s-revoke-admin"/>  or<xref to="s-revoke-user"/>  the administrator-configured or user-configured option is selected, the ST author must also select function<xref to="mf-certValidity"/>  in FMT_SMF.1.<htm:br/><htm:br/><rule id="r-revoke-admin"><if><ref-id>s-revoke-admin </ref-id> </if> <then><ref-id>mf-certValidity </ref-id> </then> </rule>  <rule id="r-revoke-user"><if><ref-id>s-revoke-user </ref-id> </if> <then><ref-id>mf-certValidity </ref-id> </then> </rule>  The TOE may behave differently depending on the trusted channel; for example, in the case of WLAN where connections are unlikely to be established, the TOE may accept the certificate even though certificates are not accepted for other channels. The ST author should select all applicable behaviors.</note>
          </f-element>
          <audit-event/>
          <audit-event>
            <audit-event-descr>Failure to establish connection to determine revocation status</audit-event-descr>
          </audit-event>
        </f-component>
        <!--FIA_X509_EXT.3 Request Validation of Certificates-->
        <f-component cc-id="fia_x509_ext.3" id="fia-x509-ext-3" name="Request Validation of Certificates">
          <comp-lev>requires the TSF to make a certificate validation service available to environmental components.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FIA_X509_EXT.1 X.509 Validation of Certificates</dependencies>
          <f-element id="fel-certval-app-service">
            <title>The TSF shall provide a certificate validation service to applications.</title>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>The evaluator shall write, or the developer shall provide access to, an application that requests certificate validation by the TSF. The evaluator shall verify that the results from the validation match the expected results according to the API documentation. This application may be used to verify that import, removal, modification, and validation are performed correctly according to the tests required by FDP_STG_EXT.1, FTP_ITC_EXT.1, FMT_SMF.1, and FIA_X509_EXT.1.</Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-certval-app-respond">
            <title>The TSF shall respond to the requesting application with the success or failure of the validation.</title>
            <note role="application">In order to comply with all of the rules in FIA_X509_EXT.1, multiple API calls may be required; all of these calls should be clearly documented</note>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FIA_X509_EXT.4 X509 Certificate Enrollment-->
        <f-component cc-id="fia_x509_ext.4" id="fia-x509-ext-4" name="X509 Certificate Enrollment" status="objective">
          <comp-lev>requires the TSF to implement Enrollment over Secure Transport (EST) as a mechanism to obtain X.509 certificates.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Generation of Certificate Enrollment Request.</htm:li> <htm:li>Success or failure of enrollment.</htm:li> <htm:li>Update of EST Trust Anchor Database</htm:li> </htm:ul> </audit>
          <dependencies>FCS_CKM.1 Cryptographic Key Generation<htm:br/>FIA_X509_EXT.1 X.509 Validation of Certificates</dependencies>
          <f-element id="fel-est-how">
            <title>The TSF shall use the Enrollment over Secure Transport (EST) protocol as specified in RFC 7030 to request certificate enrollment using the simple enrollment method described in RFC 7030 Section 4.2.</title>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall check to ensure that the operational guidance contains instructions on requesting certificates from an EST server, including generating a Certificate Request Message.<htm:br/><htm:br/></Guidance>
              <Tests>
                The evaluator shall also perform the following tests. Other tests are performed in conjunction with the evaluation activity listed in the Package for Transport Layer Security. <htm:br/><htm:br/>
                <testlist>
                   <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:br/><htm:br/> 
                  <test>The evaluator shall use the operational guidance to cause the TOE to request certificate enrollment from an EST server using the simple enrollment method described in RFC 7030 Section 4.2, authenticating the certificate request to the server using an existing certificate and private key as described by RFC 7030 Section 3.3.2. The evaluator shall confirm that the resulting certificate is successfully obtained and installed in the TOE key store.</test>
                  <test>The evaluator shall use the operational guidance to cause the TOE to request certificate enrollment from an 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 TOE key store.</test>
                  <test>The evaluator shall modify the EST server to return a certificate containing a different public key than the key included in the TOE’s certificate request. The evaluator shall use the operational guidance to cause the TOE to request certificate enrollment from an EST server. The evaluator shall confirm that the TOE does not accept the resulting certificate since the public key in the issued certificate does not match the public key in the certificate request.</test>
                  <test>The evaluator shall configure the EST server or use a man-in-the-middle tool to present a server certificate to the TOE that is present in the TOE general Trust Anchor Database but not its EST-specific Trust Anchor Database. The evaluator shall cause the TOE to request certificate enrollment from the EST server. The evaluator shall verify that the request is not successful.</test>
                  <test>The evaluator shall configure the EST server or use a man-in-the-middle tool to present an invalid certificate. The evaluator shall cause the TOE to request certificate enrollment from the EST server. The evaluator shall verify that the request is not successful The evaluator shall configure the EST server or use a man-in-the-middle tool to present a certificate that does not have the CMC RA purpose and verify that requests to the EST server fail. The tester shall repeat the test using a valid certificate and a certificate that contains the CMC RA purpose and verify that the certificate enrollment requests succeed.</test>
                  <test>The evaluator shall use a packet sniffing tool between the TOE and an EST server. The evaluator shall turn on the sniffing tool and cause the TOE to request certificate enrollment from an EST server. The evaluator shall verify that the EST protocol interaction occurs over a Transport Layer Security (TLS) protected connection. The evaluator is not expected to decrypt the connection but rather observe that the packets conform to the TLS protocol format.</test>
                  <test>The evaluator shall use the operational guidance to cause the TOE to request a server-provided private key and certificate from an EST server. The evaluator shall confirm that the resulting private key and certificate are successfully obtained and installed in the TOE key store.</test>
                  <test>The evaluator shall modify the 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 to request a server-provided private key and certificate. The evaluator shall confirm that the TOE does not accept the resulting private key and certificate since the private key and public key do not correspond.</test>
                  <test>The evaluator shall configure the EST server to provide a "Root CA Key Update" as described in RFC 7030 Section 4.1.3. The evaluator shall cause the TOE to request CA certificates from the EST server and shall confirm that the EST-specific Trust Anchor Database is updated with the new trust anchor.</test>
                  <test>The evaluator shall configure the EST server to provide a "Root 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 to request CA certificates from the EST server and shall confirm that the EST-specific Trust Anchor Database is not updated with the new trust anchor since the signature did not verify.</test>
                  <test>The evaluator shall use the operational guidance to cause the 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.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-est-what">
            <title>The TSF shall be capable of authenticating EST requests using an existing certificate and corresponding private key as specified by RFC 7030 Section 3.3.2.</title>
          </f-element>
          <f-element id="fel-est-http">
            <title>The TSF shall be capable of authenticating EST requests using HTTP Basic Authentication with a username and password as specified by RFC 7030 Section 3.2.3.</title>
          </f-element>
          <f-element id="fel-est-eta">
            <title>The TSF shall perform authentication of the EST server using an Explicit Trust Anchor following the rules described in RFC 7030, section 3.6.1.</title>
            <note role="application">EST also uses HTTPS as specified in FCS_HTTPS_EXT.1 to establish a secure connection to an EST server. The separate Trust Anchor Database dedicated to EST operations is described as Explicit Trust Anchors in RFC 7030.</note>
          </f-element>
          <f-element id="fel-est-server-key">
            <title>The TSF shall be capable of requesting server-provided private keys as specified in RFC 7030 Section 4.4.</title>
          </f-element>
          <f-element id="fel-est-eta-update">
            <title>The TSF shall be capable of updating its EST-specific Trust Anchor Database using the "Root CA Key Update" process described in RFC 7030 Section 4.1.3.</title>
          </f-element>
          <f-element id="fel-est-crm">
            <title>The TSF shall generate a Certificate Request Message for EST as specified in RFC 2986 and be able to provide the following information in the request: public key and <selectables><selectable id="fia_x509_ext.4.7_1">device-specific information</selectable><selectable id="fia_x509_ext.4.7_2">Common Name</selectable><selectable id="fia_x509_ext.4.7_3">Organization</selectable><selectable id="fia_x509_ext.4.7_4">Organizational Unit</selectable><selectable id="fia_x509_ext.4.7_5">Country</selectable> </selectables>.</title>
            <note role="application">The public key referenced is the public key portion of the public-private key pair generated by the TOE as specified in FCS_CKM.1.</note>
          </f-element>
          <f-element id="fel-est-chain">
            <title>The TSF shall validate the chain of certificates from the Root CA certificate in the Trust Anchor Database to the EST Server CA certificate upon receiving a CA Certificates Response.</title>
          </f-element>
          <audit-event>
            <audit-event-descr>Generation of Certificate Enrollment Request</audit-event-descr>
            <audit-event-info>Issuer and Subject name of EST Server. Method of authentication. Issuer and Subject name of certificate used to authenticate. Content of Certificate Request Message</audit-event-info>
          </audit-event>
          <audit-event>
            <audit-event-descr>Success or failure of enrollment</audit-event-descr>
            <audit-event-info>Issuer and Subject name of added certificate or reason for failure</audit-event-info>
          </audit-event>
          <audit-event>
            <audit-event-descr>Update of EST Trust Anchor Database</audit-event-descr>
            <audit-event-info>Subject name of added Root CA</audit-event-info>
          </audit-event>
        </f-component>
        <!--FIA_X509_EXT.5 X.509 Certificate Requests-->
        <f-component cc-id="fia_x509_ext.5" id="fia-x509-ext-5" name="X.509 Certificate Requests" status="objective">
          <comp-lev>requires the TSF to generate X.509 certificate requests and validate the responses.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_CKM.1 Cryptographic Key Generation<htm:br/>FIA_X509_EXT.1 X.509 Validation of Certificates</dependencies>
          <f-element id="fel-certs-enroll">
            <title>The TSF shall generate a Certificate Request Message as specified in RFC 2986 and be able to provide the following information in the request: public key and <selectables><selectable id="fia_x509_ext.5.1_1">device-specific information</selectable><selectable id="fia_x509_ext.5.1_2">Common Name</selectable><selectable id="fia_x509_ext.5.1_3">Organization</selectable><selectable id="fia_x509_ext.5.1_4">Organizational Unit</selectable><selectable id="fia_x509_ext.5.1_5">Country</selectable> </selectables>.</title>
            <note role="application">The public key referenced in FIA_X509_EXT.5.1 is the public key portion of the public-private key pair generated by the TOE as specified in FCS_CKM.1. The trusted channel requirements do not apply to communication with the CA for the certificate request/response messages.<htm:br/><htm:br/>As Enrollment over Secure Transport (EST) is a new standard that has not yet been widely adopted, this requirement is included as an interim objective requirement in order to allow developers to distinguish those products which have do have the ability to generate Certificate Request Messages but do not yet implement EST.</note>
            <aactivity level="component">
              <TSS>If the ST author selects "device-specific information", the evaluator shall verify that the TSS contains a description of the device-specific fields used in certificate requests.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall check to ensure that the operational guidance contains instructions on generating a Certificate Request Message. If the ST author selects "Common Name", "Organization", "Organizational Unit", or "Country", the evaluator shall ensure that this guidance includes instructions for establishing these fields before creating the certificate request message.<htm:br/><htm:br/></Guidance>
              <Tests>
                The evaluator shall also perform the following tests:
                <testlist>
                   <htm:br/><htm:br/> 
                  <test>The evaluator shall use the operational guidance to cause the TOE to generate a certificate request message. The evaluator shall capture the generated message and ensure that it conforms to the format specified. The evaluator shall confirm that the certificate request provides the public key and other required information, including any necessary user-input information.</test>
                  <test>The evaluator shall demonstrate that validating a certificate response message without a valid certification path results in the function failing. The evaluator shall then load a certificate or certificates as trusted CAs needed to validate the certificate response message, and demonstrate that the function succeeds. The evaluator shall then delete one of the certificates, and show that the function fails.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-certs-chain">
            <title>The TSF shall validate the chain of certificates from the Root CA upon receiving the CA Certificate Response.</title>
          </f-element>
          <audit-event/>
        </f-component>
      </section>
      <!--5.1.6 Class: Security Management (FMT)-->
      <section id="fmt" title="Class: Security Management (FMT)">
        Both the user and the administrator may manage the TOE. This administrator is likely to be acting remotely and could be the Mobile Device Management (MDM) Administrator acting through an MDM Agent.<htm:br/><htm:br/>The Administrator is responsible for management activities, including setting the policy that is applied by the enterprise on the Mobile Device. These management functions are likely to be a different set than those management functions provided to the user. Management functions that are provided to the user and not the administrator are listed in FMT_MOF_EXT.1.1. Management functions for which the administrator may adopt a policy that restricts the user from performing that function are listed in FMT_MOF_EXT.1.2.<htm:br/><htm:br/><xref to="fmt_smf"/>  compares the management functions required by this Protection Profile in the following three requirements (FMT_MOF_EXT.1.1, FMT_MOF_EXT.1.2, and FMT_SMF.1).
        <ext-comp-def title="Management of Functions in TSF" fam-id="FMT_MOF_EXT">
          <fam-behavior>This family defines requirements for authorization to manage the behavior of the TSF that are not addressed by FMT_MOF in CC Part 2.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Specification of Management Functions" fam-id="FMT_SMF_EXT">
          <fam-behavior>This family defines requirements for security-relevant management functions that are not addressed by FMT_SMF in CC Part 2.</fam-behavior>
        </ext-comp-def>
        <!--FMT_MOF_EXT.1 Management of Security Functions Behavior-->
        <f-component cc-id="fmt_mof_ext.1" id="fmt-mof-ext-1" name="Management of Security Functions Behavior">
          <comp-lev>requires the TSF to apply restrictions to access its management functions to the authorized roles.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Managing the group of roles that can interact with the functions in the TSF.</htm:li> </htm:ul> </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FMT_SMF.1 Specification of Management Functions</dependencies>
          <f-element id="fel-mof-est">
            <title>The TSF shall restrict the ability to perform the functions [ <htm:i>in column 4 of<xref to="fmt_smf"/></htm:i>  ] to the user.</title>
            <ext-comp-def-title><title>The TSF shall restrict the ability to perform the functions <assignable>reference to list of management functions </assignable> to the user. </title> </ext-comp-def-title>
            <note role="application">The functions that have an "M" in the fourth column are mandatory for this component, thus are restricted to the user, meaning that the administrator cannot manage those functions. The functions that have an "O" in the fourth column are optional and may be selected; and those functions with a "-" are not applicable and may not be selected. The ST author should select those security management functions that only the user may perform (i.e. the ones the administrator may not perform).<htm:br/><htm:br/>The ST author may not select the same function in both FMT_MOF_EXT.1.1 and FMT_MOF_EXT.1.2. A function cannot contain an "M" in both column 4 and column 6.<htm:br/><htm:br/>The ST author may use a table in the ST, indicating with clear demarcations (to be accompanied by an index) those functions that are restricted to the user (column 4). The ST author should iterate a row to indicate any variations in the selectable sub-functions or assigned values with respect to the values in the columns.<htm:br/><htm:br/>For functions that are mandatory, any sub-functions not in a selection are also mandatory and any assignments must contain at least one assigned value. For non-selectable sub-functions in an optional function, all sub-functions outside a selection must be implemented in order for the function to be listed.</note>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS describes those management functions that may only be performed by the user and confirm that the TSS does not include an Administrator API for any of these management functions. This activity will be performed in conjunction with FMT_SMF.1.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this element. <htm:br/><htm:br/> <htm:br/><htm:br/></Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-mof-restrict">
            <title>The TSF shall restrict the ability to perform the functions [ <htm:i>in column 6 of<xref to="fmt_smf"/></htm:i>  ] to the administrator when the device is enrolled and according to the administrator-configured policy.</title>
            <ext-comp-def-title><title>The TSF shall restrict the ability to perform the functions <assignable>reference to list of management functions </assignable> to the administrator when the device is enrolled and according to the administrator-configured policy. </title> </ext-comp-def-title>
            <note role="application">As long as the device is enrolled in management, the administrator (of the enterprise) must be guaranteed that minimum security functions of the enterprise policy are enforced. Further restrictive policies can be applied at any time by the user on behalf of the user or other administrators.<htm:br/><htm:br/>The functions that have an "M" in the sixth column are mandatory for this component; the functions that have an "O" in the sixth column are optional and may be selected; and those functions with a "-" in the sixth are not applicable and may not be selected.<htm:br/><htm:br/>The ST author may not select the same function in both FMT_MOF_EXT.1.1 and FMT_MOF_EXT.1.2.<htm:br/><htm:br/>The ST author should select those security management functions that the administrator may restrict. The ST author may use a table in the ST, indicating with clear demarcations (to be accompanied by an index) those functions that are and are not implemented with APIs for the administrator (as in column 5). Additionally, the ST author should demarcate which functions the user is prevented from accessing or performing (as in column 6). The ST author should iterate a row to indicate any variations in the selectable sub-functions or assigned values with respect to the values in the columns.<htm:br/><htm:br/>For functions that are mandatory, any sub-functions not in a selection are also mandatory and any assignments must contain at least one assigned value. For non-selectable sub-functions in an optional function, all sub-functions outside the selection must be implemented in order for the function to be listed.</note>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS describes those management functions that may be performed by the Administrator, to include how the user is prevented from accessing, performing, or relaxing the function (if applicable), and how applications/APIs are prevented from modifying the Administrator configuration. The TSS also describes any functionality that is affected by administrator-configured policy and how. This activity will be performed in conjunction with FMT_SMF.1.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<htm:br/><htm:br/></Guidance>
              <Tests>
                <testlist>
                   <htm:br/><htm:br/>  <htm:br/><htm:br/> 
                  <test>The evaluator shall use the test environment to deploy policies to Mobile Devices.</test>
                  <test>The evaluator shall create policies which collectively include all management functions which are controlled by the (enterprise) administrator and cannot be overridden/relaxed by the user as defined in FMT_MOF_EXT.1.2. The evaluator shall apply these policies to devices, attempt to override/relax each setting both as the user (if a setting is available) and as an application (if an API is available), and ensure that the TSF does not permit it. Note that the user may still apply a more restrictive policy than that of the administrator.</test>
                  <test>Additional testing of functions provided to the administrator are performed in conjunction with the testing activities for FMT_SMF.1.1.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FMT_SMF.1 Specification of Management Functions-->
        <f-component cc-id="fmt_smf.1" id="fmt-smf-1" name="Specification of Management Functions">
          <f-element id="fel-smf-ext">
            <title>The TSF shall be capable of performing the following management functions: <htm:b><ctr id="fmt_smf" ctr-type="Table">: Management Functions </ctr></htm:b>  Status Markers:  M - Mandatory  O - Optional/Objective
			<htm:br/><htm:br/>
			<htm:b><ctr id="undefined" ctr-type="Table">: Management Functions</ctr></htm:b>
			<htm:br/><htm:br/>
			Status Markers:<htm:br/> O - Indicates that this function is optional for this role<htm:br/>M - Indicates that this function is mandatory for this role.<htm:br/>NA - Indicates that this function is not applicable for this role<htm:br/><htm:br/>
		<management-function-set default="O"><manager cid="I">Impl.</manager><manager cid="U">User Only</manager><manager cid="A">Admin</manager><manager cid="AO">Admin Only</manager>
				<management-function id="mf-pwd">
					<text>configure password policy:  <htm:ul><htm:li>Minimum password length  </htm:li>  <htm:li>Minimum password complexity  </htm:li>  <htm:li>Maximum password lifetime  </htm:li>  </htm:ul></text>
					<M ref="I"/><NA ref="U"/><M ref="A"/><M ref="AO"/>
					
				<aactivity>
					
					<TSS>The evaluator shall verify the 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).</TSS>
					<Guidance/>
					<Tests>The evaluator shall exercise the 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: <htm:br/><htm:br/> <htm:ul><htm:li>Minimum password length</htm:li> <htm:li>Minimum password complexity</htm:li> <htm:li>Maximum password lifetime</htm:li> </htm:ul></Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-screenlock">
					<text>configure session locking policy:  <htm:ul><htm:li>Screen-lock enabled/disabled  </htm:li>  <htm:li>Screen lock timeout  </htm:li>  <htm:li>Number of authentication failures  </htm:li>  </htm:ul></text>
					<M ref="I"/><NA ref="U"/><M ref="A"/><M ref="AO"/>
					
				<aactivity>
					
					<TSS>The evaluator shall verify the TSS defines the range of values for both timeout period and number of authentication failures for all supported authentication mechanisms.</TSS>
					<Guidance/>
					<Tests>The evaluator shall exercise the TSF configuration as the administrator. The evaluator shall perform positive and negative tests, with at least two values set for each variable setting, for each of the following: <htm:br/><htm:br/> <htm:ul><htm:li>Screen-lock enabled/disabled</htm:li> <htm:li>Screen lock timeout</htm:li> <htm:li>Number of authentication failures (may be combined with test for FIA_AFL_EXT.1)</htm:li> </htm:ul></Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-vpn">
					<text>enable/disable the VPN protection:  <htm:ul><htm:li>Across device  </htm:li>  </htm:ul> <selectables linebreak="yes"><selectable id="s-vpn-per-app">on a per-app basis</selectable><selectable id="s-vpn-per-appgroup">on a per-group of applications processes basis</selectable><selectable id="fmt_smf.1.1_1" exclusive="yes">no other method</selectable> </selectables> </text>
					<M ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note><also ref-id="mf-audioVisual"/><also ref-id="mf-location"/><also ref-id="mf-audioVisual"/>  <also ref-id="mf-location"/>  Functions<_/>  must be implemented on a device-wide basis but may also be implemented on a per-app basis or on a per-group of applications basis in which the configuration includes the list of applications or groups of applications to which the enable/disable applies.</app-note><app-note>Function<_/>  addresses enabling and disabling the IPsec VPN only. The configuration of the VPN Client itself (with information such as VPN Gateway, certificates, and algorithms) is addressed by the<xref to="mod-vpnclient"/>  . The administrator options should only be listed if the administrator can remotely enable/disable the VPN connection.<htm:p>Function<xref to="mf-vpn"/>  optionally allows the VPN to be configured per-app or per-groups of apps. If this configuration is selected, it does not void FDP_IFC_EXT.1. Instead FDP_IFC_EXT.1 is applied to the application or group of applications the VPN is applied to. In other words, all traffic destined for the VPN-enabled application or group of applications, must travel through the VPN, but traffic not destined for that application or group of applications can travel outside the VPN. When the VPN is configured across the device FDP_IFC_EXT.1 applies to all traffic and the VPN must not split tunnel.</htm:p> </app-note>
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The evaluator shall perform the following tests:<testlist><test>The evaluator shall exercise the TSF configuration to enable the VPN protection. These configuration actions must be used for the testing of the FDP_IFC_EXT.1.1 requirement.</test><test>[conditional] If "<xref to="s-vpn-per-app"/>  " is selected, the evaluator shall create two applications and enable one to use the VPN and the other to not use the VPN. The evaluator shall exercise each application (attempting to access network resources; for example, by browsing different websites) individually while capturing packets from the TOE. The evaluator shall verify from the packet capture that the traffic from the VPN-enabled application is encapsulated in IPsec and that the traffic from the VPN-disabled application is not encapsulated in IPsec.</test><test>[conditional] If "<xref to="s-vpn-per-appgroup"/>  " is selected, the evaluator shall create two applications and the applications shall be placed into different groups. Enable one application group to use the VPN and the other to not use the VPN. The evaluator shall exercise each application (attempting to access network resources; for example, by browsing different websites) individually while capturing packets from the TOE. The evaluator shall verify from the packet capture that the traffic from the application in the VPN-enabled group is encapsulated in IPsec and that the traffic from the application in the VPN-disabled group is not encapsulated in IPsec.</test></testlist></Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-radios">
					<text>enable/disable <assignable>list of all radios</assignable> </text>
					<M ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>The assignment in function<_/>  consists of all radios present on the TSF, such as Wi-Fi, cellular, NFC, Bluetooth BR/EDR, and Bluetooth LE, which can be enabled and disabled. In the future, if both Bluetooth BR/EDR and Bluetooth LE are supported, they will be required to be enabled and disabled separately. Disablement of the cellular radio does not imply that the radio may not be enabled in order to place emergency phone calls; however, it is not expected that a device in "airplane mode", where all radios are disabled, will automatically (without authorization) turn on the cellular radio to place emergency calls.</app-note>
				<aactivity>
					
					<TSS>The evaluator shall verify that the TSS includes a description of each radio and an indication of if the radio can be enabled/disabled along with what role can do so. In addition the evaluator shall verify that the frequency ranges at which each radio operates is included in the TSS. The evaluator shall verify that the TSS includes at what point in the boot sequence the radios are powered on and indicates if the radios are used as part of the initialization of the device.</TSS>
					<Guidance>The evaluator shall confirm that the AGD guidance describes how to perform the enable/disable function for each radio.<htm:br/><htm:br/></Guidance>
					<Tests>The evaluator shall ensure that minimal signal leakage enters the RF shielded enclosure (i.e. Faraday bag, Faraday box, RF shielded room) by performing the following steps: <htm:br/><htm:br/> <htm:br/><htm:br/>Step 1: Place the antenna of the spectrum analyzer inside the RF shielded enclosure. <htm:br/><htm:br/> <htm:br/><htm:br/>Step 2: Enable "Max Hold" on the spectrum analyzer and perform a spectrum sweep of the frequency range between 300 MHz – 6000 MHz, in I kHz steps (this range should encompass 802.11, 802.15, GSM, UMTS, and LTE). This range will not address NFC 13.56.MHz, another test should be set up with similar constraints to address NFC. <htm:br/><htm:br/> <htm:br/><htm:br/>If power above -90 dBm is observed, the Faraday box has too great of signal leakage and shall not be used to complete the test for Function <xref to="mf-radios"/>  . The evaluator shall exercise the TSF configuration as the administrator and, if not restricted to the administrator, the user, to enable and disable the state of each radio (e.g. Wi-Fi, cellular, NFC, Bluetooth). Additionally, the evaluator shall repeat the steps below, booting into any auxiliary boot mode supported by the device. For each radio, the evaluator shall: <htm:br/><htm:br/> <htm:br/><htm:br/>Step 1: Place the antenna of the spectrum analyzer inside the RF shielded enclosure. Configure the spectrum analyzer to sweep desired frequency range for the radio to be tested (based on range provided in the TSS)). The ambient noise floor shall be set to -110 dBm. Place the TOE into the RF shielded enclosure to isolate them from all other RF traffic. <htm:br/><htm:br/> <htm:br/><htm:br/>Step 2: The evaluator shall create a baseline of the expected behavior of RF signals. The evaluator shall power on the device, ensure the radio in question is enabled, 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 necessary password to complete the boot process, waiting 5 minutes after the device is fully booted. The evaluator shall observe that RF spikes are present at the expected uplink channel frequency. The evaluator shall clear the "Max Hold" on the spectrum analyzer. <htm:br/><htm:br/> <htm:br/><htm:br/>Step 3: The evaluator shall verify the absence of RF activity for the uplink channel when the radio in question is disabled. The evaluator shall complete the following test five times. The evaluator shall power on the device, ensure the radio in question is 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 necessary password to complete the boot process, waiting 5 minutes 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 channel can be observed initially at device boot. However, if a spike of RF activity for the uplink channel of the specific 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.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-audioVisual">
					<text>enable/disable <assignable>list of audio or visual collection devices</assignable> :  <htm:ul><htm:li>Across device  </htm:li>  </htm:ul> <selectables linebreak="yes"><selectable id="s-audiovisual-per-app">on a per-app basis</selectable><selectable id="s-audiovisual-per-appgroup">on a per-group of applications processes basis</selectable><selectable id="fmt_smf.1.1_2" exclusive="yes">no other method</selectable> </selectables> </text>
					<M ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>The assignment in function<_/>  consists of at least one audio or visual device, such as camera and microphone, which can be enabled and disabled by either the user or administrator. Disablement of 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 restricted to the enterprise (either device-wide, per-app or per-group of applications) and others are able to be restricted to users, then this function should be iterated in the table with the appropriate table entries.<htm:p>Regarding functions<xref to="mf-radios"/>  and<xref to="mf-audioVisual"/>  , disablement of a particular radio or audio/visual device must be effective as soon as the TOE has power. Disablement must also apply when the TOE is booted into auxiliary boot modes, for example, associated with updates or backup. If the TOE supports states in which security management policy is inaccessible, for example, due to data-at-rest protection, it is acceptable to meet this requirement by ensuring that these devices are disabled by default while in these states. That these devices are disabled during auxiliary boot modes does not imply that the device (particularly the cellular radio) may not be enabled in order to perform emergency phone calls.</htm:p> </app-note>
				<aactivity>
					
					<TSS>The evaluator shall verify that the TSS includes a description of each collection device and an indication of if it can be enabled/disabled along with what role can do so. The evaluator shall confirm that the AGD guidance describes how to perform the enable/disable function.</TSS>
					<Guidance/>
					<Tests>The evaluator shall perform the following tests:<testlist><test>The evaluator shall exercise the TSF configuration 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) listed by the ST author. For each collection device, the evaluator shall disable the device and then attempt to use its functionality. The evaluator shall reboot the TOE and verify that disabled collection devices may not be used during or early in the boot process. Additionally, the evaluator shall boot the device into each available auxiliary boot mode and verify that the collection device cannot be used.</test><test>[conditional] If "<xref to="s-audiovisual-per-app"/>  " is selected, the evaluator shall create two applications and enable one to use access the A/V device and the other to not access the A/V device. The evaluator shall exercise each application attempting to access the A/V device individually. The evaluator shall verify that the enabled application is able to access the A/V device and the disabled application is not able to access the A/V device.</test><test>[conditional] If "<xref to="s-audiovisual-per-appgroup"/>  " is selected, the evaluator shall create two applications and the applications shall be placed into different groups. Enable one group to access the A/V device and the other to not access the A/V device. The evaluator shall exercise each application attempting to access the A/V device individually. The evaluator shall verify that the application in the enabled group is able to access the A/V device and the application in the disabled group is not able to access the A/V device.</test></testlist></Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-lockState">
					<text>transition to the locked state</text>
					<M ref="I"/><NA ref="U"/><M ref="A"/><NA ref="AO"/>
					
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The evaluator shall use the test environment to instruct the TSF, both as a user and as the administrator, to command the device to transition to a locked state, and verify that the device transitions to the locked state upon command.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-wipe">
					<text>TSF wipe of protected data</text>
					<M ref="I"/><NA ref="U"/><M ref="A"/><NA ref="AO"/>
					<app-note>Wipe of the TSF (function<xref to="mf-wipe"/>  ) is performed according to 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 considered sensitive data as well.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The evaluator shall use the test environment to instruct the TSF, both as a user and as the administrator, to command the device to perform a wipe of protected data. The evaluator must ensure that this management setup is used when conducting the Evaluation Activities in FCS_CKM_EXT.5.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-appInstallRules">
					<text>configure application installation policy by <selectables linebreak="yes"><selectable id="mf-appInstallRules-restrict">restricting the sources of applications</selectable><selectable id="mf-appInstallRules-specify">specifying a set of allowed applications based on <assignable>application characteristics</assignable> (anapplication allowlist)</selectable><selectable id="mf-appInstallRules-deny">denying installation of applications</selectable> </selectables> </text>
					<M ref="I"/><NA ref="U"/><M ref="A"/><M ref="AO"/>
					<app-note>The selection in function<xref to="mf-appInstallRules"/>  allows the ST author to select which mechanisms are available to the administrator through the MDM Agent to restrict the applications which the user may install. The ST author must state if application allowlist is applied device-wide or if it can be specified to apply to either the Enterprise or Personal applications.<htm:ul><htm:li>If the administrator can restrict the sources from which applications can be installed, the ST author selects "<xref to="mf-appInstallRules-restrict"/>  ".</htm:li> <htm:li>If the administrator can specify a allowlist of allowed applications, the ST author selects "<xref to="mf-appInstallRules-specify"/>  ". The ST author should list any application characteristics (e.g. name, version, or developer) based on which the allowlist can be formed.</htm:li> <htm:li>If the administrator can prevent the user from installing additional applications, the ST author selects "<xref to="mf-appInstallRules-deny"/>  ".</htm:li> </htm:ul> </app-note>
				<aactivity>
					
					<TSS>The evaluator shall verify the TSS describes the allowable application installation policy options based on the selection included in the ST. If the<xref to="mf-appInstallRules-specify"/>  is selected, the evaluator shall verify that the TSS includes a description of each application characteristic upon which the allowlist may be based.</TSS>
					<Guidance/>
					<Tests>The evaluator shall exercise the TSF configuration as the administrator to restrict particular applications, sources of applications, or application installation according to the AGD guidance. The evaluator shall attempt to install unauthorized applications and ensure that this is not possible. The evaluator shall, in conjunction, perform the following specific tests:<testlist><test>[conditional] The evaluator shall attempt to connect to an unauthorized repository in order to install applications.</test><test>[conditional] The evaluator shall attempt to install two applications (one allowlisted, and one not) from a known allowed repository and verify that the application not on the allowlist is rejected. The evaluator shall also attempt to side-load executables or installation packages via USB connections to determine that the white list is still adhered to</test></testlist></Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-keyStorage">
					<text>import keys or secrets into the secure key storage</text>
					<M ref="I"/><O ref="U"/><O ref="A"/><NA ref="AO"/>
					
				<aactivity>
					
					<TSS>The evaluator shall verify that the TSS describes each category of keys or secrets that can be imported into the TSF’s secure key storage.</TSS>
					<Guidance/>
					<Tests>The test of these functions is performed in association with FCS_STG_EXT.1.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-keyWipe">
					<text>destroy imported keys or secrets and <selectables><selectable id="fmt_smf.1.1_4" exclusive="yes">no other keys or secrets</selectable><selectable id="fmt_smf.1.1_6"><assignable>list of other categories of keys or secrets</assignable></selectable> </selectables> in the secure key storage</text>
					<M ref="I"/><O ref="U"/><O ref="A"/><NA ref="AO"/>
					
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests/>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-certImport">
					<text>import X.509v3 certificates into the Trust Anchor Database</text>
					<M ref="I"/><NA ref="U"/><M ref="A"/><O ref="AO"/>
					
				<aactivity>
					
					<TSS/>
					<Guidance>The evaluator shall review the AGD guidance to determine that it describes the steps needed to import, modify, or remove certificates in the Trust Anchor database, and that the users that have authority to import those certificates (e.g., only administrator, or both administrators and users) are identified.</Guidance>
					<Tests>The evaluator shall import certificates according to the AGD guidance as the user or as the administrator, as 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.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-certWipe">
					<text>remove imported X.509v3 certificates and <selectables><selectable id="fmt_smf.1.1_7" exclusive="yes">no other X.509v3 certificates</selectable><selectable id="fmt_smf.1.1_9"><assignable>list of other categories of X.509v3 certificates</assignable></selectable> </selectables> in the Trust Anchor Database</text>
					<M ref="I"/><O ref="U"/><O ref="A"/><NA ref="AO"/>
					<app-note>In the future, function<xref to="mf-certWipe"/>  may require destruction or disabling of any default trusted CA certificates, excepting those CA certificates necessary for continued operation of the TSF, such as the developer’s certificate. At this time, the ST author must indicate in the assignment whether pre-installed or any other category of X.509v3 certificates may be removed from the Trust Anchor Database.</app-note>
				<aactivity>
					
					<TSS>The evaluator shall verify that the TSS describes each additional category of X.509 certificates and their use within the TSF.</TSS>
					<Guidance/>
					<Tests>The evaluator shall remove an administrator-imported certificate and any other categories of certificates included in the assignment of function <xref to="mf-appRemove"/>  from the Trust Anchor Database according to the AGD guidance as the user and as the administrator.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-enroll">
					<text>enroll the TOE in management</text>
					<M ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>For function<xref to="mf-enroll"/>  , the enrollment function may be installing an MDM agent and includes the policies to be applied to the device. It is acceptable for the user approval notice to require the user to intentionally opt to view the policies (for example, by "tapping" on a "View" icon) rather than listing the policies in full in the notice.</app-note>
				<aactivity>
					
					<TSS>The evaluator shall examine the TSS to ensure that it contains a description of each management function that will be enforced by the enterprise once the device is enrolled. The evaluator shall examine the AGD guidance to determine that this same information is present.</TSS>
					<Guidance/>
					<Tests>The evaluator shall verify that user approval is required to enroll the device into management.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-appRemove">
					<text>remove applications</text>
					<M ref="I"/><NA ref="U"/><M ref="A"/><O ref="AO"/>
					
				<aactivity>
					
					<TSS>The evaluator shall verify that the TSS includes an indication of what applications (e.g., user-installed applications, Administrator-installed applications, or Enterprise applications) can be removed along with what role can do so. The evaluator shall examine the AGD guidance to determine that it details, for each type of application that can be removed, the procedures necessary to remove those applications and their associated data. For the purposes of this Evaluation Activity, "associated data" refers to data that are created by the app during its operation that do not exist independent of the app's existence, for instance, configuration data, or e-mail information that’s part of an e-mail client. It does not, on the other hand, refer to data such as word processing documents (for a word processing app) or photos (for a photo or camera app).</TSS>
					<Guidance/>
					<Tests>The evaluator shall attempt to remove applications according to the AGD guidance and verify that the TOE no longer permits users to access those applications or their associated data.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-update">
					<text>update system software</text>
					<M ref="I"/><NA ref="U"/><M ref="A"/><O ref="AO"/>
					<app-note>For function<xref to="mf-update"/>  , the administrator capability to update the system software may be limited to causing a prompt to the user to update rather than the ability to initiate the update itself. As the administrator is likely to be acting remotely, he/she would be unaware of inopportune situations, such as low power, which may cause the update to fail and the device to become inoperable. The user can refuse to accept the update in such situations. It is expected that system architects will be cognizant of this limitation and will enforce network access controls in order to enforce enterprise-critical updates.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The evaluator shall attempt to update the TSF system software following the procedures in the AGD guidance and verify that updates correctly install and that the version numbers of the system software increase.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-appInstall">
					<text>install applications</text>
					<M ref="I"/><NA ref="U"/><M ref="A"/><O ref="AO"/>
					<app-note>Function<xref to="mf-appInstall"/>  addresses both installation and update. This protection profile does not distinguish between installation and update of applications because mobile devices typically completely overwrite the previous installation with a new installation during an application update.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>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.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-entAppRemove">
					<text>remove Enterprise applications</text>
					<M ref="I"/><NA ref="U"/><M ref="A"/><NA ref="AO"/>
					<app-note>For function<xref to="mf-entAppRemove"/>  , "Enterprise applications" are those applications that belong to the Enterprise application group. Applications installed by the enterprise administrator (including automatic installation by the administrator after being requested by the user from a catalog of enterprise applications) are by default placed in the Enterprise application group unless an exception has been made in function<xref to="mf-appGroups"/>  of FMT_SMF.1.1.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The evaluator shall attempt to remove any Enterprise applications from the device by following the administrator guidance. The evaluator shall verify that the TOE no longer permits users to access those applications or their associated data.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-notifications">
					<text>enable/disable display notification in the locked state of: <selectables linebreak="yes"><selectable id="fmt_smf.1.1_10">email notifications</selectable><selectable id="fmt_smf.1.1_11">calendar appointments</selectable><selectable id="fmt_smf.1.1_12">contact associated with phone call notification</selectable><selectable id="fmt_smf.1.1_13">text message notification</selectable><selectable id="fmt_smf.1.1_15"><assignable>other application-based notifications</assignable></selectable><selectable id="fmt_smf.1.1_16">all notifications</selectable> </selectables> </text>
					<M ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>If the display of notifications in the locked state is supported, the configuration of these notifications (function<xref to="mf-notifications"/>  ) must be included in the selection.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance>The evaluator shall examine the AGD Guidance to determine that it specifies, for at least each category of information selected for Function<xref to="mf-notifications"/>  , how to enable and disable display information for that type of information in the locked state.</Guidance>
					<Tests>For each category of information listed in the AGD guidance, the evaluator shall verify that when that TSF is configured to limit the information according to the AGD, the information is no longer displayed in the locked state.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-dar">
					<text>enable data-at rest protection</text>
					<M ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>Function<xref to="mf-dar"/>  must be included in the selection if data-at-rest protection is not natively enabled.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The evaluator shall exercise the 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 (FDP_DAR) are conducted with the device in this configuration.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-rmediaDar">
					<text>enable removable media’s data-at-rest protection</text>
					<M ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>Function<xref to="mf-rmediaDar"/>  is implicitly met if the TSF does not support removable media.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The evaluator shall exercise the 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 (FDP_DAR) are conducted with the device in this configuration.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-location">
					<text>enable/disable location services:  <htm:ul><htm:li>Across device  </htm:li>  </htm:ul> <selectables linebreak="yes"><selectable id="mf-location-per_app">on a per-app basis</selectable><selectable id="fmt_smf.1.1_17">on a per-group of applications processes basis</selectable><selectable id="fmt_smf.1.1_18" exclusive="yes">no other method</selectable> </selectables> </text>
					<M ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>For function<xref to="mf-location"/>  , location services include location information gathered from GPS, cellular, and Wi-Fi.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The evaluator shall perform the following tests.<testlist><test>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’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’s location information.</test><test>[conditional] If<xref to="mf-location-per_app"/>  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.</test></testlist></Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-authFactors">
					<text>enable/disable the use of <selectables><selectable id="fmt_smf.1.1_19">Biometric Authentication Factor</selectable><selectable id="fmt_smf.1.1_20">Hybrid Authentication Factor</selectable> </selectables> </text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>Function<xref to="mf-authFactors"/>  must be included in the ST if the TOE contains a BAF. This selection must correspond with the selection made in FIA_UAU.5.1. If<xref to="uau_biometric"/>  is selected in FIA_UAU.5.1, "Biometric Authentication Factor" must be selected and the user or admin must have the option to disable the use of it. If multiple BAFs are claimed in FIA_MBV_EXT.1.1 in the<xref to="mod-biometrics"/>  , this applies to all different modalities. If<xref to="uau_hybr"/>  is selected in FIA_UAU.5.1 it must be selected and the user or admin must have the option to disable the use of it.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The evaluator shall verify that the TSS states if the TOE supports a BAF or hybrid authentication. If the TOE does not include a BAF or hybrid authentication this test is implicitly met.<testlist><test>[conditional] If<xref to="uau_biometric"/>  is selected in FIA_UAU.5.1, for each BAF claimed in FIA_MBV_EXT.1.1 in the<xref to="mod-biometrics"/>  the evaluator shall verify that the TSS describes the procedure to enable/disable the BAF.The evaluator shall configure the TOE to allow each supported BAF to authenticate and verify that successful authentication can be achieved using the BAF. The evaluator shall configure the TOE to disable the use of each supported BAF for authentication and confirm that the BAF cannot be used to authenticate.</test><test>[conditional] If<xref to="uau_hybr"/>  is selected the evaluator shall verify that the TSS describes the procedure to enable/disable the hybrid (biometric credential and PIN/password) authentication. The evaluator shall configure the 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 to disable the use of hybrid authentication and confirm that the hybrid authentication cannot be used to authenticate.</test></testlist></Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-certInvalid">
					<text>configure whether to allow or disallow establishment of <assignable>configurable trusted channel in FTP_ITC_EXT.1.1 or FDP_UPC_EXT.1.1/APPS</assignable> if the peer or server certificate is deemed invalid.</text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>Function<xref to="mf-certInvalid"/>  must be included in the ST if the function is configurable on the TOE for any of the trusted channels either mandated or selected in<xref to="fel-wlan"/>  or<xref to="fel-tls-app"/>  . The configuration can be different depending on the specific trusted channel(s) and they must be filled in for the assignment.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The test of this function is performed in conjunction with FIA_X509_EXT.2.2, FCS_TLSC_EXT.1.3 in the <xref to="pkg-tls"/>  .</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-externalPorts">
					<text>enable/disable all data signaling over <assignable>list of externally accessible hardware ports</assignable> </text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>The assignment in function<xref to="mf-externalPorts"/>  consists of all externally accessible hardware ports, such as USB, the SD card, and HDMI, whose data transfer capabilities can be enabled and disabled by either the user or administrator. Disablement of data transfer over an external port must be effective during and after boot into the normal operative mode of the device. If the TOE supports states in which configured security management policy is inaccessible, for example, due to data-at-rest protection, it 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 enabled or disabled separately. The configuration policy need not disable all ports together. In the case of USB, charging is still allowed if data transfer capabilities have been disabled.</app-note>
				<aactivity>
					
					<TSS>The evaluator shall verify that the 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.</TSS>
					<Guidance/>
					<Tests>The evaluator shall exercise the TSF configuration to enable and disable data transfer capabilities over each externally accessible hardware ports (e.g. USB, SD card, HDMI) listed by the ST author. The evaluator shall use test equipment for the particular interface to ensure that while the TOE may continue to receive data on the RX pins, it is not responding on TX 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.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-serverProtocols">
					<text>enable/disable <assignable>list of protocols where the device acts as a server</assignable> </text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>The assignment in function<xref to="mf-serverProtocols"/>  consists of all protocols where the TSF acts as a server, which can be enabled and disabled by either the user or administrator.</app-note>
				<aactivity>
					
					<TSS>The evaluator shall verify that the TSS describes how the TSF acts as a server in each of the protocols listed in the ST, and the reason for acting as a server.</TSS>
					<Guidance/>
					<Tests>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 or TOE resources using any disabled protocols.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-devModes">
					<text>enable/disable developer modes</text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>Function<xref to="mf-devModes"/>  must be included in the selection if developer modes are supported by the TSF.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The evaluator shall exercise the 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.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-authBypass">
					<text>enable/disable bypass of local user authentication</text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>Function<xref to="mf-authBypass"/>  must be included in the selection if bypass of local user authentication, such as a "Forgot Password", password hint, or remote authentication feature, is supported.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance>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.</Guidance>
					<Tests>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.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-wipeEntData">
					<text>wipe Enterprise data</text>
					<O ref="I"/><O ref="U"/><O ref="A"/><NA ref="AO"/>
					
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>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.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-appCert">
					<text>approve <selectables><selectable id="fmt_smf.1.1_23">import</selectable><selectable id="fmt_smf.1.1_24">removal</selectable> </selectables> by applications of X.509v3 certificates in the Trust Anchor Database</text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>Function<xref to="mf-appCert"/>  must be included in the selection if the TSF allows applications, other than the MDM Agents, to import or remove X.509v3 certificates from the Trust Anchor Database. The MDM Agent is considered the administrator. This function does not apply to applications trusting a certificate for its own validations. The function only applies to situations where the application modifies the device-wide Trust Anchor Database, affecting the validations performed by the TSF for other applications. The user or administrator may be provided the ability to globally allow or deny any application requests in order to meet this requirement.</app-note>
				<aactivity>
					
					<TSS>The evaluator shall verify that the 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.).<htm:br/><htm:br/>The evaluator shall also verify that the API documentation provided according to<xref to="adv"/>  includes any security functions (import, modification, or destruction of the Trust Anchor Database) allowed by applications.</TSS>
					<Guidance/>
					<Tests>The evaluator shall perform one of the following tests:<testlist><test>[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 requires approval before allowing the application to import the certificate:<htm:ul><htm:li>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).</htm:li> <htm:li>The evaluator shall repeat the test, allowing the approval to verify that the application is able to import the certificate and that validation occurs.</htm:li> </htm:ul> </test><test>[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 requires approval before allowing the application to remove the certificate:<htm:ul><htm:li>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).</htm:li> </htm:ul> </test></testlist></Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-certValidity">
					<text>configure whether to allow or disallow establishment of a trusted channel if the TSF cannot establish a connection to determine the validity of a certificate</text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>Function<xref to="mf-certValidity"/>  must be included in the ST if "administrator-configured option" is selection in FIA_X509_EXT.2.2.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The test of this function is performed in conjunction with FIA_X509_EXT.2.2.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-cellular">
					<text>enable/disable the cellular protocols used to connect to cellular network base stations</text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					
				<aactivity>
					
					<TSS>The evaluator shall ensure that the TSS describes which cellular protocols can be disabled.</TSS>
					<Guidance>The evaluator shall confirm that the AGD guidance describes the procedure for disabling each cellular protocol identified in the TSS.</Guidance>
					<Tests>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.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-auditLogs">
					<text>read audit logs kept by the TSF</text>
					<O ref="I"/><O ref="U"/><O ref="A"/><NA ref="AO"/>
					
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>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.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-digSign">
					<text>configure <selectables><selectable id="fmt_smf.1.1_25">certificate</selectable><selectable id="fmt_smf.1.1_26">public-key</selectable> </selectables> used to validate digital signature on applications</text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>Function<xref to="mf-digSign"/>  should be included in the selection if FPT_TUD_EXT.5.1 is included in the ST and the configurable option is selected.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The test of this function is performed in conjunction with FPT_TUD_EXT.5.1.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-sharedKeys">
					<text>approve exceptions for shared use of keys or secrets by multiple applications</text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>Function<xref to="mf-sharedKeys"/>  should be included in the selection if user or administrator is selected in FCS_STG_EXT.1.4.</app-note>
				<aactivity>
					
					<TSS>The evaluator shall verify that the TSS describes how the approval for exceptions for shared use of keys or secrets by multiple applications is accomplished (e.g., a pop-up, policy setting, etc.).</TSS>
					<Guidance/>
					<Tests>The test of this function is performed in conjunction with FCS_STG_EXT.1.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-keyWipeRules">
					<text>approve exceptions for destruction of keys or secrets by applications that did not import the key or secret</text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>Function<xref to="mf-keyWipeRules"/>  should be included in the selection if<xref to="s-killkey-user"/>  or<xref to="s-killkey-admin"/>  is selected in FCS_STG_EXT.1.5.<rule id="r-killkey-user-mf"><if><ref-id>s-killkey-user </ref-id> </if> <then><ref-id>mf-keyWipeRules </ref-id> </then> </rule>  <rule id="r-killkey-admin-mf"><if><ref-id>s-killkey-admin </ref-id> </if> <then><ref-id>mf-keyWipeRules </ref-id> </then> </rule>  </app-note>
				<aactivity>
					
					<TSS>The evaluator shall verify that the TSS describes how the approval for exceptions for destruction of keys or secrets by applications that did not import the key or secret is accomplished (e.g., a pop-up, policy setting, etc.).</TSS>
					<Guidance/>
					<Tests>The test of this function is performed in conjunction with FCS_STG_EXT.1.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-unlockBanner">
					<text>configure the unlock banner</text>
					<M ref="I"/><NA ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note/>
				<aactivity>
					
					<TSS>The evaluator shall verify that the TSS describes any restrictions in banner settings (e.g., character limitations).</TSS>
					<Guidance/>
					<Tests>The test of this function is performed in conjunction with FTA_TAB.1.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-auditItems">
					<text>configure the auditable items</text>
					<O ref="I"/><NA ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>Function<xref to="mf-auditItems"/>  must be included in the selection if FAU_SEL.1 is included in the ST.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The test of this function is performed in conjunction with FAU_SEL.1.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-integ">
					<text>retrieve TSF-software integrity verification values</text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The test of this function is performed in conjunction with FPT_NOT_EXT.2.1.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-USB">
					<text>enable/disable <selectables linebreak="yes"><selectable id="s-usbstore">USB mass storage mode</selectable><selectable id="fmt_smf.1.1_27">USB data transfer without user authentication</selectable><selectable id="fmt_smf.1.1_28">USB data transfer without authentication of the connecting system</selectable> </selectables> </text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					
				<aactivity>
					
					<TSS>The evaluator shall verify that the TSS includes a description of how data transfers can be managed over USB.</TSS>
					<Guidance/>
					<Tests>The evaluator shall perform the following tests based on the selections made in the table:<testlist><test>[conditional] The evaluator shall disable USB mass storage mode, attach the device to a computer, and verify that the computer cannot mount the TOE as a drive. The evaluator shall reboot the TOE and repeat this test with other supported auxiliary boot modes.</test><test>[conditional] The evaluator shall disable USB data transfer without user authentication, attach the device to a computer, and verify that the TOE requires user authentication before the computer can access TOE data. The evaluator shall reboot the TOE and repeat this test with other supported auxiliary boot modes.</test><test>[conditional] The evaluator shall disable USB data transfer without connecting system authentication, attach the device to a computer, and verify that the TOE requires connecting system authentication before the computer can access TOE data. The evaluator shall then connect the TOE to another computer and verify that the computer cannot access TOE data. The evaluator shall then connect the TOE to the original computer and verify that the computer can access TOE data.</test></testlist></Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-backup">
					<text>enable/disable backup of <selectables><selectable id="s-backup-all-apps">all applications</selectable><selectable id="s-backup-sel-apps">selected applications</selectable><selectable id="s-backup-sel-grps">selected groups of applications</selectable><selectable id="s-backup-cfg">configuration data</selectable> </selectables> to <selectables><selectable id="fmt_smf.1.1_29">locally connected system</selectable><selectable id="fmt_smf.1.1_30">remote system</selectable> </selectables> </text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					
				<aactivity>
					
					<TSS>The evaluator shall verify that the 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 shall include which applications of groups of applications backup can be enabled/disabled.</TSS>
					<Guidance/>
					<Tests>If <xref to="s-backup-all-apps"/>  is selected, the evaluator shall disable each selected backup location in turn and verify that the TOE cannot complete a backup. The evaluator shall then enable each selected backup location in turn and verify that the TOE can perform a backup. <htm:br/><htm:br/> <htm:br/><htm:br/>If <xref to="s-backup-sel-apps"/>  is selected, the evaluator shall disable each selected backup location in turn and verify that for the selected application the 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 can perform a backup. <htm:br/><htm:br/> <htm:br/><htm:br/>If <xref to="s-backup-sel-grps"/>  is selected, the evaluator shall disable each selected backup location in turn and verify that for a group of applications the 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 can perform a backup. <htm:br/><htm:br/> <htm:br/><htm:br/>If <xref to="s-backup-cfg"/>  is selected, the evaluator shall disable each selected backup location in turn and verify that the 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 can perform a backup of configuration data.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-hotspot">
					<text>enable/disable <selectables linebreak="yes"><selectable id="fmt_smf.1.1_31">Hotspot functionality authenticated by <selectables><selectable id="fmt_smf.1.1_32">pre-shared key</selectable><selectable id="fmt_smf.1.1_33">passcode</selectable><selectable id="fmt_smf.1.1_34" exclusive="yes">no authentication</selectable></selectables> </selectable><selectable id="s-tether">USB tetheringauthenticated by <selectables><selectable id="fmt_smf.1.1_35">pre-shared key</selectable><selectable id="fmt_smf.1.1_36">passcode</selectable><selectable id="fmt_smf.1.1_37" exclusive="yes">no authentication</selectable></selectables> </selectable> </selectables> </text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>For function<xref to="mf-hotspot"/>  , hotspot functionality refers to the condition in which the mobile device is serving as an access point to other devices, not the connection of the TOE to external hotspots.</app-note>
				<aactivity>
					
					<TSS>The evaluator shall verify that the TSS includes a description of Hotspot functionality and USB tethering to include any authentication for these.</TSS>
					<Guidance/>
					<Tests>The evaluator shall perform the following tests based on the selections in Function <xref to="mf-hotspot"/>  .<testlist><test>[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.</test><test>[conditional] The evaluator shall enable USB tethering functionality with each of the of the support authentication methods. The evaluator shall connect to the TOE over USB with another device and verify that the tethering functionality requires the configured authentication method.</test></testlist></Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-dataSharing">
					<text>approve exceptions for sharing data between <selectables><selectable id="fmt_smf.1.1_38">applications</selectable><selectable id="fmt_smf.1.1_39">groups of applications</selectable> </selectables> </text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>Functions<xref to="mf-dataSharing"/>  and<xref to="mf-appGroups"/>  correspond to FDP_ACF_EXT.1.2.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The test of this function is performed in conjunction with FDP_ACF_EXT.1.2.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-appGroups">
					<text>place applications into application groups based on <assignable>enterprise configuration settings</assignable> </text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>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.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-unenroll">
					<text>unenroll the TOE from management</text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>For function<xref to="mf-unenroll"/>  , FMT_SMF_EXT.2.1 specifies actions to be performed when the TOE is unenrolled from management.</app-note>
				<aactivity>
					
					<TSS/>
					<Guidance/>
					<Tests>The evaluator shall attempt to unenroll the device from management and verify that the steps described in FMT_SMF_EXT.2.1 are performed. This test should be performed in conjunction with the FMT_SMF_EXT.2.1 evaluation activity.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-alwaysOnVPN">
					<text>enable/disable the Always On VPN protection:  <htm:ul><htm:li>Across device  </htm:li>  </htm:ul> <selectables linebreak="yes"><selectable id="fmt_smf.1.1_41">on a per-app basis</selectable><selectable id="fmt_smf.1.1_42">on a per-group of applications processes basis</selectable><selectable id="fmt_smf.1.1_43" exclusive="yes">no other method</selectable> </selectables> </text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					<app-note>Function<_/>  must be included in the ST if IPsec is selected in FTP_ITC_EXT.1 and the native IPsec VPN client can be configured to be Always-On. Always-On is defined as when the TOE has a network connection the VPN attempts to connect, all data leaving the device uses the VPN when the VPN is connected and no data leaves that device when the VPN is disconnected. The configuration of the VPN Client itself (with information such as VPN Gateway, certificates, and algorithms) is addressed by the<xref to="mod-vpnclient"/>  .</app-note>
				<aactivity>
					
					<TSS>The evaluator shall verify that the TSS contains guidance to configure the VPN as Always-On.</TSS>
					<Guidance/>
					<Tests>The evaluator shall configure the VPN as Always-On and perform the following tests:<testlist><test>The evaluator shall verify that when the VPN is connected all traffic is routed through the VPN. This test is performed in conjunction with FDP_IFC_EXT.1.1.</test><test>The evaluator shall verify that when the VPN is not established, that no traffic leaves the device. The evaluator shall ensure that the TOE has network connectivity and that the VPN is established. The evaluator shall use a packet sniffing tool to capture the traffic leaving the TOE. The evaluator shall disable the 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.</test><test>The evaluator shall verify that the TOE has network connectivity and that the VPN is established. The evaluator shall disable network connectivity (i.e. Airplane Mode) and verify that the VPN disconnects. The evaluator shall re-establish network connectivity and verify that the VPN automatically reconnects.</test></testlist></Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-bioRevoke">
					<text>revoke Biometric template</text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					
				<aactivity>
					
					<TSS>The evaluator shall verify that the TSS describes the procedure to revoke a biometric credential stored on the TOE.</TSS>
					<Guidance/>
					<Tests>The evaluator shall configure the TOE to use 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 and confirm that the same BAF cannot be used to authenticate to the device.</Tests>
				</aactivity>
			
				</management-function>
			
				<management-function id="mf-other">
					<text> <assignable>list of other management functions to be provided by the TSF</assignable> </text>
					<O ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
					
				<aactivity>
					
					<TSS>The evaluator shall verify that the TSS describes all assigned security management functions and their intended behavior.</TSS>
					<Guidance/>
					<Tests>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.</Tests>
				</aactivity>
			
				</management-function>
			</management-function-set></title>
            <ext-comp-def-title><title>The TSF shall be capable of performing <assignable>list of management functions </assignable> . </title> </ext-comp-def-title>
            <note role="application"><xref to="fmt_smf"/>  compares the management functions required by this Protection Profile.<htm:br/><htm:br/>The first column lists the management functions identified in the PP.<htm:br/><htm:br/>In the following columns:<htm:ul><htm:li>‘M’ means Mandatory</htm:li> <htm:li>‘O’ means Optional/Objective</htm:li> <htm:li>'-' means that no value (M or O) can be assigned</htm:li> </htm:ul> <htm:br/><htm:br/>The third column ("Impl.") indicates whether the function is to be implemented. The ST author should select which Optional functions are implemented.<htm:br/><htm:br/>The fourth column ("User Only") indicates functions that are to be restricted to the user (i.e. not available to the administrator).<htm:br/><htm:br/>The fifth column ("Admin") indicates functions that are available to the administrator. The functions restricted to the user (column 4) cannot also be available to the administrator. Functions available to the administrator can still be available to the user, as long as the function is not restricted to the administrator (column 6). Thus, if the TOE must offer these functions to the administrator to perform, the fifth column must be selected.<htm:br/><htm:br/>The sixth column (FMT_MOF_EXT.1.2) indicates whether the function is to be restricted to the administrator when the device is enrolled and the administrator applies the indicated policy. 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 setting to make the function stricter, but the user cannot undo the configuration enforced by the administrator.<htm:br/><htm:br/>The ST author may use a table in the ST, listing only those functions that are implemented. For functions that are mandatory, any sub-functions not in a selection are also mandatory and any assignments must contain at least one assigned value. For functions that are optional and contain an assignment or selection, at least one value must be assigned/selected to be included in the ST. For non-selectable sub-functions in an optional function, all sub-functions must be implemented in order for the function to be included. For functions with a "per-app basis" sub function and an assignment, the ST author must indicate which assigned features are manageable on a per-app basis and which are not by iterating the row.<htm:br/><htm:br/></note>
            <aactivity level="component">
              <TSS>The evaluator shall verify that the TSS describes all management functions, what roles can perform each function, and how these functions are (or can be) restricted to the roles identified by FMT_MOF_EXT.1.<htm:br/><htm:br/>The following activities are organized according to the function number in the table. These activities include TSS Evaluation Activities, AGD Evaluation Activities, and test activities.<htm:br/><htm:br/>Test activities specified below shall take place in the test environment described in the evaluation activity for FPT_TUD_EXT.1.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall consult the AGD guidance to perform each of the specified tests, iterating each test as necessary if both the user and administrator may perform the function. The evaluator shall verify that the AGD guidance describes how to perform each management function, including any configuration details. For each specified management function tested, the evaluator shall confirm that the underlying mechanism exhibits the configured setting.<htm:br/><htm:br/></Guidance>
              <Tests/>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>Initiation of policy update</audit-event-descr>
            <audit-event-info>Policy name</audit-event-info>
          </audit-event>
          <audit-event>
            <audit-event-descr>Change of settings</audit-event-descr>
            <audit-event-info>Role of user that changed setting, Value of new setting</audit-event-info>
          </audit-event>
          <audit-event>
            <audit-event-descr>Success or failure of function</audit-event-descr>
            <audit-event-info>Role of user that performed function, Function performed, Reason for failure</audit-event-info>
          </audit-event>
          <audit-event>
            <audit-event-descr>Initiation of software update</audit-event-descr>
            <audit-event-info>Version of update</audit-event-info>
          </audit-event>
          <audit-event>
            <audit-event-descr>Initiation of application installation or update</audit-event-descr>
            <audit-event-info>Name and version of application</audit-event-info>
          </audit-event>
        </f-component>
        <!--FMT_SMF_EXT.2 Specification of Remediation Actions-->
        <f-component cc-id="fmt_smf_ext.2" id="fmt-smf-ext-2" name="Specification of Remediation Actions">
          <comp-lev>requires the TSF to automatically perform specific management functions in response to a specific event.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Configuration of the functions that are performed in response to unenrollment event.</htm:li> </htm:ul> </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Initiation of unenrollment.</htm:li> <htm:li>Completion of unenrollment.</htm:li> </htm:ul> </audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fmt-smf-ext-acts">
            <title>The TSF shall offer <selectables><selectable id="s-smf-wipe-pro">wipe of protected data</selectable><selectable id="s-smf-wipe-sen">wipe of sensitive data</selectable><selectable id="s-smf-ext-2-rem-ent-app">remove Enterprise applications</selectable><selectable id="fmt_smf_ext.2.1_1">remove all device-stored Enterprise resource data</selectable><selectable id="fmt_smf_ext.2.1_2">remove Enterprise secondary authentication data</selectable><selectable id="fmt_smf_ext.2.1_4"><assignable>list other available remediation actions</assignable></selectable> </selectables> upon unenrollment and <selectables><selectable id="fmt_smf_ext.2.1_6"><assignable>other administrator-configured triggers</assignable></selectable><selectable id="fmt_smf_ext.2.1_7" exclusive="yes">no other triggers</selectable> </selectables>.</title>
            <ext-comp-def-title><title>The TSF shall offer <assignable>list of remediation actions </assignable> upon unenrollment and <assignable>list of triggers </assignable> . </title> </ext-comp-def-title>
            <note role="application">Unenrollment may consist of removing the MDM agent or removing the administrator’s policies. The functions in the selection are remediation actions that TOE may provide (perhaps via APIs) to the administrator (perhaps via an 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. If FDP_ACF_EXT.2.1 is included in the ST, then "remove all device-stored Enterprise resource data" must be selected, and is defined to be all resources selected in FDP_ACF_EXT.2.1. If FIA_UAU_EXT.4.1 is included in the ST, then "remove Enterprise secondary authentication data" must be selected. If FIA_UAU_EXT.4.1 is not included in the ST, then "remove Enterprise secondary authentication data" cannot be selected. Enterprise secondary authentication data only refers to any data stored on the TOE that is specifically used as part of a secondary authentication mechanism to authenticate access to Enterprise applications and shared resources. Material that is used for the TOE’s primary authentication mechanism or other purposes not related to authentication to or protection of Enterprise applications or shared resources should not be removed.<htm:br/><htm:br/>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. If<xref to="s-smf-wipe-pro"/>  is selected it is assumed that the sensitive data is wiped as well. However, if<xref to="s-smf-wipe-sen"/>  is selected, it does not imply that all non-TSF data (protected data) is wiped. If<xref to="s-smf-wipe-pro"/>  or<xref to="s-smf-wipe-sen"/>  is selected the wipe must be in accordance with FCS_CKM_EXT.5.1. Thus cryptographically wiping the device is an acceptable remediation action.</note>
            <aactivity level="component">
              <TSS>The evaluator shall verify that the TSS describes all available remediation actions, when they are available for use, and any other administrator-configured triggers. The evaluator shall verify that the TSS describes how the remediation actions are provided to the administrator.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>The evaluator shall use the test environment to iteratively configure the device to perform each remediation action in the selection. The evaluator shall configure the remediation action per how the TSS states it is provided to the administrator. The test environment could be a MDM agent application, but can also be an application with administrator access.</Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>Unenrollment, Initiation of unenrollment</audit-event-descr>
            <audit-event-info>Identity of administrator Remediation action performed, failure of accepting command to unenroll</audit-event-info>
          </audit-event>
        </f-component>
        <!--FMT_SMF_EXT.3 Current Administrator-->
        <f-component cc-id="fmt_smf_ext.3" id="fmt-smf-ext-3" name="Current Administrator" status="objective">
          <comp-lev>requires the TSF to provide users with a list of administrators and their specified functions.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FMT_SMR.1 Security Roles</dependencies>
          <f-element id="fel-smf-curr-admin">
            <title>The TSF shall provide a mechanism that allows users to view a list of currently authorized administrators and the management functions that each administrator is authorized to perform.</title>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>The evaluator shall cause the TOE to be enrolled into management. The evaluator shall then invoke this mechanism and verify the ability to view that the device has been enrolled, and view the management functions that the administrator is authorized to perform.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
      </section>
      <!--5.1.7 Class: Protection of the TSF (FPT)-->
      <section id="fpt" title="Class: Protection of the TSF (FPT)">
        <ext-comp-def title="Anti-Exploitation Capabilities" fam-id="FPT_AEX_EXT">
          <fam-behavior>This family defines requirements for protecting against common types of software exploitation techniques.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Baseband Processing" fam-id="FPT_BBD_EXT">
          <fam-behavior>This family defines requirements for separation of baseband and application processor execution.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Limitation of Bluetooth Profile Support" fam-id="FPT_BLT_EXT">
          <fam-behavior>This family defines requirements for limiting Bluetooth capabilities without user action.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="JTAG Disablement" fam-id="FPT_JTA_EXT">
          <fam-behavior>This family defines requirements for JTAG interface access limitations.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Key Storage" fam-id="FPT_KST_EXT">
          <fam-behavior>This family defines requirements for protecting plaintext keys.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Self-Test Notification" fam-id="FPT_NOT_EXT">
          <fam-behavior>This family defines requirements for generation of notifications in response to completed self-tests.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="TSF Self Test" fam-id="FPT_TST_EXT">
          <fam-behavior>This family defines requirements for execution of self-tests that are not addressed by FPT_TST in CC Part 2.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="TSF Updates" fam-id="FPT_TUD_EXT">
          <fam-behavior>This family defines requirements for trusted updates.</fam-behavior>
        </ext-comp-def>
        <!--FPT_AEX_EXT.1 Application Address Space Layout Randomization-->
        <f-component cc-id="fpt_aex_ext.1" id="fpt-aex-ext-1" name="Application Address Space Layout Randomization">
          <comp-lev>requires the TSF to support address space layout randomization (ASLR).</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_RBG_EXT.1 Random Bit Generation</dependencies>
          <f-element id="fel-aslr">
            <title>The TSF shall provide address space layout randomization ASLR to applications.</title>
            <aactivity level="component">
              <TSS>The evaluator shall ensure that the TSS section of the ST describes how the 8 bits are generated and provides a justification as to why those bits are unpredictable.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following test require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products. <htm:br/><htm:br/>
                <testlist>
                  <test>The evaluator must select 3 apps included with the TSF. These must include any web browser or mail client included with the TSF. For each of these apps, the evaluator shall launch the same app on two separate Mobile Devices of the same type and compare all memory mapping locations. The evaluator must ensure that no memory mappings are placed in the same location on both devices.<htm:br/><htm:br/>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 evaluator shall repeat the test with that app to verify that in the second test the mappings are different.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-aslr-size">
            <title>The base address of any user-space memory mapping will consist of at least 8 unpredictable bits.</title>
            <note role="application">The 8 unpredictable bits may be provided by the TSF RBG (as specified in FCS_RBG_EXT.1) but is not required.</note>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_AEX_EXT.2 Memory Page Permissions-->
        <f-component cc-id="fpt_aex_ext.2" id="fpt-aex-ext-2" name="Memory Page Permissions">
          <comp-lev>requires the TSF to enforce access permissions on physical memory.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-page-perms">
            <title>The TSF shall be able to enforce read, write, and execute permissions on every page of physical memory.</title>
            <aactivity level="component">
              <TSS>The evaluator shall ensure that the TSS describes of the memory management unit (MMU), and ensures that this description documents the ability of the MMU to enforce read, write, and execute permissions on all pages of virtual memory.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_AEX_EXT.3 Stack Overflow Protection-->
        <f-component cc-id="fpt_aex_ext.3" id="fpt-aex-ext-3" name="Stack Overflow Protection">
          <comp-lev>requires the TSF to implement stack overflow protection.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-stack-protect">
            <title>TSF processes that execute in a non-privileged execution domain on the application processor shall implement stack-based buffer overflow protection.</title>
            <note role="application">A "non-privileged execution domain" refers to the user mode (as opposed to kernel mode, for instance) of the processor. While not all TSF processes must implement such protection, it is expected that most of the processes (to include libraries used by TSF processes) do implement buffer overflow protections.</note>
            <aactivity level="component">
              <TSS>The evaluator shall determine that the TSS contains a description of stack-based buffer overflow protections implemented in the TSF software which runs in the non-privileged execution mode of the application processor. The exact implementation of stack-based buffer overflow protection will vary by platform. Example implementations may be activated through compiler options such as "-fstack-protector-all", "-fstack-protector", and "/GS" flags. The evaluator shall ensure that the TSS contains an inventory of TSF binaries and libraries, indicating those that implement stack-based buffer overflow protections as well as those that do not. The TSS must provide a rationale for those binaries and libraries that are not protected in this manner.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_AEX_EXT.4 Domain Isolation-->
        <f-component cc-id="fpt_aex_ext.4" id="fpt-aex-ext-4" name="Domain Isolation">
          <comp-lev>requires the TSF to protect itself from untrusted subjects and enforce address space isolation.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-self-protect">
            <title>The TSF shall protect itself from modification by untrusted subjects.</title>
            <aactivity level="component">
              <TSS>The evaluator shall ensure that the TSS describes the mechanisms that are in place that prevents non-TSF software from modifying the TSF software or TSF data that governs the behavior of the TSF. These mechanisms could range from hardware-based means (e.g. "execution rings" and memory management functionality); to software-based means (e.g. boundary checking of inputs to APIs). The evaluator determines that the described mechanisms appear reasonable to protect the TSF from modification.<htm:br/><htm:br/>The evaluator shall ensure the TSS describes how the TSF ensures that the address spaces of applications are kept separate from one another.<htm:br/><htm:br/>The evaluator shall ensure the TSS details the USSD and MMI codes available from the dialer at the locked state or during auxiliary boot modes that may alter the behavior of the TSF. The evaluator shall ensure that this description includes the code, the action performed by the TSF, and a justification that the actions performed do not modify user or TSF data. If no USSD or MMI codes are available, the evaluator shall ensure that the TSS provides a description of the method by which actions prescribed by these codes are prevented.<htm:br/><htm:br/>The evaluator shall ensure the TSS documents any TSF data (including software, execution context, configuration information, and audit logs) which may be accessed and modified over a wired interface in auxiliary boot modes. The evaluator shall ensure that the description includes data, which is modified in support of update or restore of the device. The evaluator shall ensure that this documentation includes the auxiliary boot modes in which the 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 data format and packaging necessary to support modification, and software or hardware tools, if any, which are necessary for modifying the data.<htm:br/><htm:br/>The evaluator shall ensure that the TSS provides a description of the means by which unauthorized and undetected modification (that is, excluding cryptographically verified updates per FPT_TUD_EXT.2) of the TSF data over the wired interface in auxiliary boots modes is prevented. The lack of publicly available tools is not sufficient justification. Examples of sufficient justification include auditing of changes, cryptographic verification in the form of a digital signature or hash, disabling the auxiliary boot modes, and access control mechanisms that prevent writing to files or flashing partitions.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following tests require the vendor to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products. In addition, the vendor provides a list of files (e.g., system files, libraries, configuration files, audit logs) that make up the TSF data. This list could be organized by folders/directories (e.g., /usr/sbin, /etc), as well as individual files that may exist outside of the identified directories. <htm:br/><htm:br/>
                <testlist>
                   <htm:br/><htm:br/> 
                  <test>The evaluator shall create and load an app onto the Mobile Device. This app shall attempt to traverse over all file systems and report any locations to which data can be written or overwritten. The evaluator must ensure that none of these locations are part of the OS software, device drivers, system and security configuration files, key material, or another untrusted application’s image/data. For example, it is acceptable for a trusted photo editor app to have access to the data created by the camera app, but a calculator application shall not have access to the pictures.</test>
                  <test>For each available auxiliary boot mode, the evaluator shall attempt to modify a TSF file of their choosing using the software or hardware tools described in the TSS. The evaluator shall verify that the modification fails.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-iso-appmem">
            <title>The TSF shall enforce isolation of address space between applications.</title>
            <note role="application">In addition to the TSF software (e.g., kernel image, device drivers, trusted applications) that resides in storage, the execution context (e.g., address space, processor registers, per-process environment variables) of the software 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 addition to the software, any configuration information that controls or influences the behavior of the TSF is also to be protected from modification by untrusted subjects.<htm:br/><htm:br/>Configuration information includes, but is not limited to, user and administrative management function settings, WLAN profiles, and Bluetooth data such as the service-level security requirements database.<htm:br/><htm:br/>Untrusted subjects include untrusted applications; unauthorized users who have access to the device while powered off, in a screen-locked state, or when booted into auxiliary boot modes; and, unauthorized users 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 state or booted into auxiliary boot modes.</note>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_AEX_EXT.5 Kernel Address Space Layout Randomization-->
        <f-component cc-id="fpt_aex_ext.5" id="fpt-aex-ext-5" name="Kernel Address Space Layout Randomization" status="objective">
          <comp-lev>requires the TSF to provide ASLR to the kernel.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-kaslr">
            <title>The TSF shall provide address space layout randomization (ASLR) to the kernel.</title>
            <aactivity level="component">
              <TSS>The evaluator shall ensure that the TSS section of the ST describes how the bits are generated and provides a justification as to why those bits are unpredictable.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following test require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products.
                <testlist>
                  <test>The evaluator shall reboot the TOE six times. For each of these reboots, the evaluator shall examine memory mapping locations of the kernel. The evaluator must ensure that for at least five reboots the memory mappings are not placed in the same location on both devices.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-kaslr-min">
            <title>The base address of any kernel-space memory mapping will consist of <assignable>number greater than or equal to 4</assignable> unpredictable bits.</title>
            <note role="application">The unpredictable bits may be provided by the TSF RBG (as specified in FCS_RBG_EXT.1).</note>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_AEX_EXT.6 Write or Execute Memory Page Permissions-->
        <f-component cc-id="fpt_aex_ext.6" id="fpt-aex-ext-6" name="Write or Execute Memory Page Permissions" status="objective">
          <comp-lev>requires the TSF to prevent physical memory from being both writable and executable.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-nx">
            <title>The TSF shall prevent write and execute permissions from being simultaneously granted to any page of physical memory <selectables><selectable id="fpt_aex_ext.6.1_1">with no exceptions</selectable><selectable id="fpt_aex_ext.6.1_3"><assignable>specific exceptions</assignable></selectable> </selectables>.</title>
            <note role="application">Memory used for just-in-time (JIT) compilation is anticipated as an exception in this requirement; if so, the ST author must address how this exception is permitted. It is expected that the memory management unit will transition the system to a non-operational state if any violation is detected in kernel memory space.</note>
            <aactivity level="component">
              <TSS>The evaluator shall ensure that the TSS describes how the operating system of the application processor prevents all processes executing in a non-privileged execution domain from achieving write and execute permissions on any page of memory (with only specified exceptions). The evaluator shall ensure that the TSS describes how such processes are unable to request pages of memory with such permissions, and how they are unable to change permissions to both write and execute on any pages already allocated to them.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_AEX_EXT.7 Heap Overflow Protection-->
        <f-component cc-id="fpt_aex_ext.7" id="fpt-aex-ext-7" name="Heap Overflow Protection" status="objective">
          <comp-lev>requires the TSF to support heap-based buffer overflow protection.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-heap-protect">
            <title>The TSF shall include heap-based buffer overflow protections in the runtime environment it provides to processes that execute on the application processor.</title>
            <note role="application">These heap-based buffer overflow protections are expected to ensure the integrity of heap metadata such as memory addresses or offsets recorded by the heap implementation to manage memory blocks. This includes chunk headers, look-aside lists, and other data structures used to track the state and location of memory blocks managed by the heap.</note>
            <aactivity level="component">
              <TSS>The evaluator shall verify that the TSS enumerates the heap implementations provided to userspace processes. The evaluator shall ensure that the TSS lists all types of heap metadata and identifies how the integrity of each type of metadata is ensured. The evaluator shall ensure that the TSS identifies all fields within each type of metadata and identifies how the integrity of these fields is ensured. The evaluator shall verify that the TSS identifies the manner in which an error condition is entered when a heap overflow is detected and the resulting actions taken by the TSF.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>For each heap implementation, the evaluator shall write, or the developer shall provide access to, an application, which allocates memory from the heap and then writes arbitrary data significantly beyond the end of the allocated buffer. The evaluator shall attempt to execute this application and verify that the write is not allowed.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_BBD_EXT.1 Application Processor Mediation-->
        <f-component cc-id="fpt_bbd_ext.1" id="fc-ap_med" name="Application Processor Mediation" status="objective">
          <comp-lev>requires the TSF to enforce separation between baseband and application processor execution except through application processor mechanisms.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-cpu-med">
            <title>The TSF shall prevent code executing on any baseband processor (BP) from accessing application processor (AP) resources except when mediated by the AP.</title>
            <note role="application">These resources include:<htm:br/><htm:ul><htm:li>Volatile and non-volatile memory</htm:li> <htm:li>Control of and data from integrated and non-integrated peripherals (e.g. USB controllers, touch screen controllers, LCD controller, codecs)</htm:li> <htm:li>Control of and data from integrated and non-integrated I/O sensors (e.g. camera, light, microphone, GPS, accelerometers, geomagnetic field sensors)</htm:li> </htm:ul> <htm:br/>Mobile devices are becoming increasingly complex having an application processor that runs an operating system and user applications and separate baseband processors that handle cellular and other wireless network connectivity.<htm:br/><htm:br/><htm:ul><htm:li>The application processor within most modern Mobile Devices is a system on a chip (SoC) that integrates, for example, CPU/GPU cores and memory interface electronics into a single, power-efficient package.</htm:li> <htm:li>Baseband processors are becoming increasingly complex themselves delivering voice encoding alongside multiple independent radios (LTE, Wi-Fi, Bluetooth, FM, GPS) in a single package containing multiple CPUs and DSPs.</htm:li> </htm:ul> <htm:br/>Thus, the baseband processors in these requirements include such integrated SoCs and include any radio processors (integrated or not) on the Mobile Device.<htm:br/><htm:br/>All other requirements mostly, except where noted, apply to firmware/software on the application processor, but future requirements (notably, all Integrity, Access Control, and Anti-Exploitation requirements) will apply to application processors and baseband processors.</note>
            <aactivity level="component">
              <TSS>The evaluator shall ensure that the TSS section of the ST describes at a high level how the processors on the Mobile Device interact, including which bus protocols they use to communicate, any other devices operating on that bus (peripherals and sensors), and identification of any shared resources. The evaluator shall verify that the design described in the TSS does not permit any BPs from accessing any of the peripherals and sensors or from accessing main memory (volatile and non-volatile) used by the AP. In particular, the evaluator shall ensure that the design prevents modification of executable memory of the AP by the BP.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_BLT_EXT.1 Limitation of Bluetooth Profile Support-->
        <f-component cc-id="fpt_blt_ext.1" id="fpt-blt-ext-1" name="Limitation of Bluetooth Profile Support" status="objective">
          <comp-lev>requires the TSF to maintain a disabled by default posture for Bluetooth profiles.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-bluetooth-stop">
            <title>The TSF shall disable support for <assignable>list of Bluetooth profiles</assignable> Bluetooth profiles when they are not currently being used by an application on the Mobile Device, and shall require explicit user action to enable them.</title>
            <note role="application">Some Bluetooth services incur more serious consequences if unauthorized remote devices gain access to them. Such services should be protected by measures like disabling support for the associated Bluetooth profile unless it is actively being used by an application on the Mobile Device (in order to prevent discovery by a Service Discovery Protocol search), and then requiring explicit user action to enable those profiles in order to use the services. It may be further appropriate to require additional user action before granting a remote device access to that service.<htm:br/><htm:br/>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 indicating readiness to transfer an object. After completion of the object transfer, support for the OBEX profile should be suspended until the next time the user requests its use.</note>
            <aactivity level="component">
              <TSS>The evaluator shall ensure that the TSS lists all Bluetooth profiles that are disabled while not in use by an application and which need explicit user action in order to become enabled.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                The evaluator shall perform the following tests:
                <testlist>
                   <htm:br/><htm:br/> 
                  <test>While the service is not in active use by an application on the TOE, the evaluator shall attempt to discover a service associated with a "protected" Bluetooth profile (as specified by the requirement) on the 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. The evaluator shall verify that this attempt fails due to the unavailability of the service and profile.</test>
                  <test>The evaluator shall repeat Test 1 with a device that currently has a trusted device relationship with the TOE and verify that the same behavior is exhibited.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_JTA_EXT.1 JTAG Disablement-->
        <f-component cc-id="fpt_jta_ext.1" id="fpt-jta-ext-1" name="JTAG Disablement">
          <comp-lev>requires the TSF to specify the mechanism used to restrict access to its JTAG interface.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-jtag">
            <title>The TSF shall <selectables><selectable id="s-jtag-kill-hw">disable access through hardware</selectable><selectable id="s-jtag-control-key">control access by a signing key</selectable> </selectables> to JTAG.</title>
            <ext-comp-def-title><title>The TSF shall <assignable>list access control mechanisms </assignable> to JTAG. </title> </ext-comp-def-title>
            <note role="application">This requirement means that access to JTAG must be disabled either through hardware or restricted through the use of a signing key.</note>
            <aactivity level="component">
              <TSS>If<xref to="s-jtag-kill-hw"/>  is selected:<htm:br/>The evaluator shall examine the TSS to determine the location of the JTAG ports on the TSF, to include the order of the ports (i.e. Data In, Data Out, Clock, etc.).<htm:br/><htm:br/>If<xref to="s-jtag-control-key"/>  is selected:<htm:br/>The evaluator shall examine the TSS to determine how access to the JTAG is controlled by a signing key. The evaluator shall examine the TSS to determine when the JTAG can be accessed, i.e. what has the access to the signing key.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests> <htm:b>Evaluation Activity Note:</htm:b>The following test requires the developer to provide access to a test platform that provides the evaluator with chip level access. <htm:br/><htm:br/> <htm:br/><htm:br/>If <xref to="s-jtag-kill-hw"/>  is selected: <htm:br/><htm:br/>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 the device ID cannot be retrieved. <htm:br/><htm:br/> <htm:br/><htm:br/></Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_KST_EXT.1 Key Storage-->
        <f-component cc-id="fpt_kst_ext.1" id="fpt-kst-ext-1" name="Key Storage">
          <comp-lev>requires the TSF to avoid storage of plaintext keys in readable memory.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-keystore-no-text">
            <title>The TSF shall not store any plaintext key material in readable non-volatile memory.</title>
            <note role="application">The intention of this requirement is that the TOE will not write plaintext keying material to persistent storage. For the purposes of this requirement, keying material refers to authentication data, passwords, secret/private symmetric keys, private asymmetric keys, data used to derive keys, etc. These values must be stored encrypted.<htm:br/><htm:br/>This requirement also applies to any value derived from passwords. Thus, the TOE cannot store plaintext password hashes for comparison purposes before protected data is decrypted, and the TOE should use key derivation and decryption to verify the Password Authentication Factor.<htm:br/><htm:br/>If<xref to="uau_hybr"/>  is selected in FIA_UAU.5.1keying material also refers to the PIN/password used as part of the hybrid authentication.</note>
            <aactivity level="component">
              <TSS>The evaluator shall consult the TSS section of the ST in performing the Evaluation Activities for this requirement.<htm:br/><htm:br/>In performing their review, the evaluator shall determine that the TSS contains a description of the activities that happen on power-up and password authentication relating to the decryption of DEKs, stored keys, and data.<htm:br/><htm:br/>The evaluator shall ensure that the description also covers how the cryptographic functions in the FCS requirements are being used to perform the encryption functions, including how the KEKs, DEKs, and stored keys are unwrapped, saved, and used by the TOE so as to prevent plaintext from being written to non-volatile storage. The evaluator shall ensure that the TSS describes, for each power-down scenario how the TOE ensures that all keys in non-volatile storage are not stored in plaintext.<htm:br/><htm:br/>The evaluator shall ensure that the TSS describes how other functions available in the system (e.g., regeneration of the keys) ensure that no unencrypted key material is present in persistent storage.<htm:br/><htm:br/>The evaluator shall review the TSS to determine that it makes a case that key material is not written unencrypted to the persistent storage.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_KST_EXT.2 No Key Transmission-->
        <f-component cc-id="fpt_kst_ext.2" id="fpt-kst-ext-2" name="No Key Transmission">
          <comp-lev>requires the TSF to prevent transmitting plaintext key material to the operational environment.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-keystore-no-tran">
            <title>The TSF shall not transmit any plaintext key material outside the security boundary of the TOE.</title>
            <note role="application">The intention of this requirement is to prevent the logging of plaintext key information to a service that transmits the information off-device. For the purposes of this requirement, key material refers to keys, passwords, and other material that is used to derive keys.<htm:br/><htm:br/>If<xref to="uau_hybr"/>  is selected in FIA_UAU.5.1keying material also refers to the PIN/password used as part of the hybrid authentication.<htm:br/><htm:br/>In the future, this requirement will apply to symmetric and asymmetric private keys stored in the TOE secure key storage where applications are outside the boundary of the TOE. Thus, the TSF will be required to provide cryptographic key operations (signature, encryption, and decryption) on behalf of applications (FCS_SRV_EXT.2.1) that have access to those keys.</note>
            <aactivity level="component">
              <TSS>The evaluator shall consult the TSS section of the ST in performing the Evaluation Activities for this requirement. The evaluator shall ensure that the TSS describes the TOE security boundary. The cryptographic module may very well be a particular kernel module, the Operating System, the Application Processor, or up to the entire Mobile Device.<htm:br/><htm:br/>In performing their review, the evaluator shall determine that the TSS contains a description of the activities that happen on power-up and password authentication relating to the decryption of DEKs, stored keys, and data.<htm:br/><htm:br/>The evaluator shall ensure that the TSS describes how other functions available in the system (e.g., regeneration of the keys) ensure that no unencrypted key material is transmitted outside the security boundary of the TOE.<htm:br/><htm:br/>The evaluator shall review the TSS to determine that it makes a case that key material is not transmitted outside the security boundary of the TOE.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_KST_EXT.3 No Plaintext Key Export-->
        <f-component cc-id="fpt_kst_ext.3" id="fpt-kst-ext-3" name="No Plaintext Key Export">
          <comp-lev>requires the TSF to prevent the export of plaintext keys.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-key-no-export">
            <title>The TSF shall ensure it is not possible for the TOE users to export plaintext keys.</title>
            <note role="application">Plaintext keys include DEKs, KEKs, and all keys stored in the secure key storage (FCS_STG_EXT.1). The intent of this requirement is to prevent the plaintext keys from being exported during a backup authorized by the TOE user or administrator.</note>
            <aactivity level="component">
              <TSS>The ST author will provide a statement of their policy for handling and protecting keys. The evaluator shall check to ensure the TSS describes a policy in line with not exporting either plaintext DEKs, KEKs, or keys stored in the secure key storage.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_NOT_EXT.1 Self-Test Notification-->
        <f-component cc-id="fpt_not_ext.1" id="fpt-not-ext-1" name="Self-Test Notification">
          <comp-lev>requires the TSF to become non-operational when certain failures occur.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Measurement of TSF software.</htm:li> </htm:ul> </audit>
          <dependencies>FPT_TST_EXT.1 TSF Cryptographic Functionality Testing<htm:br/>FPT_TST_EXT.2 TSF Integrity Checking</dependencies>
          <f-element id="fel-selftest-trans">
            <title>The TSF shall transition to non-operational mode and <selectables><selectable id="fpt_not_ext.1.1_1">log failures in the audit record</selectable><selectable id="fpt_not_ext.1.1_2">notify the administrator</selectable><selectable id="fpt_not_ext.1.1_4"><assignable>other actions</assignable></selectable><selectable id="fpt_not_ext.1.1_5" exclusive="yes">no other actions</selectable> </selectables> when the following types of failures occur:  <htm:ul><htm:li>failures of the self-tests</htm:li> <htm:li>TSF software integrity verification failures</htm:li> <htm:li> <selectables><selectable id="fpt_not_ext.1.1_6" exclusive="yes">no other failures</selectable><selectable id="fpt_not_ext.1.1_8"><assignable>other failures</assignable></selectable> </selectables> </htm:li></htm:ul></title>
            <aactivity level="component">
              <TSS>The evaluator shall verify that the TSS describes critical failures that may occur and the actions to be taken upon these critical failures.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following test require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products.
                <testlist>
                  <test>The evaluator shall use a tool provided by the developer to modify files and processes in the system that correspond to critical failures specified in the second list. The evaluator shall verify that creating these critical failures causes the device to take the remediation actions specified in the first list.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>
              <selectables onlyone="yes">
                <selectable>Measurement of TSF software</selectable>
                <selectable>none</selectable>
              </selectables>
            </audit-event-descr>
            <audit-event-info>
              <selectables onlyone="yes">
                <selectable>Integrity verification value</selectable>
                <selectable>No additional information</selectable>
              </selectables>
            </audit-event-info>
          </audit-event>
        </f-component>
        <!--FPT_NOT_EXT.2 Software Integrity Verification-->
        <f-component cc-id="fpt_not_ext.2" id="fpt-not-ext-2" name="Software Integrity Verification" status="objective">
          <comp-lev>requires the TSF to generate and sign software integrity verification values.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Retrieval of TSF software integrity verification values.</htm:li> </htm:ul> </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_COP.1 Cryptographic Operation</dependencies>
          <f-element id="fel-selftest-notify">
            <title>The TSF shall <selectables><selectable id="fpt_not_ext.2.1_1">audit</selectable><selectable id="fpt_not_ext.2.1_2">provide the administrator with</selectable> </selectables> TSF-software integrity verification values.</title>
            <note role="application">These notifications are typically called remote attestation and these integrity values are typically called measurements. The integrity values are calculated from hashes of critical memory and values, including executable code. The ST author must select whether these values are logged as a part of FAU_GEN.1.1 or are provided to the administrator.</note>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS describes which critical memory is measured for these integrity values and how the measurement is performed (including which TOE software performs these generates these values, how that software accesses the critical memory, and which algorithms are used).<htm:br/><htm:br/></TSS>
              <Guidance>If the integrity values are provided to the administrator, the evaluator shall verify that the AGD guidance contains instructions for retrieving these values and information for interpreting them. For example, if multiple measurements are taken, what those measurements are and how changes to those values relate to changes in the device state.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following test may require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products. <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall repeat the following test for each measurement:
                <testlist>
                  <test>The evaluator shall boot the device in an approved state and record the measurement taken (either from the log or by using the administrative guidance to retrieve the value via an MDM Agent). The evaluator shall modify the critical memory or value that is measured. The evaluator shall boot the device and verify that the measurement changed.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-sign-integrity">
            <title>The TSF shall cryptographically sign all integrity verification values.</title>
            <note role="application">The intent of this requirement is to provide assurance to the administrator that the responses provided are from the TOE and have not been modified or spoofed by a man-in-the-middle such as a network-based adversary or a malicious MDM Agent.</note>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS describes which key the 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.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                The evaluator shall perform the following test:
                <testlist>
                  <test>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’s certificate.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_STM.1 Reliable Time Stamps-->
        <f-component cc-id="fpt_stm.1" id="fpt-stm-1" name="Reliable Time Stamps">
          <f-element id="fel-timestamp">
            <title>The TSF shall be able to provide reliable time stamps <htm:b>for its own use</htm:b>  .</title>
            <aactivity level="component">
              <TSS>The evaluator shall examine the TSS to ensure that it lists each security function that makes use of time. The TSS provides a description of how the time is maintained and considered reliable in the context of each of the time related functions. This documentation must identify whether the TSF uses a NTP server or the carrier’s network time as the primary time sources.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator examines the operational guidance to ensure it describes how to set the time.<htm:br/><htm:br/></Guidance>
              <Tests>
                <testlist>
                  <test>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.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_TST_EXT.1 TSF Cryptographic Functionality Testing-->
        <f-component cc-id="fpt_tst_ext.1" id="fpt-tst-ext-1" name="TSF Cryptographic Functionality Testing">
          <comp-lev>requires the TSF to run self-test at start-up to verify correct operation.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Initiation of self-test.</htm:li> <htm:li>Failure of self-test.</htm:li> </htm:ul> </audit>
          <dependencies>FCS_COP.1 Cryptographic Operation</dependencies>
          <f-element id="fel-selftest-startup">
            <title>The TSF shall run a suite of self-tests during initial start-up (on power on) to demonstrate the correct operation of all cryptographic functionality.</title>
            <note role="application">This requirement may be met by performing known answer tests or pair-wise consistency tests. The self-tests must be performed before the cryptographic functionality is exercised (for example, during the initialization of a process that utilizes the functionality).<htm:br/><htm:br/>The cryptographic functionality includes the cryptographic operations in FCS_COP, the key generation functions in FCS_CKM, and the random bit generation in FCS_RBG_EXT.</note>
            <aactivity level="component">
              <TSS>The evaluator shall examine the TSS to ensure that it specifies the self-tests that are performed at start-up. This description must include an outline of the test procedures conducted by the TSF (e.g., rather than saying "memory is tested", a 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 was written" shall be used). The TSS must include any error states that they TSF may enter when self-tests fail, and the conditions and actions necessary to exit the error states and resume normal operation. The evaluator shall verify that the TSS indicates these self-tests are run at start-up automatically, and do not involve any inputs from or actions by the user or operator.<htm:br/><htm:br/>The evaluator shall inspect the list of self-tests in the TSS and verify that it includes algorithm self-tests. The algorithm self-tests will typically be conducted using known answer tests.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>Initiation of self-test</audit-event-descr>
          </audit-event>
          <audit-event>
            <audit-event-descr>Failure of self-test</audit-event-descr>
            <audit-event-info>
              <selectables onlyone="yes">
                <selectable>Algorithm that caused the failure</selectable>
                <selectable>No additional information</selectable>
              </selectables>
            </audit-event-info>
          </audit-event>
        </f-component>
        <!--FPT_TST_EXT.2 TSF Integrity Checking-->
        <f-component cc-id="fpt_tst_ext.2" id="fpt-tst-ext-2" name="TSF Integrity Checking" status="invisible">
          <f-element id="fel-bootchain-stub">
            <title>The TSF shall verify the integrity of <assignable>TSF data</assignable> stored in mutable media prior to its execution through the use of <assignable>cryptographic or immutable hardware mechanism</assignable>.</title>
            <aactivity level="component">
              <no-tests/>
            </aactivity>
          </f-element>
        </f-component>
        <!--FPT_TST_EXT.2/POSTKERNEL TSF Integrity Checking (Post-Kernel)-->
        <f-component cc-id="fpt_tst_ext.2" id="fpt-tst-ext-2-postkernel" name="TSF Integrity Checking (Post-Kernel)" iteration="POSTKERNEL" status="objective">
          <f-element id="fel-integrity-what">
            <title>The TSF shall verify the integrity of <selectables><selectable id="s-all-exe">all executable code</selectable><selectable id="fpt_tst_ext.2.1_POSTKERNEL_2"><assignable>subset of executable code</assignable></selectable> </selectables> stored in mutable media prior to its execution through the use of <selectables><selectable id="fpt_tst_ext.2.1_POSTKERNEL_3">a digital signature using an immutable hardware asymmetric key</selectable><selectable id="fpt_tst_ext.2.1_POSTKERNEL_4">an immutable hardware hash of an asymmetric key</selectable><selectable id="fpt_tst_ext.2.1_POSTKERNEL_5">an immutable hardware hash</selectable><selectable id="fpt_tst_ext.2.1_POSTKERNEL_6">a digital signature using a hardware-protected asymmetric key</selectable><selectable id="fpt_tst_ext.2.1_POSTKERNEL_7">hardware-protected hash</selectable> </selectables>.</title>
            <note role="application">All executable code covered in this requirement is executed after the kernel is loaded.<htm:br/><htm:br/>If "all executable code in mutable media" is verified, implementation in hardware or in read-only memory is a natural logical consequence.<htm:br/><htm:br/>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 first assignment. If all executable code (including bootloaders, kernel, device drivers, pre-loaded applications, user-loaded applications, and libraries) is verified, "all executable code stored in mutable media" should be selected.</note>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>The evaluation activity shall be completed in conjunction with FPT_TST_EXT.2/PREKERNEL for all executable code specified.</Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>
              <selectables onlyone="yes">
                <selectable>Detected integrity violation</selectable>
                <selectable>none</selectable>
              </selectables>
            </audit-event-descr>
            <audit-event-info>
              <selectables onlyone="yes">
                <selectable>The TSF code file that cause the integrity violation</selectable>
                <selectable>No additional information</selectable>
              </selectables>
            </audit-event-info>
          </audit-event>
        </f-component>
        <!--FPT_TST_EXT.2/PREKERNEL TSF Integrity Checking (Pre-Kernel)-->
        <f-component cc-id="fpt_tst_ext.2" id="fpt-tst-ext-2-prekernel" name="TSF Integrity Checking (Pre-Kernel)" iteration="PREKERNEL">
          <f-element id="fel-bootchain">
            <title>The TSF shall verify the integrity of [ <htm:i>the bootchain up through the Application Processor OS kernel</htm:i>  ] stored in mutable media prior to its execution through the use of <selectables><selectable id="fpt_tst_ext.2.1_PREKERNEL_1">a digital signature using an immutable hardware asymmetric key</selectable><selectable id="fpt_tst_ext.2.1_PREKERNEL_2">an immutable hardware hash of an asymmetric key</selectable><selectable id="fpt_tst_ext.2.1_PREKERNEL_3">an immutable hardware hash</selectable><selectable id="fpt_tst_ext.2.1_PREKERNEL_4">a digital signature using a hardware-protected asymmetric key</selectable> </selectables>.</title>
            <note role="application">The bootchain of the TSF is the sequence of firmware and software, including ROM, bootloaders, and kernel, which ultimately result in loading the kernel on the Application Processor, regardless of which processor executes that code. Executable code that would be loaded after the kernel is covered in FPT_TST_EXT.2/POSTKERNEL.<htm:br/><htm:br/>In order to meet this requirement, the hardware protection may be transitive in nature: a hardware-protected public key, hash of an 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 mutable OS kernel code, which contains a key or hash to verify the next layer of executable code, and so on.<htm:br/><htm:br/>The cryptographic mechanism used to verify the (initial) mutable executable code must be protected, such as being implemented in hardware or in read-only memory (ROM).</note>
            <aactivity level="component">
              <TSS>The evaluator shall verify that the TSS section of the ST includes a description of the boot procedures, including a description of the entire bootchain, of the software for the TSF’s Application Processor. The evaluator shall ensure that before loading the bootloaders for the operating system and the kernel, all bootloaders and the kernel software itself is cryptographically verified. For each additional category of executable code verified before execution, the evaluator shall verify that the description in the TSS describes how that software is cryptographically verified.<htm:br/><htm:br/>The evaluator shall verify that the TSS contains a justification for the protection of the cryptographic key or hash, preventing it from being modified by unverified or unauthenticated software. The evaluator shall verify that the TSS contains a description of the protection afforded to the mechanism performing the cryptographic verification.<htm:br/><htm:br/>The evaluator shall verify that the TSS describes each auxiliary boot mode available on the TOE during the boot procedures. The evaluator shall verify that, for each auxiliary boot mode, a description of the cryptographic integrity of the executed code through the kernel is verified before each execution.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following tests require the vendor to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products. <htm:br/><htm:br/> <htm:br/><htm:br/>The evaluator shall perform the following tests:
                <testlist>
                   <htm:br/><htm:br/>  <htm:br/><htm:br/> 
                  <test>The evaluator shall perform actions to cause TSF software to load and observe that the integrity mechanism does not flag any executables as containing integrity errors and that the TOE properly boots.</test>
                  <test>The evaluator shall modify a TSF executable that is integrity protected and cause that executable to be successfully loaded by the TSF. The evaluator observes that an integrity violation is triggered and the TOE does not boot. (Care must be taken so that the integrity violation is determined to be the cause of the failure to load the module, and not the fact that the module was modified so that it was rendered unable to run because its format was corrupt).</test>
                  <test>[conditional] If the 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. The evaluator shall digitally sign the TSF executable with a certificate that does not have the Code Signing purpose in the extendedKeyUsage field and verify that an integrity violation is triggered. The evaluator shall repeat the test using a certificate that contains the Code Signing purpose and verify that the integrity verification succeeds. Ideally, the two certificates should be identical except for the extendedKeyUsage field.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>Start-up of TOE</audit-event-descr>
          </audit-event>
          <audit-event>
            <audit-event-descr>
              <selectables onlyone="yes">
                <selectable>Detected integrity violation</selectable>
                <selectable>none</selectable>
              </selectables>
            </audit-event-descr>
            <audit-event-info>
              <selectables onlyone="yes">
                <selectable>The TSF code file that caused the integrity violation</selectable>
                <selectable>No additional information</selectable>
              </selectables>
            </audit-event-info>
          </audit-event>
        </f-component>
        <!--FPT_TST_EXT.3 TSF Integrity Testing-->
        <f-component cc-id="fpt_tst_ext.3" id="fpt-tst-ext-3" name="TSF Integrity Testing" status="sel-based">
          <depends on-sel="x509_sign"/>
          <comp-lev>requires the TSF to validate a code signing certificate before the associated code is executed.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FPT_TST_EXT.2 TSF Integrity Checking<htm:br/>FIA_X509_EXT.1 X.509 Validation of Certificates<htm:br/>FIA_X509_EXT.2 X.509 Certificate Authentication</dependencies>
          <f-element id="fel-integrity-fail">
            <title>The TSF shall not execute code if the code signing certificate is deemed invalid.</title>
            <note role="application">Certificates may optionally be used for code signing for integrity verification (FPT_TST_EXT.2.1/PREKERNEL). If<xref to="x509_sign"/>  is selected in FIA_X509_EXT.2.1, FPT_TST_EXT.3 must be included in the ST.<htm:br/><htm:br/>Validity is determined by the certificate path, the expiration date, and the revocation status in accordance with RFC 5280.</note>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>Testing for this component is performed in conjunction with the Evaluation Activities for FPT_TST_EXT.2.1/PREKERNEL.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_TUD_EXT.1 TSF Version Query-->
        <f-component cc-id="fpt_tud_ext.1" id="fpt-tud-ext-1" name="TSF Version Query">
          <comp-lev>requires the TSF to provide authorized users the ability to query the version of the TOE hardware, TOE software, and installed applications.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-get-software-version">
            <title>The TSF shall provide authorized users the ability to query the current version of the TOE firmware/software.</title>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                <testlist>
                  <test>Using the AGD guidance provided, the evaluator shall test that the administrator and user can query:<htm:ul><htm:li>The current version of the TSF operating system and any firmware that can be updated separately</htm:li> <htm:li>The hardware model of the TSF</htm:li> <htm:li>The current version of all installed mobile applications</htm:li> </htm:ul> </test>
                </testlist>
                The evaluator must review manufacturer documentation to ensure that the hardware model identifier is sufficient to identify the hardware which comprises the device.
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-get-hardware-version">
            <title>The TSF shall provide authorized users the ability to query the current version of the hardware model of the device.</title>
            <note role="application">The current version of the hardware model of the device is an identifier that is sufficient to indicate (in tandem with manufacturer documentation) the hardware which comprises the device.</note>
          </f-element>
          <f-element id="fel-get-app-version">
            <title>The TSF shall provide authorized users the ability to query the current version of installed mobile applications.</title>
            <note role="application">The current version of mobile applications is the name and published version number of each installed mobile application.</note>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_TUD_EXT.2 TSF Update Verification-->
        <f-component cc-id="fpt_tud_ext.2" id="fpt-tud-ext-2" name="TSF Update Verification">
          <comp-lev>requires the TSF to ensure that system software updates are digitally signed prior to installation.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Updating of system software.</htm:li> </htm:ul> </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Success or failure of signature verification for applications.</htm:li> </htm:ul> </audit>
          <dependencies>FCS_COP.1 Cryptographic Operation</dependencies>
          <f-element id="fel-updates-verify">
            <title>The TSF shall verify software updates to the Application Processor system software and <selectables><selectable id="fpt_tud_ext.2.1_2"><assignable>other processor system software</assignable></selectable><selectable id="fpt_tud_ext.2.1_3">no other processor system software</selectable> </selectables> using a digital signature verified by the manufacturer trusted key prior to installing those updates.</title>
            <note role="application">The digital signature mechanism is implemented in accordance with FCS_COP.1.1/SIGN.<htm:br/><htm:br/>At this time, this requirement does not require verification of software updates to the software operating outside the Application Processor.<htm:br/><htm:br/>Any change, via a supported mechanism, to software residing in non-volatile storage is deemed a software update. Thus, this requirement applies to TSF software updates regardless of how the software arrives or is delivered to the device. This includes over-the-air (OTA) updates as well as partition images containing software which may be delivered to the device over a wired interface.</note>
            <aactivity level="component">
              <TSS>The evaluator shall verify that the TSS section of the ST describes all TSF software update mechanisms for updating the system software. The evaluator shall verify that the description includes a digital signature verification of the software before installation and that installation fails if the verification fails. The evaluator shall verify that all software and firmware involved in updating the TSF is described and, if multiple stages and software are indicated, that the software/firmware responsible for each stage is indicated and that the stages which perform signature verification of the update are identified.<htm:br/><htm:br/>The evaluator shall verify that the TSS describes the method by which the digital signature is verified and that the public 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 hardware-protection is selected, the evaluator shall verify that the method of hardware-protection is described and that the ST author has justified why the public key may not be modified by unauthorized parties.<htm:br/><htm:br/>[conditional] If the ST author indicates that software updates to system software running on other processors is verified, the evaluator shall verify that these other processors are listed in the TSS and that the description includes the software update mechanism for these processors, if different than the update mechanism for the software executing on the Application Processor.<htm:br/><htm:br/>[conditional] If the ST author indicates that the public key is used for software update digital signature verification, the evaluator shall verify that the update mechanism includes a certificate validation according to FIA_X509_EXT.1 and a check for the Code Signing purpose in the extendedKeyUsage.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                The evaluator shall verify that the developer has provided evidence that the following tests were performed for each available update mechanism:
                <testlist>
                  <test>The tester shall try 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.<htm:br/></test>
                  <test>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.<htm:br/></test>
                  <test>[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.<htm:br/></test>
                  <test>[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.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-boot-key-update">
            <title>The TSF shall <selectables><selectable id="fpt_tud_ext.2.2_1">never update</selectable><selectable id="fpt_tud_ext.2.2_2">update only by verified software</selectable> </selectables> the TSF boot integrity <selectables><selectable id="fpt_tud_ext.2.2_3">key</selectable><selectable id="fpt_tud_ext.2.2_4">hash</selectable> </selectables>.</title>
            <note role="application">The key or hash updated via this requirement is used for verifying software before execution in FPT_TST_EXT.2/PREKERNEL. The key or hash 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 FPT_TST_EXT.2/PREKERNEL.</note>
          </f-element>
          <f-element id="fel-update-key-verify">
            <title>The TSF shall verify that the digital signature verification key used for TSF updates <selectables><selectable id="fpt_tud_ext.2.3_1">is validated to a public key in the Trust Anchor Database</selectable><selectable id="fpt_tud_ext.2.3_2">matches an immutable hardware public key</selectable> </selectables>.</title>
            <note role="application">The ST author must indicate the method by which the signing key for system software updates is limited and, if selected in FPT_TUD_EXT.2.3, must indicate how this signing key is protected by the hardware.<htm:br/><htm:br/>If certificates are used, certificates are validated for the purpose of software updates in accordance with FIA_X509_EXT.1 and should be selected in FIA_X509_EXT.2.1. Additionally, FPT_TUD_EXT.4 must be included in the ST.</note>
          </f-element>
          <audit-event>
            <audit-event-descr>Success or failure of signature verification for software updates</audit-event-descr>
          </audit-event>
        </f-component>
        <!--FPT_TUD_EXT.3 Application Signing-->
        <f-component cc-id="fpt_tud_ext.3" id="fpt-tud-ext-3" name="Application Signing">
          <comp-lev>requires the TSF to ensure that application software updates are digitally signed prior to installation.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Success or failure of signature verification for applications.</htm:li> </htm:ul> </audit>
          <dependencies>FIA_X509_EXT.1 X.509 Validation of Certificates<htm:br/>FIA_X509_EXT.2 X.509 Certificate Authentication</dependencies>
          <f-element id="fel-update-app-verify">
            <title>The TSF shall verify mobile application software using a digital signature mechanism prior to installation.</title>
            <note role="application">This requirement does not necessitate an X.509v3 certificate or certificate validation. X.509v3 certificates and certificate validation are addressed in<xref to="fel-app-verify-how"/>  .</note>
            <aactivity level="component">
              <TSS>The evaluator shall verify that the TSS describes how mobile application software is verified at installation. The evaluator shall ensure that this method uses a digital signature.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                 <htm:b>Evaluation Activity Note:</htm:b>The following test does not have to be tested using the commercial application store. <htm:br/><htm:br/> <htm:br/><htm:br/>
                <testlist>
                  <test>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 a digitally signed application, and verify that installation succeeds.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>Success or failure of signature verification for applications</audit-event-descr>
          </audit-event>
        </f-component>
        <!--FPT_TUD_EXT.4 Trusted Update Verification-->
        <f-component cc-id="fpt_tud_ext.4" id="fpt-tud-ext-4" name="Trusted Update Verification" status="sel-based">
          <depends on-sel="x509_sys"/>
          <depends on-sel="x509_apps"/>
          <comp-lev>requires the TSF to enforce validity of system software’s code signing certificate prior to installation.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FIA_X509_EXT.1 X.509 Validation of Certificates<htm:br/>FIA_X509_EXT.2 X.509 Certificate Authentication</dependencies>
          <f-element id="fel-update-int-fail">
            <title>The TSF shall not install code if the code signing certificate is deemed invalid.</title>
            <note role="application">Certificates may optionally be used for code signing of system software updates (FPT_TUD_EXT.2.3) and of mobile applications (<xref to="fel-app-verify-how"/>  ). This element must be included in the ST if certificates are used for either update element. If either<xref to="x509_sys"/>  or<xref to="x509_apps"/>  is selected in FIA_X509_EXT.2.1, FPT_TUD_EXT.4 must be included in the ST.<htm:br/><htm:br/>Validity is determined by the certificate path, the expiration date, and the revocation status in accordance with RFC 5280.</note>
            <aactivity level="component">
              <TSS>There are no TSS evaluation activities for this component.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>Testing for this component is performed in conjunction with the Evaluation Activities for FPT_TUD_EXT.2 and FPT_TUD_EXT.5.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_TUD_EXT.5 Application Verification-->
        <f-component cc-id="fpt_tud_ext.5" id="fc-crypt-veri" name="Application Verification" status="objective">
          <comp-lev>requires the TSF to enforce validity of application software’s code signing certificate prior to installation.</comp-lev>
          <management>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Configure certificate or public key used to validate digital signature on applications.</htm:li> </htm:ul> </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FIA_X509_EXT.1 X.509 Validation of Certificates<htm:br/>FIA_X509_EXT.2 X.509 Certificate Authentication</dependencies>
          <f-element id="fel-app-verify-how">
            <title>The TSF shall by default only install mobile applications cryptographically verified by <selectables><selectable id="fpt_tud_ext.5.1_1">a built-in X.509v3 certificate</selectable><selectable id="fpt_tud_ext.5.1_2">a configured X.509v3 certificate</selectable> </selectables>.</title>
            <note role="application">The built-in certificate is installed 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 according to FMT_SMF.1 function<xref to="mf-digSign"/>  .</note>
            <aactivity level="component">
              <TSS>The evaluator shall verify that the TSS describes how mobile application software is verified at installation. The evaluator shall ensure that this method uses a digital signature by a code signing certificate.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                <testlist>
                   <htm:br/><htm:br/>  <htm:br/><htm:br/> 
                  <test>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>
                  <test>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.</test>
                  <test>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>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FPT_TUD_EXT.6 Trusted Update Verification-->
        <f-component cc-id="fpt_tud_ext.6" id="fpt-tud-ext-6" name="Trusted Update Verification" status="objective">
          <comp-lev>requires the TSF to prevent the intentional rollback of software updates.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-updates-inc-version">
            <title>The TSF shall verify that software updates to the TSF are a current or later version than the current version of the TSF.</title>
            <note role="application">A later version has a larger version number. The method for distinguishing newer software versions from older versions is determined by the manufacturer.</note>
            <aactivity level="component">
              <TSS>The evaluator shall verify that the TSS describes the mechanism that prevents the TSF from installing software updates that are an older version that the currently installed version.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                The evaluator shall repeat the following tests to cover all allowed software update mechanisms as described in the TSS. For example, if the update mechanism replaces an entire partition containing many separate code files, the evaluator does not need to repeat the test for each individual file.
                <testlist>
                   <htm:br/><htm:br/> 
                  <test>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>
                  <test>The evaluator shall attempt to install a current or later version and shall verify that the update succeeds.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
      </section>
      <!--5.1.8 Class: TOE Access (FTA)-->
      <section id="fta" title="Class: TOE Access (FTA)">
        <ext-comp-def title="Session Locking and Termination" fam-id="FTA_SSL_EXT">
          <fam-behavior>This family defines requirements for session locking capabilities that are not addressed by FTA_SSL in CC Part 2.</fam-behavior>
        </ext-comp-def>
        <!--FTA_SSL_EXT.1 TSF- and User-initiated Locked State -->
        <f-component cc-id="fta_ssl_ext.1" id="fta-ssl-ext-1" name="TSF- and User-initiated Locked State ">
          <comp-lev>requires the TSF to manage the transition to a locked state and what operations can be performed.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Configuring session locking policy.</htm:li> <htm:li>Transitioning to the locked state.</htm:li> </htm:ul> </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-time-lock">
            <title>The TSF shall transition to a locked state after a time interval of inactivity.</title>
            <aactivity level="component">
              <TSS>The evaluator shall verify the TSS describes the actions performed upon transitioning to the locked state.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluation shall verify that the AGD guidance describes the method of setting the inactivity interval and of commanding a lock. The evaluator shall verify that the TSS describes the information allowed to be displayed to unauthorized users.<htm:br/><htm:br/></Guidance>
              <Tests>
                <testlist>
                   <htm:br/><htm:br/> 
                  <test>The evaluator shall configure the TSF to transition to the locked state after a time of inactivity (FMT_SMF.1) according to the AGD guidance. The evaluator shall wait until the 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.</test>
                  <test>The evaluator shall command the 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 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.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-user-lock">
            <title>The TSF shall transition to a locked state after initiation by either the user or the administrator.</title>
          </f-element>
          <f-element id="fel-lock-what">
            <title>The TSF shall, upon transitioning to the locked state, perform the following operations:  <htm:ul><htm:li>Clearing or overwriting display devices, obscuring the previous contents;</htm:li> <htm:li> <assignable>Other actions performed upon transitioning to the locked state</assignable> .</htm:li></htm:ul></title>
            <note role="application">The time interval of inactivity is configured using FMT_SMF.1 function<xref to="mf-screenlock"/>  . The user/administrator-initiated lock is specified in FMT_SMF.1 function<xref to="mf-lockState"/>  .</note>
          </f-element>
          <audit-event/>
        </f-component>
        <!--FTA_TAB.1 Default TOE Access Banners-->
        <f-component cc-id="fta_tab.1" id="fc-banner" name="Default TOE Access Banners">
          <f-element id="fel-banner">
            <title>Before establishing a user session, the TSF shall display an advisory warning message regarding unauthorized use of the TOE.</title>
            <note role="application">This requirement may be met with the configuration of either text or an image containing the text of the desired message. The TSF must minimally display this information at startup, but may also display the information at every unlock. The banner is configured according to FMT_SMF.1 function<xref to="mf-unlockBanner"/>  .</note>
            <aactivity level="component">
              <TSS>The TSS shall describe when the banner is displayed.<htm:br/><htm:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<htm:br/><htm:br/></Guidance>
              <Tests>
                The evaluator shall also perform the following test:
                <testlist>
                  <test>The evaluator follows the operational guidance to configure a notice and consent warning message. The evaluator shall then start up or unlock the TSF. The evaluator shall verify that the notice and consent warning message is displayed in each instance described in the TSS.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
      </section>
      <!--5.1.9 Class: Trusted Path/Channels (FTP)-->
      <section id="ftp" title="Class: Trusted Path/Channels (FTP)">
        <ext-comp-def title="Inter-TSF Trusted Channel" fam-id="FTP_ITC_EXT">
          <fam-behavior>This family defines requirements for trusted channels that are not addressed by FTP_ITC in CC Part 2 because they apply specifically to channels required by a mobile device.</fam-behavior>
        </ext-comp-def>
        <!--FTP_ITC_EXT.1 Trusted Channel Communication-->
        <f-component cc-id="ftp_itc_ext.1" id="ftp-itc-ext-1" name="Trusted Channel Communication">
          <comp-lev>requires the TSF to manage the communication channel between itself and other trusted products.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<htm:ul><htm:li>Configuring the actions that require trusted channel, if applicable.</htm:li> <htm:li>Enabling/disabling communications protocols where the TSF acts as a server.</htm:li> </htm:ul> </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<htm:ul><htm:li>Initiation and termination of trusted channel.</htm:li> </htm:ul> </audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fel-wlan">
            <title>The TSF shall use <htm:ul><htm:li>802.11-2012 in accordance with the [<htm:i><xref to="mod-wlanclient"/> </htm:i> ],</htm:li> <htm:li>802.1X in accordance with the [<htm:i><xref to="mod-wlanclient"/> </htm:i> ],</htm:li> <htm:li>EAP-TLS in accordance with the [<htm:i><xref to="mod-wlanclient"/> </htm:i> ],</htm:li> <htm:li>Mutually authenticated TLS in accordance with [<htm:i>the<xref to="pkg-tls"/> </htm:i> ]</htm:li></htm:ul>  and <selectables linebreak="yes"><selectable id="s-itc-ipsec">IPsecin accordance with the <xref to="mod-vpnclient"/></selectable><selectable id="itc_dtls">mutually authenticated DTLSas defined in the <xref to="pkg-tls"/></selectable><selectable id="ftp_itc_ext.1.1_1">HTTPS</selectable> </selectables> protocols to provide a communication channel between itself and another trusted IT product that is logically distinct from other communication channels, provides assured identification of its end points, protects channel data from disclosure, and detects modification of the channel data.</title>
            <ext-comp-def-title><title>The TSF shall use <htm:ul><htm:li>802.11-2012 in accordance with <assignable>requirements or standards defining implementation of this protocol </assignable> , </htm:li> <htm:li>802.1X in accordance with <assignable>requirements or standards defining implementation of this protocol </assignable> , </htm:li> <htm:li>EAP-TLS in accordance with <assignable>requirements or standards defining implementation of this protocol </assignable> , </htm:li> <htm:li>Mutually authenticated TLS in accordance with <assignable>requirements or standards defining implementation of this protocol </assignable> </htm:li> </htm:ul> and <assignable>other protocols </assignable> protocols to provide a communication channel between itself and another trusted IT product that is logically distinct from other communication channels, provides assured identification of its end points, protects channel data from disclosure, and detects modification of the channel data. </title> </ext-comp-def-title>
            <note role="application">The intent of the mandatory portion of the above requirement is to use the cryptographic protocols identified in the requirement to establish and maintain a trusted channel between the TOE and an access point, VPN Gateway, or other trusted IT product.<htm:br/><htm:br/>The ST author must list which trusted channel protocols are implemented by the Mobile Device.<htm:br/><htm:br/>The TSF must be validated against the<xref to="mod-wlanclient"/>  to satisfy the mandatory trusted channels of 802.11-2012, 802.1X, and EAP-TLS.<htm:br/><htm:br/>To satisfy the mandatory trusted channel of TLS and if<xref to="itc_dtls"/>  is selected, the TSF must be validated against the<xref to="pkg-tls"/>  , with the following selections made:<rule id="r-tls"><doc ref="pkg-tls"><ref-id>tlsc_impl </ref-id> <ref-id>tlsc_mutual_auth </ref-id> <ref-id>s-tlsc-no-excep </ref-id> </doc> </rule>  <rule id="r-dtls"><if><ref-id>itc_dtls </ref-id> </if> <then><doc ref="pkg-tls"><ref-id>dtlsc_impl </ref-id> <ref-id>dtlsc_mutual_auth </ref-id> <ref-id>s-dtlsc-no-excep </ref-id> </doc> </then> </rule>  <htm:ul><htm:li>FCS_TLS_EXT.1:</htm:li> <htm:ul><htm:li>Either TLS or DTLS is selected as appropriate</htm:li> <htm:li>Client is selected</htm:li> </htm:ul> <htm:li>FCS_TLSC_EXT.1.1 or FCS_DTLSC_EXT.1.1 (as appropriate):</htm:li> <htm:ul><htm:li>The cipher suites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</htm:li> <htm:li>Mutual authentication must be selected</htm:li> </htm:ul> <htm:li>FCS_TLSC_EXT.1.3 or FCS_DTLSC_EXT.1.3 (as appropriate):</htm:li> <htm:ul><htm:li>With no exceptions is selected.</htm:li> </htm:ul> </htm:ul> <htm:br/><rule id="r-ipsec"><if><ref-id>s-itc-ipsec </ref-id> </if> <then><ref-id>mod-vpnclient </ref-id> </then> </rule>  If the ST author selects<xref to="s-itc-ipsec"/>  , the TSF must be validated against the<xref to="mod-vpnclient"/>  .<htm:br/><htm:br/><if-opt-app><!--   TODO: Looks like appref is broken   --><xref to="sel-based-reqs"/> contains the requirements for implementing each of the other optional trusted channel protocols. </if-opt-app>  The ST author must include the security functional requirements for the trusted channel protocol selected in FTP_ITC_EXT.1 in the main body of the ST.<htm:br/><htm:br/>Assured identification of endpoints is performed according to the authentication mechanisms used by the listed trusted channel protocols.</note>
            <aactivity level="component">
              <TSS>The evaluator shall examine the TSS to determine that it describes the details of the TOE connecting to access points, VPN Gateways, and other trusted IT products in terms of the cryptographic protocols specified in the requirement, along with TOE-specific options or procedures that might not be reflected in the specifications. The evaluator shall also confirm that all protocols listed in the TSS are specified and included in the requirements in the ST.<htm:br/><htm:br/>If OTA updates are selected, the TSS shall describe which trusted channel protocol is initiated by the TOE and is used for updates.<htm:br/><htm:br/></TSS>
              <Guidance>The evaluator shall confirm that the operational guidance contains instructions for establishing the connection to access points, VPN Gateways, and other trusted IT products.<htm:br/><htm:br/></Guidance>
              <Tests>
                The evaluator shall also perform the following tests for each protocol listed:
                <testlist>
                   <htm:br/><htm:br/>  <htm:br/><htm:br/>  <htm:br/><htm:br/> 
                  <test>The evaluator shall ensure, for each communication channel with an authorized IT entity, the channel data are not sent in plaintext and that a protocol analyzer identifies the traffic as the protocol under testing.</test>
                  <test>[conditional] If<xref to="s-itc-ipsec"/>  is selected, the evaluator shall ensure that the TOE is able to initiate communications with a VPN Gateway, setting up the connections as described in the operational guidance and ensuring that communication is successful.</test>
                  <test>[conditional]If OTA updates are selected, the evaluator shall trigger an update request according to the operational guidance and shall ensure that the communication is successful.</test>
                  <test>For any other selected protocol (not tested in Test 1, 2, or 3), the evaluator shall ensure that the 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.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-chan-init">
            <title>The TSF shall permit the TSF to initiate communication via the trusted channel.</title>
          </f-element>
          <f-element id="fel-chan-init-what">
            <title>The TSF shall initiate communication via the trusted channel for wireless access point connections, administrative communication, configured enterprise connections, and <selectables><selectable id="ftp_itc_ext.1.3_1">OTA updates</selectable><selectable id="ftp_itc_ext.1.3_2" exclusive="yes">no other connections</selectable> </selectables>.</title>
          </f-element>
          <audit-event>
            <audit-event-descr>Initiation and termination of trusted channel</audit-event-descr>
            <audit-event-info>Trusted channel protocol, non-TOE endpoint of connection</audit-event-info>
          </audit-event>
        </f-component>
        <implements>
          <feature id="bluetooth" title="Bluetooth">
            <description>If the TOE includes Bluetooth hardware, the following SFRs must be claimed:</description>
          </feature>
        </implements>
      </section>
    </sec:SFRs>
    <!--5.2 Security Assurance Requirements-->
    <section title="Security Assurance Requirements" id="sar">
      The Security Objectives in<xref to="Security_Objectives"/>  were constructed to address threats identified in<xref to="Security_Problem_Description"/>  . The Security Functional Requirements (SFRs) in<xref to="sfr"/>  are a formal instantiation of the Security Objectives. The PP identifies the Security Assurance Requirements (SARs) to frame the extent to which the evaluator assesses the documentation applicable for the evaluation and performs independent testing.<htm:br/><htm:br/>This section lists the set of SARs from CC part 3 that are required in evaluations against this PP. Individual Evaluation Activities to be performed are specified both in<xref to="sfr"/>  as well as in this section.<htm:br/><htm:br/>The general model for evaluation of TOEs against STs written to conform to this PP is as follows:<htm:br/><htm:br/>After the ST has been approved for evaluation, the ITSEF will obtain the TOE, supporting environmental IT, and the administrative/user guides for the TOE. The ITSEF is expected to perform actions mandated by the Common Evaluation Methodology (CEM) for the ASE and ALC SARs. The ITSEF also performs the Evaluation Activities contained within<xref to="sfr"/>  , which are intended to be an interpretation of the other CEM evaluation requirements as they apply to the specific technology instantiated in the TOE. The Evaluation Activities that are captured in<xref to="sfr"/>  also provide clarification as to what the developer needs to provide to demonstrate the TOE is compliant with the PP.<htm:br/><htm:br/>The TOE Security Assurance Requirements are identified in<xref to="sartable"/>  .<htm:br/><htm:br/><ctr id="sartable" ctr-type="Table">: Security Assurance Requirements </ctr>  <htm:table><htm:tr class="header"><htm:td>Assurance Class</htm:td><htm:td>Assurance Components</htm:td></htm:tr><htm:tr><htm:td rowspan="7">Security Target (ASE)</htm:td><htm:td>Conformance Claims (ASE_CCL.1)</htm:td></htm:tr><htm:tr><htm:td>Extended Components Definition (ASE_ECD.1)</htm:td></htm:tr><htm:tr><htm:td>ST Introduction (ASE_INT.1)</htm:td></htm:tr><htm:tr><htm:td>Security Objectives for the Operational Environment (ASE_OBJ.1)</htm:td></htm:tr><htm:tr><htm:td>Stated Security Requirements (ASE_REQ.1)</htm:td></htm:tr><htm:tr><htm:td>Security Problem Definition (ASE_SPD.1)</htm:td></htm:tr><htm:tr><htm:td>TOE Summary Specification (ASE_TSS.1)</htm:td></htm:tr><htm:tr><htm:td>Development (ADV)</htm:td><htm:td>Basic Functional Specification (ADV_FSP.1)</htm:td></htm:tr><htm:tr><htm:td rowspan="2">Guidance Documents (AGD)</htm:td><htm:td>Operational User Guidance (AGD_OPE.1)</htm:td></htm:tr><htm:tr><htm:td>Preparative Procedures (AGD_PRE.1)</htm:td></htm:tr><htm:tr><htm:td rowspan="3">Life Cycle Support (ALC)</htm:td><htm:td>Labeling of the TOE (ALC_CMC.1)</htm:td></htm:tr><htm:tr><htm:td>TOE CM Coverage (ALC_CMS.1)</htm:td></htm:tr><htm:tr><htm:td>Timely Security Updates (ALC_TSU_EXT)</htm:td></htm:tr><htm:tr><htm:td>Tests (ATE)</htm:td><htm:td>Independent Testing – Sample (ATE_IND.1)</htm:td></htm:tr><htm:tr><htm:td>Vulnerability Assessment (AVA)</htm:td><htm:td>Vulnerability Survey (AVA_VAN.1)</htm:td></htm:tr></htm:table> 
      <section title="Class ASE: Security Target" id="ase">The ST is evaluated as per ASE activities defined in the CEM for ASE_CCL.1, ASE_ECD.1, ASE_INT.1, ASE_OBJ.1, ASE_REQ.1, ASE_SPD.1, and ASE_TSS.1. In addition, there may be Evaluation Activities specified within<xref to="sfr"/>  that call for necessary descriptions to be included in the TSS that are specific to the TOE technology type.</section>
      <section title="Class ADV: Development" id="adv">
        The design information about the TOE is contained in the guidance documentation available to the end user as well as the TSS portion of the ST, and any additional information required by this PP that is not to be made public.
        <a-component cc-id="adv_fsp.1" name="Basic Functional Specification">
          <a-element type="D">
            <title>The developer shall provide a functional specification.</title>
            <aactivity/>
          </a-element>
          <a-element type="D">
            <title>The developer shall provide a tracing from the functional specification to the SFRs.</title>
            <note role="application">As indicated in the introduction to this section, the functional specification is comprised of the information contained in the AGD_OPE, AGD_PRE, and the API information that is provided to application developers, including the APIs that require privilege to invoke.<htm:br/><htm:br/>The developer may reference a website accessible to application developers and the evaluator. The API documentation must include those interfaces required in this profile. The API documentation must clearly indicate to which products and versions each available function applies.<htm:br/><htm:br/>The evaluation activities in the functional requirements point to evidence that should exist in the documentation and TSS section; since these are directly associated with the SFRs, the tracing in element ADV_FSP.1.2D is implicitly already done and no additional documentation is necessary.</note>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The functional specification shall describe the purpose and method of use for each SFR-enforcing and SFR-supporting TSFI.</title>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The functional specification shall identify all parameters associated with each SFR-enforcing and SFR-supporting TSFI.</title>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The functional specification shall provide rationale for the implicit categorization of interfaces as SFR-non-interfering.</title>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The tracing shall demonstrate that the SFRs trace to TSFIs in the functional specification.</title>
            <aactivity/>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.</title>
            <aactivity/>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall determine that the functional specification is an accurate and complete instantiation of the SFRs.</title>
            <aactivity>There are no specific evaluation activities associated with these SARs, except ensuring the information is provided. The functional specification documentation is provided to support the evaluation activities described in<xref to="sfr"/>  , and other activities described for AGD, ATE, and AVA SARs. The requirements on the content of the functional specification information is implicitly assessed by virtue of the other evaluation activities being performed; if the evaluator is unable to perform an activity because there is insufficient interface information, then an adequate functional specification has not been provided.</aactivity>
          </a-element>
        </a-component>
      </section>
      <section title="Class AGD: Guidance Documentation" id="agd">
        The guidance documents will be provided with the ST. Guidance must include a description of how the IT personnel verifies that the Operational Environment can fulfill its role for the security functionality. The documentation should be in an informal style and readable by the IT personnel.<htm:br/><htm:br/>Guidance must be provided for every operational environment that the product supports as claimed in the ST. This guidance includes:<htm:ul><htm:li>Instructions to successfully install the TSF in that environment</htm:li> <htm:li>Instructions to manage the security of the TSF as a product and as a component of the larger operational environment</htm:li> <htm:li>Instructions to provide a protected administrative capability</htm:li> </htm:ul> <htm:br/>Guidance pertaining to particular security functionality is also provided; requirements on such guidance are contained in the evaluation activities specified with each requirement.
        <a-component cc-id="agd_ope.1" name="Operational User Guidance">
          <a-element type="D">
            <title>The developer shall provide operational user guidance.</title>
            <note role="application">The operational user guidance does not have to be contained in a single document. Guidance to users, administrators and application developers can be spread among documents or web pages. Where appropriate, the guidance documentation is expressed in the eXtensible Configuration Checklist Description Format (XCCDF) to support security automation.<htm:br/><htm:br/>Rather than repeat information here, the developer should review the evaluation activities for this component to ascertain the specifics of the guidance that the evaluator will be checking for. This will provide the necessary information for the preparation of acceptable guidance.</note>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The operational user guidance shall describe, for each user role, the user-accessible functions and privileges that should be controlled in a secure processing environment, including appropriate warnings.</title>
            <note role="application">User and administrator (e.g., MDM agent), and application developer are to be considered in the definition of user role.</note>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The operational user guidance shall describe, for each user role, how to use the available interfaces provided by the TOE in a secure manner.</title>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The operational user guidance shall describe, for each user role, the available functions and interfaces, in particular all security parameters under the control of the user, indicating secure values as appropriate.</title>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The operational user guidance shall, for each user role, clearly present each type of security-relevant event relative to the user-accessible functions that need to be performed, including changing the security characteristics of entities under the control of the TSF.</title>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The operational user guidance shall identify all possible modes of operation of the OS (including operation following failure or operational error), their consequences, and implications for maintaining secure operation.</title>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The operational user guidance shall, for each user role, describe the security measures to be followed in order to fulfill the security objectives for the operational environment as described in the ST.</title>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The operational user guidance shall be clear and reasonable.</title>
            <aactivity/>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.</title>
            <aactivity>Some of the contents of the operational guidance are verified by the evaluation activities in<xref to="sfr"/>  and evaluation of the TOE according to the<xref to="CEM"/>  . The following additional information is also required.<htm:br/><htm:br/>The operational guidance shall contain a list of natively installed applications and any relevant version numbers. If any third party vendors are permitted to install applications before purchase by the end user or enterprise, these applications shall also be listed.<htm:br/><htm:br/>The operational guidance shall contain instructions for configuring the cryptographic engine associated with the evaluated configuration of the TOE. It shall provide a warning to the administrator that use of other cryptographic engines was not evaluated nor tested during the CC evaluation of the TOE.<htm:br/><htm:br/>The documentation must describe the process for verifying updates to the TOE by verifying a digital signature. The evaluator shall verify that this process includes the following steps:<htm:ul><htm:li>Instructions for obtaining the update itself. This should include instructions for making the update accessible to the TOE (e.g., placement in a specific directory).</htm:li> <htm:li>Instructions for initiating the update process, as well as discerning whether the process was successful or unsuccessful. This includes generation of the hash/digital signature.</htm:li> </htm:ul> The TOE will likely contain security functionality that does not fall in the scope of evaluation under this PP. The operational guidance shall make it clear to an administrator which security functionality is covered by the evaluation activities.</aactivity>
          </a-element>
        </a-component>
        <a-component cc-id="agd_pre.1" name="Preparative Procedures">
          <a-element type="D">
            <title>The developer shall provide the TOE, including its preparative procedures.</title>
            <note role="application">As with the operational guidance, the developer should look to the evaluation activities to determine the required content with respect to preparative procedures.</note>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The preparative procedures shall describe all the steps necessary for secure acceptance of the delivered TOE in accordance with the developer's delivery procedures.</title>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The preparative procedures shall describe all the steps necessary for secure installation of the TOE and for the secure preparation of the operational environment in accordance with the security objectives for the operational environment as described in the ST.</title>
            <aactivity/>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.</title>
            <aactivity/>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall apply the preparative procedures to confirm that the OS can be prepared securely for operation.</title>
            <aactivity>As indicated in the introduction above, there are significant expectations with respect to the documentation—especially when configuring the operational environment to support TOE functional requirements. The evaluator shall check to ensure that the guidance provided for the TOE adequately addresses all platforms claimed for the TOE in the ST.</aactivity>
          </a-element>
        </a-component>
      </section>
      <section title="Class ALC: Life-cycle Support" id="alc">
        At the assurance level provided for TOEs conformant to this PP, life-cycle support is limited to end-user-visible aspects of the life-cycle, rather than an examination of the TOE vendor’s development and configuration management process. This is not meant to diminish the critical role that a developer’s practices play in contributing to the overall trustworthiness of a product; rather, it is a reflection on the information to be made available for evaluation at this assurance level.
        <a-component cc-id="alc_cmc.1" name="Labeling of the TOE">
          <a-element type="D">
            <title>The developer shall provide the TOE and a reference for the TOE.</title>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The TOE shall be labeled with a unique reference.</title>
            <aactivity/>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.</title>
            <aactivity>The evaluator shall check the ST to ensure that it contains an identifier (such as a product name/version number) that specifically identifies the version that meets the requirements of the ST. Further, the evaluator shall check the AGD guidance and TOE samples received for testing to ensure that the version number is consistent with that in the ST. If the vendor maintains a web site advertising the TOE, the evaluator shall examine the information on the web site to ensure that the information in the ST is sufficient to distinguish the product.</aactivity>
          </a-element>
        </a-component>
        <a-component cc-id="alc_cms.1" name="TOE CM Coverage">
          <a-element type="D">
            <title>The developer shall provide a configuration list for the TOE.</title>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The configuration list shall include the following: the TOE itself; and the evaluation evidence required by the SARs.</title>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The configuration list shall uniquely identify the configuration items.</title>
            <aactivity/>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.</title>
            <note role="application">The "evaluation evidence required by the SARs" in this PP is limited to the information in the ST coupled with the guidance provided to administrators and users under the AGD requirements. By ensuring that the TOE is specifically identified and that this identification is consistent in the ST and in the AGD guidance (as done in the evaluation activity for ALC_CMC.1), the evaluator implicitly confirms the information required by this component.<htm:br/><htm:br/>Life-cycle support is targeted aspects of the developer’s life-cycle and instructions to providers of applications for the developer’s devices, rather than an in-depth examination of the TSF manufacturer’s development and configuration management process. This is not meant to diminish the critical role that a developer’s practices play in contributing to the overall trustworthiness of a product; rather, it’s a reflection on the information to be made available for evaluation.</note>
            <aactivity>The evaluator shall ensure that the developer has identified (in public-facing development guidance for their platform) one or more development environments appropriate for use in developing applications for the developer’s platform. For each of these development environments, the developer shall provide information on how to configure the environment to ensure that buffer overflow protection mechanisms in the environments are invoked (e.g., compiler and linker flags). The evaluator shall ensure that this documentation also includes an indication of whether such protections are on by default, or have to be specifically enabled.<htm:br/><htm:br/>The evaluator shall ensure that the TSF is uniquely identified (with respect to other products from the TSF vendor), and that documentation provided by the developer in association with the requirements in the ST is associated with the TSF using this unique identification.</aactivity>
          </a-element>
        </a-component>
        <a-component cc-id="alc_tsu_ext.1" name="Timely Security Updates">
          <a-element type="D">
            <title>The developer shall provide a description in the TSS of how timely security updates are made to the TOE.</title>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The description shall include the process for creating and deploying security updates for the TOE software.</title>
            <note role="application">The software to be described includes the operating systems of the application processor and the baseband processor, as well as any firmware and applications. The process description includes the TOE developer processes as well as any third-party (carrier) processes. The process description includes each deployment mechanism (e.g., over-the-air updates, per-carrier updates, downloaded updates).</note>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The description shall express the time window as the length of time, in days, between public disclosure of a vulnerability and the public availability of security updates to the TOE.</title>
            <note role="application">The total length of time may be presented as a summation of the periods of time that each party (e.g., TOE developer, mobile carrier) on the critical path consumes. The time period until public availability per deployment mechanism may differ; each is described.</note>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The description shall include the mechanisms publicly available for reporting security issues pertaining to the TOE.</title>
            <note role="application">The reporting mechanism could include web sites, 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 of a proof-of-concept exploit).</note>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The description shall include where users can seek information about the availability of new updates including details (e.g. CVE identifiers) of the specific public vulnerabilities corrected by each update.</title>
            <note role="application">The purpose of providing this information is so that users and enterprises can determine which devices are susceptible to publicly known vulnerabilities so that they can make appropriate risk decisions, such as limiting access to enterprise resources until updates are installed.</note>
            <aactivity/>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.</title>
            <aactivity>The evaluator shall verify that the TSS contains a description of the timely security update process used by the developer to create and deploy security updates. The evaluator shall verify that this description addresses the TOE OS, the firmware, and bundled applications, each. The evaluator shall also verify that, in addition to the TOE developer’s process, any carrier or other third-party processes are also addressed in the description. The evaluator shall also verify that each mechanism for deployment of security updates is described.<htm:br/><htm:br/>The evaluator shall verify that, for each deployment mechanism described for the update process, the TSS lists a time between public disclosure of a vulnerability and public availability of the security update to the TOE patching this vulnerability, to include any third-party or carrier delays in deployment. The evaluator shall verify that this time is expressed in a number or range of days.<htm:br/><htm:br/>The evaluator shall verify that this description includes the publicly available mechanisms (including either an email address or website) for reporting security issues related to the TOE. The evaluator shall verify that the description of this mechanism includes a method for protecting the report either using a public key for encrypting email or a trusted channel for a website.<htm:br/><htm:br/>The evaluator shall verify that the description includes where users can seek information about the availability of new security updates including details of the specific public vulnerabilities corrected by each update. The evaluator shall verify that the description includes the minimum amount of time that the TOE is expected to be supported with security updates, and the process by which users can seek information about when the TOE is no longer expected to receive security updates.</aactivity>
          </a-element>
        </a-component>
      </section>
      <section title="Class ATE: Tests" id="ate">
        Testing is specified for functional aspects of the system as well as aspects that take advantage of design or implementation weaknesses. The former is done through the ATE_IND family, while the latter is through the AVA_VAN family. At the assurance level specified in this PP, testing is based on advertised functionality and interfaces with dependency on the availability of design information. One of the primary outputs of the evaluation process is the test report as specified in the following requirements.<htm:br/><htm:br/>Since many of the APIs are not exposed at the user interface (e.g., touch screen), the ability to stimulate the necessary interfaces requires a developer’s test environment. This test environment will allow the evaluator, for example, to access APIs and view file system information that is not available on consumer Mobile Devices.
        <a-component cc-id="ate_ind.1" name="Independent Testing – Conformance">
          <a-element type="D">
            <title>The developer shall provide the TOE for testing.</title>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The TOE shall be suitable for testing.</title>
            <aactivity/>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.</title>
            <aactivity/>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall test a subset of the TSF to confirm that the TSF operates as specified.</title>
            <aactivity>The evaluator shall prepare a test plan and report documenting the testing aspects of the system. The test plan covers all of the testing actions contained in the<xref to="CEM"/>  and the body of this PP’s Evaluation Activities. While it is not necessary to have one test case per test listed in an evaluation activity, the evaluator must document in the test plan that each applicable testing requirement in the ST is covered.<htm:br/><htm:br/>The test plan identifies the platforms to be tested, and for those platforms not included in the test plan but included in the ST, the test plan provides a justification for not testing the platforms. This justification must address the differences between the tested platforms and the untested platforms, and make an argument that the differences do not affect the testing to be performed. It is not sufficient to merely assert that the differences have no affect; rationale must be provided. If all platforms claimed in the ST are tested, then no rationale is necessary.<htm:br/><htm:br/>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 documentation. It should be noted that the evaluator is expected to 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 include special test drivers or tools. For each driver or tool, an argument (not just an assertion) should be provided that the driver or tool will not adversely affect the performance of the functionality by the TOE and its platform. This also includes the configuration of the cryptographic engine to be used. The cryptographic algorithms implemented by this engine are those specified by this PP and used by the cryptographic protocols being evaluated (IPsec, TLS/HTTPS, SSH).<htm:br/><htm:br/>The test plan identifies high-level test objectives as well as the test procedures to be followed to achieve those objectives. These procedures include expected results. The test report (which could just be an annotated version of the test plan) details the activities that took place when the test procedures were executed, and includes the actual 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 successful re-run of the test, the report would show a "fail" and "pass" result (and the supporting details), and not just the "pass" result.</aactivity>
          </a-element>
        </a-component>
      </section>
      <section title="Class AVA: Vulnerability Assessment" id="ava">
        For the current generation of this protection profile, the evaluation lab is expected to survey open sources to discover what vulnerabilities have been discovered in these types of products. In most cases, these vulnerabilities will require sophistication beyond that of a basic attacker. Until penetration tools are created and uniformly distributed to the evaluation labs, the evaluator will not be expected to test for these vulnerabilities in the TOE. The labs will be expected to comment on the likelihood of these vulnerabilities given the documentation provided by the vendor. This information will be used in the development of penetration testing tools and for the development of future protection profiles.
        <a-component cc-id="ava_van.1" name="Vulnerability Survey">
          <a-element type="D">
            <title>The developer shall provide the TOE for testing.</title>
            <aactivity/>
          </a-element>
          <a-element type="C">
            <title>The TOE shall be suitable for testing.</title>
            <aactivity/>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.</title>
            <aactivity/>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall perform a search of public domain sources to identify potential vulnerabilities in the TOE.</title>
            <note role="application">Public domain sources include the Common Vulnerabilities and Exposures (CVE) dictionary for publicly-known vulnerabilities.</note>
            <aactivity/>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall conduct penetration testing, based on the identified potential vulnerabilities, to determine that the TOE is resistant to attacks performed by an attacker possessing Basic attack potential.</title>
            <aactivity>The evaluator shall generate a report to document their findings with respect to this requirement. This report could physically be part of the overall test report mentioned in ATE_IND, or a separate document. The evaluator performs a search of public information to find vulnerabilities that have been found in mobile devices and the implemented communication protocols in general, as well as those that pertain to the particular TOE. The evaluator documents the sources consulted and the vulnerabilities found in the report.<htm:br/><htm:br/>For each vulnerability found, the evaluator either provides a rationale with respect to its non-applicability, or the evaluator formulates a test (using the guidelines provided in ATE_IND) to confirm the vulnerability, if suitable. Suitability is determined by assessing the attack vector needed to take advantage of the vulnerability. If exploiting the vulnerability requires expert skills and an electron microscope, for instance, then a test would not be suitable and an appropriate justification would be formulated.</aactivity>
          </a-element>
        </a-component>
      </section>
    </section>
  </sec:req>
  <appendix title="Implicitly Satisfied Requirements" id="satisfiedreqs"><htm:table><htm:tr><htm:th>Requirement </htm:th> <htm:th>Rationale for Satisfaction </htm:th> </htm:tr> <htm:tr><htm:td>FAU_SEL.1 - Selective Audit </htm:td> <htm:td>FAU_SEL.1 has a dependency on FMT_MTD.1 since configuration of audit data is a subset of managing TSF data. This dependency is met by FMT_SMF.1, which defines "configure the auditable items" as a management function and specifies the roles that may perform this, consistent with how FMT_MTD.1 would typically satisfy the dependency. </htm:td> </htm:tr> <htm:tr><htm:td>FCS_CKM.1 - Cryptographic Key Generation </htm:td> <htm:td>FCS_CKM.1 has a dependency on FCS_CKM.4 for the subsequent destruction of any keys that the TSF generates. This dependency is met by the extended SFR FCS_CKM_EXT.4, which serves the same purpose. </htm:td> </htm:tr> <htm:tr><htm:td>FCS_CKM.1 - Cryptographic Key Generation </htm:td> <htm:td>FCS_CKM.1 has a dependency on FCS_CKM.4 for the subsequent destruction of any keys that the TSF generates. This dependency is met by the extended SFR FCS_CKM_EXT.4, which serves the same purpose as its CC Part 2 equivalent. </htm:td> </htm:tr> <htm:tr><htm:td>FCS_CKM.2 - Cryptographic Key Establishment </htm:td> <htm:td>Both iterations of FCS_CKM.2 have a dependency on FCS_CKM.4 for the subsequent destruction of any keys that the TSF establishes. This dependency is met by the extended SFR FCS_CKM_EXT.4, which serves the same purpose as its CC Part 2 equivalent. </htm:td> </htm:tr> <htm:tr><htm:td>FCS_COP.1 - Cryptographic Operation </htm:td> <htm:td>All iterations of FCS_COP.1 have a dependency on FCS_CKM.4 for the subsequent destruction of any residual key material the TSF creates as part of the operation. This dependency is met by the extended SFR FCS_CKM_EXT.4, which serves the same purpose as its CC Part 2 equivalent. </htm:td> </htm:tr> <!--   
      <htm:tr>
        <htm:td>FCS_HTTPS_EXT.1 - HTTPS Protocol</htm:td>
        <htm:td>FCS_HTTPS_EXT.1 has a dependency on FMT_SMF.1 for management of the TOE's behavior in the event of an invalid certificate. This dependency is met
          by the extended SFR FMT_SMF_EXT.1 (specifically function 23), which serves the same purpose as its CC Part 2 equivalent.</htm:td>
      </htm:tr>
        --><htm:tr><htm:td>FCS_STG_EXT.1 - Cryptographic Key Storage </htm:td> <htm:td>FCS_STG_EXT.1 has a dependency on FMT_SMR.1 for the management roles that are authorized to manage the functionality defined by the requirement. This dependency is met by FMT_SMF.1, which implicitly defines separate management roles for the TSF. </htm:td> </htm:tr> <htm:tr><htm:td>FDP_ACF_EXT.1 - Access Control for System Services </htm:td> <htm:td>FDP_ACF_EXT.1 has a dependency on FMT_SMR.1 for the management roles that are authorized to manage the functionality defined by the requirement. This dependency is met by FMT_SMF.1, which implicitly defines separate management roles for the TSF. </htm:td> </htm:tr> <htm:tr><htm:td>FDP_ACF_EXT.2 - Access Control for System Resources </htm:td> <htm:td>FDP_ACF_EXT.2 has a dependency on FMT_SMR.1 for the management roles that are authorized to manage the functionality defined by the requirement. This dependency is met by FMT_SMF.1, which implicitly defines separate management roles for the TSF. </htm:td> </htm:tr> <htm:tr><htm:td>FIA_AFL_EXT.1 - Authentication Failure Handling </htm:td> <htm:td>FIA_AFL_EXT.1 has a dependency on FIA_UAU.1 since handling of authentication failures is not possible without an authentication mechanism. This dependency is met by the extended SFR FIA_UAU_EXT.1, which serves the same purpose as its CC Part 2 equivalent. </htm:td> </htm:tr> <htm:tr><htm:td>FIA_PMG_EXT.1 - Password Management </htm:td> <htm:td>FIA_PMG_EXT.1 has a dependency on FIA_UAU.1 since composition of authentication credentials is not possible without an authentication mechanism. This dependency is met by the extended SFR FIA_UAU_EXT.1, which serves the same purpose as its CC Part 2 equivalent. </htm:td> </htm:tr> <htm:tr><htm:td>FIA_UAU.7 - Protected Authentication Feedback </htm:td> <htm:td>FIA_UAU.7 has a dependency on FIA_UAU.1 since protected authentication feedback is not possible without an authentication mechanism. This dependency is met by the extended SFR FIA_UAU_EXT.1, which serves the same purpose as its CC Part 2 equivalent. </htm:td> </htm:tr> <htm:tr><htm:td>FMT_SMF_EXT.3 - Current Administrator </htm:td> <htm:td>FMT_SMF_EXT.3 has a dependency on FMT_SMR.1 through its reference to management roles in the requirement text. This dependency is met by FMT_SMF.1, which implicitly defines separate management roles for the TSF. </htm:td> </htm:tr> </htm:table> </appendix>
  <appendix title="Entropy Documentation And Assessment" id="entropy">The documentation of the entropy source should be detailed enough that, after reading, the evaluator will thoroughly understand the entropy source and why it can be relied upon to provide entropy. This documentation should include multiple detailed sections: design description, entropy justification, operating conditions, and health testing. This documentation is not required to be part of the TSS. <section id="description" title="Design Description">Documentation shall include the design of the entropy source as a whole, including the interaction of all entropy source components. It will describe the operation of the entropy source to include how it works, how entropy is produced, and how unprocessed (raw) data can be obtained from within the entropy source for testing purposes. The documentation should walk through the entropy source design indicating where 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 it is output from the entropy source. Any conditions placed on the process (e.g., blocking) should also be described in the entropy source design. Diagrams and examples are encouraged. <htm:br/> <htm:br/> 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 ensures that an adversary outside the boundary cannot affect the entropy rate. <htm:br/> <htm:br/> If implemented, the design description shall include a description of how third-party applications can add entropy to the RBG. A description of any RBG state saving between power-off and power-on shall be included. </section> <section id="justification" title="Entropy Justification">There should be a technical argument for where the unpredictability in the source comes from and why there is confidence in the entropy source exhibiting probabilistic behavior (an explanation of the probability distribution and justification for that distribution given the particular source is one way to describe this). This argument will include a description of the expected entropy rate and explain how you ensure that sufficient entropy is going into the TOE randomizer seeding process. This discussion will be part of a justification for why the entropy source can be relied upon to produce bits with entropy. <htm:br/> <htm:br/> The entropy justification shall not include any data added from any third-party application or from any state saving between restarts. </section> <section id="conditions" title="Operating Conditions">Documentation will also include the range of operating conditions under which the entropy source is expected to generate random data. It will clearly describe the measures that have been taken in the system design to ensure the entropy source continues to operate under those conditions. Similarly, documentation shall describe the conditions under which the entropy source is known to malfunction or become inconsistent. Methods used to detect failure or degradation of the source shall be included. </section> <section id="testing" title="Health Testing">More specifically, all entropy source health tests and their rationale 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., at startup, continuously, or on-demand), the expected results for each health test, and rationale indicating why each test is believed to be appropriate for detecting one or more failures in the entropy source. </section> </appendix>
  <bibliography>
    <cc-entry/>
    <entry id="CEM">
      <tag>CEM</tag>
      <description> <htm:a href="http://www.commoncriteriaportal.org/files/ccfiles/CEMV3.1R5.pdf">Common
            Evaluation Methodology for Information Technology Security - Evaluation
            Methodology</htm:a>, CCMB-2012-09-004, Version 3.1, Revision 5, April 2017.</description>
    </entry>
  </bibliography>
</PP>
