<Module xmlns="https://niap-ccevs.org/cc/v1" xmlns:sec="https://niap-ccevs.org/cc/v1/section" xmlns:h="http://www.w3.org/1999/xhtml" boilerplate="yes" target-product="VPN Gateway" name="Virtual Private Network (VPN) Gateway">
	
  <PPReference>
    <ReferenceTable>
      <PPVersion>1.3</PPVersion>
      <PPAuthor>National Information Assurance Partnership</PPAuthor>
      <PPPubDate>2023-08-16</PPPubDate>
      <Keywords>VPN, VPN Gateway, VPN GW, IPsec</Keywords>
    </ReferenceTable>
  </PPReference>
  
  <RevisionHistory>
    <entry>
      <version>1.3</version>
      <date>2023-08-16</date>
      <subject>Incorporation of NIAP Technical Decisions, TC feedback</subject>
      
  <!-- TDs 0656, 0657, 0683, 0723  -->
      
    </entry>
    <entry>
      <version>1.2</version>
      <date>2022-03-31</date>
      <subject>Format conversion, incorporation of NIAP Technical Decisions, TC feedback</subject>
    </entry>
    <entry>
      <version>1.1</version>
      <date>2020-06-18</date>
      <subject>Compatibility with CPP_ND_V2.2E, incorporation of NIAP Technical Decisions</subject>
    </entry>
  </RevisionHistory>
  <release-notes><h:h3>TDs Applied</h:h3></release-notes><RevisionHistory>
    <entry>
      <version>1.0</version>
      <date>2019-09-17</date>
      <subject>Initial publication</subject>
    </entry>
  </RevisionHistory>

  <!-- 1.0 Introduction -->
  <sec:Introduction>
    
    <!-- 1.1 Overview --> <!-- change -->
    <sec:Overview>
      The scope of this Protection Profile Module (PP-Module) is to describe the security functionality of a virtual private network (VPN)
      gateway 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>collaborative Protection Profile for Network Devices, Version 2.2E (NDcPP or CPP_ND_V2.2E)</h:li>
      </h:ul>
      
      This Base-PP is valid because a VPN gateway is a device at the edge of a private network that terminates
      an IPsec tunnel, which provides device authentication, confidentiality, and integrity of information
      traversing a public or untrusted network. This is functionality that typically will be implemented by a
      network device.
      <h:br/>
      A Target of Evaluation (TOE) that conforms to a PP-Configuration containing this PP-Module may be a ‘Distributed TOE’ as
      defined in the NDcPP; however, the VPN gateway functionality described in this PP-Module should be in
      a single TOE component. This PP-Module does not prohibit the TOE from implementing other security
      functionality in a distributed manner. For example, a TOE may have a centralized device that performs
      VPN gateway and other security functionality (such as intrusion prevention) with a number of distributed
      nodes that help in the enforcement of the secondary functionality.
     </sec:Overview>

    <!-- 1.2 Terms -->
    <!-- 1.2.1 Common Criteria Terms -->
      <!-- Boilerplate -->
    <!-- 1.2.2 Technology Terms  -->
    <tech-terms>
      <term abbr="CA" full="Certificate Authority"/>
      <term abbr="CN" full="Common Name"/>
      <term abbr="DH" full="Diffie-Hellman"/>
      <term abbr="DN" full="Distinguished Name"/>
      <term abbr="FQDN" full="Fully Qualified Domain Name"/>
      <term full="Headend">
        A VPN use case where the VPN gateway is establishing VPN connectivity with
        endpoint VPN clients as opposed to other infrastructure devices (e.g., site-to-site).
      </term>
      <term abbr="ICMP" full="Internet Control Message Protocol"/>
      <term abbr="IKE" full="Internet Key Exchange"/>
      <term full="Packet Filtering">
        The process by which an edge network device determines if traffic bound to or from
        its external network is passed to its destination or dropped.
      </term>
      <term abbr="PBKDF" full="Password-Based Key Derivation Function"/>
      <term abbr="SA" full="Security Association"/>
      <term abbr="SAN" full="Subject Alternative Name"/>
      <term abbr="SFP" full="Small Form-Factor Pluggable"/>
   <!--     <term abbr="TCP" full="Transmission Control Protocol"/>
      <term abbr="UDP" full="User Datagram Protocol"/> -->
      <term full="VPN Gateway">
        A type of network device that resides at the edge of a private network and permits
        the establishment of VPN connectivity from computers residing in an external
        network.
      </term>
      <term abbr="VPN" full="Virtual Private Network">
        A mechanism for overlaying a cryptographically secured network over distributed
        wide-area networks.
      </term>
    
    </tech-terms>
    
    <!-- 1.3 Compliant Targets of Evaluation -->
    <sec:Compliant_Targets_of_Evaluation>
      This PP-Module specifically addresses network gateway devices that terminate IPsec VPN tunnels. A
      compliant VPN gateway is a device composed of hardware and software that is connected to two or more
      distinct networks and has an infrastructure role in the overall enterprise network. In particular, a VPN
      gateway establishes a secure tunnel that provides an authenticated and encrypted path to one or more other sites
      and thereby decreases the risk of exposure of information transiting an untrusted network.
      <h:br/>
      The baseline requirements of this PP-Module are those determined necessary for a multi-site VPN
      gateway device. A compliant TOE may also contain the ability to act as a headend for remote clients.
      Because this capability is optional, the remote client-based requirements have been included in
      Appendix A.
      
      
      <!-- 1.3.1 TOE Boundary -->
      <sec:TOE_Boundary>
        The physical boundary for a TOE that conforms to this PP-Module is a hardware appliance that also
        provides generalized network device functionality, such as auditing, identification and authentication, and cryptographic services for
        network communications. The TOE’s logical boundary includes all functionality required by the claimed
        Base-PP as well as the VPN functionality and related capabilities that are defined in this PP-Module. Any
        functionality that is provided by the network device that is not relevant to the security requirements
        defined by this PP-Module or the Base-PP is considered to be outside the scope of the TOE.
 
      </sec:TOE_Boundary>
    </sec:Compliant_Targets_of_Evaluation>
    
    <!-- 1.4 Use Cases -->
    <sec:Use_Cases>
      This PP-Module defines two potential use cases for the VPN gateway TOE, defined below. The first use
      case will always be applicable for a TOE that conforms to this PP-Module. The second use case defines an
      optional deployment for the TOE that accompanies the first use case.
      
      <usecases>
        <usecase id="usecase1" title="Network Device">
          <description>
            The VPN gateway is part of the functionality that is provided by a general network device appliance, such
            as a router or switch, or a device that is dedicated solely to providing multi-site VPN gateway
            functionality.
			</description>
        </usecase>
        
        <usecase id="usecase2" title="Remote Client Headend">
          <description>
            The VPN gateway provides the ability to act as a headend for remote clients.
          </description>
        </usecase>
      </usecases>


  </sec:Use_Cases> 

  </sec:Introduction>
  
  <!-- 2. Conformance Claims -->
  <section title="Conformance Claims" id="ConformanceClaims">
    
    <!-- 2.1 CC Conformance -->
    <cclaims>
      <cclaim name="Conformance Statement">
        <description> This PP-Module inherits exact conformance as required from the specified Base-PPs and as defined
          in the CC and CEM addenda for Exact Conformance, Selection-Based SFRs, and Optional SFRs (dated
          May 2017).<h:br/><h:br/> 

          The following PPs and PP-Modules are allowed to be specified in a PP-Configuration with this PP-Module: <h:ul>
            <h:li>collaborative Protection Profile Module for Stateful Traffic Filter Firewalls v1.4 + Errata 20200625</h:li>
            <h:li>PP-Module for Intrusion Protection Systems, v1.0</h:li>
          </h:ul> 
           
        </description>
      </cclaim>
      <cclaim name="CC Conformance Claims">
        <description>
          This PP-Module is conformant to Parts 2 (extended) and 3 (conformant) of Common Criteria Version
          3.1, Revision 5 [CC].
        </description>
      </cclaim>
      <cclaim name="PP Claim">
        <description>This PP-Module does not claim conformance to any PP.</description>
      </cclaim>
      <cclaim name="Package Claim">
        <description>This PP-Module does not claim conformance to any packages.</description>
      </cclaim>
    </cclaims>
  </section>
    
  <!-- Security Problem Description -->
  <sec:Security_Problem_Description>
    The security problem is described in terms of the threats that the TOE is expected to address,
assumptions about its operational environment (OE), and any organizational security policies that the TOE is
expected to enforce.<h:br/>
    
    <!-- Note: Module 1.1 mapped threats to objectives (objective is primary key of the table) whereas the more typical format is to map it the other way around. Mappings here have been updated to reflect this.
    As a side effect of this, there is no way the current schema can capture what was done for 1.1 where a TOE objective further mitigates a threat that exists only in the Base-PP, specifically:
    - O.FAIL_SECURE, previously mapped only to Base-PP T.SECURITY_FUNCTIONALITY_FAILURE, now unmapped which will fail ACE_OBJ
    - O.TOE_ADMINISTRATION, previously mapped only to Base-PP T.UNAUTHORIZED_ADMINISTRATOR_ACCESS, now unmapped which will fail ACE_OBJ
    - O.SYSTEM_MONITORING, previously mapped to T.NETWORK_MISUSE from the Module and T.UNDETECTED_ACTIVITY from the Base-PP - this not a Part 3 failure on its own since it's still mapped, but additional context from the old Module is lost
    when doing it this way
    How should these be handled?    
    -->

    <!-- 3.1 Threats -->
    <section title="Threats" id="threats">
      The following threats defined in this PP-Module extend the threats defined by the Base-PP.
      <threats>
        <threat name="T.DATA_INTEGRITY">
          <description>Devices on a protected network may be exposed to threats presented by devices located outside the
            protected network that may attempt to modify the data without authorization. If known malicious
            external devices are able to communicate with devices on the protected network or if devices on the
            protected network can communicate with those external devices then the data contained in the
            communications may be susceptible to a loss of integrity. </description>
          <objective-refer ref="O.ADDRESS_FILTERING">
            <rationale>The TOE’s ability to provide address
              filtering helps mitigate the threat of
              data integrity violations by reducing the
              amount of potentially malicious
              network traffic that could potentially
              exploit the threat.
            </rationale>
          </objective-refer>
          <objective-refer ref="O.AUTHENTICATION">
            <rationale>The TOE’s ability to authenticate
              entities requesting network access
              helps mitigate the threat of integrity
              violations by establishing or exchanging
              keys that are used to maintain data
              integrity.
            </rationale>
          </objective-refer>
          <objective-refer ref="O.CRYPTOGRAPHIC_FUNCTIONS">
            <rationale>The modification of data without
              authorization can be prevented by
              cryptography that ensures the
              confidentiality and integrity of the data.
            </rationale>
          </objective-refer>
          <objective-refer ref="O.FAIL_SECURE">
            <rationale>The TOE's ability to protect against unauthorized modifications to itself
              helps ensure that its functionality cannot be altered in such a way that it fails to maintain integrity of its communications.</rationale>
          </objective-refer>
          <objective-refer ref="O.PORT_FILTERING">
            <rationale>The TOE’s ability to provide port
              filtering helps mitigate the threat of
              data integrity violations by reducing the
              amount of potentially malicious
              network traffic that could potentially
              exploit the threat.
            </rationale>
          </objective-refer>
        </threat>

        <threat name="T.NETWORK_ACCESS">
          <description> 
            Devices located outside the protected network may seek to exercise services located on the protected
            network that are intended to only be accessed from inside the protected network or only accessed by
            entities using an authenticated path into the protected network. Devices located outside the
            protected network may, likewise, offer services that are inappropriate for access from within the
            protected network.
            <h:br/>
            From an ingress perspective, VPN gateways can be configured so that only those network servers
            intended for external consumption by entities operating on a trusted network (e.g., machines
            operating on a network where the peer VPN gateways are supporting the connection) are accessible
            and only via the intended ports. This serves to mitigate the potential for network entities outside a
            protected network to access network servers or services intended only for consumption or access
            inside a protected network.
            <h:br/>
            From an egress perspective, VPN gateways can be configured so that only specific external services
            (e.g., based on destination port) can be accessed from within a protected network, or moreover are
            accessed via an encrypted channel. For example, access to external mail services can be blocked to
            enforce corporate policies against accessing uncontrolled email servers, or, that access to the mail
            server must be done over an encrypted link.
          </description>
          <objective-refer ref="O.ADDRESS_FILTERING">
            <rationale>
              The TOE’s address filtering capability
              helps mitigate the threat of network
              access by limiting unauthorized
              reconnaissance activities that can be
              performed outside the protected
              network. 
            </rationale>
          </objective-refer>
          <objective-refer ref="O.AUTHENTICATION">
            <rationale>
              The TOE’s ability to authenticate
              entities requesting network access
              mitigates unauthorized network access
              by ensuring that unauthenticated
              connections cannot access the
              protected network.
            </rationale>
          </objective-refer>
          <objective-refer ref="O.CRYPTOGRAPHIC_FUNCTIONS">
            <rationale>
              The TOE’s use of cryptography prevents
              unauthorized network access by
              encrypting data transmitted to and from an
              entity on an untrusted network that is
              accessing a protected resource.
            </rationale>
          </objective-refer>
          <objective-refer ref="O.FAIL_SECURE">
            <rationale>The TOE's ability to protect against unauthorized modifications to itself
              helps ensure that its functionality cannot be altered in such a way that it permits network access that it would ordinarily disallow.</rationale>
          </objective-refer>
          <objective-refer ref="O.PORT_FILTERING">
            <rationale>
              The TOE’s port filtering capability helps
              mitigate the threat of network access
              by limiting unauthorized
              reconnaissance activities that can be
              performed outside the protected
              network.
            </rationale>
          </objective-refer>
        </threat>

        <threat name="T.NETWORK_DISCLOSURE">
          <description>
            Devices on a protected network may be exposed to threats presented by devices located outside the
            protected network, which may attempt to conduct unauthorized activities. If known malicious
            external devices are able to communicate with devices on the protected network, or if devices on the
            protected network can establish communications with those external devices (e.g., as a result of a
            phishing episode or by inadvertent responses to email messages), then those internal devices may be
            susceptible to the unauthorized disclosure of information.
            <h:br/>
            From an infiltration perspective, VPN gateways serve not only to limit access to only specific
            destination network addresses and ports within a protected network, but whether network traffic will
            be encrypted or transmitted in plaintext. With these limits, general network port scanning can be
            prevented from reaching protected networks or machines, and access to information on a protected
            network can be limited to that obtainable from specifically configured ports on identified network
            nodes (e.g., web pages from a designated corporate web server). Additionally, access can be limited
            to only specific source addresses and ports so that specific networks or network nodes can be blocked
            from accessing a protected network thereby further limiting the potential disclosure of information.
            <h:br/>
            From an exfiltration perspective, VPN gateways serve to limit how network nodes operating on a
            protected network can connect to and communicate with other networks limiting how and where
            they can disseminate information. Specific external networks can be blocked altogether or egress
            could be limited to specific addresses or ports. Alternately, egress options available to network
            nodes on a protected network can be carefully managed in order to, for example, ensure that
            outgoing connections are encrypted to further mitigate inappropriate disclosure of data through
            packet sniffing.
          </description>
          <objective-refer ref="O.ADDRESS_FILTERING">
            <rationale>The TOE’s address filtering capability
              helps mitigate the threat of network
              disclosure by limiting unauthorized
              reconnaissance activities that can be
              performed outside the protected
              network. 
            </rationale>
          </objective-refer>
          <objective-refer ref="O.FAIL_SECURE">
            <rationale>The TOE's ability to protect against unauthorized modifications to itself
              helps ensure that its functionality cannot be altered to allow unauthorized disclosure of protected network traffic.</rationale>
          </objective-refer>
          <objective-refer ref="O.PORT_FILTERING">
            <rationale>The TOE’s port filtering capability helps
              mitigate the threat of network access
              by limiting unauthorized
              reconnaissance activities that can be
              performed outside the protected
              network. 
            </rationale>
          </objective-refer>
        </threat>

        <threat name="T.NETWORK_MISUSE">
          <description>
            Devices located outside the protected network, while permitted to access particular public services
            offered inside the protected network, may attempt to conduct inappropriate activities while
            communicating with those allowed public services. Certain services offered from within a protected
            network may also represent a risk when accessed from outside the protected network.
            <h:br/>
            From an ingress perspective, it is generally assumed that entities operating on external networks are
            not bound by the use policies for a given protected network. Nonetheless, VPN gateways can log
            policy violations that might indicate violation of publicized usage statements for publicly available
            services.
            <h:br/>
            From an egress perspective, VPN gateways can be configured to help enforce and monitor protected
            network use policies. As explained in the other threats, a VPN gateway can serve to limit dissemination
            of data, access to external servers, and even disruption of services – all of these could be related to
            the use policies of a protected network and as such are subject in some regards to enforcement.
            Additionally, VPN gateways can be configured to log network usages that cross between protected
            and external networks and as a result can serve to identify potential usage policy violations.
            
          </description>
          <objective-refer ref="O.ADDRESS_FILTERING">
            <rationale>
              The TOE’s ability to provide address
              filtering helps mitigate the threat of
              network misuse by reducing the
              amount of potentially malicious
              network traffic that could potentially
              exploit the threat.
            </rationale>
          </objective-refer>
          <objective-refer ref="O.CRYPTOGRAPHIC_FUNCTIONS">
            <rationale>
              The TOE’s use of cryptography prevents
              network misuse by ensuring that an
              unauthorized attacker cannot inject
              their own actions into the protected
              network.
            </rationale>
          </objective-refer>
          <objective-refer ref="O.FAIL_SECURE">
            <rationale>The TOE's ability to protect against unauthorized modifications to itself
              helps ensure that its functionality to detect potential misuse of network resources is not compromised.</rationale>
          </objective-refer>
          <objective-refer ref="O.PORT_FILTERING">
            <rationale>
              The TOE’s ability to provide port
              filtering helps mitigate the threat of
              network misuse by reducing the
              amount of potentially malicious
              network traffic that could potentially
              exploit the threat.
            </rationale>
          </objective-refer>
          <objective-refer ref="O.SYSTEM_MONITORING">
            <rationale>
              The TOE’s system monitoring function
              helps mitigate the threat of network
              misuse by providing a method to detect
              when potential misuse is occurring.
            </rationale>
          </objective-refer>
          <objective-refer ref="O.TOE_ADMINISTRATION">
            <rationale>The TOE implements a management interface that allows for authorized usage of the TOE so that unprivileged users
              do not have the ability to misuse its functions.</rationale>
          </objective-refer>
        </threat>
        
        <threat name="T.REPLAY_ATTACK">
          <description>
            If an unauthorized individual successfully gains access to the system, the adversary may have the
            opportunity to conduct a “replay” attack. This method of attack allows the individual to capture
            packets traversing throughout the network and send the packets at a later time, possibly unknown by
            the intended receiver. Traffic is subject to replay if it meets the following conditions: 
            <h:ul>
            <h:li>Cleartext: an attacker with the ability to view unencrypted traffic can identify an appropriate
              segment of the communications to replay as well in order to cause the desired outcome</h:li>
            <h:li>No integrity: alongside cleartext traffic, an attacker can make arbitrary modifications to captured
            traffic and replay it to cause the desired outcome if the recipient has no means to detect these</h:li>
            </h:ul>
          </description>
          <objective-refer ref="O.AUTHENTICATION">
            <rationale>
              The TOE’s ability to enforce
              authentication helps mitigate replay
              attacks by making it more difficult for
              an attacker to impersonate a valid
              entity.
            </rationale>
          </objective-refer>
          <objective-refer ref="O.CRYPTOGRAPHIC_FUNCTIONS">
            <rationale>
              The TOE’s use of cryptography prevents
              replay attacks by ensuring that network
              data that is modified and retransmitted
              will not be parsed as valid traffic.
            </rationale>
          </objective-refer>
          <objective-refer ref="O.FAIL_SECURE">
            <rationale>The TOE's ability to protect against unauthorized modifications to itself
              helps ensure that it always enforces requirements for confidentiality and integrity of network traffic in the intended manner.</rationale>
          </objective-refer>
        </threat>
   
        
      </threats>
    </section>
    
    <!-- 3.2 Assumptions -->
    <sec:Assumptions>
      This PP-Module defines assumptions that extend those defined in the supported Base-PP.
      <h:br/>
      All assumptions for the OE of the Base-PP also apply to this PP-Module.
      A.NO_THRU_TRAFFIC_PROTECTION is still operative, but only for the interfaces in the TOE that are
      defined by the Base-PP and not the PP-Module.
      
      <assumptions>
        <assumption name="A.CONNECTIONS">
          <description> It is assumed that the TOE is connected to distinct networks in a manner
            that ensures that the TOE's security policies will be enforced on all applicable network
            traffic flowing among the attached networks. </description>
          
          <consistency-rationale>The Base-PP does not define where in a particular network architecture a network device must be deployed since it is designed to be generic to various types of network devices. This PP-Module
            defines the expected architectural deployment specifically for WLAN AS network devices.</consistency-rationale>
          <objective-refer ref="OE.CONNECTIONS">
            <!-- Note: Added per TD0590 -->
            <rationale> The OE objective OE.CONNECTIONS is realized through
              A.CONNECTIONS.</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. Security Objectives --> 
  <sec:Security_Objectives>  
<!--  <section title="Security Objectives" id="obj"> -->
    
    <!-- 4.1 Security Objectives for the TOE -->
    <sec:Security_Objectives_for_the_TOE>
      <SOs>
        <SO name="O.ADDRESS_FILTERING">
          <description>To address the issues associated with unauthorized disclosure of information, inappropriate access to
            services, misuse of services, disruption or denial of services, and network-based reconnaissance,
            compliant TOE’s will implement packet filtering capability. That capability will restrict the flow of
            network traffic between protected networks and other attached networks based on network
            addresses of the network nodes originating (source) or receiving (destination) applicable network
            traffic as well as on established connection information.
            <h:br/>
            Addressed by: FPF_RUL_EXT.1, FTA_VCM_EXT.1 (optional)
          </description>
    
       <addressed-by>FPF_RUL_EXT.1</addressed-by>
          <rationale>This SFR supports the objective by requiring the TSF to filter network traffic based on network address information.</rationale>
          <addressed-by>FTA_VCM_EXT.1 (optional)</addressed-by>
          <rationale>This SFR supports the objective by optionally allowing the TOE to assign a private IP address to a VPN client so that traffic bound for an alternative address can be flagged as invalid.</rationale>
      </SO>
        
        
        <SO name="O.AUTHENTICATION">
          <description>
            To further address the issues associated with unauthorized disclosure of information, a compliant
            TOE’s authentication ability (IPSec) will allow a VPN peer to establish VPN connectivity with another
            VPN peer and ensure that any such connection attempt is both authenticated and authorized. VPN
            endpoints authenticate each other to ensure they are communicating with an authorized external IT
            entity.
            <h:br/>
            Addressed by: FCS_IPSEC_EXT.1 (refined from Base-PP), FIA_X509_EXT.1/Rev (from Base-PP),
            FIA_X509_EXT.2 (refined from Base-PP), FIA_X509_EXT.3 (from Base-PP), FTP_ITC.1/VPN,
            FPF_MFA_EXT.1 (optional), FTA_SSL.3/VPN (optional), FTA_TSE.1 (optional), FCS_EAP_EXT.1 (selection-based), FIA_HOTP_EXT.1 (selection-based), FIA_PSK_EXT.1 (selection-based),
            FIA_PSK_EXT.2 (selection-based), FIA_PSK_EXT.3 (selection-based), FIA_TOTP_EXT.1 (selection-based)
		  </description>
		  
          <addressed-by>FCS_IPSEC_EXT.1 (refined from Base-PP)
          </addressed-by>
          <rationale>This SFR supports the objective by requiring the TOE's
            implementation of IPsec to include requirements for how the VPN client is authenticated.
            </rationale>
          <addressed-by>FIA_X509_EXT.1/Rev
            (from Base-PP)</addressed-by>
          <rationale>This SFR supports the objective by requiring the TOE
            to implement X.509 validation functions so that it
            can authenticate remote entities that assert their
            identity using X.509 certificates.
          </rationale>
          <addressed-by>FIA_X509_EXT.2 (refined
            from Base-PP)
          </addressed-by>
          <rationale>This SFR supports the objective by requiring the TOE
            to implement X.509 authentication functions so that
            it can authenticate remote entities that assert their
            identity using X.509 certificates.</rationale>
          <addressed-by>FIA_X509_EXT.3 (from
            Base-PP)
          </addressed-by>
          <rationale>This SFR supports the objective by requiring the TOE
            to have the ability to generate a certificate request
            so that it can be issued an X.509 certificate that
            allows the TSF to offer proof of its own authenticity
            to external entities.
          </rationale>
          <addressed-by>FTP_ITC.1/VPN</addressed-by>
          <rationale>This SFR supports the objective by requiring the TOE
            to use an IPsec trusted channel to communicate with
            external entities so that these entities may be
            authenticated.
          </rationale>
          <addressed-by>FTA_SSL.3/VPN (optional)</addressed-by>
          <rationale>This SFR supports the objective by optionally
            allowing the TSF to terminate inactive VPN sessions
            so that an unattended session cannot be used to
            bypass authentication mechanisms.</rationale>
          <addressed-by>FTA_TSE.1 (optional) </addressed-by>
          <rationale>This SFR supports the objective by optionally
            defining alternative mechanisms to determine the
            validity of a subject to reject unauthorized or
            impersonated authentication attempts</rationale>
          
          
          <addressed-by>FPF_MFA_EXT.1 (optional)</addressed-by>
          <rationale>This SFR supports the objective by optionally enforcing a multifactor authentication requirement on an IPsec connection.</rationale>
          
          <addressed-by>FCS_EAP_EXT.1 (selection-based)</addressed-by>
          <rationale>This SFR supports the objective by optionally using an external authentication server to facilitate EAP-TLS or EAP-TTLS.</rationale>
          
          <addressed-by>FIA_HOTP_EXT.1 (selection-based)</addressed-by>
          <rationale>This SFR supports the objective by optionally defining the implementation of HOTP as an authentication mechanism.</rationale>
          
          <addressed-by>FIA_PSK_EXT.1 (selection-based)</addressed-by>
          <rationale>This SFR supports the objective by optionally
            supporting the use of pre-shared keys.</rationale>
          <addressed-by>FIA_PSK_EXT.2 (selection-based)</addressed-by>
          <rationale>This SFR supports the objective by optionally specifying whether the TOE generates 
            its own pre-shared keys or accepts them from an external source.</rationale>
          <addressed-by>FIA_PSK_EXT.3 (selection-based)</addressed-by>
          <rationale>This SFR supports the objective by optionally defining the composition and use of password-based pre-shared keys used for authentication.</rationale>
          
          <addressed-by>FIA_TOTP_EXT.1 (selection-based)</addressed-by>
          <rationale>This SFR supports the objective by optionally defining the implementation of TOTP as an authentication mechanism.</rationale>
          
        </SO>
        
        <SO name="O.CRYPTOGRAPHIC_FUNCTIONS">
          <description>
            To address the issues associated with unauthorized disclosure of information, inappropriate access to
            services, misuse of services, disruption of services, and network-based reconnaissance, compliant
            TOE’s will implement cryptographic capabilities. These capabilities are intended to maintain
            confidentiality and allow for detection and modification of data that is transmitted outside of the TOE.
            <h:br/>
            Addressed by: FCS_COP.1/DataEncryption (refined from Base-PP), FCS_IPSEC_EXT.1 (refined from
            Base-PP), FCS_CKM.1/IKE, FCS_EAP_EXT.1 (selection-based), FIA_PSK_EXT.1 (selection-based), FIA_PSK_EXT.2 (selection-based)
          </description>
          
          <addressed-by>FCS_COP.1/DataEncryption (refined from Base-PP)
          </addressed-by>
          <rationale>This SFR supports the objective by requiring the TOE
            to implement AES in a specified manner.
          </rationale>
          
          <addressed-by>FCS_IPSEC_EXT.1 (refined
            from Base-PP)
          </addressed-by>
          <rationale>This SFR supports the objective by requiring the TOE
            to implement the IPsec protocol in a specified
            manner</rationale>
          
          <addressed-by>FCS_CKM.1/IKE</addressed-by>
          <rationale>This SFR supports the objective by requiring the TOE
            to generate cryptographic keys used for Internet Key Exchange (IKE) in a
            specified manner.
          </rationale>
          
          <addressed-by>FCS_EAP_EXT.1 (selection-based)</addressed-by>
          <rationale>This SFR supports the objective by optionally using an MSK computed by an external authentication server
            via the EAP-TLS or EAP-TTLS method.</rationale>
          
          <addressed-by>FIA_PSK_EXT.1 (selection-based)</addressed-by>
          <rationale>This SFR supports the objective by supporting a mechanism by which PSKs can be used to fortify encryption.</rationale>
          
          <addressed-by>FIA_PSK_EXT.2 (selection-based)</addressed-by>
          <rationale>This SFR supports the objective by optionally specifying whether 
            the TOE generates its own pre-shared keys or accepts them from an external source..</rationale>
        </SO>
        
        
        <SO name="O.FAIL_SECURE">
          <description>
            There may be instances where the TOE’s hardware malfunctions or the integrity of the TOE’s software
            is compromised, the latter being due to malicious or non-malicious intent. To address the concern of
            the TOE operating outside of its hardware or software specification, the TOE will shut down upon
            discovery of a problem reported via the self-test mechanism and provide signature-based validation
            of updates to the TSF.
            <h:br/>
            Addressed by: FPT_TST_EXT.1 (refined from Base-PP), FPT_TUD_EXT.1 (refined from Base-PP),
            FPT_FLS.1/SelfTest, FPT_TST_EXT.3
          </description>
		  
          <addressed-by>FPT_TST_EXT.1 (refined
            from Base-PP)</addressed-by>
          <rationale>This SFR supports the objective by requiring the TOE
            to execute self-tests that allow the TSF to determine
            if it is in a failed state.</rationale>
          
          <addressed-by>FPT_TUD_EXT.1 (refined
            from Base-PP)
          </addressed-by>
          <rationale>This SFR supports the objective by requiring the TOE
            to validate software updates before applying them
            to reduce the risk of the TOE entering a failed state.
          </rationale>
          
          <addressed-by>FPT_FLS.1/SelfTest</addressed-by>
          <rationale>This SFR supports the objective by requiring the TOE
            to preserve a secure state if a self-test failure is
            detected.</rationale>
          
          <addressed-by>FPT_TST_EXT.3 </addressed-by>
          <rationale>This SFR supports the objective by requiring the TOE
            to verify the integrity of its executable code to
            ensure that it will operate in a known state.
          </rationale>
          
        </SO>
        
        <SO name="O.PORT_FILTERING">
          <description>
            To further address the issues associated with unauthorized disclosure of information, etc., a compliant
            TOE’s port filtering capability will restrict the flow of network traffic between protected networks and
            other attached networks based on the originating (source) or receiving (destination) port (or
            service) identified in the network traffic as well as on established connection information.
            <h:br/>
            Addressed by: FPF_RUL_EXT.1
          </description>
          
          <addressed-by>FPF_RUL_EXT.1</addressed-by>
          <rationale>This SFR supports the objective by requiring the TSF
            to filter network traffic based on port information.
          </rationale>

        </SO>
        
        <SO name="O.SYSTEM_MONITORING">
          <description>
            To address the issues of administrators being able to monitor the operations of the VPN gateway, it
            is necessary to provide a capability to monitor system activity. Compliant TOEs will implement the
            ability to log the flow of network traffic. Specifically, the TOE will provide the means for administrators
            to configure packet filtering rules to ‘log’ when network traffic is found to match the configured rule.
            As a result, matching a rule configured to ‘log’ will result in informative event logs whenever a match
            occurs. In addition, the establishment of security associations (SAs) is auditable, not only between
            peer VPN gateways, but also with certification authorities (CAs).
            <h:br/>
            Addressed by: FAU_GEN.1/VPN, FPF_RUL_EXT.1
          </description>

          <addressed-by>FAU_GEN.1/VPN</addressed-by>
          <rationale>This SFR supports the objective by requiring the TOE
            to generate security-relevant audit events related to VPN gateway functionality. 
          </rationale>
          <addressed-by>FPF_RUL_EXT.1</addressed-by>
          <rationale>This SFR supports the objective by requiring the TOE
            to have the ability to log network traffic that
            matches certain characteristics.
          </rationale>
        </SO>
        
        <SO name="O.TOE_ADMINISTRATION">
          
          <description>
            TOEs will provide the functions necessary for an administrator to configure the packet filtering rules,
            as well as the cryptographic aspects of the IPsec protocol that are enforced by the TOE.
            <h:br/>
            Addressed by: FMT_MTD.1/CryptoKeys (refined from Base-PP), 
            FMT_SMF.1/VPN
          </description>
          
          
          <addressed-by>FMT_MTD.1/CryptoKeys (refined from
            Base-PP)</addressed-by>
          <rationale>This SFR supports the objective by requiring the TOE
            to implement a key management function and
            ensure that only authorized users can use it.</rationale>
          
          <addressed-by>FMT_SMF.1/VPN</addressed-by>
          <rationale>This SFR supports the objective by specifying the
            management functions required specifically for VPN
            gateway functionality.</rationale>
        </SO>
             
      </SOs>
    </sec:Security_Objectives_for_the_TOE>
    
    <!-- 4.2 Security Objectives for the Operational Environment -->
    <section title="Security Objectives for the Operational Environment" id="SecurityObjectivesTOEorEnvironment">
      This PP-Module defines environmental security objectives that extend those defined in
      the supported Base-PP.
      <h:br/>
      All objectives for the OE of the Base-PP also apply to this PP-Module.
      OE.NO_THRU_TRAFFIC_PROTECTION is still operative, but only for the interfaces in the TOE that are
      defined by the Base-PP and not the PP-Module.
      
      <SOEs>
        <SOE name="OE.CONNECTIONS">
          <description>The TOE is connected to distinct networks in a manner that ensures that the TOE security policies will
            be enforced on all applicable network traffic flowing among the attached networks.
          </description>
          <consistency-rationale/>
        </SOE>
      </SOEs>
    </section>
    
    <!-- 4.3 Security Objectives Rationale -->
    <section title="Security Objectives Rationale" id="SOR">
      <!-- This section should remain empty and is populated from the rationale tags in the previous sections.  -->
    </section>
    
  </sec:Security_Objectives>
        
  <!-- 5. Security Requirements -->
  <sec:Security_Requirements>
<!--  <section title="Security Requirements" id="sfrs">  -->
    
    The Security Functional Requirements (SFRs) included in this section are derived from Part 2 of the
    Common Criteria for Information Technology Security Evaluation, Version 3.1, Revision 5, with
    additional extended functional components.<h:br/>
    The CC defines operations on Security Functional Requirements: assignments, selections, assignments
    within selections and refinements. This document uses the following font conventions to identify the
    operations defined by the CC:<h:br/>
    <h:ul>
      <h:li>Assignments are indicated with <h:i>italicized</h:i> text.</h:li>
      <h:li>Refinements made by the PP-Module author are indicated with <h:b>bold text</h:b> for added or substituted
        text and <h:s>strikethrough</h:s> text for removed text. Refinements are only applied to significant technical
        changes to existing SFRs; minor presentation changes with no technical impact (such as British vs
        American spelling differences) are not marked as refinements. Refinements are also indicated when
        an operation is added or substituted for an existing operation (e.g., the PP-Module completes an
        assignment in such a way that it introduces a selection into the assignment).<h:br/>
        Note that for SFRs that are defined either in CC Part 2 or in this PP-Module’s Extended Components
        Definition, the refinement operation is used to indicate deviations from the defined component. For
        Base-PP SFRs that are modified by this PP-Module, the refinement operation is used to indicate
        deviations from the Base-PP’s definition of the SFR (i.e., if the Base-PP refined an SFR and that
        change is not affected by this PP-Module, it is not shown here as a refinement).</h:li>
      <h:li>Selections are indicated with <h:i>italicized</h:i> text.</h:li>
      <h:li>Iteration is indicated by appending the SFR name with a slash and unique identifier suggesting the
        purpose of the iteration, e.g., ‘/VPN’ for an SFR relating to VPN gateway functionality.</h:li>
      <h:li>Extended SFRs are identified by having a label “EXT” after the SFR name.</h:li>
    </h:ul>
    Note that selections and assignments to be completed by the ST author are preceded with “selection:”
    and “assignment:”. If text is italicized and does not include either of these, it means that the selection or
    assignment has already been completed in this PP-Module and the ST author must use the text as
    written. 
    
    <!-- 5.1 NDcPP Security Functional Requirements Direction -->
      <base-pp id="ND" version="2.2e" name="Network Device" product="Network Device" short="ND" plural="Network Devices">
        <url>https://www.niap-ccevs.org/profile/Info.cfm?PPID=447&amp;id=447</url>
        <cPP/>

		<sec-func-req-dir> 
			In a PP-Configuration that includes the NDcPP, the VPN gateway is expected to rely on some of the
			security functions implemented by the network device 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.2.
		</sec-func-req-dir> 
      
      <!-- 5.1.1 Modified SFRs -->      
      <modified-sfrs>
<!--        
        The SFRs listed in this section are defined in the GPOS PP and relevant to the secure operation of the
        VPN client. It is necessary for the ST author to complete selections and assignments for these SFRs in
        a specific manner in order to ensure that the functionality provided by the OS is consistent with the
        functionality required by the VPN client in order for it to conform to this PP-Module.  
-->        
        <!-- 5.1.1.1  -->
        <section title="Cryptographic Support (FCS)" id="nd-m-fcs">
          <f-component cc-id="fcs_cop.1" iteration="DataEncryption" id="nd-fcs-cop-1-dataencryption" name="Cryptographic Operation (AES Data Encryption/Decryption)">
            <consistency-rationale>This PP-Module restricts the Base-PP SFR to a subset of existing permissible
              functionality and does not introduce any new behavior.</consistency-rationale>

            <f-element id="nd-fcs-cop-1e1-dataencryption">
              <title>
                The TSF shall perform encryption/decryption in accordance with a
                specified cryptographic algorithm AES used in 
                <h:b><selectables>
                  <selectable>CBC</selectable>
                  <selectable>GCM</selectable>
                </selectables> and <selectables>
                  <selectable>CTR</selectable>
                  <selectable exclusive="yes">no other</selectable>
                </selectables> 
                </h:b> mode and cryptographic key sizes <h:b><selectables>
                  <selectable>128 bits</selectable>
                  <selectable>256 bits</selectable>
                </selectables> and <selectables>
                  <selectable>192 bits</selectable>
                  <selectable exclusive="yes">no other cryptographic key sizes</selectable>
                </selectables></h:b> that meet the following: AES as specified in ISO 18033-3, <h:b><selectables>
                  <selectable>CBC as specified in ISO 10116</selectable>
                  <selectable>GCM as specified in ISO 19772</selectable></selectables>, and <selectables>
                  <selectable>CTR as specified in ISO 10116</selectable>
                  <selectable exclusive="yes">no other standards</selectable>
                </selectables></h:b>. 
              </title>
              <note role="application">
                This SFR has been modified from its definition in the NDcPP to support this
                PP-Module’s IPsec requirements by mandating support for at least one of
                CBC or GCM modes and at least one of 128-bit or 256-bit key sizes at
                minimum. Other selections may be made by the ST author but they are
                not required for conformance to this PP-Module.
              </note>
              <aactivity>
                <no-tests>There is no change to the Evaluation Activities specified for this SFR in the NDcPP Supporting Document.
                  The PP-Module modifies this SFR to require the ST author to make certain selections, but these selections
                  are all part of the original definition of the SFR so no new behavior is defined by the PP-Module.
                </no-tests>
              </aactivity>
            </f-element>
            <audit-event/>
          </f-component>
        
          <f-component cc-id="fcs_ipsec_ext.1" id="nd-fcs-ipsec-ext-1" name="IPsec Protocol">
            <consistency-rationale>This PP-Module restricts the Base-PP SFR to a subset of existing permissible
              functionality and does not introduce any new behavior.</consistency-rationale>
            
            <!-- Note: Module v1.1 only lists the elements that are modified from their Base-PP definition. Since the schema doesn't allow us to define arbitrary non-sequential elements we have just
            included the entire component and kept the app notes on the ones that were changed. -->
            <f-element id="nd-fcs-ipsec-ext-1e1">
              <title>
                The TSF shall implement the IPsec architecture as specified in RFC
                4301.
              </title>
              <note role="application">
                This element is unchanged from its definition in the Base-PP.
              </note>
            </f-element>
            <f-element id="nd-fcs-ipsec-ext-1e2">
              <title>The TSF shall have a nominal, final entry in the SPD that matches
                anything that is otherwise unmatched and discards it.
              </title>
              <note role="application">
                This element is unchanged from its definition in the Base-PP.
              </note>
            </f-element>
            <!-- Note: any change to 1.3? -->
            <f-element id="nd-fcs-ipsec-ext-1e3">
              <title>The TSF shall implement <selectables>
                <selectable>transport mode</selectable>
                <selectable>tunnel mode</selectable>
              </selectables>.
              </title>
              <note role="application">
                The selection of supported modes is expected to be performed according to
                RFC 4301.
              </note>
            </f-element>
            <f-element id="nd-fcs-ipsec-ext-1e4">
              <title>
                The TSF shall implement the IPsec protocol ESP as defined by RFC 4303 using the
                cryptographic algorithms <h:b><selectables>
                  <selectable>AES-CBC-128</selectable>
                  <selectable>AES-CBC-256 (specified in RFC 3602)</selectable>
                  <selectable>AES-GCM-128</selectable>
                  <selectable>AES-GCM-256 (specified in RFC 4106)</selectable>
                </selectables> and <selectables>
                  <selectable>AES-CBC-192 (specified in RFC 3602)</selectable>
                  <selectable>AES-GCM-192 (specified in RFC 4106)</selectable>
                  <selectable exclusive="yes">no other algorithm</selectable>
                </selectables></h:b> together with a Secure Hash Algorithm (SHA)-based HMAC <selectables>
                  <selectable>HMAC-SHA-1</selectable>
                  <selectable>HMAC-SHA-256</selectable>
                  <selectable>HMAC-SHA-384</selectable>
                  <selectable>HMAC-SHA-512</selectable>
                  <selectable exclusive="yes">no HMAC algorithm</selectable>
                </selectables>.
              </title>
              <note role="application">
                This element has been modified from its definition in the NDcPP by mandating
                either 128 or 256 bit key sizes for AES-CBC or AES-GCM, thereby disallowing for
                the sole selection of 192 bit key sizes.
                <h:br/>
                When an AES-CBC algorithm is selected, at least one SHA-based HMAC must also
                be chosen. If only an AES-GCM algorithm is selected, then a SHA-based HMAC is
                not required since AES-GCM satisfies both confidentiality and integrity functions.
                IPsec may use a truncated version of the SHA-based HMAC functions contained
                in the selections. Where a truncated output is used, this is described in the TSS.
              </note>
            </f-element>
            <f-element id="nd-fcs-ipsec-ext-1e5">
              <title>The TSF shall implement the protocol: <selectables linebreak="yes">
                <selectable>IKEv1, using Main Mode for Phase 1 exchanges, as defined in RFCs 2407, 2408, 2409, RFC 4109, <selectables>
                  <selectable exclusive="yes">no other RFCs for extended sequence numbers</selectable>
                  <selectable>RFC 4304 for extended sequence numbers</selectable>
                </selectables> and <selectables>
                  <selectable exclusive="yes">no other RFCs for hash functions</selectable>
                  <selectable>RFC 4868 for hash functions</selectable></selectables></selectable>
                <selectable>IKEv2 as defined in RFC 5996 and <selectables onlyone="yes">
                  <selectable>with no support for NAT traversal</selectable>
                  <selectable>with mandatory support for NAT traversal as specified in RFC 5996, section 2.23</selectable></selectables> and <selectables>
                    <selectable exclusive="yes">no other RFCs for hash functions</selectable>
                    <selectable>RFC 4868 for hash functions</selectable></selectables></selectable>
              </selectables>.
              </title>
              <note role="application">
                This element is unchanged from its definition in the Base-PP.
              </note>
            </f-element>
            <f-element id="nd-fcs-ipsec-ext-1e6">
              <title>
                The TSF shall ensure the encrypted payload in the <selectables>
                  <selectable>IKEv1</selectable>
                  <selectable>IKEv2</selectable> 
                </selectables> protocol uses the cryptographic algorithms <selectables>
                  <selectable>AES-CBC-128</selectable>
                  <selectable>AES-CBC-192</selectable>
                  <selectable>AES-CBC-256 (specified in RFC 3602)</selectable>
                  <selectable>AES-GCM-128</selectable>
                  <selectable>AES-GCM-256 (specified in RFC 5282)</selectable>
                </selectables>.
              </title>
              <!-- Note: the RFCs referenced in the app note below are normally referenced but only in the third and sixth selections above, which cretes an awkward situation if those specific selections aren't made. Is it ok
              just to reference the RFCs in the app note (the alternatives would be refactoring the selection entirely or refining the RFCs into each individual selection item, neither of which seem like a better option. -->
              <note role="application">
                This element is changed from its definition in the Base-PP to remove AES-GCM-192, which is not recommended. 
                AES-CBC implementation for IPsec is specified in RFC 3602. AES-GCM implementation for IPsec is specified in RFC 5282.
              </note>
            </f-element>
            <f-element id="nd-fcs-ipsec-ext-1e7">
              <title>
                The TSF shall ensure that <selectables linebreak="yes">
                  <selectable>IKEv1 Phase 1 SA lifetimes can be configured by a Security Administrator based on
                  <selectables linebreak="yes">
                    <selectable>number of bytes</selectable>
                    <selectable>length of time, where the time values can be configured within <assignable>integer range including 24</assignable> hours</selectable></selectables></selectable>
                  <selectable>IKEv2 SA lifetimes can be configured by a Security Administrator based on <selectables linebreak="yes">
                    <selectable>number of bytes</selectable>
                    <selectable>length of time, where the time values can be configured within <assignable>integer range including 24</assignable> hours</selectable></selectables></selectable></selectables>.
              </title>
              <note role="application">
                This element is unchanged from its definition in the Base-PP.
              </note>
            </f-element>
            <f-element id="nd-fcs-ipsec-ext-1e8">
              <title>
                The TSF shall ensure that <selectables linebreak="yes">
                  <selectable>IKEv1 Phase 2 SA lifetimes can be configured by a Security Administrator based on
                    <selectables linebreak="yes">
                      <selectable>number of bytes</selectable>
                      <selectable>length of time, where the time values can be configured within <assignable>integer range including 8</assignable> hours</selectable></selectables></selectable>
                  <selectable>IKEv2 Child SA lifetimes can be configured by a Security Administrator based on <selectables linebreak="yes">
                    <selectable>number of bytes</selectable>
                    <selectable>length of time, where the time values can be configured within <assignable>integer range including 8</assignable> hours</selectable></selectables></selectable></selectables>.
              </title>
              <note role="application">
                This element is unchanged from its definition in the Base-PP.
              </note>
            </f-element>
            <f-element id="nd-fcs-ipsec-ext-1e9">
              <title>
                The TSF shall generate the secret value x used in the IKE Diffie-Hellman key exchange (“x” in g^x mod p) using the random bit generator specified in
                FCS_RBG_EXT.1, and having a length of at least <assignable>(one or more) numbers of bits that is at least twice the security strength 
                of the negotiated DH group</assignable> bits.
              </title>
              <note role="application">
                This element is unchanged from its definition in the Base-PP.
              </note>
            </f-element>
            <f-element id="nd-fcs-ipsec-ext-1e10">
              <title>
                The TSF shall generate nonces used in <selectables>
                  <selectable>IKEv1</selectable>
                  <selectable>IKEv2</selectable>
                </selectables> exchanges of length <selectables linebreak="yes">
                  <selectable>according to the security strength associated with the negotiated DH group</selectable>
                  <selectable>at least 128 bits in size and at least half the output size of the negotiated pseudorandom function (PRF) hash</selectable>
                </selectables>.
              </title>
              <note role="application">
                This element is unchanged from its definition in the Base-PP.
              </note>
            </f-element>
            <f-element id="nd-fcs-ipsec-ext-1e11">
              <title>
                The TSF shall ensure that IKE protocols implement DH Groups <h:ul>
                  <h:li><h:b>19 (256-bit Random ECP), 20 (384-bit Random ECP) according to RFC 5114 and</h:b></h:li></h:ul> 
                  <selectables linebreak="yes">
                    <selectable><selectables>
                      <selectable>14 (2048-bit MODP)</selectable>
                      <selectable>15 (3072-bit MODP)</selectable>
                      <selectable>16 (4096-bit MODP)</selectable>
                      <selectable>17 (6144-bit MODP)</selectable>
                      <selectable>18 (8192-bit MODP)</selectable>
                    </selectables> according to RFC 3526</selectable>
                    <selectable><selectables>
                      <selectable>21 (521-bit Random ECP)</selectable>
                      <selectable>24 (2048-bit MODP with 256-bit POS</selectable>
                      <selectable exclusive="yes"><h:b>no other DH Groups</h:b></selectable>
                    </selectables> according to RFC 5114</selectable>
                  </selectables>.
              </title>
              <note role="application">
                This element has been modified from its definition in the NDcPP by mandating
                DH groups 19 and 20, both of which are selectable in the original definition of the
                element. Any groups other than 19 and 20 may be selected by the ST author but
                they are not required for conformance to this PP-Module.
              </note>
            </f-element>
            <f-element id="nd-fcs-ipsec-ext-1e12">
              <title>
                The TSF 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>
              <note role="application">
                This element is unchanged from its definition in the Base-PP.
              </note>
            </f-element>
            <f-element id="nd-fcs-ipsec-ext-1e13">
              <title>The TSF shall ensure that 
                <h:b><selectables>
                  <selectable>IKEv1</selectable>
                  <selectable>IKEv2</selectable></selectables></h:b>
                protocols perform peer authentication using  
                <selectables>
                  <selectable>RSA</selectable>
                  <selectable>ECDSA</selectable>
                </selectables> 
                that use X.509v3 certificates that conform to RFC 4945 and 
                <selectables>
                  <selectable id="sel-ipsec-e13-psk">Pre-shared Keys that conform to RFC 8784</selectable>
                  <selectable id="sel-ipsec-e13-eapttls"><h:b>Pre-shared Keys transmitted via EAP-TTLS</h:b></selectable>
                  <selectable id="sel-ipsec-e13-eaptls"><h:b>EAP-TLS</h:b></selectable>
                  <selectable exclusive="yes">no other method</selectable>
                </selectables>.
              </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.
                <h:br/><h:br/>
                If “IKEv1” is selected, “no other method” must be chosen in the third selection.
                <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. 
                Though EAP-TTLS involves PSKs, FIA_PSK_EXT.1 is not claimed because PSK requirements for EAP-TTLS are addressed instead via 
                the Authentication Server PP. EAP-based authentication is not supported for IKEv1. 
                <h:br/><h:br/>
                If “pre-shared keys that conform to RFC 8784” is chosen, the selection-based requirement FIA_PSK_EXT.1 must be claimed. 
                Since certificates are required for authentication, IKEv1 does not support PSKs, as 
                PSK-based authentication and certificate-based authentication are mutually exclusive in IKEv1. 
                Note that IKEv1 will be removed in a future version of this document. 
                <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 IKE versions and authentication methods.
              </note>
            </f-element>
            <f-element id="nd-fcs-ipsec-ext-1e14">
              <title>
                The TSF shall only establish a trusted channel if the presented identifier in the
                received certificate matches the configured reference identifier, where the
                presented and reference identifiers are of the following fields and types:
                <h:b>Distinguished Name (DN),</h:b> <selectables>
                  <selectable>SAN: IP address</selectable>
                  <selectable>SAN: Fully Qualified Domain Name (FQDN)</selectable>
                  <selectable>SAN: user FQDN</selectable>
                  <selectable>CN: IP address</selectable>
                  <selectable>CN: FQDN</selectable>
                  <selectable>CN: user FQDN</selectable> 
                  <selectable exclusive="yes"><h:b>no other reference identifier types</h:b></selectable>
                  <selectable><h:b><assignable>other supported reference identifier types</assignable></h:b></selectable>
                </selectables>.
              </title>
              <note role="application">
                This PP-Module requires DN to be supported for certificate reference identifiers at
                minimum. Other selections may be made by the ST author but they are not
                required for conformance to this PP-Module.
              </note>
            <aactivity>In addition to the Evaluation Activities specified for this SFR in the NDcPP Supporting Document the following activities apply:
                  <h:b/>
                  <TSS>All existing activities regarding "Pre-shared keys" apply to all selections including pre-shared keys.
                  <h:b/>If any selection with "Pre-shared keys" is included, the evaluator shall check to ensure that the TSS 
                    describes how the selection works in conjunction with the authentication of IPsec connections.<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/></Guidance>
              <Tests>There are no additional testing activities.</Tests>
            </aactivity>
            </f-element>
            <audit-event>
              <audit-event-descr>Session establishment with peer</audit-event-descr>
              <audit-event-info>Entire packet contents of packets transmitted/received during session establishment</audit-event-info>
            </audit-event>
          </f-component>
          
        
        </section>
        <!-- 5.1.1.3 -->
        <section title="Identification and Authentication (FIA)" id="nd-m-fia">
          <!-- There is no change to the Evaluation Activities specified for this SFR in the NDcPP Supporting Document.
The PP-Module modifies this SFR to make it mandatory because of the TOE’s required support for IPsec. -->
          <f-component cc-id="fia_x509_ext.1" iteration="Rev" id="nd-fia-x509-ext-1" name="X.509 Certificate Validation">
            <consistency-rationale>This PP-Module does not modify the Base-PP SFR; it only mandates the
              inclusion of the SFR because a conformant TOE will always require this
              functionality that is only conditional in the Base-PP.</consistency-rationale>
            <f-element id="nd-fia-x509-ext-1e1-rev">
              <title>
                This is specified as a selection-based SFR in the Base-PP but is mandatory for any TOE that claims
                conformance to this PP-Module because a conformant TOE will always have the ability to receive an X.509
                certificate from an external entity as part of IPsec communications. Therefore, a mechanism for the TSF
                to validate an X.509 certificate presented to it is required.
              </title>
              <aactivity>
                <no-tests>There is no change to the Evaluation Activities specified for this SFR in the NDcPP Supporting Document.
                  The PP-Module modifies this SFR to make it mandatory because of the TOE’s required support for IPsec.</no-tests>
              </aactivity>
            </f-element>
            <audit-event/>
          </f-component>
          
          <f-component cc-id="fia_x509_ext.2" id="nd-fia-x509-ext-2" name="X.509 Certificate Authentication">
            <consistency-rationale>This PP-Module restricts the Base-PP SFR to a subset of existing permissible
              functionality and does not introduce any new behavior.</consistency-rationale>
            <f-element id="nd-fia-x509-ext-2e1">
              <title>
                The TSF shall use X.509v3 certificates as defined by RFC 5280 to support
                authentication for <h:b>IPsec and
                  <selectables>
                    <selectable>DTLS</selectable>
                    <selectable>HTTPS</selectable>
                    <selectable>SSH</selectable>
                    <selectable>TLS</selectable>
                    <selectable exclusive="yes">no other protocols</selectable>
                  </selectables></h:b>, and <selectables>
                    <selectable>code signing for system software updates</selectable>
                    <selectable><assignable>other uses</assignable></selectable>
                    <selectable exclusive="yes">no additional uses</selectable>
                  </selectables>.
              </title>
              <note role="application">
                The Base-PP allows the ST author to specify the TSF’s use of X.509 certificates.
                Because this PP-Module mandates IPsec functionality, the SFR has been refined to
                force the inclusion of it. Other functions specified by the Base-PP may be chosen
                without restriction.
              </note>
            </f-element>
            <f-element id="nd-fcs-ipsec-ext-2e2">
              <title>
                When the TSF cannot establish a connection to determine the validity of
                a certificate, the TSF shall <selectables onlyone="yes">
                  <selectable>allow the Administrator to choose whether to accept the
                    certificate in these cases</selectable>
                  <selectable>accept the certificate</selectable>
                  <selectable>not accept the certificate</selectable>
                </selectables>. 
              </title>
              <note role="application">
                This element is unchanged from its definition in the Base-PP.
              </note>
              <aactivity>
                <no-tests>There is no change to the Evaluation Activities specified for this SFR in the NDcPP Supporting Document.
                  The PP-Module modifies this SFR to support its use for IPsec at a minimum. The evaluator shall ensure
                  that all evaluation of this SFR is performed against its use in IPsec communications as well as any other
                  supported usage.</no-tests>
              </aactivity>
            </f-element>
            <audit-event/>
          </f-component>
          
          <f-component cc-id="fia_x509_ext.3" id="nd-fia-x509-ext-3" name="X.509 Certificate Requests">
            <consistency-rationale>This PP-Module does not modify the Base-PP SFR; it only mandates the
              inclusion of the SFR because a conformant TOE will always require this
              functionality that is only conditional in the Base-PP.
            </consistency-rationale>
            <f-element id="nd-fia-x509-ext-3e1">
              <title>
                This is specified as a selection-based SFR in the Base-PP but is mandatory for any TOE that claims
                conformance to this PP-Module because a conformant TOE will always have the ability to present an X.509
                certificate to an external entity as part of IPsec communications. Therefore, a mechanism for the TSF to
                obtain a certificate for its own use is required.
              </title>
              <aactivity>
                <no-tests>There is no change to the Evaluation Activities specified for this SFR in the NDcPP Supporting Document.
                  The PP-Module modifies this SFR to make it mandatory because of the TOE’s required support for IPsec.</no-tests>
              </aactivity>
            </f-element>
            <audit-event/>
          </f-component>

        </section>
        
        <!-- 5.1.1.3  -->
        <section title="Security Management (FMT)" id="nd-m-fmt">

          <f-component cc-id="fmt_mtd.1" id="nd-fmt-mtd-1-cryptokeys" iteration="CryptoKeys" name="Management of TSF Data">
            <consistency-rationale>
              This PP-Module applies the key management functionality already defined in
              the Base-PP specifically to functionality related to VPN gateways.
            </consistency-rationale>
            <f-element id="nd-fmt-mtd-1e1-cryptokeys">
              <title>
                The TSF shall restrict the ability to [[<h:i>manage</h:i>]] the [<h:i>cryptographic keys <h:b>and
                  certificates used for VPN operation</h:b></h:i>] to [<h:i>Security Administrators</h:i>]. 
              </title>
              <note role="application">
                This SFR, defined in the NDcPP as selection-based, is mandated for
                inclusion in this PP-Module because the refinements to FMT_SMF.1
                mandate its inclusion. Note that it is also refined to refer specifically to
                keys and certificates used for VPN operation.
              </note>
              <aactivity>
                <no-tests>There is no change to the Evaluation Activities specified for this SFR in the NDcPP Supporting Document.
                  The PP-Module modifies this SFR to make it mandatory because of the TOE’s required support for IPsec.</no-tests>
              </aactivity>
            </f-element>
            <audit-event/>
          </f-component>
          
        </section>
        
        
        <!-- 5.1.1.4  -->
        <section title="Protection of the TSF (FPT)" id="nd-m-fpt">
  
          <f-component cc-id="fpt_tst_ext.1" id="nd-fpt-tst-ext-1" name="TSF Testing">
            <consistency-rationale>
              This PP-Module refines the Base-PP SFR to mandate a specific type of self-test. This is consistent with the Base-PP because the execution of this self-test is already implied by the Base-PP through its entropy requirements.
            </consistency-rationale>
            <f-element id="nd-fpt-tst-1e1">
              <title>
                The TSF shall run a suite of the following self-tests <selectables>
                  <selectable>during initial start-up (on power on)</selectable>
                  <selectable>periodically during normal operation</selectable>
                  <selectable>at the request of the authorized user</selectable>
                  <selectable>at the conditions <assignable>conditions under which self-tests should occur</assignable></selectable>
                </selectables>  
                  to demonstrate the correct operation of the TSF: <h:b>noise source health tests,</h:b> 
                <assignable>list of self-tests run by the TSF</assignable>.
              </title>
              <note role="application">
                This SFR is modified from its definition in the NDcPP by requiring noise source
                health tests to be performed regardless of what other testing is claimed. It is
                expected that the behavior of this testing will be described in the entropy
                documentation. Other self-tests may be defined at the ST author’s discretion; note
                that the Application Note in the NDcPP regarding what other self-tests are
                expected is still applicable here.
              </note>
              <aactivity>
                <no-tests>There is no change to the Evaluation Activities specified for this SFR in the NDcPP Supporting Document.
                  The PP-Module requires a particular self-test to be performed, but this self-test is still evaluated using the
                  same methods specified in the Supporting Document.</no-tests>
              </aactivity>
            </f-element>
            <audit-event/>
          </f-component>
          
          
          <f-component cc-id="fpt_tud_ext.1" id="nd-fpt-tud-ext-1" name="Trusted Update">
            <consistency-rationale>
              This PP-Module restricts the Base-PP SFR to a subset of existing permissible
              functionality and does not introduce any new behavior.
            </consistency-rationale>
            <f-element id="nd-fpt-tud-ext-1e1">
              <title>
                The TSF shall provide Security Administrators the ability to query the
                currently executing version of the TOE firmware/software and <selectables>
                  <selectable>the most recently installed version of the TOE firmware/software</selectable>
                  <selectable exclusive="yes">no other TOE firmware/software version</selectable>
                </selectables>.
              </title>
              <note role="application">
                This element is unchanged from its definition in the Base-PP.
              </note>
            </f-element>
            <f-element id="nd-fpt-tud-ext-1e2">
              <title>
                The TSF shall provide Security Administrators the ability to manually
                initiate updates to TOE firmware/software and <selectables>
                  <selectable>support automatic checking for updates</selectable>
                  <selectable>support automatic updates</selectable>
                  <selectable exclusive="yes">no other update mechanism</selectable>
                </selectables>. 
              </title>
              <note role="application">
                This element is unchanged from its definition in the Base-PP.
              </note>
            </f-element>
            <f-element id="nd-fpt-tud-ext-1e3">
              <title>
                The TSF shall provide means to authenticate firmware/software updates to the
                TOE using a <h:b>digital signature mechanism and </h:b>
                <selectables>
                  <selectable>X.509 certificate</selectable>
                  <selectable>published hash</selectable>
                  <selectable exclusive="yes"><h:b>no other mechanisms</h:b></selectable>
                </selectables> prior to installing those updates.
              </title>
              <note role="application">
                The NDcPP provides an option for how firmware/software updates can be verified
                but this PP-Module requires the digital signature method to be selected at
                minimum. Note that all other options specified in the NDcPP for this component
                are permitted so it is possible for the TSF to use code signing certificates to
                validate updates, in which case FPT_TUD_EXT.2 from the Base-PP is also included
                in the ST.
                <h:br/>
                If X.509 certificates are used to verify the integrity of an update, the certificates
                must conform to FIA_X509_EXT.1/Rev. Therefore, certificates that do not (or only
                partially) conform to FIA_X509_EXT.1/REV are not allowed as a means to
                authenticate firmware/software updates.
                <h:br/>
                NDcPP states the ST author may use X.509 certificates that do not meet
                FIA_X509_EXT.1/Rev. This applies to trust anchors as they can be encoded as
                certificates. Even when they are encoded as certificates, the trust anchor must be
                protected by another mechanism that ensures its integrity and binds it to the
                'code-signing' context. Trust anchors do not need to be validated according to
                FIA_X509_EXT.1, even if they are encoded as certificates; instead they need to be
                validated as trust anchors. FIA_X509_EXT.1/Rev does not require revocation
                checking of certificates designated as trust store elements. The integrity of trust
                store elements depends on administrative controls for loading and managing
                trust stores and functional integrity checks that are described in other SFRs.
                <h:br/>
                So, if the certificate used to verify the update is a trust store element (self-signed
                and specifically trusted for verifying updates, with the integrity of this special
                purpose certificate protected by administrative controls and TOE integrity
                protections), then revocation checking is not required.
                <h:br/>
                However, if the certificate is issued by a trusted root CA, or by a certificate
                authority which chains to a trusted root CA, then revocation checking is required
                for all elements of the certificate chain except the trusted root CA, and the TOE
                must be able to obtain fresh revocation information from an external source.
              </note>
              <aactivity>
                <no-tests>There is no change to the Evaluation Activities specified for this SFR in the NDcPP Supporting Document.
                  The PP-Module modifies this SFR to mandate that a particular selection be chosen, but this selection is
                  part of the original definition of the SFR so no new behavior is defined by the PP-Module.</no-tests>
              </aactivity>
            </f-element>
            <audit-event/>
          </f-component>
          
          
        </section>
      </modified-sfrs>
        
        
        
      <!-- 5.1.2 Additional SFRs -->
      <additional-sfrs/>
<!--        This section lists additional SFRs that must be added to the TOE boundary in order to implement the
        functionality in any PP-Configuration where the GPOS PP is claimed as the Base-PP.
-->
      
	  <!-- 6.1.1 Consistency of TOE Type -->
      <con-toe>When this PP-Module is used to extend the NDcPP, the TOE type for the overall TOE is still a network
        device. The TOE boundary is simply extended to include VPN gateway functionality that is provided by the
        network device.
      </con-toe>
		
	  <!-- 6.1.2 Consistency of Security Problem Description -->
      <con-sec-prob>The threats, assumptions, and organizational security policies (OSPs) defined by this PP-Module (see sections 3.1 through 3.3) supplement those
		defined in the NDcPP as follows:</con-sec-prob>
	   <!-- 6.1.3 Consistency of Objectives -->
      <con-obj/>
      <con-op-en/>
	    
	    <!-- 6.1.2 Consistency Rationale table for ND -->
      
      <con-mod ref="T.DATA_INTEGRITY">The threat of data integrity compromise is a specific example of the
        T.WEAK_CRYPTOGRAPHY threat defined in the Base-PP.
      </con-mod>
      <con-mod ref="T.NETWORK_ACCESS">The threat of a malicious entity accessing protected network resources
        without authorization is a specific example of the
        T.UNTRUSTED_COMMUNICATION_CHANNELS threat defined in the Base-PP.</con-mod>
      <con-mod ref="T.NETWORK_DISCLOSURE">Exposure of network devices due to insufficient protection is a specific
        example of the T.UNTRUSTED_COMMUNICATION_CHANNELS threat defined
        in the Base-PP.</con-mod>
      <con-mod ref="T.NETWORK_MISUSE">Depending on the specific nature of the misuse of network resources, this
        threat is a specific manifestation of either the
        T.UNTRUSTED_COMMUNICATION_CHANNELS or
        T.WEAK_AUTHENTICATION_ENDPOINTS threat defined in the Base-PP.</con-mod>
      <con-mod ref="T.REPLAY_ATTACK">A replay attack is mentioned in the Base-PP as a specific type of attack based
        on the T.UNTRUSTED_COMMUNICATION_CHANNELS threat.</con-mod>
      <!-- Note: added per TD0549 -->
      <con-mod ref="A.CONNECTIONS">This assumption defines the TOE’s placement in a network such that it is able to perform its required security functionality. The Base-PP does not define any assumptions about the TOE’s architectural deployment so there is no conflict here.</con-mod>

			
	  <!-- 6.1.3 Consistency of Objectives -->
      <!-- Note: the 1.1 Module has a single note that all objectives are consistent because the Base-PP doesn't define any. I didn't see any way to suppress these entries from the table so I've put in 
      rationale that's basically just a duplicate of this in table form. Should we add something in the schema to optionally suppress the objectives or is how it's done now ok? -->
      <con-mod ref="O.ADDRESS_FILTERING">The Base-PP does not define any TOE objectives so PP-Module objectives do not conflict with it.</con-mod>
      <con-mod ref="O.AUTHENTICATION">The Base-PP does not define any TOE objectives so PP-Module objectives do not conflict with it.</con-mod>
      <con-mod ref="O.CRYPTOGRAPHIC_FUNCTIONS">The Base-PP does not define any TOE objectives so PP-Module objectives do not conflict with it.</con-mod>
      <con-mod ref="O.FAIL_SECURE">The Base-PP does not define any TOE objectives so PP-Module objectives do not conflict with it.</con-mod>
      <con-mod ref="O.PORT_FILTERING">The Base-PP does not define any TOE objectives so PP-Module objectives do not conflict with it.</con-mod>
      <con-mod ref="O.SYSTEM_MONITORING">The Base-PP does not define any TOE objectives so PP-Module objectives do not conflict with it.</con-mod>
      <con-mod ref="O.TOE_ADMINISTRATION">The Base-PP does not define any TOE objectives so PP-Module objectives do not conflict with it.</con-mod>
      
      <!-- Note: the 1.1 Module did not rationalize the OE objectives -->
      <con-mod ref="OE.CONNECTIONS">This objective intends for the TOE to be connected to environmental networks in such a way that its primary functionality can be appropriately enforced. There is no
        inconsistency here with respect to the Base-PP because the Base-PP does not define any restrictions on how a network device is connected to its environment.</con-mod>
	  
	  <!-- 6.1.4 Consistency of Requirements -->
      <!-- Covered by rationales in individual f-components -->
    
    </base-pp>


	<!-- 5.2 TOE Security Functional Requirements -->
    <man-sfrs>
<!--		The following section describes the SFRs that must be satisfied by any TOE that claims conformance to
		this PP-Module. These SFRs must be claimed regardless of which PP-Configuration is used to define the TOE.
-->
	    <!-- This section does not appear in the manually generated v2.3 doc for some reason -->
 	    <section id="ss-audit-table" title="Auditable Events for Mandatory SFRs">
 	      <audit-table table="mandatory" id="mandatory-audit-events">
  	     		<h:br/><h:b><ctr ctr-type="Table" pre="Table " id="atref-mandatory">: Auditable Events for Mandatory SFRs</ctr></h:b>
	  	</audit-table>
	    </section>


	  <!-- 5.2.1 Security Audit (FAU) -->
      <section title="Security Audit (FAU)" id="m-fau">
        
        <!-- Note: Moved from Base-PP Modified to Mandatory SFR and iterated, consistent with recent history. -->
        <f-component name="Audit Data Generation (VPN Gateway)" cc-id="fau_gen.1" iteration="VPN" id="fau-gen-1-vpn">
          <consistency-rationale>This SFR adds new auditable events for the TOE that relate to the functionality that is introduced by the PP-Module.</consistency-rationale>
          
          <!-- Come back to: update SFR to explicitly reference auditable event tables once table numbers/names/contents are known
            
                                                      <f-element id="fau-gen-1e1">
                        <title>The TSF shall be able to generate an audit record of the following auditable events:
                            <h:ol type="a">
                                <h:li>Start-up and shutdown of audit functions</h:li>
                                <h:li>[<refinement>All administrative actions relevant to claimed SFRs as defined in the 
									Auditable Events Table from the Client and Server PP-Modules</refinement>]</h:li>		    
								<h:li>[<refinement>Auditable events defined in <xref g="t-audit-mandatory"/></refinement>]</h:li>
                                <h:li><refinement><selectables linebreak="yes">
                                    <selectable id="sel-at2">Auditable events defined in <xref g="t-audit-optional"/> for Strictly Optional SFRs</selectable>
									<selectable id="sel-at3">Auditable events defined in <xref g="t-audit-objective"/> for Objective SFRs</selectable>
                                    <selectable id="sel-at4">Auditable events defined in <xref g="t-audit-sel-based"/> for Selection-Based SFRs</selectable>
									<selectable id="sel-attls">Auditable events for the <xref to="tls"/> listed in <xref to="atref-pkgs"/></selectable>
									<selectable id="sel-atssh">Auditable events defined in the audit table for the <xref to="ssh"/></selectable>
                                    <selectable exclusive="yes">no other auditable events</selectable>
								</selectables></refinement></h:li>
                            </h:ol>
                        </title>
                    </f-element>
                    <f-element id="fau-gen-1e2">
                        <title>The TSF shall record within each audit record at least the following information:
                            <h:ol type="a">
                                <h:li>Date and time of the event</h:li>
                                <h:li>Type of event</h:li>
                                <h:li>Subject and object identity (if applicable)</h:li>
                                <h:li>The outcome (success or failure) of the event</h:li>
								<h:li>[<refinement>Additional information defined in <xref g="t-audit-mandatory"/></refinement>]</h:li>
                                <h:li><refinement><selectables linebreak="yes">
                                    <selectable>Additional information defined in <xref g="t-audit-optional"/> for Strictly Optional SFRs</selectable>
                                    <selectable>Additional information defined in <xref g="t-audit-objective"/> for Objective SFRs</selectable>
                                    <selectable>Additional information defined in <xref g="t-audit-sel-based"/> for Selection-Based SFRs</selectable>
									<selectable>Additional information for the <xref to="tls"/> listed in <xref to="atref-pkgs"/></selectable>
									<selectable>Additional information defined in the audit table for the <xref to="ssh"/></selectable>
                                    <selectable exclusive="yes">no other information</selectable>
								</selectables></refinement></h:li>
                            </h:ol>
                        </title>
          
          -->
          
          <f-element id="fau-gen-1e1-vpn">
            <title>
              The TSF shall be able to generate an audit record of the following
              auditable events: <h:ol type="a">
                <h:li>Start-up and shutdown of the audit functions</h:li>
                <h:li>Indication that TSF self-test was completed</h:li>
                <h:li>Failure of self-test</h:li>
                <h:li>All auditable events for the [<h:i>not specified</h:i>] level of audit; and</h:li>
                <!-- -->
                <h:li>[<h:i>auditable events defined in the Auditable Events for Mandatory Requirements table</h:i>].</h:li>
              </h:ol>
            </title>
            <note role="application">
              The "Start-up and shutdown of the audit functions" event is identical to the event defined in the Base-PP's iteration of FAU_GEN.1.
              The TOE is not required to have two separate events for this behavior if there is only a single audit stream that which all audit events use.
              If the TOE does maintain a separate logging facility for VPN gateway-related behavior, then this event must be addressed for it. Note that if 
              the audit functions cannot be started and stopped separately from the TOE itself, then auditing the start-up and shutdown of the TOE is sufficient to address this.
            </note>
          </f-element>
          <f-element id="fau-gen-1e2-vpn">
            <title>The TSF shall record within each audit record at least the following
              information: <h:ol type="a">
                <h:li>Date and time of the event, type of event, subject identity (if
                  applicable), 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/ST,
                [<h:i>additional information defined in the Auditable Events for Mandatory Requirements table for each auditable event, where applicable</h:i>].</h:li>
              </h:ol>
            </title>
            <note role="application">The ST author only needs to include the auditable events that correspond to the SFRs claimed in the ST.
            The TOE is not required to generate auditable events for selection-based or optional SFRs that it does not claim.</note>
            <aactivity>
              <!-- Note: New EA for iterated SFR, is it ok -->
              <TSS>
                The evaluator shall examine the TSS to verify that it describes the audit mechanisms that the TOE uses to generate audit records for VPN gateway behavior. If any audit mechanisms the TSF uses for this
                are not used to generate audit records for events defined by FAU_GEN.1 in the Base-PP, the evaluator shall ensure that any VPN gateway-specific audit mechanisms also meet the relevant functional claims from the Base-PP.
                <h:br/>
                For example, FAU_STG_EXT.1 requires all audit records to be transmitted to the OE over a trusted channel. This includes the audit records that are required by FAU_GEN.1/VPN. Therefore, if the TOE has an audit mechanism
                that is only used for VPN gateway functionality, the evaluator shall ensure that the VPN gateway related audit records meet this requirement, even if the mechanism used to generate these audit records does not apply to any of the auditable
                events defined in the Base-PP.
              <h:br/></TSS>
              <Guidance>
                The evaluator shall examine the operational guidance to verify that it identifies all security-relevant auditable events claimed in the ST and includes sample records of each event type. If the TOE uses multiple
                audit mechanisms to generate different sets of records, the evaluator shall verify that the operational guidance identifies the audit records that are associated with each of the mechanisms such that the source of each audit record type
                is clear.
              <h:br/></Guidance>
              <Tests>
                The evaluator shall test the audit functionality by performing actions that trigger each of the claimed audit events and verifying that the audit records are accurate and that their format is consistent with what is specified 
                in the operational guidance. The evaluator may generate these audit events as a consequence of performing other tests that would cause these events to be generated.
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        
      </section>
      
      <!-- 5.2.2 Cryptographic Support (FCS) -->
      <section title="Cryptographic Support (FCS)" id="m-fcs">

        <f-component name="Cryptographic Key Generation (for IKE Peer Authentication)" cc-id="fcs_ckm.1" iteration="IKE" id="fcs-ckm-1-ike">
          <consistency-rationale>This PP-Module specifies a method of key generation that is not defined in
            the Base-PP. This is used for functionality defined in the Base-PP (IKE) that
            this PP-Module chooses to represent in greater detail.
          </consistency-rationale>
          <f-element id="fcs-ckm-1e1-ike">
            <title>
              The TSF shall generate <h:b>asymmetric</h:b> cryptographic keys <h:b>used for IKE peer
              authentication</h:b> in accordance with a specified cryptographic key generation
              algorithm: <h:b><selectables linebreak="yes">
                <selectable>FIPS PUB 186-4, “Digital Signature Standard (DSS),” Appendix B.3 for RSA
                  schemes</selectable>
                <selectable>FIPS PUB 186-4, “Digital Signature Standard (DSS),” Appendix B.4 for ECDSA
                  schemes, and implementing “NIST curves” P-384 and <selectables>
                    <selectable>P-256</selectable>
                    <selectable>P-521</selectable>
                    <selectable exclusive="yes">no other curves</selectable></selectables></selectable>
              </selectables> and <selectables linebreak="yes">
                <selectable>FFC Schemes using “safe-prime” groups that meet the following: NIST
                  Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key
                  Establishment Schemes Using Discrete Logarithm Cryptography” and <selectables>
                    <selectable>RFC 3526</selectable>
                    <selectable>RFC 7919</selectable>
                  </selectables></selectable>
                <selectable exclusive="yes">no other key generation algorithm</selectable>
              </selectables>
              </h:b> and specified cryptographic key sizes [<h:i>equivalent to, or greater than, a symmetric
                key strength of 112 bits</h:i>].
              
            </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 peers during the IKE
              (either v1 or v2) key exchange. FCS_CKM.1 in the Base-PP is intended to be used
              for mechanisms required by the SFRs in the Base-PP. 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 CA in the OE.
              <h:br/><h:br/>
              As indicated in FCS_IPSEC_EXT.1, the TOE is required to implement RSA, ECDSA, or both
              for peer authentication.
              <h:br/><h:br/>
              The generated key strength of 2048-bit RSA keys need to be equivalent to, or
              greater than, a symmetric key strength of 112 bits. See NIST Special Publication
              800-57, “Recommendation for Key Management” for information about
              equivalent key strengths.
            </note>
            <aactivity>
              <TSS>
                The evaluator shall check to ensure that the TSS describes how the key-pairs are generated. In order to
                show that the TSF implementation complies with FIPS PUB 186-4, the evaluator shall ensure that the TSS
                contains the following information:
                <h:ul>
                  <h:li>The TSS shall list all sections of Appendix B to which the TOE complies</h:li>
                  <h:li> For each applicable section listed in the TSS, for all statements that are not "shall" (that is, "shall not,"
                    "should," and "should not"), if the TOE implements such options it shall be described in the TSS. If the
                    included functionality is indicated as "shall not" or "should not" in the standard, the TSS shall provide
                    a rationale for why this will not adversely affect the security policy implemented by the TOE
                  </h:li>
                  <h:li>For each applicable section of Appendix B, any omission of functionality related to "shall" or “should”
                    statements shall be described</h:li>
                </h:ul>
                Any TOE-specific extensions, processing that is not included in the Appendices, or alternative
                implementations allowed by the Appendices that may impact the security requirements the TOE is to
                enforce shall be described.
              <h:br/></TSS>
              <Guidance>
                The evaluator shall check that the operational guidance describes how the key generation functionality is
                invoked, and describes the inputs and outputs associated with the process for each signature scheme
                supported. The evaluator shall also check that guidance is provided regarding the format and location of
                the output of the key generation process.
              <h:br/></Guidance>
              <Tests>
                <h:b>For FFC Schemes using “safe-prime” groups:</h:b><h:br/>
                Testing for FFC Schemes using safe-prime groups is done as part of testing in FCS_CKM.2.<h:br/>
                <h:b>For all other selections:</h:b><h:br/>
                The evaluator shall perform the corresponding tests for FCS_CKM.1 specified in the NDcPP SD, based on
                the selections chosen for this SFR. If IKE key generation is implemented by a different algorithm than the
                NDcPP key generation function, the evaluator shall ensure this testing is performed using the correct
                implementation.
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
      </section>
        
	<!-- 5.2.3 Security Management (FMT)  -->
    <section title="Security Management (FMT)" id="m-fmt">
    
	
      <f-component name="Specification of Management Functions" cc-id="fmt_smf.1" iteration="VPN" id="fmt-smf-1-vpn">
        <consistency-rationale>This SFR defines management functions that are specific to the functionality
          required by this PP-Module and were therefore not already defined in the
          Base-PP iteration of it.</consistency-rationale>
        <f-element id="fmt-smf-1e1-vpn">
          <title>The TSF shall be capable of performing the following management functions [<h:i>
          <h:ul>
            <h:li>Definition of packet filtering rules</h:li>
            <h:li>Association of packet filtering rules to network interfaces</h:li>
            <h:li>Ordering of packet filtering rules by priority</h:li></h:ul>
            <selectables linebreak="yes">
              <selectable>Configuration of remote VPN client session timeout</selectable>
              <selectable>Configuration of attributes used to deny establishment of remote VPN client sessions</selectable>
              <selectable>Generation of bit-based pre-shared key</selectable>
              <selectable exclusive="yes">No other capabilities</selectable></selectables></h:i>].
          </title>
          <note role="application">
            This SFR defines additional management functions for the TOE beyond what is
            defined in the Base-PP as FMT_SMF.1. The TOE may have all management
            functionality implemented in the same logical interface; it is not necessary for
            “network device management” and “VPN gateway management” to be
            implemented in separate interfaces. 
          </note>

          <aactivity>
            <TSS>The evaluator shall examine the TSS to confirm that all management functions specified in
              FMT_SMF.1/VPN are provided by the TOE. As with FMT_SMF.1 in the Base-PP, the evaluator shall ensure
              that the TSS identifies what logical interfaces are used to perform these functions and that this includes a
              description of the local administrative interface.
              <h:br/></TSS>
            <Guidance>
              The evaluator shall examine the operational guidance to confirm that all management functions specified
              in FMT_SMF.1/VPN are provided by the TOE. As with FMT_SMF.1 in the Base-PP, the evaluator shall
              ensure that the operational guidance identifies what logical interfaces are used to perform these functions
              and that this includes a description of the local administrative interface.
            <h:br/></Guidance>
            <Tests>
              The evaluator tests management functions as part of performing other test EAs.
              No separate testing for FMT_SMF.1/VPN is required unless one of the management functions in
              FMT_SMF.1.1/VPN has not already been exercised under any other SFR.
            </Tests>
          </aactivity>
        </f-element>
        <!-- Added this event for coverage since we don't have this connected to the Base-PP un-itereated version -->
        <audit-event>
          <audit-event-descr>All administrative actions</audit-event-descr>
          <audit-event-info>No additional information.</audit-event-info>
        </audit-event>
      </f-component>
      </section>  <!-- FMT -->

      <!-- 5.2.3 Packet Filtering (FPF) -->
      <section title="Packet Filtering (FPF)" id="m-fpf">
        <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 two families, FPF_MFA_EXT and FPF_RUL_EXT.
        </class-description>
        
        <!-- Note: I'm not aware of any schema mechanism to define an extended class in the ECD (only extended families within existing classes). The ability to define an extended class is needed for
        ACE_ECD requirements. Specifically, the following text in Module v1.1 is needed for Class FPF to precede the sub-header for FPF_RUL_EXT because CC Part 2 does not define Class FPF.
        Alternatively, we could just change it to an existing class (e.g., FDP_RUL_EXT.1 since packet filtering isn't fundamentally all that different from FDP_IFC/IFF behavior). -->
        <!-- 
        Class FPF: Packet Filtering
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 only has one family, FPF_RUL_EXT.

        -->
        <ext-comp-def fam-id="FPF_RUL_EXT" title="Packet Filtering Rules">
          <fam-behavior>This family defines the requirements for the rules that are used to perform packet filtering of network
            traffic.
          </fam-behavior>
        </ext-comp-def>
        
        <f-component name="Packet Filtering Rules" cc-id="fpf_rul_ext.1" id="fpf-rul-ext-1">
          <consistency-rationale>This SFR defines specific behavior for the processing of network traffic,
            specifically which communications channel is used based on certain
            attributes of the traffic. The Base-PP does not apply any constraints on how
            usage of a trusted channel is controlled so this does not contradict anything
            presented in the Base-PP.</consistency-rationale>
          <comp-lev> requires the TSF to enforce a given set of packet filtering rules
            in an administrator-defined order against one or more TOE interfaces.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT: <h:ul>
            <h:li>Ability to configure the TOE’s packet filtering functionality (i.e., the operations to be performed on
              network traffic based on configured attributes, the interfaces that these are associated with, and the
              order in which they are applied).
            </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>Application of rules configured with the ‘log’ operation (including source and destination address,
                source and destination port, and transport layer protocol value).
              </h:li>
            </h:ul>
          </audit>
          <dependencies>No dependencies.</dependencies>
          <!-- Slight modifications to SFR to make ECD more generic -->
          <f-element id="fpf-rul-ext-1e1">
            <title>The TSF shall perform packet filtering on network packets processed by the TOE.</title>
            <aactivity level="element">
              <TSS>
                The evaluator shall verify that the TSS provide a description of the TOE’s initialization and startup process,
                which clearly indicates where processing of network packets begins to take place, and provides a
                discussion that supports the assertion that packets cannot flow during this process.
                <h:br/>
                The evaluator shall verify that the TSS also includes a narrative that identifies the components (e.g., active
                entity such as a process or task) involved in processing the network packets and describes the safeguards
                that would prevent packets flowing through the TOE without applying the ruleset in the event of a
                component failure. This could include the failure of a component, such as a process being terminated, or
                a failure within a component, such as memory buffers full and cannot process packets.
              <h:br/></TSS>
              <Guidance>The operational guidance associated with this requirement is assessed in the subsequent test EAs.
                <h:br/></Guidance>
              <Tests>
                The evaluator shall perform the following tests:
                <testlist>
                  <test>The evaluator shall attempt to get network traffic to flow through the TOE while the TOE is being
                    initialized. A steady flow of network packets that would otherwise be denied by the ruleset should be
                    sourced and directed to a host. The evaluator shall use a packet sniffer to verify none of the generated
                    network traffic is permitted through the TOE during initialization.</test>
                  <test>The evaluator shall attempt to get network traffic to flow through the TOE while the TOE is being
                    initialized. A steady flow of network packets that would be permitted by the ruleset should be sourced
                    and directed to a host. The evaluator shall use a packet sniffer to verify none of the generated network
                    traffic is permitted through the TOE during initialization and is only permitted once initialization is
                    complete.</test>
                </testlist>
                Note: The remaining testing associated with application of the ruleset is addressed in the subsequent test
                EAs.
                <h:br/></Tests>
            </aactivity>
          </f-element>
          <f-element id="fpf-rul-ext-1e2">
            <title>
              The TSF shall allow the definition of packet filtering rules using the following
              network protocols and protocol fields: [<h:i><h:ul>
                <h:li>IPv4 (RFC 791)</h:li><h:ul>
                  <h:li>source address</h:li>
                  <h:li>destination address</h:li>
                  <h:li>protocol</h:li>
                </h:ul>
                <h:li>IPv6 (RFC 8200)</h:li><h:ul>
                <h:li>source address</h:li>
                <h:li>destination address</h:li>
                <h:li>next header (protocol)</h:li>
                </h:ul>
                <h:li>TCP (RFC 793)</h:li><h:ul>
                <h:li>source port</h:li>
                <h:li>destination port</h:li>
                </h:ul>
                <h:li>UDP (RFC 768)</h:li><h:ul>
                <h:li>source port</h:li>
                <h:li>destination port</h:li>
                </h:ul>
              </h:ul></h:i>].
            </title>
            <ext-comp-def-title>
              <title>The TSF shall allow the definition of packet filtering rules using the following
                network protocols and protocol fields: <assignable>supported network protocols and protocol fields</assignable>.</title>
            </ext-comp-def-title>
            <note role="application">
              This element identifies the protocols and references the protocol definitions that
              serve to define to what extent the network traffic can be interpreted by the TOE
              when importing (receiving network traffic or ingress) and exporting (sending–or
              forming to be sent–network traffic or egress).
              <h:br/>
              While the protocol formatting specified in the RFCs is still used, many RFCs define
              behaviors which are no longer considered safe to follow. For example, RFC 792
              defined the “Redirect” Internet Control Message Protocol (ICMP) type, which is not considered safe to honor when it
              might come from an adversary; the “source quench” message, which is insecure
              because its source cannot be validated.
              <h:br/>
              It also identifies the various attributes that are applicable when constructing rules
              to be enforced by this requirement – the applicable interface is a property of the
              TOE and the rest of the identified attributes are defined in the associated RFCs.
              Note that the Protocol is the IPv4 field (in IPv6 this field is called the “next header”)
              that identifies the applicable protocol, such as TCP, UDP, ICMP, etc. Also,
              ‘Interface’ identified above is the external port where the applicable network
              traffic was received or alternately will be sent.
            </note>
            <aactivity level="element">
              <no-tests>There are no EAs specified for this element. Definition of packet filtering policy,
              association of operations with packet filtering rules, and association of these rules to network interfaces
              is described collectively under FPF_RUL_EXT.1.4.<h:br/><h:br/>
              </no-tests>
            </aactivity>
          </f-element>
          <f-element id="fpf-rul-ext-1e3">
            <title>The TSF shall allow the following operations to be associated with packet filtering
              rules: permit and drop with the capability to log the operation.
            </title>
            <note role="application">
              This element defines the operations that can be associated with rules used to
              match network traffic.
            </note>
            <aactivity level="element">
            <no-tests>
              There are no EAs specified for this element. Definition of packet filtering policy,
              association of operations with packet filtering rules, and association of these rules to network interfaces
              is described collectively under FPF_RUL_EXT.1.4.<h:br/><h:br/>
              </no-tests>
            </aactivity>
          </f-element>
          <f-element id="fpf-rul-ext-1e4">
            <title>The TSF shall allow the packet filtering rules to be assigned to each distinct
              network interface.
            </title>
            <note role="application">
              This element identifies where rules can be assigned. Specifically, a conforming TOE
              must be able to assign filtering rules specific to each of its available and
              identifiable distinct network interfaces that handle layer 3 and 4 network traffic.
              Identifiable means the interface is unique and identifiable within the TOE, and
              does not necessarily require the interface to be visible from the network
              perspective (e.g., does not need to have an IP address assigned to it). A distinct
              network interface is one or more physical connections that share a common
              logical path into the TOE. For example, the TOE might have a small form-factor
              pluggable (SFP) port supporting SFP modules that expose a number of physical
              network ports, but since a common driver is used for all external ports they can
              be treated as a single distinct network interface.
              <h:br/>
              Note that there could be a separate ruleset for each interface or alternately a
              shared ruleset that somehow associates rules with specific interfaces.
            </note>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS describes a packet filtering policy that can use the following fields
                for each identified protocol, and that the RFCs identified for each protocol are supported: <h:ul>
                  <h:li>IPv4 (RFC 791)</h:li><h:ul>
                    <h:li>source address</h:li>
                    <h:li>destination address</h:li>
                    <h:li>protocol</h:li>
                  </h:ul>
                  <h:li>IPv6 (RFC 8200)</h:li><h:ul>
                    <h:li>source address</h:li>
                    <h:li>destination address</h:li>
                    <h:li>next header (protocol)</h:li>
                  </h:ul>
                  <h:li>TCP (RFC 793)</h:li><h:ul>
                    <h:li>source port</h:li>
                    <h:li>destination port</h:li>
                  </h:ul>
                  <h:li>UDP (RFC 768)</h:li><h:ul>
                    <h:li>source port</h:li>
                    <h:li>destination port</h:li>
                  </h:ul>
                </h:ul>
                The evaluator shall verify that the TSS describes how conformance with the identified RFCs has been
                determined by the TOE developer (e.g., third party interoperability testing, protocol compliance testing).
                <h:br/>
                The evaluator shall verify that each rule can identify the following actions: permit, discard, and log.
                <h:br/>
                The evaluator shall verify that the TSS identifies all interface types subject to the packet filtering policy
                and explains how rules are associated with distinct network interfaces. Where interfaces can be grouped
                into a common interface type (e.g., where the same internal logical path is used, perhaps where a
                common device driver is used), they can be treated collectively as a distinct network interface.
                <h:br/></TSS>
              <Guidance>
                The evaluator shall verify that the operational guidance identifies the following protocols as being
                supported and the following attributes as being configurable within packet filtering rules for the
                associated protocols: <h:ul>
                  <h:li>IPv4 (RFC 791)</h:li><h:ul>
                  <h:li>destination address</h:li>
                  <h:li>protocol</h:li>
                </h:ul>
                <h:li>IPv6 (RFC 8200)</h:li><h:ul>
                  <h:li>source address</h:li>
                  <h:li>destination address</h:li>
                  <h:li>next header (protocol)</h:li>
                </h:ul>
                <h:li>TCP (RFC 793)</h:li><h:ul>
                  <h:li>source port</h:li>
                  <h:li>destination port</h:li>
                </h:ul>
                <h:li>UDP (RFC 768)</h:li><h:ul>
                  <h:li>source port</h:li>
                  <h:li>destination port</h:li>
                </h:ul>
                </h:ul>
                The evaluator shall verify that the operational guidance indicates that each rule can identify the following
                actions: permit, discard, and log.
                <h:br/>
                The evaluator shall verify that the operational guidance explains how rules are associated with distinct
                network interfaces.
                <h:br/>
                The guidance may describe the other protocols contained within the ST (e.g., IPsec, IKE, potentially HTTPS,
                SSH, and TLS) that are processed by the TOE. The evaluator shall ensure that it is made clear what
                protocols were not considered as part of the TOE evaluation.
                <h:br/></Guidance>
              <Tests>
                The evaluator shall perform the following tests:
                <testlist>
                  <test>
                    The evaluator shall use the instructions in the operational guidance to test that packet filter rules
                    can be created that permit, discard, and log packets for each of the following attributes: <h:ul>
                      <h:li>IPv4</h:li><h:ul>
                        <h:li>Destination Address</h:li>
                        <h:li>Protocol</h:li>
                      </h:ul>
                      <h:li>IPv6</h:li><h:ul>
                        <h:li>Source address</h:li>
                        <h:li>Destination Address</h:li>
                        <h:li>Next Header (Protocol)</h:li>
                      </h:ul>
                      <h:li>TCP</h:li><h:ul>
                        <h:li>Source Port</h:li>
                        <h:li>Destination Port</h:li>
                      </h:ul>
                      <h:li>UDP</h:li><h:ul>
                        <h:li>Source Port</h:li>
                        <h:li>Destination Port</h:li>
                      </h:ul>
                    </h:ul>
                  </test>
                  <test>The evaluator shall repeat Test 1 above for each distinct network interface type supported by the
                    TOE to ensure that packet filtering rules can be defined for all supported types.</test>
                </testlist>
                Note that these test activities should be performed in conjunction with those of FPF_RUL_EXT.1.6 where
                the effectiveness of the rules is tested; here the evaluator is just ensuring the guidance is sufficient and
                the TOE supports the administrator creating a ruleset based on the above attributes. The test activities
                for FPF_RUL_EXT.1.6 define the combinations of protocols and attributes required to be tested. If those
                combinations are configured manually, that will fulfill the objective of these test activities, but if those
                combinations are configured otherwise (e.g., using automation), these test activities may be necessary in
                order to ensure the guidance is correct and the full range of configurations can be achieved by a TOE
                administrator.<h:br/>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fpf-rul-ext-1e5">
            <title>The TSF shall process the applicable packet filtering rules (as determined in
              accordance with FPF_RUL_EXT.1.4) in the following order: [<h:i>Administrator-defined</h:i>].
            </title>
            <ext-comp-def-title>
              <title>
                The TSF shall process the applicable packet filtering rules (as determined in
                accordance with FPF_RUL_EXT.1.4) in the following order: <assignable>rule processing order</assignable>.
              </title>
            </ext-comp-def-title>
            <note role="application">This element requires that an administrator is able to define the order in which
              configured filtering rules are processed for matches.
            </note>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS describes the algorithm applied to incoming packets, including the
                processing of default rules, determination of whether a packet is part of an established session, and
                application of administrator defined and ordered ruleset.<h:br/>
              </TSS>
              <Guidance>The evaluator shall verify that the operational guidance describes how the order of packet filtering rules
                is determined and provides the necessary instructions so that an administrator can configure the order of
                rule processing.<h:br/></Guidance>
              <Tests>
                The evaluator shall perform the following tests:
                <testlist>
                  <test>The evaluator shall devise two equal packet filtering rules with alternate operations – permit and
                    discard. The rules should then be deployed in two distinct orders and in each case the evaluator shall
                    ensure that the first rule is enforced in both cases by generating applicable packets and using packet
                    capture and logs for confirmation.</test>
                  <test>The evaluator shall repeat the procedure above, except that the two rules should be devised where
                    one is a subset of the other (e.g., a specific address vs. a network segment). Again, the evaluator shall
                    test both orders to ensure that the first is enforced regardless of the specificity of the rule.
                  </test>
                </testlist><h:br/>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fpf-rul-ext-1e6">
            <title>The TSF shall drop traffic if a matching rule is not identified.
            </title>
            <note role="application">
              This element requires that the behavior is always to deny network traffic when no
              rules apply.</note>
            <!-- Note: EAs modified by TD0597 -->
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS describes the process for applying packet filtering rules and also
                that the behavior (either by default, or as configured by the administrator) is to discard packets when
                there is no rule match. The evaluator shall verify the TSS describes when the IPv4 and IPv6 protocols supported by the TOE differ from the full list provided in the RFC Values for IPv4 and IPv6 table. <h:br/></TSS>
              <Guidance>The evaluator shall verify that the operational guidance describes the behavior if no rules or special
                conditions apply to the network traffic. If the behavior is configurable, the evaluator shall verify that the
                operational guidance provides the appropriate instructions to configure the behavior to discard packets
                with no matching rules. The evaluator shall verify that the operational guidance describes the range of IPv4 and IPv6 protocols supported by the TOE.<h:br/>
              </Guidance>
              <Tests>
                The evaluator shall perform the following tests:
                <testlist>
                  <test>The evaluator shall configure the TOE to permit and log each supported IPv4 Transport Layer Protocol (see RFC Values for IPv4 and IPv6 table for full possible list) 
                    in conjunction with a specific source address and specific destination address, specific source address and wildcard destination address, 
                    wildcard source address and specific destination address, and wildcard source address and wildcard destination address. 
                    The evaluator shall generate packets matching each supported IPv4 Transport Layer Protocol and within the configured source and destination addresses 
                    in order to ensure that the supported protocols are permitted (i.e., by capturing the packets after passing through the TOE) and logged. 
                    Any protocols not supported by the TOE must be denied.</test>
                  <test>The evaluator shall configure the TOE to permit all traffic except to discard and log each supported IPv4 Transport Layer Protocol 
                    (see RFC Values for IPv4 and IPv6 table for full possible list) in conjunction with a specific source address and specific destination address, 
                    specific source address and wildcard destination address, wildcard source address and specific destination address, 
                    and wildcard source address and wildcard destination address. The evaluator shall generate packets matching each defined IPv4 Transport Layer Protocol 
                    and within the configured source and destination addresses in order to ensure that the supported protocols are denied (i.e., by capturing no applicable packets passing through the TOE) and logged. 
                    Any protocols not supported by the TOE must also be denied but are not required to be logged.
                  </test>
                  <test>The evaluator shall configure the TOE to permit and log each supported IPv4 Transport Layer Protocol 
                    (see RFC Values for IPv4 and IPv6 table for full possible list) in conjunction with a specific source address and specific destination address, 
                    specific source address and wildcard destination address, wildcard source address and specific destination address, 
                    and wildcard source address and wildcard destination address. 
                    Additionally, the evaluator shall configure the TOE to discard and log each supported IPv4 Transport Layer Protocol 
                    (see RFC Values for IPv4 and IPv6 table for full possible list) in conjunction with different (than those permitted above) 
                    combinations of a specific source address and specific destination address, specific source address and wildcard destination address, 
                    wildcard source address and specific destination address, and wildcard source address and wildcard destination address. 
                    The evaluator shall generate packets matching each supported IPv4 Transport Layer Protocol and outside the scope of all source and destination addresses 
                    configured above in order to ensure that the supported protocols are denied (i.e., by capturing no applicable packets passing through the TOE) and logged. 
                    Any protocols not supported by the TOE must be denied.
                  </test>
                  <test>The evaluator shall configure the TOE to permit and log each supported IPv6 Transport Layer Protocol 
                    (see RFC Values for IPv4 and IPv6 table  for full possible list) in conjunction with a specific source address and specific destination address, 
                    specific source address and wildcard destination address, wildcard source address and specific destination address, 
                    and wildcard source address and wildcard destination address. 
                    The evaluator shall generate packets matching each defined IPv6 Transport Layer Protocol and 
                    within the configured source and destination addresses in order to ensure that the supported protocols are permitted 
                    (i.e., by capturing the packets after passing through the TOE) and logged. Any protocols not supported by the TOE must be denied.</test>
                  <test>The evaluator shall configure the TOE to permit all traffic except to discard and log each supported IPv6 Transport Layer Protocol 
                    (see RFC Values for IPv4 and IPv6 table for full possible list) in conjunction with a specific source address and specific destination address, 
                    specific source address and wildcard destination address, wildcard source address and specific destination address, 
                    and wildcard source address and wildcard destination address. 
                    The evaluator shall generate packets matching each defined IPv6 Transport Layer Protocol and within the configured source and destination addresses 
                    in order to ensure that the supported protocols are denied (i.e., by capturing no applicable packets passing through the TOE) and logged. 
                    Any protocols not supported by the TOE must also be denied but are not required to be logged.
                  </test>
                  <test>The evaluator shall configure the TOE to permit and log each supported IPv6 Transport Layer Protocol 
                    (see RFC Values for IPv4 and IPv6 table for full possible list) in conjunction with a specific source address and specific destination address, 
                    specific source address and wildcard destination address, wildcard source address and specific destination address, 
                    and wildcard source address and wildcard destination address. Additionally, the evaluator shall configure the TOE to discard and log each supported IPv6 Transport Layer Protocol 
                    (see RFC Values for IPv4 and IPv6 table for full possible list) in conjunction with different (than those permitted above) 
                    combinations of a specific source address and specific destination address, specific source address and wildcard destination address, 
                    wildcard source address and specific destination address, and wildcard source address and wildcard destination address. 
                    The evaluator shall generate packets matching each defined IPv6 Transport Layer Protocol and outside the scope of all source and destination 
                    addresses configured above in order to ensure that the supported protocols are dropped (i.e., by capturing no applicable packets passing through the TOE) and logged. 
                    Any protocols not supported by the TOE must be denied.
                  </test>
                  <test>The evaluator shall configure the TOE to permit and log protocol 6 (TCP) using a selected source
                    port, a selected destination port, and a selected source and destination port combination. The evaluator
                    shall generate packets matching the configured source and destination TCP ports in order to ensure that
                    they are permitted (i.e., by capturing the packets after passing through the TOE) and logged.
                  </test>
                  <test>The evaluator shall configure the TOE to discard and log protocol 6 (TCP) using a selected source
                    port, a selected destination port, and a selected source and destination port combination. The evaluator
                    shall generate packets matching the configured source and destination TCP ports in order to ensure that
                    they are denied (i.e., by capturing no applicable packets passing through the TOE) and logged.
                  </test>
                  <test>The evaluator shall configure the TOE to permit and log protocol 17 (UDP) using a selected source
                    port, a selected destination port, and a selected source and destination port combination. The evaluator
                    shall generate packets matching the configured source and destination UDP ports in order to ensure that 
                    they are permitted (i.e., by capturing the packets after passing through the TOE) and logged. Here the
                    evaluator shall ensure that the UDP port 500 (IKE) is included in the set of tests.
                  </test>
                  <test>The evaluator shall configure the TOE to discard and log protocol 17 (UDP) using a selected source
                    port, a selected destination port, and a selected source and destination port combination. The evaluator
                    shall generate packets matching the configured source and destination UDP ports in order to ensure that
                    they are denied (i.e., by capturing no applicable packets passing through the TOE) and logged. Again, the
                    evaluator shall ensure that UDP port 500 is included in the set of tests.</test>
                </testlist>
                The following table identifies the RFC defined values for the protocol fields for IPv4 and IPv6 to be used in
                configuring and otherwise testing packet filtering rule definition and enforcement:
                <h:br/>
                <h:table>
                  <h:tr class="header"><h:td>Protocol</h:td><h:td>Defined Attributes</h:td></h:tr>
                  <h:tr><h:td>IPv4</h:td><h:td>
                    <h:ul>
                      <h:li>Transport Layer Protocol 1 - Internet Control Message</h:li>
                      <h:li>Transport Layer Protocol 2 - Internet Group Management</h:li>
                      <h:li>Transport Layer Protocol 3 - Gateway-to-Gateway</h:li>
                      <h:li>Transport Layer Protocol 4 - IP in IP (encapsulation)</h:li>
                      <h:li>Transport Layer Protocol 5 - Stream</h:li>
                      <h:li>Transport Layer Protocol 6 - Transmission Control</h:li>
                      <h:li>Transport Layer Protocol 7 - UCL</h:li>
                      <h:li>Transport Layer Protocol 8 - Exterior Gateway Protocol</h:li>
                      <h:li>Transport Layer Protocol 9 - Any private interior gateway</h:li>
                      <h:li>Transport Layer Protocol 10 - BBN RCC Monitoring</h:li>
                      <h:li>Transport Layer Protocol 11 - Network Voice Protocol</h:li>
                      <h:li>Transport Layer Protocol 12 - PUP</h:li>
                      <h:li>Transport Layer Protocol 13 - ARGUS</h:li>
                      <h:li>Transport Layer Protocol 14 - EMCON</h:li>
                      <h:li>Transport Layer Protocol 15 - Cross Net Debugger</h:li>
                      <h:li>Transport Layer Protocol 16 - Chaos</h:li>
                      <h:li>Transport Layer Protocol 17 - User Datagram</h:li>
                      <h:li>Transport Layer Protocol 18 - Multiplexing</h:li>
                      <h:li>Transport Layer Protocol 19 - DCN Measurement Subsystems</h:li>
                      <h:li>Transport Layer Protocol 20 - Host Monitoring</h:li>
                      <h:li>Transport Layer Protocol 21 - Packet Radio Measurement</h:li>
                      <h:li>Transport Layer Protocol 22 - XEROX NS IDP</h:li>
                      <h:li>Transport Layer Protocol 23 - Trunk-1</h:li>
                      <h:li>Transport Layer Protocol 24 - Trunk-2</h:li>
                      <h:li>Transport Layer Protocol 25 - Leaf-1</h:li>
                      <h:li>Transport Layer Protocol 26 - Leaf-2</h:li>
                      <h:li>Transport Layer Protocol 27 - Reliable Data Protocol</h:li>
                      <h:li>Transport Layer Protocol 28 - Internet Reliable Transaction</h:li>
                      <h:li>Transport Layer Protocol 29 - ISO Transport Protocol Class 4</h:li>
                      <h:li>Transport Layer Protocol 30 - Bulk Data Transfer Protocol</h:li>
                      <h:li>Transport Layer Protocol 31 - MFE Network Services Protocol</h:li>
                      <h:li>Transport Layer Protocol 32 - MERIT Internodal Protocol</h:li>
                      <h:li>Transport Layer Protocol 33 - Sequential Exchange Protocol</h:li>
                      <h:li>Transport Layer Protocol 34 - Third Party Connect Protocol</h:li>
                      <h:li>Transport Layer Protocol 35 - Inter-Domain Policy Routing Protocol</h:li>
                      <h:li>Transport Layer Protocol 36 - XTP</h:li>
                      <h:li>Transport Layer Protocol 37 - Datagram Delivery Protocol</h:li>
                      <h:li>Transport Layer Protocol 38 - IDPR Control Message Transport Protocol</h:li>
                      <h:li>Transport Layer Protocol 39 - TP++ Transport Protocol</h:li>
                      <h:li>Transport Layer Protocol 40 - IL Transport Protocol</h:li>
                      <h:li>Transport Layer Protocol 41 - Simple Internet Protocol</h:li>
                      <h:li>Transport Layer Protocol 42 - Source Demand Routing Protocol</h:li>
                      <h:li>Transport Layer Protocol 43 - SIP Source Route</h:li>
                      <h:li>Transport Layer Protocol 44 - SIP Fragment</h:li>
                      <h:li>Transport Layer Protocol 45 - Inter-Domain Routing Protocol</h:li>
                      <h:li>Transport Layer Protocol 46 - Reservation Protocol</h:li>
                      <h:li>Transport Layer Protocol 47 - General Routing Encapsulation</h:li>
                      <h:li>Transport Layer Protocol 48 - Mobile Host Routing Protocol</h:li>
                      <h:li>Transport Layer Protocol 49 - BNA</h:li>
                      <h:li>Transport Layer Protocol 50 - SIPP Encap Security Payload</h:li>
                      <h:li>Transport Layer Protocol 51 - SIPP Authentication Header</h:li>
                      <h:li>Transport Layer Protocol 52 - Integrated Net Layer Security TUBA</h:li>
                      <h:li>Transport Layer Protocol 53 - IP with Encryption</h:li>
                      <h:li>Transport Layer Protocol 54 - NBMA Next Hop Resolution Protocol</h:li>
                      <h:li>Transport Layer Protocol 61 - Any host internal protocol</h:li>
                      <h:li>Transport Layer Protocol 62 - CFTP</h:li>
                      <h:li>Transport Layer Protocol 63 - Any local network</h:li>
                      <h:li>Transport Layer Protocol 64 - SATNET and Backroom EXPAK</h:li>
                      <h:li>Transport Layer Protocol 65 - Kryptolan</h:li>
                      <h:li>Transport Layer Protocol 66 - MIT Remote Virtual Disk Protocol</h:li>
                      <h:li>Transport Layer Protocol 67 - Internet Pluribus Packet Core</h:li>
                      <h:li>Transport Layer Protocol 68 - Any distributed file system</h:li>
                      <h:li>Transport Layer Protocol 69 - SATNET Monitoring</h:li>
                      <h:li>Transport Layer Protocol 70 - VISA Protocol</h:li>
                      <h:li>Transport Layer Protocol 71 - Internet Packet Core Utility</h:li>
                      <h:li>Transport Layer Protocol 72 - Computer Protocol Network Executive</h:li>
                      <h:li>Transport Layer Protocol 73 - Computer Protocol Heart Beat</h:li>
                      <h:li>Transport Layer Protocol 74 - Wang Span Network</h:li>
                      <h:li>Transport Layer Protocol 75 - Packet Video Protocol</h:li>
                      <h:li>Transport Layer Protocol 76 - Backroom SATNET Monitoring</h:li>
                      <h:li>Transport Layer Protocol 77 - SUN ND PROTOCOL-Temporary</h:li>
                      <h:li>Transport Layer Protocol 78 - WIDEBAND Monitoring</h:li>
                      <h:li>Transport Layer Protocol 79 - WIDEBAND EXPAK</h:li>
                      <h:li>Transport Layer Protocol 80 - ISO Internet Protocol</h:li>
                      <h:li>Transport Layer Protocol 81 - VMTP</h:li>
                      <h:li>Transport Layer Protocol 82 - SECURE-VMTP</h:li>
                      <h:li>Transport Layer Protocol 83 - VINES</h:li>
                      <h:li>Transport Layer Protocol 84 - TTP</h:li>
                      <h:li>Transport Layer Protocol 85 - NSFNET-IGP</h:li>
                      <h:li>Transport Layer Protocol 86 - Dissimilar Gateway Protocol</h:li>
                      <h:li>Transport Layer Protocol 87 - TCF</h:li>
                      <h:li>Transport Layer Protocol 88 - IGRP</h:li>
                      <h:li>Transport Layer Protocol 89 - OSPFIGP</h:li>
                      <h:li>Transport Layer Protocol 90 - Sprite RPC Protocol</h:li>
                      <h:li>Transport Layer Protocol 91 - Locus Address Resolution Protocol</h:li>
                      <h:li>Transport Layer Protocol 92 - Multicast Transport Protocol</h:li>
                      <h:li>Transport Layer Protocol 93 - AX.25 Frames</h:li>
                      <h:li>Transport Layer Protocol 94 - IP-within-IP Encapsulation Protocol</h:li>
                      <h:li>Transport Layer Protocol 95 - Mobile Internetworking Control Protocol</h:li>
                      <h:li>Transport Layer Protocol 96 - Semaphore Communications Security Protocol</h:li>
                      <h:li>Transport Layer Protocol 97 - Ethernet-within-IP Encapsulation</h:li>
                      <h:li>Transport Layer Protocol 98 - Encapsulation Header</h:li>
                      <h:li>Transport Layer Protocol 99 - Any private encryption scheme</h:li>
                      <h:li>Transport Layer Protocol 100 - GMTP</h:li>
                    </h:ul>
                  </h:td></h:tr>
                  <h:tr><h:td>IPv6</h:td><h:td>
                    <h:ul>
                      <h:li>Transport Layer Protocol 1 - Internet Control Message</h:li>
                      <h:li>Transport Layer Protocol 2 - Internet Group Management</h:li>
                      <h:li>Transport Layer Protocol 3 - Gateway-to-Gateway</h:li>
                      <h:li>Transport Layer Protocol 4 - IPv4 encapsulation</h:li>
                      <h:li>Transport Layer Protocol 5 - Stream</h:li>
                      <h:li>Transport Layer Protocol 6 - Transmission Control</h:li>
                      <h:li>Transport Layer Protocol 7 - CBT</h:li>
                      <h:li>Transport Layer Protocol 8 - Exterior Gateway Protocol</h:li>
                      <h:li>Transport Layer Protocol 9 - Any private interior gateway</h:li>
                      <h:li>Transport Layer Protocol 10 - BBN RCC Monitoring</h:li>
                      <h:li>Transport Layer Protocol 11 - Network Voice Protocol</h:li>
                      <h:li>Transport Layer Protocol 12 - PUP</h:li>
                      <h:li>Transport Layer Protocol 13 - ARGUS</h:li>
                      <h:li>Transport Layer Protocol 14 - EMCON</h:li>
                      <h:li>Transport Layer Protocol 15 - Cross Net Debugger</h:li>
                      <h:li>Transport Layer Protocol 16 - Chaos</h:li>
                      <h:li>Transport Layer Protocol 17 - User Datagram</h:li>
                      <h:li>Transport Layer Protocol 18 - Multiplexing</h:li>
                      <h:li>Transport Layer Protocol 19 - DCN Measurement Subsystems</h:li>
                      <h:li>Transport Layer Protocol 20 - Host Monitoring</h:li>
                      <h:li>Transport Layer Protocol 21 - Packet Radio Measurement</h:li>
                      <h:li>Transport Layer Protocol 22 - XEROX NS IDP</h:li>
                      <h:li>Transport Layer Protocol 23 - Trunk-1</h:li>
                      <h:li>Transport Layer Protocol 24 - Trunk-2</h:li>
                      <h:li>Transport Layer Protocol 25 - Leaf-1</h:li>
                      <h:li>Transport Layer Protocol 26 - Leaf-2</h:li>
                      <h:li>Transport Layer Protocol 27 - Reliable Data Protocol</h:li>
                      <h:li>Transport Layer Protocol 28 - Internet Reliable Transaction</h:li>
                      <h:li>Transport Layer Protocol 29 - Transport Protocol Class 4</h:li>
                      <h:li>Transport Layer Protocol 30 - Bulk Data Transfer Protocol</h:li>
                      <h:li>Transport Layer Protocol 31 - MFE Network Services Protocol</h:li>
                      <h:li>Transport Layer Protocol 32 - MERIT Internodal Protocol</h:li>
                      <h:li>Transport Layer Protocol 33 - Datagram Congestion Control Protocol</h:li>
                      <h:li>Transport Layer Protocol 34 - Third Party Connect Protocol</h:li>
                      <h:li>Transport Layer Protocol 35 - Inter-Domain Policy Routing Protocol</h:li>
                      <h:li>Transport Layer Protocol 36 - XTP</h:li>
                      <h:li>Transport Layer Protocol 37 - Datagram Delivery Protocol</h:li>
                      <h:li>Transport Layer Protocol 38 - IDPR Control Message Transport Protocol</h:li>
                      <h:li>Transport Layer Protocol 39 - TP++ Transport Protocol</h:li>
                      <h:li>Transport Layer Protocol 40 - IL Transport Protocol</h:li>
                      <h:li>Transport Layer Protocol 41 - IPv6 encapsulation</h:li>
                      <h:li>Transport Layer Protocol 42 - Source Demand Routing Protocol</h:li>
                      <h:li>Transport Layer Protocol 43 - Intentionally blank</h:li>
                      <h:li>Transport Layer Protocol 44 - Intentionally blank</h:li>
                      <h:li>Transport Layer Protocol 45 - Inter-Domain Routing Protocol</h:li>
                      <h:li>Transport Layer Protocol 46 - Reservation Protocol</h:li>
                      <h:li>Transport Layer Protocol 47 - General Routing Encapsulation</h:li>
                      <h:li>Transport Layer Protocol 48 - Dynamic Source Routing Protocol</h:li>
                      <h:li>Transport Layer Protocol 49 - BNA</h:li>
                      <h:li>Transport Layer Protocol 50 - Intentionally Blank</h:li>
                      <h:li>Transport Layer Protocol 51 - Intentionally Blank</h:li>
                      <h:li>Transport Layer Protocol 52 - Integrated Net Layer Security</h:li>
                      <h:li>Transport Layer Protocol 53 - IP with Encryption</h:li>
                      <h:li>Transport Layer Protocol 54 - NBMA Address Resolution Protocol</h:li>
                      <h:li>Transport Layer Protocol 55 - Mobility</h:li>
                      <h:li>Transport Layer Protocol 56 - Transport Layer Security Protocol using Kryptonet key
                        management</h:li>
                      <h:li>Transport Layer Protocol 57 - SKIP</h:li>
                      <h:li>Transport Layer Protocol 58 - ICMP for IPv6</h:li>
                      <h:li>Transport Layer Protocol 59 - No Next Header for IPv6</h:li>
                      <h:li>Transport Layer Protocol 60 - Intentionally Blank</h:li>
                      <h:li>Transport Layer Protocol 61 - Any host internal protocol</h:li>
                      <h:li>Transport Layer Protocol 62 - CFTP</h:li>
                      <h:li>Transport Layer Protocol 63 - Any local network</h:li>
                      <h:li>Transport Layer Protocol 64 - SATNET and Backroom EXPAK</h:li>
                      <h:li>Transport Layer Protocol 65 - Kryptolan</h:li>
                      <h:li>Transport Layer Protocol 66 - MIT Remote Virtual Disk Protocol</h:li>
                      <h:li>Transport Layer Protocol 67 - Internet Pluribus Packet Core</h:li>
                      <h:li>Transport Layer Protocol 68 - Any distributed file system</h:li>
                      <h:li>Transport Layer Protocol 69 - SATNET Monitoring</h:li>
                      <h:li>Transport Layer Protocol 70 - VISA Protocol</h:li>
                      <h:li>Transport Layer Protocol 71 - Internet Packet Core Utility</h:li>
                      <h:li>Transport Layer Protocol 72 - Computer Protocol Network Executive</h:li>
                      <h:li>Transport Layer Protocol 73 - Computer Protocol Heart Beat</h:li>
                      <h:li>Transport Layer Protocol 74 - Wang Span Network</h:li>
                      <h:li>Transport Layer Protocol 75 - Packet Video Protocol</h:li>
                      <h:li>Transport Layer Protocol 76 - Backroom SATNET Monitoring</h:li>
                      <h:li>Transport Layer Protocol 77 - SUN ND PROTOCOL-Temporary</h:li>
                      <h:li>Transport Layer Protocol 78 - WIDEBAND Monitoring</h:li>
                      <h:li>Transport Layer Protocol 79 - WIDEBAND EXPAK</h:li>
                      <h:li>Transport Layer Protocol 80 - ISO Internet Protocol</h:li>
                      <h:li>Transport Layer Protocol 81 - VMTP</h:li>
                      <h:li>Transport Layer Protocol 82 - SECURE-VMTP</h:li>
                      <h:li>Transport Layer Protocol 83 - VINES</h:li>
                      <h:li>Transport Layer Protocol 84 - TTP</h:li>
                      <h:li>Transport Layer Protocol 85 - Internet Protocol Traffic Manager</h:li>
                      <h:li>Transport Layer Protocol 86 - NSFNET-IGP</h:li>
                      <h:li>Transport Layer Protocol 87 - Dissimilar Gateway Protocol</h:li>
                      <h:li>Transport Layer Protocol 88 - TCF</h:li>
                      <h:li>Transport Layer Protocol 89 - EIGRP</h:li>
                      <h:li>Transport Layer Protocol 90 - OSPFIGP</h:li>
                      <h:li>Transport Layer Protocol 91 - Sprite RPC Protocol</h:li>
                      <h:li>Transport Layer Protocol 92 - Locus Address Resolution Protocol</h:li>
                      <h:li>Transport Layer Protocol 93 - Multicast Transport Protocol</h:li>
                      <h:li>Transport Layer Protocol 94 - AX.25 Frames</h:li>
                      <h:li>Transport Layer Protocol 95 - IP-within-IP Encapsulation Protocol</h:li>
                      <h:li>Transport Layer Protocol 96 - Mobile Internetworking Control Pro.</h:li>
                      <h:li>Transport Layer Protocol 97 - Semaphore Communications Sec. Pro.</h:li>
                      <h:li>Transport Layer Protocol 98 - Ethernet-within-IP Encapsulation</h:li>
                      <h:li>Transport Layer Protocol 99 - Encapsulation Header</h:li>
                      <h:li>Transport Layer Protocol 100 - GMTP</h:li>
                      <h:li>Transport Layer Protocol 101 - Ipsilon Flow Management Protocol</h:li>
                      <h:li>Transport Layer Protocol 102 - PNNI over IP</h:li>
                      <h:li>Transport Layer Protocol 103 - Protocol Independent Multicast</h:li>
                      <h:li>Transport Layer Protocol 104 - ARIS</h:li>
                      <h:li>Transport Layer Protocol 105 - SCPS Transport Layer Protocol</h:li>
                      <h:li>Transport Layer Protocol 106 - QNX</h:li>
                      <h:li>Transport Layer Protocol 107 - Active Networks</h:li>
                      <h:li>Transport Layer Protocol 108 - Payload Compression Protocol</h:li>
                      <h:li>Transport Layer Protocol 109 - Sitara Networks Protocol</h:li>
                      <h:li>Transport Layer Protocol 110 - Compaq Peer Protocol</h:li>
                      <h:li>Transport Layer Protocol 111 - IPX in IP</h:li>
                      <h:li>Transport Layer Protocol 112 - Virtual Router Redundancy Protocol</h:li>
                      <h:li>Transport Layer Protocol 113 - PGM Reliable Transport Protocol</h:li>
                      <h:li>Transport Layer Protocol 114 - Any 0-hop protocol</h:li>
                      <h:li>Transport Layer Protocol 115 - Layer Two Tunneling Protocol</h:li>
                      <h:li>Transport Layer Protocol 116 - D-II Data Exchange (DDX)</h:li>
                      <h:li>Transport Layer Protocol 117 - Interactive Agent Transfer Protocol</h:li>
                      <h:li>Transport Layer Protocol 118 - Schedule Transfer Protocol</h:li>
                      <h:li>Transport Layer Protocol 119 - SpectraLink Radio Protocol</h:li>
                      <h:li>Transport Layer Protocol 120 - UTI</h:li>
                      <h:li>Transport Layer Protocol 121 - Simple Message Protocol</h:li>
                      <h:li>Transport Layer Protocol 122 - SM</h:li>
                      <h:li>Transport Layer Protocol 123 - Performance Transparency Protocol</h:li>
                      <h:li>Transport Layer Protocol 124 - ISIS over IPv4</h:li>
                      <h:li>Transport Layer Protocol 125 - FIRE</h:li>
                      <h:li>Transport Layer Protocol 126 - Combat Radio Transport Protocol</h:li>
                      <h:li>Transport Layer Protocol 127 - Combat Radio User Datagram</h:li>
                      <h:li>Transport Layer Protocol 128 - SSCOPMCE</h:li>
                      <h:li>Transport Layer Protocol 129 - IPLT</h:li>
                      <h:li>Transport Layer Protocol 130 - Secure Packet Shield</h:li>
                      <h:li>Transport Layer Protocol 131 - Private IP Encapsulation within IP</h:li>
                      <h:li>Transport Layer Protocol 132 - Stream Control Transmission Protocol</h:li>
                      <h:li>Transport Layer Protocol 133 - Fibre Channel</h:li>
                      <h:li>Transport Layer Protocol 134 - RSVP-E2E-IGNORE</h:li>
                      <h:li>Transport Layer Protocol 135 - Mobility Header</h:li>
                      <h:li>Transport Layer Protocol 136 - UDPLite</h:li>
                      <h:li>Transport Layer Protocol 137 - MPLS-in-IP</h:li>
                      <h:li>Transport Layer Protocol 138 - MANET Protocols</h:li>
                      <h:li>Transport Layer Protocol 139 - Host Identity Protocol</h:li>
                      <h:li>Transport Layer Protocol 140 - Shim6 Protocol</h:li>
                      <h:li>Transport Layer Protocol 141 - Wrapped Encapsulating Security Payload</h:li>
                      <h:li>Transport Layer Protocol 142 - Robust Header Compression</h:li>
                    </h:ul>
                    </h:td></h:tr>
                </h:table><h:br/>
                <h:b><ctr ctr-type="Table" id="rfcvalues">: RFC Values for IPv4 and IPv6</ctr></h:b>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>Application of rules configured with the 'log' operation</audit-event-descr>
            <audit-event-info>Source and destination addresses</audit-event-info>
            <audit-event-info>Source and destination ports</audit-event-info>
            <audit-event-info>Transport layer protocol</audit-event-info>
          </audit-event>
        </f-component>
        
      </section>

	  <!-- 5.2.4 Protection of the TSF (FPT) -->
      <section title="Protection of the TSF (FPT)" id="m-fpt">
	 
	 <!-- Note: VPNGW 1.1's title of FPT_FLS.1 was not correct w/r/t CC Part 2 -->
        <f-component name="Failure with Preservation of Secure State (Self-Test Failures)" cc-id="fpt_fls.1" iteration="SelfTest" id="fpt-fls-1">
          <consistency-rationale>The Base-PP already requires the TOE to specify the self-tests that are
            performed. This PP-Module simply goes one step further and requires the
            TSF to behave in a certain way upon failure of those self-tests.</consistency-rationale>
          <f-element id="fpt-fls-1e1-SelfTest">
            <title>The TSF shall <h:b>shut down</h:b> when the following types of failures occur: [<h:i>failure of the
              power-on self-tests, failure of integrity check of the TSF executable image, failure
              of noise source health tests</h:i>].</title>
            <note role="application">
              This SFR defines the expected TSF response to failures of the self-tests defined in
              the Base-PP.
            </note>
            <aactivity>
              <TSS>The evaluator shall ensure the TSS describes how the TOE ensures a shutdown upon a self-test failure, a
                failed integrity check of the TSF executable image, or a failed health test of the noise source. If there are
                instances when a shutdown does not occur, (e.g., a failure is deemed non-security relevant), the
                evaluator shall ensure that those cases are identified and a rationale is provided that supports the
                classification and justifies why the TOE’s ability to enforce its security policies is not affected in any such
                instance.
                <h:br/></TSS>
              <Guidance>The evaluator shall verify that the operational guidance provides information on the self-test failures that
                can cause the TOE to shut down and how to diagnose the specific failure that has occurred, including
                possible remediation steps if available.<h:br/></Guidance>
              <Tests>There are no test EAs for this component.
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        <!-- Note that the schema doesn't appear to have a way to preface an extended component with a note about the family as a whole that isn't just the ext-comp-def tag
        so we just used that tag to put the note from Module v1.1 into it rather than use it to restate the family definition from the Base-PP. -->
        <ext-comp-def fam-id="FPT_TST_EXT" title="TSF Self-Test">
          <fam-behavior>This family is defined in the Base-PP. This PP-Module augments the extended family by adding one
            additional component, FPT_TST_EXT.3. This new component and its impact on the extended family’s
            component leveling are shown below; reference the Base-PP for all other definitions for this family.
          </fam-behavior>
        </ext-comp-def>
        
        <f-component name="Self-Test with Defined Methods" cc-id="fpt_tst_ext.3" id="fpt-tst-ext-3">
          <consistency-rationale>This PP-Module adds to the self-testing requirements from the Base-PP by
            mandating that a specific self-test be performed and that it be performed in
            a certain manner. This does not conflict with the Base-PP because the
            method used to perform the self-test is a cryptographic function already
            mandated by the Base-PP.</consistency-rationale>
          <comp-lev> requires the TSF to specify the methods by
            which self-testing is performed in addition to identifying the self-tests that are executed and the
            circumstances in which this execution occurs.
          </comp-lev>
          <management>No specific management functions are identified.</management>
          <!-- Note: these currently aren't listed in the auditable events table, should they be? -->
          <audit>There are no auditable events foreseen.
          </audit>
          <!-- Technically FPT_TST_EXT.3 is hierarchical to FPT_TST_EXT.1 but I don't believe the schema has a way to support hierarchical SFR defintiions, or does it?
          We could make an ext-comp-def version of FPT_TST_EXT.3.2 that's all bolded to show it being hierarchical but the ECD only shows management/audit/dependencies and it may be confusing to the reader if we 
          format the extended component like a hierarchical SFR without having an actual header for that in the ECD> -->
          <dependencies>No dependencies.</dependencies>
          <f-element id="fpt-tst-ext-3e1">
            <title>The TSF shall run a suite of the following self-tests [<h:i>[when loaded for execution]</h:i>]
              to demonstrate the correct operation of the TSF: [<h:i>integrity verification of stored
              executable code</h:i>].</title>
          <ext-comp-def-title>
            <title>The TSF shall run a suite of the following self-tests <assignable>timing when self-testing is run</assignable>
              to demonstrate the correct operation of the TSF: <assignable>list of self-tests performed</assignable>.
              </title>
          </ext-comp-def-title>
          </f-element>
          <f-element id="fpt-tst-ext-3e2">
            <title>The TSF shall execute the self-testing through [<h:i>a TSF-provided cryptographic
              service specified in FCS_COP.1<h:b>/SigGen</h:b></h:i>].</title>
            <ext-comp-def-title>
              <title>The TSF shall execute the self-testing through <assignable>self-testing mechanism</assignable>.</title>
            </ext-comp-def-title>
            <note role="application">This requirement expands upon the self-test requirements defined in the NDcPP
              by specifying the method by which one of the self-tests is to be performed. “Stored
              TSF executable code” refers to the entire software image of the device and not
              just the code related to the VPN gateway functionality defined by this PP-Module.</note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS describes the method used to perform self-testing on the TSF
                executable code, and that this method is consistent with what is described in the SFR.
                <h:br/></TSS>
              <Guidance>There are no guidance EAs for this component.<h:br/></Guidance>
              <Tests>There are no test EAs for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
      </section>   <!-- FPT -->
                
      <!-- 5.2.5 Trusted Path/Channels (FTP) -->
      <section title="Trusted Path/Channels (FTP)" id="m-ftp">
        
        <f-component name="Inter-TSF Trusted Channel (VPN Communications)" cc-id="ftp_itc.1" iteration="VPN" id="ftp-itc-1-vpn">
          <consistency-rationale>This PP-Module iterates a Base-PP SFR to refer to an interface that is unique
            to the PP-Module. This does not affect the ability of the Base-PP iteration of
            the SFR to be satisfied.</consistency-rationale>
          <f-element id="ftp-itc-1e1-vpn">
            <title>The TSF shall <h:b>be capable of using IPsec to</h:b> provide a communication channel
              between itself and <h:b>authorized IT entities supporting VPN communications</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>
          </f-element>
          <f-element id="ftp-itc-1e2-vpn">
            <title>
              The TSF shall permit [<h:i>the authorized IT entities</h:i>] to initiate communication via the
              trusted channel.
            </title>
          </f-element>
          <f-element id="ftp-itc-1e3-vpn">
            <title>
              The TSF shall initiate communication via the trusted channel for <selectables onlyone="yes">
                <selectable>remote VPN gateways or peers</selectable>
                <selectable>no functions</selectable>
              </selectables>.
            </title>
          <note role="application">
            The FTP_ITC.1 requirement in the Base-PP relates to other trusted channel
            functions. This iteration is specific to IPsec VPN communications. 
            </note>
            <aactivity>
              <TSS>The EAs specified for FTP_ITC.1 in the Supporting Document for the Base-PP shall be
                applied for IPsec VPN communications.<h:br/>
              </TSS>
              <Guidance>The EAs specified for FTP_ITC.1 in the Supporting Document for the Base-PP shall be
                applied for IPsec VPN communications.<h:br/>
              </Guidance>
              <Tests>The EAs specified for FTP_ITC.1 in the Supporting Document for the Base-PP shall be
                applied for IPsec VPN communications. Additional testing for IPsec is covered in
                FCS_IPSEC_EXT.1.</Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>Initiation of the
              trusted channel</audit-event-descr>
            <audit-event-info>No additional information.</audit-event-info>
          </audit-event>
          <audit-event>
          <audit-event-descr>Termination of the
            trusted channel</audit-event-descr>
            <audit-event-info>No additional information.</audit-event-info>
          </audit-event>
          <audit-event>
          <audit-event-descr>Failure of the trusted channel functions</audit-event-descr>
          <audit-event-info>Identification of the initiator and target of failed trusted channel establishment attempt</audit-event-info>
          </audit-event>
        </f-component>
  
      </section> 
    </man-sfrs>

    <!-- <mod-sars> -->
     <!-- 5.3 TOE Security Assurance Requirements -->
<!--	Note: what is included here is a hybrid of what was in the Module (section 5.4) and SD (section 6) in Module v1.1  -->
      <!-- 
      This PP-Module does not define any SARs beyond those defined by the Base-PP. It is important to note
      that these SARs are applied to the entire TOE and not just to the portion of the TOE defined by the PP or
      PP-Module in which the SARs are located.
      <h:br/>
      To evaluate the SARs specified by NDcPP and this PP-Module, the evaluator shall perform the SAR
      Evaluation Activities defined in the NDcPP SD against the entire TOE (i.e., both the network device portion
      and the VPN gateway portion). In particular, the evaluator shall ensure that the vulnerability testing
      defined in section A.1.4 of the NDcPP SD is applied to the TOE’s VPN interfaces in addition to any other
      security-relevant network device interfaces that the TOE may have.
			-->
    <!-- </mod-sars>  -->
	  
	<!-- Appendix A: Optional Requirements -->

	  <!-- A.1: Strictly Optional Requirements -->
    
    <opt-sfrs>
      <section id="sop-audit-table" title="Auditable Events for Strictly Optional SFRs">
        <audit-table table="optional" id="opt-audit-events">
          <h:br/><h:b><ctr ctr-type="Table" pre="Table " id="atref-optional">: Auditable Events for Strictly Optional SFRs</ctr></h:b>
        </audit-table>
      </section>
      
      <section title="Packet Filtering (FPF)" id="s-fpf">
        The TOE may support multifactor authentication by blocking all other traffic after connection is established until secondary authentication is validated.
        
        <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>
        <f-component cc-id="fpf_mfa_ext.1" id="fpf-mfa-ext-1" name="Multifactor Authentication Filtering">
          
          <consistency-rationale>This SFR relates specifically to the handling of traffic that is used for the establishment of IPsec connections.</consistency-rationale>
          <comp-lev>defines the use and composition of multifactor authentication filtering.</comp-lev>
          <management>No specific management functions are identified.</management>
          <audit>There are no auditable events foreseen.
          </audit>
          <f-element id="fpf-mfa-ext-1e1">
            <title>
              The TSF shall not forward packets to the internal network until the IKE tunnel has been established, 
              except those necessary to verify additional authentication factors of the client.
            </title>
          </f-element>
          <f-element id="fpf-mfa-ext-1e2">
              <title>
                The TSF shall <selectables>
                  <selectable id="sel-tsf-mfa">verify</selectable>
                  <selectable>verify via an external authentication server</selectable></selectables> additional authentication factors of the client.
              </title> 
            <note role="application">
              If "verify" is selected, FIA_PSK_EXT.1 must be claimed.
              
              
            </note>
            <aactivity>
              <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/>
                If the selection “verify” is included, the evaluator shall examine the TSS and verify it describes each authentication factor supported. 
                <h:br/><h:br/>
                If the selection “verify via an external authentication server” is included, the evaluator shall examine the TSS and verify it describes how the factors are forwarded to the authentication server. 
                The evaluator shall confirm other traffic is denied until verification is received by the authentication server. 
                <h:br/>
              </TSS>
              
              <Guidance>The evaluator shall examine the operational guidance to verify that it provides instructions to the 
                administrator on how to configure the secondary authentication factors and any additional details necessary for filtering all other traffic.
                <h:br/><h:br/>
                If the selection “verify via an external authentication server” is included, 
                the evaluator shall examine the operational guidance to verify that it provides instructions to the administrator 
                on how to integrate the authentication server.
                <h:br/>
              </Guidance>
              
              <Tests>
                <testlist>
                  <test>For each accepted authentication factor, the evaluator shall configure the TOE in accordance with the operational guidance.  
                    The evaluator shall attempt to connect and verify other traffic is rejected per the filtering rules.  
                    The evaluator shall then provide the authentication factor and confirm it is accepted and that traffic is no longer blocked.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          
          
          <audit-event/>
        </f-component>
      </section>
    </opt-sfrs>

	<!-- Appendix B: Selection-Based Requirements -->
	<!--	  As indicated in the introduction to this PP-Module, the baseline requirements (those that must be
		performed by the TOE or its underlying platform) are contained in the body of this PP-Module. There are
		additional requirements based on selections in the body of the PP-Module: if certain selections are
		made, then additional requirements below will need to be included.  -->
	  
    <sel-sfrs>
      <!-- 
	    <section id="sb-audit-table" title="Auditable Events for Selection-based SFRs">
        	<audit-table table="sel-based">
  	     		<h:br/><h:b><ctr ctr-type="Table" pre="Table " id="atref-sel-based">: Auditable Events for Selection-based SFRs</ctr></h:b>
	  	</audit-table>
	    </section> -->
      
      <section id="sb-audit-table" title="Auditable Events for Selection-based SFRs">
        <audit-table table="sel-based" id="sel-audit-events">
          <h:br/><h:b><ctr ctr-type="Table" pre="Table " id="atref-sel-based">: Auditable Events for Selection-based SFRs</ctr></h:b>
        </audit-table>
      </section>
      
      <section title="Cryptographic Support (FCS)" id="s-fcs">
        
        
        <ext-comp-def title="EAP-TLS/TTLS" fam-id="FCS_EAP_EXT">
          <fam-behavior>Components in this family describe the requirements for EAP-TLS/TTLS.</fam-behavior>
        </ext-comp-def>
        
        <!-- FCS_EAP_EXT.1 EAP -->
        <f-component cc-id="fcs_eap_ext.1" id="fcs-eap-ext-1" name="EAP-TLS/TTLS">
          <depends on-sel="sel-ipsec-e13-psk" also="sel-ipsec-e13-eapttls" and="sel-ipsec-e13-eaptls"/>
	  <!-- QQQQ: See note in vpnclient -->          
	  <consistency-rationale>This SFR defines the use of EAP-TLS/TTLS; the Base-PP already defines requirements for TLS so potential support for EAP-TLS is consistent with functionality that the Base-PP already expects the TOE may have.</consistency-rationale>
          <comp-lev>defines the use of EAP-TLS/TTLS.</comp-lev>
          <management>No specific management functions are identified.</management>
          <audit>There are no auditable events foreseen.
          </audit>
          <dependencies>FCS_IPSEC_EXT.1 IPsec Protocol</dependencies>
          <f-element id="fcs-eap-ext-1e1">
            <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 FTP_ITC.1 <h:b>from 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</selectable>
                </selectables>
                over a protected channel per FTP_ITC.1 with an authentication server.
              </title>
            </ext-comp-def-title>
          </f-element>
          <f-element id="fcs-eap-ext-1e2">
            <title>
              The TSF shall implement EAP-TLS or EAP-TTLS with the TSF as the EAP client, 
              an 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>EAP-TLS</selectable>
                <selectable>EAP-TTLS</selectable>
              </selectables> response as the IKEv2 shared secret in the authentication payload.
            </title>
            <note role="application">
              This SFR covers the EAP requirements for a client connection to an authentication server. 
              In particular, authentication server functionality implemented in the same device, 
              rather than in an external device, is covered under the Authentication Server PP-Module, and is out of scope for this PP-Module. 
              The MSK derived from EAP is distinct from the PSK. The MSK is substituted in for the IKEv2 shared secret in the AUTH computations. 
            </note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS describes the use of EAP options for each of the selected peer authentication 
                mechanisms, and that the TSF supports EAP messaging for mutually authenticated TLS between the peer and the authentication server.
                <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/></Guidance>
              <Tests>Testing for TLS functionality is in accordance with the TLS package.
                <h:b/>For each supported EAP method claimed in FCS_EAP_EXT.1.1 and for each authentication method claimed in 
                FCS_EAP_EXT.1.3, the evaluator shall perform the following tests:
                <testlist>
                  <test>The evaluator shall follow the operational guidance to configure the TSF to use the EAP method claimed. 
                    The evaluator shall follow the operational guidance to configure the TSF to use the authentication method claimed and, 
                    for EAP-TTLS, establish a trusted channel with an authentication server that requests the method, and register the peer as a TLS
                    client with appropriate key material required for the authentication method.
                    <h:br/><h:br/>
                    The evaluator shall establish a VPN session using a test peer with a valid certificate and, 
                    for EAP-TTLS, configured to provide a correct value for the configured authenticator. 
                    The evaluator shall observe that the TSF sends EAP messages to the peer and 
                    authentication server to transfer the TLS handshake messages, and after the TSF receives the EAP-success message, 
                    that the VPN session between the peer and TSF is successfully established.</test>
                  <test>
                    The evaluator shall follow the operational guidance to configure the TSF to use a supported EAP method, 
                    establish a trusted channel with an authentication server that requests the method and register the 
                    peer as a TLS client with key material required for a supported authentication method. 
                    The evaluator shall cause the test client to respond to an IKEv2 exchange with EAP-request, 
                    but to compute the shared secret after a successful EAP exchange using the non-EAP method. 
                    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>
          
          <audit-event/>
        </f-component>
        
      </section>
      
      
      <section title="Identification and Authentication (FIA)" id="sel-fia">
        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 refers to generated values, 
        memorized values subject to conditioning, one-time passwords, and combinations as described in FIA_PSK_EXT.1.2.
        
        
        <ext-comp-def title="HMAC-Based One-Time Password Pre-Shared Keys" fam-id="FIA_HOTP_EXT">
          <fam-behavior>Components in this family define requirements for the use of HMAC-Based One-Time password authentication, including generation methods and usage restrictions.</fam-behavior>
        </ext-comp-def>
        <f-component cc-id="fia_hotp_ext.1" id="fia-hotp-ext-1" name="HMAC-Based One-Time Password Pre-Shared Keys">
          <depends on-sel="sel-verify-hotp"/>
          <consistency-rationale>This SFR relates to use of pre-shared keys, which is behavior that only applies to the establishment of IPsec connections.</consistency-rationale>
          <comp-lev> defines the implementation of HOTP.</comp-lev>
          <management>No specific management functions are identified.</management>
          <audit>There are no auditable events foreseen.
          </audit>
          <dependencies>FCS_COP.1 Cryptographic Operation</dependencies>
          <f-element id="fia-hotp-ext-1e1">
            <title>
              The TSF shall support HMAC-Based One-Time Password (HOTP) authentication in accordance with RFC 4226 
              to authenticate the user before establishing VPN connection. 
            </title>
          </f-element>
          <f-element id="fia-hotp-ext-1e2">
            <title>
              The TSF shall generate an HOTP seed according to FCS_RBG_EXT.1 of 
              <selectables>
                <selectable>128</selectable>
                <selectable>256</selectable>
              </selectables> bits.
            </title>
          </f-element>
          <f-element id="fia-hotp-ext-1e3">
            <title>The TSF shall generate a new HOTP seed value for each client.
            </title>
          </f-element>
          <f-element id="fia-hotp-ext-1e4">
            <title>
              The TSF shall use 
              <selectables>
                <selectable>SHA-1</selectable>
                <selectable>SHA-256</selectable>
                <selectable>SHA-384</selectable>
                <selectable>SHA-512</selectable>
              </selectables> with key sizes 
              <assignable>key size (in bits) used in HMAC</assignable> and message digest sizes 
              <selectables>
                <selectable>160</selectable>
                <selectable>256</selectable>
                <selectable>384</selectable>
                <selectable>512</selectable>
              </selectables> to derive an HOTP hash from the HOTP seed and counter.
            </title>
          </f-element>
          <f-element id="fia-hotp-ext-1e5">
            <title>
              The TSF shall truncate the HOTP hash per FIA_HOTP_EXT.1.4 to create an HOTP of  
              <selectables>
                <selectable exclusive="yes">administrator configurable character length of at least 6</selectable>
                <selectable>preset character length of
                  <selectables onlyone="yes">
                    <selectable>6</selectable>
                    <selectable>7</selectable>
                    <selectable>8</selectable>
                    <selectable>9</selectable>
                    <selectable>10</selectable>
                  </selectables>
                </selectable>
              </selectables>.
            </title>
          </f-element>
          <f-element id="fia-hotp-ext-1e6">
            <title>
              The TSF shall 
              <selectables>
                <selectable>throttle invalid requests to 
                  <selectables>
                    <selectable>administrator configurable value</selectable>
                    <selectable exclusive="yes"><assignable>value less than 10</assignable></selectable>
                  </selectables> per minute</selectable>
                <selectable>lock the associated account after 
                  <selectables>
                    <selectable>administrator configurable value</selectable>
                    <selectable exclusive="yes"><assignable>value less than 10</assignable></selectable>
                  </selectables> failed attempts until 
                  <selectables>
                    <selectable>an administrator unlocks the account</selectable>
                    <selectable exclusive="yes">a configurable time period</selectable>
                  </selectables>
                </selectable>
              </selectables>.
            </title>
          </f-element>
          <f-element id="fia-hotp-ext-1e7">
            <title>
              The TSF shall not verify HOTP attempts outside of the counter look ahead window of 
              <selectables>
                <selectable>a configurable value</selectable>
                <selectable exclusive="yes"><assignable>a value less than or equal to 3</assignable></selectable>
              </selectables> for resynchronization.
            </title>
          </f-element>
          <f-element id="fia-hotp-ext-1e8">
            <title>
              The TSF shall increment the counter after each successful authentication.
            </title>
            
            
            <note role="application">
              The selection FIA_HOTP_EXT.1.4 must be consistent with the key size specified for the size of the keys used in conjunction with the keyed-hash message authentication.
              <h:br/>In FIA_HOTP_EXT.1.5 the ST author may either provide a configurable character length of at least 6 or a preset size between 6 and 10.
              <h:br/>In FIA_HOTP_EXT.1.6 the ST author may select throttle requests, account lockout, or both.
              <h:br/>The HOTP seed and all derived values are considered secret keys for purposes of protection.
            </note>
            <aactivity>
              <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. 
                <h:br/>The evaluator shall confirm the TSS describes how the TOE complies with the RFC.
                <h:br/>The evaluator shall confirm the TSS describes how the HOTP seed is generated and ensure it aligns with FCS_RBG_EXT.1.
                <h:br/>The evaluator shall confirm the TSS describes how the HOTP seed is protected and ensure it aligns with the storage requirements of the Base-PP. 
                <h:br/>The evaluator shall confirm the TSS describes how a new HOTP seed is assigned for each client and how each client is uniquely identified.
                <h:br/>The evaluator shall confirm the TSS describes how the HOTP seed is conditioned into an HOTP hash and verify it matches the selection in FIA_HOTP_EXT.1.4.
                <h:br/>The evaluator shall confirm the TSS describes how the HOTP hash is truncated and verify it matches the selection in FIA_HOTP_EXT.1.5.
                <h:br/>The evaluator shall confirm the TSS describes how the TOE handles multiple incoming invalid requests and verify it provides an anti-hammer mechanism that matches the selections made in FIA_HOTP_EXT.1.6.
                <h:br/>The evaluator shall confirm the TSS describes how the TOE handles resynchronization and how it rejects attempts outside of the look-ahead window selected in FIA_TOTP_EXT.1.7.
                <h:br/>The evaluator shall confirm the TSS describes how the TOE counter is incremented after each successful authentication.<h:br/>
              </TSS>
              <Guidance>
                The evaluator shall verify the operational guidance contains any configuration necessary to enable HOTP.<h:br/> 
                The evaluator shall verify the operational guidance contains all configuration guidance for setting any administrative value that is configurable in the 
                FIA_HOTP_EXT.1 requirements.<h:br/>
              </Guidance>
              <Tests>
                The evaluator shall configure the TOE to use a supported HOTP factor then:
                <testlist>
                  <test>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>
                  <test>Attempt to establish a connection using a factor from a different client. The test passes if the client fails to connect.
                  </test><test>Attempt multiple connections outside the limits set in FIA_HOTP_EXT.1.6 and verify the remediation is triggered.  The test passes if remediation is triggered as defined in the selections and assignments.
                  </test><test>Attempt to use an HOTP that is outside of the value allowed for resynchronization. The test passes if the client fails to connect.
                  </test><test>Attempt to connect with a valid HOTP, disconnect and attempt to authenticate again with the same HOTP value.  The test passes if the client connects the first time and fails to connect the second time. If the HOTP generated is duplicated the test may be repeated.
                  </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        <ext-comp-def fam-id="FIA_PSK_EXT" title="Pre-Shared Key Composition">
          <fam-behavior>This family defines requirements for what the TSF defines or generates as an acceptably strong pre-shared key for authentication.
          </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-sel="sel-ipsec-e13-psk" also="sel-tsf-mfa"/>
          <consistency-rationale>This SFR defines the use of pre-shared keys, which is behavior that only relates to the establishment of IPsec connections.</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>There are no auditable events foreseen.
          </audit>
          <dependencies>FCS_IPSEC_EXT.1 IPsec Protocol</dependencies>
          <f-element id="fia-psk-ext-1e1">
            <title>
              The TSF shall be able to use pre-shared keys for IPsec and 
              <selectables>
                <selectable>IKEv2</selectable>
                <selectable>multifactor authentication filtering</selectable></selectables>.
            </title>
            <note role="application">
              If “IKEv2” is selected, then the corresponding IKEv2 selection must be made in FCS_IPSEC_EXT.1.13. 
              If “multifactor authentication filtering” is selected, then “verify” should be selected in FPF_MFA_EXT.1.2. 
            </note>
          </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">
              This requirement is included if “pre-shared keys that conform to RFC 8784” is selected in FCS_IPSEC_EXT.1.13, 
              or if “verify” is selected in FPF_MFA_EXT.1.2. If these selections are made in both FCS_IPSEC_EXT.1.13 and FPF_MFA_EXT.1.2, 
              the TSF must satisfy the appropriate FIA_PSK_EXT.1 selections for each. 
              <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 “pre-shared keys that conform to RFC 8784” is selected in FCS_IPSEC_EXT.1.13, a generated, bit-based PSK must be used. 
              <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_HOTP_EXT.1 must be included. 
              <h:br/><h:br/>
              If any selection including time-based one-time password is chosen, then FIA_TOTP_EXT.1 must be included. 
            </note>
            <aactivity>
              <TSS>The evaluator shall confirm that the TSS states which pre-shared key selections are supported for IKEv2 
                per FCS_IPSEC_EXT.1.13 and FPF_MFA_EXT.1.1.  <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/>
              </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. </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          
          
          <audit-event/>
        </f-component>
        
        <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>This SFR relates to use of pre-shared keys, which is behavior that only applies to the establishment of IPsec connections.</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>FIA_PSK_EXT.1 Pre-Shared Key Composition</dependencies>
          <f-element id="fia-psk-ext-2e1">
            <title>
              The TSF shall be able to 
              <selectables>
                <selectable>accept externally generated pre-shared keys</selectable>
              <selectable>
              generate 
              <selectables>
                <selectable>128</selectable>
                <selectable>256</selectable>
              </selectables> bit-based pre-shared keys via FCS_RBG_EXT.1. 
                
              </selectable>
              </selectables>
            </title>
            <note role="application">
              Generated PSKs are expected to be shared between components via an out of band mechanism. 
              
              <h:br/>This requirement is selection dependent on FIA_PSK_EXT.1.<h:br/>
            </note>
            <aactivity>
              <TSS>If "generate" is selected, the evaluator shall confirm that this process uses the RBG specified in FCS_RBG_EXT.1 
                and the output matches the size selected in FIA_PSK_EXT.2.1.<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/>
              </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/>
        </f-component>
        
        <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>This SFR relates to use of pre-shared keys, which is behavior that only applies to the establishment of IPsec connections.</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>FIA_PSK_EXT.1 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>
          </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><assignable>other supported special characters</assignable></selectable>
                <selectable 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 HMAC-
              <selectables>
                <selectable>SHA-256</selectable>
                <selectable>SHA-384</selectable>
                <selectable>SHA-512</selectable>
              </selectables>, with 
              <assignable>positive integer of 4096 or more</assignable> iterations, and output cryptographic key sizes 
              <selectables>
                <selectable>128</selectable>
                <selectable>256</selectable>
              </selectables> that meet the following: [NIST SP 800-132].
            </title>
          </f-element>
          <f-element id="fia-psk-ext-3e4">
            <title>
              The TSF shall not accept PSKs less than 
              <selectables>
                <selectable>a value settable by the administrator</selectable>
                <selectable><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 FCS_RBG_EXT.1 and with entropy of <assignable>value equal to or greater than 128</assignable> bits.
            </title>
          </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>provide a password strength meter</selectable>
                  <selectable>check the password against a denylist</selectable>
                  <selectable 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/>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/>For FIA_PSK_EXT.3.3, the ST author selects the parameters based on the PBKDF used by the TSF. 
              
              <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/>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/>This requirement is selection dependent on FIA_PSK_EXT.1. 
              </note>
            <aactivity>
              <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/>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/>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/>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/>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/>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/>The evaluator shall confirm that the minimum length is described.
                
                <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 FCS_RBG_EXT.1.
                
                <h:br/>[conditional] If password strength meter or password 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/></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, or 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/>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/>The evaluator shall confirm the operational guidance contains any necessary instructions for enabling and configuring password checking functionality. <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, 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>
          <audit-event/>
        </f-component>
        
       
     
        
        <ext-comp-def title="Time-Based One-Time Password Pre-Shared Keys" fam-id="FIA_TOTP_EXT">
          <fam-behavior>Components in this family define requirements for the use of Time-Based One-Time password authentication, including generation methods and usage restrictions.</fam-behavior>
        </ext-comp-def>
        <f-component cc-id="fia_totp_ext.1" id="fia-totp-ext-1" name="Time-Based One-Time Password Pre-Shared Keys">
          <depends on-sel="sel-psk5-ext-e2-verify"/>
          <consistency-rationale>This SFR relates to use of pre-shared keys, which is behavior that only applies to the establishment of IPsec connections.</consistency-rationale>
          <comp-lev>defines the implementation of TOTP.</comp-lev>
          <management>No specific management functions are identified.</management>
          <audit>There are no auditable events foreseen.
          </audit>
          <dependencies>FPT_STM.1 Reliable Time Stamps</dependencies>
          <f-element id="fia-totp-ext-1e1">
            <title>
              The TSF shall support Time-Based One-Time Password (TOTP) authentication in accordance with RFC 6238 
              to authenticate the user before establishing VPN connection. 
            </title>
          </f-element>
          <f-element id="fia-totp-ext-1e2">
            <title>
              The TSF shall generate a TOTP seed according to FCS_RBG_EXT.1 of 
              <selectables>
                <selectable>128</selectable>
                <selectable>256</selectable>
              </selectables> bits.
            </title>
          </f-element>
          <f-element id="fia-totp-ext-1e3">
            <title>The TSF shall generate a new TOTP seed for each client.
            </title>
          </f-element>
          <f-element id="fia-totp-ext-1e4">
            <title>
              The TSF shall use 
              <selectables>
                <selectable>SHA-1</selectable>
                <selectable>SHA-256</selectable>
                <selectable>SHA-384</selectable>
                <selectable>SHA-512</selectable>
              </selectables> with key sizes 
              <assignable>key size (in bits) used in HMAC</assignable> and message digest sizes 
              <selectables>
                <selectable>160</selectable>
                <selectable>256</selectable>
                <selectable>384</selectable>
                <selectable>512</selectable>
              </selectables> to derive a TOTP hash from the TOTP seed and current time provided by NTP.
            </title>
          </f-element>
          <f-element id="fia-totp-ext-1e5">
            <title>
              The TSF shall truncate the TOTP hash per FIA_TOTP_EXT.1.4 to create a TOTP of  
              <selectables>
                <selectable exclusive="yes">administrator configurable character length of at least 6</selectable>
                <selectable>preset character length of
                  <selectables onlyone="yes"> 
                    <selectable>6</selectable>
                    <selectable>7</selectable>
                    <selectable>8</selectable>
                    <selectable>9</selectable>
                    <selectable>10</selectable>
                  </selectables>
                </selectable>
              </selectables>.
            </title>
          </f-element>
          <f-element id="fia-totp-ext-1e6">
            <title>
              The TSF shall 
              <selectables>
                <selectable>throttle invalid requests to 
                  <selectables>
                    <selectable>administrator configurable value</selectable>
                    <selectable exclusive="yes"><assignable>value less than 10</assignable></selectable>
                  </selectables> per minute</selectable>
                <selectable>lock the associated account after 
                  <selectables>
                    <selectable>administrator configurable value</selectable>
                    <selectable exclusive="yes"><assignable>value less than 10</assignable></selectable>
                  </selectables> failed attempts until 
                  <selectables>
                    <selectable>an administrator unlocks the account</selectable>
                    <selectable exclusive="yes">a configurable time period</selectable>
                  </selectables>
                </selectable>
              </selectables>.
            </title>
          </f-element>
          <f-element id="fia-totp-ext-1e7">
            <title>
              The TSF shall set a time-step size of 
              <selectables>
                <selectable>a configurable value</selectable>
                <selectable exclusive="yes"><assignable>a value less than or equal to 30</assignable></selectable>
              </selectables> seconds.
            </title>
          </f-element>
          <f-element id="fia-totp-ext-1e8">
            <title>
              The TSF shall not validate a drift of more than 
              <selectables>
                <selectable>a configurable value</selectable>
                <selectable><assignable>a value less than or equal to 3</assignable></selectable>
              </selectables> time-steps.            
            </title>
          </f-element>
          <f-element id="fia-totp-ext-1e9">
            <title>
              The TSF shall 
              <selectables>
                <selectable>allow resynchronization by recording time drift within the limit of FIA_TOTP_EXT.1.8</selectable>
                <selectable exclusive="yes">not permit resynchronization</selectable>
              </selectables>.           
            </title>
         
            
            <note role="application">
              The selection FIA_TOTP_EXT.1.4 must be consistent with the key size specified for the size of the keys used in conjunction with the keyed-hash message authentication.
              <h:br/>In FIA_TOTP_EXT.1.5 the ST author may either provide a configurable character length of at least 6 or a preset size between 6 and 10.
              <h:br/>In FIA_TOTP_EXT.1.6 the ST author may select throttle requests, account lockout, or both.
              <h:br/>The TOTP seed and all derived values are considered secret keys for purposes of protection.
              </note>
            <aactivity>
              <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. 
                <h:br/>The evaluator shall confirm the TSS describes how the TOE complies with the RFC.
                <h:br/>The evaluator shall confirm the TSS describes how the TOTP seed is generated and ensure it aligns with FCS_RBG_EXT.1.
                <h:br/>The evaluator shall confirm the TSS describes how the TOTP seed is protected and ensure it aligns with the storage requirements of the Base-PP. 
                <h:br/>The evaluator shall confirm the TSS describes how a new TOTP seed is assigned for each client and how each client is uniquely identified.
                <h:br/> The evaluator shall confirm the TSS describes how the TOTP seed is conditioned into a TOTP hash and verify it matches the selection in FIA_TOTP_EXT.1.4.
                <h:br/>The evaluator shall confirm the TSS describes how the TOTP hash is truncated and verify it matches the selection in FIA_TOTP_EXT.1.5.
                <h:br/>The evaluator shall confirm the TSS describes how the TOE handles multiple incoming requests and verify it provides an anti-hammer mechanism that matches the selections made in FIA_TOTP_EXT.1.6.
                <h:br/>The evaluator shall confirm the TSS describes how the TOE sets a time-step value and verify it matches the selections in the ST.
                <h:br/>The evaluator shall confirm the TSS describes how the TOE handles drift and resynchronization and verify it matches the selections.  The evaluator shall ensure the TSS describes how time is kept and whether drift is calculated and recorded.  
                If drift is recorded, the evaluator shall ensure that the TSS describes how this is done.<h:br/>
              </TSS>
              <Guidance>
                The evaluator shall verify the operational guidance contains any configuration necessary to enable TOTP. 
                <h:br/>The evaluator shall verify the operational guidance contains all configuration guidance for setting any administrative value that is configurable in the FIA_TOTP_EXT.1 requirements.<h:br/> 
              </Guidance>
              <Tests>
                The evaluator shall configure the TOE to use a supported TOTP factor then:
                <testlist>
                  <test>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>
                  <test>Attempt to establish a connection using a factor from a different client. The test passes if the client fails to connect.
                  </test><test>Attempt multiple connections outside the limits set in FIA_TOTP_EXT.1.6 and verify the remediation is triggered.  The test passes if remediation is triggered as defined in the selections and assignments.
                  </test><test>Attempt to use a TOTP that is outside of the value allowed for resynchronization. The test passes if the client fails to connect.
                  </test>Attempt to connect with a valid TOTP, disconnect and attempt to authenticate again with the same TOTP.  The test passes if the client connects the first time and fails to connect the second time. If the TOTP generated is duplicated the test may be repeated.
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        
        
      </section>
    </sel-sfrs>


	<!-- Appendix A.2: Objective Requirements -->
    <obj-sfrs/>
<!-- 
   	    <section id="sob-audit-table" title="Auditable Events for Objective SFRs">
        	<audit-table table="objective">
  	     		<h:br/><h:b><ctr ctr-type="Table" pre="Table " id="atref-objective">: Auditable Events for Objective SFRs</ctr></h:b>
	  	</audit-table>
	    </section> -->
    
	
	<impl-dep-sfrs>
	    <section id="sib-audit-table" title="Auditable Events for Implementation-Based SFRs">
	      <audit-table table="feat-based" id="impl-audit-events">
	        <h:br/><h:b><ctr ctr-type="Table" pre="Table " id="atref-implbased">: Auditable Events for Implementation-Based SFRs</ctr></h:b>
	      </audit-table>
	  </section>
	  
	  <section title="TOE Access (FTA)" id="opt-headend">
	    This section contains requirements that may be optionally selected by the ST author for a “headend” VPN
	    gateway device. The requirements in the main body of this PP-Module are those determined necessary
	    for a multi-site VPN gateway appliance. Another application of a VPN appliance is in an architecture that
	    is intended to serve mobile users, by providing a secure means in which a remote client may access a
	    trusted network. These devices provide the capability to manage remote VPN clients (e.g., assigning IP
	    addresses, managing client sessions) that are not necessarily found in VPN gateways that are limited to
	    providing a secure communication path between trusted networks. Rather than mandate that all VPN
	    gateways provide this mobility aspect, the requirements below are specified as an option. What this
	    means is that multi-site VPN gateways do not have to provide these capabilities, but those devices wishing
	    to serve the mobility community should implement the optional requirements from this Appendix in
	    addition to all mandatory and selection-based requirements that apply to them.
	    
	    <f-component name="TSF-Initiated Termination (VPN Headend)" cc-id="fta_ssl.3" iteration="VPN" id="fta-ssl-3-vpn">
	      <consistency-rationale>This SFR refers to a specific condition under which a trusted channel is
	        terminated by the TSF. The Base-PP supports termination of trusted
	        channels and does not mandate this be done in any particular method.</consistency-rationale>
	      <f-element id="fta-ssl-3e1-vpn">
	        <title>
	          The TSF shall terminate <h:b>a remote VPN client</h:b> session after [<h:i>an Administrator-configurable time interval of session inactivity</h:i>].
	        </title>
	        <note role="application">
	          This requirement exists in the NDcPP; however, it is intended to address a remote
	          administrative interactive session. Here, the requirement applies to a VPN client
	          that has established an SA. After some configurable time period without any
	          activity, the connection between the VPN headend and client is terminated.
	        </note>
	        <aactivity>
	          <TSS>The evaluator shall examine the TSS to verify that it describes the ability of the TSF to terminate an inactive
	            VPN client session.<h:br/></TSS>
	          <Guidance>The evaluator shall examine the operational guidance to verify that it provides instructions to the
	            administrator on how to configure the time limit for termination of an active VPN client session.<h:br/>
	          </Guidance>
	          <Tests>
	            The evaluator shall perform the following tests:
	            <testlist>
	              <test>The evaluator shall follow the steps provided in the operational guidance to set the inactivity timer
	                for five minutes. The evaluator shall then connect a VPN client to the TOE, let it sit idle for four minutes
	                and fifty seconds, and observe that the VPN client is still connected at this time by performing an action
	                that would require VPN access. The evaluator shall then disconnect the client, reconnect it, wait five
	                minutes and ten seconds, attempt the same action, and observe that it does not succeed. The evaluator
	                shall then verify using audit log data that the VPN client session lasted for exactly five minutes.
	              </test>
	              <test>The evaluator shall configure the inactivity timer to ten minutes and repeat Test 1, adjusting the
	                waiting periods and expected audit log data accordingly.
	              </test>
	            </testlist>
	          </Tests>
	        </aactivity>
	      </f-element>
	      <audit-event/>
	    </f-component>
	    
	    <f-component name="TOE Session Establishment" cc-id="fta_tse.1" id="fta-tse-1">
	      <consistency-rationale>This SFR refers to a specific condition under which a trusted channel is
	        terminated by the TSF. The Base-PP supports termination of trusted
	        channels and does not mandate this be done in any particular method.</consistency-rationale>
	      <f-element id="fta-tse-1e1">
	        <title>
	          The TSF shall be able to deny session establishment <h:b>of a remote VPN client session</h:b> based
	          on [<h:i>location, time, day, <selectables>
	            <selectable exclusive="yes">no other attributes</selectable>
	            <selectable><assignable>other attributes</assignable></selectable></selectables></h:i>].
	        </title>
	        <note role="application">
	          For this PP-Module, “location” is defined as the client’s IP address.
	        </note>
	        <aactivity>
	          <TSS>The evaluator shall examine the TSS to verify that it describes the methods by which the TSF can deny the
	            establishment of an otherwise valid remote VPN client session (e.g., client credential is valid, not expired,
	            not revoked, etc.), including day, time, and IP address at a minimum.<h:br/></TSS>
	          <Guidance>The evaluator shall review the operational guidance to determine that it provides instructions for how to
	            enable an access restriction that will deny VPN client session establishment for each attribute described
	            in the TSS.<h:br/>
	          </Guidance>
	          <Tests>
	            The evaluator shall perform the following tests:
	            <testlist>
	              <test>The evaluator shall successfully connect a remote VPN client to the TOE and then disconnect it,
	                noting the IP address from which the client connected. The evaluator shall follow the steps described in
	                the operational guidance to prohibit that IP address from connecting, attempt to reconnect using the
	                same VPN client, and observe that it is not successful.
	              </test>
	              <test>The evaluator shall successfully connect a remote VPN client to the TOE and then disconnect it.
	                The evaluator shall follow the steps described in the operational guidance to prohibit the VPN client from
	                connecting on a certain day (whether this is a day of the week or specific calendar date), attempt to
	                reconnect using the same VPN client, and observe that it is not successful.
	              </test>
	              <test>The evaluator shall successfully connect a remote VPN client to the TOE and then disconnect it.
	                The evaluator shall follow the steps described in the operational guidance to prohibit the VPN client during
	                a range of times that includes the time period during which the test occurs, attempt to reconnect using
	                the same VPN client, and observe that it is not successful.
	              </test>
	              <!-- Note minor wording change to standardize formatting for conditional testing -->
	              <test>(conditional, the "other attributes" assignment has been selected and completed with one or more additional attributes) 
	                For any other attributes that are identified in FTA_TSE.1, the evaluator shall conduct a test
	                similar to the previous three tests to demonstrate the enforcement of each of these attributes. The evaluator
	                shall demonstrate a successful remote client VPN connection, configure the TSF to deny that connection
	                based on the attribute, and demonstrate that a subsequent connection attempt is unsuccessful.
	              </test>
	            </testlist>
	          </Tests>
	        </aactivity>
	      </f-element>
	      <audit-event/>
	    </f-component>
	    
	    
	    <ext-comp-def fam-id="FTA_VCM_EXT" title="VPN Client Management">
	      <fam-behavior>This family defines requirements for how the TSF interacts with VPN clients in its OE.
	      </fam-behavior>
	    </ext-comp-def>
	    
	    <f-component name="VPN Client Management" cc-id="fta_vcm_ext.1" id="fta-vcm-ext-1">
	      <consistency-rationale>This SFR refers to network addressing, which is outside the scope of the
	        Base-PP and therefore not prohibited by it.</consistency-rationale>
	      <comp-lev> requires the TSF to assign private (internal) IP addresses
	        to VPN clients that successfully establish IPsec connections with it.
	      </comp-lev>
	      <management>No specific management functions are identified.</management>
	      <audit>There are no auditable events foreseen.
	      </audit>
	      <dependencies>FCS_IPSEC_EXT.1 IPsec Protocol<h:br/>
	        [FTP_ITC.1 Inter-TSF Trusted Channel, or<h:br/>
	        FTP_TRP.1 Trusted Path]</dependencies>
	      <f-element id="fta-vcm-ext-1e1">
	        <title>The TSF shall assign a private IP address to a VPN client upon successful establishment of a security session.</title>
	        <note role="application">For this requirement, the private IP address is one that is internal to the trusted
	          network for which the TOE is the headend.</note>
	        <aactivity>
	          <TSS>The evaluator shall check the TSS to verify that it asserts the ability of the TSF to assign a private IP address
	            to a connected VPN client.
	            <h:br/></TSS>
	          <Guidance>There are no guidance EAs for this component.<h:br/></Guidance>
	          <Tests>The evaluator shall connect a remote VPN client to the TOE and record its IP address as well as the internal
	            IP address of the TOE. The evaluator shall verify that the two IP addresses belong to the same network.
	            The evaluator shall disconnect the remote VPN client and verify that the IP address of its underlying
	            platform is no longer part of the private network identified in the previous step.</Tests>
	        </aactivity>
	      </f-element>
	      <audit-event/>
	    </f-component>
	    
	    
	    
	  </section>
	</impl-dep-sfrs>
	
  </sec:Security_Requirements>
  
	
<!-- Appendix D: Implicity Satisfied 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/>
	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> -->
    All SFR dependencies in this PP-Module are addressed by appropriate SFRs, either from elsewhere in the PP-Module or inherited from the Base-PP. 
  <!-- 
  <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>Placeholder</h:b></h:td>
	<h:td>
	  	Placeholder
	</h:td>
	</h:tr>
    </h:table>  -->
  </appendix>	
	
<!-- Appendix E: Entropy Documentation and Assessment -->
<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-PP. As with other Base-PP requirements, the only
	additional requirement is that the entropy documentation also applies to the specific VPN gateway
	capabilities of the TOE in addition to the functionality required by the claimed Base-PP.		 
 </appendix>
  
  <bibliography>
    <cc-entry/>
    <entry id="bibNDcPP">
      <tag>NDcPP</tag>
      <description>
        <h:a href="https://www.niap-ccevs.org/Profile/Info.cfm?PPID=447&amp;id=447/">
			collaborative Protection Profile for Network Devices</h:a>, Version 2.2E, March 2020
      </description>
    </entry>

    <entry id="bibNDSD">
      <tag>ND-SD</tag>
      <description>
        <h:a href="https://www.niap-ccevs.org/Profile/Info.cfm?PPID=447&amp;id=447/">
          Supporting Document - Mandatory Technical Document - Evaluation Activities for Network Device cPP</h:a>, Version 2.2, December 2019
      </description>
    </entry>

	</bibliography>

	<!-- Appendix G: Acronyms -->
<!--	<acronyms/>   -->
</Module>
