<Module xmlns="https://niap-ccevs.org/cc/v1" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:sec="https://niap-ccevs.org/cc/v1/section" name="Virtual Private Network (VPN) Clients" boilerplate="yes" target-product="VPN client" target-products="VPN clients">
  <PPReference>
    <ReferenceTable>
      <PPVersion>3.0</PPVersion>
      <PPAuthor>National Information Assurance Partnership</PPAuthor>
      <PPPubDate>2025-09-30</PPPubDate>
      <Keywords>VPN, VPN Client</Keywords>
    </ReferenceTable>
  </PPReference>
  <RevisionHistory>
    <entry>
      <version>2.1</version>
      <date>2019-11-14</date>
      <subject>Initial Release</subject>
    </entry>
    <entry>
      <version>2.2</version>
      <date>2021-01-05</date>
      <subject>Update release</subject>
    </entry>
    <entry>
      <version>2.3</version>
      <date>2021-08-10</date>
      <subject>Support for MDF, Bluetooth updates</subject>
    </entry>
    <entry>
      <version>2.4</version>
      <date>2022-03-31</date>
      <subject>Incorporation of TC feedback</subject>
    </entry>
    <entry>
      <version>2.5</version>
      <date>2024-06-24</date>
      <subject>Incorporation of TC feedback: <h:ul><h:li>Incorporation of TDs: 0662, 0672, 0690, 0697, 0711, 0725, 0753, 0788</h:li> <h:li>Corrections to Base-PP references</h:li> <h:li>Definition of auditable events for Additional SFRs</h:li> <h:li>Explicit association of evaluation activities with components and elements</h:li></h:ul></subject>
    </entry>
    <entry>
      <version>3.0</version>
      <date>2025-09-30</date>
      <subject>CC:2022 conversion, limitation of cryptographic algorithms to CNSA 1.0, incorporation of TDs </subject>
    </entry>
  </RevisionHistory>
  <release-notes><h:h3>TDs Applied</h:h3></release-notes><include-pkg id="ssh">
    <git>
      <url>https://github.com/commoncriteria/ssh</url>
      <branch>master</branch>
    </git>
    <url>https://www.niap-ccevs.org/protectionprofiles/515</url>
  </include-pkg>
  <include-pkg id="tls">
    <git>
      <url>https://github.com/commoncriteria/tls</url>
      <branch>release-2.1</branch>
    </git>
    <url>https://www.niap-ccevs.org/protectionprofiles/465</url>
    <depends on="fcs-eap-ext-1"/>
  </include-pkg>
  <include-pkg id="X509">
    <git>
      <url>https://github.com/commoncriteria/X509</url>
      <branch>master</branch>
    </git>
    <url>https://www.niap-ccevs.org/protectionprofiles/511</url>
  </include-pkg>
  <pp-preferences/>
  <sec:Introduction>
    <sec:Overview title="Overview">
      The scope of this Protection Profile Module (PP-Module) is to describe the security functionality of a virtual private network (VPN)
      client in terms of
      <xref g="CC"/>
      and to define functional and assurance requirements for such
      products. This PP-Module is intended for use with the following Base-PPs:
      <h:ul>
        <h:li>Protection Profile for General Purpose Operating Systems (GPOS PP), Version 5.0</h:li>
        <h:li>Protection Profile for Mobile Device Fundamentals (MDF PP), Version 4.0</h:li>
        <h:li>Protection Profile for Application Software (App PP), Version 2.0</h:li>
        <h:li>Protection Profile for Mobile Device Management (MDM PP), Version 5.0</h:li>
      </h:ul>
      These Base-PPs are all valid because a VPN client may be a specific type of stand-alone software
      application or a built-in component of an operating system (OS), whether desktop or mobile. Regardless of
      which Base-PP is claimed, the VPN client functionality defined by this PP-Module will rely on the Base-PP.
      Sections 5.1 through 5.4 of this PP-Module describe the relevant functionality for each Base-PP,
      including specific selections and assignments, or inclusion of optional requirements that must be made as
      needed to support the VPN client functionality.
    </sec:Overview>
    <tech-terms>
      <term full="Administrator">A user that has administrative privilege to configure the TOE in privileged
        mode.</term>
      <term full="Authorized">An entity granted access privileges to an object, system, or system entity.</term>
      <term full="Critical Security Parameter" abbr="CSP">Security related information such as secret and private cryptographic keys, and
        authentication data such as passwords and PINs, whose disclosure or
        modification can compromise the security of a cryptographic module.</term>
      <term full="Entropy Source">This cryptographic function provides a seed for a random number generator
        by accumulating the outputs from one or more noise sources. The
        functionality includes a measure of the minimum work required to guess a
        given output and tests to ensure that the noise sources are operating
        properly.</term>
      <term full="IT Environment">Hardware and software that are outside the TOE boundary that support the
        TOE functionality and security policy.</term>
      <term full="Private Network">A network that is protected from access by unauthorized users or entities.</term>
      <term full="Privileged Mode">A TOE operational mode that allows a user to perform functions that require
        IT environment administrator privileges.</term>
      <term full="Public Network">A network that is visible to all users and entities and does not protect against
        unauthorized access (e.g., internet).</term>
      <term full="Threat Agent">An entity that tries to harm an information system through destruction,
        disclosure, modification of data, or denial of service.</term>
      <term full="Unauthorized User">An entity (device or user) that has not been authorized by an authorized
        administrator to access the TOE or private network.</term>
      <term full="Unprivileged Mode">A TOE operational mode that only provides VPN client functions for the VPN
        client user.</term>
      <term full="VPN Client">The TOE; allows remote users to use client computers to establish an
        encrypted IPsec tunnel across an unprotected public network to a private
        network.</term>
      <term full="VPN Client User">A user operating the TOE in unprivileged mode.</term>
      <term full="VPN Gateway">A component that performs encryption and decryption of IP packets as they
        cross the boundary between a private network and a public network.</term>
      <term full="Advanced Encryption Standard" abbr="AES"/>
      <term full="Certificate Revocation List" abbr="CRL"/>
      <term full="Diffie-Hellman" abbr="DH"/>
      <term full="Distinguished Name" abbr="DN"/>
      <term full="Digital Signature Standard" abbr="DSS"/>
      <term full="Elliptic Curve Cryptography" abbr="ECC"/>
      <term full="Encapsulating Security Protocol" abbr="ESP"/>
      <term full="End-User Device" abbr="EUD"/>
      <term full="Finite Field Cryptography" abbr="FFC"/>
      <term full="Federal Information Processing Standards" abbr="FIPS"/>
      <term full="Fully Qualified Domain Name" abbr="FQDN"/>
      <term full="(General Purpose) Operating System" abbr="OS"/>
      <term full="Internet Key Exchange" abbr="IKE"/>
      <term full="Internet Protocol" abbr="IP"/>
      <term full="Information Technology" abbr="IT"/>
      <term full="Mobile Device (Fundamentals)" abbr="MD"/>
      <term full="Network Address Translation" abbr="NAT"/>
      <term full="National Institute of Standards and Technology" abbr="NIST"/>
      <term full="Online Certificate Status Protocol" abbr="OCSP"/>
      <term full="Organizational Security Policy" abbr="OSP"/>
      <term full="Publication" abbr="PUB"/>
      <term full="Random Bit Generation" abbr="RBG"/>
      <term full="Request For Comment" abbr="RFC"/>
      <term full="Security Association" abbr="SA"/>
      <term full="Supporting Document" abbr="SD"/>
      <term full="Secure Hash Algorithm" abbr="SHA"/>
      <term full="Security Policy Database" abbr="SPD"/>
      <term full="Virtual Private Network" abbr="VPN"/>
    </tech-terms>
    <sec:Compliant_Targets_of_Evaluation>
      The TOE defined by this PP-Module is the VPN client, a software application that runs on a physical or
      virtual host platform, used to establish a secure IPsec connection between that host platform and a
      remote system. The VPN client is intended to be located outside or inside of a private network, and
      establishes a secure tunnel to an IPsec peer. For the purposes of this PP-Module, IPsec peers are defined
      as:
      <h:ul>
        <h:li>VPN gateways</h:li>
        <h:li>Other VPN clients</h:li>
        <h:li>An IPsec-capable network device (supporting IPsec for the purposes of management)</h:li>
      </h:ul>
      The tunnel provides confidentiality, integrity, and data authentication for information that travels across
      a less trusted (sometimes public) network. All VPN clients that comply with this document will support
      IPsec.
      <h:br/>
      <h:br/>
      This PP-Module extends the GPOS PP when the VPN client is installed on an OS discussed
      in that PP (e.g., Windows, Mac OS, Linux). This PP-Module extends the MDF PP when the VPN client is
      installed on a self-contained mobile device that is bundled with an OS (e.g., Android,
      BlackBerry OS, iOS, Windows Mobile). This PP-Module extends the App PP when the VPN client is
      provided by a third party and is a standalone application that is not a bundled part of an OS
      or mobile device. This PP-Module extends the MDM PP when the VPN client is included with
      MDM server software that is used for centralized deployment and administration of enterprise mobile
      device policies.
      <h:br/>
      <h:br/>
      As a PP-Module of any of these PPs, it is expected that the content of this PP-Module and the chosen
      Base-PP be appropriately combined in the context of each product-specific ST. This PP-Module has been specifically defined such that there should be no difficulty or ambiguity in doing so.
      When this PP-Module is used, conformant TOEs are obligated to implement the functionality required in
      the claimed Base-PP with the additional functionality defined in this PP-Module in response to the
      threat environment discussed in this PP-Module.
      <sec:TOE_Boundary>
        The TOE defined by this PP-Module is purely a software solution executing on a platform (some sort of
      OS running on hardware). Depending on the Base-PP claimed as part of the TOE, the
      platform may also be part of the TOE or it may be an environmental component that the TOE vendor has
      no control over. Regardless of whether the platform itself is within the scope of the evaluation, the VPN
      client itself will rely on the platform for its execution domain and proper usage. The vendor is expected
      to provide sufficient installation and configuration instructions to identify an Operational Environment (OE)
      with the necessary features and to provide instructions for how to configure it correctly.
        <h:br/>
        <h:br/>
        The PP-Module contains requirements that must be met by the TOE. Depending on the Base-PP that is
      claimed, there may be some variation in the applicable requirements. This is because a given Base-PP
      may include one or more requirements that the VPN client can inherit but are not shared between each
      possible Base-PP.
        <h:br/>
        <h:br/>
        This is somewhat different than other PPs, but addresses most implementations of VPN clients where
      some part of the functionality of the IPsec tunnel is provided by the platform. In terms of the
      cryptographic primitives (random bit generation, encryption and decryption, key generation, etc.) it is
      actually desirable that a well-tested implementation in the platform is used rather than trying to
      implement these functions in each client.
        <h:br/>
        <h:br/>
        Requirements that can be satisfied by either the TOE or the platform are identified in Section 5 by text
      such as “The [selection: TSF, TOE platform] shall…” The ST author will make the appropriate selection
      based on where that element is implemented. It is allowable for some elements in a component to be 
      implemented by the TOE, while other elements in that same component be implemented by the
      platform (requirements on the usage of X.509 certificates is an example of where this might be the case,
      where using the information contained in the certificates and the implementation of revocation
      checking may be done by the TOE, but storage and protection of the certificates may be done by the
      platform). Note that in the cases where this PP-Module is used to extend the GPOS PP or MDF PP, the
      TOE includes both the VPN client and the platform. In this case, it is appropriate to indicate that the TOE
      satisfies this requirement. However, the ST author should make it clear, for each of these components,
      which are implemented by the VPN client portion of the TOE versus the platform portion.
        <h:br/>
        <h:br/>
        A Supporting Document (SD) accompanies this PP-Module and contains guidance for how to evaluate the
requirements defined by the PP-Module, expressed as Evaluation Activities (EAs). EAs will differ
      based on where the function that meets the requirement is implemented. In most cases, requirements
      implemented by the platform will require that the evaluator examine documents pertaining to the
      platform (generally the ST), while requirements implemented by the TOE may require examination of
      the TSS, examination of the Operational Guidance, or execution of evaluator testing. For
      requirements implemented by the platform, there may also be requirements where the evaluator must
      examine the interfaces used by the TOE to access these functions on the platform. This ensures that the
      functionality being invoked to satisfy the requirements of this PP-Module is the same functionality that
      was evaluated.
        <h:br/>
        <h:br/>
        Given the degree of coupling between a VPN client and its underlying platform, it is expected that the
      client will be tested on each platform claimed in the ST. In cases where the platforms are simply
      different versions of the same OS (provided by the same platform vendor), an equivalency
      argument may be made in lieu of testing on each version. The argument would have to demonstrate
      that the client interacts in exactly the same way with the versions of the OS (i.e., the same APIs are used
      with the same parameters, the network stack is modified with exactly the same kernel modules). The
      evaluator shall use the operational guidance to configure the TOE and underlying platform.
        <h:br/>
        <h:br/>
        A TOE that conforms to this PP-Module will implement the Internet Engineering Task Force (IETF)
      IPsec Security Architecture for the Internet Protocol, RFC 4301, as well as
      the IPsec Encapsulating Security Payload (ESP) protocol. IPsec ESP is specified in RFC 4303.
      The IPsec VPN client will support ESP in either tunnel mode, transport mode, or both.
        <h:br/>
        <h:br/>
        The IPsec VPN client will use the Internet Key Exchange (IKE)v2 protocol. IKEv2 is implemented as specified in RFC
      7296 and 4307 to authenticate
      and establish session keys with the VPN entities. The IKEv2 implementation also requires mandatory support for network address translation (NAT)
      traversal as specified in section 2.23 of RFC 7296.
        <h:br/>
        <h:br/>
        To show that the TSF implements the RFCs correctly, the evaluator shall perform the EAs
      documented in the SD that accompanies this PP-Module. In future versions of this
      PP-Module, EAs may be modified or new ones may be introduced that cover more aspects of RFC compliance
      than what is currently described in this publication.
        <h:br/>
        <h:br/>
        The IPsec VPN client enables encryption of all information that flows between itself and its IPsec peer.
      The VPN client serves as an endpoint for an IPsec VPN connection and performs a number of
      cryptographic functions related to establishing and maintaining that connection. If the cryptography
      used to perform endpoint authentication, generate keys, and encrypt information is sufficiently robust
      and the implementation has no critical design mistakes, an adversary will be unable to exhaust the
      encryption key space to obtain the data. Compliance with IPsec standards, use of a properly seeded
      Random Bit Generator (RBG), and secure authentication factors will ensure that access to the 
      transmitted information cannot be obtained with less work than a full exhaust of the key space. Any
      plaintext secret and private keys or other cryptographic security parameters will be zeroized when no
      longer in use to prevent disclosure of security critical data.
      </sec:TOE_Boundary>
    </sec:Compliant_Targets_of_Evaluation>
    <sec:Use_Cases>
      A VPN client allows users on the TOE platform to establish secure IPsec communications, providing
      confidentiality, integrity, and protection of data, across a less trusted network to secure data in
      transit. This PP-Module defines three use cases for VPN clients. A conformant TOE will implement one or
      more of the use cases specified below.
      <h:br/>
      <h:br/>
      <usecases>
        <usecase title="TOE to VPN Gateway" id="usecase1">
          <description>
            A VPN client allows users on the TOE platform to establish an encrypted IPsec tunnel across a
            less trusted, often unprotected, public network to a private network (see
            <xref to="fig-usecase1"/>). In this case,
            the TOE provides encryption and decryption of network packets as they leave and arrive on the VPN client’s
            underlying platform. IP packets crossing from the private network to the public network will be
            encrypted if their destination is a remote access VPN client supporting the same VPN policy as
            the source network.
            <h:br/>
            <h:br/>
            The TOE is responsible for encrypting the packets that are intended to be received by the target
            on the private network and then encapsulating these packets in a way that allows the VPN
            gateway to securely receive them and forward them to their final destination.
            <figure entity="images/usecase1.png" title="TOE to VPN Gateway" id="fig-usecase1"/>
          </description>
        </usecase>
        <usecase title="TOE to VPN Client" id="usecase2">
          <description>
            A VPN client may additionally or alternatively allow a client computer to connect directly to
              another computer running a VPN client (see
            <xref to="fig-usecase2"/>). In this case, the functionality of the VPN
              client is to connect directly to another endpoint system to facilitate point-to-point communications with that system.
            <h:br/>
            <h:br/>
            IPsec transport mode is used for end-to-end communications. In this use case, the content of
              the packet data (payload) is encrypted but the original IP header is preserved. Inherent to this
              use case, when two peers are communicating directly, is the disclosure of the
              source and destination of the packets. Users should take into consideration any security risks
              associated with this disclosure when architecting their networks in line with this use case.
            <figure entity="images/usecase2.png" title="TOE to VPN Client" id="fig-usecase2"/>
          </description>
        </usecase>
        <usecase title="TOE to IPsec-Capable Network Device" id="usecase3">
          <description>
            Similar to Use Case 2 above, a VPN client TOE can also be used to establish a secure connection
            to an IPsec-capable network device using IPsec, similar to how an SSH connection might be used. In this case,
            where a network device is being managed remotely over an IPsec connection, the network
            device itself must contain IPsec functionality to act as the peer for the connection (see
            <xref to="fig-usecase3"/>).
            <h:br/>
            <h:br/>
            While this will behave functionally the same way as the scenario described by Use Case 2, the
            user of the TOE in Use Case 3 is a network administrator who is assumed to have administrative
            access to the network device they are connecting to.
            <figure entity="images/usecase3.png" title="TOE to IPsec-Capable Network Device" id="fig-usecase3"/>
          </description>
        </usecase>
      </usecases>
    </sec:Use_Cases>
    <section title="Package Usage">
      This section contains selections and assignments that are required when the listed Functional Packages are claimed by this PP-Module.
      <h:br/>
      Package Usage guidance defined in the TOE's relevant Base-PP applies to the usage of the packages for this module, unless explicitly stated otherwise in this section.
      <package-usage-list>
        <package-usage ref="X509">
          <usage id="usage-x509-roles" title="Certificate Verification and Assertion Required in FIA_XCU_EXT.1.1">
            <description>Because this PP-Module mandates support for mutual authentication for TLS, the ST author shall select the options to verify and assert certificate identities in FIA_XCU_EXT.1.1.</description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
          <usage id="usage-x509-usage" title="Required Selections for FIA_X509_EXT.2.1">
            <description>The ST author shall ensure that the assignment and selections in FIA_X509_EXT.2.1 reflect the usage of X.509 certificates for IPsec exchanges. If the TOE supports EAP-TLS and claims FCS_EAP_EXT.1, the 
            ST author shall ensure that the assignment and selections within FIA_X509_EXT.2.1 reflect the usage of X.509 for EAP-TLS. Other selections and assignments may be made as appropriate for other TOE functionality.</description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
        </package-usage>
        <package-usage ref="tls">
          <usage id="usage-tls-clientreq" title="TLS or DTLS Client Functionality Required in FCS_TLS_EXT.1.1 for EAP-TLS">
            <description>This usage requirement applies only if the TOE supports EAP-TLS. The ST author shall select the option to support client functionality for TLS or DTLS in FCS_TLS_EXT.1.1. The selection shall correspond with other protocol selections made in FCS_EAP_EXT.1.</description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
          <usage id="usage-tls-mutualauth" title="Mutual Authentication Required in FCS_TLSC_EXT.1.1 or FCS_DTLSC_EXT.1.1 for EAP-TLS">
            <description>This usage requirement applies only if the TOE supports EAP-TLS. The ST author shall select the option to support mutual authentication for TLS or DTLS, according with the protocol support selected in FCS_TLS_EXT.1.1.</description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
        </package-usage>
      </package-usage-list>
    </section>
    <section title="Requirements Focus" id="rfocus">
      <!--   Section added for schema validation   -->
      Regardless of the specific usage of the TOE, the focus of the Security Functional Requirements (SFRs) in this PP-Module
      is on the following fundamental aspects of a VPN client.
      <h:ul>
        <h:li>Authentication of the IPsec peer</h:li>
        <h:li>Cryptographic protection of data in transit</h:li>
        <h:li>Implementation of services</h:li>
      </h:ul>
      A VPN client can establish VPN connectivity to either a VPN gateway with traffic bound for a remote
      endpoint in the private network that is protected by the VPN gateway (Use Case 1), to a VPN client peer
      residing on a remote endpoint in the same network as the TOE (Use Case 2), or to a network device
      with IPsec capability for the purposes of managing that device (Use Case 3). In the first case, the entire
      IP packet is encapsulated and a new header is applied so that the gateway can route the packet to its 
      intended destination. This is known as tunnel mode. In the latter two cases, the original IP header is
      preserved and only the payload is encrypted. This is known as transport mode.
      <h:br/>
      <h:br/>
      Beyond the implementation differences specified by these use cases, the remaining security
      functionality is expected to be implemented by all VPN clients, regardless of whether it supports one or
      more of the use cases. Regardless of the intended use case, VPN endpoints authenticate each other to
      ensure they are communicating with an authorized external IT entity. Authentication of IPsec peers is
      performed as part of the Internet Key Exchange (IKE) negotiation. The IKE negotiation uses a pre-existing
      public key infrastructure for authentication and can optionally use a pre-shared key. When IKE
      completes, an IPsec tunnel secured with Encapsulating Security Payload (ESP) is established.
      <h:br/>
      <h:br/>
      It is assumed that the VPN client is implemented properly and contains no critical design mistakes. The
      VPN client relies on the system or device on which it is installed for its proper execution. The vendor is
      required to provide configuration guidance (AGD_PRE, AGD_OPE) to correctly install and administer the
      client machine and the TOE for every OE supported.
    </section>
  </sec:Introduction>
  <section title="Conformance Claims" id="ConformanceClaims">
    <CClaimsInfo cc-version="cc-2022r1" cc-approach="direct-rationale">
      <cc-st-conf>exact</cc-st-conf>
      <cc-pt2-conf>extended</cc-pt2-conf>
      <cc-pt3-conf>extended</cc-pt3-conf>
      <cc-pp-conf/>
      <cc-pp-config-with>
        <PP-cc-ref>Protection Profile for General Purpose Operating Systems, Version 5.0</PP-cc-ref>
        <PP-cc-ref>Protection Profile for Mobile Device Fundamentals, Version 4.0</PP-cc-ref>
        <PP-cc-ref>Protection Profile for Mobile Device Management, Version 5.0</PP-cc-ref>
        <PP-cc-ref>Protection Profile for Application Software, Version 2.0</PP-cc-ref>
        <Mod-cc-ref>cPP-Module for Wireless LAN Clients, version 1.1</Mod-cc-ref>
        <Mod-cc-ref>PP-Module for Bluetooth, version 1.1</Mod-cc-ref>
        <Mod-cc-ref>PP-Module for Mobile Device Management Agent, version 2.0</Mod-cc-ref>
        <Mod-cc-ref>cPP-Module for Biometric Enrolment and Verification, version 1.1</Mod-cc-ref>
      </cc-pp-config-with>
      <cc-pkg-claim>
        <AP-cc-ref conf="conformant">Assurance Package for Flaw Remediation Version 1.0</AP-cc-ref>
        <FP-cc-ref conf="conformant">Functional Package for Transport Layer Security Version 2.1</FP-cc-ref>
        <FP-cc-ref conf="conformant">Functional Package for X.509 Version 1.0</FP-cc-ref>
      </cc-pkg-claim>
    </CClaimsInfo>
  </section>
  <!-- 3.0 Security Problem Definition-->
  <sec:Security_Problem_Description title="Security Problem Definition">
    The security problem is described in terms of the threats that the TOE is expected to address,
assumptions about its OE, and any organizational security policies that the TOE is
expected to enforce.
    <h:br/>
    <h:br/>
    This PP-Module is written to address the situation in which a user accesses a private network (e.g., the
    user’s office network) or terminal endpoint (e.g., a network device) using a less trusted network (such as
    a public Wi-Fi network or local area network). Protection of network packets is desired as they traverse
    a public network. To protect the data in transit from disclosure and modification, a VPN is created to
    establish secure communications. The VPN client provides one end of the secure VPN tunnel and
    performs encryption and decryption of network packets in accordance with a VPN security policy
    negotiated between the VPN client (TOE) and its IPsec peer.
    <h:br/>
    <h:br/>
    The proper installation and configuration of the VPN client is critical to its correct operation such that
    proper handling of the TOE by an administrator is also addressed.
    <h:br/>
    <h:br/>
    Note that as a PP-Module, all threats, assumptions, and organizational security policies (OSPs) defined in the Base-PP will also apply to a
    TOE unless otherwise specified, depending on which of the Base-PPs it extends. The SFRs
    defined in this PP-Module will mitigate the threats that are defined in the PP-Module but
    may also mitigate some threats defined in the Base-PPs in more comprehensive detail due to the
    specific capabilities provided by a VPN client.
    <!-- 3.1 Threats -->
    <sec:Threats>
      The following threats defined in this PP-Module extend the threats defined by the Base-PPs.
      <threats>
        <threat name="T.TSF_CONFIGURATION">
          <description> Configuring VPN tunnels is a complex and time-consuming process, and prone to errors if the            interface for doing so is not well-specified or well-behaved. The inability or failure of an ignorant or careless administrator to configure certain aspects            of the interface may also lead to the incorrect specification of the desired communications policy or use            of cryptography that may be desired or required for a particular site. This may result in unintended            weak or plaintext communications while the user thinks that their data are being protected. Other            aspects of configuring the TOE or using its security mechanisms (for example, the update process)            may also result in a reduction in the trustworthiness of the VPN client.</description>
          <!-- New mapping to build updated threat mapping table. -->
          <addressed-by>FAU_GEN.1/VPN (implementation-dependent)</addressed-by>
          <rationale>This SFR mitigates the threat by optionally
            requiring the TOE to generate audit data for its behavior.</rationale>
          <addressed-by>FAU_SEL.1/VPN (objective)</addressed-by>
          <rationale>This SFR mitigates the threat by optionally
            requiring the TOE to allow for the configuration of what behavior is audited.</rationale>
          <addressed-by>FIA_X509_EXT.4 (additional to GPOS PP)</addressed-by>
          <rationale>This SFR mitigates the threat by providing the ability to verify the integrity of the TSF using X.509 certificates.</rationale>
          <addressed-by>FMT_SMF.1/VPN</addressed-by>
          <rationale>This SFR mitigates the threat by requiring the TOE
            to implement certain administratively-configurable functions.</rationale>
          <addressed-by>FPT_TST_EXT.1/VPN</addressed-by>
          <rationale>This SFR mitigates the threat by requiring the TOE
            to execute self-tests that demonstrate that its integrity is maintained.</rationale>
        </threat>
        <threat name="T.TSF_FAILURE">
          <description> Security mechanisms of the TOE generally build up from a primitive set of mechanisms (e.g.,            memory management, privileged modes of process execution) to more complex sets of            mechanisms. Failure of the primitive mechanisms could lead to a compromise in more complex            mechanisms, resulting in a compromise of the TSF.          </description>
          <!-- New mapping to build updated threat mapping table. -->
          <addressed-by>FAU_GEN.1/VPN (implementation-dependent)</addressed-by>
          <rationale>This SFR mitigates the threat by optionally
            requiring the TOE to generate audit data for its behavior.</rationale>
          <addressed-by>FAU_SEL.1/VPN (objective)</addressed-by>
          <rationale>This SFR mitigates the threat by optionally
            requiring the TOE to allow for the configuration of what behavior is audited.</rationale>
          <addressed-by>FPT_TST_EXT.1/VPN</addressed-by>
          <rationale>This SFR mitigates the threat by requiring the TOE
            to execute self-tests that demonstrate that its integrity is maintained.</rationale>
        </threat>
        <threat name="T.UNAUTHORIZED_ACCESS">
          <description>This PP-Module does not include requirements that can protect against an insider threat. Authorized            users are not considered hostile or malicious and are trusted to follow appropriate guidance. Only            authorized personnel should have access to the system or device that contains the IPsec VPN client.            Therefore, the primary threat agents are the unauthorized entities that try to gain access to the            protected network (in cases where tunnel mode is used) or to plaintext data that traverses the            public network (regardless of whether transport mode or tunnel mode is used). <h:br/><h:br/>            The endpoint of the network communication can be both geographically and logically distant from            the TOE and can pass through a variety of other systems. These intermediate systems may be under            the control of the adversary, and offer an opportunity for communications over the network to be            compromised. <h:br/><h:br/>            Plaintext communication over the network may allow critical data (such as passwords, configuration            settings, and user data) to be read or manipulated directly by a malicious user or process on intermediate systems, leading to            a compromise of the TOE or to the secured environmental systems that the TOE is being used to            facilitate communications with. IPsec can be used to provide protection for this communication;            however, there are numerous options that can be implemented for the protocol to be compliant to the            protocol specification listed in the RFC. Some of these options can have negative impacts on the            security of the connection. For instance, using a weak encryption algorithm (even one that is            allowed by the RFC, such as DES) can allow an adversary to read and even manipulate the data on            the encrypted channel, thus circumventing countermeasures in place to prevent such attacks.            Further, if the protocol is implemented with little-used or non-standard options, it may be compliant             with the protocol specification, but will not be able to interact with other diverse equipment that is            typically found in large enterprises. <h:br/><h:br/>            Even though the communication path is protected, there is a possibility that the IPsec peer could be            tricked into thinking that a malicious third-party user or system is the TOE. For instance, a            middleman could intercept a connection request to the TOE and respond to the request as if it were            the TOE. In a similar manner, the TOE could also be tricked into thinking that it is establishing            communications with a legitimate IPsec peer when in fact it is not. An attacker could also mount a            malicious man-in-the-middle-type of attack, in which an intermediate system is compromised, and            the traffic is proxied, examined, and modified by this system. This attack can even be mounted via            encrypted communication channels if appropriate countermeasures are not applied. These attacks            are, in part, enabled by a malicious attacker capturing network traffic (for instance, an            authentication session) and “playing back” that traffic in order to fool an endpoint into thinking it            was communicating with a legitimate remote entity.</description>
          <!-- New mapping to build updated threat mapping table. -->
          <addressed-by>FCS_EAP_EXT.1 (selection-based)</addressed-by>
          <rationale>This SFR mitigates the threat by optionally implementing EAP-TLS or EAP-TTLS as a mechanism for authentication.</rationale>
          <addressed-by>FCS_IPSEC_EXT.1</addressed-by>
          <rationale>This SFR mitigates the threat by requiring the
            TOE’s implementation of IPsec to include requirements for how the remote VPN gateway or
            peer is authenticated.</rationale>
          <addressed-by>FIA_BMA_EXT.1 (optional)</addressed-by>
          <rationale>This SFR mitigates the threat by optionally defining the TOE's support for a platform-based biometric mechanism to use as an authentication mechanism.</rationale>
          <addressed-by>FIA_PSK_EXT.1 (selection-based)</addressed-by>
          <rationale>This SFR mitigates the threat by optionally
            requiring support for pre-shared keys as an alternate authentication method for IPsec.</rationale>
          <addressed-by>FIA_PSK_EXT.2 (selection-based)</addressed-by>
          <rationale>This SFR mitigates the threat by optionally specifying whether the TOE generates its own pre-shared keys used for authentication or accept them from an external source.</rationale>
          <addressed-by>FIA_PSK_EXT.3 (selection-based)</addressed-by>
          <rationale>This SFR mitigates the threat by optionally defining the composition and use of password-based pre-shared keys used for authentication.</rationale>
          <addressed-by>FIA_PSK_EXT.4 (selection-based)</addressed-by>
          <rationale>This SFR mitigates the threat by optionally
            defining HOTP as an authentication mechanism.</rationale>
          <addressed-by>FIA_PSK_EXT.5 (selection-based)</addressed-by>
          <rationale>This SFR mitigates the threat by optionally
            defining TOTP as an authentication mechanism.</rationale>
          <addressed-by>FPF_MFA_EXT.1 (optional)</addressed-by>
          <rationale>This SFR mitigates the threat by optionally enforcing a multifactor authentication requirement on an IPsec connection.</rationale>
          <addressed-by>FTP_ITC.1 (additional to GPOS PP)</addressed-by>
          <rationale>This SFR mitigates the threat by defining the use of IPsec for protecting data in transit.</rationale>
        </threat>
        <threat name="T.USER_DATA_REUSE">
          <description>Data traversing the TOE could inadvertently be sent to a different user as a consequence of a poorly-designed TOE; since these data may be            sensitive, this may cause a compromise that is unacceptable. The specific threat that must be            addressed concerns user data that is retained by the TOE in the course of processing network traffic            that could be inadvertently reused in sending network traffic to a user other than that intended by            the sender of the original network traffic.          </description>
          <!-- New mapping to build updated threat mapping table. -->
          <addressed-by>FCS_CKM_EXT.2 (additional to App PP)</addressed-by>
          <rationale>This SFR mitigates the threat by requiring the TOE
            or its platform to store sensitive data in the OS' key storage.</rationale>
          <addressed-by>FCS_CKM_EXT.2 (additional to GPOS PP)</addressed-by>
          <rationale>This SFR mitigates the threat by requiring the TOE
            to store sensitive data in the OS’ key storage.</rationale>
          <addressed-by>FCS_CKM.6 (additional to App PP)</addressed-by>
          <rationale>This SFR mitigates the threat by requiring the TOE
            or its platform to zeroize key data when no longer needed.</rationale>
          <addressed-by>FDP_RIP.2</addressed-by>
          <rationale>This SFR mitigates the threat by requiring the TOE or its platform to ensure that
            residual data is purged from the system.</rationale>
          <addressed-by>FDP_VPN_EXT.1 (additional to MDF PP)</addressed-by>
          <rationale>This SFR mitigates the threat by optionally
            requiring the TOE to prohibit split-tunneling so that network traffic cannot be transmitted outside of an
            established IPsec tunnel.</rationale>
          <addressed-by>FPF_MFA_EXT.1 (optional)</addressed-by>
          <rationale>This SFR mitigates the threat by optionally
            requiring the TOE to prohibit transmission of packet data aside from those packets needed to perform multifactor authentication.</rationale>
        </threat>
      </threats>
    </sec:Threats>
    <!-- 3.2 Assumptions -->
    <sec:Assumptions>
      <assumptions>
        <assumption name="A.NO_TOE_BYPASS">
          <description>Information cannot flow onto the network to which the VPN client's host is connected without
            passing through the TOE.</description>
          <objective-refer ref="OE.NO_TOE_BYPASS">
            <rationale>This assumption is satisfied by the environmental objective that ensures
              network routes do not exist that allow traffic to be transmitted from the TOE system to its
              intended destination without going through the TOE’s IPsec tunnel.</rationale>
          </objective-refer>
        </assumption>
        <assumption name="A.PHYSICAL">
          <description>Physical security, commensurate with the value of the TOE and the data it contains, is assumed to
            be provided by the environment.</description>
          <objective-refer ref="OE.PHYSICAL">
            <rationale>This assumption is satisfied by the environmental objective that ensures the
              TOE is not deployed on a system that is vulnerable to loss of physical custody.</rationale>
          </objective-refer>
        </assumption>
        <assumption name="A.TRUSTED_CONFIG">
          <description>Personnel configuring the TOE and its OE will follow the applicable security
            configuration guidance.</description>
          <objective-refer ref="OE.TRUSTED_CONFIG">
            <rationale>This assumption is satisfied by the environmental objective that ensures that
              anyone responsible for administering the TOE can be trusted not to misconfigure it,
              whether intentionally or not.</rationale>
          </objective-refer>
        </assumption>
      </assumptions>
    </sec:Assumptions>
    <!-- 3.3 Organizational Security Policies -->
    <sec:Organizational_Security_Policies>
      <OSPs/>
    </sec:Organizational_Security_Policies>
  </sec:Security_Problem_Description>
  <!-- 4.0 Security Objectives -->
  <sec:Security_Objectives>
    <!-- 4.1 Security Objectives for the TOE -->
    <!-- 4.2 Security Objctives for the Operational Environment -->
    <section title="Security Objectives for the Operational Environment" id="SecurityObjectivesTOEorEnvironment">
      <SOEs>
        <SOE name="OE.NO_TOE_BYPASS">
          <description>Information cannot flow onto the network to which the VPN client’s host is connected without
            passing through the TOE.</description>
        </SOE>
        <SOE name="OE.PHYSICAL">
          <description>Physical security, commensurate with the value of the TOE and the data it contains, is assumed to
            be provided by the environment.</description>
        </SOE>
        <SOE name="OE.TRUSTED_CONFIG">
          <description>Personnel configuring the TOE and its OE will follow the applicable security
            configuration guidance.</description>
        </SOE>
      </SOEs>
    </section>
    <!-- 4.3 Security Objectives Rationale -->
    <sec:Security_Objectives_Rationale/>
  </sec:Security_Objectives>
  <!-- 5.0 Security Requirements -->
  <sec:Security_Requirements title="Security Requirements">
    <!-- 5.1 GPOS PP Security Functional Requirements Direction -->
    <base-pp id="bpp-gpos" name="Protection Profile for General Purpose Operating System" product="Operating System" short="GPOS" version="5.0">
      <git>
        <url>https://github.com/commoncriteria/operatingsystem</url>
        <branch>release-5.0</branch>
      </git>
      <url>https://github.com/commoncriteria/operatingsystem</url>
      <sec-func-req-dir>In a PP-Configuration that includes the GPOS PP, the VPN client is expected to rely on some of the
			security functions implemented by the OS as a whole and evaluated against the Base-PP.
			In this case, the following sections describe any modifications that the ST author must make to the SFRs
			defined in the Base-PP in addition to what is mandated by section 5.5.</sec-func-req-dir>
      <!-- 5.1.1 Modified SFRs -->
      <modified-sfrs>
        <section title="Class FCS: Cryptographic Support" id="os-m-fcs">
          <!-- FCS_CKM.1 Cryptographic Key Generation -->
          <base-sfr-spec cc-id="fcs_ckm.1" id="modsfr-os-fcs-ckm-1" title="Cryptographic Key Generation">
            <consistency-rationale>The ST author is instructed to make specific selections at minimum to address VPN client
              requirements; the SFR behavior itself is unmodified.</consistency-rationale>
            <description>
              This SFR is functionally identical to what is defined in the GPOS PP except that
              ECC key generation with support for P-384 has been made mandatory
              in support of IPsec due to the mandated support for Diffie-Hellman (DH) group 20 in
              FCS_IPSEC_EXT.1.8.
              <h:p/>
              The text of the requirement is replaced with:
              <h:br/>
              <h:br/>
              The TSF shall generate
              <h:b>asymmetric</h:b>
              cryptographic keys in accordance with a
              specified cryptographic key generation algorithm
              <h:b>
                <h:ul>
                  <h:i>
                    <h:li>
                      ECC schemes using [<h:i>“NIST curves” P-384 and [selection: P-521, no other curves]</h:i>]
                  that meet the following: FIPS PUB 186-5, “Digital Signature
                  Standard (DSS),” Appendix A.2
                    </h:li>
                  </h:i>
                  and
                </h:ul>
              </h:b>
              [<h:b>selection: </h:b>
              <h:i>
                <h:ul>
                  <h:li>CNSA 2.0 Compliant Algorithms: [<h:b>selection:</h:b> <h:ul><h:li>Leighton-Micali Signature Algorithm using the parameter sets [<h:b>selection: </h:b>LMS_SHAKE_M24_H5, LMS_SHAKE_M24_H10, LMS_SHAKE_M24_H15, LMS_SHAKE_M24_H25, LMS_SHAKE_M32_H5, LMS_SHAKE_M32_H10, LMS_SHAKE_M32_H15, LMS_SHAKE_M32_H25, LMS_SHA256_M24_H5, LMS_SHA256_M24_H10, LMS_SHA256_M24_H15, LMS_SHA256_M24_H25, LMS_SHA256_M32_H5, LMS_SHA256_M32_H10, LMS_SHA256_M32_H15, LMS_SHA256_M32_H25] that meet the following [NIST SP 800-208, "Recommendation for Stateful Hash-Based Signature Schemes"]</h:li> <h:li>eXtended Merkle Signature Scheme Algorithm using the parameter sets [<h:b>selection: </h:b> <h:i>XMSS-SHA2_10_192, XMSS-SHA2_16_192, XMSS-SHA2_20_192, XMSS-SHA2_10_256, XMSS-SHA2_16_256, XMSS-SHA2_20_256, XMSS-SHAKE_10_192, XMSS-SHAKE_16_192, XMSS-SHAKE_20_192, XMSS-SHAKE_10_256, XMSS-SHAKE_16_256, XMSS-SHAKE_20_256</h:i>] that meets the following: [NIST SP 800-208, "Recommendation for Stateful Hash-Based Signature Schemes"]</h:li> <h:li>Module-Lattice-Based Key-Encapsulation Mechanism Standard using the parameter set ML-KEM-1024 that meets the following: [FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard]</h:li> <h:li>Module-Lattice-Based Digital Signature Standard using the parameter set ML-DSA-87 that meets the following [FIPS 204, Module-Lattice-Based Digital Signature Standard]</h:li></h:ul></h:li>
                  <h:li>CNSA 1.0 Compliant Algorithms: [<h:b>selection:</h:b> <h:ul><h:li>RSA schemes using cryptographic key sizes of [<h:b>assignment: </h:b> <h:i>3072-bit or greater</h:i>] that
                  meet the following: FIPS PUB 186-5, "Digital Signature Standard (DSS)", Appendix A.1
                </h:li> <h:li>FFC schemes using "safe-prime" groups [<h:b>selection: </h:b>MODP-3072, MODP-4096, MODP-6144, MODP-8192, ffdhe-3072, ffdhe-4096, ffdhe-6144, ffdhe-8192] that meet the following: 'NIST Special Publication 800-56A Revision 3, "Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography"', and [<h:b>selection:</h:b> RFC 3526, RFC 7919]</h:li></h:ul></h:li>
                  <h:li>
                    <h:b>No other key generation methods</h:b>
                  </h:li>
                </h:ul>
              </h:i>].
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-asym-gen']">
                <f-element id="fel-asym-gen">
                  <title>The TSF shall generate <h:b>asymmetric</h:b> cryptographic keys in accordance with a specified cryptographic key generation algorithm<h:b><h:ul><h:li>ECC schemes using [<h:i>“NIST curves” P-384 and  <selectables><selectable id="FCS_CKM.1_1">P-521</selectable><selectable id="FCS_CKM.1_2">no other curves</selectable></selectables></h:i>] that meet the following: FIPS PUB 186-5, "Digital Signature Standard (DSS)", Appendix A.2</h:li></h:ul></h:b> and <selectables linebreak="yes"><selectable id="FCS_CKM.1_3">CNSA 2.0 Compliant Algorithms: <selectables linebreak="yes"><selectable id="fcs_ckm.1.1_AK_4">Leighton-Micali Signature Algorithm using the parameter sets <selectables><selectable id="fcs_ckm.1.1_AK_5">LMS_SHAKE_M24_H5</selectable><selectable id="fcs_ckm.1.1_AK_6">LMS_SHAKE_M24_H10</selectable><selectable id="fcs_ckm.1.1_AK_7">LMS_SHAKE_M24_H15</selectable><selectable id="fcs_ckm.1.1_AK_8">LMS_SHAKE_M24_H25</selectable><selectable id="fcs_ckm.1.1_AK_9">LMS_SHAKE_M32_H5</selectable><selectable id="fcs_ckm.1.1_AK_10">LMS_SHAKE_M32_H10</selectable><selectable id="fcs_ckm.1.1_AK_11">LMS_SHAKE_M32_H15</selectable><selectable id="fcs_ckm.1.1_AK_12">LMS_SHAKE_M32_H25</selectable><selectable id="fcs_ckm.1.1_AK_13">LMS_SHA256_M24_H5</selectable><selectable id="fcs_ckm.1.1_AK_14">LMS_SHA256_M24_H10</selectable><selectable id="fcs_ckm.1.1_AK_15">LMS_SHA256_M24_H15</selectable><selectable id="fcs_ckm.1.1_AK_16">LMS_SHA256_M24_H25</selectable><selectable id="fcs_ckm.1.1_AK_17">LMS_SHA256_M32_H5</selectable><selectable id="fcs_ckm.1.1_AK_18">LMS_SHA256_M32_H10</selectable><selectable id="fcs_ckm.1.1_AK_19">LMS_SHA256_M32_H15</selectable><selectable id="fcs_ckm.1.1_AK_20">LMS_SHA256_M32_H25</selectable></selectables> that meet the following [NIST SP 800-208, "Recommendation for Stateful Hash-Based Signature Schemes"]</selectable><selectable id="fcs_ckm.1.1_AK_21"><h:b>eXtended Merkle Signature Scheme Algorithm</h:b> using the parameter sets <selectables><selectable id="fcs_ckm.1.1_AK_22">XMSS-SHA2_10_192</selectable><selectable id="fcs_ckm.1.1_AK_23">XMSS-SHA2_16_192</selectable><selectable id="fcs_ckm.1.1_AK_24">XMSS-SHA2_20_192</selectable><selectable id="fcs_ckm.1.1_AK_25">XMSS-SHA2_10_256</selectable><selectable id="fcs_ckm.1.1_AK_26">XMSS-SHA2_16_256</selectable><selectable id="fcs_ckm.1.1_AK_27">XMSS-SHA2_20_256</selectable><selectable id="fcs_ckm.1.1_AK_28">XMSS-SHAKE_10_192</selectable><selectable id="fcs_ckm.1.1_AK_29">XMSS-SHAKE_16_192</selectable><selectable id="fcs_ckm.1.1_AK_30">XMSS-SHAKE_20_192</selectable><selectable id="fcs_ckm.1.1_AK_31">XMSS-SHAKE_10_256</selectable><selectable id="fcs_ckm.1.1_AK_32">XMSS-SHAKE_16_256</selectable><selectable id="fcs_ckm.1.1_AK_33">XMSS-SHAKE_20_256</selectable></selectables> that meets the following: [NIST SP 800-208, "Recommendation for Stateful Hash-Based Signature Schemes"]</selectable><selectable id="fcs_ckm.1.1_AK_34"><h:b>Module-Lattice-Based Key-Encapsulation Mechanism Standard</h:b> using the parameter set ML-KEM-1024 that meets the following: [FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard]</selectable><selectable id="fcs_ckm.1.1_AK_35"><h:b>Module-Lattice-Based Digital Signature Standard</h:b> using the parameter set ML-DSA-87 that meets the following [FIPS 204, Module-Lattice-Based Digital Signature Standard]</selectable></selectables> </selectable><selectable id="FCS_CKM.1_4">CNSA 1.0 Compliant Algorithms: <selectables linebreak="yes"><selectable id="FCS_CKM.1_5">RSA schemes using a cryptographic key size of <assignable>3072 bits or greater</assignable> that meet the following: FIPS PUB 186-5, "Digital Signature Standard (DSS)", Appendix A.1</selectable><selectable id="FCS_CKM.1_7">FFC Schemes using [<h:i>“safe-prime” groups</h:i>] <selectables><selectable id="fcs_ckm.1.1_AK_42">MODP-3072</selectable><selectable id="fcs_ckm.1.1_AK_43">MODP-4096</selectable><selectable id="fcs_ckm.1.1_AK_44">MODP-6144</selectable><selectable id="fcs_ckm.1.1_AK_45">MODP-8192</selectable><selectable id="fcs_ckm.1.1_AK_46">ffdhe-3072</selectable><selectable id="fcs_ckm.1.1_AK_47">ffdhe-4096</selectable><selectable id="fcs_ckm.1.1_AK_48">ffdhe-6144</selectable><selectable id="fcs_ckm.1.1_AK_49">ffdhe-8192</selectable></selectables> that meet the following: [<h:i>NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and <selectables><selectable id="fcs_ckm.1.1_AK_50">RFC 3526</selectable><selectable id="fcs_ckm.1.1_AK_51">RFC 7919</selectable></selectables></h:i>]</selectable></selectables> </selectable><selectable id="FCS_CKM.1_8"><h:b>no other key generation methods</h:b></selectable></selectables>.</title>
                  <note role="application">
                    <h:p>The ST author will 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 and selected cryptographic protocols must match the selection.
		  When key generation is used for entity authentication, the public key is
          expected to be associated with an X.509v3 certificate.</h:p>
                    <h:p>If the OS acts only as a receiver in the RSA key establishment scheme,
	      the OS does not need to implement RSA key generation.</h:p>
                    <h:p>“P-256” may only be selected if the PP-Module for Bluetooth is included
                in the ST and may only be used specifically for Bluetooth functions.</h:p>
                  </note>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
          <!-- FCS_CKM.2 Cryptographic Key Establishment -->
          <base-sfr-spec cc-id="fcs_ckm.2" id="modsfr-os-fcs-ckm-2" title="Cryptographic Key Establishment">
            <consistency-rationale>The ST author is instructed to make specific selections at minimum to
              address VPN client requirements; the SFR behavior itself is
              unmodified.</consistency-rationale>
            <description>
              This SFR is functionally identical to what is defined in the GPOS PP except that  
              ECC key generation with support for P-384 has been made 
              mandatory in support of IPsec due to the mandated support for DH group 20 
              in FCS_IPSEC_EXT.1.8.
              <h:p/>
              The text of the requirement is replaced with:
              <h:br/>
              <h:br/>
              The TSF shall
              <h:b>implement functionality to perform cryptographic key establishment</h:b>
              in
              accordance with a specified cryptographic key
              <h:b>establishment</h:b>
              method:
              <h:b>
                <h:ul>
                  <h:i>
                    <h:li>Elliptic curve-based key establishment schemes that meet the following: NIST Special
                  Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes
                  Using Discrete Logarithm Cryptography,” and</h:li>
                  </h:i>
                </h:ul>
              </h:b>
              <h:b>[selection: </h:b>
              <h:i>
                <h:ul>
                  <h:li>CNSA 2.0 Compliant Algorithm: <h:ul><h:li>Module-Lattice-Based Key-Encapsulation Mechanism Standard using the parameter set ML-KEM-1024 that meets the following: [FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard]</h:li></h:ul></h:li>
                  <h:li>CNSA 1.0 Compliant Algorithm: <h:ul><h:li>Finite field-based key establishment schemes using "safe-prime" groups that meets NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography”</h:li></h:ul></h:li>
                  <h:li>
                    <h:b>No other key establishment methods</h:b>
                  </h:li>
                </h:ul>
              </h:i>
              <h:b>]</h:b>.
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-crypt-key-estab']">
                <f-element id="fel-crypt-key-estab">
                  <title>The TSF shall implement functionality to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method: <h:ul><h:li><h:b><h:i>Elliptic curve-based key establishment schemes that meet the following: NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography,” and</h:i></h:b></h:li></h:ul><selectables linebreak="yes"><selectable id="FCS_CKM.2_1">CNSA 2.0 Compliant Algorithm: <h:ul><h:li>Module-Lattice-Based Key-Encapsulation Mechanism Standard using the parameter set ML-KEM-1024 that meets the following: [FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard]</h:li></h:ul></selectable><selectable id="FCS_CKM.2_2">CNSA 1.0 Compliant Algorithm: <h:ul><h:li> Finite field-based key establishment schemes using "safe-prime" groups that meets NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” </h:li></h:ul></selectable><selectable id="FCS_CKM.2_3" exclusive="yes"><h:b>No other key establishment schemes</h:b></selectable></selectables>.</title>
                  <note role="application">
                    <h:p>The ST author will select all key establishment schemes used
              for the selected cryptographic protocols.</h:p>
                    <h:p>The elliptic curves used for the key establishment scheme shall correlate with the curves specified in FCS_CKM.1.1.
			  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.</h:p>
                  </note>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
          <!-- FCS_COP.1/ENCRYPT Cryptographic Operation - Encryption/Decryption -->
          <base-sfr-spec cc-id="fcs_cop.1" id="modsfr-os-fcs-cop-1-encrypt" title="Cryptographic Operation - Encryption/Decryption" iteration="ENCRYPT">
            <consistency-rationale>The SFR is refined to mandate AES modes that must be supported to address VPN 
              client requirements; the use of these modes for VPN connectivity does not impact the ability 
              of the TSF to satisfy any of its other security requirements.</consistency-rationale>
            <description>
              This SFR is identical to what is defined in the GPOS PP except that support for
              GCM mode is mandatory in order to address the requirements for FCS_IPSEC_EXT.1.
              <h:p/>
              The text of the requirement is replaced with:
              <h:br/>
              <h:br/>
              The TSF shall perform [<h:i>encryption/decryption services for data</h:i>] in accordance with a 
              specified cryptographic algorithm
              <h:b><h:ul><h:li><h:b>AES-CBC (as defined in NIST SP 800-38A),</h:b></h:li> <h:li><h:b>AES-GCM (as defined in NIST SP 800-38D),</h:b></h:li></h:ul> and [selection:</h:b>
              <h:i>
                <h:ul>
                  <h:li>
                    <h:b>AES-XTS (as defined in NIST SP 800-38E)</h:b>
                  </h:li>
                  <h:li>
                    <h:b>AES-CTR (as defined in NIST SP 800-38A)</h:b>
                  </h:li>
                  <h:li>AES Key Wrap (KW) (as defined in NIST SP 800-38F)</h:li>
                  <h:li>AES Key Wrap with Padding (KWP) (as defined in NIST SP 800-38F)</h:li>
                  <h:li>AES-CCMP-256 (as defined in NIST SP 800-38C and IEEE 802.11ac-2013)</h:li>
                  <h:li>AES-GCMP-256 (as defined in NIST SP 800-38D and IEEE 802.11ac-2013)</h:li>
                  <h:li>AES-CCM (as defined in NIST SP 800-38D)</h:li>
                  <h:li>no other modes</h:li>
                </h:ul>
              </h:i>
              <h:b>]</h:b>
              and cryptographic key sizes 256-bit and [<h:b>selection:</h:b>
              <h:i>128-bit, no other bit size</h:i>].
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-encrypt-how']">
                <f-element id="fel-encrypt-how">
                  <title>The TSF shall perform [ <h:i>encryption/decryption services for data</h:i> ] in accordance with a specified cryptographic algorithm <h:b><h:ul><h:b><h:li>AES-CBC (as defined in NIST SP 800-38A),</h:li> <h:li>AES-GCM (as defined in NIST SP 800-38D),</h:li></h:b></h:ul></h:b> and <selectables linebreak="yes"><selectable id="s-aes-ctr"><h:b>AES-XTS (as defined in NIST SP 800-38E)</h:b></selectable><selectable id="s-aes-ctr"><h:b>AES-CTR (as defined in NIST SP 800-38A)</h:b></selectable><selectable id="s-aes-kw">AES Key Wrap (KW) (as defined in NIST SP 800-38F)</selectable><selectable id="s-aes-kwp">AES Key Wrap with Padding (KWP) (as defined in NIST SP 800-38F)</selectable><selectable id="s-aes-ccmp">AES-CCMP-256 (as defined in NIST SP 800-38C and IEEE 802.11ac-2013)</selectable><selectable id="s-aes-gcmp">AES-GCMP-256 (as defined in NIST SP 800-38D and IEEE 802.11ac-2013)</selectable><selectable id="s-aes-ccm">AES-CCM (as defined in NIST SP 800-38C)</selectable><selectable id="FCS_COP.1/ENCRYPT_1" exclusive="yes">no other modes</selectable></selectables> and cryptographic key sizes 256-bit and <selectables><selectable id="s-128">128-bit</selectable><selectable id="FCS_COP.1/ENCRYPT_2">no other bit size</selectable></selectables>.</title>
                  <note role="application">
                    <h:p>
                      AES CCMP (which uses AES in CCM as specified in SP 800-38C) becomes mandatory and must
              be selected if the ST includes the PP-Module for Wireless LAN Clients.
                      <h:p>AES-CCM becomes mandatory and must be selected if the ST includes the PP-Module for Bluetooth.</h:p>
                    </h:p>
                    <h:p>For the second selection, the ST author should choose the mode
		or modes in which AES operates.</h:p>
                    <h:p>For the third selection, the ST author may only choose 128-bit if the ST
		      includes the PP-Module for Bluetooth, and it may only be used specifically
		      with AES-CCM for Bluetooth functions.</h:p>
                  </note>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
        </section>
      </modified-sfrs>
      <!-- 5.1.2 Additional SFRs -->
      <additional-sfrs>
        <section id="gpos-audit-table" title="Auditable Events for GPOS PP Additional SFRs">
          <audit-table id="gpos-additional" table="tab-gpos-additional" title="Auditable Events for GPOS PP Additional SFRs"/>
        </section>
        <section title="Class FCS: Cryptographic Support" id="os-a-fcs">
          <ext-comp-def title="Cryptographic Key Management" fam-id="FCS_CKM_EXT">
            <fam-behavior>Components in this family describe requirements for key management functionality such as key
		storage and destruction.</fam-behavior>
          </ext-comp-def>
          <!-- FCS_CKM_EXT.2 Cryptographic Key Storage -->
          <f-component cc-id="fcs_ckm_ext.2" id="os-fcs-ckm-ext-2" name="Cryptographic Key Storage">
            <consistency-rationale>Storage of key data related to VPN functionality can be accomplished
              using the same mechanism defined by FCS_STO_EXT.1 in the GPOS PP.</consistency-rationale>
            <comp-lev>requires the TSF to securely store key data when not in use.</comp-lev>
            <management>No specific management functions are identified.</management>
            <audit>There are no auditable events foreseen.</audit>
            <dependencies>No dependencies.</dependencies>
            <f-element id="os-fcs-ckm-ext-2e1">
              <title>
                The
                <selectables>
                  <selectable id="fcs_ckm_ext.2.1_1">VPN client</selectable>
                  <selectable id="fcs_ckm_ext.2.1_2">OS</selectable>
                </selectables>
                shall store persistent secrets and private keys
                when not in use in OS-provided key storage.
              </title>
              <note role="application">This requirement ensures that persistent secrets (credentials, secret keys) and
                private keys are stored securely when not in use. If some secrets or keys are
                manipulated by the VPN client and others are manipulated by the OS, then both
                of the selections can be specified by the ST author.</note>
              <aactivity level="element">
                <TSS>
                  Regardless of whether this requirement is met by the VPN client or the OS, the evaluator shall check the
			TSS to ensure that it lists each persistent secret (credential, secret key) and private key needed to meet
			the requirements in the ST. For each of these items, the evaluator shall confirm that the TSS lists for what
			purpose it is used, and how it is stored.
                  <h:br/>
                  <h:br/>
                  The evaluator shall review the TSS to determine that it makes a case that, for each item listed as being
			manipulated, it is not written unencrypted to persistent memory, and that the item is
			stored by the OS.
                  <h:br/>
                  <h:br/>
                </TSS>
                <Guidance>There are no guidance EAs for this requirement.<h:br/><h:br/></Guidance>
                <Tests>There are no test EAs for this component.</Tests>
              </aactivity>
            </f-element>
            <audit-event table="tab-gpos-additional"/>
          </f-component>
        </section>
        <section title="Class FIA: Identification and Authentication" id="os-a-fia">
          <ext-comp-def title="X.509 Certificate Use and Management" fam-id="FIA_X509_EXT">
            <fam-behavior>Components in this family describe the requirements that pertain to IP traffic and information flow
              through the VPN client.</fam-behavior>
          </ext-comp-def>
          <!-- FIA_X509_EXT.4 X.509 Certificate Use and Management -->
          <f-component cc-id="fia_x509_ext.4" id="os-fia-x509-ext-4" name="X.509 Certificate Use and Management">
            <consistency-rationale>This SFR defines additional uses for X.509 certificate functionality that
              do not conflict with those defined in the GPOS PP.</consistency-rationale>
            <comp-lev>requires the TOE to perform X.509 certificate
              authentication and describes the behavior that is followed if the status of the certificate is unknown or
              invalid.</comp-lev>
            <management>No specific management functions are identified.</management>
            <audit>There are no auditable events foreseen.</audit>
            <dependencies>
              FIA_X509_EXT.1 X.509 Certificate Validation
              <h:br/>
              <h:br/>
              <no-link>FPT_TST_EXT.1</no-link>
              TSF Self-Test
              <h:br/>
              <h:br/>
              FPT_TUD_EXT.1 Trusted Update
            </dependencies>
            <f-element id="os-fia-x509-ext-4e1">
              <title>
                The TSF shall use X.509v3 certificates as defined by RFC 5280 to support
              authentication for IPsec exchanges, and
                <selectables>
                  <selectable id="fia_x509_ext.4.1_1">digital signatures for FPT_TUD_EXT.1</selectable>
                  <selectable id="fia_x509_ext.4.1_2">integrity checks for FPT_TST_EXT.1</selectable>
                  <selectable id="fia_x509_ext.4.1_3" exclusive="yes">no additional uses</selectable>
                </selectables>.
              </title>
              <aactivity level="element">
                <no-tests>
                  <no-link>FIA_X509_EXT.4.1</no-link>
                  is evaluated as part of
                  <no-link>FCS_IPSEC_EXT.1</no-link>
                  (and
                  conditionally as part of
                  <no-link>FPT_TUD_EXT.1</no-link>
                  or
                  <no-link>FPT_TST_EXT.1</no-link>).
                </no-tests>
              </aactivity>
            </f-element>
            <f-element id="os-fia-x509-ext-4e2">
              <title>
                When a connection to determine the validity of a certificate cannot be
                  established, the
                <selectables onlyone="yes">
                  <selectable id="fia_x509_ext.4.2_1">VPN client</selectable>
                  <selectable id="fia_x509_ext.4.2_2">OS</selectable>
                </selectables>
                shall
                <selectables onlyone="yes">
                  <selectable id="fia_x509_ext.4.2_3">allow the administrator to choose whether to accept the certificate in these cases</selectable>
                  <selectable id="fia_x509_ext.4.2_4">accept the certificate</selectable>
                  <selectable id="fia_x509_ext.4.2_5">not accept the certificate</selectable>
                </selectables>.
              </title>
              <note role="application">
                Oftentimes a connection must be established to perform a verification of the
                    revocation status of a certificate - either to download a certificate revocation list (CRL)
			or to use the online certificate status protocol (OCSP) to check revocation status.
                    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). The behavior of the
                    TOE in these cases is described by the second selection. If the TOE has
                    determined the certificate is valid according to all other rules in FIA_X509_EXT.1 in
                <xref to="X509"/>,
                    the behavior indicated in the second selection will determine the validity. The
                    TOE must not accept the certificate if it fails any of the other validation rules in
                    FIA_X509_EXT.1 in
                <xref to="X509"/>. If the administrator-configured option is selected by the ST
                    Author, the ST author must also make the appropriate selection in
                    FMT_SMF.1/VPN.
              </note>
              <aactivity level="element">
                <TSS>
                  The evaluator shall check the TSS to ensure that it describes whether the VPN client or the OS implements
                  the certificate validation functionality, how the VPN client/OS chooses which certificates to use, and any
                  necessary instructions in the administrative guidance for configuring the OS so that desired certificates
                  can be used.
                  <h:br/>
                  <h:br/>
                  The evaluator shall examine the TSS to confirm that it describes the behavior of the client/OS when a
                  connection cannot be established during the validity check of a certificate used in establishing a trusted
                  channel.
                  <h:br/>
                  <h:br/>
                </TSS>
                <Guidance>
                  If the requirement indicates 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.
                  <h:br/>
                  <h:br/>
                </Guidance>
                <Tests>
                  The evaluator shall perform the following test regardless of whether the certificate validation functionality is implemented by the VPN client or by the OS:
                  <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.4.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="os-fia-x509-ext-4e3">
              <title>
                The
                <selectables onlyone="yes">
                  <selectable id="fia_x509_ext.4.3_1">VPN client</selectable>
                  <selectable id="fia_x509_ext.4.3_2">OS</selectable>
                </selectables>
                shall not establish an SA if a certificate or
                certificate path is deemed invalid.
              </title>
              <aactivity level="element">
                <no-tests>FIA_X509_EXT.4.3 is evaluated as part of FCS_IPSEC_EXT.1.11.</no-tests>
              </aactivity>
            </f-element>
            <audit-event table="tab-gpos-additional"/>
          </f-component>
        </section>
        <section title="Class FTP: Trusted Path/Channels" id="os-a-ftp">
          <!-- FTP_ITC.1 Inter-TSF Trusted Channel -->
          <f-component cc-id="ftp_itc.1" id="os-ftp-itc-1" name="Inter-TSF Trusted Channel">
            <consistency-rationale>This SFR defines a trusted channel for IPsec, which is added
              functionality that does not prevent the existing OS functions from
              being performed.</consistency-rationale>
            <f-element id="os-ftp-itc-1e1">
              <title>
                The
                <h:b>
                  <selectables onlyone="yes">
                    <selectable id="ftp_itc.1.1_1">VPN client</selectable>
                    <selectable id="ftp_itc.1.1_2">OS</selectable>
                  </selectables>
                  shall use IPsec to
                </h:b>
                provide a
                <h:b>trusted</h:b>
                communication channel between itself and
                <h:b>
                  <selectables linebreak="yes">
                    <selectable id="ftp_itc.1.1_3">a remote VPN gateway</selectable>
                    <selectable id="ftp_itc.1.1_4">a remote VPN client</selectable>
                    <selectable id="ftp_itc.1.1_5">a remote IPsec-capable network device</selectable>
                  </selectables>
                </h:b>
                that is logically
                distinct from other communication channels and provides assured identification
                of its end points and protection of the channel data from
                <h:b>disclosure and
                detection of modification of the channel data</h:b>.
              </title>
              <aactivity level="component">
                <TSS>
                  The evaluator shall examine the TSS to determine that it describes the details of the TOE connecting to a
			VPN gateway, VPN client, or IPsec-capable network device in terms of the cryptographic
			protocols specified in the requirement, along with TOE-specific options or procedures that might not be
			reflected in the specification. The evaluator shall also confirm that all protocols listed in the TSS are
			specified and included in the requirements in the ST.
                  <h:br/>
                  <h:br/>
                </TSS>
                <Guidance>
                  The evaluator shall confirm that the operational guidance contains instructions for establishing the
			connection to a VPN gateway, VPN client, or IPsec-capable network device, and that it contains
			recovery instructions should a connection be unintentionally broken.
                  <h:br/>
                  <h:br/>
                </Guidance>
                <Tests>
                  The evaluator shall perform the following tests:
                  <testlist>
                    <test>The evaluator shall ensure that the TOE is able to initiate communications with a VPN gateway, VPN client, or IPsec-capable network device using the protocols 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 IPsec peer, the channel data is not sent in plaintext.</test>
                    <test>The evaluator shall ensure, for each communication channel with an IPsec peer, modification of the channel data is detected by the TOE.</test>
                    <test>The evaluator shall physically interrupt the connection from the TOE to the IPsec peer. The evaluator shall ensure that subsequent communications are appropriately protected, at a minimum in the case of any attempts to automatically resume the connection or connect to a new access point.</test>
                  </testlist>
                  Further EAs are associated with requirements for FCS_IPSEC_EXT.1.
                </Tests>
              </aactivity>
            </f-element>
            <f-element id="os-ftp-itc-1e2">
              <title>
                The
                <h:b>
                  <selectables onlyone="yes">
                    <selectable id="ftp_itc.1.2_1">VPN client</selectable>
                    <selectable id="ftp_itc.1.2_2">OS</selectable>
                  </selectables>
                </h:b>
                shall permit [<h:i>the TSF</h:i>] to initiate communication via the trusted channel.
              </title>
            </f-element>
            <f-element id="os-ftp-itc-1e3">
              <title>
                The
                <h:b>
                  <selectables onlyone="yes">
                    <selectable id="ftp_itc.1.3_1">VPN client</selectable>
                    <selectable id="ftp_itc.1.3_2">OS</selectable>
                  </selectables>
                </h:b>
                shall initiate communication via the trusted
                channel for [<h:i>all traffic traversing that connection</h:i>].
              </title>
              <note role="application">
                The intent of the above requirement is to demonstrate that IPsec can be used to
                establish remote communications in transport mode, tunnel mode, or both.
                <h:br/>
                <h:br/>
                The requirement implies that not only are communications protected when they
                are initially established, but also on resumption after an outage. It may be the
                case that some part of the TOE setup involves manually setting up tunnels to
                protect other communication, and if after an outage the TOE attempts to reestablish 
                the communication automatically with (the necessary) manual
                intervention, there may be a window created where an attacker might be able to
                gain critical information or compromise a connection.
              </note>
            </f-element>
            <audit-event table="tab-gpos-additional">
              <audit-event-descr>Initiation of the trusted channel.</audit-event-descr>
              <audit-event-info>Identification of the initiator and target.</audit-event-info>
            </audit-event>
            <audit-event table="tab-gpos-additional">
              <audit-event-descr>Termination of the trusted channel.</audit-event-descr>
              <audit-event-info>No additional information.</audit-event-info>
            </audit-event>
            <audit-event table="tab-gpos-additional">
              <audit-event-descr>Failure of the trusted channel functions.</audit-event-descr>
              <audit-event-info>Identification of the initiator and target, reason for failure.</audit-event-info>
            </audit-event>
          </f-component>
        </section>
      </additional-sfrs>
      <con-toe>If this PP-Module is used to extend the GPOS PP, the TOE type for the overall TOE is still a 
		general-purpose OS. The TOE boundary is simply extended to include VPN client functionality that
		is built into the OS so that additional security functionality is claimed within the scope of
		the TOE.</con-toe>
      <con-sec-prob>The threats and assumptions defined by this PP-Module (see sections 3.1 and 3.2) supplement those
		defined in the GPOS PP as follows:</con-sec-prob>
      <con-obj>The security objectives defined by this PP-Module (see sections 4.1 and 4.2) supplement those defined
		in the GPOS PP as follows:</con-obj>
      <con-op-en/>
      <con-mod ref="T.UNAUTHORIZED_ACCESS">The threat of an attacker gaining access to a network interface or data
        that is transmitted over it is consistent with the T.NETWORK_ATTACK and T.NETWORK_EAVESDROP threats in the GPOS PP.</con-mod>
      <con-mod ref="T.TSF_CONFIGURATION">The threat of a misconfigured VPN client is consistent with the
		T.NETWORK_ATTACK and T.NETWORK_EAVESDROP threats on the GPOS PP because misconfiguration could allow VPN traffic to be subjected
		unexpectedly to unauthorized modification or disclosure.</con-mod>
      <con-mod ref="T.USER_DATA_REUSE">Inadvertent disclosure of user data to an unauthorized recipient is
		consistent with the T.NETWORK_EAVESDROP threat in the GPOS PP.</con-mod>
      <con-mod ref="T.TSF_FAILURE">A failure of TSF functionality could compromise the local system, which is
		consistent with the T.LOCAL_ATTACK threat in the GPOS PP.</con-mod>
      <con-mod ref="A.NO_TOE_BYPASS">The A.NO_TOE_BYPASS assumption assumes that the OE is configured in such a manner that the only network route to the
	      protected network is through the TOE. This does not conflict with
		the GPOS PP because the GPOS PP makes no assumptions about the network architecture in which the TOE is deployed.</con-mod>
      <con-mod ref="A.PHYSICAL">The assumption that physical security is provided by the environment is
		not explicitly stated in the GPOS PP but is consistent with the A.PLATFORM assumption defined in the GPOS PP, which expects the computing
		platform to be trusted.</con-mod>
      <con-mod ref="A.TRUSTED_CONFIG">The assumption that personnel responsible for the TOE’s configuration are
		trusted to follow the guidance is consistent with the A.PROPER_ADMIN
		defined in the GPOS PP.</con-mod>
      <con-mod ref="OE.NO_TOE_BYPASS">This objective addresses behavior that is out of scope of the GPOS PP and
		does not define an environment that a GPOS TOE is incapable of existing in.</con-mod>
      <con-mod ref="OE.PHYSICAL">This is part of satisfying OE.PLATFORM as defined in the GPOS PP because
		physical security is required for hardware to be considered ‘trusted.’</con-mod>
      <con-mod ref="OE.TRUSTED_CONFIG">The expectation of trusted configuration is consistent with OE.PROPER_USER
		and OE.PROPER_ADMIN in the GPOS PP.</con-mod>
      <con-mod ref="os-fcs-ckm-1">The ST author is instructed to make specific selections at minimum to
		address VPN client requirements; the SFR behavior itself is unmodified.</con-mod>
      <con-mod ref="os-fcs-ckm-2">The ST author is instructed to make specific selections at minimum to
		address VPN client requirements; the SFR behavior itself is unmodified.</con-mod>
      <con-mod ref="os-fcs-cop-1-1">The SFR is refined to list an additional AES mode that must be supported to
		address VPN client requirements; the use of this mode for VPN connectivity
		does not impact the ability of the GPOS to satisfy any of its other security
		requirements.</con-mod>
      <con-mod ref="os-fcs-ckm-ext-2">Storage of key data related to VPN functionality can be accomplished using
		the same mechanism defined by FCS_STO_EXT.1 in the GPOS PP.</con-mod>
      <con-mod ref="os-fia-x509-ext-3">This SFR defines additional uses for X.509 certificate functionality that do
		not conflict with those defined in the GPOS PP.</con-mod>
      <con-mod ref="os-ftp-itc-1">This SFR defines a trusted channel for IPsec, which is added functionality
		that does not prevent the existing GPOS functions from being performed.</con-mod>
      <con-mod ref="fcs-ckm-1-vpn">Generation of IKE peer authentication keys is added functionality that does
		not prevent the existing GPOS functions from being performed.</con-mod>
      <con-mod ref="fcs-ipsec-ext-1">This SFR defines the VPN client’s IPsec implementation, which is added
		functionality that does not interfere with the GPOS functions.</con-mod>
      <con-mod ref="fdp-rip-2">The requirement to protect against reuse of residual data is a property of
		the VPN client behavior and does not impact the GPOS functionality.</con-mod>
      <con-mod ref="fmt-smf-1-vpn">The ability to configure the VPN client behavior does not affect whether the
		GPOS as a whole can perform its security functions.</con-mod>
      <con-mod ref="fpt-tst-ext-1-vpn">Self-testing of the VPN client functionality does not impact the ability of the
		GPOS to perform its security functions.</con-mod>
      <con-mod ref="fau-gen-1-vpn">Audit data generated by the VPN client does not interfere with GPOS
		functionality. The possibility of the underlying OS platform generating audit
		records is consistent with the GPOS PP, which already contains FAU_GEN.1.</con-mod>
      <con-mod ref="fau-sel-1-vpn">The ability to suppress the generation of certain audit data related to
		VPN activity does not interfere with the ability of the GPOS to satisfy its
		security functionality.</con-mod>
      <con-mod ref="fdp-vpn-ext-1">The ability of the VPN client to prevent split tunneling of IPsec traffic
		requires it to have hooks into lower-level OS behavior, but there are no
		requirements in the GPOS PP that would prevent this functionality from
		being supported.</con-mod>
      <con-mod ref="fia-bma-ext-1">This SFR relates to biometric authentication, which does not conflict with the GPOS PP because it may be a function offered by the 
        part of the TOE described by the GPOS PP.</con-mod>
      <con-mod ref="fpf-mfa-ext-1">This SFR relates specifically to the handling of traffic that is used for the
        establishment of IPsec connections.</con-mod>
      <con-mod ref="fcs-eap-ext-1">This SFR defines an additional cryptographic protocol that is beyond the scope of those defined in the GPOS PP but does not prevent any GPOS PP functionality
        from being implemented.</con-mod>
      <con-mod ref="fia-psk-ext-1">This SFR defines the use of pre-shared keys, which is behavior that only
		relates to the establishment of IPsec connections.</con-mod>
      <con-mod ref="fia-psk-ext-2">This SFR relates to use of pre-shared keys, which is behavior that only
        applies to the establishment of IPsec connections.</con-mod>
      <con-mod ref="fia-psk-ext-3">This SFR relates to use of pre-shared keys, which is behavior that only
        applies to the establishment of IPsec connections.</con-mod>
      <con-mod ref="fia-psk-ext-4">This SFR relates to use of pre-shared keys, which is behavior that only
        applies to the establishment of IPsec connections.</con-mod>
      <con-mod ref="fia-psk-ext-5">This SFR relates to use of pre-shared keys, which is behavior that only
        applies to the establishment of IPsec connections.</con-mod>
    </base-pp>
    <!-- 5.2 MDF PP Security Functional Requirements Direction -->
    <base-pp id="bpp-mdf" name="Protection Profile for Mobile Device Fundamentals" product="Mobile Device" short="MDF" version="4.0">
      <git>
        <url>https://github.com/commoncriteria/mobile-device</url>
        <branch>release-4.0</branch>
      </git>
      <url>https://github.com/commoncriteria/mobile-device</url>
      <sec-func-req-dir>In a PP-Configuration that includes the MDF PP, the VPN client is expected to rely on some of the
      security functions implemented by the OS as a whole and evaluated against the Base-PP.
      In this case, the following sections describe any modifications that the ST author must make to the SFRs
      defined in the Base-PP in addition to what is mandated by section 5.5.</sec-func-req-dir>
      <!-- 5.2.1 Modified SFRs -->
      <modified-sfrs>
        <section title="Class FCS: Cryptographic Support" id="md-m-fcs">
          <!-- FCS_CKM.1 Cryptographic Key Generation -->
          <base-sfr-spec cc-id="fcs_ckm.1" id="mdf-fcs-ckm-1" title="Cryptographic Key Generation">
            <consistency-rationale>The ST author is instructed to make specific selections at minimum to address VPN client requirements; the SFR behavior itself is unmodified.</consistency-rationale>
            <description>
              <h:p>This SFR is functionally identical to what is defined in the MDF PP except that elliptic curve cryptography (ECC) key generation with support for P-384 has been made mandatory in support of IPsec due to the mandated support for DH group 20 in FCS_IPSEC_EXT.1.8. Curve25519 schemes remain selectable for their potential use in satisfying FDP_DAR_EXT.2.2 in the MDF PP; these schemes are not used in support of IPsec. RSA support remains present as a selection since it may be used by parts of the TOE that are not specifically related to VPN client functionality.</h:p>
              The text of the requirement is replaced with:
              <h:br/>
              <h:br/>
              The TSF shall generate
              <h:b>asymmetric</h:b>
              cryptographic keys in accordance with a
                    specified cryptographic key generation algorithm
              <h:b>
                <h:ul>
                  <h:i>
                    <h:li>
                      ECC schemes using [<h:i>“NIST curves” P-384 and [selection: P-521, no other curves]</h:i>]
                        that meet the following: FIPS PUB 186-5, “Digital Signature
                        Standard (DSS),” Appendix A.2
                    </h:li>
                  </h:i>
                </h:ul>
              </h:b>
              and [<h:b>selection: </h:b>
              <h:i>
                <h:ul>
                  <h:li>CNSA 2.0 Compliant Algorithms: [<h:b>selection:</h:b> <h:ul><h:li>Leighton-Micali Signature Algorithm using the parameter sets [<h:b>selection: </h:b>LMS_SHAKE_M24_H5, LMS_SHAKE_M24_H10, LMS_SHAKE_M24_H15, LMS_SHAKE_M24_H25, LMS_SHAKE_M32_H5, LMS_SHAKE_M32_H10, LMS_SHAKE_M32_H15, LMS_SHAKE_M32_H25, LMS_SHA256_M24_H5, LMS_SHA256_M24_H10, LMS_SHA256_M24_H15, LMS_SHA256_M24_H25, LMS_SHA256_M32_H5, LMS_SHA256_M32_H10, LMS_SHA256_M32_H15, LMS_SHA256_M32_H25] that meet the following [NIST SP 800-208, "Recommendation for Stateful Hash-Based Signature Schemes"]</h:li> <h:li>eXtended Merkle Signature Scheme Algorithm using the parameter sets [<h:b>selection: </h:b> <h:i>XMSS-SHA2_10_192, XMSS-SHA2_16_192, XMSS-SHA2_20_192, XMSS-SHA2_10_256, XMSS-SHA2_16_256, XMSS-SHA2_20_256, XMSS-SHAKE_10_192, XMSS-SHAKE_16_192, XMSS-SHAKE_20_192, XMSS-SHAKE_10_256, XMSS-SHAKE_16_256, XMSS-SHAKE_20_256</h:i>] that meets the following: [NIST SP 800-208, "Recommendation for Stateful Hash-Based Signature Schemes"]</h:li> <h:li>Module-Lattice-Based Key-Encapsulation Mechanism Standard using the parameter set ML-KEM-1024 that meets the following: [FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard]</h:li> <h:li>Module-Lattice-Based Digital Signature Standard using the parameter set ML-DSA-87 that meets the following [FIPS 204, Module-Lattice-Based Digital Signature Standard]</h:li></h:ul></h:li>
                  <h:li>CNSA 1.0 Compliant Algorithms: [<h:b>selection:</h:b> <h:ul><h:li>RSA schemes using cryptographic key sizes of [<h:b>assignment: </h:b> <h:i>3072 bits or greater</h:i>] that
                            meet the following: FIPS PUB 186-5, "Digital Signature Standard (DSS)", Appendix A.1
                          </h:li> <h:li>FFC schemes using "safe-prime" groups [<h:b>selection: </h:b>MODP-3072, MODP-4096, MODP-6144, MODP-8192, ffdhe-3072, ffdhe-4096, ffdhe-6144, ffdhe-8192] that meet the following: 'NIST Special Publication 800-56A Revision 3, "Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography"', and [<h:b>selection:</h:b> RFC 3526, RFC 7919]</h:li></h:ul></h:li>
                  <h:li>Non-CNSA Algorithms: <h:ul><h:li>ECC schemes using Curve25519 schemes that meet the following: [RFC 7748]</h:li></h:ul></h:li>
                  <h:li>
                    <h:b>No other key generation methods</h:b>
                  </h:li>
                </h:ul>
              </h:i>].
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-asym-key-gen']">
                <f-element id="fel-asym-key-gen">
                  <title>The TSF shall generate <h:b>asymmetric</h:b> cryptographic keys in accordance with a specified cryptographic key generation algorithm<h:ul><h:li>ECC schemes using "NIST curve" P-384 and  <selectables><selectable id="FCS_CKM.1_1">P-521</selectable><selectable id="FCS_CKM.1_2">no other curves</selectable></selectables> that meets the following: FIPS PUB 186-5, "Digital Signature Standard (DSS)", Appendix A.2</h:li></h:ul> and <selectables linebreak="yes"><selectable id="FCS_CKM.1_3">CNSA 2.0 Compliant Algorithms: <selectables linebreak="yes"><selectable id="fcs_ckm.1.1_AK_4">Leighton-Micali Signature Algorithm using the parameter sets <selectables><selectable id="fcs_ckm.1.1_AK_5">LMS_SHAKE_M24_H5</selectable><selectable id="fcs_ckm.1.1_AK_6">LMS_SHAKE_M24_H10</selectable><selectable id="fcs_ckm.1.1_AK_7">LMS_SHAKE_M24_H15</selectable><selectable id="fcs_ckm.1.1_AK_8">LMS_SHAKE_M24_H25</selectable><selectable id="fcs_ckm.1.1_AK_9">LMS_SHAKE_M32_H5</selectable><selectable id="fcs_ckm.1.1_AK_10">LMS_SHAKE_M32_H10</selectable><selectable id="fcs_ckm.1.1_AK_11">LMS_SHAKE_M32_H15</selectable><selectable id="fcs_ckm.1.1_AK_12">LMS_SHAKE_M32_H25</selectable><selectable id="fcs_ckm.1.1_AK_13">LMS_SHA256_M24_H5</selectable><selectable id="fcs_ckm.1.1_AK_14">LMS_SHA256_M24_H10</selectable><selectable id="fcs_ckm.1.1_AK_15">LMS_SHA256_M24_H15</selectable><selectable id="fcs_ckm.1.1_AK_16">LMS_SHA256_M24_H25</selectable><selectable id="fcs_ckm.1.1_AK_17">LMS_SHA256_M32_H5</selectable><selectable id="fcs_ckm.1.1_AK_18">LMS_SHA256_M32_H10</selectable><selectable id="fcs_ckm.1.1_AK_19">LMS_SHA256_M32_H15</selectable><selectable id="fcs_ckm.1.1_AK_20">LMS_SHA256_M32_H25</selectable></selectables> that meet the following [NIST SP 800-208, "Recommendation for Stateful Hash-Based Signature Schemes"]</selectable><selectable id="fcs_ckm.1.1_AK_21"><h:b>eXtended Merkle Signature Scheme Algorithm</h:b> using the parameter sets <selectables><selectable id="fcs_ckm.1.1_AK_22">XMSS-SHA2_10_192</selectable><selectable id="fcs_ckm.1.1_AK_23">XMSS-SHA2_16_192</selectable><selectable id="fcs_ckm.1.1_AK_24">XMSS-SHA2_20_192</selectable><selectable id="fcs_ckm.1.1_AK_25">XMSS-SHA2_10_256</selectable><selectable id="fcs_ckm.1.1_AK_26">XMSS-SHA2_16_256</selectable><selectable id="fcs_ckm.1.1_AK_27">XMSS-SHA2_20_256</selectable><selectable id="fcs_ckm.1.1_AK_28">XMSS-SHAKE_10_192</selectable><selectable id="fcs_ckm.1.1_AK_29">XMSS-SHAKE_16_192</selectable><selectable id="fcs_ckm.1.1_AK_30">XMSS-SHAKE_20_192</selectable><selectable id="fcs_ckm.1.1_AK_31">XMSS-SHAKE_10_256</selectable><selectable id="fcs_ckm.1.1_AK_32">XMSS-SHAKE_16_256</selectable><selectable id="fcs_ckm.1.1_AK_33">XMSS-SHAKE_20_256</selectable></selectables> that meets the following: [NIST SP 800-208, "Recommendation for Stateful Hash-Based Signature Schemes"]</selectable><selectable id="fcs_ckm.1.1_AK_34"><h:b>Module-Lattice-Based Key-Encapsulation Mechanism Standard</h:b> using the parameter set ML-KEM-1024 that meets the following: [FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard]</selectable><selectable id="fcs_ckm.1.1_AK_35"><h:b>Module-Lattice-Based Digital Signature Standard</h:b> using the parameter set ML-DSA-87 that meets the following [FIPS 204, Module-Lattice-Based Digital Signature Standard]</selectable></selectables> </selectable><selectable id="FCS_CKM.1_4">CNSA 1.0 Compliant Algorithms: <selectables linebreak="yes"><selectable id="FCS_CKM.1_5">RSA schemes using a cryptographic key size of <assignable>3072 bits or greater</assignable> that meet the following: FIPS PUB 186-5, "Digital Signature Standard (DSS)", Appendix A.1</selectable><selectable id="FCS_CKM.1_7">FFC Schemes using [<h:i>“safe-prime” groups</h:i>] <selectables><selectable id="fcs_ckm.1.1_AK_42">MODP-3072</selectable><selectable id="fcs_ckm.1.1_AK_43">MODP-4096</selectable><selectable id="fcs_ckm.1.1_AK_44">MODP-6144</selectable><selectable id="fcs_ckm.1.1_AK_45">MODP-8192</selectable><selectable id="fcs_ckm.1.1_AK_46">ffdhe-3072</selectable><selectable id="fcs_ckm.1.1_AK_47">ffdhe-4096</selectable><selectable id="fcs_ckm.1.1_AK_48">ffdhe-6144</selectable><selectable id="fcs_ckm.1.1_AK_49">ffdhe-8192</selectable></selectables> that meet the following: [<h:i>NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and <selectables><selectable id="fcs_ckm.1.1_AK_50">RFC 3526</selectable><selectable id="fcs_ckm.1.1_AK_51">RFC 7919</selectable></selectables></h:i>]</selectable></selectables> </selectable><selectable id="FCS_CKM.1_8">Non-CNSA Algorithms: <h:ul><h:li>ECC schemes using Curve25519 schemes that meet the following: [RFC 7748]</h:li></h:ul></selectable><selectable id="FCS_CKM.1_9"><h:b>no other key generation methods</h:b></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.
                    <h:br/>
                    <h:br/>
                    If the
              TOE acts as a receiver in the RSA key establishment scheme, the TOE does not need to
              implement RSA key generation.
                    <h:br/>
                    <h:br/>
                    Curve25519 can only be used for ECDH
              and in conjunction with FDP_DAR_EXT.2.2.
                  </note>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
          <!-- FCS_CKM.2/UNLOCKED Cryptographic Key Establishment (When Unlocked) -->
          <base-sfr-spec cc-id="fcs_ckm.2" id="mdf-fcs-ckm-2-unlocked" title="Cryptographic Key Establishment (When Unlocked)" iteration="UNLOCKED">
            <consistency-rationale>The ST author is instructed to make specific selections at minimum to address VPN client requirements; the SFR behavior itself is unmodified.</consistency-rationale>
            <description>
              <h:p>This SFR differs from its definition in the MDF PP by moving elliptic curve-based key establishment schemes from selectable to mandatory, due to the mandated support for DH group 20 in FCS_IPSEC_EXT.1.8. This PP-Module does not require the use of RSA for any function but it is present in the selection in case other MDF PP functions require its use.</h:p>
              The text of the requirement is replaced with:
              <h:br/>
              <h:br/>
              The TSF shall perform
              <h:b>cryptographic key establishment</h:b>
              in accordance with a specified cryptographic key establishment method:
              <h:ul>
                <h:li>
                  <h:b>[Elliptic curve-based key establishment schemes] that meet the following: [NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography”]</h:b>
                </h:li>
              </h:ul>
              <h:b>[selection: </h:b>
              <h:i>
                <h:ul>
                  <h:li>CNSA 2.0 Compliant Algorithm: <h:ul><h:li>Module-Lattice-Based Key-Encapsulation Mechanism Standard using the parameter set ML-KEM-1024 that meets the following: [FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard]</h:li></h:ul></h:li>
                  <h:li>CNSA 1.0 Compliant Algorithm: <h:ul><h:li>Finite field-based key establishment schemes using "safe-prime" groups that meets NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography”</h:li></h:ul></h:li>
                  <h:li>
                    <h:b>No other key establishment methods</h:b>
                  </h:li>
                </h:ul>
              </h:i>
              <h:b>]</h:b>.
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-unlocked-key']">
                <f-element id="fel-unlocked-key">
                  <title>The TSF shall perform cryptographic <h:b>key establishment</h:b> in accordance with a specified cryptographic key <h:b>establishment</h:b> method <h:ul><h:li><h:b>[<h:i>Elliptic curve-based key establishment schemes</h:i>] that meet the following: [<h:i>NIST Special Publication 800-56A Revision 3, "Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography"</h:i>]</h:b></h:li></h:ul> <h:b>and</h:b><selectables linebreak="yes"><selectable id="FCS_CKM.2/UNLOCKED_1">CNSA 2.0 Compliant Algorithm: <h:ul><h:li>Module-Lattice-Based Key-Encapsulation Mechanism Standard using the parameter set ML-KEM-1024 that meets the following: [FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard]</h:li></h:ul></selectable><selectable id="FCS_CKM.2/UNLOCKED_2">CNSA 1.0 Compliant Algorithm: <h:ul><h:li> Finite field-based key establishment schemes using "safe-prime" groups that meets NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” </h:li></h:ul></selectable><selectable id="FCS_CKM.2/UNLOCKED_3" exclusive="yes"><h:b>No other key establishment schemes</h:b></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.
                    <h:br/>
                    <h: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.
                    <h:br/>
                    <h:br/>
                    The elliptic curves used for the key establishment scheme must correlate with the curves specified in FCS_CKM.1.1.
                    <h:br/>
                    <h: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>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
          <!-- FCS_COP.1/ENCRYPT Cryptographic Operation -->
          <base-sfr-spec cc-id="fcs_cop.1" id="mdf-fcs-cop-1-encrypt" title="Cryptographic Operation" iteration="ENCRYPT">
            <consistency-rationale>The ST author is instructed to make specific selections at minimum to address VPN client requirements; the SFR behavior itself is unmodified.</consistency-rationale>
            <description>
              <h:p>This SFR is identical to what is defined in the MDF PP except that support for GCM mode and support for 256-bit key sizes are both mandatory in order to address the requirements for FCS_IPSEC_EXT.1.</h:p>
              The text of the requirement is replaced with:
              <h:br/>
              <h:br/>
              The TSF shall perform [<h:i>encryption/decryption</h:i>] in accordance with a specified
              cryptographic algorithm: [<h:br/>
              <h:i>
                <h:ul>
                  <h:li>AES-CBC (as defined in FIPS PUB 197, and NIST SP 800-38A) mode</h:li>
                  <h:li>AES-CCMP-256 (as defined in NIST SP 800-38C and IEEE 802.11ac-2013), </h:li>
                  <h:li>
                    <h:b>AES-GCM (as defined in NIST SP 800-38D), and </h:b>
                  </h:li>
                  <h:li>
                    [<h:b>selection:</h:b>
                    <h:ul>
                      <h:li>AES Key Wrap (KW) (as defined in NIST SP 800-38F)</h:li>
                      <h:li>AES Key Wrap with Padding (KWP) (as defined in NIST SP 800-38F)</h:li>
                      <h:li>AES-CCM (as defined in NIST SP 800-38C)</h:li>
                      <h:li>AES-XTS (as defined in NIST SP 800-38E) mode</h:li>
                      <h:li>AES-GCMP-256 (as defined in NIST SP800-38D and IEEE 802.11ac-2013)</h:li>
                      <h:li>no other modes</h:li>
                    </h:ul>]
                  </h:li>
                </h:ul>]
              </h:i>
              and cryptographic key sizes [<h:i>256 bits</h:i>].
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-crypt-how']">
                <f-element id="fel-crypt-how">
                  <title>The TSF shall perform [ <h:i>encryption/decryption</h:i> ] in accordance with a specified cryptographic algorithm: [<h:i><h:br/><h:ul><h:li>AES-CBC (as defined in FIPS PUB 197, and NIST SP 800-38A) mode</h:li> <h:li>AES-CCMP-256 (as defined in NIST SP 800-38C and IEEE 802.11ac-2013), </h:li> <h:li><h:b>AES-GCM (as defined in NIST SP 800-38D), and </h:b></h:li> <h:li><selectables linebreak="yes"><selectable id="FCS_COP.1/ENCRYPT_1">AES Key Wrap (KW) (as defined in NIST SP 800-38F)</selectable><selectable id="FCS_COP.1/ENCRYPT_2">AES Key Wrap with Padding (KWP) (as defined in NIST SP 800-38F)</selectable><selectable id="FCS_COP.1/ENCRYPT_3">AES-CCM (as defined in NIST SP 800-38C)</selectable><selectable id="FCS_COP.1/ENCRYPT_4">AES-XTS (as defined in NIST SP 800-38E) mode</selectable><selectable id="FCS_COP.1/ENCRYPT_5">AES-GCMP-256 (as defined in NIST SP800-38D and IEEE 802.11ac-2013)</selectable><selectable id="FCS_COP.1/ENCRYPT_6" exclusive="yes">no other modes</selectable></selectables></h:li></h:ul></h:i> ] and cryptographic key sizes [ <h:i>256 bits</h: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"/>.
                    <h:br/>
                    <h: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>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
        </section>
        <section title="Class FDP: User Data Protection" id="md-m-fdp">
          <!-- FDP_IFC_EXT.1 Subset Information Flow Control -->
          <base-sfr-spec cc-id="fdp_ifc_ext.1" id="mdf-fdp-ifc-ext-1" title="Subset Information Flow Control">
            <consistency-rationale>The ST author is instructed to make specific selections at minimum to address VPN client requirements; the SFR behavior itself is unmodified.</consistency-rationale>
            <description>
              <h:p>This SFR is identical to its definition in the Base-PP except that the selection item that requires the TOE to implement its own VPN client is always selected when the TOE’s conformance claim includes this PP-Module.</h:p>
              The text of the requirement is replaced with:
              <h:br/>
              <h:br/>
              The TSF shall [<h:ul>
                <h:li>
                  <h:i>provide a VPN client which can protect all IP traffic using IPsec as defined in the PP-Module for VPN Client</h:i>
                </h:li>
              </h:ul>] with the exception of IP traffic needed to manage the VPN connection, and [<h:b>selection:</h:b>
              <h:i>[<h:b>assignment:</h:b> traffic needed for correct functioning of the TOE], no other traffic</h:i>] when the VPN is enabled.
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-vpn-service']">
                <f-element id="fel-vpn-service">
                  <title>The TSF shall [ <h:ul><h:li><h:i>provide a VPN client which can protect all IP traffic using IPsec as defined in the PP-Module for <h:b>VPN Client</h:b></h:i></h:li></h:ul> ] with the exception of IP traffic needed to manage the VPN connection, and <selectables><selectable id="FDP_IFC_EXT.1_2"><assignable>traffic needed for correct functioning of the TOE</assignable></selectable><selectable id="FDP_IFC_EXT.1_3">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.
                    <h:br/>
                    <h: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.
                    <h:br/>
                    <h: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"/>.
                    <h:br/>
                    <h:br/>
                    It is optional for
              the VPN client to be configured to be always-on per FMT_SMF_EXT.1 Function
                    <xref to="mf-alwaysOnVPN"/>. Always-on means the establishment of an IPsec trusted channel
              to allow any communication by the TSF.
                  </note>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
        </section>
        <section title="Class FMT: Security Management" id="md-m-fmt">
          <!-- FMT_SMF_EXT.1 Specification of Management Functions -->
          <base-sfr-spec cc-id="fmt_smf_ext.1" id="mdf-fmt-smf-ext-1" title="Specification of Management Functions">
            <consistency-rationale>This PP-Module modifies the management function regarding Always-on VPN protection.</consistency-rationale>
            <description>
              <h:p>This PP-Module requires that Always On VPN protection be enabled across the entire device and does not permit this to be applied at the level of an application or group of application processes.</h:p>
              This SFR is not reproduced in its entirety for size purposes. The only change to this SFR is the following
              change to management function 45:
              <h:table border="1" style="width:100%">
                <h:tr>
                  <h:td>
                    45. enable/disable the Always On VPN protection:
                    <h:ul>
                      <h:li>across device</h:li>
                      <h:li>[<h:i>no other method</h:i>]</h:li>
                    </h:ul>
                  </h:td>
                  <h:td>
                    <h:b>M</h:b>
                  </h:td>
                  <h:td>O</h:td>
                  <h:td>O</h:td>
                  <h:td>O</h:td>
                </h:tr>
              </h:table>
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-smf-ext']">
                <f-element id="fel-smf-ext">
                  <title>
                    The TSF shall be capable of performing the following management functions:
                    <h:b>
                      <ctr id="fmt_smf" ctr-type="Table">: Management Functions </ctr>
                    </h:b>
                    Status Markers: M - Mandatory O - Optional/ObjectiveStatus Markers:
                    <h:br/>
                    O - Indicates that this function is optional for this role
                    <h:br/>
                    M - Indicates that this function is mandatory for this role.
                    <h:br/>
                    NA - Indicates that this function is not applicable for this role
                    <h:br/>
                    <h: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:  Minimum password length  <h:li/>   Minimum password complexity  <h:li/>   Maximum password lifetime  <h:li/>  <h:ul/></text>
                        <M ref="I"/>
                        <NA ref="U"/>
                        <M ref="A"/>
                        <M ref="AO"/>
                      </management-function>
                      <management-function id="mf-screenlock">
                        <text>configure session locking policy:  Screen-lock enabled/disabled  <h:li/>   Screen lock timeout  <h:li/>   Number of authentication failures  <h:li/>  <h:ul/></text>
                        <M ref="I"/>
                        <NA ref="U"/>
                        <M ref="A"/>
                        <M ref="AO"/>
                      </management-function>
                      <management-function id="mf-vpn">
                        <text>enable/disable the VPN protection:  Across device  <h:li/>  <h: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_ext.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.
                          <h: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.
                          </h:p>
                        </app-note>
                      </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>
                      </management-function>
                      <management-function id="mf-audioVisual">
                        <text>enable/disable <assignable>list of audio or visual collection
                          devices</assignable>:  Across device  <h:li/>  <h: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_ext.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.
                          <h: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.
                          </h:p>
                        </app-note>
                      </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"/>
                      </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>
                      </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> (an application 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.
                          <h:ul>
                            <h:li>
                              If the administrator can restrict the sources from which applications can be
                    installed, the ST author selects "<xref to="mf-appInstallRules-restrict"/>".
                            </h:li>
                            <h: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.
                            </h:li>
                            <h:li>
                              If the administrator can prevent the user from installing additional
                    applications, the ST author selects "<xref to="mf-appInstallRules-deny"/>".
                            </h:li>
                          </h:ul>
                        </app-note>
                      </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"/>
                      </management-function>
                      <management-function id="mf-keyWipe">
                        <text>destroy imported keys or secrets and <selectables><selectable id="fmt_smf_ext.1.1_4" exclusive="yes">no other keys or secrets</selectable><selectable id="fmt_smf_ext.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"/>
                      </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"/>
                      </management-function>
                      <management-function id="mf-certWipe">
                        <text>remove imported X.509v3 certificates and <selectables><selectable id="fmt_smf_ext.1.1_7" exclusive="yes">no other X.509v3 certificates</selectable><selectable id="fmt_smf_ext.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>
                      </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>
                      </management-function>
                      <management-function id="mf-appRemove">
                        <text>remove applications</text>
                        <M ref="I"/>
                        <NA ref="U"/>
                        <M ref="A"/>
                        <O ref="AO"/>
                      </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>
                      </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>
                      </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_EXT.1.1.
                        </app-note>
                      </management-function>
                      <management-function id="mf-notifications">
                        <text>enable/disable display notification in the locked state of: <selectables linebreak="yes"><selectable id="fmt_smf_ext.1.1_10">email notifications</selectable><selectable id="fmt_smf_ext.1.1_11">calendar appointments</selectable><selectable id="fmt_smf_ext.1.1_12">contact associated with phone call notification</selectable><selectable id="fmt_smf_ext.1.1_13">text message notification</selectable><selectable id="fmt_smf_ext.1.1_15"><assignable>other application-based notifications</assignable></selectable><selectable id="fmt_smf_ext.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>
                      </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>
                      </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>
                      </management-function>
                      <management-function id="mf-location">
                        <text>enable/disable location services:  Across device  <h:li/>  <h:ul/><selectables linebreak="yes"><selectable id="mf-location-per_app">on a per-app basis</selectable><selectable id="fmt_smf_ext.1.1_17">on a per-group of applications processes basis</selectable><selectable id="fmt_smf_ext.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>
                      </management-function>
                      <management-function id="mf-authFactors">
                        <text>enable/disable the use of <selectables><selectable id="fmt_smf_ext.1.1_19">Biometric Authentication Factor</selectable><selectable id="fmt_smf_ext.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>
                      </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>
                      </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>
                      </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>
                      </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>
                      </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>
                      </management-function>
                      <management-function id="mf-wipeEntData">
                        <text>wipe Enterprise data</text>
                        <O ref="I"/>
                        <O ref="U"/>
                        <O ref="A"/>
                        <NA ref="AO"/>
                      </management-function>
                      <management-function id="mf-appCert">
                        <text>approve <selectables><selectable id="fmt_smf_ext.1.1_23">import</selectable><selectable id="fmt_smf_ext.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>
                      </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 is allowed to configure certificate acceptance" is selected in
              FIA_X509_EXT.2.2 in
                          <xref to="pkg-x509"/>
                        </app-note>
                      </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"/>
                      </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"/>
                      </management-function>
                      <management-function id="mf-digSign">
                        <text>configure <selectables><selectable id="fmt_smf_ext.1.1_25">certificate</selectable><selectable id="fmt_smf_ext.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>
                      </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>
                      </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>
                      </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/>
                      </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>
                      </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"/>
                      </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_ext.1.1_27">USB data transfer without user authentication</selectable><selectable id="fmt_smf_ext.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"/>
                      </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_ext.1.1_29">locally connected system</selectable><selectable id="fmt_smf_ext.1.1_30">remote system</selectable></selectables></text>
                        <O ref="I"/>
                        <O ref="U"/>
                        <O ref="A"/>
                        <O ref="AO"/>
                      </management-function>
                      <management-function id="mf-hotspot">
                        <text>enable/disable <selectables linebreak="yes"><selectable id="fmt_smf_ext.1.1_31">Hotspot functionality authenticated by <selectables><selectable id="fmt_smf_ext.1.1_32">pre-shared key</selectable><selectable id="fmt_smf_ext.1.1_33">passcode</selectable><selectable id="fmt_smf_ext.1.1_34" exclusive="yes">no authentication</selectable></selectables> </selectable><selectable id="s-tether">USB tethering authenticated by <selectables><selectable id="fmt_smf_ext.1.1_35">pre-shared key</selectable><selectable id="fmt_smf_ext.1.1_36">passcode</selectable><selectable id="fmt_smf_ext.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>
                      </management-function>
                      <management-function id="mf-dataSharing">
                        <text>approve exceptions for sharing data between <selectables><selectable id="fmt_smf_ext.1.1_38">applications</selectable><selectable id="fmt_smf_ext.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>
                      </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"/>
                      </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>
                      </management-function>
                      <management-function id="mf-alwaysOnVPN">
                        <text>enable/disable the Always On VPN protection:  Across device  <h:li/>  <h:ul/><selectables linebreak="yes"><selectable id="fmt_smf_ext.1.1_41">on a per-app basis</selectable><selectable id="fmt_smf_ext.1.1_42">on a per-group of applications processes basis</selectable><selectable id="fmt_smf_ext.1.1_43" exclusive="yes">no other method</selectable></selectables></text>
                        <M 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>
                      </management-function>
                      <management-function id="mf-bioRevoke">
                        <text>revoke Biometric template</text>
                        <O ref="I"/>
                        <O ref="U"/>
                        <O ref="A"/>
                        <O ref="AO"/>
                      </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"/>
                      </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.
                    <h:br/>
                    <h:br/>
                    The first column lists the management functions
              identified in the PP.
                    <h:br/>
                    <h:br/>
                    In the following columns:
                    <h:ul>
                      <h:li>‘M’ means Mandatory</h:li>
                      <h:li>‘O’ means Optional/Objective</h:li>
                      <h:li>'-' means that no value (M or O) can be assigned</h:li>
                    </h:ul>
                    <h:br/>
                    <h:br/>
                    The third column ("Impl.") indicates whether the function is
              to be implemented. The ST author should select which Optional functions are
              implemented.
                    <h:br/>
                    <h:br/>
                    The fourth column ("User Only") indicates functions
              that are to be restricted to the user (i.e. not available to the administrator).
                    <h:br/>
                    <h: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.
                    <h:br/>
                    <h: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.
                    <h:br/>
                    <h: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.
                    <h:br/>
                    <h:br/>
                  </note>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
        </section>
        <section title="Class FTP: Trusted Path/Channels" id="md-m-ftp">
          <!-- FTP_ITC_EXT.1 Trusted Channel Communication -->
          <base-sfr-spec cc-id="ftp_itc_ext.1" id="mdf-ftp-itc-ext-1" title="Trusted Channel Communication">
            <consistency-rationale>This PP-Module adds IPsec as a new protocol that is used to implement trusted channels.</consistency-rationale>
            <description>
              <h:p>This SFR is identical to what is defined in the Base-PP except that support for IPsec is mandated. Additionally, since the Base-PP requires ‘at least one of’ the selected protocols which previously included IPsec, ‘no other protocols’ is now available as an option in the selection.</h:p>
              The text of FTP_ITC_EXT.1.1 is replaced with (the other elements are unaffected):
              <h:br/>
              <h:br/>
              The TSF shall use
              <h:ul>
                <h:li>802.11-2012 in accordance with the [<h:i>PP-Module for Wireless LAN Clients, version 1.1</h:i>],</h:li>
                <h:li>802.1X in accordance with the [<h:i>PP-Module for Wireless LAN Clients, version 1.1</h:i>],</h:li>
                <h:li>EAP-TLS in accordance with the [<h:i>PP-Module for Wireless LAN Clients, version 1.1</h:i>],</h:li>
                <h:li>Mutually authenticated TLS in accordance with the [<h:i>Functional Package for TLS, version 2.1</h:i>],</h:li>
                <h:li>
                  <h:b>IPsec in accordance with the [<h:i>PP-Module for VPN Clients, version 3.0</h:i>],</h:b>
                </h:li>
              </h:ul>
              and [<h:b>selection:</h:b>
              <h:i>
                <h:ul>
                  <h:li>mutually authenticated DTLS as defined in the Functional Package for TLS, version 2.1</h:li>
                  <h:li>HTTPS</h:li>
                  <h:li>
                    <h:b>no other</h:b>
                  </h:li>
                </h:ul>
              </h:i>] protocols to provide a communication channel between itself and another trusted IT product using certificates as defined in [<h:i>Functional Package for X.509, version 1.0</h:i>] 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.
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-wlan']">
                <f-element id="fel-wlan">
                  <title>The TSF shall use <h:ul><h:li>802.11-2012 in accordance with the [<h:i><xref to="mod-wlanclient"/></h:i>],</h:li> <h:li>802.1X in accordance with the [<h:i><xref to="mod-wlanclient"/></h:i>],</h:li> <h:li>EAP-TLS in accordance with the [<h:i><xref to="mod-wlanclient"/></h:i>],</h:li> <h:li>Mutually authenticated TLS in accordance with [<h:i>the <xref to="tls"/></h:i>]</h:li> <h:li>IPsec in accordance with the [<h:i><xref to="mod-vpnclient"/></h:i>],</h:li></h:ul> and <selectables linebreak="yes"><selectable id="itc_dtls">mutually authenticated DTLS as defined in the <xref to="tls"/></selectable><selectable id="FTP_ITC_EXT.1_1">HTTPS</selectable><selectable id="FTP_ITC_EXT.1_2"><h:b>no other</h:b></selectable></selectables> protocols to provide a communication channel between itself and another trusted IT product using certificates as defined in [ <h:i><xref to="X509"/></h:i> ] 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 <h:ul><h:li>802.11-2012 in accordance with <assignable>requirements or standards defining implementation of this protocol </assignable>, </h:li> <h:li>802.1X in accordance with <assignable>requirements or standards defining implementation of this protocol </assignable>, </h:li> <h:li>EAP-TLS in accordance with <assignable>requirements or standards defining implementation of this protocol </assignable>, </h:li> <h:li>Mutually authenticated TLS in accordance with <assignable>requirements or standards defining implementation of this protocol </assignable> </h:li> </h:ul> and <assignable>other protocols </assignable> protocols to provide a communication channel between itself and another trusted IT product using certificates as defined in <assignable>requirement or standard defining the use of certificates </assignable> 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.
                    <h:br/>
                    <h:br/>
                    The ST author must list which trusted channel protocols are implemented by the Mobile Device.
                    <h:br/>
                    <h: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.
                    <h:br/>
                    <h: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>
                    <h:ul>
                      <h:li>FCS_TLS_EXT.1:</h:li>
                      <h:ul>
                        <h:li>Either TLS or DTLS is selected as appropriate</h:li>
                        <h:li>Client is selected</h:li>
                      </h:ul>
                      <h:li>FCS_TLSC_EXT.1.1 or FCS_DTLSC_EXT.1.1 (as appropriate): </h:li>
                      <h:ul>
                        <h:li>Mutual authentication must be selected</h:li>
                      </h:ul>
                      <h:li>FCS_TLSC_EXT.1.2 or FCS_DTLSC_EXT.1.2 (as appropriate): </h:li>
                      <h:ul>
                        <h:li>The cipher suites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</h:li>
                      </h:ul>
                      <h:li>FCS_TLSC_EXT.1.6 or FCS_DTLSC_EXT.1.6 (as appropriate): </h:li>
                      <h:ul>
                        <h:li>A selection indicating there are no exceptions to rejecting a trusted channel is chosen.</h:li>
                      </h:ul>
                    </h:ul>
                    <h: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"/>.
                    <h:br/>
                    <h: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.
                    <h:br/>
                    <h:br/>
                    Assured identification of endpoints is performed
              according to the authentication mechanisms used by the listed trusted channel
              protocols.
                    <h:br/>
                    <h:br/>
                    <h:p>
                      Claims from the
                      <xref to="pkg-x509"/>
                      are only required to the extent that they are needed to support the functionality required by the trusted protocols that are claimed.
                    </h:p>
                    <h:p>The TSF is mandated to support mutually authenticated TLS, which means that it implements a protocol that requires the validation of a certificate presented by an external entity. Therefore, FIA_X509_EXT.1 and FIA_X509_EXT.2 will be claimed, as will FIA_TSM_EXT.1 for management of the trust store.</h:p>
                    <h:p>The requirement to implement mutually authenticated TLS also means that it
                implements a protocol that requires the presentation of any certificates to an external entity. Therefore, FIA_XCU_EXT.2 will be claimed. FIA_X509_EXT.6 will also be claimed, along with any applicable dependencies, depending on how the certificates presented by the TOE are obtained.</h:p>
                  </note>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
        </section>
      </modified-sfrs>
      <!-- 5.2.2 Additional SFRs -->
      <additional-sfrs>
        <section id="mdf-audit-table" title="Auditable Events for MDF PP Additional SFRs">
          <audit-table id="mdf-additional" table="tab-mdf-additional" title="Auditable Events for MDF PP Additional SFRs"/>
        </section>
        <section title="Class FDP: User Data Protection" id="ib-fdp">
          <ext-comp-def title="Subset Information Flow Control" fam-id="FDP_VPN_EXT">
            <fam-behavior>Components in this family describe the requirements that pertain to IP traffic and information flow
              through the VPN client.</fam-behavior>
          </ext-comp-def>
          <!-- FDP_VPN_EXT.1 Split Tunnel Prevention -->
          <f-component cc-id="fdp_vpn_ext.1" id="fdp-vpn-ext-1" name="Split Tunnel Prevention">
            <consistency-rationale/>
            <comp-lev>requires the TSF to process all IP traffic through its VPN client
              functionality.</comp-lev>
            <management>No specific management functions are identified.</management>
            <audit>There are no auditable events foreseen.</audit>
            <dependencies><no-link>FCS_IPSEC_EXT.1</no-link> IPsec</dependencies>
            <f-element id="fdp-vpn-ext-1e1">
              <title>The TSF shall ensure that all IP traffic (other than IP traffic required to establish
                the VPN connection) flow through the IPsec VPN client.</title>
              <note role="application">
                This requirement is implementation-dependent on the MDF PP being the Base-PP claimed by the TOE. In this case, this requirement must be claimed.
                <h:br/>
                <h:br/>
                For all other Base-PPs, this requirement is strictly optional.
                <h:br/>
                <h:br/>
                This requirement is used when the VPN client is able to enforce the requirement
                through its own components. This generally will have to be done through using
                hooks provided by the platform such that the TOE is able to ensure that no IP
                traffic can flow through other network interfaces.
              </note>
              <aactivity level="element">
                <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 and that a configuration exists for each
                  baseband protocol in which only the traffic identified by the ST author is necessary for establishing the
                  VPN connection (IKE traffic and perhaps HTTPS or DNS traffic) is not encapsulated by the VPN protocol 
                  (IPsec). The ST author shall also identify in the TSS section any differences in the routing of IP traffic when
                  using any supported baseband protocols (e.g., Wi-Fi, LTE).
                  <h:br/>
                  <h:br/>
                </TSS>
                <Guidance>
                  The evaluator shall verify that the following is addressed by the documentation:
                  <h:ul>
                    <h:li>The description above indicates that if a VPN client is enabled, all configurations route all IP traffic
                      (other than IP traffic required to establish the VPN connection) through the VPN client.</h:li>
                    <h:li>The guidance describes how the user or administrator can configure the TSF to meet
                      this requirement.</h:li>
                  </h:ul>
                  <h:br/>
                  <h:br/>
                </Guidance>
                <Tests>The evaluator shall perform the following test: <h:br/> <h:br/>Step 1 - The evaluator shall use the platform to enable a network connection without using IPsec. The evaluator shall use a packet sniffing tool between the platform 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, accessing other internet resources (Use Case 1), accessing another VPN client (Use Case 2), or accessing an IPsec-capable network device (Use Case 3). 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. <h:br/> <h: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 turn on the sniffing tool, establish the VPN connection, and perform the same actions with the device as performed in the first step. The evaluator shall verify that the sniffing tool captures traffic generated by these actions, turn off the sniffing tool, and save the session data. <h:br/> <h:br/>Step 3 - The evaluator shall examine the traffic from both step one and step two to verify that all IP traffic, aside from and after traffic necessary for establishing the VPN (such as IKE, DNS, and possibly HTTPS), is encapsulated by IPsec. <h:br/> <h:br/>Step 4 - The evaluator shall attempt to send packets to the TOE outside the VPN connection and shall verify that the TOE discards them.</Tests>
              </aactivity>
            </f-element>
            <audit-event table="tab-mdf-additional"/>
          </f-component>
        </section>
      </additional-sfrs>
      <con-toe>If this PP-Module is used to extend the MDF PP, the TOE type for the overall TOE is still a mobile device.
		The TOE boundary is simply extended to include VPN client functionality that is built into the device’s
		software so that additional security functionality is claimed within the scope of the TOE.</con-toe>
      <con-sec-prob>The threats and assumptions defined by this PP-Module (see sections 3.1 and 3.2) supplement those
		defined in the MDF PP as follows:</con-sec-prob>
      <con-obj>The security objectives defined by this PP-Module (see sections 4.1 and 4.2) supplement those defined
		in the MDF PP as follows:</con-obj>
      <con-op-en/>
      <con-mod ref="T.UNAUTHORIZED_ACCESS">The threat of an attacker gaining access to a network interface or data
		that is transmitted over it is consistent with the T.NETWORK and T.EAVESDROP threats in the MDF PP.</con-mod>
      <con-mod ref="T.TSF_CONFIGURATION">The threat of a misconfigured VPN client is consistent with the
		T.NETWORK and T.EAVESDROP threats in the MDF PP because failure to mitigate against misconfiguration makes these threats more significant.</con-mod>
      <con-mod ref="T.USER_DATA_REUSE">Inadvertent disclosure of user data to an unauthorized recipient is
		consistent with the T.EAVESDROP threat in the MDF PP.</con-mod>
      <con-mod ref="T.TSF_FAILURE">A failure of TSF functionality could compromise the local system, which is
		consistent with the T.FLAWAPP threat in the MDF PP.</con-mod>
      <con-mod ref="A.NO_TOE_BYPASS">The A.NO_TOE_BYPASS assumption assumes that the OE is configured in such a manner that the only network route
		to the protected network is through the TOE. This does not conflict with
		the MDF PP because the MDF PP makes no assumptions about the
		network architecture in which the TOE is deployed.</con-mod>
      <con-mod ref="A.PHYSICAL">The MDF PP includes the A.NOTIFY and A.PRECAUTION assumptions to
		mitigate the risk of physical theft of the TOE. This is consistent with the
		A.PHYSICAL assumption in this PP-Module because the MDF PP includes
		reasonable assumptions about the physical security of the TOE.</con-mod>
      <con-mod ref="A.TRUSTED_CONFIG">This assumption is consistent with the MDF PP because the MDF PP
		includes the A.CONFIG assumption which assumes that all security functions are appropriately configured.</con-mod>
      <con-mod ref="OE.NO_TOE_BYPASS">This objective addresses behavior that is out of scope of the MDF PP
		and does not define an environment that an MDF TOE is incapable of existing in.</con-mod>
      <con-mod ref="OE.PHYSICAL">The operational environment of a mobile device cannot guarantee
		physical security, but the OE.PRECAUTION objective in the MDF PP
		ensures that an appropriate level of physical security is provided.</con-mod>
      <con-mod ref="OE.TRUSTED_CONFIG">The expectation of trusted configuration is consistent with
		OE.CONFIG in the MDF PP.</con-mod>
      <con-mod ref="md-fcs-ckm-1">The ST author is instructed to make specific selections at minimum to
		address VPN client requirements; the SFR behavior itself is unmodified.</con-mod>
      <con-mod ref="md-fcs-ckm-2-1">The ST author is instructed to make specific selections at minimum to
		address VPN client requirements; the SFR behavior itself is unmodified.</con-mod>
      <con-mod ref="md-fcs-cop-1-1">The ST author is instructed to make specific selections at minimum to
		address VPN client requirements; the SFR behavior itself is unmodified.</con-mod>
      <con-mod ref="md-fia-x509-ext-2">This PP-Module adds IPsec as a new trusted protocol where x.509
		certificate authentication is used.</con-mod>
      <con-mod ref="md-ftp-itc-ext-1">This PP-Module adds IPsec as a new protocol that is used to implement
		trusted channels.</con-mod>
      <con-mod ref="fcs-ckm-1-vpn">This SFR defines the method of key generation for IKE peer authentication,
		which is a function that does not interfere with the functionality defined in
		the MDF PP.</con-mod>
      <con-mod ref="fcs-ipsec-ext-1">This SFR defines the VPN client’s IPsec implementation, which is added
		functionality that does not interfere with the MDF functions.</con-mod>
      <con-mod ref="fdp-rip-2">The requirement to protect against reuse of residual data is a property of
		the VPN client behavior and does not impact the MDF functionality.</con-mod>
      <con-mod ref="fmt-smf-1-vpn">The ability to configure the VPN client behavior does not affect whether the
		MDF as a whole can perform its security functions.</con-mod>
      <con-mod ref="fpt-tst-ext-1-vpn">Self-testing of the VPN client functionality does not impact the ability of the
		MDF to perform its security functions.</con-mod>
      <con-mod ref="fau-gen-1-vpn">Audit data generated by the VPN client does not interfere with MDF
		functionality. The possibility of the underlying MDF platform generating
		audit data is consistent with the MDF PP, which already contains
		FAU_GEN.1.</con-mod>
      <con-mod ref="fau-sel-1-vpn">The ability to suppress the generation of certain VPN client audit data
		does not interfere with MDM functionality. The MDF PP already contains
		FAU_SEL.1 as an objective SFR which means that this functionality does not
		conflict with the expected behavior of a mobile device.</con-mod>
      <con-mod ref="fdp-vpn-ext-1">The ability of the VPN client to prevent split tunneling of IPsec traffic
        requires it to have hooks into lower-level mobile device behavior, but there
        are no requirements in the MDF PP that would prevent this functionality
        from being supported.</con-mod>
      <con-mod ref="fia-bma-ext-1">This SFR relates to biometric authentication, which does not conflict with the MDF PP because it may be a function offered by the 
        part of the TOE described by the MDF PP.</con-mod>
      <con-mod ref="fpf-mfa-ext-1">This SFR relates specifically to the handling of traffic that is used for the
        establishment of IPsec connections.</con-mod>
      <con-mod ref="fcs-eap-ext-1">This SFR defines an additional cryptographic protocol that is beyond the scope of those defined in the MDF PP but
	      does not prevent any MDF PP functionality
        from being implemented.</con-mod>
      <con-mod ref="fia-psk-ext-1">This SFR defines the use of pre-shared keys, which is behavior that only
        relates to the establishment of IPsec connections.</con-mod>
      <con-mod ref="fia-psk-ext-2">This SFR relates to use of pre-shared keys, which is behavior that only
        applies to the establishment of IPsec connections.</con-mod>
      <con-mod ref="fia-psk-ext-3">This SFR relates to use of pre-shared keys, which is behavior that only
        applies to the establishment of IPsec connections.</con-mod>
      <con-mod ref="fia-psk-ext-4">This SFR relates to use of pre-shared keys, which is behavior that only
        applies to the establishment of IPsec connections.</con-mod>
      <con-mod ref="fia-psk-ext-5">This SFR relates to use of pre-shared keys, which is behavior that only
        applies to the establishment of IPsec connections.</con-mod>
    </base-pp>
    <!-- 5.3 App PP Security Functional Requirements Direction -->
    <base-pp id="bpp-app" name="Protection Profile for Application Software" product="Application" short="App" version="2.0">
      <git>
        <url>https://github.com/commoncriteria/application</url>
        <branch>release-1.4</branch>
      </git>
      <url>https://github.com/commoncriteria/application</url>
      <sec-func-req-dir>In a PP-Configuration that includes the App PP, the VPN client is expected to rely on some of the security
      functions implemented by the OS as a whole and evaluated against the Base-PP. In this
      case, the following sections describe any modifications that the ST author must make to the SFRs
      defined in the Base-PP in addition to what is mandated by section 5.5.</sec-func-req-dir>
      <!-- 5.3.1 Modified SFRs -->
      <modified-sfrs>
        <section title="Class FCS: Cryptographic Support" id="ap-m-fcs">
          <!-- FCS_CKM.1/AK Cryptographic Asymmetric Key Generation -->
          <base-sfr-spec cc-id="fcs_ckm.1" id="app-fcs-ckm-1" title="Cryptographic Asymmetric Key Generation" iteration="AK">
            <consistency-rationale>The ST author is instructed to make specific selections at minimum to
              address VPN client requirements; the SFR behavior itself is
              unmodified. Additionally, this behavior is selection-based in the App
              PP but is made mandatory since it is required for VPN client
              functionality.</consistency-rationale>
            <description>
              <h:p>
                This SFR is selection-based in the App PP depending on the selection made in
                FCS_CKM_EXT.1. Because key generation services (whether implemented by the
                TOE or invoked from the platform) are required for IPsec, this SFR is mandatory
                for any TOE that claims conformance to this PP-Module.
                <h:br/>
                <h:br/>
                This SFR is functionally identical to what is defined in the App PP except that ECC
                key generation with P-384 has been made mandatory in support of IPsec due to the
                mandated support for DH group 20 in FCS_IPSEC_EXT.1.8. RSA remains
                present as a selection since it may be used by parts of the TOE that are not
                specifically related to VPN client functionality. The selection for "no other key generation methods"
                was added in case the algorithms that IPsec requires are the TSF's only use of key generation.
              </h:p>
              The text of the requirement is replaced with:
              <h:br/>
              <h:br/>
              The
              <h:b>application</h:b>
              shall [<h:b>selection: </h:b>
              <h:i>
                <h:ul>
                  <h:li>invoke platform-provided functionality</h:li>
                  <h:li>implement functionality</h:li>
                </h:ul>
              </h:i>]
              to generate
              <h:b>asymmetric</h:b>
              cryptographic keys in accordance with a specified cryptographic key generation algorithm
              <h:b>
                <h:ul>
                  <h:li>
                    [ECC schemes] using [<h:i>“NIST curves” P-384 and [selection: P-521, no other curves]</h:i>]
                that meet the following: 
                [<h:i>FIPS PUB 186-5, “Digital Signature Standard (DSS),” Appendix A.2</h:i>]
                  </h:li>
                </h:ul>
              </h:b>
              and [<h:b>selection:</h:b>
              <h:i>
                <h:ul>
                  <h:li>
                    <h:b>[RSA schemes]</h:b>
                    using cryptographic key sizes of [<h:b>assignment: </h:b>
                    <h:i>3072-bit or greater</h:i>] that meet
                    the following: [FIPS PUB 186-5, "Digital Signature Standard (DSS)," Appendix A.1]
                  </h:li>
                  <h:li>
                    <h:b>[FFC Schemes]</h:b>
                    using [“safe-prime” groups] [<h:b>selection:</h:b>
                    <h:ul>
                      <h:li>MODP-3072</h:li>
                      <h:li>MODP-4096</h:li>
                      <h:li>MODP-6144</h:li>
                      <h:li>MODP-8192</h:li>
                      <h:li>ffdhe-3072</h:li>
                      <h:li>ffdhe-4096</h:li>
                      <h:li>ffdhe-6144</h:li>
                      <h:li>ffdhe-8192</h:li>
                    </h:ul>] that meet the following: 
                    [NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes
                    Using Discrete Logarithm Cryptography” and [<h:b>selection:</h:b>
                    RFC 3526, RFC 7919]]
                  </h:li>
                  <h:li>
                    <h:b>Leighton-Micali Signature</h:b>
                    Algorithm using the parameter sets
                    <h:ul>
                      <h:li>LMS_SHAKE_M24_H5</h:li>
                      <h:li>LMS_SHAKE_M24_H10</h:li>
                      <h:li>LMS_SHAKE_M24_H15</h:li>
                      <h:li>LMS_SHAKE_M24_H25</h:li>
                      <h:li>LMS_SHAKE_M32_H5</h:li>
                      <h:li>LMS_SHAKE_M32_H10</h:li>
                      <h:li>LMS_SHAKE_M32_H15</h:li>
                      <h:li>LMS_SHAKE_M32_H25</h:li>
                      <h:li>LMS_SHA256_M24_H5</h:li>
                      <h:li>LMS_SHA256_M24_H10</h:li>
                      <h:li>LMS_SHA256_M24_H15</h:li>
                      <h:li>LMS_SHA256_M24_H25</h:li>
                      <h:li>LMS_SHA256_M32_H5</h:li>
                      <h:li>LMS_SHA256_M32_H10</h:li>
                      <h:li>LMS_SHA256_M32_H15</h:li>
                      <h:li>LMS_SHA256_M32_H25</h:li>
                    </h:ul>] that meet the following: [NIST SP 800-208, "Recommendation for Stateful Hash-Based Signature Schemes"]
                  </h:li>
                  <h:li>
                    <h:b>eXtended Merkle Signature Scheme Algorithm</h:b>
                    using the parameter sets
                    <h:ul>
                      <h:li>XMSS-SHA2_10_192</h:li>
                      <h:li>XMSS-SHA2_16_192</h:li>
                      <h:li>XMSS-SHA2_20_192</h:li>
                      <h:li>XMSS-SHA2_10_256</h:li>
                      <h:li>XMSS-SHA2_16_256</h:li>
                      <h:li>XMSS-SHA2_20_256</h:li>
                      <h:li>XMSS-SHAKE_10_192</h:li>
                      <h:li>XMSS-SHAKE_16_192</h:li>
                      <h:li>XMSS-SHAKE_20_192</h:li>
                      <h:li>XMSS-SHAKE_10_256</h:li>
                      <h:li>XMSS-SHAKE_16_256</h:li>
                      <h:li>XMSS-SHAKE_20_256</h:li>
                    </h:ul>] bits that meets the following: [NIST SP 800-208, "Recommendation for Stateful Hash-Based Signature Schemes"]
                  </h:li>
                  <h:li>
                    <h:b>Module-Lattice-Based Key-Encapsulation Mechanism Standard</h:b>
                    using the parameter set ML-KEM-1024 
                    that meets the following: [FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard]
                  </h:li>
                  <h:li>
                    <h:b>Module-Lattice-Based Digital Signature Standard</h:b>
                    using the parameter set ML-DSA-87 
                    that meets the following [FIPS 204, Module-Lattice-Based Digital Signature Standard]
                  </h:li>
                  <h:li>
                    <h:b>no other key generation methods</h:b>
                  </h:li>
                </h:ul>
              </h:i>].
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-asym-key-gen-impl']">
                <f-element id="fel-asym-key-gen-impl">
                  <title>The <h:b>application</h:b> shall<h:b><selectables linebreak="yes"><selectable id="FCS_CKM.1/AK_1">invoke platform-provided functionality</selectable><selectable id="FCS_CKM.1/AK_2">implement functionality</selectable></selectables> </h:b> to generate <h:b>asymmetric</h:b> cryptographic keys in accordance with a specified cryptographic key generation algorithm<h:ul><h:li><h:b>[ECC schemes] using [<h:i>“NIST curves” P-384 and  <selectables><selectable id="FCS_CKM.1/AK_3">P-521</selectable><selectable id="FCS_CKM.1/AK_4">no other curves</selectable></selectables></h:i>] that meet the following: [<h:i>FIPS PUB 186-5, “Digital Signature Standard (DSS),” Appendix A.2</h:i>]</h:b></h:li></h:ul> <h:b>and</h:b><selectables linebreak="yes"><selectable id="FCS_CKM.1/AK_5"><h:b>[RSA schemes]</h:b> using cryptographic key sizes of <assignable>3072 bits or greater</assignable> that meet the following: [<h:i>FIPS PUB 186-5, "Digital Signature Standard (DSS)," Appendix A.1</h:i>]</selectable><selectable id="FCS_CKM.1/AK_7"><h:b>[FFC Schemes]</h:b> using [<h:i>“safe-prime” groups</h:i>] <selectables><selectable id="FCS_CKM.1/AK_8">MODP-3072</selectable><selectable id="FCS_CKM.1/AK_9">MODP-4096</selectable><selectable id="FCS_CKM.1/AK_10">MODP-6144</selectable><selectable id="FCS_CKM.1/AK_11">MODP-8192</selectable><selectable id="FCS_CKM.1/AK_12">ffdhe-3072</selectable><selectable id="FCS_CKM.1/AK_13">ffdhe-4096</selectable><selectable id="FCS_CKM.1/AK_14">ffdhe-6144</selectable><selectable id="FCS_CKM.1/AK_15">ffdhe-8192</selectable></selectables> that meet the following: [<h:i>NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and <selectables><selectable id="FCS_CKM.1/AK_16">RFC 3526</selectable><selectable id="FCS_CKM.1/AK_17">RFC 7919</selectable></selectables></h:i>]</selectable><selectable id="FCS_CKM.1/AK_18"><h:b>Leighton-Micali Signature</h:b> Algorithm using the parameter sets <selectables><selectable id="FCS_CKM.1/AK_19">LMS_SHAKE_M24_H5</selectable><selectable id="FCS_CKM.1/AK_20">LMS_SHAKE_M24_H10</selectable><selectable id="FCS_CKM.1/AK_21">LMS_SHAKE_M24_H15</selectable><selectable id="FCS_CKM.1/AK_22">LMS_SHAKE_M24_H25</selectable><selectable id="FCS_CKM.1/AK_23">LMS_SHAKE_M32_H5</selectable><selectable id="FCS_CKM.1/AK_24">LMS_SHAKE_M32_H10</selectable><selectable id="FCS_CKM.1/AK_25">LMS_SHAKE_M32_H15</selectable><selectable id="FCS_CKM.1/AK_26">LMS_SHAKE_M32_H25</selectable><selectable id="FCS_CKM.1/AK_27">LMS_SHA256_M24_H5</selectable><selectable id="FCS_CKM.1/AK_28">LMS_SHA256_M24_H10</selectable><selectable id="FCS_CKM.1/AK_29">LMS_SHA256_M24_H15</selectable><selectable id="FCS_CKM.1/AK_30">LMS_SHA256_M24_H25</selectable><selectable id="FCS_CKM.1/AK_31">LMS_SHA256_M32_H5</selectable><selectable id="FCS_CKM.1/AK_32">LMS_SHA256_M32_H10</selectable><selectable id="FCS_CKM.1/AK_33">LMS_SHA256_M32_H15</selectable><selectable id="FCS_CKM.1/AK_34">LMS_SHA256_M32_H25</selectable></selectables> that meet the following[NIST SP 800-208, "Recommendation for Stateful Hash-Based Signature Schemes"]</selectable><selectable id="FCS_CKM.1/AK_35"><h:b>eXtended Merkle Signature Scheme Algorithm</h:b> using the parameter sets <selectables><selectable id="FCS_CKM.1/AK_36">XMSS-SHA2_10_192</selectable><selectable id="FCS_CKM.1/AK_37">XMSS-SHA2_16_192</selectable><selectable id="FCS_CKM.1/AK_38">XMSS-SHA2_20_192</selectable><selectable id="FCS_CKM.1/AK_39">XMSS-SHA2_10_256</selectable><selectable id="FCS_CKM.1/AK_40">XMSS-SHA2_16_256</selectable><selectable id="FCS_CKM.1/AK_41">XMSS-SHA2_20_256</selectable><selectable id="FCS_CKM.1/AK_42">XMSS-SHAKE_10_192</selectable><selectable id="FCS_CKM.1/AK_43">XMSS-SHAKE_16_192</selectable><selectable id="FCS_CKM.1/AK_44">XMSS-SHAKE_20_192</selectable><selectable id="FCS_CKM.1/AK_45">XMSS-SHAKE_10_256</selectable><selectable id="FCS_CKM.1/AK_46">XMSS-SHAKE_16_256</selectable><selectable id="FCS_CKM.1/AK_47">XMSS-SHAKE_20_256</selectable></selectables> that meets the following: [NIST SP 800-208, "Recommendation for Stateful Hash-Based Signature Schemes"]</selectable><selectable id="FCS_CKM.1/AK_48"><h:b>Module-Lattice-Based Key-Encapsulation Mechanism Standard</h:b>using the parameter set ML-KEM-1024 that meets the following: [FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard]</selectable><selectable id="FCS_CKM.1/AK_49"><h:b>Module-Lattice-Based Digital Signature Standard</h:b> using the parameter set ML-DSA-87 that meets the following [FIPS 204, Module-Lattice-Based Digital Signature Standard]</selectable><selectable id="FCS_CKM.1/AK_50"><h:b>no other key generation methods</h:b></selectable></selectables>.</title>
                  <note role="application">
                    <h:p>The ST should claim 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.1 and selected cryptographic protocols must match the selection. When key generation is used for entity authentication, the public key is expected to be associated with an X.509v3 certificate.<h:p/>If the TOE acts as a receiver in the RSA key establishment scheme, the TOE does not need to implement RSA key generation.<h:p/>Note that ML-DSA and ML-KEM are not usable in any functions at the time of initial publication, they are added to this requirement in support of future protocol updates. As support is expanded for CNSA 2.0, CNSA 1.0 will be removed as an selection in a future update.</h:p>
                  </note>
                  <aactivity>
                    <TSS>
                      <h:p>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<h:p/>If the ST selects "<h:b>invoke platform-provided functionality</h:b>," then the evaluator shall examine the TSS to verify that it describes how the key generation functionality is invoked and that the invocation matches the algorithm and size selections for each supported platform. The evaluator shall confirm the invocation of the platform is using non-deprecated functions provided by the platform(s).</h:p>
                    </TSS>
                    <Guidance>
                      <h:p>The evaluator shall verify that the operational guidance instructs the administrator how to configure the TOE to use the selected key generation scheme(s) and key size(s) for all uses defined in this PP if any configuration is required.</h:p>
                    </Guidance>
                    <Tests>
                      <h:p>If the ST selects "<h:b>implement functionality</h:b>," then the following test activities shall be carried out.</h:p>
                      <h:p>Evaluation Activity Note: The following tests may require the developer to provide access to a developer environment that provides the evaluator with tools that are not typically available to end-users of the application</h:p>
                      <h:p>
                        <h:b>Key Generation for FIPS PUB 186-5 RSA Schemes</h:b>
                      </h:p>
                      <h:p>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 e, the private prime factors p and q, the public modulus n and the calculation of the private signature exponent d. Key Pair generation specifies 5 ways (or methods) to generate the primes p and q. These include:<h:ul><h:li>Random Primes:<h:ul><h:li>Provable primes</h:li> <h:li>Probable primes</h:li></h:ul></h:li> <h:li>Primes with Conditions:<h:ul><h:li>Primes p1, p2, q1, q2, p, and q shall all be provable primes</h:li> <h:li>Primes p1, p2, q1, and q2 shall be provable primes, and p and q shall be probable primes</h:li> <h:li>Primes p1, p2, q1, q2, p, and q shall all be probable primes</h:li></h:ul></h:li></h:ul> 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 seed(s), 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.</h:p>
                      <h:p>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:<h:ul><h:li>n = p⋅q,</h:li> <h:li>p and q are probably prime according to Miller-Rabin tests,</h:li> <h:li>GCD(p-1, e) = 1,</h:li> <h:li>GCD(q-1, e) = 1,</h:li> <h:li>2 <h:sup>16</h:sup>≤ e ≤ 2 <h:sup>256</h:sup> and e is an odd integer,</h:li> <h:li>|p-q| &gt; 2 <h:sup>nlen/2 - 100</h:sup>,</h:li> <h:li>p ≥ 2 <h:sup>nlen/2 -1/2</h:sup>,</h:li> <h:li>q ≥ 2 <h:sup>nlen/2 -1/2</h:sup>,</h:li> <h:li>2 <h:sup>(nlen/2)</h:sup>&lt; d &lt; LCM(p-1, q-1),</h:li> <h:li>e⋅d = 1 mod LCM(p-1, q-1).</h:li></h:ul></h:p>
                      <h:p>
                        <h:b>Key Generation for Elliptic Curve Cryptography (ECC)</h:b>
                      </h:p>
                      <h:p><h:b>FIPS 186-5 ECC Key Generation Test</h:b>- For each supported NIST curve, i.e., 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.</h:p>
                      <h:p><h:b>FIPS 186-5 Public Key Verification (PKV) Test</h:b>- For each supported NIST curve, i.e., 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.</h:p>
                      <h:p>
                        <h:b>Key Generation for Finite-Field Cryptography (FFC)</h:b>
                      </h:p>
                      <h:p>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. The Parameter generation specifies two ways (or methods) to generate the cryptographic prime q and the field prime p:</h:p>
                      <h:p>Cryptographic and Field Primes:<h:ul><h:li>Primes q and p shall both be provable primes</h:li> <h:li>Primes q and field prime p shall both be probable primes</h:li></h:ul> and two ways to generate the cryptographic group generator g:</h:p>
                      <h:p>Cryptographic Group Generator:<h:ul><h:li>Generator g constructed through a verifiable process</h:li> <h:li>Generator g constructed through an unverifiable process.</h:li></h:ul> The Key generation specifies 2 ways to generate the private key x:</h:p>
                      <h:p>Private Key:<h:ul><h:li>len(q) bit output of RBG where 1 ≤ x ≤ q-1</h:li> <h:li>len(q) + 64 bit output of RBG, followed by a mod q-1 operation where 1≤ x ≤q-1.</h:li></h:ul> The security strength of the RBG must be at least that of the security offered by the FFC parameter set. To test the cryptographic and field prime generation method for the provable primes method and/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. 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 <h:ul><h:li>g ≠ 0,1</h:li> <h:li>q divides p-1</h:li> <h:li>g <h:sup>q</h:sup> mod p = 1</h:li> <h:li>g <h:sup>x</h:sup> mod p = y</h:li></h:ul> for each FFC parameter set and key pair.</h:p>
                      <h:p>
                        <h:b>Testing for FFC Schemes using safe-prime groups is done as part of testing in FCS_CKM.2.1</h:b>
                      </h:p>
                      <h:p>
                        <h:b>Key Generation for LMS/XMSS</h:b>
                      </h:p>
                      <h:p>For each supported LMS/LMSOTS pair, the evaluator will provide 1, 2, 3, 4, 5 seeds for H = 25, 20, 15, 10, 5 respectively where H = the height of the LMS tree. For each seed, the TOE will generate the corresponding public key which is to be verified by the evaluator using a known good implementation.</h:p>
                      <h:p>
                        <h:b>Key Generation for ML-DSA</h:b>
                      </h:p>
                      <h:p>The evaluator shall 10x input to the internal KeyGen function a 32-byte random seed. Verify the returned public-private key pair is correct using a known good implementation. Here internal KeyGen refers to the TOE’s implementation of the function ML-DSA.KeyGen_internal(-) as described in FIPS.204.</h:p>
                      <h:p>
                        <h:b>Key Generation for ML-KEM</h:b>
                      </h:p>
                      <h:p>The evaluator shall 10x input to the internal KeyGen function a pair of 32-byte random string. Verify the returned encapsulation and decapsulation key pair is correct using a known good implementation. Here internal KeyGen refers to the TOE’s implementation of the function ML-KEM.KeyGen_internal(-,-) as described in FIPS.203.</h:p>
                    </Tests>
                  </aactivity>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
          <!-- FCS_CKM.2 Cryptographic Key Establishment -->
          <base-sfr-spec cc-id="fcs_ckm.2" id="app-fcs-ckm-2" title="Cryptographic Key Establishment">
            <consistency-rationale>The ST author is instructed to make specific selections at minimum to
              address VPN client requirements and is modified to include DH group 14 as an additional supported method for key
              establishment.</consistency-rationale>
            <description>
              <h:p>This SFR differs from its definition in the App PP by moving elliptic curve-based
                key establishment schemes from selectable to mandatory due to the mandated
                support for DH group 20 in FCS_IPSEC_EXT.1.8. 
                The selection for "no other schemes"
                was added in case the algorithms that IPsec requires are the TSF's only use of key establishment.</h:p>
              The text of the requirement is replaced with:
              <h:br/>
              <h:br/>
              The
              <h:b>application</h:b>
              shall
              <h:b>[selection:<h:i><h:ul><h:li>invoke platform-provided functionality</h:li> <h:li>implement functionality</h:li></h:ul></h:i>]</h:b>
              to
              
              perform cryptographic key establishment in accordance with a specified cryptographic key establishment method:
              <h:ul>
                <h:li>
                  <h:b>[Elliptic curve-based key establishment schemes] that meet the following: [NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography”]</h:b>
                </h:li>
              </h:ul>
              [<h:b>selection:</h:b>
              <h:i>
                <h:ul>
                  <h:li><h:b>[RSA-based key establishment schemes]</h:b> that meet the following: <h:b>[NIST Special Publication 800-56B, “Recommendation for Pair-Wise Key Establishment Schemes Using Integer Factorization Cryptography”]</h:b></h:li>
                  <h:li><h:b>[FFC Schemes using “safe-prime” groups]</h:b> that meet the following: <h:b>‘NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography”</h:b> and [<h:b>selection:</h:b> RFC 3526, RFC 7919]</h:li>
                  <h:li>Module-Lattice-Based Key-Encapsulation Mechanism Standard using the parameter set ML-KEM-1024 that meets the following: [FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard]</h:li>
                  <h:li>
                    <h:b>no other key establishment schemes</h:b>
                  </h:li>
                </h:ul>
              </h:i>].
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-key-est']">
                <f-element id="fel-key-est">
                  <title><h:p>
                      The application shall 
                       <selectables><selectable id="FCS_CKM.2_1">invoke platform-provided functionality</selectable><selectable id="FCS_CKM.2_2">implement functionality</selectable></selectables> to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method:</h:p> <h:ul><h:li><h:b>[Elliptic curve-based key establishment schemes] that meets the following: [NIST Special Publication 800-56A, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography”]</h:b></h:li></h:ul> <h:b>and</h:b><h:p><selectables linebreak="yes"><selectable id="FCS_CKM.2_3"><h:b>[RSA-based key establishment schemes]</h:b> that meets the following: <h:b>[NIST Special Publication 800-56B, “Recommendation for Pair-Wise Key Establishment Schemes Using Integer Factorization Cryptography”]</h:b></selectable><selectable id="FCS_CKM.2_4"><h:b>[FFC Schemes using “safe-prime” groups]</h:b> that meet the following: <h:b>‘NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography”</h:b> and <selectables><selectable id="FCS_CKM.2_5">RFC 3526</selectable><selectable id="FCS_CKM.2_6">RFC 7919</selectable></selectables> </selectable><selectable id="FCS_CKM.2_7">Module-Lattice-Based Key-Encapsulation Mechanism Standard using the parameter set ML-KEM-1024 that meets the following: [FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard]</selectable><selectable id="FCS_CKM.2_8"><h:b>no other key establishment schemes</h:b></selectable></selectables> </h:p>.</title>
                  <note role="application">
                    <h:p>The ST author shall select all key establishment schemes used for the selected cryptographic protocols. TLS requires cipher suites that use RSA-based key establishment schemes.<h:p/>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.<h:p/>The elliptic curves used for the key establishment scheme shall correlate with the curves specified in FCS_CKM.1.1/AK.<h:p/>The domain parameters used for the finite field-based key establishment scheme are specified by the key generation according to FCS_CKM.1.1/AK.<h:p/>As support is expanded for CNSA 2.0, CNSA 1.0 will be removed as an selection in a future update.</h:p>
                  </note>
                  <aactivity>
                    <TSS>
                      <h:p>The evaluator shall ensure that the supported key establishment schemes claimed in the TSS correspond to the key generation schemes identified in FCS_CKM.1.1/AK. If the ST specifies more than one scheme, the evaluator shall examine the TSS to verify that it identifies the usage for each scheme.<h:p/>If the ST selects "<h:b>invoke platform-provided functionality</h:b>," then the evaluator shall examine the TSS to verify that it describes how the key establishment functionality is invoked and that the invocation matches the algorithm selection for each supported platform. The evaluator shall confirm the invocation of the platform is using non-deprecated functions provided by the platform(s).</h:p>
                    </TSS>
                    <Guidance>
                      <h:p>The evaluator shall verify that the operational guidance instructs the administrator how to configure the TOE to use the selected key establishment scheme(s) if configuration is required.</h:p>
                    </Guidance>
                    <Tests><h:p>Evaluation Activity Note: 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.</h:p> <h:p><h:b>Key Establishment Schemes</h:b> The evaluator shall verify the implementation of the key establishment schemes supported by the TOE using the applicable tests below.</h:p> <h:p><h:b>SP800-56A Key Establishment Schemes</h:b></h:p> <h:p>The evaluator shall verify a TOE's implementation of SP800-56A key agreement 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.</h:p> <h:p><h:b>Function Test</h:b></h:p> <h:p>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 and 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.</h:p> <h:p>The evaluator shall obtain the DKM, the corresponding TOE’s public keys (static and/or ephemeral), the MAC tag(s), and any inputs used in the KDF, such as the Other Information <h:i>(OtherInfo)</h:i> and TOE ID fields.</h:p> <h:p>If the TOE does not use a KDF defined in SP 800-56A, the evaluator shall obtain only the public keys and the hashed value of the shared secret.</h:p> <h:p>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.</h:p> <h:p>If key confirmation is supported, the TSF shall perform the above for each implemented approved MAC algorithm.</h:p> <h:p><h:b>Validity Test</h:b></h:p> <h:p>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 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 OtherInfo and TOE ID fields.</h:p> <h:p>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 OtherInfo field, 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 ensure that the TOE detects errors in the public key validation function and/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).</h:p> <h:p>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 obtained by using a known good implementation verifying that the TOE detects these errors.</h:p> <h:p><h:b>SP800-56B Key Establishment Schemes</h:b></h:p> <h:p>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.</h:p> <h:p>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:</h:p> <h:p><h:div class="indent">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.</h:div></h:p> <h:p>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:</h:p> <h:p><h:div class="indent">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 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.</h:div></h:p> <h:p>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.</h:p> <h:p><h:b>FFC Schemes using “safe-prime” groups</h:b></h:p> <h:p>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_DIT_EXT.1 that uses safe-prime groups. This test must be performed for each safe-prime group that each protocol uses.</h:p> <h:p><h:b>ML-KEM Key Establishment Schemes</h:b></h:p> <h:p>To test encapsulation the evaluator shall 10x input to the internal Encaps function a random 32-byte string and an encapsulation key. Verify the returned cipher text and shared secret is correct using a known good implementation. Here internal refers to the TOE’s implementation of the function ML-KEM.Encaps_internal(-,-) as described in FIPS.203.</h:p>To test decapsulation the evaluator shall 10x input to the internal Decaps function a cipher text and decapsulation key. Verify the returned shared secret is correct using a known good implementation. The tests should include a mix of valid and invalid/garbled cipher texts. Here internal refers to the TOE’s implementation of the function ML-KEM.Decaps_internal(-,-) as described in FIPS.203.</Tests>
                  </aactivity>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
          <!-- FCS_CKM_EXT.1 Cryptographic Key Generation Services -->
          <base-sfr-spec cc-id="fcs_ckm_ext.1" id="app-fcs-ckm-ext-1" title="Cryptographic Key Generation Services">
            <consistency-rationale>The ST author is instructed to make specific selections at minimum to
              address VPN client requirements; specifically, since key generation
              services are required in some capacity in order to support VPN
              functionality, the ST author loses the choice of stating that the
              application does not have any key generation functionality.
              Additionally, this behavior is selection-based in the App PP but is made
              mandatory since it is required for VPN client functionality.</consistency-rationale>
            <description>
              <h:p>This selection differs from its definition in the App PP by
                removing the selection for “generate no asymmetric cryptographic keys” for this PP-Module because a VPN client
                TOE will either perform its own key generation or interface with the underlying platform to provide this 
                service, either of which causes FCS_CKM.1/AK to be claimed.</h:p>
              The text of the requirement is replaced with:
              <h:br/>
              <h:br/>
              The application shall [<h:b>selection:</h:b>
              <h:ul>
                <h:i>
                  <h:li>invoke platform-provided functionality for asymmetric key generation</h:li>
                  <h:li>implement asymmetric key generation</h:li>
                </h:i>
              </h:ul>].
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-asym-key-gen']">
                <f-element id="fel-asym-key-gen">
                  <title>The application shall <selectables linebreak="yes"><selectable id="sel_invoke_genkey">invoke platform-provided functionality for asymmetric key generation</selectable><selectable id="sel_impl_genkey">implement asymmetric key generation</selectable></selectables>.</title>
                  <note role="application">If "<h:b>implement asymmetric key generation</h:b>" or "<h:b>invoke platform-provided functionality for asymmetric key generation</h:b>" is selected, then FCS_CKM.1/AK must be claimed in the ST.</note>
                  <aactivity>
                    <TSS>
                      <h:p>The evaluator shall examine the TSS to verify that it describes whether the TSF has functions that require the use of asymmetric key generation services, and whether these services are implemented within the TOE boundary or invoked by the TSF from its operational environment.<h:p/>Conditional: If the ST claims "<h:b>generate no asymmetric keys</h:b>," the evaluator shall ensure that the TOE does not have any functions that would require asymmetric key generation (for example, because it does not use asymmetric keys for any purpose or because the keys that it does use are generated elsewhere and imported into it as part of initial setup).</h:p>
                    </TSS>
                    <Guidance>
                      <h:p>None.</h:p>
                    </Guidance>
                    <Tests>
                      <h:p>None.</h:p>
                    </Tests>
                  </aactivity>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
          <!-- FCS_COP.1/SKC Cryptographic Operation - Encryption/Decryption -->
          <base-sfr-spec cc-id="fcs_cop.1" id="app-fcs-cop-1-skc" title="Cryptographic Operation - Encryption/Decryption" iteration="SKC">
            <consistency-rationale>The ST author is instructed to make specific selections at minimum to
              address VPN client requirements; the SFR behavior itself is
              unmodified.</consistency-rationale>
            <description>
              <h:p>This SFR is selection-based in the Base-PP and remains selection-based here because
                this PP-Module allows for the possibility that the TSF relies on platform-provided
                cryptographic algorithm services for its own implementation of IPsec. However, if
                the TSF does claim this SFR to support IPsec, the ST author must select at minimum
                AES-GCM for consistency
                with the relevant IPsec claims (FCS_IPSEC_EXT.1.4 and FCS_IPSEC_EXT.1.6 require 
                AES-GCM). The "no other modes" selection is added
                for the case where no AES claims need to be made beyond what is mandated for IPsec.</h:p>
              The text of the requirement is replaced with:
              <h:br/>
              <h:br/>
              The
              <h:b>application</h:b>
              shall
              <h:b>[selection:<h:i> perform, invoke the platform to perform</h:i>]</h:b>
              [<h:i>encryption and decryption</h:i>] in accordance with a specified cryptographic algorithm
              <h:b><h:ul><h:li>AES-CBC (as defined in NIST SP 800-38A) mode</h:li> <h:li>AES-GCM (as defined in NIST SP 800-38D) mode</h:li></h:ul> and </h:b>
              [<h:b>selection:</h:b>
              <h:i>
                <h:ul>
                  <h:li>AES-XTS (as defined in NIST SP 800-38E) mode</h:li>
                  <h:li>AES-CCM (as defined in NIST SP 800-38C) mode</h:li>
                  <h:li>AES-CTR (as defined in NIST SP 800-38A) mode</h:li>
                  <h:li>
                    <h:b>no other modes</h:b>
                  </h:li>
                </h:ul>
              </h:i>] and cryptographic key size of [<h:i>256-bits</h:i>].
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-sym-encrypt']">
                <f-element id="fel-sym-encrypt">
                  <title>The <h:b>application</h:b> shall <selectables><selectable id="FCS_COP.1/SKC_1">perform</selectable><selectable id="FCS_COP.1/SKC_2">invoke the platform to perform</selectable></selectables> [ <h:i>encryption and decryption</h:i> ] in accordance with a specified cryptographic algorithm <h:b><h:ul><h:li>AES-CBC (as defined in NIST SP 800-38A) mode</h:li> <h:li>AES-GCM (as defined in NIST SP 800-38D) mode</h:li></h:ul> and</h:b><selectables linebreak="yes"><selectable id="sel_aes_xts">AES-XTS (as defined in NIST SP 800-38E) mode</selectable><selectable id="sel_aes_ccm">AES-CCM (as defined in NIST SP 800-38C) mode</selectable><selectable id="sel_aes_ctr">AES-CTR (as defined in NIST SP 800-38A) mode</selectable><selectable id="FCS_COP.1/SKC_3"><h:b>no other modes</h:b></selectable></selectables> and cryptographic key size of [ <h:i>256-bits</h:i> ].</title>
                  <note role="application">
                    <h:p>This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.<h:p/>For the selection, the ST author should choose the mode or modes in which AES operates.<h:p/>It is expected that symmetric keys will be generated or imported by the TSF as a dependency on this function, so FCS_CKM.1/SK must be claimed when this SFR is claimed. FCS_SNI_EXT.1 must also be claimed to define what, if any, salts the cryptographic algorithm implementation uses.</h:p>
                  </note>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
        </section>
        <section title="Class FTP: Trusted Path/Channels" id="ap-m-ftp">
          <!-- FTP_DIT_EXT.1 Protection of Data in Transit -->
          <base-sfr-spec cc-id="ftp_dit_ext.1" id="app-ftp-dit-ext-1" title="Protection of Data in Transit">
            <consistency-rationale>This PP-Module requires the existing selection of IPsec to be chosen to satisfy the dependency on this PP-Module</consistency-rationale>
            <description>
              <h:p>This SFR is identical to what is defined in the App PP except that the selection for IPsec is
                mandated, the ST author is forced to select the "encrypt all transmitted sensitive data" option, and
                the options for invoking platform-provided IPsec functionality have been removed. Since it is possible for a conformant TOE to implement IPsec while relying on the platform for some other protocol (e.g., using platform-provided TLS to obtain IPsec configuration from a gateway), the other platform-provided protocol selections remain.  
                Additionally, since it is possible that a conformant TOE may not implement any encryption protocols other than 
                IPsec, “no other protocols” is provided as a selectable option in the list of supported protocols.</h:p>
              The text of the requirement is replaced with:
              <h:br/>
              <h:br/>
              The application shall [<h:b>selection:</h:b>
              <h:i>
                <h:ul>
                  <h:li>
                    encrypt all transmitted [<h:i>sensitive data</h:i>] with
                    <h:b>IPsec as defined in the PP-Module for VPN Client and </h:b>
                    [<h:b>selection:</h:b>
                    <h:ul>
                      <h:li>HTTPS as a client in accordance with FCS_HTTPS_EXT.1 and FCS_HTTPS_EXT.2</h:li>
                      <h:li>HTTPS as a server in accordance with FCS_HTTPS_EXT.1</h:li>
                      <h:li>HTTPS as a server using mutual authentication in accordance with FCS_HTTPS_EXT.1 and FCS_HTTPS_EXT.2</h:li>
                      <h:li>TLS as a server as defined in the Functional Package for TLS and also supports functionality for [<h:b>selection:</h:b> mutual authentication, none]</h:li>
                      <h:li>TLS as a client as defined in the Functional Package for TLS</h:li>
                      <h:li>DTLS as a server as defined in the Functional Package for TLS and also supports functionality for [<h:b>selection:</h:b> mutual authentication, none]</h:li>
                      <h:li>DTLS as a client as defined in the Functional Package for TLS</h:li>
                      <h:li>SSH as defined in the Functional Package for Secure Shell</h:li>
                      <h:li>
                        <h:b>no other functions</h:b>
                      </h:li>
                    </h:ul>] for [<h:b>assignment:</h:b>
                    function(s)] using certificates as defined in the Functional Package for X.509
                  </h:li>
                  <h:li>invoke platform-provided functionality to encrypt all transmitted sensitive data with [<h:b>selection:</h:b> HTTPS, TLS, DTLS, SSH] for [<h:b>assignment:</h:b> function(s)] using certificates as defined in the Functional Package for X.509</h:li>
                </h:ul>
              </h:i>] between itself and another trusted IT product.
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-transmit']">
                <f-element id="fel-transmit">
                  <title>The application shall <selectables linebreak="yes"><selectable id="FTP_DIT_EXT.1_1">encrypt all transmitted [<h:i>sensitive data</h:i>] with <h:b>IPsec as defined in the PP-Module for VPN Client, version 3.0 and</h:b><selectables><selectable id="sel_all_https_cl">HTTPS as a client in accordance with FCS_HTTPS_EXT.1 and FCS_HTTPS_EXT.2</selectable><selectable id="sel_all_https_sv">HTTPS as a server in accordance with FCS_HTTPS_EXT.1</selectable><selectable id="sel_all_https_ma">HTTPS as a server using mutual authentication in accordance with FCS_HTTPS_EXT.1 and FCS_HTTPS_EXT.2</selectable><selectable id="sel_all_tlss">TLS as a server as defined in the <h:a href="https://www.niap-ccevs.org/protectionprofiles/465">Functional Package for TLS</h:a> and also supports functionality for <selectables><selectable id="FTP_DIT_EXT.1_2">mutual authentication</selectable><selectable id="FTP_DIT_EXT.1_3">none</selectable></selectables> </selectable><selectable id="sel_all_tlsc">TLS as a client as defined in the <h:a href="https://www.niap-ccevs.org/protectionprofiles/465">Functional Package for TLS</h:a></selectable><selectable id="sel_all_dtlss">DTLS as a server as defined in the <h:a href="https://www.niap-ccevs.org/protectionprofiles/465">Functional Package for TLS</h:a> and also supports functionality for <selectables><selectable id="FTP_DIT_EXT.1_4">mutual authentication</selectable><selectable id="FTP_DIT_EXT.1_5">none</selectable></selectables> </selectable><selectable id="sel_all_dtlsc">DTLS as a client as defined in the <h:a href="https://www.niap-ccevs.org/protectionprofiles/465">Functional Package for TLS</h:a></selectable><selectable id="sel_all_ssh">SSH as defined in the <h:a href="https://www.niap-ccevs.org/protectionprofiles/515">Functional Package for Secure Shell</h:a></selectable><selectable id="FTP_DIT_EXT.1_6"><h:b>no other protocols</h:b></selectable></selectables> for <assignable>function(s)</assignable> using certificates as defined in the <h:a href="https://www.niap-ccevs.org/protectionprofiles/511">Functional Package for X.509</h:a></selectable><selectable id="FTP_DIT_EXT.1_8">invoke platform-provided functionality to encrypt all transmitted sensitive data with <selectables><selectable id="FTP_DIT_EXT.1_9">HTTPS</selectable><selectable id="FTP_DIT_EXT.1_10">TLS</selectable><selectable id="FTP_DIT_EXT.1_11">DTLS</selectable><selectable id="FTP_DIT_EXT.1_12">SSH</selectable></selectables> for <assignable>function(s)</assignable> using certificates as defined in the <h:a href="https://www.niap-ccevs.org/protectionprofiles/511">Functional Package for X.509</h:a></selectable></selectables> between itself and another trusted IT product.</title>
                  <ext-comp-def-title>
                    <title>The application shall <selectables onlyone="yes" linebreak="yes"><selectable>not transmit any <selectables onlyone="yes"><selectable>data </selectable> <selectable>sensitive data </selectable> </selectables> </selectable> <selectable>encrypt all transmitted <selectables onlyone="yes"><selectable>sensitive data </selectable> <selectable>data </selectable> </selectables> with <assignable>trusted protocol </assignable> for <assignable>function(s) </assignable></selectable> <selectable>invoke platform-provided functionality to encrypt all transmitted sensitive data with <assignable>trusted protocol </assignable> for <assignable>function(s) </assignable></selectable> <selectable>invoke platform-provided functionality to encrypt all transmitted data with <assignable>trusted protocol </assignable> for <assignable>function(s) </assignable></selectable> </selectables> between itself and another trusted IT product. </title>
                  </ext-comp-def-title>
                  <note role="application">
                    <h:p>Encryption is not required for applications transmitting data that is not sensitive.<h:p/>If "<h:b>not transmit any...</h:b>" is selected, no other option can be selected.<h:p/>If "<h:b>not transmit any...</h:b>" is NOT selected, it is possible to select more than one of the other options to encrypt data for a specific cryptographic function (e.g., application encrypts management data using SSH AND application invokes platform-provided functionality to encrypt syslog data using TLS OR application encrypts syslog data using TLS. Protocol selections and function assignments should be made to cover all data/sensitive data.<h:p/>If "<h:b>encrypt all transmitted...</h:b>" is selected and "<h:b>TLS</h:b>" or "<h:b>DTLS</h:b>" as a client or server is selected, then corresponding components fromFunctional Package for Transport Layer Security (TLS), version 2.1 must be selected.<h:p/>If "<h:b>encrypt all transmitted...</h:b>" is selected and any claim involving HTTPS is selected, then FCS_HTTPS_EXT.1 and potentially FCS_HTTPS_EXT.2 is required, as indicated by the chosen selections.<h:p/>If "<h:b>encrypt all transmitted...</h:b>" is selected and "<h:b>SSH</h:b>" is selected, then the TSF shall be validated against the <h:a href="https://www.niap-ccevs.org/protectionprofiles/459">Functional Package for Secure Shell</h:a>.<h:p/>If "<h:b>encrypt all transmitted...</h:b>" is selected and "<h:b>IPsec</h:b>" is selected, then the TSF must claim conformance to a <h:i>PP-Configuration that includes the VPN Client PP-Module, version 3.0.</h:i> <h:p/>If "<h:b>encrypt all transmitted...</h:b>" is selected, FCS_CKM.2 and all iterations of FCS_COP.1 must be claimed.<h:p/>Claims from the <h:a href="https://www.niap-ccevs.org/protectionprofiles/511">
							Functional Package for X.509</h:a> are only required to the extent that they are needed to support the functionality required by the trusted protocols that are claimed. For example, if the TOE supports HTTPS as a server but does not support mutual authentication, then for this interface the TSF would only present certificates in accordance with the requirements of the package and not validate presented certificates.<h:p/>If the TSF implements a protocol that requires the validation of a certificate presented by an external entity, FIA_X509_EXT.1 and FIA_X509_EXT.2 will be claimed. FIA_TSM_EXT.1 may also be claimed if the TSF implements its own trust store. Note that FIA_X509_EXT.1 and FIA_X509_EXT.2 have selections for invocation of platform-provided functionality, so it is expected that these claims are made and tested even when the trusted protocol is implemented by the TOE platform.<h:p/>If the TSF implements a protocol that requires the presentation of any certificates to an external entity, FIA_XCU_EXT.2 from <h:a href="https://www.niap-ccevs.org/protectionprofiles/511">
							Functional Package for X.509</h:a> will be claimed. FIA_X509_EXT.3 from <h:a href="https://www.niap-ccevs.org/protectionprofiles/511">
							Functional Package for X.509</h:a> will also be claimed, along with any applicable dependencies, depending on how the certificates presented by the TOE are obtained.<h:p/>If the TSF implements a protocol that does not require presenting or validating X.509 certificates, no claims from the <h:a href="https://www.niap-ccevs.org/protectionprofiles/511">
							Functional Package for X.509</h:a> are required.</h:p>
                  </note>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
        </section>
      </modified-sfrs>
      <!-- 5.3.2 Additional SFRs -->
      <additional-sfrs>
        <section id="app-audit-table" title="Auditable Events for App PP Additional SFRs">
          <audit-table id="app-additional" table="tab-app-additional" title="Auditable Events for App PP Additional SFRs"/>
        </section>
        <section title="Class FCS: Cryptographic Support" id="ap-a-fcs">
          <!-- FCS_CKM.6 Cryptographic Key Destruction -->
          <f-component cc-id="fcs_ckm.6" id="ap-fcs-ckm-6" name="Cryptographic Key Destruction">
            <consistency-rationale>This PP-Module adds a requirement for key destruction, which is new
              functionality when compared to the Base-PP but does not interfere
              with its existing security functions.</consistency-rationale>
            <comp-lev>requires the TSF to destroy key data when no longer required.</comp-lev>
            <management>No specific management functions are identified.</management>
            <audit>There are no auditable events foreseen.</audit>
            <dependencies>No dependencies.</dependencies>
            <f-element id="ap-fcs-ckm-6e1">
              <title>
                The
                <h:b>
                  <selectables>
                    <selectable id="fcs_ckm.6.1_1">TOE</selectable>
                    <selectable id="fcs_ckm.6.1_2">TOE platform</selectable>
                  </selectables>
                </h:b>
                shall destroy
                <assignable>list of cryptographic keys (including keying material)</assignable>
                when
                <selectables>
                  <selectable id="fcs_ckm.6.1_4">no longer needed</selectable>
                  <selectable id="fcs_ckm.6.1_6">
                    <assignable>other circumstances for key or keying material destruction</assignable>
                  </selectable>
                </selectables>.
              </title>
            </f-element>
            <f-element id="fcs_ckm-6-2">
              <title>
                The TSF shall destroy cryptographic keys and keying material specified by FCS_CKM.6.1 in
                accordance with a specified cryptographic key destruction method
                <assignable>cryptographic key destruction method</assignable>
                that meets the following:
                <assignable>list of standards</assignable>.
              </title>
              <note role="application">
                Any security related information (such as keys, authentication data, and
                passwords) must be zeroized when no longer in use to prevent the disclosure or
                modification of security critical data.
                <h:br/>
                <h:br/>
                The zeroization indicated above applies to each intermediate storage area for
                plaintext key or CSP data (i.e., any storage, such as memory buffers, that is included in
                the path of such data) upon the transfer of the key or CSP to another location.
                <h:br/>
                <h:br/>
                In practice, the TOE will not implement all of the functionality associated with
                the requirement, since if it performs zeroization at all it will be by invoking
                platform interfaces to perform the storage location clear or overwrite function. The
                ST author should select "TOE" when, for at least one of the keys needed to meet
                the requirements of this PP-Module, the TOE manipulates (reads, writes) the data
                identified in the requirement and thus needs to ensure that those data are
                cleared. In these cases, it is sufficient for the TOE to invoke the correct
                underlying functions of the host to perform the zeroization—it does not imply
                that the TOE has to include a kernel-mode memory driver to ensure the data are
                zeroized. The ST author should select "TOE platform" when native OS functionality is used to perform the key destruction.
                <h:br/>
                <h:br/>
                In the likely event that some of the data are manipulated by the TOE and other
                data are manipulated entirely by the platform, the ST author must select both
                options.
              </note>
              <aactivity>
                <TSS>
                  The evaluator shall ensure that all plaintext secret and private cryptographic keys and CSPs (whether
			manipulated by the TOE or exclusively by the platform) are identified in the VPN client ST's TSS, and that
			they are accounted for by the EAs in this section.
                  <h:br/>
                  <h:br/>
                  <h:b>Requirement met by the platform:</h:b>
                  <h:br/>
                  <h:br/>
                  The evaluator shall check to ensure the TSS describes each of the secret keys (keys used for
                  	symmetric encryption), private keys, and CSPs used to generate keys that are not otherwise covered
                  	by the FCS_CKM.6 requirement levied on the TOE.
                  <h:br/>
                  <h:br/>
                  For each platform listed in the ST, the evaluator shall examine the TSS of the ST of the platform to
                  	ensure that each of the secret keys, private keys, and CSPs used to generate the keys listed above are
                  	covered.
                  <h:br/>
                  <h:br/>
                  <h:b>Requirement met by the TOE:</h:b>
                  <h:br/>
                  <h:br/>
                  The evaluator shall check to ensure the TSS describes when each of the plaintext keys are cleared (e.g.,
			system power off, disconnection of an IPsec connection, when no longer needed by the VPN channel per
			the protocol); and the type of clearing procedure that is performed (cryptographic erase, overwrite with
			zeros, overwrite three or more times by a different alternating pattern, overwrite with random pattern,
			or block erase). 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 (for example, "secret keys stored on flash are cleared by overwriting once with zeros,
			while secret keys stored on the internal persistent storage device are cleared by overwriting three times
			with a random pattern that is changed before each write").
                  <h:br/>
                  <h:br/>
                </TSS>
                <Guidance>There are no guidance EAs for this requirement.<h:br/><h:br/></Guidance>
                <Tests>
                  For each key clearing situation described in the TSS, the evaluator shall repeat the following test.
                  <testlist>
                    <test>The evaluator shall use appropriate combinations of specialized OE and development tools (debuggers, simulators, etc.) for the TOE and instrumented TOE builds to test that keys are cleared correctly, including all intermediate copies of the key that may have been created internally by the TOE during normal cryptographic processing with that key. <h:br/>  <h:br/> Cryptographic TOE implementations in software shall be loaded and exercised under a debugger to perform such tests. The evaluator shall perform the following test for each key subject to clearing, including intermediate copies of keys that are persisted encrypted by the TOE: <h:br/>  <h:br/>  <h:ol type="1"><h:li>Load the instrumented TOE build in a debugger.</h:li> <h:li>Record the value of the key in the TOE subject to clearing.</h:li> <h:li>Cause the TOE to perform a normal cryptographic processing with the key from #1.</h:li> <h:li>Cause the TOE to clear the key.</h:li> <h:li>Cause the TOE to stop the execution but not exit.</h:li> <h:li>Cause the TOE to dump the entire memory footprint of the TOE into a binary file.</h:li> <h:li>Search the content of the binary file created in #6 for instances of the known key value from
  					                  #1.</h:li></h:ol>  <h:br/> The test succeeds if no copies of the key from #1 are found in step #7 above and fails otherwise. <h:br/>  <h:br/> The evaluator shall perform this test on all keys, including those persisted in encrypted form, to ensure intermediate copies are cleared.</test>
                  </testlist>
                </Tests>
              </aactivity>
            </f-element>
            <audit-event table="tab-app-additional">
              <audit-event-descr>Destruction of cryptographic key.</audit-event-descr>
              <audit-event-info>Identification of key.</audit-event-info>
            </audit-event>
          </f-component>
          <!-- FCS_CKM_EXT.2 Cryptographic Key Storage -->
          <f-component cc-id="fcs_ckm_ext.2" id="ap-fcs-ckm-ext-2" name="Cryptographic Key Storage" notnew="true">
            <consistency-rationale>This PP-Module adds a requirement for key storage, which is new
              functionality when compared to the Base-PP but does not interfere
              with its existing security functions.</consistency-rationale>
            <comp-lev>requires the TSF to securely store key data when not in use.</comp-lev>
            <management>No specific management functions are identified.</management>
            <audit>There are no auditable events foreseen.</audit>
            <dependencies>No dependencies.</dependencies>
            <f-element id="ap-fcs-ckm-ext-2e1">
              <title>
                The
                <selectables>
                  <selectable id="fcs_ckm_ext.2.1_1">VPN client</selectable>
                  <selectable id="fcs_ckm_ext.2.1_2">OS</selectable>
                </selectables>
                shall store persistent secrets and private keys
                when not in use in platform-provided key storage.
              </title>
              <note role="application">This requirement ensures that persistent secrets and private keys are stored
                securely when not in use. This differs from FCS_STO_EXT.1 in the Base-PP, which
                only applies to secure storage of administrative credentials. If some secrets or keys
                are manipulated by the TOE and others are manipulated by the platform, then
                both of the selections can be specified by the ST author.</note>
              <aactivity level="element">
                <TSS>
                  Regardless of whether this requirement is met by the TOE or the TOE platform, the evaluator shall check
			the TSS to ensure that it lists each persistent secret (credential, secret key) and private key needed to
			meet the requirements in the ST. For each of these items, the evaluator shall confirm that the TSS lists for
			what purpose it is used, and how it is stored. The evaluator shall then perform the following actions:
                  <h:br/>
                  <h:br/>
                  <h:b>Persistent secrets and private keys manipulated by the platform:</h:b>
                  <h:br/>
                  <h:br/>
                  For each platform listed in the ST, the evaluator shall examine the ST of the platform to ensure that the
			persistent secrets and private keys listed as being stored by the platform in the VPN client ST are identified
			as being protected in that platform's ST
                  <h:br/>
                  <h:br/>
                  <h:b>Persistent secrets and private keys manipulated by the TOE:</h:b>
                  <h:br/>
                  <h:br/>
                  The evaluator shall review the TSS to determine that it makes a case that, for each item listed as being
			manipulated by the TOE, it is not written unencrypted to persistent memory, and that the item is stored
			by the platform.
                  <h:br/>
                  <h:br/>
                </TSS>
                <Guidance>There are no guidance EAs for this requirement.<h:br/><h:br/></Guidance>
                <Tests>There are no test EAs for this requirement.</Tests>
              </aactivity>
            </f-element>
            <audit-event table="tab-app-additional"/>
          </f-component>
        </section>
      </additional-sfrs>
      <con-toe>If this PP-Module is used to extend the App PP, the TOE type for the overall TOE is still a software
		application. The TOE boundary is made more specific by defining the TOE as a specific type of
		application.</con-toe>
      <con-sec-prob>The threats and assumptions defined by this PP-Module (see sections 3.1 and 3.2) supplement those
		defined in the App PP as follows:</con-sec-prob>
      <con-obj>The security objectives defined by this PP-Module (see sections 4.1 and 4.2) supplement those defined
		in the App PP as follows:</con-obj>
      <con-op-en/>
      <con-mod ref="T.UNAUTHORIZED_ACCESS">The threat of an attacker gaining access to a network interface or data
		that is transmitted over it is consistent with the T.NETWORK_ATTACK and
		T.NETWORK_EAVESDROP threats in the App PP.</con-mod>
      <con-mod ref="T.TSF_CONFIGURATION">The threat of a misconfigured VPN client is consistent with the
		T.LOCAL_ATTACK threat in the App PP.</con-mod>
      <con-mod ref="T.USER_DATA_REUSE">Inadvertent disclosure of user data to an unauthorized recipient is
		consistent with the T.NETWORK_EAVESDROP threat in the App PP.</con-mod>
      <con-mod ref="T.TSF_FAILURE">A failure of TSF functionality could compromise the local system, which is
		consistent with the T.LOCAL_ATTACK threat in the App PP.</con-mod>
      <con-mod ref="A.NO_TOE_BYPASS">The A.NO_TOE_BYPASS assumption assumes that the OE is configured in such a manner that the only network route
		to the protected network is through the TOE. This does not conflict with
		the App PP because the App PP makes no assumptions about the network
		architecture in which the TOE is deployed.</con-mod>
      <con-mod ref="A.PHYSICAL">The assumption that physical security is provided by the environment is
		not explicitly stated in the App PP but is consistent with the A.PLATFORM
		assumption defined in the App PP, which expects the computing platform
		to be trusted.</con-mod>
      <con-mod ref="A.TRUSTED_CONFIG">The assumption that personnel responsible for the TOE’s configuration are
		trusted to follow the guidance is consistent with the A.PROPER_ADMIN
		defined in the App PP.</con-mod>
      <con-mod ref="OE.NO_TOE_BYPASS">This objective addresses behavior that is out of scope of the App PP
		and does not define an environment that is globally applicable to all
		software applications.</con-mod>
      <con-mod ref="OE.PHYSICAL">This is part of satisfying OE.PLATFORM as defined in the App PP
		because physical security is required for the underlying platform to
		be considered ‘trustworthy’.</con-mod>
      <con-mod ref="OE.TRUSTED_CONFIG">The expectation of trusted configuration is consistent with
		OE.PROPER_USER and OE.PROPER_ADMIN in the App PP.</con-mod>
      <con-mod ref="ap-fcs-ckm-1-ak">The ST author is instructed to make specific selections at minimum to
		address VPN client requirements; the SFR behavior itself is unmodified.
		Additionally, this behavior is selection-based in the App PP but is made
		mandatory since it is required for VPN client functionality.</con-mod>
      <con-mod ref="ap-fcs-ckm-2">The ST author is instructed to make specific selections at minimum to
		address VPN client requirements and is modified to include Diffie-Hellman
		group 14 as an additional supported method for key establishment.</con-mod>
      <con-mod ref="ap-fcs-ckm-1">The ST author is instructed to make specific selections at minimum to
		address VPN client requirements; specifically, since key generation services
		are required in some capacity in order to support VPN functionality, the ST
		author loses the choice of stating that the application does not have any key
		generation functionality. Additionally, this behavior is selection-based in the
		App PP but is made mandatory since it is required for VPN client
		functionality</con-mod>
      <con-mod ref="ap-fcs-cop-1-skc">The ST author is given guidance to make specific selections if this
		selection-based SFR is claimed in support of IPsec functionality. The SFR behavior itself
		is unmodified.</con-mod>
      <con-mod ref="ap-fia-x509-ext-2">This PP-Module adds IPsec as a new trusted protocol where x.509 certificate
		authentication is used.</con-mod>
      <con-mod ref="ap-ftp-dit-ext-1">This PP-Module is for the VPN client application and does not maintain any
		sensitive data of its own. Therefore, there is no need to protect (through
		FTP_DIT_EXT.1.1) VPN-client-specific data.</con-mod>
      <con-mod ref="ap-fcs-ckm-ext-2">This PP-Module adds a requirement for key storage, which is new
		functionality when compared to the App PP but does not interfere with its existing security functions.</con-mod>
      <con-mod ref="ap-fcs-ckm-6">This PP-Module adds a requirement for key destruction, which is new
		functionality when compared to the App PP but does not interfere with its
		existing security functions.</con-mod>
      <con-mod ref="fcs-ckm-1-vpn">This SFR defines the method of key generation for IKE peer authentication,
		which is a function that does not interfere with the functionality defined in the App PP.</con-mod>
      <con-mod ref="fcs-ipsec-ext-1">This SFR defines the VPN client’s IPsec implementation, which is added
		functionality that does not interfere with the application functions.</con-mod>
      <con-mod ref="fdp-rip-2">The requirement to protect against reuse of residual data is a property of
		the VPN client behavior and does not impact the general application functionality.</con-mod>
      <con-mod ref="fmt-smf-1-vpn">The ability to configure the VPN client behavior does not affect whether the
		application as a whole can perform its security functions.</con-mod>
      <con-mod ref="fpt-tst-ext-1-vpn">Self-testing of the VPN client functionality does not impact the ability of the
		application to perform its security functions.</con-mod>
      <con-mod ref="fau-gen-1-vpn">Audit data generated by the VPN client does not interfere with application
		functionality. For cases where auditing is performed by the TOE platform, a
		software application is installed on a general-purpose OS or
		mobile device, both of which can reasonably be expected to provide audit
		functionality.</con-mod>
      <con-mod ref="fau-sel-1-vpn">The ability to suppress the generation of certain audit data related to VPN
		activity does not interfere with the ability of the application to satisfy its security functionality.</con-mod>
      <con-mod ref="fdp-vpn-ext-1">The ability of the VPN client to prevent split tunneling of IPsec traffic
		requires it to have hooks into lower-level OS behavior, but there are no
		requirements in the App PP that would prevent this functionality from being supported.</con-mod>
      <con-mod ref="fia-bma-ext-1">This SFR relates to biometric authentication, which does not conflict with the App PP because it may be a function offered by the 
        OE in which a TOE defined by the App PP is deployed.</con-mod>
      <con-mod ref="fpf-mfa-ext-1">This SFR relates specifically to the handling of traffic that is used for the
        establishment of IPsec connections.</con-mod>
      <con-mod ref="fcs-eap-ext-1">This SFR defines an additional cryptographic protocol that is beyond the scope of those defined in the App PP but 
	      does not prevent any App PP functionality
        from being implemented.</con-mod>
      <con-mod ref="fia-psk-ext-1">This SFR defines the use of pre-shared keys, which is behavior that only
        relates to the establishment of IPsec connections.</con-mod>
      <con-mod ref="fia-psk-ext-2">This SFR relates to use of pre-shared keys, which is behavior that only
        applies to the establishment of IPsec connections.</con-mod>
      <con-mod ref="fia-psk-ext-3">This SFR relates to use of pre-shared keys, which is behavior that only
        applies to the establishment of IPsec connections.</con-mod>
      <con-mod ref="fia-psk-ext-4">This SFR relates to use of pre-shared keys, which is behavior that only
        applies to the establishment of IPsec connections.</con-mod>
      <con-mod ref="fia-psk-ext-5">This SFR relates to use of pre-shared keys, which is behavior that only
        applies to the establishment of IPsec connections.</con-mod>
    </base-pp>
    <!-- 5.4 MDM PP Security Functional Requirements Direction -->
    <base-pp id="bpp-mdm" name="Protection Profile for Mobile Device Management" product="Mobile Device Management" short="MDM" version="5.0">
      <git>
        <url>https://github.com/commoncriteria/mdm</url>
        <branch>v5.0</branch>
      </git>
      <url>https://github.com/commoncriteria/mdm</url>
      <sec-func-req-dir>In a PP-Configuration that includes the MDM PP, the VPN client is expected to rely on some of the
      security functions implemented by the OS as a whole and evaluated against the Base-PP.
      In this case, the following sections describe any modifications that the ST author must make to the SFRs
      defined in the Base-PP in addition to what is mandated by section 5.5.</sec-func-req-dir>
      <!-- 5.4.1 Modified SFRs -->
      <modified-sfrs>
        <section title="Class FCS: Cryptographic Support" id="mdm-m-fcs">
          <!-- FCS_CKM.1 Cryptographic Key Generation -->
          <base-sfr-spec cc-id="fcs_ckm.1" id="mdm-fcs-ckm-1" title="Cryptographic Key Generation">
            <consistency-rationale>The ST author is instructed to make specific selections at minimum to address VPN client requirements; the SFR behavior itself is unmodified.</consistency-rationale>
            <description>
              <h:p>This SFR is modified from its definition in the MDM PP by mandating the key generation algorithms that are required by this PP-Module in support of IPsec due to the mandated support for DH group 20 in FCS_IPSEC_EXT.1.8. Other selections may be chosen by the ST author as needed for parts of the TOE that are not specifically related to VPN client functionality. The selection for "no other key generation methods" was added in case the algorithms that IPsec requires are the TSF's only use of key generation.</h:p>
              The text of the requirement is replaced with:
              <h:br/>
              <h:br/>
              The TSF shall [<h:b>selection: </h:b>
              <h:i>
                <h:ul>
                  <h:li>invoke platform-provided functionality</h:li>
                  <h:li>implement functionality</h:li>
                </h:ul>
              </h:i>]
              to generate
              <h:b>asymmetric</h:b>
              cryptographic keys in accordance with a specified cryptographic key generation algorithm
              <h:b>
                <h:ul>
                  <h:li>
                    [ECC schemes] using [<h:i>“NIST curves” P-384 and [selection: P-521, no other curves]</h:i>]
                that meet the following: 
                [<h:i>FIPS PUB 186-5, “Digital Signature Standard (DSS),” Appendix A.2</h:i>]
                  </h:li>
                </h:ul>
              </h:b>
              and [<h:b>selection:</h:b>
              <h:i>
                <h:ul>
                  <h:li>
                    <h:b>[RSA schemes]</h:b>
                    using cryptographic key sizes of [<h:b>assignment: </h:b>
                    <h:i>3072-bit or greater</h:i>] that meet
                    the following: [FIPS PUB 186-5, "Digital Signature Standard (DSS)," Appendix A.1]
                  </h:li>
                  <h:li>
                    <h:b>[FFC Schemes]</h:b>
                    using [“safe-prime” groups] [<h:b>selection:</h:b>
                    <h:ul>
                      <h:li>MODP-3072</h:li>
                      <h:li>MODP-4096</h:li>
                      <h:li>MODP-6144</h:li>
                      <h:li>MODP-8192</h:li>
                      <h:li>ffdhe-3072</h:li>
                      <h:li>ffdhe-4096</h:li>
                      <h:li>ffdhe-6144</h:li>
                      <h:li>ffdhe-8192</h:li>
                    </h:ul>] that meet the following: 
                    [NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes
                    Using Discrete Logarithm Cryptography” and [<h:b>selection:</h:b>
                    RFC 3526, RFC 7919]]
                  </h:li>
                  <h:li>
                    <h:b>Leighton-Micali Signature</h:b>
                    Algorithm using the parameter sets
                    <h:ul>
                      <h:li>LMS_SHAKE_M24_H5</h:li>
                      <h:li>LMS_SHAKE_M24_H10</h:li>
                      <h:li>LMS_SHAKE_M24_H15</h:li>
                      <h:li>LMS_SHAKE_M24_H25</h:li>
                      <h:li>LMS_SHAKE_M32_H5</h:li>
                      <h:li>LMS_SHAKE_M32_H10</h:li>
                      <h:li>LMS_SHAKE_M32_H15</h:li>
                      <h:li>LMS_SHAKE_M32_H25</h:li>
                      <h:li>LMS_SHA256_M24_H5</h:li>
                      <h:li>LMS_SHA256_M24_H10</h:li>
                      <h:li>LMS_SHA256_M24_H15</h:li>
                      <h:li>LMS_SHA256_M24_H25</h:li>
                      <h:li>LMS_SHA256_M32_H5</h:li>
                      <h:li>LMS_SHA256_M32_H10</h:li>
                      <h:li>LMS_SHA256_M32_H15</h:li>
                      <h:li>LMS_SHA256_M32_H25</h:li>
                    </h:ul>] that meet the following: [NIST SP 800-208, "Recommendation for Stateful Hash-Based Signature Schemes"]
                  </h:li>
                  <h:li>
                    <h:b>eXtended Merkle Signature Scheme Algorithm</h:b>
                    using the parameter sets
                    <h:ul>
                      <h:li>XMSS-SHA2_10_192</h:li>
                      <h:li>XMSS-SHA2_16_192</h:li>
                      <h:li>XMSS-SHA2_20_192</h:li>
                      <h:li>XMSS-SHA2_10_256</h:li>
                      <h:li>XMSS-SHA2_16_256</h:li>
                      <h:li>XMSS-SHA2_20_256</h:li>
                      <h:li>XMSS-SHAKE_10_192</h:li>
                      <h:li>XMSS-SHAKE_16_192</h:li>
                      <h:li>XMSS-SHAKE_20_192</h:li>
                      <h:li>XMSS-SHAKE_10_256</h:li>
                      <h:li>XMSS-SHAKE_16_256</h:li>
                      <h:li>XMSS-SHAKE_20_256</h:li>
                    </h:ul>] bits that meets the following: [NIST SP 800-208, "Recommendation for Stateful Hash-Based Signature Schemes"]
                  </h:li>
                  <h:li>
                    <h:b>Module-Lattice-Based Key-Encapsulation Mechanism Standard</h:b>
                    using the parameter set ML-KEM-1024 
                    that meets the following: [FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard]
                  </h:li>
                  <h:li>
                    <h:b>Module-Lattice-Based Digital Signature Standard</h:b>
                    using the parameter set ML-DSA-87 
                    that meets the following [FIPS 204, Module-Lattice-Based Digital Signature Standard]
                  </h:li>
                  <h:li>
                    <h:b>no other key generation methods</h:b>
                  </h:li>
                </h:ul>
              </h:i>].
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-ckm-tsf-func']">
                <f-element id="fel-ckm-tsf-func">
                  <title>The TSF shall<h:b><selectables linebreak="yes"><selectable id="FCS_CKM.1_1">invoke platform-provided functionality</selectable><selectable id="FCS_CKM.1_2">implement functionality</selectable></selectables> </h:b> to generate <h:b>asymmetric</h:b> cryptographic keys in accordance with a specified cryptographic key generation algorithm<h:ul><h:li><h:b>[ECC schemes] using [<h:i>“NIST curves” P-384 and  <selectables><selectable id="FCS_CKM.1_3">P-521</selectable><selectable id="FCS_CKM.1_4">no other curves</selectable></selectables></h:i>] that meet the following: [<h:i>FIPS PUB 186-5, “Digital Signature Standard (DSS),” Appendix A.2</h:i>]</h:b></h:li></h:ul> <h:b>and</h:b><selectables linebreak="yes"><selectable id="FCS_CKM.1_5"><h:b>[RSA schemes]</h:b> using cryptographic key sizes of <assignable>3072 bits or greater</assignable> that meet the following: [<h:i>FIPS PUB 186-5, "Digital Signature Standard (DSS)," Appendix A.1</h:i>]</selectable><selectable id="FCS_CKM.1_7"><h:b>[FFC Schemes]</h:b> using [<h:i>“safe-prime” groups</h:i>] <selectables><selectable id="FCS_CKM.1_8">MODP-3072</selectable><selectable id="FCS_CKM.1_9">MODP-4096</selectable><selectable id="FCS_CKM.1_10">MODP-6144</selectable><selectable id="FCS_CKM.1_11">MODP-8192</selectable><selectable id="FCS_CKM.1_12">ffdhe-3072</selectable><selectable id="FCS_CKM.1_13">ffdhe-4096</selectable><selectable id="FCS_CKM.1_14">ffdhe-6144</selectable><selectable id="FCS_CKM.1_15">ffdhe-8192</selectable></selectables> that meet the following: [<h:i>NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and <selectables><selectable id="FCS_CKM.1_16">RFC 3526</selectable><selectable id="FCS_CKM.1_17">RFC 7919</selectable></selectables></h:i>]</selectable><selectable id="FCS_CKM.1_18"><h:b>Leighton-Micali Signature</h:b> Algorithm using the parameter sets <selectables><selectable id="FCS_CKM.1_19">LMS_SHAKE_M24_H5</selectable><selectable id="FCS_CKM.1_20">LMS_SHAKE_M24_H10</selectable><selectable id="FCS_CKM.1_21">LMS_SHAKE_M24_H15</selectable><selectable id="FCS_CKM.1_22">LMS_SHAKE_M24_H25</selectable><selectable id="FCS_CKM.1_23">LMS_SHAKE_M32_H5</selectable><selectable id="FCS_CKM.1_24">LMS_SHAKE_M32_H10</selectable><selectable id="FCS_CKM.1_25">LMS_SHAKE_M32_H15</selectable><selectable id="FCS_CKM.1_26">LMS_SHAKE_M32_H25</selectable><selectable id="FCS_CKM.1_27">LMS_SHA256_M24_H5</selectable><selectable id="FCS_CKM.1_28">LMS_SHA256_M24_H10</selectable><selectable id="FCS_CKM.1_29">LMS_SHA256_M24_H15</selectable><selectable id="FCS_CKM.1_30">LMS_SHA256_M24_H25</selectable><selectable id="FCS_CKM.1_31">LMS_SHA256_M32_H5</selectable><selectable id="FCS_CKM.1_32">LMS_SHA256_M32_H10</selectable><selectable id="FCS_CKM.1_33">LMS_SHA256_M32_H15</selectable><selectable id="FCS_CKM.1_34">LMS_SHA256_M32_H25</selectable></selectables> that meet the following[NIST SP 800-208, "Recommendation for Stateful Hash-Based Signature Schemes"]</selectable><selectable id="FCS_CKM.1_35"><h:b>eXtended Merkle Signature Scheme Algorithm</h:b> using the parameter sets <selectables><selectable id="FCS_CKM.1_36">XMSS-SHA2_10_192</selectable><selectable id="FCS_CKM.1_37">XMSS-SHA2_16_192</selectable><selectable id="FCS_CKM.1_38">XMSS-SHA2_20_192</selectable><selectable id="FCS_CKM.1_39">XMSS-SHA2_10_256</selectable><selectable id="FCS_CKM.1_40">XMSS-SHA2_16_256</selectable><selectable id="FCS_CKM.1_41">XMSS-SHA2_20_256</selectable><selectable id="FCS_CKM.1_42">XMSS-SHAKE_10_192</selectable><selectable id="FCS_CKM.1_43">XMSS-SHAKE_16_192</selectable><selectable id="FCS_CKM.1_44">XMSS-SHAKE_20_192</selectable><selectable id="FCS_CKM.1_45">XMSS-SHAKE_10_256</selectable><selectable id="FCS_CKM.1_46">XMSS-SHAKE_16_256</selectable><selectable id="FCS_CKM.1_47">XMSS-SHAKE_20_256</selectable></selectables> that meets the following: [NIST SP 800-208, "Recommendation for Stateful Hash-Based Signature Schemes"]</selectable><selectable id="FCS_CKM.1_48"><h:b>Module-Lattice-Based Key-Encapsulation Mechanism Standard</h:b>using the parameter set ML-KEM-1024 that meets the following: [FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard]</selectable><selectable id="FCS_CKM.1_49"><h:b>Module-Lattice-Based Digital Signature Standard</h:b> using the parameter set ML-DSA-87 that meets the following [FIPS 204, Module-Lattice-Based Digital Signature Standard]</selectable><selectable id="FCS_CKM.1_50"><h:b>no other key generation methods</h:b></selectable></selectables>.</title>
                  <note role="application">
                    The ST author must select all key generation
              schemes used for key establishment and MDM authentication. When key
              generation is used for key establishment, the schemes in
                    <xref to="fel-ckm"/>
                    and selected
              cryptographic protocols must match the selection. When key generation is used for
                MDM authentication, the public key is expected to be associated
              with an X.509v3 certificate.
                    <h:br/>
                    <h:br/>
                    If the TOE only acts as a receiver in the RSA key establishment scheme, the TOE does not need
              to implement RSA key generation.
                    <h:br/>
                    <h:br/>
                    In a distributed TOE, if the TOE component acts as a receiver in the key establishment scheme,
              the TOE does not need to implement key generation.
                  </note>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
          <!-- FCS_CKM.2 Cryptographic Key Establishment -->
          <base-sfr-spec cc-id="fcs_ckm.2" id="mdm-fcs-ckm-2" title="Cryptographic Key Establishment">
            <consistency-rationale>The ST author is instructed to make specific selections at minimum to address VPN client requirements; the SFR behavior itself is unmodified.</consistency-rationale>
            <description>
              <h:p>This SFR is modified from its definition in the MDM PP by mandating the key establishment algorithms that are required by this PP-Module in support of IPsec due to the mandated support for DH group 20 in FCS_IPSEC_EXT.1.8. Other selections may be chosen by the ST author as needed for parts of the TOE that are not specifically related to VPN client functionality. The selection for "no other schemes" was added in case the algorithms that IPsec requires are the TSF's only use of key establishment.</h:p>
              The text of the requirement is replaced with:
              <h:br/>
              <h:br/>
              The TSF shall
              <h:b>[selection:<h:i><h:ul><h:li>invoke platform-provided functionality</h:li> <h:li>implement functionality</h:li></h:ul></h:i>]</h:b>
              in
              accordance with a specified cryptographic key
              <h:b>establishment</h:b>
              method:
              <h:b>
                <h:ul>
                  <h:i>
                    <h:li>Elliptic curve-based key establishment schemes that meet the following: NIST Special
                  Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes
                  Using Discrete Logarithm Cryptography,” and</h:li>
                  </h:i>
                </h:ul>
              </h:b>
              <h:b>[selection: </h:b>
              <h:i>
                <h:ul>
                  <h:li>CNSA 2.0 Compliant Algorithm: <h:ul><h:li>Module-Lattice-Based Key-Encapsulation Mechanism Standard using the parameter set ML-KEM-1024 that meets the following: [FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard]</h:li></h:ul></h:li>
                  <h:li>CNSA 1.0 Compliant Algorithm: <h:ul><h:li>Finite field-based key establishment schemes using "safe-prime" groups that meets NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography”</h:li></h:ul></h:li>
                  <h:li>
                    <h:b>No other key establishment methods</h:b>
                  </h:li>
                </h:ul>
              </h:i>
              <h:b>]</h:b>.
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-ckm']">
                <f-element id="fel-ckm">
                  <title>The TSF shall <selectables><selectable id="FCS_CKM.2_1">invoke platform-provided functionality</selectable><selectable id="FCS_CKM.2_2">implement functionality</selectable></selectables> to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method: <h:ul><h:li><h:b><h:i>Elliptic curve-based key establishment schemes that meet the following: NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography,” and</h:i></h:b></h:li></h:ul><selectables linebreak="yes"><selectable id="FCS_CKM.2_3">CNSA 2.0 Compliant Algorithm: <h:ul><h:li>Module-Lattice-Based Key-Encapsulation Mechanism Standard using the parameter set ML-KEM-1024 that meets the following: [FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard]</h:li></h:ul></selectable><selectable id="FCS_CKM.2_4">CNSA 1.0 Compliant Algorithm: <h:ul><h:li> Finite field-based key establishment schemes using "safe-prime" groups that meets NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” </h:li></h:ul></selectable><selectable id="FCS_CKM.2_5" exclusive="yes"><h:b>No other key establishment schemes</h:b></selectable></selectables>.</title>
                  <note role="application">
                    The ST author must select all key
              establishment schemes used for the selected cryptographic protocols.
                    <h:br/>
                    <h:br/>
                    The elliptic curves used for the key establishment scheme must correlate with the curves specified in
                    <xref to="fel-ckm-tsf-func"/>.
                  </note>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
          <!-- FCS_COP.1/CONF_ALG Cryptographic Operation (Confidentiality Algorithms) -->
          <base-sfr-spec cc-id="fcs_cop.1" id="mdm-fcs-cop-1-conf-alg" title="Cryptographic Operation (Confidentiality Algorithms)" iteration="CONF_ALG">
            <consistency-rationale>The ST author is instructed to make specific selections at minimum to address VPN client requirements; the SFR behavior itself is unmodified.</consistency-rationale>
            <description>
              <h:p>This SFR is modified from its definition in the Base-PP by mandating support for both 256-bit implementations of AES-GCM (which this PP-Module requires for the use of IKE and ESP). Other AES modes may be selected by the ST author as needed to address functions not required by this PP-Module. The "no other modes" selection is added for the case where no AES claims need to be made beyond what is mandated for IPsec.</h:p>
              The text of the requirement is replaced with:
              <h:br/>
              <h:br/>
              The TSF shall
              <h:b>[selection: <h:i>invoke platform-provided functionality, implement functionality</h:i>]</h:b>
              to perform [<h:i>encryption and decryption</h:i>] in accordance with a specified
              cryptographic algorithm: [<h:br/>
              <h:b><h:ul><h:li>AES-CBC (as defined in FIPS PUB 197, and NIST SP 800-38A) mode</h:li> <h:li>AES-GCM (as defined in NIST SP 800-38D)</h:li></h:ul> and</h:b>
              [<h:b>selection:</h:b>
              <h:i>
                <h:ul>
                  <h:li>AES Key Wrap (KW) (as defined in NIST SP 800-38F)</h:li>
                  <h:li>AES Key Wrap with Padding (KWP) (as defined in NIST SP 800-38F)</h:li>
                  <h:li>AES-CCM (as defined in NIST SP 800-38C)</h:li>
                  <h:li>
                    <h:b>no other modes</h:b>
                  </h:li>
                </h:ul>
              </h:i>] 
                and a cryptographic key size of 256-bits.
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-conf-alg']">
                <f-element id="fel-conf-alg">
                  <title>The TSF shall <selectables><selectable id="FCS_COP.1/CONF_ALG_1">invoke platform-provided functionality</selectable><selectable id="FCS_COP.1/CONF_ALG_2">implement functionality</selectable></selectables> <h:b>to</h:b> perform <h:b>encryption and decryption</h:b> in accordance with a specified cryptographic algorithm: <h:b><h:ul><h:li>AES-CBC (as defined in FIPS PUB 197, and NIST SP 800-38A) mode</h:li> <h:li>AES-GCM (as defined in NIST SP 800-38D)</h:li></h:ul> and</h:b><selectables linebreak="yes"><selectable id="FCS_COP.1/CONF_ALG_3">AES Key Wrap (KW) (as defined in NIST SP 800-38F)</selectable><selectable id="FCS_COP.1/CONF_ALG_4">AES Key Wrap with Padding (KWP) (as defined in NIST SP 800-38F)</selectable><selectable id="FCS_COP.1/CONF_ALG_5">AES-CCM (as defined in NIST SP 800-38C)</selectable><selectable id="FCS_COP.1/CONF_ALG_6"><h:b>no other modes</h:b></selectable></selectables> and a cryptographic key size of 256-bits.</title>
                  <note role="application">
                    For the second selection of
                    <xref to="fel-conf-alg"/>, the ST author should choose the mode or modes in which AES operates
			in the trusted channel protocols. For the third selection, the ST author should choose the key sizes that are supported by this functionality.
                  </note>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
        </section>
        <section title="Class FPT: Protection of the TSF" id="mdm-m-fpt">
          <!-- FPT_ITT.1/INTER_XFER Internal TOE TSF Data Transfer (Distributed MDM Server) -->
          <base-sfr-spec cc-id="fpt_itt.1" id="mdm-fpt-itt-1-inter-xfer" title="Internal TOE TSF Data Transfer (Distributed MDM Server)" iteration="INTER_XFER">
            <consistency-rationale>When this SFR relates to the PP-Module’s functionality, the ST author is instructed to make specific selections to implement this behavior using the VPN client. This is done by forcing the ST author to make specific selections that are already present in the MDM PP definition of the SFR; no new behavior is introduced by this.</consistency-rationale>
            <description>
              <h:p>When the MDM TOE claims this PP-Module, at least one of its interfaces will implement IPsec communications. However, this PP-Module does not specify that any one particular interface must be implemented using IPsec. If the TOE is distributed and uses IPsec to secure communications between its distributed components, FPT_ITT.1/INTER_XFER is defined as below.</h:p>
              The text of the requirement is replaced with:
              <h:br/>
              <h:br/>
              The TSF shall [<h:i>implement functionality using [IPsec as defined in the PP-Module for VPN Clients]</h:i>]
              <h:b>to</h:b>
              protect
              <h:b>all</h:b>
              data from [<h:i>disclosure and modification</h:i>] when it is
              <h:b>transferred</h:b>
              between separate parts of the TOE.
              <h:br/>
              <h:br/>
              <h:p>This SFR is selection-based in the Base-PP depending on the selections made in the Base-PP requirement FTP_ITC_EXT.1. This is not changed by the PP-Module.</h:p>
              <h:p>This SFR is modified from its definition in the Base-PP by mandating that the TSF implement IPsec communications and by prohibiting the TOE from relying on platform-provided functionality to implement this.</h:p>
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-interxfer']">
                <f-element id="fel-interxfer">
                  <title/>
                  <note role="application">
                    This requirement ensures all communications between components of a distributed TOE are protected through the use of an encrypted communications channel. The data passed in this trusted communication channel are encrypted as defined in the protocol chosen in the second selection.
                    <h:br/>
                    <h:br/>
                    The trusted channel uses secure protocols that preserve the confidentiality and integrity of MDM communications. The ST author chooses the mechanism or mechanisms supported by the TOE. To support mutual authentication FIA_X509_EXT.1/CERTVAL_SEL should be included in the ST. This channel may also be used as the registration channel for the registration process, as described in section 3.1 and
                    <xref to="fel-cpc-func"/>.
                    <h:br/>
                    <h:br/>
                    If "IPsec as defined in the PP-Module for VPN Client" is selected, the TSF must claim conformance to a PP-Configuration that includes the VPN Client PP-Module.
                    <h:br/>
                    <h:br/>
                    If the ST author selects "SSH as defined in the Functional Package for Secure Shell," the TSF must be validated against the FP for Secure Shell with the MDM PP. It should be noted that due to constraints imposed by this PP that SHA-1 cannot be used.
                    <h:br/>
                    <h:br/>
                    If the ST author selects "mutually authenticated TLS as defined in the Package for Transport Layer Security" or "mutually authenticated DTLS as defined in the Package for Transport Layer Security," the TSF must be validated against requirements from the Package for Transport Layer Security, with the following selections made:
                    <h:ul>
                      <h:li>
                        FCS_TLS_EXT.1:
                        <h:ul>
                          <h:li>either TLS or DTLS is selected depending on the selection made in </h:li>
                          <h:li>either client or server is selected as appropriate</h:li>
                        </h:ul>
                      </h:li>
                      <h:li>
                        FCS_TLSC_EXT.1.1 or FCS_TLSS_EXT.1.1 (as appropriate):
                        <h:ul>
                          <h:li>The cipher suites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</h:li>
                          <h:li>mutual authentication must be selected</h:li>
                        </h:ul>
                      </h:li>
                    </h:ul>
                    Protocol, RBG, Certificate validation, algorithm, and similar services may be met with
             platform-provided services.
                    <h:br/>
                    <h:br/>
                    This requirement is claimed if "FPT_ITT.1/INTER_XFER" is selected in FTP_ITC_EXT.1.
                    <h:br/>
                    <h:br/>
                    If HTTPS is chosen, FCS_HTTPS_EXT.1 must be included in the ST.
                  </note>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
        </section>
        <section title="Class FTP: Trusted Path/Channels" id="mdm-m-ftp">
          <!-- FTP_ITC.1/INTER_XFER_IT Inter-TSF Trusted Channel (Authorized IT Entities) -->
          <base-sfr-spec cc-id="ftp_itc.1" id="mdm-ftp-itc-1-inter-xfer-it" title="Inter-TSF Trusted Channel (Authorized IT Entities)" iteration="INTER_XFER_IT">
            <consistency-rationale>When this SFR relates to the PP-Module’s functionality, the ST author is instructed to make specific selections to implement this behavior using the VPN client at minimum. This is done by forcing the ST author to make a specific selection that is already present in the MDM PP definition of the SFR and by removing a selection option; no new behavior is introduced by this.</consistency-rationale>
            <description>
              <h:p>When the MDM TOE claims this PP-Module, at least one of its interfaces will implement IPsec communications. However, this PP-Module does not specify that any one particular interface must be implemented using IPsec. If the TOE uses IPsec to secure communications between itself and external trusted IT entities, FTP_ITC.1/INTER_XFER_IT is refined as noted by the refinements above.</h:p>
              <h:p>This SFR is refined from its definition in the Base-PP by mandating that the “implement functionality” selection be chosen at minimum for IPsec and by prohibiting the TOE from relying on platform-provided IPsec functionality. Since the TOE may support multiple trusted channel interfaces, the ST author is given the option to select other protocols (SSH, TLS, DTLS, HTTPS) either as being implemented by the TSF or invoked from the platform. The "not invoke or implement any other protocol functionality" is added for the case where the TOE's implementation of IPsec is the only trusted channel protocol the TSF uses.</h:p>
              The text of FTP_ITC.1.1/INTER_XFER_IT is replaced with (the other elements are unaffected):
              <h:br/>
              <h:br/>
              The TSF shall
              <h:ul>
                <h:li>
                  <h:b>implement functionality using IPsec as defined in the PP-Module for VPN Client, and</h:b>
                </h:li>
              </h:ul>
              [<h:b>selection:</h:b>
              <h:i>
                <h:b>
                  <h:ul>
                    <h:li>invoke platform-provided functionality to use [selection:<h:ul><h:li>SSH</h:li> <h:li>mutually authenticated TLS</h:li> <h:li>mutually authenticated DTLS</h:li> <h:li>HTTPS</h:li></h:ul></h:li>
                    <h:li>implement functionality using [selection:<h:ul><h:li>SSH as defined in the Functional Package for Secure Shell</h:li> <h:li>mutually authenticated TLS as defined in the Package for Transport Layer Security</h:li> <h:li>mutually authenticated DTLS as defined in the Package for Transport Layer Security</h:li> <h:li>HTTPS in accordance with FCS_HTTPS_EXT.1</h:li></h:ul></h:li>
                    <h:li>not invoke or implement any other protocol functionality</h:li>
                  </h:ul>
                </h:b>
              </h:i>]
              <h:b>to</h:b>
              provide a
              <h:b>trusted</h:b>
              communication channel between itself and
              <h:b>authorized</h:b>
              IT
              <h:b>entities supporting the following capabilities: audit server, [<h:b>selection:</h:b> <h:i>authentication server, [assignment: other capabilities]</h:i>]</h:b>
              that is logically distinct from other communication channels and provides assured identification of its endpoints
                and protection of the channel data from modification or disclosure.
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='fel-inter-xfer-it']">
                <f-element id="fel-inter-xfer-it">
                  <title>The TSF shall <h:ul><h:li><h:b>implement functionality using IPsec as defined in the PP-Module for VPN Client, and</h:b></h:li></h:ul><selectables><selectable id="FTP_ITC.1/INTER_XFER_IT_1"><h:b>invoke platform-provided functionality to use <selectables linebreak="yes"><selectable id="ITC1_SSH_INVOKE">SSH</selectable><selectable id="ITC1_TLS_INVOKE">mutually authenticated TLS</selectable><selectable id="ITC1_DTLS_INVOKE">mutually authenticated DTLS</selectable><selectable id="ITC1_HTTPS_INVOKE">HTTPS</selectable></selectables> </h:b></selectable><selectable id="FTP_ITC.1/INTER_XFER_IT_2"><h:b>implement functionality using <selectables linebreak="yes"><selectable id="ITC1_SSH_IMPLEMENT">SSH as defined in the Functional Package for Secure Shell</selectable><selectable id="ITC1_TLS_IMPLEMENT">mutually authenticated TLS as defined in the Package for Transport Layer Security</selectable><selectable id="ITC1_DTLS_IMPLEMENT">mutually authenticated DTLS as defined in the Package for Transport Layer Security</selectable><selectable id="ITC1_HTTPS_IMPLEMENT">HTTPS in accordance with FCS_HTTPS_EXT.1</selectable></selectables> </h:b></selectable><selectable id="FTP_ITC.1/INTER_XFER_IT_3"><h:b>not invoke or implement any other protocol functionality</h:b></selectable></selectables> <h:b>to</h:b> provide a <h:b>trusted</h:b> communication channel between itself and <h:b>authorized</h:b> IT<h:b>entities supporting the following capabilities: audit server,
                       <selectables><selectable id="FTP_ITC.1/INTER_XFER_IT_4">authentication server</selectable><selectable id="FTP_ITC.1/INTER_XFER_IT_6"><assignable>other capabilities</assignable></selectable></selectables> </h:b> that is logically distinct from other communication channels and provides assured identification of its endpoints and protection of the channel data from modification or disclosure.</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 with authorized IT entities 
              that the TOE interacts with to perform its functions.
                    <h:br/>
                    <h:br/>
                    Protection (by one of the listed protocols) is required at least for communications with the server that collects 
              the audit information. If it communicates with an authentication server (e.g., RADIUS), then the ST 
              author chooses "authentication server" in FTP_ITC.1.1/INTER_XFER_IT and this connection must be protected 
              by one of the listed protocols. If other authorized IT entities (e.g., NTP server) are protected, the 
              ST author makes the appropriate assignments (for those entities) and selections (for the protocols 
              that are used to protect those connections).
                    <h:br/>
                    <h:br/>
                    To summarize, the connection to an external audit collection server is required to be protected by one of the listed 
              protocols. If an external authentication server is supported, then it is required to protect that connection with one 
              of the listed protocols. For any other external server, external communications are not required to be protected, but 
              if protection is claimed, then it must be protected with one of the identified protocols.
                    <h:br/>
                    <h:br/>
                    For communications with any authorized IT entities outside of the TOE, the MDM server should still 
              be able to support mutual authentication. There are no requirements levied on the external entities, but the MDM server 
              should be able to support mutual authentication. This way if the non-TOE authorized 
              entity does support mutual authentication, the MDM server is in a position to make use of that.
                    <h:br/>
                    <h:br/>
                    The trusted channel uses IPsec, TLS, DTLS, or HTTPS as the protocol that preserves the confidentiality and integrity of MDM communications. The ST 
			  author chooses the mechanism or mechanisms supported by the TOE.
                    <h:br/>
                    <h:br/>
                    If "IPsec as defined in the PP-Module for VPN Client" is selected, the TSF must claim conformance to a PP-Configuration that includes the VPN Client 
			  PP-Module.
                    <h:br/>
                    <h:br/>
                    If HTTPS is chosen, FCS_HTTPS_EXT.1 must be included in the ST.
                    <h:br/>
                    <h:br/>
                    If the ST author selects "SSH as defined in the Functional Package for Secure Shell," the TSF must be validated against the FP for Secure Shell with 
			  the MDM PP. It should be noted that due to constraints imposed by this PP that SHA-1 cannot be used.
                    <h:br/>
                    <h:br/>
                    If the ST author selects "mutually authenticated TLS as defined in the Package for Transport Layer Security" or "mutually authenticated DTLS as 
			  defined in the Package for Transport Layer Security," the TSF must be validated against requirements from the Package for Transport Layer Security,
			  with the following selections made:
                    <h:ul>
                      <h:li>
                        FCS_TLS_EXT.1:
                        <h:ul>
                          <h:li>either TLS or DTLS is selected depending on the selection made in FTP_ITC.1.1/INTER_XFER_IT</h:li>
                          <h:li>either client or server is selected as appropriate</h:li>
                        </h:ul>
                      </h:li>
                      <h:li>
                        FCS_TLSC_EXT.1.1 or FCS_TLSS_EXT.1.1 (as appropriate):
                        <h:ul>
                          <h:li>The cipher suites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</h:li>
                          <h:li>mutual authentication must be selected</h:li>
                        </h:ul>
                      </h:li>
                      <h:li>
                        FCS_DTLSC_EXT.1.1 or FCS_DTLSS_EXT.1.1 (as appropriate):
                        <h:ul>
                          <h:li>The cipher suites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</h:li>
                          <h:li>mutual authentication must be selected</h:li>
                        </h:ul>
                      </h:li>
                    </h:ul>
                    Protocol, RBG, Certificate validation, algorithm, and similar services may be met with
              platform-provided 
              services.
                    <h:br/>
                    <h:br/>
                    The requirement implies that not only are communications protected when they are initially established, but 
              also on resumption after an outage. It may be the case that some part of the TOE setup involves 
              manually setting up tunnels to protect other communication, and if after an outage the TOE attempts 
              to re-establish the communication automatically with (the necessary) manual intervention, there may be a window created 
              where an attacker might be able to gain critical information or compromise a connection.
                    <h:br/>
                    <h:br/>
                  </note>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
          <!-- FTP_TRP.1/TRUSTPATH_REM_ADMIN Trusted Path (for Remote Administration) -->
          <base-sfr-spec cc-id="ftp_trp.1" id="mdm-ftp-trp-1-trustpath-rem-admin" title="Trusted Path (for Remote Administration)" iteration="TRUSTPATH_REM_ADMIN">
            <consistency-rationale>When this SFR relates to the PP-Module’s functionality, the ST author is instructed to make specific selections to implement this behavior using the VPN client at minimum. This is done by forcing the ST author to make a specific selection that is already present in the MDM PP definition of the SFR and by removing a selection option; no new behavior is introduced by this.</consistency-rationale>
            <description>
              <h:p>When the MDM TOE claims this PP-Module, at least one of its interfaces will implement IPsec communications. However, this PP-Module does not specify that any one particular interface must be implemented using IPsec. If the TOE uses IPsec to secure communications between itself and trusted remote administrators, FPT_TRP.1/TRUSTPATH_REM_ADMIN is refined as below.</h:p>
              <h:p>This SFR is refined from its definition in the Base-PP by mandating that the “implement functionality” selection be chosen at minimum for IPsec and by prohibiting the TOE from relying on platform-provided IPsec functionality. Since the TOE may support multiple remote administrative interfaces, the ST author is given the option to select other protocols (SSH, TLS, HTTPS) either as being implemented by the TSF or invoked from the platform. The "not invoke or implement any other protocol functionality" is added for the case where the TOE's implementation of IPsec is the only trusted path protocol the TSF uses.</h:p>
              The text of FTP_TRP.1.1/TRUSTPATH_REM_ADMIN is replaced with (the other elements are unaffected):
              <h:br/>
              <h:br/>
              The TSF shall
              <h:ul>
                <h:li>
                  <h:b>implement functionality using IPsec as defined in the PP-Module for VPN Client, and</h:b>
                </h:li>
              </h:ul>
              [<h:b>selection:</h:b>
              <h:i>
                <h:b>
                  <h:ul>
                    <h:li>invoke platform-provided functionality to use [selection:<h:ul><h:li>TLS</h:li> <h:li>HTTPS</h:li> <h:li>SSH</h:li></h:ul></h:li>
                    <h:li>implement functionality using [selection:<h:ul><h:li>TLS as defined in the Package for Transport Layer Security</h:li> <h:li>HTTPS in accordance with FCS_HTTPS_EXT.1</h:li> <h:li>SSH as defined in the Functional Package for Secure Shell</h:li></h:ul></h:li>
                    <h:li>not invoke or implement any other protocol functionality</h:li>
                  </h:ul>
                </h:b>
              </h:i>]
              <h:b>to</h:b>
              provide a
              <h:b>trusted</h:b>
              communication path between itself
              <h:b>
                as a [selection:
                <h:i>server, peer</h:i>]
                and another trusted IT product
              </h:b>
              that is logically distinct from other communication paths and provides assured
                identification of its endpoints and protection of the communicated data from [<h:i>modification or disclosure</h:i>].
            </description>
            <replace>
              <xpath-specified xpath="*//cc:f-element[@id='trustpath-rem-admin']">
                <f-element id="trustpath-rem-admin">
                  <title>The TSF shall <h:ul><h:li><h:b>implement functionality using IPsec as defined in the PP-Module for VPN Client, and</h:b></h:li></h:ul><selectables linebreak="yes"><selectable id="FTP_TRP.1/TRUSTPATH_REM_ADMIN_1"><h:b>invoke platform-provided functionality to use <selectables linebreak="yes"><selectable id="TRP1_TLS_INVOKE">TLS</selectable><selectable id="TRP1_HTTPS_INVOKE">HTTPS</selectable><selectable id="TRP1_SSH_INVOKE">SSH</selectable></selectables> </h:b></selectable><selectable id="FTP_TRP.1/TRUSTPATH_REM_ADMIN_2"><h:b>implement functionality using <selectables linebreak="yes"><selectable id="TRP1_TLS_IMPLEMENT">TLS as defined in the Package for Transport Layer Security</selectable><selectable id="TRP1_HTTPS_IMPLEMENT">HTTPS in accordance with FCS_HTTPS_EXT.1</selectable><selectable id="TRP1_SSH_IMPLEMENT">SSH as defined in the Functional Package for Secure Shell</selectable></selectables> </h:b></selectable><selectable id="FTP_TRP.1/TRUSTPATH_REM_ADMIN_3"><h:b>not invoke or implement any other protocol functionality</h:b></selectable></selectables> <h:b>to</h:b> provide a <h:b>trusted</h:b> communication path between itself<h:b>as a  <selectables><selectable id="FTP_TRP.1/TRUSTPATH_REM_ADMIN_4">server</selectable><selectable id="FTP_TRP.1/TRUSTPATH_REM_ADMIN_5">peer</selectable></selectables> </h:b> <h:b>and another trusted IT product</h:b> that is logically distinct from other communication <h:b>channels</h:b> and provides assured identification of its endpoints and protection of the channel data from [ <h:i>modification or disclosure.</h:i> ]</title>
                </f-element>
              </xpath-specified>
            </replace>
          </base-sfr-spec>
        </section>
      </modified-sfrs>
      <!-- 5.4.2 Additional SFRs -->
      <additional-sfrs/>
      <con-toe>If this PP-Module is used to extend the MDM PP, the TOE type for the overall TOE is still a mobile device
		management solution. The TOE boundary is simply extended to include VPN client functionality that is
		included with the MDM software so that additional security functionality is claimed within the scope of
		the TOE.</con-toe>
      <con-sec-prob>The threats and assumptions defined by this PP-Module (see sections 3.1 and 3.2) supplement those
		defined in the MDM PP as follows:</con-sec-prob>
      <con-obj>The security objectives defined by this PP-Module (see sections 4.1 and 4.2) supplement those defined
		in the MDM PP as follows:</con-obj>
      <con-op-en/>
      <con-mod ref="T.UNAUTHORIZED_ACCESS">The threat of an attacker gaining access to a network interface or data
		that is transmitted over it is consistent with the T.NETWORK_ATTACK and
		T.NETWORK_EAVESDROP threats in the MDM PP.</con-mod>
      <con-mod ref="T.TSF_CONFIGURATION">The threat of a misconfigured VPN client is consistent with the
		T.NETWORK_ATTACK and T.NETWORK_EAVESDROP threats in the MDM
		PP because failure to mitigate against misconfiguration makes these
		threats more significant.</con-mod>
      <con-mod ref="T.USER_DATA_REUSE">Inadvertent disclosure of user data to an unauthorized recipient is
		consistent with the T.NETWORK_EAVESDROP threat in the MDM PP.</con-mod>
      <con-mod ref="T.TSF_FAILURE">A failure of TSF functionality could compromise the implementation of the
		IPsec channel, which would lead to an exploitation of the T.NETWORK_ATTACK threat.</con-mod>
      <con-mod ref="A.NO_TOE_BYPASS">The A.NO_TOE_BYPASS assumption assumes that the OE is configured in such a manner that the only network route
		to the protected network is through the TOE. This does not conflict with
		the MDM PP because the MDM PP makes no assumptions about the
		network architecture in which the TOE is deployed.</con-mod>
      <con-mod ref="A.PHYSICAL">The assumption that physical security is provided by the environment is
		not explicitly stated in the MDM PP but is consistent with the A.MDM_SERVER_PLATFORM assumption defined in the MDM PP, which
		expects the computing platform to be trusted.</con-mod>
      <con-mod ref="A.TRUSTED_CONFIG">The assumption that personnel responsible for the TOE’s configuration are
		trusted to follow the guidance is consistent with the A.PROPER_ADMIN
		defined in the MDM PP.</con-mod>
      <con-mod ref="OE.NO_TOE_BYPASS">This objective addresses behavior that is out of scope of the MDM PP
		and does not define an environment that an MDM TOE is incapable
		of existing in.</con-mod>
      <con-mod ref="OE.PHYSICAL">This is part of satisfying OE.IT_ENTERPRISE as defined in the MDM
		PP because provisioning of physical security is a reasonable
		expectation for an IT enterprise.</con-mod>
      <con-mod ref="OE.TRUSTED_CONFIG">The expectation of trusted configuration is consistent with
		OE.PROPER_USER and OE.PROPER_ADMIN in the MDM PP.</con-mod>
      <con-mod ref="dm-fcs-ckm-1">The ST author is instructed to make specific selections at minimum to
		address VPN client requirements; the SFR behavior itself is unmodified.</con-mod>
      <con-mod ref="dm-fcs-ckm-2">The ST author is instructed to make specific selections at minimum to
		address VPN client requirements; the SFR behavior itself is unmodified.</con-mod>
      <con-mod ref="dm-fcs-cop-1-1">The ST author is instructed to make specific selections at minimum to
		address VPN client requirements; the SFR behavior itself is unmodified.</con-mod>
      <con-mod ref="dm-fia-x509-ext-2">The ST author is instructed to make specific selections at minimum to
		address VPN client requirements; the SFR behavior itself is unmodified.</con-mod>
      <con-mod ref="dm-fpt-itt-1-1">When this SFR relates to the PP-Module’s functionality, the ST author is
		instructed to make specific selections to implement this behavior using the
		VPN client. This is done by forcing the ST author to make specific selections
		that are already present in the MDM PP definition of the SFR; no new
		behavior is introduced by this.</con-mod>
      <con-mod ref="dm-ftp-itc-1-1">When this SFR relates to the PP-Module’s functionality, the ST author is
		instructed to make specific selections to implement this behavior using the
		VPN client at minimum. This is done by forcing the ST author to make a
		specific selection that is already present in the MDM PP definition of the SFR
		and by removing a selection option; no new behavior is introduced by this.</con-mod>
      <con-mod ref="dm-ftp-trp-1-1">When this SFR relates to the PP-Module’s functionality, the ST author is
		instructed to make specific selections to implement this behavior using the
		VPN client at minimum. This is done by forcing the ST author to make a
		specific selection that is already present in the MDM PP definition of the SFR
		and by removing a selection option; no new behavior is introduced by this.</con-mod>
      <con-mod ref="fcs-ckm-1-vpn">This SFR defines the method of key generation for IKE peer authentication,
		which is a function that does not interfere with the functionality defined in
		the MDM PP.</con-mod>
      <con-mod ref="fcs-ipsec-ext-1">This SFR defines the VPN client’s IPsec implementation, which is added
		functionality that does not interfere with the MDM functions.</con-mod>
      <con-mod ref="fdp-rip-2">The requirement to protect against reuse of residual data is a property of
		the VPN client behavior and does not impact the MDM functionality.</con-mod>
      <con-mod ref="fmt-smf-1-vpn">The ability to configure the VPN client behavior does not affect whether the
		MDM as a whole can perform its security functions.</con-mod>
      <con-mod ref="fpt-tst-ext-1-vpn">Self-testing of the VPN client functionality does not impact the ability of the
		MDM to perform its security functions.</con-mod>
      <con-mod ref="fau-gen-1-vpn">Audit data generated by the VPN client do not interfere with MDM
		functionality. The possibility of the MDM as a whole generating audit
		records is consistent with the MDM PP, which already contains FAU_GEN.1.</con-mod>
      <con-mod ref="fau-sel-1-vpn">The ability to suppress the generation of certain VPN client audit data
		does not interfere with MDM functionality. The MDM PP already contains FAU_SEL.1 as an optional SFR which
		means that this functionality does not conflict with the expected behavior of an MDM.</con-mod>
      <con-mod ref="fdp-vpn-ext-1">The ability of the VPN client to prevent split tunneling of IPsec traffic
		requires it to have hooks into lower-level OS behavior, but there are no
		requirements in the MDM PP that would prevent this functionality from
		being supported.</con-mod>
      <con-mod ref="fia-bma-ext-1">This SFR relates to biometric authentication, which does not conflict with the MDM PP
	      because it may be a function offered by the 
        part of the TOE described by the MDM PP.</con-mod>
      <con-mod ref="fpf-mfa-ext-1">This SFR relates specifically to the handling of traffic that is used for the
        establishment of IPsec connections.</con-mod>
      <con-mod ref="fcs-eap-ext-1">This SFR defines an additional cryptographic protocol that is beyond the scope of those defined
	      in the MDM PP but does not prevent any MDM PP functionality
        from being implemented.</con-mod>
      <con-mod ref="fia-psk-ext-1">This SFR defines the use of pre-shared keys, which is behavior that only
        relates to the establishment of IPsec connections.</con-mod>
      <con-mod ref="fia-psk-ext-2">This SFR relates to use of pre-shared keys, which is behavior that only
        applies to the establishment of IPsec connections.</con-mod>
      <con-mod ref="fia-psk-ext-3">This SFR relates to use of pre-shared keys, which is behavior that only
        applies to the establishment of IPsec connections.</con-mod>
      <con-mod ref="fia-psk-ext-4">This SFR relates to use of pre-shared keys, which is behavior that only
        applies to the establishment of IPsec connections.</con-mod>
      <con-mod ref="fia-psk-ext-5">This SFR relates to use of pre-shared keys, which is behavior that only
        applies to the establishment of IPsec connections.</con-mod>
    </base-pp>
    <!-- 5.5 TOE Security Functional Requirements -->
    <man-sfrs>
      <section id="ss-audit-table" title="Auditable Events for Mandatory SFRs">
        <xref to="at-mandatory"/>
        must be included as part of FAU_GEN.1/VPN
 	      for GPOS, MDF, and MDM Base-PPs. When App PP is the Base-PP, it should be included only if implementation-dependent requirement FAU_GEN.1/VPN is included in the ST.
        <audit-table id="at-mandatory" table="atref-mandatory" title="Auditable Events for Mandatory SFRs"/>
      </section>
      <!-- 5.5.1 Cryptographic Support (FCS) -->
      <section title="Class FCS: Cryptographic Support" id="fcs-mandatory">
        <ext-comp-def title="IPsec" fam-id="FCS_IPSEC_EXT">
          <fam-behavior>Components in this family describe requirements for IPsec implementation.</fam-behavior>
        </ext-comp-def>
        <!-- FCS_CKM.1/VPN VPN Cryptographic Key Generation (IKE) -->
        <f-component cc-id="fcs_ckm.1" id="fcs-ckm-1-vpn" name="VPN Cryptographic Key Generation (IKE)" iteration="VPN">
          <consistency-rationale/>
          <f-element id="fcs-ckm-1e1i1">
            <title>
              The TSF shall
              <h:b>
                <selectables onlyone="yes">
                  <selectable id="fcs_ckm.1.1_VPN_1">invoke platform-provided functionality</selectable>
                  <selectable id="fcs_ckm.1.1_VPN_2">implement functionality</selectable>
                </selectables>
                to
              </h:b>
              generate
              <h:b>asymmetric</h:b>
              cryptographic keys
              <h:b>used for IKE peer authentication</h:b>
              in accordance with:
              <h:b>
                <selectables linebreak="yes">
                  <selectable id="fcs_ckm.1.1_VPN_3">FIPS PUB 186-5, “Digital Signature Standard (DSS),” Appendix A.1 for RSA schemes</selectable>
                  <selectable id="fcs_ckm.1.1_VPN_4">FIPS PUB 186-5, “Digital Signature Standard (DSS),” Appendix A.2 for ECDSA schemes and implementing “NIST curve” P-384 and <selectables><selectable id="fcs_ckm.1.1_VPN_5">P-521</selectable><selectable id="fcs_ckm.1.1_VPN_6">no other curves</selectable></selectables></selectable>
                </selectables>
              </h:b>
              and specified cryptographic key sizes [<h:i>equivalent to, or greater than, a
				symmetric key strength of 128 bits</h:i>]
              <h:s>
                that meet the following: 
				[<h:b>assignment:</h:b>
                <h:i>list of standards</h:i>]
              </h:s>.
            </title>
            <note role="application">
              The keys that are required to be generated by the TOE through this requirement
				are intended to be used for the authentication of the VPN entities during the IKEv2
		    key exchange. While it is required that the public key be
				associated with an identity in an X509v3 certificate, this association is not
				required to be performed by the TOE, and instead is expected to be performed by
				a Certificate Authority in the OE.
              <h:br/>
              <h:br/>
              As indicated in FCS_IPSEC_EXT.1, the TOE is required to implement support for
				RSA or ECDSA (or both) for authentication.
              <h:br/>
              <h:br/>
              See NIST Special Publication 800-57, “Recommendation for Key Management”
				for information about equivalent key strengths.
            </note>
            <aactivity level="element">
              <TSS>
                The evaluator shall examine the TSS to verify that it describes how the key generation functionality is
					invoked.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>
                There are no guidance EAs for this requirement.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>If this functionality is implemented by the TSF, refer to the following EAs, depending on the TOE’s claimed Base-PP: <h:br/> <h:br/> <h:ul><h:li>GPOS PP: <no-link>FCS_CKM.1</no-link></h:li> <h:li>MDF PP: <no-link>FCS_CKM.1</no-link></h:li> <h:li>App PP: <no-link>FCS_CKM.1/AK</no-link></h:li> <h:li>MDM PP: <no-link>FCS_CKM.1</no-link></h:li></h:ul></Tests>
            </aactivity>
          </f-element>
          <audit-event table="atref-mandatory"/>
        </f-component>
        <!-- FCS_IPSEC_EXT.1 IPsec -->
        <f-component cc-id="fcs_ipsec_ext.1" id="fcs-ipsec-ext-1" name="IPsec">
          <consistency-rationale/>
          <comp-lev>requires the TSF to securely implement the IPsec protocol.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT: <h:ul><h:li>Specify VPN gateways to use for connections</h:li> <h:li>Specify IPsec VPN clients to use for connections</h:li> <h:li>Specify IPsec-capable network devices to use for connections</h:li> <h:li>Specify client credentials to be used for connections</h:li></h:ul></management>
          <audit>
            The following actions should be auditable if FAU_GEN Security Audit Data Generation is included in the
            PP/ST:
            <h:ul>
              <h:li>Decisions to DISCARD or BYPASS network packets processed by the TOE</h:li>
              <h:li>Failure to establish an IPsec SA</h:li>
              <h:li>Establishment/Termination of an IPsec SA</h:li>
            </h:ul>
          </audit>
          <dependencies><no-link>FCS_CKM.1</no-link> Cryptographic Key Generation<h:br/><h:br/><no-link>FCS_CKM.2</no-link> Cryptographic Key Distribution<h:br/><h:br/><no-link>FCS_COP.1</no-link> Cryptographic Operation<h:br/><h:br/></dependencies>
          <f-element id="fcs-ipsec-ext-1e1">
            <title>The TSF shall implement the IPsec architecture as specified in RFC 4301.</title>
            <note role="application">
              In the following elements of the FCS_IPSEC_EXT.1 component, it is allowable for some or all of the
			individual elements to be implemented by the platform on which the VPN client operates. However, this
			is only the case when the platform is within the TOE boundary, as is the case where this PP-Module is
			being claimed on top of a general-purpose OS or a mobile device.
              <h:br/>
              <h:br/>
              When the TOE is a standalone software application, the IPsec functionality must be implemented by the
			TSF, though it is permissible for the TSF to invoke cryptographic algorithm services from the TOE
			platform to support the TOE’s implementation of IPsec. The TOE may also rely on the TOE platform for
			X.509 certificate validation services, though it is the responsibility of the TSF to take the proper action
			based on the validation response that is returned.
              <h:br/>
              <h:br/>
              It is also permissible for the TSF to rely on low-level capabilities of the platform to perform enforcement
			and routing functions as a result of the policies the TSF maintains. For example, while the TSF must
			provide the capability to implement the Security Policy Database (SPD) abstraction, it is permissible for the TSF to
			depend on the platform-provided network stack to perform the low-level packet filtering and
			routing actions once the TSF has set up those rules as defined by the SPD.
              <h:br/>
              <h:br/>
              While enforcement of the IPsec requirements must be implemented by the TSF, it is permissible for the
			TSF to receive configuration of the IPsec behavior from an environmental source, most notably a VPN
			gateway.
              <h:br/>
              <h:br/>
              RFC 4301 calls for an IPsec implementation to protect IP traffic through the use
				of an SPD. The SPD is used to define how IP packets are
				to be handled: PROTECT the packet (e.g., encrypt the packet), BYPASS the IPsec
				services (e.g., no encryption), or DISCARD the packet (e.g., drop the packet). The
				SPD can be implemented in various ways, including router access control lists,
				firewall rulesets, a "traditional" SPD, etc. Regardless of the implementation
				details, there is a notion of a "rule" that a packet is "matched" against and a
				resulting action that takes place.
              <h:br/>
              <h:br/>
              While there must be a means to order the rules, a general approach to ordering
				is not mandated, as long as the TOE can distinguish the IP packets and apply the
				rules accordingly. There may be multiple SPDs (one for each network interface),
				but this is not required.
              <h:br/>
              <h:br/>
              A VPN gateway fully implements the IPsec capability and provides an
				administrative interface to establish and populate an SPD. A VPN client is not
				required to provide an administrative interface to create or maintain an SPD.
              <h:br/>
              <h:br/>
              As an alternative, a client may provide an interface that can be used by another
				application or network entity, such as a VPN gateway, as a means to establish
				and populate the SPD. In either of these cases (the client provides an
				administrative interface, or an API), while the client is expected to maintain the
				SPD abstraction, it is permitted for the low-level enforcement and routing
				activities to be implemented by platform capabilities (e.g., a network driver) as
				configured by the client.
            </note>
            <aactivity level="component">
              <TSS>
                In addition to the TSS EAs for the individual FCS_IPSEC_EXT.1 elements below, the evaluator shall perform
			the following:
                <h:br/>
                <h:br/>
                If the TOE boundary includes a general-purpose OS or mobile device, the evaluator shall
			examine the TSS to ensure that it describes whether the VPN client capability is architecturally integrated
			with the platform itself or it is a separate executable that is bundled with the platform.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>
                In addition to the guidance EAs for the individual FCS_IPSEC_EXT.1 elements below, the
			evaluator shall perform the following:
                <h:br/>
                <h:br/>
                If the configuration of the IPsec behavior is from an environmental source, most notably a VPN gateway
			(e.g through receipt of required connection parameters from a VPN gateway), the evaluator shall ensure
			that the operational guidance contains any appropriate information for ensuring that this configuration
			can be properly applied.
                <h:br/>
                <h:br/>
                Note, in this case, that the implementation of the IPsec protocol must be enforced entirely within the TOE
			boundary; i.e. it is not permissible for a software application TOE to be a graphical front-end for IPsec
			functionality implemented totally or in part by the underlying OS platform. The behavior referenced here
			is for the possibility that the configuration of the IPsec connection is initiated from outside the TOE, which
			is permissible so long as the TSF is solely responsible for enforcing the configured behavior. However, it is
			allowable for the TSF to rely on low-level, platform-provided networking functions to implement the SPD
			from the client (e.g., enforcement of packet routing decisions).
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>As a prerequisite for performing the Test EAs for the individual FCS_IPSEC_EXT.1 elements below, the evaluator shall do the following: <h:br/> <h:br/>The evaluator shall minimally create a test environment equivalent to the test environment illustrated below. It is expected that the traffic generator is used to construct network packets and will provide the evaluator with the ability to manipulate fields in the ICMP, IPv4, IPv6, UDP, and TCP packet headers. The evaluator shall provide justification for any differences in the test environment. <h:br/> <h:br/> <figure entity="images/network.png" title="Test Environment" id="fig-testenv"/> Note that the evaluator shall perform all tests using the VPN client and a representative sample of platforms listed in the ST (for TOEs that claim to support multiple platforms). <h:br/> <h:br/></Tests>
            </aactivity>
            <aactivity level="element">
              <TSS>
                The evaluator shall examine the TSS and determine that it describes how the IPsec capabilities are
				implemented.
                <h:br/>
                <h:br/>
                If the TOE is a standalone software application, the evaluator shall ensure that the TSS asserts that all
				IPsec functionality is implemented by the TSF. The evaluator shall also ensure that the TSS identifies what
				platform functionality the TSF relies on to support its IPsec implementation, if any (e.g., does it invoke
				cryptographic primitive functions from the platform’s cryptographic library, enforcement of packet
				routing decisions by low-level network drivers).
                <h:br/>
                <h:br/>
                If the TOE is part of a general-purpose desktop or mobile OS, the evaluator shall ensure
				that the TSS describes at a high level the architectural relationship between the VPN client portion of the
				TOE and the rest of the TOE (e.g., is the VPN client an integrated part of the OS or is it a standalone
				executable that is bundled into the OS package). If the SPD is implemented by the underlying platform in
				this case, then the TSS describes how the client interacts with the platform to establish and populate the
				SPD, including the identification of the platform's interfaces that are used by the client.
                <h:br/>
                <h:br/>
                In all cases, the evaluator shall also ensure that the TSS describes how the client interacts with the network
				stack of the platforms on which it can run (e.g., does the client insert itself within the stack via kernel
				mods, does the client simply invoke APIs to gain access to network services).
                <h:br/>
                <h:br/>
                The evaluator shall ensure that the TSS describes how the SPD is implemented and the rules for processing
				both inbound and outbound packets in terms of the IPsec policy. The TSS describes the rules that are
				available and the resulting actions available after matching a rule. The TSS describes how the available
				rules and actions form the SPD using terms defined in RFC 4301, such as BYPASS (e.g., no encryption),
				DISCARD (e.g., drop the packet), and PROTECT (e.g., encrypt the packet).
                <h:br/>
                <h:br/>
                As noted in section 4.4.1 of RFC 4301, the processing of entries in the SPD is non-trivial, and the evaluator
				shall determine that the description in the TSS is sufficient to determine which rules will be applied given
				the rule structure implemented by the TOE. For example, if the TOE allows specification of ranges,
				conditional rules, etc., the evaluator shall determine that the description of rule processing (for both
				inbound and outbound packets) is sufficient to determine the action that will be applied, especially in the
				case where two different rules may apply. This description shall cover both the initial packets (that is, no
				SA is established on the interface or for that particular packet) as well as packets that are part of an
				established SA.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>
                The evaluator shall examine the operational guidance to verify it describes how the SPD is created and
		configured. If there is an administrative interface to the client, then the guidance describes how the
		administrator specifies rules for processing a packet. The description includes all three cases - a rule that
		ensures packets are encrypted/decrypted, dropped, and allowing a packet to flow in plaintext. The
		evaluator shall determine that the description in the operational guidance is consistent with the
		description in the TSS, and that the level of detail in the operational guidance is sufficient to allow the
		administrator to set up the SPD in an unambiguous fashion. This includes a discussion of how ordering of
		rules impacts the processing of an IP packet.
                <h:br/>
                <h:br/>
                If the client is configured by an external application, such as the VPN gateway, then the operational
		guidance should indicate this and provide a description of how the client is configured by the external
		application. The description should contain information as to how the SPD is established and set up in an
		unambiguous fashion. The description should also include what is configurable via the external
		application, how ordering of entries may be expressed, as well as the impacts that ordering of entries may
		have on the packet processing.
                <h:br/>
                <h:br/>
                In either case, the evaluator shall ensure the description provided in the TSS is consistent with the capabilities
		and description provided in the operational guidance.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                Depending on the implementation, the evaluator may be required to use a VPN gateway or some form of application to configure the client. For Test 2, the evaluator is required to choose an application that allows for the configuration of the full set of capabilities of the VPN client (in conjunction with the platform). For example, if the client provides a robust interface that allows for specification of wildcards, subnets, etc., it is unacceptable for the evaluator to choose a VPN gateway that only allows for specifying a single fully qualified IP addresses in the rule.
                <h:br/>
                <h:br/>
                The evaluator shall perform the following tests:
                <testlist>
                  <test>The evaluator shall configure an SPD on the client that is capable of the following: dropping a packet, encrypting a packet, and allowing a packet to flow in plaintext. The selectors used in the construction of the rule shall be different such that the evaluator can generate a packet and send packets to the client with the appropriate fields (fields that are used by the rule - e.g., the IP addresses, TCP/UDP ports) in the packet header. The evaluator shall perform both positive and negative test cases for each type of rule. The evaluator shall observe via the audit trail and packet captures that the TOE exhibited the expected behavior: appropriate packets were dropped, allowed through without modification, was encrypted by the IPsec implementation.</test>
                  <test>The evaluator shall devise several tests that cover a variety of scenarios for packet processing. These scenarios must exercise the range of possibilities for SPD entries and processing modes as outlined in the TSS and operational guidance. Potential areas to cover include rules with overlapping ranges and conflicting entries, inbound and outbound packets, and packets that establish SAs as well as packets that belong to established SAs. The evaluator shall verify, via the audit trail and packet captures, for each scenario that the expected behavior is exhibited, and is consistent with both the TSS and the operational guidance.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fcs-ipsec-ext-1e2">
            <title>
              The TSF shall implement
              <selectables>
                <selectable id="fcs_ipsec_ext.1.2_1">tunnel mode</selectable>
                <selectable id="fcs_ipsec_ext.1.2_2">transport mode</selectable>
              </selectables>.
            </title>
            <note role="application">If the TOE is used to connect to a VPN gateway for the purposes of establishing a
				secure connection to a private network, the ST author is expected to select
				tunnel mode. If the TOE uses IPsec to establish an end-to-end connection to
				another IPsec VPN client, the ST author is expected to select transport mode. If
				the TOE uses IPsec to establish a connection to a specific endpoint device for the
				purpose of secure remote administration, the ST author is expected to select
				transport mode.</note>
            <aactivity level="element">
              <TSS>
                The evaluator shall check the TSS to ensure it states that the VPN can be established to operate in tunnel
			mode, transport mode, or both (as selected).
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>
                The evaluator shall confirm that the operational guidance contains instructions on how to configure the
			connection in each mode selected.
                <h:br/>
                <h:br/>
                If both transport and tunnel modes are implemented, the evaluator shall review the operational
			guidance to determine how the use of a given mode is specified.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                The evaluator shall perform the following tests based on the selections chosen:
                <testlist>
                  <test>[conditional]: If tunnel mode is selected, the evaluator shall use the operational guidance to configure the TOE and a VPN gateway to operate in tunnel mode. The evaluator shall configure the TOE and the VPN gateway to use any of the allowable cryptographic algorithms, authentication methods, etc. to ensure an allowable SA can be negotiated. The evaluator shall then initiate a connection from the client to connect to the VPN gateway peer. The evaluator shall observe (for example, in the audit trail and the captured packets) that a successful connection was established using the tunnel mode.</test>
                  <test>[conditional]: If transport mode is selected, the evaluator shall use the operational guidance to configure the TOE to operate in transport mode and also configures an IPsec peer to accept IPsec connections using transport mode. The evaluator shall configure the TOE and the endpoint device to use any of the allowed cryptographic algorithms, authentication methods, etc. to ensure an allowable SA can be negotiated. The evaluator shall then initiate a connection from the TOE to connect to the remote endpoint. The evaluator shall observe (for example, in the audit trail and the captured packets) that a successful connection was established using the transport mode.</test>
                  <test>[conditional]: If both tunnel and transport modes are selected, the evaluator shall perform both Test 1 and Test 2 above, demonstrating that the TOE can be configured to support both modes.</test>
                  <test>[conditional]: If both tunnel and transport modes are selected, the evaluator shall modify the testing for FCS_IPSEC_EXT.1 to include the supported mode for SPD PROTECT entries to show that they only apply to traffic that is transmitted or received using the indicated mode.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fcs-ipsec-ext-1e3">
            <title>The TSF shall have a nominal, final entry in the SPD that matches anything that
				is otherwise unmatched, and discards it.</title>
            <aactivity level="element">
              <TSS>
                The evaluator shall examine the TSS to verify that the TSS provides a description of how a packet is
		processed against the SPD and that if no “rules” are found to match, that a final rule exists, either implicitly
		or explicitly, that causes the network packet to be discarded.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>
                The evaluator shall check that the operational guidance provides instructions on how to construct or
		acquire the SPD and uses the guidance to configure the TOE for the following test.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                The evaluator shall perform the following test:
                <h:br/>
                <testlist>
                  <test>The evaluator shall configure the SPD such that it has entries that contain operations that DISCARD, PROTECT, and (if applicable) BYPASS network packets. The evaluator may use the SPD that was created for verification of FCS_IPSEC_EXT.1.1. The evaluator shall construct a network packet that matches a BYPASS entry and send that packet. The evaluator should observe that the network packet is passed to the proper destination interface with no modification. The evaluator shall then modify a field in the packet header; such that it no longer matches the evaluator-created entries (there may be a “TOE-created” final entry that discards packets that do not match any previous entries). The evaluator sends the packet, and observes that the packet was not permitted to flow to any of the TOE’s interfaces.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fcs-ipsec-ext-1e4">
            <title>
              The TSF shall implement the IPsec protocol ESP as defined by RFC 4303 using the cryptographic algorithms
				      [<h:i>AES-GCM-256 as specified in RFC 4106</h:i>].
            </title>
            <ext-comp-def-title>
              <title>
                The TSF shall implement the IPsec protocol ESP as defined by RFC 4303 using the cryptographic algorithms
                <assignable>supported cryptographic algorithms</assignable>.
              </title>
            </ext-comp-def-title>
            <note role="application">If this functionality is configurable, the TSF may be configured by a VPN gateway
				or by an administrator of the TOE itself.</note>
            <aactivity level="element">
              <TSS>
                The evaluator shall examine the TSS to verify that the algorithm AES-GCM-256 is
		implemented. In addition, the evaluator shall ensure that the SHA-based HMAC 
		algorithm conforms to the algorithms specified in the relevant iteration of FCS_COP.1 from
		the Base-PP that applies to keyed-hash message authentication.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>
                The evaluator shall check the operational guidance to ensure it provides instructions on how the TOE is
		configured to use the algorithms selected in this component and whether this is performed through direct
		configuration, defined during initial installation, or defined by acquiring configuration settings from an
		environmental component.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall configure the TOE as indicated in the operational guidance, configuring the TOE to use the AES-GCM-256 algorithm, and attempt to establish a connection using ESP.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fcs-ipsec-ext-1e5">
            <title>
              The TSF shall implement the protocol:
            [<h:i>IKEv2 as defined in RFC 7296 (with mandatory support for NAT traversal as
					specified in section 2.23), RFC 8247, and RFC 4868 for hash functions</h:i>].
            </title>
            <ext-comp-def-title>
              <title>The TSF shall implement the protocol: <assignable>key exchange protocol</assignable>.</title>
            </ext-comp-def-title>
            <aactivity level="element">
              <TSS>The evaluator shall examine the TSS to verify that IKEv2 is implemented.</TSS>
              <Guidance>
                The evaluator shall check the operational guidance to ensure it instructs the administrator how to
              configure the TOE to support only IKEv2 (if necessary), and uses the guidance to configure the TOE to
              perform NAT traversal for the tests below.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall configure the TOE so that it will perform NAT traversal processing as described in the TSS and RFC 7296, section 2.23. The evaluator shall initiate an IPsec connection and determine that the NAT is successfully traversed.</test>
                  <test>The evaluator shall configure a remote peer to support IKEv1 only. If the TOE's supported versions of IKE is configurable, the evaluator shall follow the instructions specified in the operational guidance to ensure that only IKEv2 is supported. The evaluator shall then attempt to establish a connection between the TOE and that peer and verify the TSF rejects the connection attempt based on its lack of support for IKEv1.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fcs-ipsec-ext-1e6">
            <title>
              The TSF shall ensure the encrypted payload in the [<h:i>IKEv2</h:i>]
				protocol uses the cryptographic algorithms [<h:i>AES-GCM-256 as specified in RFC 5282</h:i>] and no other algorithm.
            </title>
            <ext-comp-def-title>
              <title>
                The TSF shall ensure the encrypted payload in the
                <assignable>key exchange protocol</assignable>
                protocol uses the cryptographic algorithms
                <assignable>supported cryptographic algorithms</assignable>
                and no other algorithm.
              </title>
            </ext-comp-def-title>
            <note role="application">If this functionality is configurable, the TSF may be configured by a VPN gateway
				or by an administrator of the TOE itself.</note>
            <aactivity level="element">
              <TSS>The evaluator shall ensure the TSS identifies the algorithms used for encrypting the IKEv2 payload and that the algorithm AES-GCM-256 is specified.</TSS>
              <Guidance>
                The evaluator shall check the operational guidance to ensure it provides instructions on how the TOE is
		configured to use the algorithms selected in this component and whether this is performed through the TOE's default configuration (i.e., no configuration is necessary), 
    direct configuration, defined during initial installation, or defined by acquiring configuration settings from an
		environmental component.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                The evaluator shall use the operational guidance to configure the TOE (or to configure the OE to have the TOE receive configuration) to perform the following test for the selected ciphersuite:
                <h:br/>
                <testlist>
                  <test>The evaluator shall configure the TOE to use the ciphersuite under test to encrypt the IKEv2 payload and establish a connection with a peer device, which is configured to only accept the payload encrypted using the indicated ciphersuite. The evaluator shall confirm the algorithm was that used in the negotiation. The evaluator shall confirm that the connection is successful by confirming that data can be passed through the connection once it is established. For example, the evaluator may connect to a webpage on the remote network and verify that it can be reached.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fcs-ipsec-ext-1e7">
            <title>
              The TSF shall ensure that [<h:i>IKEv2 SA</h:i>] lifetimes can be configured by
              <selectables>
                <selectable id="fcs_ipsec_ext.1.7_1">an administrator</selectable>
                <selectable id="fcs_ipsec_ext.1.7_2">a VPN gateway</selectable>
              </selectables>
              based on
              <selectables>
                <selectable id="fcs_ipsec_ext.1.7_3">number of packets/number of bytes</selectable>
                <selectable id="fcs_ipsec_ext.1.7_4">length of time</selectable>
              </selectables>]. 
				If length of time is used, it must include at least one option that
				is 24 hours or less for IKE SAs and eight hours or less for Child SAs.
            </title>
            <ext-comp-def-title>
              <title>
                The TSF shall ensure that
                <assignable>key exchange protocol</assignable>
                lifetimes can be configured by
                <assignable>authorized subjects</assignable>
                based on
                <assignable>values or metrics for maximum validity of negotiated keys</assignable>. If length of time is used, it must include at least one option that
				is 24 hours or less for Phase 1 SAs and eight hours or less for Phase 2 SAs.
              </title>
            </ext-comp-def-title>
            <note role="application">
              There is a selection that allows the
				ST author to specify which entity is responsible for “configuring” the life of the
				security association (SA). An implementation that allows an administrator to configure the client or a
				VPN gateway that pushes the SA lifetime down to the client are both acceptable.
              <h:br/>
              <h:br/>
              As far as SA lifetimes are concerned, the TOE can limit the lifetime based on the
				number of bytes transmitted, or the number of packets transmitted. Either
				packet-based or volume-based SA lifetimes are acceptable; the ST author makes
				the appropriate selection to indicate which type of lifetime limits are supported.
              <h:br/>
              <h:br/>
              For IKEv2, there are no
				hard-coded limits, therefore it is required that an administrator be able to
				configure the values. In general, instructions for setting the parameters of the
				implementation, including lifetime of the SAs, should be included in the 
				operational guidance generated for AGD_OPE. It is appropriate to refine the
				requirement in terms of number of MB or KB instead of number of packets, as long
				as the TOE is capable of setting a limit on the amount of traffic that is protected
				by the same key (the total volume of all IPsec traffic protected by that key).
            </note>
            <aactivity level="element">
              <TSS>There are no TSS EAs for this requirement.<h:br/><h:br/></TSS>
              <Guidance>
                The evaluator shall check the operational guidance to ensure it provides instructions on how the TOE
		configures the values for SA lifetimes. In addition, the evaluator shall check that the guidance has the
		option for either the administrator or VPN gateway to configure IKE SAs if time-based limits are
		supported. Currently, there are no values mandated for the number of packets or number of bytes; the
		evaluator shall simply check the operational guidance to ensure that this can be configured if selected in
		the requirement.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                When testing this functionality, the evaluator shall ensure that both sides are configured appropriately. From the RFC "In IKEv2, each end of the SA is responsible for enforcing its own lifetime policy on the SA and rekeying the SA when necessary. If the two ends have different lifetime policies, the end with the shorter lifetime will end up always being the one to request the rekeying. If the two ends have the same lifetime policies, it is possible that both will initiate a rekeying at the same time (which will result in redundant SAs). To reduce the probability of this happening, the timing of rekeying requests SHOULD be jittered."<h:br/>
                <h:br/>
                Each of the following tests shall be performed:
                <testlist>
                  <test>[conditional]: The evaluator shall configure a maximum lifetime in terms of the # of packets (or bytes) allowed following the operational guidance. The evaluator shall establish an SA and determine that once the allowed # of packets (or bytes) through this SA is exceeded, the connection is closed.</test>
                  <test>[conditional]: The evaluator shall construct a test where an IKEv2 IKE_SA is established and attempted to be maintained for more than 24 hours before it is renegotiated. The evaluator shall observe that this SA is closed or renegotiated in 24 hours or less. If such an action requires that the TOE be configured in a specific way, the evaluator shall implement tests demonstrating that the configuration capability of the TOE works as documented in the operational guidance.</test>
                  <test>[conditional]: The evaluator shall perform a test similar to Test 2 for Child SAs, except that the lifetime will be 8 hours or less instead of 24 hours or less.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fcs-ipsec-ext-1e8">
            <title>
              The TSF shall ensure that IKE implements DH Groups
              <h:ul>
                <h:li>20 (384-bit Random ECP) according to RFC 5114 and</h:li>
              </h:ul>
              <selectables linebreak="yes">
                <selectable id="fcs_ipsec_ext.1.8_1">15 (3072-bit MODP) according to RFC 3526</selectable>
                <selectable id="fcs_ipsec_ext.1.8_2">16 (4096-bit MODP) according to RFC 3526</selectable>
                <selectable id="fcs_ipsec_ext.1.8_3">17 (6144-bit MODP) according to RFC 3526</selectable>
                <selectable id="fcs_ipsec_ext.1.8_4">18 (8192-bit MODP) according to RFC 3526</selectable>
                <selectable id="fcs_ipsec_ext.1.8_5">21 (521-bit Random ECP) according to RFC 5114</selectable>
              </selectables>.
            </title>
            <note role="application">
              The selection is used to specify additional DH groups supported. This applies to
				IKEv2 exchanges. It should be noted that if any additional DH groups
				are specified, they must comply with the requirements (in terms of the
				ephemeral keys that are established) listed in
              <no-link>FCS_CKM.1</no-link>.
              <h:br/>
              <h:br/>
              Since the implementation may allow different DH groups to be
				negotiated for use in forming the SAs, the assignments in FCS_IPSEC_EXT.1.9
				and FCS_IPSEC_EXT.1.10 may contain multiple values. For each DH group
				supported, the ST author consults Table 2 in 800-57 to determine the “bits of
				security” associated with the DH group. Each unique value is then used to fill in
				the assignment (for 1.9 they are doubled; for  they are inserted directly into
				the assignment). For example, suppose the implementation supports DH group
				15 (3072-bit MODP) and group 20 (ECDH using NIST curve P-384). From Table 2,
				the bits of security value for group 15 is 128, and for group 20 it is 192. For
				FCS_IPSEC_EXT.1.9, then, the assignment would read “[256, 384]” and for
				FCS_IPSEC_EXT.1.10 it would read “[128, 192]”
            </note>
            <aactivity level="element">
              <TSS>
                The evaluator shall check to ensure that the DH groups specified in the requirement are listed as being
		supported in the TSS. If there is more than one DH group supported, the evaluator shall check to ensure the
		TSS describes how a particular DH group is specified/negotiated with a peer.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>There are no guidance EAs for this requirement.<h:br/><h:br/></Guidance>
              <Tests>
                The evaluator shall perform the following test:
                <testlist>
                  <test>For each supported DH group, the evaluator shall test to ensure that IKEv2 can be successfully completed using that particular DH group.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fcs-ipsec-ext-1e9">
            <title>
              The TSF shall generate the secret value x used in the
              IKE DH key exchange (“x” in g^x mod p) using the random bit
              generator specified in FCS_RBG.1
              <h:b>(or FCS_RBG_EXT.1 in the case of <xref to="bibAppPP"/>)</h:b>, and having a length of at least
              <assignable>(one or more) numbers of bits that is at least twice the “bits of security” value associated with the negotiated DH group as listed in Table 2 of NIST SP 800-57, Recommendation for Key Management – Part 1: General</assignable>
              bits.
            </title>
            <ext-comp-def-title>
              <title>
                The TSF shall generate the secret value x used in the
                IKE DH key exchange (“x” in g^x mod p) using the random bit
                generator specified in FCS_RBG.1, and having a length of at least
                <assignable>number of bits</assignable>
                bits.
              </title>
            </ext-comp-def-title>
            <aactivity level="element">
              <TSS>
                The evaluator shall check to ensure that, for each DH group supported, the TSS describes the process for
		generating "x" (as defined in FCS_IPSEC_EXT.1.9) and each nonce. The evaluator shall verify that the TSS
		indicates that the random number generated that meets the requirements in this EP is used, and that the
		length of "x" and the nonces meet the stipulations in the requirement.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>There are no guidance EAs for this requirement.<h:br/><h:br/></Guidance>
              <Tests>There are no test EAs for this requirement.</Tests>
            </aactivity>
          </f-element>
          <f-element id="fcs-ipsec-ext-1e10">
            <title>
              The TSF shall generate nonces used in IKE exchanges in a manner such that the
				probability that a specific nonce value will be repeated during the life a specific
				IPsec SA is less than 1 in 2^<assignable>(one or more) “bits of security” values associated with the negotiated DH group as listed in Table 2 of NIST SP 800-57, Recommendation for Key Management – Part 1: General</assignable>.
            </title>
            <aactivity level="element">
              <no-tests>EAs for this element are tested through EAs for FCS_IPSEC_EXT.1.9.</no-tests>
            </aactivity>
          </f-element>
          <f-element id="fcs-ipsec-ext-1e11">
            <title>
              The TSF shall ensure that [<h:i>IKEv2</h:i>]
              performs peer authentication using  
                  [<h:i><selectables>
                  <selectable id="fcs_ipsec_ext.1.11_1">RSA</selectable>
                  <selectable id="fcs_ipsec_ext.1.11_2">ECDSA</selectable>
                </selectables>
                that use X.509v3 certificates that conform to RFC 4945 and
                <selectables>
                  <selectable id="sel-ipsec-e11-psk">Pre-shared Keys that conform to RFC 8784</selectable>
                  <selectable id="sel-ipsec-e11-eapttls">Pre-shared Keys transmitted via EAP-TTLS</selectable>
                  <selectable id="sel-ipsec-e11-eaptls">EAP-TLS</selectable>
                  <selectable id="fcs_ipsec_ext.1.11_3" exclusive="yes">no other method</selectable>
                </selectables></h:i>].
            </title>
            <ext-comp-def-title>
              <title>
                The TSF shall ensure that
                <assignable>key exchange protocol</assignable>
                performs peer authentication using
                <assignable>supported authentication mechanisms</assignable>.
              </title>
            </ext-comp-def-title>
            <note role="application">
              At least one public-key-based peer authentication method is required in order to
              conform to this PP-Module; one or more of the public key schemes is chosen by
              the ST author to reflect what is implemented. The ST author also ensures that
              appropriate FCS requirements reflecting the algorithms used (and key
              generation capabilities, if provided) are listed to support those methods. Note
              that the TSS will elaborate on the way in which these algorithms are to be used. X.509 certificates will be validated against FIA_X509_EXT.1 from
              <xref to="X509"/>, which is referenced in each supported Base-PP.
              <h:br/>
              <h:br/>
              If a selection with “EAP-TLS” or “EAP-TTLS” is chosen, the selection-based requirement FCS_EAP_EXT.1 must be claimed. 
              When an EAP method is used, verification occurs via an external authentication server.
              <h:br/>
              <h:br/>
              If any selection including “pre-shared keys” is chosen, the selection-based requirement FIA_PSK_EXT.1 must be claimed.
              <h:br/>
              <h:br/>
              Multifactor support can be achieved via traffic filtering in accordance with FPF_MFA_EXT.1.
              <h:br/>
              <h:br/>
              It is acceptable for different use cases to leverage different selections. If this is the case, it must be identified.
              <h:br/>
              <h:br/>
              This SFR is modified from its definition in the Base-PP by adding new selections for authentication methods.
            </note>
            <aactivity level="element">
              <TSS>
                The evaluator shall ensure that the TSS describes whether peer authentication is performed using RSA, ECDSA, or both.
                <h:br/>
                <h:br/>
                If any selection with pre-shared keys is chosen in the selection, the evaluator shall check to ensure that the TSS describes how those selections work in conjunction with authentication of IPsec connections.
                <h:br/>
                <h:br/>
                The evaluator shall ensure that the TSS describes how the TOE compares the peer’s presented identifier to the reference identifier. This description shall include whether the certificate presented identifier is compared to the ID payload presented identifier, which fields of the certificate are used as the presented identifier (DN, Common Name, or SAN), and if multiple fields are supported, the logical order comparison. If the ST author assigned an additional identifier type, the TSS description shall also include a description of that type and the method by which that type is compared to the peer’s presented certificate.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>
                If any selection with “Pre-shared Keys” is selected, the evaluator shall check that the operational guidance
		      describes any configuration necessary to enable any selected authentication mechanisms.
                <h:br/>
                <h:br/>
                If any method other than no other method is selected, the evaluator shall check that the operational guidance describes any
		      configuration necessary to enable any selected authentication mechanisms.
                <h:br/>
                <h:br/>
                The evaluator shall ensure that the operational guidance describes how to set up the TOE to use the cryptographic
		algorithms RSA, ECDSA, or either, depending on which is claimed in the ST.
                <h:br/>
                <h:br/>
                In order to construct the environment and configure the TOE for the following tests, the evaluator shall
		ensure that the operational guidance also describes how to configure the TOE to connect to a trusted CA,
		and ensure a valid certificate for that CA is loaded into the TOE as a trusted CA.
                <h:br/>
                <h:br/>
                The evaluator shall also ensure that the operational guidance includes the configuration of the reference
		identifiers for the peer.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                For efficiency’s sake, the testing that is performed here has been combined with the testing for
                <no-link>FIA_X509_EXT.2</no-link>
                in
                <xref to="X509"/>
                and
                <no-link>FIA_X509_EXT.4</no-link>
                (for IPsec connections and depending on the Base-PP),
                <no-link>FCS_IPSEC_EXT.1.12</no-link>, and
                <no-link>FCS_IPSEC_EXT.1.13</no-link>. The following tests shall be repeated for each peer authentication protocol selected in the
                <no-link>FCS_IPSEC_EXT.1.11</no-link>
                selection above:
                <testlist>
                  <test>The evaluator shall have the TOE generate a public-private key pair and submit a CSR (Certificate Signing Request) to a CA (trusted by both the TOE and the peer VPN used to establish a connection) for its signature. The values for the DN (Common Name, Organization, Organizational Unit, and Country) will also be passed in the request. Alternatively, the evaluator may import to the TOE a previously generated private key and corresponding certificate.</test>
                  <test>The evaluator shall configure the TOE to use a private key and associated certificate signed by a trusted CA and shall establish an IPsec connection with the peer.</test>
                  <test>The evaluator shall test that the TOE can properly handle revoked certificates – conditional on whether CRL or OCSP is selected; if both are selected, then a test is performed for each method. For this current version of the PP-Module, the evaluator has to only test one up in the trust chain (future drafts may require to ensure the validation is done up the entire chain). The evaluator shall ensure that a valid certificate is used and that the SA is established. The evaluator shall then attempt the test with a certificate that will be revoked (for each method chosen in the selection) to ensure when the certificate is no longer valid that the TOE will not establish an SA.</test>
                  <test>[conditional]: For each selection made, the evaluator shall verify factors are required, as indicated in the operational guidance, to establish an IPsec connection with the server.</test>
                </testlist>
                <testlist>
                  For each supported identifier type (excluding DNs), the evaluator shall repeat the following tests:
                  <test>For each field of the certificate supported for comparison, the evaluator shall configure the peer’s reference identifier on the TOE (per the administrative guidance) to match the field in the peer’s presented certificate and shall verify that the IKEv2 authentication succeeds.</test>
                  <test>For each field of the certificate support for comparison, the evaluator shall configure the peer’s reference identifier on the TOE (per the administrative guidance) to not match the field in the peer’s presented certificate and shall verify that the IKEv2 authentication fails.</test>
                  <test>[conditional]: If, according to the TSS, the TOE supports both Common Name and SAN certificate fields and uses the preferred logic outlined in the Application Note, the tests above with the Common Name field shall be performed using peer certificates with no SAN extension. Additionally, the evaluator shall configure the peer’s reference identifier on the TOE to not match the SAN in the peer’s presented certificate, but to match the Common Name in the peer’s presented certificate and verify that the IKEv2 authentication fails.</test>
                  <test>[conditional]: If the TOE supports DN identifier types, the evaluator shall configure the peer's reference identifier on the TOE (per the administrative guidance) to match the subject DN in the peer's presented certificate and shall verify that the IKEv2 authentication succeeds. To demonstrate a bit-wise comparison of the DN, the evaluator shall change a single bit in the DN (preferably, in an Object Identifier (OID) in the DN) and verify that the IKEv2 authentication fails. To demonstrate a comparison of DN values, the evaluator shall change any one of the four DN values and verify that the IKEv2 authentication fails.</test>
                  <test>[conditional]: If the TOE supports both IPv4 and IPv6 and supports IP address identifier types, the evaluator must repeat tests 1 and 2 with both IPv4 address identifiers and IPv6 identifiers. Additionally, the evaluator shall verify that the TOE verifies that the IP header matches the identifiers by setting the presented identifiers and the reference identifier with the same IP address that differs from the actual IP address of the peer in the IP headers and verifying that the IKEv2 authentication fails.</test>
                  <test>[conditional]: If, according to the TSS, the TOE performs comparisons between the peer’s ID payload and the peer’s certificate, the evaluator shall repeat the following test for each combination of supported identifier types and supported certificate fields (as above). The evaluator shall configure the peer to present a different ID payload than the field in the peer’s presented certificate and verify that the TOE fails to authenticate the IKEv2 peer.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fcs-ipsec-ext-1e12">
            <title>
              The TSF shall not establish an SA if the
              <selectables>
                <selectable id="fcs_ipsec_ext.1.12_1">IP address</selectable>
                <selectable id="fcs_ipsec_ext.1.12_2">Fully Qualified Domain Name (FQDN)</selectable>
                <selectable id="fcs_ipsec_ext.1.12_3">user FQDN</selectable>
                <selectable id="fcs_ipsec_ext.1.12_4">Distinguished Name (DN)</selectable>
              </selectables>
              and
              <selectables>
                <selectable id="fcs_ipsec_ext.1.12_5" exclusive="yes">no other reference identifier type</selectable>
                <selectable id="fcs_ipsec_ext.1.12_7">
                  <assignable>other supported reference identifier types</assignable>
                </selectable>
              </selectables>
              contained in a certificate does not match the expected values for the
				entity attempting to establish a connection.
            </title>
            <note role="application">The TOE must support at least one of the following identifier types: IP address,
				FQDN, user FQDN, or DN.
				In the future, the TOE will be required to support all of these identifier types. The
				TOE is expected to support as many IP address formats (IPv4 and IPv6) as IP
				versions supported by the TOE in general. The ST author may assign additional
				supported identifier types in the second selection.</note>
            <aactivity level="element">
              <no-tests>EAs for this element are tested through EAs for FCS_IPSEC_EXT.1.11.</no-tests>
            </aactivity>
          </f-element>
          <f-element id="fcs-ipsec-ext-1e13">
            <title>The TSF shall not establish an SA if the presented identifier does not match the
				configured reference identifier of the peer.</title>
            <note role="application">
              At this time, only the comparison between the presented identifier in the peer’s
				certificate and the peer’s reference identifier is mandated by the testing below.
				However, in the future, this requirement will address two aspects of the peer
				certificate validation: 1) comparison of the peer’s ID payload to the peer’s
				certificate, which are both presented identifiers, as required by RFC 4945 and 2)
				verification that the peer identified by the ID payload and the certificate is the
				peer expected by the TOE (per the reference identifier). At that time, the TOE will
				be required to demonstrate both aspects (i.e. that the TOE enforces that the
				peer’s ID payload matches the peer’s certificate, which both match configured
				peer reference identifiers).
              <h:br/>
              <h:br/>
              Excluding the DN identifier type (which is necessarily the Subject DN in the peer
				certificate), the TOE may support the identifier in either the Common Name or
				Subject Alternative Name (SAN) or both. If both are supported, the preferred
				logic is to compare the reference identifier to a presented SAN, and only if the
				peer’s certificate does not contain a SAN, to fall back to a comparison against
				the Common Name. In the future, the TOE will be required to compare the
				reference identifier to the presented identifier in the SAN only, ignoring the
				Common Name.
              <h:br/>
              <h:br/>
              The configuration of the peer reference identifier is addressed by
				FMT_SMF.1.1/VPN.
            </note>
            <aactivity level="element">
              <no-tests>EAs for this element are tested through EAs for FCS_IPSEC_EXT.1.11.</no-tests>
            </aactivity>
          </f-element>
          <f-element id="fcs-ipsec-ext-1e14">
            <title>
              The
              <selectables>
                <selectable id="fcs_ipsec_ext.1.14_1">TSF</selectable>
                <selectable id="fcs_ipsec_ext.1.14_2">VPN gateway</selectable>
              </selectables>
              shall be able to ensure by default that the strength of the symmetric algorithm (in terms 
				of the number of bits in the key) negotiated to protect the 
				[<h:i>IKEv2 IKE_SA</h:i>] connection is greater than or equal to the strength of the symmetric algorithm
				(in terms of the number of bits in the key) negotiated to protect the [<h:i>IKEv2 CHILD_SA</h:i>] connection.
            </title>
            <ext-comp-def-title>
              <title>
                The
                <selectables>
                  <selectable>TSF</selectable>
                  <selectable>VPN gateway</selectable>
                </selectables>
                shall be able to ensure by default that the strength of the symmetric algorithm (in terms 
				of the number of bits in the key) negotiated to protect the
                <selectables>
                  <selectable>IKEv1 Phase 1</selectable>
                  <selectable>IKEv2 IKE_SA</selectable>
                </selectables>
                connection is greater than or equal to the strength of the symmetric algorithm
				(in terms of the number of bits in the key) negotiated to protect the
                <selectables>
                  <selectable>IKEv1 Phase 2</selectable>
                  <selectable>IKEv2 CHILD_SA</selectable>
                </selectables>
                connection.
              </title>
            </ext-comp-def-title>
            <note role="application">
              If this functionality is configurable, the TSF may be configured by a VPN gateway
				or by an administrator of the TOE itself
              <h:br/>
              <h:br/>
              While it is acceptable for this capability to be configurable, the
				default configuration in the evaluated configuration (either "out of the box" or
				by configuration guidance in the AGD documentation) must enable this
				functionality.
              <h:br/>
              <h:br/>
            </note>
            <aactivity level="element">
              <TSS>
                The evaluator shall check that the TSS describes the potential strengths (in terms of the number of bits in
		the symmetric key) of the algorithms that are allowed for the IKE and ESP exchanges. The TSS shall also
		describe the checks that are done when negotiating IKEv2 CHILD_SA suites to ensure
		that the strength (in terms of the number of bits of key in the symmetric algorithm) of the negotiated
		algorithm is less than or equal to that of the IKE SA that is protecting the negotiation.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>There are no guidance EAs for this requirement.<h:br/><h:br/></Guidance>
              <Tests>
                The evaluator shall follow the guidance to configure the TOE to perform the following tests:
                <testlist>
                  <test>The evaluator shall successfully negotiate an IPsec connection using each of the supported algorithms and hash functions identified in the requirements.</test>
                  <test>[conditional]: The evaluator shall attempt to establish a IKEv2 Child SA that selects an encryption algorithm with more strength than that being used for the IKEv2 IKE SA (i.e., symmetric algorithm with a key size larger than that being used for the IKE SA). Such attempts should fail.</test>
                  <test>The evaluator shall attempt to establish an IKEv2 IKE_SA using an algorithm that is not one of the supported algorithms and hash functions identified in the requirements. Such an attempt should fail.</test>
                  <test>The evaluator shall attempt to establish an IKEv2 Child SA for ESP (assumes the proper parameters where used to establish the IKE SA) that selects an encryption algorithm that is not identified in FCS_IPSEC_EXT.1.4. Such an attempt should fail.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event table="atref-mandatory">
            <audit-event-descr>Decisions to DISCARD or BYPASS network packets processed by the TOE.</audit-event-descr>
            <audit-event-info>Presumed identity of source subject.</audit-event-info>
            <audit-event-info>The entry in the SPD that applied to the decision.</audit-event-info>
          </audit-event>
          <audit-event table="atref-mandatory">
            <audit-event-descr>Failure to establish an IPsec SA.</audit-event-descr>
            <audit-event-info>Source IP address, if applicable.</audit-event-info>
            <audit-event-info>Identity of destination subject.</audit-event-info>
            <audit-event-info>Reason for failure.</audit-event-info>
          </audit-event>
          <audit-event table="atref-mandatory">
            <audit-event-descr>Establishment/Termination of an IPsec SA.</audit-event-descr>
            <audit-event-info>Identity of destination subject.</audit-event-info>
            <audit-event-info>Transport layer protocol, if applicable.</audit-event-info>
            <audit-event-info>Source subject service identifier, if applicable.</audit-event-info>
            <audit-event-info>Non-TOE endpoint of connection (IP address) for both successes and failures.</audit-event-info>
          </audit-event>
        </f-component>
      </section>
      <!-- 5.5.2 User Data Protection (FDP) -->
      <section title="Class FDP: User Data Protection" id="fdp-mandatory">
        <!-- FDP_RIP.2 Full Residual Information Protection -->
        <f-component cc-id="fdp_rip.2" id="fdp-rip-2" name="Full Residual Information Protection">
          <consistency-rationale/>
          <f-element id="fdp-rip-2e1">
            <title>
              The
              <h:b>
                <selectables onlyone="yes">
                  <selectable id="fdp_rip.2.1_1">TOE</selectable>
                  <selectable id="fdp_rip.2.1_2">TOE platform</selectable>
                </selectables>
              </h:b>
              shall ensure that any previous information content of a resource is made unavailable upon the
              <selectables>
                <selectable id="fdp_rip.2.1_3">allocation of the resource to</selectable>
                <selectable id="fdp_rip.2.1_4">deallocation of the resource from</selectable>
              </selectables>
              all objects.
            </title>
            <note role="application">This requirement ensures, for example, that protocol data units (PDUs) are not
				padded with residual information such as cryptographic key material. The ST
				author uses the selection to specify when previous information is made
				unavailable.</note>
            <aactivity level="element">
              <TSS>
                <h:b>Requirement met by the platform</h:b>
                <h:br/>
                <h:br/>
                The evaluator shall examine the TSS to verify that it describes (for each supported platform) the extent to
		which the client processes network packets and addresses the FDP_RIP.2 requirement.
                <h:br/>
                <h:br/>
                <h:b>Requirement met by the TOE</h:b>
                <h:br/>
                <h:br/>
                “Resources” in the context of this requirement are network packets being sent through (as opposed to
		“to”, as is the case when a security administrator connects to the TOE) the TOE. The concern is that once
		a network packet is sent, the buffer or memory area used by the packet still contains data from that
		packet, and that if that buffer is reused, those data might remain and make their way into a new packet.
		The evaluator shall check to ensure that the TSS describes packet processing to the extent that they can
		determine that no data will be reused when processing network packets. The evaluator shall ensure that
		this description at a minimum describes how the previous data are zeroized/overwritten and at what
		point in the buffer processing this occurs.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>There are no guidance EAs for this requirement.<h:br/><h:br/></Guidance>
              <Tests>There are no test EAs for this requirement. <h:br/> <h:br/></Tests>
            </aactivity>
          </f-element>
          <audit-event table="atref-mandatory"/>
        </f-component>
      </section>
      <!-- 5.5.3 Security Management (FMT) -->
      <section title="Class FMT: Security Management" id="fmt-mandatory">
        The TOE is not required to maintain a separate management role. It is, however, required to provide
	functionality to configure certain aspects of TOE operation that should not be available to the general
	user population. It is possible for the TOE, TOE Platform, or VPN gateway to provide this functionality.
	The client itself has to be configurable - whether it is from the EUD or from a VPN gateway.
        <!-- FMT_SMF.1/VPN Specification of Management Functions (VPN) -->
        <f-component cc-id="fmt_smf.1" id="fmt-smf-1-vpn" name="Specification of Management Functions (VPN)" iteration="VPN">
          <consistency-rationale/>
          <f-element id="fmt-smf-1e1-vpn">
            <title>
              The TSF shall be capable of performing the following management functions:
              <selectables linebreak="yes">
                <selectable id="fmt_smf.1.1_VPN_1">Specify VPN gateways to use for connections</selectable>
                <selectable id="fmt_smf.1.1_VPN_2">Specify IPsec VPN clients to use for connections</selectable>
                <selectable id="fmt_smf.1.1_VPN_3">Specify IPsec-capable network devices to use for connections</selectable>
                <selectable id="fmt_smf.1.1_VPN_4">Specify client credentials to be used for connections</selectable>
                <selectable id="fmt_smf.1.1_VPN_5">Configure the reference identifier of the peer</selectable>
                <selectable id="fmt_smf.1.1_VPN_7">
                  <assignable>any additional management functions</assignable>
                </selectable>
              </selectables>
            </title>
            <note role="application">
              Several of the management functions defined above correspond to the use cases
              of the TOE as follows:
              <h:ul>
                <h:li>“Specify VPN gateways to use for connections” – Use Case 1</h:li>
                <h:li>“Specify IPsec VPN clients to use for connections” – Use Case 2 (specifically
                  refers to different end points to use for client-to-client connections)</h:li>
                <h:li>“Specify IPsec-capable network devices to use for connections” – Use Case 3</h:li>
              </h:ul>
              Selections appropriate for the use cases supported by the TOE should be
              claimed. "Client credentials" will include the client certificate used for IPsec
              authentication, and may also include a PSK.
              <h:br/>
              <h:br/>
              For TOEs that support only IP address and FQDN identifier types, configuration
              of the reference identifier may be the same as configuration of the peer’s name
              for the purposes of connection.
              <h:br/>
              <h:br/>
              If there are additional management functions performed by the TOE (including
              those specified in FCS_IPSEC_EXT.1), they should be added in the assignment.
            </note>
            <aactivity level="element">
              <TSS>
                The evaluator shall check to ensure the TSS describes the client credentials and how they are used by the
		TOE.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>
                The evaluator shall check to make sure that every management function mandated in the ST for this
		requirement is described in the operational guidance and that the description contains the information
		required to perform the management duties associated with each management function.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>The evaluator shall test the TOE’s ability to provide the management functions by configuring the TOE according to the operational guidance and testing of each management activity listed in the ST. <h:br/> <h:br/>The evaluator shall ensure that all management functions claimed in the ST can be performed by completing activities described in the AGD. Note that this may be performed in the course of completing other testing.</Tests>
            </aactivity>
          </f-element>
          <audit-event table="atref-mandatory">
            <audit-event-descr>Success or failure of management function.</audit-event-descr>
            <audit-event-info>No additional information.</audit-event-info>
          </audit-event>
        </f-component>
      </section>
      <!-- 5.5.4 Protection of the TSF (FPT) -->
      <section title="Class FPT: Protection of the TSF" id="fpt-mandatory">
        <ext-comp-def title="TSF Self-Test" fam-id="FPT_TST_EXT">
          <fam-behavior>Components in this family describe requirements for self-test to verify functionality and integrity of the TOE.</fam-behavior>
        </ext-comp-def>
        <!-- FPT_TST_EXT.1 TSF Self-Test -->
        <f-component cc-id="fpt_tst_ext.1" id="fpt-tst-ext-1" name="TSF Self-Test" status="invisible">
          <consistency-rationale/>
          <comp-lev>requires the TOE to perform power on self-tests to verify its functionality and
            the integrity of its stored executable code.</comp-lev>
          <management>No specific management functions are identified.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fpt-tst-ext-1e1">
            <title>
              The
              <selectables onlyone="yes">
                <selectable id="fpt_tst_ext.1.1_1">TOE</selectable>
                <selectable id="fpt_tst_ext.1.1_2">TOE platform</selectable>
              </selectables>
              shall run a suite of self tests during initial start-up (on power on) to demonstrate the correct 
              operation of the TSF.
            </title>
            <aactivity level="component">
              <no-tests/>
            </aactivity>
          </f-element>
          <f-element id="fpt-tst-ext-1e2">
            <title>
              The
              <selectables onlyone="yes">
                <selectable id="fpt_tst_ext.1.2_1">TOE</selectable>
                <selectable id="fpt_tst_ext.1.2_2">TOE platform</selectable>
              </selectables>
              shall provide the capability to verify the integrity of stored TSF executable code when it is loaded 
              for execution through the use of the
              <assignable>cryptographic services provided either by the portion of the TOE described by the Base-PP or by the OE</assignable>.
            </title>
          </f-element>
        </f-component>
        <!-- FPT_TST_EXT.1/VPN TSF Self-Test -->
        <f-component cc-id="fpt_tst_ext.1" id="fpt-tst-ext-1-vpn" name="TSF Self-Test" iteration="VPN">
          <consistency-rationale/>
          <f-element id="fpt-tst-ext-1e1-vpn">
            <title>
              The
              <selectables onlyone="yes">
                <selectable id="fpt_tst_ext.1.1_VPN_1">TOE</selectable>
                <selectable id="fpt_tst_ext.1.1_VPN_2">TOE platform</selectable>
              </selectables>
              shall run a suite of self tests during initial start-up (on power on) to demonstrate the correct 
				operation of the TSF.
            </title>
            <aactivity level="component">
              Except for where it is explicitly noted, the evaluator is expected to check the following information
		regardless of whether the functionality is implemented by the TOE or by the TOE platform.
              <h:br/>
              <h:br/>
              <TSS>
                The evaluator shall examine the TSS to ensure that it details the self-tests that are run by the TSF on
		      startup; this description should include an outline of what the tests are actually doing (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 evaluator shall ensure
		that the TSS makes an argument that the tests are sufficient to demonstrate that the TSF is operating
		correctly. If some of the tests are performed by the TOE platform, the evaluator shall check the TSS to
		ensure that those tests are identified and that the ST for each platform contains a description of those
		tests. Note that the tests that are required by this component are those that support security functionality
		in this PP-Module, which may not correspond to the set of all self-tests contained in the
		platform STs.
                <h:br/>
                <h:br/>
                The evaluator shall examine the TSS to ensure that it describes how the integrity of stored TSF executable
		code is cryptographically verified when it is loaded for execution. The evaluator shall ensure that the TSS
		makes an argument that the tests are sufficient to demonstrate that the integrity of stored TSF executable
		code has not been compromised. The evaluator shall check to ensure that the cryptographic requirements
		listed are consistent with the description of the integrity verification process.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>
                If not present in the TSS, the evaluator shall ensure that the operational guidance describes the actions that
		take place for successful (e.g., hash verified) and unsuccessful (e.g., hash not verified) cases. For checks
		implemented entirely by the platform, the evaluator shall ensure that the operational guidance for the TOE
		references or includes the platform-specific guidance for each platform listed in the ST.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                The evaluator shall perform the following tests:
                <testlist>
                  <test>The evaluator shall perform the integrity check on a known good TSF executable and verifies that the check is successful.</test>
                  <test>The evaluator shall modify the TSF executable, performs the integrity check on the modified TSF executable, and verifies that the check fails.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fpt-tst-ext-1e2-vpn">
            <title>
              The
              <selectables onlyone="yes">
                <selectable id="fpt_tst_ext.1.2_VPN_1">TOE</selectable>
                <selectable id="fpt_tst_ext.1.2_VPN_2">TOE platform</selectable>
              </selectables>
              shall provide the capability to verify the integrity of stored TSF executable code when it is loaded 
				for execution through the use of the
              <assignable>cryptographic services provided either by the portion of the TOE described by the Base-PP or by the OE</assignable>.
            </title>
            <note role="application">
              While the TOE is typically a software package running in the IT Environment, it is
				still capable of performing the self-test activities required above. It should be
				understood, however, that there is a significant dependency on the host
				environment in assessing the assurance provided by the tests mentioned above
				(meaning that if the host environment is compromised, the self-tests will not be
				meaningful).
              <h:br/>
              <h:br/>
              Cryptographic verification of the integrity is required, but the method by which
				this can be accomplished is specified in the ST in the assignment. The ST author
				will fill in the assignment with references to the cryptographic functions used to
				perform the integrity checks; this will include hashing and may potentially
				include digital signatures signed using X.509 certificates. If the TSF provides the
				cryptographic services used to verify updates, all relevant FCS_COP requirements
				will be identified in the assignment by the ST author.
            </note>
          </f-element>
          <audit-event table="atref-mandatory"/>
        </f-component>
      </section>
    </man-sfrs>
    <opt-sfrs>
      <section id="sop-audit-table" title="Auditable Events for Strictly Optional SFRs">
        Entries from
        <xref to="at-optional"/>
        must be included for GPOS, MDF, and MDM Base-PPs if the strictly optional SFRs are included in the ST. When the App PP is the Base-PP, if any strictly optional SFRs are included in the ST, corresponding auditable event entries must be included only if the implementation-dependent requirement FAU_GEN.1/VPN is included in the ST.
        <audit-table id="at-optional" table="atref-optional" title="Auditable Events for Strictly Optional SFRs"/>
      </section>
      <!-- 5.5.5 Identification and Authentication (FIA) -->
      <section title="Class FIA: Identification and Authentication" id="fia-optional">
        The TOE may support leveraging the biometric API provided by the platform.
        <ext-comp-def title="Biometric Activation" fam-id="FIA_BMA_EXT">
          <fam-behavior>Components in this family describe the requirements for biometrics when using the VPN client.</fam-behavior>
        </ext-comp-def>
        <!-- FIA_BMA_EXT.1 Biometric Activation -->
        <f-component cc-id="fia_bma_ext.1" id="fia-bma-ext-1" name="Biometric Activation">
          <depends>
            <optional/>
          </depends>
          <consistency-rationale/>
          <comp-lev>defines the use of biometrics when using the VPN client.</comp-lev>
          <management>No specific management functions are identified.</management>
          <audit>No specific audit functions are identified.</audit>
          <f-element id="fia-bma-ext-1e1">
            <title>The TSF shall leverage the platform biometric features to confirm the user before initiating a trusted channel.</title>
            <note role="application">
              In this context the platform refers to the OS or device and may be part of the TOE if those Base-PPs are leveraged.
              <h:br/>
              <h:br/>
            </note>
            <aactivity level="element">
              <TSS>The evaluator shall confirm that the TSS describes the calls to the platform and verifies they align with platform documentation.<h:br/><h:br/></TSS>
              <Guidance>
                The evaluator shall ensure that any configuration details needed to enable the biometric prompt are included in the
		      guidance documentation.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall initiate a connection and verify that a biometric prompt is presented and accepted before the connection can proceed. The evaluator shall also verify the connection does not proceed if the biometric is not presented or accepted.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event table="atref-optional"/>
        </f-component>
      </section>
      <!-- 5.5.6 Packet Filtering (FPF) -->
      <section title="Class FPF: Packet Filtering" id="fpf-optional">
        <class-description>This class contains families that describe packet filtering behavior. Packet filtering refers to the notion that
          network traffic that is transmitted “through” the TOE (i.e. the source and destination of the traffic is not
          the TOE but the TOE is on the routing path between these two entities) can be treated differently by the
          TSF based on attributes associated with the traffic. As this class is defined solely to contain an extended
          component defined for this PP-Module, it has one family, FPF_MFA_EXT.</class-description>
        <ext-comp-def title="Multifactor Authentication Filtering" fam-id="FPF_MFA_EXT">
          <fam-behavior>Components in this family describe the requirements for multifactor authentication filtering when using the VPN client.</fam-behavior>
        </ext-comp-def>
        <!-- FPF_MFA_EXT.1 Multifactor Authentication Filtering -->
        <f-component cc-id="fpf_mfa_ext.1" id="fpf-mfa-ext-1" name="Multifactor Authentication Filtering">
          <depends>
            <optional/>
          </depends>
          <consistency-rationale/>
          <comp-lev>defines the use and composition of multifactor authentication filtering.</comp-lev>
          <management>No specific management functions are identified.</management>
          <audit>No specific audit functions are identified.</audit>
          <f-element id="fpf-mfa-ext-1e1">
            <title>The TSF shall not forward packets to the internal network until the IKE/IPsec tunnel has been established, 
            except those necessary to ensure that the client is authenticated according to FIA_PSK_EXT.1.</title>
            <note role="application">If FPF_MFA_EXT.1 is included, FIA_PSK_EXT.1 must be included.</note>
            <aactivity level="element">
              <TSS>
                The evaluator shall examine the TSS to verify that it describes how authentication packets are identified and how all
		    other traffic is blocked until secondary authentication is successful.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>
                The evaluator shall examine the operational guidance to verify that it provides any necessary instructions to the administrator on how
		    to enable and configure filtering.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall attempt to connect and verify other traffic is rejected per the filtering rules. The evaluator shall then provide the supported PSKs and confirm it is accepted and traffic is no longer blocked.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event table="atref-optional"/>
        </f-component>
      </section>
    </opt-sfrs>
    <sel-sfrs>
      <section id="sb-audit-table" title="Auditable Events for Selection-based SFRs">
        Entries from
        <xref to="at-sel-based"/>
        must be included for GPOS, MDF, and MDM Base-PPs if the selection-based SFRs are included in the ST. When the App PP is the Base-PP, if any selection-based SFRs are included in the ST, corresponding auditable event entries must be included only if the implementation-dependent requirement FAU_GEN.1/VPN is included in the ST.
        <audit-table id="at-sel-based" table="sel-based" title="Auditable Events for Selection-Based SFRs"/>
      </section>
      <!-- 5.5.7 Cryptographic Support (FCS) -->
      <section title="Class FCS: Cryptographic Support" id="fcs-selectionBased">
        <ext-comp-def title="EAP-TLS" fam-id="FCS_EAP_EXT">
          <fam-behavior>Components in this family describe the requirements for EAP-TLS.</fam-behavior>
        </ext-comp-def>
        <!-- FCS_EAP_EXT.1 EAP-TLS -->
        <f-component cc-id="fcs_eap_ext.1" id="fcs-eap-ext-1" name="EAP-TLS">
          <depends on-sel="sel-ipsec-e11-eapttls"/>
          <depends on-sel="sel-ipsec-e11-eaptls"/>
          <consistency-rationale/>
          <comp-lev>defines the use of EAP-TLS.</comp-lev>
          <management>No specific management functions are identified.</management>
          <audit>No specific audit functions are identified.</audit>
          <dependencies><no-link>FCS_IPSEC_EXT.1</no-link> IPsec</dependencies>
          <f-element id="fcs-eap-ext-1e1">
            <title>
              The TSF shall support
              <selectables>
                <selectable id="fcs_eap_ext.1.1_1">EAP-TLS as specified in RFC 5216 and updated by RFC 8996</selectable>
                <selectable id="fcs_eap_ext.1.1_2">EAP-TTLS as specified in RFC 5281 and updated by RFC 8996</selectable>
              </selectables>
              over a protected channel
              <h:b>per the Base-PP</h:b>
              with an authentication server.
            </title>
            <ext-comp-def-title>
              <title>
                The TSF shall support
                <selectables>
                  <selectable>EAP-TLS as specified in RFC 5216 and updated by RFC 8996</selectable>
                  <selectable>EAP-TTLS as specified in RFC 5281 and updated by RFC 8996</selectable>
                </selectables>
                over a protected channel per the Base-PP with an authentication server.
              </title>
            </ext-comp-def-title>
            <aactivity level="component">
              <TSS>
                The evaluator shall verify that the TSS describes the use of EAP options for each of the selected peer authentication 
                mechanisms, that TLS with mutual authentication is used, that the random values are from an appropriate source, 
                and that the EAP MSK is derived from the TLS master key and is used as the IKEv2 shared key.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>
                The evaluator shall verify that the guidance documents describe any configurable features of the EAP or TLS 
                functionality, including instructions for configuration of the authenticators and registration processes for clients.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                Testing for TLS functionality is in accordance with the TLS package.
                <h:b/>
                For each supported EAP method claimed in FCS_EAP_TLS_EXT.1.1 and for each authentication method claimed in FCS_EAP_TLS_EXT.1.3, the evaluator shall perform the following tests:
                <testlist>
                  <test>The evaluator shall follow AGD guidance to configure the TSF to use the EAP method claimed. The evaluator shall follow AGD guidance to configure the TSF to use the authentication method claimed, and for EAP-TTLS, register a client with the appropriate key material required for the authentication method. The evaluator shall establish a VPN session using a test client with a valid certificate, and for EAP-TTLS, configured to provide a correct value for the configured authenticator. The evaluator shall observe the VPN session is successful.</test>
                  <test>(conditional for EAP-TTLS support): The evaluator shall cause the test client with a valid certificate to send an invalid authenticator for the claimed authentication method. <h:b/> For HOTP, replay the HOTP value sent previously. <h:b/> For TOTP or PSK, modify a byte of the properly constructed value and observe that the TSF aborts the session.</test>
                  <test>The evaluator shall establish a new, valid certificate for a test client using an identifier not corresponding to a registered user. For EAP-TTLS, the evaluator shall cause the test client using this certificate to send a correct authenticator value for the registered user. The evaluator shall initiate a VPN session from the test client to the TSF and observe that the TSF aborts the session.</test>
                  <test>The evaluator shall follow AGD guidance to configure the TSF to use a supported EAP method and register the user with the key material required for a supported authentication method. The evaluator shall configure a test client to respond to an IKEv2 exchange with EAP-request, providing valid phase 1 handshake and valid TLS handshake, but computing the phase 2 shared key using standard (non-EAP) methods. The evaluator shall initiate a VPN session between the test client and the TSF, and observe that the TSF aborts the session.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fcs-eap-ext-1e2">
            <title>
              The TSF shall implement
              <selectables>
                <selectable id="fcs_eap_ext.1.2_1">EAP-TLS</selectable>
                <selectable id="fcs_eap_ext.1.2_2">EAP-TTLS</selectable>
              </selectables>
              with the TSF as the EAP client, an external authentication server as the EAP server and the VPN peer as the supplicant.
            </title>
          </f-element>
          <f-element id="fcs-eap-ext-1e3">
            <title>
              The TSF shall use the MSK from the
              <selectables>
                <selectable id="fcs_eap_ext.1.3_1">EAP-TLS</selectable>
                <selectable id="fcs_eap_ext.1.3_2">EAP-TTLS</selectable>
              </selectables>
              response as the IKEv2 shared secret in the authentication payload.
            </title>
          </f-element>
          <audit-event table="sel-based"/>
        </f-component>
      </section>
      <!-- 5.5.8 Identification and Authentication (FIA) -->
      <section title="Class FIA: Identification and Authentication" id="fia-selectionBased">
        The TOE may support pre-shared keys for use in the IPsec protocol, and may use pre-shared keys in other protocols as well.  
        PSK in the context of this document refer to generated values, memorized values subject to conditioning, one-time passwords, 
        and combinations of the above as described in FIA_PSK_EXT.1.2.
        <ext-comp-def title="Pre-Shared Key Composition" fam-id="FIA_PSK_EXT">
          <fam-behavior>Components in this family describe the requirements for pre-shared keys when implementing IPsec.</fam-behavior>
        </ext-comp-def>
        <!-- FIA_PSK_EXT.1 Pre-Shared Key Composition -->
        <f-component cc-id="fia_psk_ext.1" id="fia-psk-ext-1" name="Pre-Shared Key Composition">
          <depends on-fcomp="fpf-mfa-ext-1"/>
          <depends on-sel="sel-ipsec-e11-psk"/>
          <depends on-sel="sel-ipsec-e11-eapttls"/>
          <consistency-rationale/>
          <comp-lev>defines the use and composition of pre-shared keys used for IPsec.</comp-lev>
          <management>No specific management functions are identified.</management>
          <audit>No specific audit functions are identified.</audit>
          <dependencies><no-link>FCS_IPSEC_EXT.1</no-link> IPsec</dependencies>
          <f-element id="fia-psk-ext-1e1">
            <title>
              The TSF shall be able to use pre-shared keys for
              <selectables>
                <selectable id="fia_psk_ext.1.1_1">IKEv2</selectable>
                <selectable id="fia_psk_ext.1.1_2">multifactor authentication filtering</selectable>
              </selectables>.
            </title>
            <aactivity level="component">
              <TSS>
                The evaluator shall examine the TSS to ensure that it identifies all protocols that allow  pre-shared keys. 
                For each protocol identified by the requirement, the evaluator shall confirm that the TSS states which pre-shared key 
                selections are supported.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>
                The evaluator shall examine the operational guidance to determine that it provides guidance to 
                administrators on how to configure all selected pre-shared key options if any configuration is required.
                <h:br/>
                <h:br/>
                The evaluator shall examine the operational guidance to determine that it provides guidance to administrators on
                how to configure the mandatory_or_not flag per RFC 8784.
              </Guidance>
              <Tests>
                The evaluator shall also perform the following tests for each protocol (or instantiation of a protocol, if performed by a different implementation on the TOE).
                <testlist>
                  <test>For each mechanism selected in FIA_PSK_EXT.1.2, the evaluator shall attempt to establish a connection and confirm that the connection requires the selected factors in the PSK to establish the connection in alignment with table 1 from RFC 8784.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fia-psk-ext-1e2">
            <title>
              The TSF shall be able to accept the following as pre-shared keys:
              <selectables>
                <selectable id="pskgen">generated bit-based</selectable>
                <selectable id="pskpw">password-based</selectable>
                <selectable id="pskhotp">HMAC-based one-time password</selectable>
                <selectable id="psktotp">time-based one-time password</selectable>
                <selectable id="pskgenhotp">combination of a generated bit-based and HMAC-based one-time password</selectable>
                <selectable id="pskgentotp">combination of a generated bit-based and time-based one-time password</selectable>
                <selectable id="pskpwhotp">combination of a password-based and HMAC-based one-time password</selectable>
                <selectable id="pskpwtotp">combination of a password-based and time-based one-time password</selectable>
              </selectables>
              keys.
            </title>
            <ext-comp-def-title>
              <title>
                The TSF shall be able to accept the following as pre-shared keys:
                <selectables>
                  <selectable>generated bit-based</selectable>
                  <selectable>password-based</selectable>
                  <selectable>HMAC-based one-time password</selectable>
                  <selectable>time-based one-time password</selectable>
                  <selectable>combination of a generated bit-based and HMAC-based one-time password</selectable>
                  <selectable>combination of a generated bit-based and time-based one-time password</selectable>
                  <selectable>combination of a password-based and HMAC-based one-time password</selectable>
                  <selectable>combination of a password-based and time-based one-time password</selectable>
                </selectables>
                keys.
              </title>
            </ext-comp-def-title>
            <note role="application">
              If “pre-shared keys that conform to RFC 8784” is selected in FCS_IPSEC_EXT.1.11, a generated, bit-based PSK must be used.
              <h:br/>
              <h:br/>
              If any selection including "generated bit-based" is chosen, then FIA_PSK_EXT.2 must be included.
              <h:br/>
              <h:br/>
              If any selection including password-based keys is chosen, then FIA_PSK_EXT.3 must be included.
              <h:br/>
              <h:br/>
              If any selection including HMAC-based one-time password keys is chosen, then FIA_PSK_EXT.4 must be included.
              <h:br/>
              <h:br/>
              If any selection including time-based one-time password is chosen, then FIA_PSK_EXT.5 must be included.
              <h:br/>
              <h:br/>
              This requirement is selection-based on FCS_IPSEC_EXT.1.11 or inclusion of FPF_MFA_EXT.1.
            </note>
          </f-element>
          <audit-event table="sel-based"/>
        </f-component>
        <!-- FIA_PSK_EXT.2 Generated Pre-Shared Keys -->
        <f-component cc-id="fia_psk_ext.2" id="fia-psk-ext-2" name="Generated Pre-Shared Keys">
          <depends on-sel="pskgen"/>
          <depends on-sel="pskgenhotp"/>
          <depends on-sel="pskgentotp"/>
          <consistency-rationale/>
          <comp-lev>defines the use and composition of generated pre-shared keys used for IPsec.</comp-lev>
          <management>No specific management functions are identified.</management>
          <audit>
            The following actions should be auditable if FAU_GEN Security Audit Data Generation is included in the
            PP/ST:
            <h:ul>
              <h:li>Failure of the randomization process</h:li>
            </h:ul>
          </audit>
          <dependencies><no-link>FIA_PSK_EXT.1</no-link> Pre-Shared Key Composition</dependencies>
          <f-element id="fia-psk-ext-2e1">
            <title>
              The TSF shall be able to
              <selectables>
                <selectable id="fia_psk_ext.2.1_1">accept externally generated pre-shared keys</selectable>
                <selectable id="fia_psk_ext.2.1_2">generate 256 bit-based pre-shared keys via the random number generator used by the TSF.</selectable>
              </selectables>.
            </title>
            <note role="application">
              Generated PSKs are expected to be shared between components via an out-of-band mechanism.
              <h:br/>
              <h:br/>
              This requirement is selection-based on FIA_PSK_EXT.1.
              <h:br/>
              <h:br/>
            </note>
            <aactivity level="element">
              <TSS>
                If "generate" is selected, the evaluator shall confirm that this process uses the RBG specified in FCS_RBG.1 (or FCS_RBG_EXT.1 in the case of
                <xref to="bibAppPP"/>
                and the output matches the size selected in FIA_PSK_EXT.2.1.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>
                The evaluator shall confirm the operational guidance contains instructions for entering generated pre-shared keys 
                for each protocol identified in the FIA_PSK_EXT.1.1.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                <testlist>
                  <test>[conditional] If "generate" was selected, the evaluator shall generate a pre-shared key and confirm the output matches the size selected in FIA_PSK_EXT.2.1.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event table="sel-based"/>
        </f-component>
        <!-- FIA_PSK_EXT.3 Password-Based Pre-Shared Keys -->
        <f-component cc-id="fia_psk_ext.3" id="fia-psk-ext-3" name="Password-Based Pre-Shared Keys">
          <depends on-sel="pskpw"/>
          <depends on-sel="pskpwhotp"/>
          <depends on-sel="pskpwtotp"/>
          <consistency-rationale/>
          <comp-lev>defines the use and composition of password-based pre-shared keys used for IPsec.</comp-lev>
          <management>No specific management functions are identified.</management>
          <audit>
            The following actions should be auditable if FAU_GEN Security Audit Data Generation is included in the
            PP/ST:
            <h:ul>
              <h:li>Failure of the randomization process</h:li>
            </h:ul>
          </audit>
          <dependencies>
            <no-link>FCS_RBG.1</no-link>
            Random Bit Generation (RBG)
            <no-link>FIA_PSK_EXT.1</no-link>
            Pre-Shared Key Composition
          </dependencies>
          <f-element id="fia-psk-ext-3e1">
            <title>
              The TSF shall support a PSK of up to
              <assignable>positive integer of 64 or more</assignable>
              characters.
            </title>
            <aactivity level="component">
              <TSS>
                The evaluator shall examine the TSS to ensure it describes the process by which the bit-based pre-shared keys are used.
                <h:br/>
                <h:br/>
                Support for length: The evaluator shall check to ensure that the TSS describes the allowable ranges for PSK lengths,
		      and that at least 64 characters or a length defined by the platform may be specified by the user.
                <h:br/>
                <h:br/>
                Support for character set: The evaluator shall check to ensure that the TSS describes the allowable character set and that
		      it contains the characters listed in the SFR.
                <h:br/>
                <h:br/>
                Support for PBKDF: The evaluator shall examine the TSS to ensure that the use of PBKDF2 is described and that 
		      the key sizes match that described by the ST author.
                <h:br/>
                <h:br/>
                The evaluator shall check that the TSS describes the method by which the PSK is first encoded and then fed 
		      to the hash algorithm. The settings for the algorithm (padding, blocking, etc.) shall be described, and the evaluator 
		      shall verify that these are supported by the selections in this component as well as the selections concerning the hash function itself.
                <h:br/>
                <h:br/>
                For the NIST SP 800-132-based conditioning of the PSK, the required evaluation activities will be performed
		      when doing the evaluation activities for the appropriate requirements (FCS_COP.1/KeyedHash).
                <h:br/>
                <h:br/>
                The evaluator shall confirm that the minimum length is described.
                <h:br/>
                <h:br/>
                The ST author shall provide a description in the TSS regarding the salt generation. The evaluator shall confirm
		      that the salt is generated using an RBG described in the DRBG that is generated by the TSF or that is invoked from the operational environment.
                <h:br/>
                <h:br/>
                [conditional] If "password strength meter" or "check the password against a denylist" is selected, the evaluator shall examine the TSS to 
		      ensure any password checking functionality provided by the TSF is described and contains details on how the function operates.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>
                The evaluator shall confirm the operational guidance contains instructions for entering bit-based pre-shared keys for each 
                protocol identified in the requirement, is generating a bit-based pre-shared key, or both. The evaluator shall confirm that any 
                management functions related to pre-shared keys that are performed by the TOE are specified in the operational guidance.
                <h:br/>
                <h:br/>
                The guidance must specify the allowable characters for pre-shared keys, and that list must include, at minimum, the same 
                items contained in FIA_PSK_EXT.3.2.
                <h:br/>
                <h:br/>
                The evaluator shall confirm the operational guidance contains any necessary instructions for enabling and configuring 
		      password checking functionality.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                Support for Password/Passphrase characteristics: In addition to the analysis above, the evaluator shall also perform the following tests on a TOE configured according to the operational guidance:
                <testlist>
                  <test>The evaluator shall compose a pre-shared key of at least 64 characters that contains a combination of the allowed characters in accordance with the FIA_PSK_EXT.1.3 and verify that a successful protocol negotiation can be performed with the key.</test>
                  <test>[conditional]: If the TOE supports pre-shared keys of multiple lengths, the evaluator shall repeat Test 1 using the minimum length and invalid lengths that are below the minimum length, above the maximum length, null length, empty length, or zero length. The minimum test should be successful, and the invalid lengths must be rejected by the TOE.</test>
                  <test>[conditional]: If the TOE initiates connections, initiate and establish a remote connection, disconnect from the connection, and verify that the PSK is required when initiating the connection a second time.</test>
                  <test>[conditional]: If the TOE supports a password meter, the evaluator shall enter a password and verify the password checker responds per the description in the TSS.</test>
                  <test>[conditional]: If the TOE supports a password denylist, the evaluator shall enter a denylisted password and verify that the password is rejected or flagged as such.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fia-psk-ext-3e2">
            <title>
              The TSF shall allow PSKs to be composed of any combination of upper case characters, 
              lower case characters, numbers, and the following special characters: "!", "@", "#", "$", "%", "^", "&amp;", "*", "(", and ")", and
              <selectables>
                <selectable id="fia_psk_ext.3.2_2">
                  <assignable>other supported special characters</assignable>
                </selectable>
                <selectable id="fia_psk_ext.3.2_3" exclusive="yes">no other characters</selectable>
              </selectables>.
            </title>
          </f-element>
          <f-element id="fia-psk-ext-3e3">
            <title>
              The TSF shall perform Password-based Key Derivation Functions in accordance with a specified cryptographic algorithm [<h:i>HMAC-SHA-384</h:i>], with
              <assignable>positive integer of 4096 or more</assignable>
              iterations, and output cryptographic key sizes [<h:i>256 bits</h:i>]
              that meet the following: [<h:i>NIST SP 800-132</h:i>].
            </title>
            <ext-comp-def-title>
              <title>
                The TSF shall perform Password-based Key Derivation Functions in accordance with a specified cryptographic algorithm
                <assignable>cryptographic algorithm used for key derivation</assignable>, with
                <assignable>positive integer of 4096 or more</assignable>
                iterations, and output cryptographic key sizes
                <assignable>output key size</assignable>
                that meet the following:
                <assignable>list of standards</assignable>.
              </title>
            </ext-comp-def-title>
          </f-element>
          <f-element id="fia-psk-ext-3e4">
            <title>
              The TSF shall not accept PSKs less than
              <selectables>
                <selectable id="fia_psk_ext.3.4_1" exclusive="yes">a value settable by the administrator</selectable>
                <selectable id="fia_psk_ext.3.4_3">
                  <assignable>minimum PSK length accepted by the TOE, must be &gt;= 6</assignable>
                </selectable>
              </selectables>
              and greater than the maximum PSK length defined in FIA_PSK_EXT.3.1.
            </title>
          </f-element>
          <f-element id="fia-psk-ext-3e5">
            <title>
              The TSF shall generate all salts using an RBG that meets
              <h:b>
                <selectables>
                  <selectable id="fia_psk_ext.3.5_1">FCS_RBG.1</selectable>
                  <selectable id="fia_psk_ext.3.5_2">FCS_RBG_EXT.1</selectable>
                </selectables>
              </h:b>
              and with entropy of
              <assignable>value equal to or greater than 256</assignable>
              bits.
            </title>
            <ext-comp-def-title>
              <title>The TSF shall generate all salts using an RBG that meets FCS_RBG.1 and with entropy of <assignable>value equal to or greater than 256</assignable> bits.</title>
            </ext-comp-def-title>
            <note role="application">For the first selection, the ST author selects FCS_RBG.1 if the TOE implements its own DRBG. The ST author selects FCS_RBG_EXT.1 if <xref to="bibAppPP"/> is the Base-PP for the TOE and the TSF relies on a DRBG in its operational environment.</note>
          </f-element>
          <f-element id="fia-psk-ext-3e6">
            <title>The TSF shall require the PSK to be entered before every initiated connection.</title>
          </f-element>
          <f-element id="fia-psk-ext-3e7">
            <title>
              The TSF shall
              <selectables>
                <selectable id="fia_psk_ext.3.7_1">provide a password strength meter</selectable>
                <selectable id="fia_psk_ext.3.7_2">check the password against a denylist</selectable>
                <selectable id="fia_psk_ext.3.7_3" exclusive="yes">perform no action to assist the user in choosing a strong password</selectable>
              </selectables>.
            </title>
            <note role="application">
              For FIA_PSK_EXT.3.1, the ST author assigns the maximum size of the PSK it supports; it must support at least 64 characters or a length defined by the platform.
              <h:br/>
              <h:br/>
              For FIA_PSK_EXT.3.2, the ST author assigns any other supported characters; if there are no other supported characters, they should select
		    "no other characters."<h:br/>
              <h:br/>
              For FIA_PSK_EXT.3.3, the ST author selects the parameters based on the PBKDF used by the TSF.
              <h:br/>
              <h:br/>
              For FIA_PSK_EXT.3.4, if the minimum length is settable, then the ST author chooses "a value settable by the administrator." If the minimum length is not settable, 
              the ST author fills in the assignment with the minimum length the PSK must be. This requirement is to ensure bounds work properly.
              <h:br/>
              <h:br/>
              For FIA_PSK_EXT.3.7, the ST author may select one, both, or neither of the functions in alignment with NIST SP 800-63b.
              <h:br/>
              <h:br/>
              This requirement is selection-based on FIA_PSK_EXT.1.
            </note>
          </f-element>
          <audit-event table="sel-based"/>
        </f-component>
        <!-- FIA_PSK_EXT.4 HMAC-Based One-Time Password Pre-shared Keys Support -->
        <f-component cc-id="fia_psk_ext.4" id="fia-psk-ext-4" name="HMAC-Based One-Time Password Pre-shared Keys Support">
          <depends on-sel="pskhotp"/>
          <depends on-sel="pskgenhotp"/>
          <depends on-sel="pskpwhotp"/>
          <consistency-rationale/>
          <comp-lev>defines the use and composition of HOTP pre-shared keys used for IPsec.</comp-lev>
          <management>No specific management functions are identified.</management>
          <audit>No specific audit functions are identified.</audit>
          <dependencies><no-link>FIA_PSK_EXT.1</no-link> Pre-Shared Key Composition</dependencies>
          <f-element id="fia-psk-ext-4e1">
            <title>The TSF shall accept and send an HOTP while initiating a VPN connection.</title>
            <note role="application">This requirement is selection-based on FIA_PSK_EXT.1</note>
            <aactivity level="element">
              <TSS>The evaluator shall verify the TSS describes how the HOTP is input into the client and how that value is sent to the server.</TSS>
              <Guidance>
                The evaluator shall verify the operational guidance contains any configuration necessary to enable HOTP.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall configure the TOE to use a supported HOTP factor, then attempt to establish a connection using that factor. The evaluator shall verify the client prompts the user for the HOTP before initiating the connection. The evaluator shall verify the server validates the HOTP or receives confirmation from an authentication server before establishing the channel.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event table="sel-based"/>
        </f-component>
        <!-- FIA_PSK_EXT.5 Time-Based One-Time Password Pre-shared Keys Support -->
        <f-component cc-id="fia_psk_ext.5" id="fia-psk-ext-5" name="Time-Based One-Time Password Pre-shared Keys Support">
          <depends on-sel="psktotp"/>
          <depends on-sel="pskgentotp"/>
          <depends on-sel="pskpwtotp"/>
          <consistency-rationale/>
          <comp-lev>defines the use and composition of TOTP pre-shared keys used for IPsec.</comp-lev>
          <management>No specific management functions are identified.</management>
          <audit>No specific audit functions are identified.</audit>
          <dependencies><no-link>FIA_PSK_EXT.1</no-link> Pre-Shared Key Composition</dependencies>
          <f-element id="fia-psk-ext-5e1">
            <title>The TSF shall accept and send a TOTP while initiating a VPN connection.</title>
            <note role="application">This requirement is selection-based on FIA_PSK_EXT.1.</note>
            <aactivity level="element">
              <TSS>The evaluator shall verify the TSS describes how the TOTP is input into the client and how that value is sent to the server.</TSS>
              <Guidance>
                The evaluator shall verify the operational guidance contains any configuration necessary to enable TOTP.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall configure the TOE to use a supported TOTP factor, then attempt to establish a connection using that factor. The evaluator shall verify the client prompts the user for the TOTP before initiating the connection. The evaluator shall verify the server validates the TOTP or receives confirmation from an authentication server before establishing the channel.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event table="sel-based"/>
        </f-component>
      </section>
    </sel-sfrs>
    <obj-sfrs>
      <section id="sob-audit-table" title="Auditable Events for Objective SFRs">
        Entries from
        <xref to="at-objective"/>
        must be included for GPOS, MDF, and MDM Base-PPs if the objective SFRs are included in the ST. When the App PP is the Base-PP, if any objective SFRs are included in the ST, corresponding auditable event entries must be included only if the implementation-dependent requirement FAU_GEN.1/VPN is included in the ST.
        <audit-table id="at-objective" table="objective" title="Auditable Events for Objective SFRs"/>
      </section>
      <!-- 5.5.9 Security Audit (FAU) -->
      <section title="Class FAU: Security Audit" id="fau-objective">
        <!-- FAU_SEL.1/VPN Selective Audit -->
        <f-component cc-id="fau_sel.1" id="fau-sel-1-vpn" name="Selective Audit" iteration="VPN">
          <depends>
            <objective/>
          </depends>
          <consistency-rationale/>
          <f-element id="fau_sel-1-1_VPN">
            <title>
              The
              <h:b>
                <selectables onlyone="yes">
                  <selectable id="fau_sel.1.1_VPN_1">TSF</selectable>
                  <selectable id="fau_sel.1.1_VPN_2">TOE platform</selectable>
                </selectables>
              </h:b>
              shall be able to select the set of events to be audited from the set of all auditable events based on
				the following attributes:
				[<h:i>event type, <h:b>[success of auditable security events, failure of auditable security events]</h:b>, <assignable>list of additional attributes that audit selectivity is based upon</assignable></h:i>].
            </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 client
				for a user or administrator to invoke, or it could be an interface that the VPN
				gateway uses to instruct the client on which events are to be audited. For the ST
				author, the assignment is used to list any additional criteria or “none”. The
				auditable event types are listed in the Auditable Events table
              <h:br/>
              <h:br/>
              The intent of the first selection is to allow for the case where the underlying
				platform is responsible for some audit log generation functionality.
            </note>
            <aactivity level="element">
              <TSS>There are no TSS EAs for this SFR.<h:br/><h: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 or how the VPN gateway will configure the client, as well as
		explain the syntax (if present) for multi-value pre-selection. The administrative guidance shall also identify
		the audit data that are always recorded, regardless of the selection criteria currently being enforced.
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>
                The evaluator shall perform the following tests:
                <testlist>
                  <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 table="objective">
            <audit-event-descr>All modifications to the audit configuration that occur while the audit collection functions are operating.</audit-event-descr>
            <audit-event-info>No additional information.</audit-event-info>
          </audit-event>
        </f-component>
      </section>
    </obj-sfrs>
    <impl-dep-sfrs>
      <section id="impl-audit-table" title="Auditable Events for Implementation-dependent SFRs">
        Entries from
        <xref to="at-impl-dep"/>
        must be included for GPOS, MDF, and MDM Base-PPs if the implementation-dependent SFRs are included in the ST. When the App PP is the Base-PP, if any implementation-dependent SFRs are included in the ST, corresponding auditable event entries must be included only if the implementation-dependent requirement FAU_GEN.1/VPN is included in the ST.
        <audit-table id="at-impl-dep" table="atref-impl-dep" title="Auditable Events for Implementation-dependent SFRs"/>
      </section>
      <!-- 5.5.10 Security Audit (FAU) -->
      <section title="Class FAU: Security Audit" id="fau-implementationDependent">
        <!-- FAU_GEN.1/VPN Audit Data Generation -->
        <f-component cc-id="fau_gen.1" id="fau-gen-1-vpn" name="Audit Data Generation" iteration="VPN">
          <consistency-rationale/>
          <f-element id="fau-gen-1e1-vpn">
            <title>
              The TSF
              <h:b>
                and
                <selectables onlyone="yes">
                  <selectable id="fau_gen.1.1_VPN_1">TOE platform</selectable>
                  <selectable id="fau_gen.1.1_VPN_2">no other component</selectable>
                </selectables>
              </h:b>
              shall be able to generate audit data of the following auditable events:
              <h:ol>
                <h:li>Start-up and shutdown of the audit functions;</h:li>
                <h:li>All auditable events for the [<h:i>not specified</h:i>] level of audit;</h:li>
                <h:li>All administrative actions;</h:li>
                <h:li>[<h:i>Specifically defined auditable events listed in the Auditable Events tables</h:i>].</h:li>
              </h:ol>
            </title>
            <note role="application">
              This requirement is implementation-dependent on the MDF PP, GPOS PP, or MDM PP
	        being the Base-PP claimed by the TOE. In this case, this requirement must be
	        claimed.
              <h:br/>
              <h:br/>
              For the App PP Base-PP, this requirement is strictly optional.
              <h:br/>
              <h:br/>
              In the case of "a," the audit functions referred to are those provided by the TOE.
	        For example, in the case that the TOE was a stand-alone executable, auditing
	        the startup and the shutdown of the TOE itself would be sufficient to meet the
	        requirements of this clause.
              <h:br/>
              <h:br/>
              Many auditable aspects of the SFRs included in this document deal with
	        administrative actions. Item c above requires all administrative actions to be
	        auditable, so no additional specification of the auditability of these actions is
	        present in the Auditable Events table. While the TOE itself does not need to
	        provide the ability to perform I&amp;A for an administrator, this requirement implies
	        that the TOE possess the capability to audit the events described by the Base-PP
	        as "administrative actions" (primarily dealing with configuration of the
	        functionality provided by the TOE).
              <h:br/>
              <h:br/>
              The auditable events defined in the Auditable Events table are for the SFRs that
	        are explicitly defined in this PP-Module (<xref to="at-mandatory"/>,
              <xref to="at-optional"/>,
              <xref to="at-objective"/>,
              <xref to="at-impl-dep"/>, and
              <xref to="at-sel-based"/>). For any SFRs that are included as part of
	        the TOE based on the claimed Base-PP (as defined in the Auditable Events tables in the Additional SFRs section for the corresponding Base-PP claim),
	        it is expected that any applicable
	        auditable events defined for those SFRs in the Base-PP are also claimed as part
	        of the TSF. These auditable events only apply if the client actually performs these
	        functions. If the platform performs any of these actions, then the platform is
	        responsible for performing the auditing, not the TSF.
            </note>
            <aactivity level="component">
              <TSS>
                The evaluator shall examine the TSS to determine that it describes the auditable events and the
	          component that is responsible for each type of auditable event.
                <h:br/>
                <h:br/>
              </TSS>
              <Guidance>
                The evaluator shall check the operational guidance and ensure that it lists all of the auditable events and
	          provides a format for audit data. All audit data format types 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-Module for VPN Clients is described and that the description of the fields contains the information
	          required in FAU_GEN.1.2/VPN, and the additional information specified in the Auditable Events table of
	          the PP-Module for VPN Clients.
                <h:br/>
                <h:br/>
                In particular, the evaluator shall ensure that the operational guidance is clear in relation to the contents
	          for failed cryptographic events. In the Auditable Events table of the PP-Module for VPN Clients, information
	          detailing the cryptographic mode of operation and a name or identifier for the object being encrypted is
	          required. The evaluator shall ensure that name or identifier is sufficient to allow an administrator
	          reviewing the audit log to determine the context of the cryptographic operation (for example, performed
	          during a key negotiation exchange, performed when encrypting data for transit) as well as the non-TOE
	          endpoint of the connection for cryptographic failures relating to communications with other IT systems.
                <h:br/>
                <h:br/>
                The evaluator shall also make a determination of the administrative actions that are relevant in the
	          context of the PP-Module for VPN Clients. The TOE may contain functionality that is not evaluated in the
	          context of the PP-Module for VPN Clients because the functionality is not specified in an SFR. This functionality
	          may have administrative aspects that are described in the operational guidance. Since such administrative
	          actions will not be performed in an evaluated configuration of the TOE, the evaluator shall examine the
	          operational guidance and make a determination of which administrative commands, including
	          subcommands, scripts, and configuration files, 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-Module for VPN Clients, which thus form the set of “all administrative actions”. The
	          evaluator may perform this activity as part of the activities associated with ensuring the AGD_OPE
	          guidance satisfies the requirements.
                <h:br/>
                <h:br/>
                For each required auditable event, the evaluator shall examine the operational guidance to determine
	          that it is clear to the reader where each event is generated (e.g., the TSF may generate its own audit logs
	          in one location while the platform-provided auditable events are generated elsewhere).
                <h:br/>
                <h:br/>
              </Guidance>
              <Tests>The evaluator shall test the TOE’s ability to correctly generate audit data by having the TOE generate audit data in accordance with the EAs associated with the functional requirements in the PP-Module for VPN Clients. Additionally, the evaluator shall test that each administrative action applicable in the context of the PP-Module for VPN Clients is auditable. When verifying the test results, the evaluator shall ensure the audit data generated during testing match the format specified in the guidance and that the fields in each audit record have the proper entries. <h:br/> <h: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 data is generated as expected.</Tests>
            </aactivity>
          </f-element>
          <f-element id="fau-gen-1e2-vpn">
            <title>
              The TSF
              <h:b>
                and
                <selectables onlyone="yes">
                  <selectable id="fau_gen.1.2_VPN_1">TOE platform</selectable>
                  <selectable id="fau_gen.1.2_VPN_2">no other component</selectable>
                </selectables>
              </h:b>
              shall record within the audit data at least the following information:
              <h:ol>
                <h:li>Date and time of the event, type of event, subject identity, and the outcome
	            (success or failure) of the event; and</h:li>
                <h:li>
                  For each audit event type, based on the auditable event definitions of the
	            functional components included in the PP
                  <h:b>-Module/ST</h:b>, [<h:i>information
	              specified in column three of the Auditable Events tables</h:i>].
                </h:li>
              </h:ol>
            </title>
          </f-element>
          <audit-event table="atref-impl-dep"/>
        </f-component>
      </section>
    </impl-dep-sfrs>
  </sec:Security_Requirements>
  <appendix title="Implicitly Satisfied Requirements" id="satisfiedreqs">
    <!--   Boilerplate goes here   -->
    <!--  	This appendix lists requirements that should be considered satisfied by products successfully evaluated
	against this PP. However, these requirements are not featured explicitly as SFRs and should not be
	included in the ST. They are not included as standalone SFRs because it would increase the time, cost,
	and complexity of evaluation. This approach is permitted by [CC] Part 1, 8.2 Dependencies between
	components.<h:br/><h:br/>
	This information benefits systems engineering activities which call for inclusion of particular security
	controls. Evaluation against the PP-Module provides evidence that these controls are present and have
	been evaluated.
  -->
    <h:b>
      <ctr ctr-type="Table" pre="Table " id="imp-sat-reqs-table">: Implicitly Satisfied Requirements</ctr>
    </h:b>
    <h:table>
      <h:tr class="header">
        <h:td>Requirement</h:td>
        <h:td>Rationale for Satisfaction</h:td>
      </h:tr>
      <h:tr>
        <h:td>
          <h:b>FCS_CKM.2 – Cryptographic Key
		Distribution, or FCS_COP.1 –
		Cryptographic Operation</h:b>
        </h:td>
        <h:td>FCS_CKM.1 (which is defined in this PP-Module as
		FCS_CKM.1/VPN) requires one of FCS_CKM.2 or FCS_COP.1 to
		be claimed so that the generated keys can serve some
		security-relevant purpose. Each of the Base-PPs for this PP-Module 
		define an iteration of FCS_COP.1 for symmetric
		cryptography that is expected to use the IKE keys generated
		by FCS_CKM.1/VPN. Therefore, this dependency is satisfied
		through requirements defined in the Base-PPs.</h:td>
      </h:tr>
      <h:tr>
        <h:td>
          <h:b>FCS_COP.1 – Cryptographic Operation</h:b>
        </h:td>
        <h:td>FCS_IPSEC_EXT.1 has a dependency on FCS_COP.1 because of
		the cryptographic operations that are needed in support of
		implementing the IPsec protocol. FCS_COP.1 is not defined in
		this PP-Module because each of the supported Base-PPs 
		define iterations of FCS_COP.1 that support the functions
		that are relevant to IPsec.</h:td>
      </h:tr>
      <h:tr>
        <h:td>
          <h:b>FMT_MTD.1 – Management of TSF Data</h:b>
        </h:td>
        <h:td>
          FAU_SEL.1/VPN has a dependency on FMT_MTD.1 to enforce
		appropriate access controls on the audit configuration, as this
		is TSF data. This SFR is not explicitly defined in any of the
		supported Base-PPs but the dependency is implicitly
		addressed by each Base-PP in the following manner:
          <h:ul>
            <h:li>GPOS PP: The GPOS PP implicitly defines the
			existence of ‘user’ and ‘administrator’ roles in the
			extended SFRs FMT_MOF_EXT.1 and
			FMT_SMF_EXT.1. A TOE that conforms to this Base-PP can associate the ability to perform the
			functionality defined by FAU_SEL.1/VPN to one or
			both of these roles.</h:li>
            <h:li>MDF PP: The MDF PP implicitly defines the existence
			of ‘user,’ ‘administrator,’ and ‘MDM’ roles in the
			SFRs FMT_MOF_EXT.1 and
			FMT_SMF.1. A TOE that conforms to this Base-PP can associate the ability to perform the
			functionality defined by FAU_SEL.1/VPN to one or
			more of these roles.</h:li>
            <h:li>App PP: The App PP does not define the existence of
			a separately authenticated management interface;
			instead, the App PP assumes that authentication to
			the underlying OS platform is sufficient authorization
			to access the application’s management functionality.</h:li>
            <h:li>MDM PP: The MDM PP defines the existence of
			management roles in FMT_SMR.1/SECMAN_ROLES. A TOE that
			conforms to this Base-PP can associate the ability to
			perform the functionality defined by FAU_SEL.1/VPN
			to one or more of the roles defined here.</h:li>
          </h:ul>
        </h:td>
      </h:tr>
      <h:tr>
        <h:td>
          <h:b>FPT_STM.1 – Reliable Time Stamps</h:b>
        </h:td>
        <h:td>
          FAU_GEN.1/VPN has a dependency on FPT_STM.1 because
		audit data is required to have timestamps that are based
		on reliable clock data. All of the supported Base-PPs either
		define this requirement explicitly or provide rationale for why
		the reader should expect that a reliable clock service should
		be present. Depending on the claimed Base-PP, the
		dependency is satisfied in the following manner:
          <h:ul>
            <h:li>GPOS PP: The GPOS PP states that FPT_STM.1 is
			implicitly satisfied by the requirements of FAU_GEN.1 
			since that requirement could not be satisfied if no
			clock service was present. Additionally, a clock
			service is reasonably assumed to be provided by a
			general-purpose OS.</h:li>
            <h:li>MDF PP: The MDF PP explicitly defines FPT_STM.1.</h:li>
            <h:li>App PP: The App PP assumption A.PLATFORM
			assumes that the general-purpose computing
			platform on which the TOE is installed is ‘a
			trustworthy computing platform.’ System time data is
			not explicitly mentioned but a clock service is
			reasonably assumed to be provided by a general-purpose computer.</h:li>
            <h:li>MDM PP: The MDM PP assumption
			A.MDM_SERVER_PLATFORM assumes that the
			platform on which the TOE is installed will provide
			reliable time services.</h:li>
          </h:ul>
        </h:td>
      </h:tr>
      <h:tr>
        <h:td>
          <h:b>FPT_STM.1 – Reliable Time Stamps</h:b>
        </h:td>
        <h:td>FAU_GEN.1 has a dependency on FPT_STM.1. While not explicitly stated in the PP, it is assumed
	  that this will be provided by the underlying hardware platform on which the TOE is installed. 
	  This is because the TOE is installed as a software or firmware product that runs on general-purpose 
	  computing hardware so a hardware clock is assumed to be available.</h:td>
      </h:tr>
    </h:table>
  </appendix>
  <appendix title="Entropy Documentation and Assessment" id="app-ent">The TOE does not require any additional supplementary information to describe its entropy sources
	beyond the requirements outlined in the Base-PPs. As with other Base-PP requirements, the only
	additional requirement is that the entropy documentation also applies to the specific VPN client
	capabilities of the TOE in addition to the functionality required by the claimed Base-PP.</appendix>
  <bibliography/>
    
</Module>
