<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="MDM Agent" target-products="MDM Agents" name="PP-Module for Mobile Device Management Agent">
  
  <PPReference>
    <ReferenceTable>
      <PPVersion>1.1</PPVersion>
      <PPAuthor>National Information Assurance Partnership</PPAuthor>
      <PPPubDate>2023-12-11</PPPubDate>
      <Keywords>Mobile Device Management; MDM; MDM Agents</Keywords>
    </ReferenceTable>
  </PPReference>
  <RevisionHistory>
    <entry>
      <version>1.0</version>
      <date>2019-03-01</date>
      <subject><!-- TODO: Add description of what we changed in this version --> Initial publication as
        PP-Module. </subject>
    </entry>
    <entry>
      <version>1.1</version>
      <date>2023-12-11</date>
      <subject>
        Added GPOS PP base and incorporated NIAP Technical Decisions.
      </subject>
    </entry>
  </RevisionHistory>
  <release-notes><h:h3>TDs Applied</h:h3></release-notes><sec:Introduction>
    <section id="overview" title="Overview"> The scope of the MDM Agent PP-Module is to describe the security functionality of a Mobile Device Management (MDM) Agent 
      in terms of [CC] and to define functional and assurance requirements for such products. 
      This PP-Module is intended for use with the following Base-PPs: <h:ul>
        <h:li>Protection Profile for Mobile Device Management (MDM PP), Version 4.0</h:li>
        <h:li>Protection Profile for Mobile Device Fundamentals (MDF PP), Version 3.3</h:li>
        <h:li>Protection Profile for General Purpose Operating Systems (GPOS PP), Version 4.3</h:li>
      </h:ul>
      <h:br/> These Base-PPs are valid because a MDM Agent is
      either a 3rd party application manufactured by the MDM Server vendor or is a
      native application deployed on a mobile device. </section>

      <tech-terms>
            <term full="Administrator">The person who is responsible for management activities, including setting
            the policy that is applied by the enterprise on the mobile device.</term>
	    <term abbr="API" full="Application Programming Interface"/>
	    <term abbr="BYOD" full="Bring Your Own Device"/>
	    <term abbr="COPE" full="Corporately Owned, Personally Enabled"/>
	    <term abbr="DN" full="Distinguished Name"/>
	    <term abbr="DTLS" full="Datagram Transport Layer Security"/>
            <term full="Enrolled State">The state in which a mobile device is managed by a policy from an MDM.</term>
	    <term abbr="GPOS" full="General Purpose Operating System"/>
	    <term abbr="HTTPS" full="HyperText Transfer Protocol Secure"/>
	    <term abbr="IP" full="Internet Protocol"/>
	    <term abbr="IPSec" full="Internet Protocol Security"/>
            <term full="Mobile Application Store" abbr="MAS">Mobile Application Store</term>
            <term full="Mobile Device Management" abbr="MDM">Mobile Device Management</term>
            <term full="Mobile Device User">The person who uses and is held responsible for a mobile device.</term>
	    <term abbr="MD" full="Mobile Device"/>
	    <term abbr="MDF" full="Mobile Device Fundamentals"/>
            <term full="Operating System">
	      Software which runs at the highest privilege level and can directly control
              hardware resources. Modern mobile devices typically have at least two primary
              operating systems: one which runs on the cellular baseband processor and one which
              runs on the application processor. The platform of the application processor handles
              most user interaction and provides the execution environment for apps. The platform of
              the cellular baseband processor handles communications with the cellular network and
              may control other peripherals. The term OS, without context, may be assumed to refer
              to the platform of the application</term>
	      <term abbr="RBG" full="Random Bit Generation"/>
	      <term abbr="SD" full="Supporting Document"/>
	      <term abbr="ST" full="Security Target"/>
	      <term abbr="TLS" full="Transport Layer Security"/>
              <term full="Unenrolled State">
		The state in which a mobile device is not managed by an MDM system.
	      </term>
              <term full="User">See Mobile Device User.</term>
	      <term abbr="VPN" full="Virtual Private Network"/>
	      <term abbr="WiFi" full="Wireless Fidelity"/>
      </tech-terms>

    <section id="targets" title="Compliant Targets of Evaluation"> 
      The MDM system
      consists of two primary components: the MDM Server software and the MDM Agent. This PP-Module specifically addresses the MDM Agent. 
      The MDM Agent establishes a secure connection back
      to the MDM Server, from which it receives policies to enforce on the mobile
      device. Optionally, the MDM Agent interacts with the Mobile Application
      Store (MAS) Server to download and install enterprise-hosted applications.<h:br/><h:br/> A
      compliant MDM Agent is installed on a mobile device as an application
      (supplied by the developer of the MDM Server software) or is part of the
      mobile device's OS.This PP-Module builds on either the MDF PP or the MDM PP. A TOE
      that claims conformance to this PP-Module must also claim conformance to one
      of those PPs as its Base-PP. A compliant TOE is obligated
      to implement the functionality required in the Base-PP along with the
      additional functionality defined in this PP-Module in order to mitigate the
      threats that are defined by this PP-Module.<h:br/><h:br/> This PP-Module shall build on the MDF PP if the 
      TOE is a native part of a mobile operating system. The TOE for
      this PP-Module combined with the MDF PP is the mobile
      device itself plus the MDM Agent. If the MDM Agent is part
      of the mobile device’s OS, the MDM Agent may present multiple interfaces for
      configuring the mobile device, such as a local interface and a remote interface. Agents
      conforming to this PP-Module must at least offer an interface with a trusted
      channel that serves as one piece of an MDM system. Conformant MDM Agents may also offer other interfaces, and the configuration aspects of
      these additional interfaces are in scope of this PP-Module.<h:br/><h:br/> 
      This PP-Module shall build on the MDM Server PP if the TOE is a third-party application that is provided with
      an MDM Server and installed on a mobile device by the user after acquiring
      the mobile device. The distributed TOE for this PP-Module
      combined with the MDM Server PP is the entire MDM environment, which includes both the MDM Server and the
        MDM Agent. Even though the mobile device itself is not part of the TOE, it is expected to be evaluated against the MDF PP so that
      its baseline security capabilities can be assumed to be present. 
      
      <section title="TOE Boundary" id="TOEboundary"> Figure 1 shows a high-level example of the PP-Module
        TOE boundary and its Operational Environment. As stated above, the MDM Agent may either be provided as part of the mobile device itself (shown in
        red) or distributed as a third-party application from the developer of the MDM Server software (shown in blue).<h:br/><h:br/>
        <figure entity="images/MDMagentoperatingenvironment.jpg" title="MDM Agent Operating Environment" id="toe"/><h:br/> 
        The MDM
        Agent must closely interact with or be part of the mobile device’s platform in order to
        establish policies and to perform queries about device status. The mobile device, in turn,
        has its own security requirements specified in the MDF PP. 
        </section>
    </section>
    <section title="Use Cases" id="usecase"> This PP-Module defines 4 use cases:<h:br/><h:br/>
      <usecases>
        <usecase title="Enterprise-owned device for general-purpose enterprise use" id="usecase1">
          <description> An Enterprise-owned device for general-purpose business use is commonly
            called Corporately Owned, Personally Enabled (COPE). This use case entails a significant
            degree of Enterprise control over configuration and software inventory. Enterprise
            administrators use an MDM product to establish policies on the mobile
            devices prior to user issuance. Users may use Internet connectivity to browse the web or
            access corporate mail or run Enterprise applications, but this connectivity may be under
            significant control of the Enterprise. The user may also be expected to store data and
            use applications for personal, non-enterprise use. The Enterprise administrator uses the
              MDM product to deploy security policies and query mobile device
            status. The MDM may issue commands for remediation actions.
          </description>
        </usecase>
        <usecase title="Enterprise-owned device for specialized, high-security use" id="usecase2">
          <description>An Enterprise-owned device with intentionally limited network connectivity,
            tightly controlled configuration, and limited software inventory is appropriate for
            specialized, high-security use cases. As in the previous use case, the MDM product is used 
            to establish such policies on mobile devices prior to
            issuance to users. The device may not be permitted connectivity to any external
            peripherals. It may only be able to communicate via its Wi-Fi or cellular radios with
            the Enterprise-run network, which may not even permit connectivity to the Internet. Use
            of the device may require compliance with usage policies that are more restrictive than
            those in any general-purpose use case, yet may mitigate risks to highly sensitive
            information. Based upon the operation environment and the acceptable risk level of the
            enterprise, those security functional requirements outlined in Section 5
            of this PP-Module along with the selections in the Use Case 2 template defined
            in <!-- <xref to="use-case"/> --> are sufficient for the high-security use case.
          </description>
        </usecase>
        <usecase title="Personally owned device for personal and enterprise use" id="usecase3">
          <description>A personally owned device, which is used, for both personal activities and
            enterprise data is commonly called Bring Your Own Device (BYOD). The device may be
            provisioned for access to enterprise resources after significant personal usage has
            occurred. Unlike in the enterprise-owned cases, the enterprise is limited in what
            security policies it can enforce because the user purchased the device primarily for
            personal use and is unlikely to accept policies that limit the functionality of the
            device.<h:br/><h:br/> However, because the Enterprise allows the user full (or
            nearly full) access to the Enterprise network, the Enterprise will require certain
            security policies, for example a password or screen lock policy, and health reporting,
            such as the integrity of the mobile device system software, before allowing access. The
            administrator of the MDM can establish remediation actions, such as
            wipe of the Enterprise data, for non-compliant devices. These controls could potentially
            be enforced by a separation mechanism built-in to the device itself to distinguish
            between enterprise and personal activities, or by a third-party application that
            provides access to enterprise resources and leverages security capabilities provided by
            the mobile device. Based upon the Operational Environment and the acceptable risk level
            of the enterprise, those security functional requirements outlined in Section 5 of this PP-Module 
            along with the selections in the Use Case 3
            template defined in <!-- <xref to="use-case"/> --> are sufficient for the secure
            implementation of this BYOD use case.</description>
        </usecase>
        <usecase title="Personally owned device for personal and limited enterprise use" id="usecase4">
          <description>A personally owned device may also be given access to limited enterprise
            services such as enterprise email. Because the user does not have full access to the
            enterprise or enterprise data, the enterprise may not need to enforce any security
            policies on the device. However, the enterprise may want secure email and web browsing
            with assurance that the services being provided to those clients by the mobile device
            are not compromised. Based upon the Operational Environment and the acceptable risk
            level of the enterprise, those security functional requirements outlined in Section 5 of this PP-Module are sufficient for the secure
            implementation of this BYOD use case.</description>
        </usecase>
      </usecases>
    </section>
  </sec:Introduction>
  <sec:Conformance_Claims boilerplate="no">
    <cclaims>
      <cclaim name="Conformance Statement">
        <description> This PP-Module inherits exact conformance as required from
          the specified Base-PP 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 PP-Module for Biometric enrollment and verification - for unlocking the device, Version 1.1</h:li>
            <h:li>PP-Module for Bluetooh, Version 1.0</h:li>
            <h:li>PP-Module for VPN Client, Version 2.4</h:li>
            <h:li>PP-Module for Wireless LAN Clients, Version 1.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, Release 5 [CC].
        </description>
      </cclaim>
      <cclaim name="PP Claim">
        <description>
          <h:p>
            This PP-Module does not claim conformance to any other Protection Profile.
          </h:p>
        </description>
      </cclaim>
      <cclaim name="Package Claim">
        <description>
        <h:ul>
        <h:li>This PP-Module is Functional Package for TLS Version 1.1 Conformant.</h:li>
        <h:li>This PP-Module is Functional Package for TLS Version 2.0 Conformant.</h:li>
        </h:ul>
        </description>
      </cclaim>
    </cclaims>
  </sec:Conformance_Claims>
  <sec:Security_Problem_Definition>
    <sec:Threats> The following threats are specific to MDM Agents, and represents an addition to those identified in the Base-PPs. 
      <!-- Note: Threats contained in both base-PPs should not be listed in the PP-Module (section 3.1 or 6), but objectives can still be mapped to them (section 4.3). 
        For these threats do not include a <description> or <consistency-rationale> section. If a <description> section is included then the threat is listed in Section 3.1. 
        If no description is listed, then threat is only listed in section 4.3 (not in 3.1 or 6) -->
      <threats>
        <threat name="T.MALICIOUS_APPS">
	  <description>
	    FILL IN
	  </description>
          <objective-refer ref="O.DATA_PROTECTION_TRANSIT">
            <rationale>The threat T.MALICIOUS_APPS is countered by O.DATA_PROTECTION_TRANSIT as this
              provides the capability to protect app loading/updates against malicious insertion
              from the network.</rationale>
          </objective-refer>
          <objective-refer ref="O.APPLY_POLICY">
            <rationale>The threat T.MALICIOUS_APPS is countered by O.APPLY_POLICY as this provides
              policy preventing loading of unapproved apps into the TOE.</rationale>
          </objective-refer>
        </threat>
        <threat name="T.BACKUP">
          <description> An attacker may try to target backups of data or credentials and exfiltrate
            data. Since the backup is stored on either a personal computer or end user’s backup
            repository, it’s not likely the enterprise would detect compromise.</description>
          <objective-refer ref="O.DATA_PROTECTION_TRANSIT">
            <rationale>The threat T.BACKUP is countered by O.DATA_PROTECTION_TRANSIT as this
              provides the capability to communicate using one (or more) standard protocols as a
              means to maintain the confidentiality of data that are transmitted between the Agent
              and other entities.</rationale>
          </objective-refer>
          <objective-refer ref="O.APPLY_POLICY">
            <rationale>The threat T.BACKUP is countered by O.APPLY_POLICY as this provides policy to
              enforce that backups be stored only in secure, protected locations.</rationale>
          </objective-refer>
        </threat>
        <threat name="T.NETWORK_ATTACK">
	  <description>FILL IN</description>
          <objective-refer ref="O.DATA_PROTECTION_TRANSIT">
            <rationale>The threat T.NETWORK_ATTACK is countered by O.DATA_PROTECTION_TRANSIT as this
              provides the capability to communicate using one (or more) standard protocols as a
              means to maintain the confidentiality of data that are transmitted between the Agent
              and other entities.</rationale>
          </objective-refer>
          <objective-refer ref="O.APPLY_POLICY">
            <rationale>The threat T.NETWORK_ATTACK is countered by O.APPLY_POLICY as this provides a
              secure configuration of the Agent to protect data that it processes.</rationale>
          </objective-refer>
          <objective-refer ref="OE.IT_ENTERPRISE">
            <rationale>The threat T.NETWORK_ATTACK is countered by OE.IT_ENTERPRISE by reducing the network exposure of the
              mobile device.</rationale>
          </objective-refer>
        </threat>
        <threat name="T.NETWORK_EAVESDROP">
	  <description>FILL IN</description>
          <objective-refer ref="O.DATA_PROTECTION_TRANSIT">
            <rationale>The threat T.NETWORK_EAVESDROP is countered by O.DATA_PROTECTION_TRANSIT as
              this provides the capability to communicate using one (or more) standard protocols as
              a means to maintain the confidentiality of data that are transmitted between the Agent
              and other entities.</rationale>
          </objective-refer>
          <objective-refer ref="O.APPLY_POLICY">
            <rationale>The threat T.NETWORK_EAVESDROP is countered by O.APPLY_POLICY as this
              provides a secure configuration of the Agent to protect data that it
              processes.</rationale>
          </objective-refer>
          <objective-refer ref="OE.IT_ENTERPRISE">
            <rationale>
              The threat T.NETWORK_EAVESDROP is countered by OE.IT_ENTERPRISE by reducing the network exposure of the
              mobile device.  
            </rationale>
          </objective-refer>
        </threat>
        <threat name="T.PHYSICAL_ACCESS">
	  <description> FILL IN </description>
          <objective-refer ref="O.ACCOUNTABILITY">
            <rationale>The threat T.PHYSICAL_ACCESS is countered by O.ACCOUNTABILITY as this
              provides the capability to log attempts by unauthorized personnel to access data, and
              to log any access to the data or the device, as well as changes to the device during
              the time when it is not under the control of an authorized user.</rationale>
          </objective-refer>
          <objective-refer ref="O.APPLY_POLICY">
            <rationale>The threat T.PHYSICAL_ACCESS is countered by O.APPLY_POLICY as this provides
              a secure configuration of the Agent to protect data that it processes.</rationale>
          </objective-refer>
          <objective-refer ref="O.STORAGE"> 
            <rationale>The threat T.PHYSICAL_ACCESS is countered by O.STORAGE as this provides the capability to encrypt all user and enterprise data and authentication keys to ensure the confidentiality of data that it stores.</rationale>
          </objective-refer>
        </threat>        
      </threats>
    </sec:Threats>
    <section id="Assumptions" title="Assumptions">
      <assumptions>
        <assumption name="A.CONNECTIVITY">
          <description>The TOE relies on network connectivity to carry out its
            management activities. The TOE will robustly handle instances when
            connectivity is unavailable or unreliable. </description>
          <objective-refer ref="OE.WIRELESS_NETWORK">
            <rationale>The Operational Environment objective OE.WIRELESS_NETWORK is realized through
              A.CONNECTIVITY. </rationale>
          </objective-refer>
        </assumption>
        <assumption name="A.PLATFORM">
          <description>The MDM Agent relies upon mobile platform and hardware evaluated against the
            MDF PP and assured to provide policy enforcement as well as cryptographic services and
            data protection. The mobile platform provides trusted updates and software integrity
            verification of the MDM Agent. </description>
          <objective-refer ref="OE.MOBILE_DEVICE_PLATFORM">
            <rationale>The Operational Environment objective OE.MOBILE_DEVICE_PLATFORM is realized
              through A.PLATFORM. </rationale>
          </objective-refer>
        </assumption>
        <assumption name="A.PROPER_ADMIN">
          <description>One or more competent, trusted personnel who are not careless, willfully
            negligent, or hostile, are assigned and authorized as the TOE
            Administrators, and do so using and abiding by guidance documentation. </description>
          <objective-refer ref="OE.DATA_PROPER_ADMIN">
            <rationale>The Operational Environment objective OE.DATA_PROPER_ADMIN is realized
              through A.PROPER_ADMIN. </rationale>
          </objective-refer>
        </assumption>
        <assumption name="A.PROPER_USER">
          <description> Mobile device users are not willfully negligent or hostile, and use the
            device within compliance of a reasonable Enterprise security policy. </description>
          <objective-refer ref="OE.DATA_PROPER_USER">
            <rationale>The Operational Environment objective OE.DATA_PROPER_USER is realized through
              A.PROPER_USER. </rationale>
          </objective-refer>
        </assumption>
      </assumptions>
    </section>
    <section id="securityPolicy" title="Organizational Security Policies">
      <OSPs>
        <OSP name="P.ACCOUNTABILITY">
          <description>Personnel operating the TOE shall be accountable for their
            actions within the TOE. </description>
          <objective-refer ref="O.ACCOUNTABILITY">
            <rationale>O.ACCOUNTABILITY provides logging of personnel actions in order to provide
              accountability of all personnel actions within the TOE. </rationale>
          </objective-refer>
        </OSP>
        <OSP name="P.ADMIN">
          <description>The configuration of the mobile device security functions must adhere to the
            Enterprise security policy. </description>
          <objective-refer ref="O.APPLY_POLICY">
            <rationale>The TOE adheres to the Enterprise security policy through
              the application of O.APPLY_POLICY. </rationale>
          </objective-refer>
        </OSP>
        <OSP name="P.DEVICE_ENROLL">
          <description>A mobile device must be enrolled for a specific user by the administrator of
            the MDM prior to being used in the Enterprise network by the user. </description>
          <objective-refer ref="O.APPLY_POLICY">
            <rationale>The TOE enrolls mobile devices for specific users with
              policy through the application of O.APPLY_POLICY. </rationale>
          </objective-refer>
        </OSP>
        <OSP name="P.NOTIFY">
          <description>The mobile user must immediately notify the administrator if a mobile device
            is lost or stolen so that the administrator may apply remediation actions via the MDM system. </description>
          <objective-refer ref="O.APPLY_POLICY">
            <rationale>The TOE provides the capability for the administrator to
              apply remediation actions via the MDM system through policy, which
              is applied through O.APPLY_POLICY. </rationale>
          </objective-refer>
        </OSP>
      </OSPs>
    </section>
    </sec:Security_Problem_Definition>
  <sec:Security_Objectives>
    <sec:Security_Objectives_for_the_TOE>
      <SOs>
        <SO name="O.ACCOUNTABILITY">
          <description>The TOE must provide logging facilities, which record
            management actions undertaken by its administrators. </description>
            <addressed-by>FAU_ALT_EXT.2</addressed-by>
          <rationale>The PP-Module includes FAU_ALT_EXT.2 to support this objective by requiring the TSF to generate alerts back to an MDM Server 
            when security-relevant events occur.</rationale>
            <addressed-by>FAU_GEN.1/AGENT</addressed-by>
          <rationale>The PP-Module includes FAU_GEN.1/AGENT to support this objective by defining the security-relevant events 
            for which the TSF must generate audit records.</rationale>
            <addressed-by>FAU_SEL.1/AGENT</addressed-by>
          <rationale>The PP-Module includes FAU_SEL.1/AGENT to support this objective by defining how the set of audited events can be configured.</rationale>
          <addressed-by>FAU_STG_EXT.3 (objective)</addressed-by>
          <rationale>The PP-Module includes FAU_STG_EXT.3 to support this objective by optionally requiring the TSF to use 
            platform-provided storage for the security-relevant audit data it generates.</rationale>
        </SO>
        <SO name="O.APPLY_POLICY">
          <description>The TOE must facilitate configuration and enforcement of
            enterprise security policies on mobile devices via interaction with the mobile OS and
            the MDM Server. This will include the initial enrollment of the device
            into management, through its entire lifecycle, including policy updates and its possible
            unenrollment from management services. </description>
          <addressed-by>FIA_ENR_EXT.2</addressed-by>
          <rationale>The PP-Module includes FIA_ENR_EXT.2 to support this objective by requiring the TSF to identify the 
            MDM Server so that the authenticity of policy updates can be determined.</rationale>
          <addressed-by>FMT_POL_EXT.2</addressed-by>
          <rationale>The PP-Module includes FMT_POL_EXT.2 to support this objective by requiring the TSF to only accept 
            policy data that can prove its authenticity with a digital certificate.</rationale>
          <addressed-by>FMT_SMF_EXT.4</addressed-by>
          <rationale>The PP-Module includes FMT_SMF_EXT.4 to support this objective by defining 
            the management functions the TSF must implement to support its own configuration.</rationale>
          <addressed-by>FMT_UNR_EXT.1</addressed-by>
          <rationale>The PP-Module includes FMT_UNR_EXT.1 to support this objective by preventing 
            a user-directed unenrollment operation that would allow for MDM policies to be ignored.</rationale>
          <addressed-by>FPT_NET_EXT.1 (objective)</addressed-by>
          <rationale>The PP-Module includes FPT_NET_EXT.1 to support this objective by optionally requiring the TSF to detect when a
            sustained communications outage with the MDM Server has occurred to indicate that the TSF may be deprived of updated policy data.</rationale>
        </SO>
        <SO name="O.DATA_PROTECTION_TRANSIT">
          <description>Data exchanged between the MDM Server and the MDM Agent must be protected from being monitored, accessed, or altered. </description>
          <addressed-by>FCS_DTLSC_EXT.1 (from TLS Package)</addressed-by>
          <rationale>The PP-Module includes FCS_DTLSC_EXT.1 from the TLS package by reference to support this objective because 
            DTLS is one of the protocols the PP-Module allows to protect data in transit.</rationale>
          <addressed-by>FCS_DTLSS_EXT.1 (from TLS Package)</addressed-by>
          <rationale>The PP-Module includes FCS_DTLSS_EXT.1 from the TLS package by reference to support this objective because 
            DTLS is one of the protocols the PP-Module allows to protect data in transit.</rationale>
          <addressed-by>FCS_TLS_EXT.1 (from TLS Package)</addressed-by>
          <rationale>The PP-Module includes FCS_TLS_EXT.1 from the TLS package by reference to support this objective because 
            it is mandatory to claim when the TLS Package applies so that the TSF’s usage of TLS is clearly defined.</rationale>
          <addressed-by>FCS_TLSC_EXT.1 (from TLS Package)</addressed-by>
          <rationale>The PP-Module includes FCS_TLSC_EXT.1 from the TLS package by reference to support this objective because 
            TLS is one of the protocols the PP-Module allows to protect data in transit.</rationale>
          <addressed-by>FCS_TLSC_EXT.2 (from TLS Package)</addressed-by>
          <rationale>The PP-Module includes FCS_TLSC_EXT.2 from the TLS package by reference to support this objective because 
            it requires TLS to be mutually-authenticated if claimed.</rationale>
          <addressed-by>FCS_TLSS_EXT.1 (from TLS Package)</addressed-by>
          <rationale>The PP-Module includes FCS_TLSS_EXT.1 from the TLS package by reference to support this objective because 
            TLS is one of the protocols the PP-Module allows to protect data in transit.</rationale>
          <addressed-by>FCS_TLSS_EXT.2 (from TLS Package)</addressed-by>
          <rationale>The PP-Module includes FCS_TLSS_EXT.2 from the TLS package by reference to support this objective because 
            it requires TLS to be mutually-authenticated if claimed.</rationale>
          <addressed-by>FTP_ITC_EXT.1/MDFCHANNEL (if MDF is Base-PP)</addressed-by>
          <rationale>The PP-Module includes FTP_ITC_EXT.1/MDFCHANNEL to support this objective because when the TOE is a mobile device, 
            it must have a way to ensure that MDM Server communications are protected.</rationale>
          <addressed-by>FTP_TRP.1/MDFENROLL (if MDF is Base-PP)</addressed-by>
          <rationale>The PP-Module includes FTP_ITC_EXT.1/MDFCHANNEL to support this objective because when the TOE is a mobile device, 
            it must have a way to ensure that MDM Server enrollment communications are protected.</rationale>
          <addressed-by>FPT_ITT.1(2) (if MDM is Base-PP)</addressed-by>
          <rationale>This SFR is selection-based in the MDM PP but is required when the TOE includes this PP-Module because it is triggered by the MDM Agent 
            being part of the TOE. This SFR supports the objective by defining the trusted channel the TSF must use to secure connectivity between the 
            MDM Server and MDM Agent components of the distributed TOE.</rationale>
          <addressed-by>FTP_ITC_EXT.1/OSCHANNEL (if GPOS is Base-PP)</addressed-by>
          <rationale>The PP-Module includes FTP_ITC_EXT.1/OSCHANNEL to support this objective because when the TOE runs on a general-purpose operating system, 
            the operating system must have a way to ensure that MDM Server communications are protected.</rationale>
          <addressed-by>FTP_TRP.1/OSENROLL (if GPOS is Base-PP)</addressed-by>
          <rationale>The PP-Module includes FTP_ITC_EXT.1/MDFCHANNEL to support this objective because when the TOE is a mobile device, 
            it must have a way to ensure that MDM Server enrollment communications are protected.</rationale>
          <addressed-by>FPT_NET_EXT.1 (objective)</addressed-by>
          <rationale>The PP-Module includes FPT_NET_EXT.1 to support this objective by optionally requiring the TSF to detect when a sustained 
            communications outage with the MDM Server has occurred as a possible indicator of communications issues.</rationale>
	  <!-- 
          <consistency-rationale> This objective extends the Base-PP’s O.COMMS
            objective by ensuring that the communications related to MDM Agents
            functionality are secured in the same manner as other sensitive data transmitted to/from
            the mobile device. </consistency-rationale>
             -->
        </SO>
        <SO name="O.STORAGE">
          <description> To address the issue of loss of confidentiality of user data in the event of
            loss of a device (T.PHYSICAL), conformant TOEs will use
            platform-provided key storage. The TOE is expected to protect its
            persistent secrets and private keys. </description>
            <addressed-by>FCS_STG_EXT.1/MDMKEYS (if MDM is Base-PP)</addressed-by>
          <rationale>The PP-Module includes FCS_STG_EXT.4 to support this objective because when the TOE is a mobile device, 
            ensures that MDM Agent key data is stored securely.</rationale>
          <addressed-by>FCS_STG_EXT.4 (if MDF is Base-PP)</addressed-by>
          <rationale>The PP-Module includes FCS_STG_EXT.1/MDMKEYS to support this objective because when the TOE is a MDM Server with MDM Agent capability, 
            ensures that MDM Agent key data is stored securely.</rationale>
          <addressed-by>FCS_STO_EXT.1 (if GPOS is Base-PP)</addressed-by>
          <rationale>The GPOS PP defines the FCS_STO_EXT.1 requirement for protection of sensitive data, which can include user data or keys used to
            protect user data.</rationale>
	    <!-- 
	    <consistency-rationale> This objective extends the Base-PP’s O.STORAGE
            objective by ensuring that the mobile device’s data-at-rest protection mechanisms can
            also be used to secure the MDM Agent and related data.
          </consistency-rationale>
          -->
        </SO>
      </SOs>
    </sec:Security_Objectives_for_the_TOE>
    <section id="objectivesEnvironment" title="Security Objectives for the Operational Environment">
      <SOEs>
        <SOE name="OE.DATA_PROPER_ADMIN">
          <description>TOE Administrators are trusted to follow and apply all administrator guidance
            in a trusted manner. </description>
          <consistency-rationale><!-- Note: different per base, so defined as a con-mod under each base--></consistency-rationale>
        </SOE>
        <SOE name="OE.DATA_PROPER_USER">
          <description>Users of the mobile device are trained to securely use the mobile device and
            apply all guidance in a trusted manner. </description>
          <consistency-rationale><!-- Note: different per base, so defined as a con-mod under each base--></consistency-rationale>
        </SOE>
        <SOE name="OE.IT_ENTERPRISE">
          <description>The Enterprise IT infrastructure provides security for a network that is
            available to the TOE and mobile devices that prevents unauthorized
            access. </description>
          <consistency-rationale><!-- Note: different per base, so defined as a con-mod under each base--></consistency-rationale>
        </SOE>
        <SOE name="OE.MOBILE_DEVICE_PLATFORM">
          <description>The MDM Agent relies upon the trustworthy mobile platform
            and hardware to provide policy enforcement as well as cryptographic services and data
            protection. The mobile platform provides trusted updates and software integrity
            verification of the MDM Agent. </description>
          <consistency-rationale><!-- Note: different per base, so defined as a con-mod under each base--></consistency-rationale>
        </SOE>
        <SOE name="OE.WIRELESS_NETWORK">
          <description>A wireless network will be available to the mobile devices. </description>
          <consistency-rationale><!-- Note: different per base, so defined as a con-mod under each base--></consistency-rationale>
        </SOE>
      </SOEs>
    </section>
    <section title="Security Objectives Rationale" id="rationale">
      <!-- Note: This section should remain empty and is populated from the rationale tags in the previous sections.  -->
    </section>
  </sec:Security_Objectives>
  <sec:Security_Requirements title="Security Requirements">
    <base-pp id="bpp-mdf">
      <git>
        <url>https://github.com/commoncriteria/mobile-device</url>
        <branch>release-3.3</branch>
      </git>
      <url>https://www.niap-ccevs.org/Profile/Info.cfm?PPID=468&amp;id=468</url>
    
      <!--   <app-unmod-sfrs> 
        The SFRs listed in this section are defined in the MDF PP and relevant to the secure operation of the MDM Agent. While testing the TOE, it is necessary to ensure these SFRs are tested specifically in conjunction with the MDM Agent portion of the TOE. The ST author may complete all selections and assignments in these SFRs without any additional restrictions.
        <h:ul>
          <h:li>FCS_CKM.1</h:li>
          <h:li>FCS_CKM.2(1)</h:li> 
          <h:li>FCS_CKM_EXT.4</h:li>
          <h:li>FCS_COP.1(*)</h:li>
          <h:li>FCS_RBG_EXT.1</h:li>
          <h:li>FCS_TLSC_EXT.1</h:li> 
          <h:li>FIA_X509_EXT.1</h:li>
          <h:li>FIA_X509_EXT.2</h:li>
          <h:li>FIA_X509_EXT.3</h:li>
          <h:li>FPT_TST_EXT.1</h:li>
          <h:li>FCS_DTLS_EXT.1</h:li>
          <h:li>FCS_HTTPS_EXT.1</h:li>
        </h:ul>
      </app-unmod-sfrs>-->
      <modified-sfrs/>
      <additional-sfrs>
        <sec:mdf_mod_fcs title="Cryptographic Support (FCS)">
          <ext-comp-def fam-id="FCS_STG_EXT" title="Trusted Channel">
            <mod-def> This family is defined in both the MDF and the MDM Base-PPs. This PP-Module augments the extended family by adding one additional component, FCS_STG_EXT.4. This new component and its impact on the extended family’s component leveling are shown below; reference the MDF or MDM PP for all other definitions for this family. </mod-def>
          </ext-comp-def>
          <f-component cc-id="fcs_stg_ext.4" name="Cryptographic Key Storage">
            <consistency-rationale> This SFR requires the MDM Agent to use
              functionality defined by the Base-PP in FCS_CKM_EXT.1. </consistency-rationale>
            <comp-lev> requires the TSF to define a specific location for its key
              storage.</comp-lev>
            <management>There are no management functions foreseen.</management>
            <audit>There are no auditable events foreseen.</audit>
            <dependencies>FCS_CKM.1 Cryptographic Key Generation</dependencies>
            <f-element>
              <title>The MDM Agent shall use the platform provided key storage for
                all persistent secret and private keys.</title>
              <note role="application">This requirement ensures that persistent secrets
                (credentials, secret keys, authentication tokens) and private keys are stored securely when not in use by
                the mobile platform. </note>
              <aactivity>
                <TSS> The evaluator will verify that the TSS lists each persistent
                  secret (credential, secret keys, authentication tokens) and private key needed to meet the requirements in
                  the ST. For each of these items, the evaluator will confirm that
                  the TSS lists for what purpose it is used, and, for each
                  platform listed as supported in the ST, how it is stored. The
                  evaluator shall verify that the Agent calls a platform-provided API to store
                  persistent secrets and private keys. </TSS>
              </aactivity>
            </f-element>
            <audit-event/>
          </f-component>
        </sec:mdf_mod_fcs>
        <sec:mdf_mod_ftp title="Trusted Path/Channels (FTP)">
          <f-component cc-id="ftp_itc_ext.1" name="Trusted Channel Communication" iteration="MDFCHANNEL">
            <consistency-rationale> The Base-PP defines FTP_ITC_EXT.1 to define the secure protocols used for trusted channel communications. This PP-Module iterates the SFR to specify a subset of these protocols that may be used for MDM Agent communications in particular. </consistency-rationale>
            <f-element id="mut-chan-type">
              <title><h:b>Refinement:</h:b> The TSF shall use <selectables linebreak="yes">
                  <selectable>mutually authenticated TLS client as defined in the Package for
                    Transport Layer Security</selectable>
                  <selectable>mutually authenticated DTLS client as defined in the Package for
                    Transport Layer Security</selectable>
                  <selectable>HTTPS</selectable>
                </selectables> to provide a communication channel between itself and another trusted
                IT product that is logically distinct from other communication channels, provides
                assured identification of its end points, protects channel data from disclosure, and
                detects modification of the channel data.</title>
              <note role="application"> The intent of this requirement is to protect the
                communications channel between MDM Server and Agent, post
                enrollment. FTP_TRP.1/MDFENROLL is to protect the communications
                channel between MDM Server and Agent during enrollment.
                <h:br/><h:br/> This requirement is to ensure that the transmission of any audit
                logs, mobile device information data (software version, hardware model, and
                application versions), and configuration data collected by the MDM
                Agent and sent from the MDM Agent to the MDM
                Server, when commanded, or at configurable intervals, is properly protected. This
                trusted channel also protects any commands and policies sent by the MDM Server to the MDM Agent. 
                Either the MDM Agent or the MDM Server is able to initiate the
                connection.
                <h:br/><h:br/> 
                This requirement is iterated from the MDF PP to indicate the protocols that the MDM Agent can use for a trusted
                channel. The mobile device is required to perform the mandated cryptographic
                protocols as in the Base-PP for communication channels mandated in
                the MDF PP. The ST author must select one of
                TLS, DTLS, or HTTPS in order to establish and maintain a trusted channel between the
                  MDM Agent and the MDM Server. Only TLS, DTLS,
                or HTTPS are acceptable for this trusted channel.<h:br/><h:br/> Since this
                requirement is only for the case when the PP-Module builds on MDF
                PP and in this case it is expected that the MDM Agent will be a
                native part of the mobile operating system, it is expected that the MDM Agent will utilize the mobile device's implementation of the
                selected protocols. HTTPS (FCS_HTTPS_EXT.1) and TLS (FCS_TLSC_EXT.1) are already
                mandatory for a MDF ST. If "TLS" or "DTLS" is selected the following selections from
                the TLS Functional Package must be made: <h:ul>
                  <h:li>FCS_TLS_EXT.1: <h:ul>
                      <h:li>either TLS or DTLS is selected depending on the selection made in
                        <xref to="mut-chan-type"/></h:li>
                      <h:li>client must be selected</h:li>
                    </h:ul>
                  </h:li>
                  <h:li>FCS_TLSC_EXT.1.1: <h:ul>
                      <h:li>The cipher suites selected must correspond with the algorithms and
                        hash functions allowed in FCS_COP.1 from the MDF PP.</h:li>
                      <h:li>mutual authentication must be selected</h:li>
                    </h:ul>
                  </h:li>
                </h:ul> Protocol, RBG, Certificate validation, algorithm, and similar services may
                be met with platform provided services. <h:br/><h:br/>
              </note>
            </f-element>
            <f-element id="mut-chan-init">
              <title><h:b>Refinement:</h:b> The TSF shall permit the TSF and the MDM
                Server and <selectables>
                  <selectable>MAS Server</selectable>
                  <selectable>no other IT entities</selectable>
                </selectables> to initiate communication via the trusted channel.</title>
              <note role="application"> For all other use cases, the mobile device initiates the
                communication; however, for MDM Agents, the MDM
                Server may also initiate communication.</note>
            </f-element>
            <f-element id="mut-chan-all-none">
              <title><h:b>Refinement:</h:b> The TSF shall initiate communication via the trusted channel for all
                communication between the MDM Agent and the MDM Server and <selectables>
                  <selectable>all communication between the MAS Server and the MDM
                    Agent</selectable>
                  <selectable>no other communication</selectable>
                </selectables>
              </title>
              <note role="application"> This element is iterated from the MDF PP;
                it is expected that the mobile device will initiate the trusted channel between the MDM
                Agent and the MDM Server for administrative communication and may initiate other
                trusted channels to other trusted IT entities for other uses.</note>
              <aactivity>
                <TSS>The evaluator shall examine the TSS to determine that the
                  methods of Agent-Server communication are indicated, along with how those
                  communications are protected. The evaluator shall also confirm that all protocols
                  listed in the TSS in support of remote TOE
                  administration are consistent with those specified in the requirement, and are
                  included in the requirements in the ST.<h:br/><h:br/>
                </TSS>
                <Guidance> The evaluator shall confirm that the operational guidance contains
                  instructions for configuring the communication channel between the MDM Agent and
                  the MDM Server and conditionally, the MAS Server for each supported
                  method.<h:br/><h:br/>
                </Guidance>
                <Tests>For each supported identifier type (excluding DNs), the evaluator shall
                  repeat the following tests:<h:br/><h:br/>
                  <testlist>
                    <test>The evaluators shall ensure that communications using each specified (in
                      the operational guidance) Agent-Server communication method is tested during
                      the course of the evaluation, setting up the connections as described in the
                      operational guidance and ensuring that communication is
                      successful.
                    </test>
                    <test>The evaluator shall ensure, for each method of Agent-Server communication,
                      the channel data is not sent in plaintext.
                    </test>
                    <test>The evaluator shall ensure, for each communication channel with the MDM
                      Server, that a protocol analyzer identifies the traffic as the protocol under
                      testing.
                    </test>
                  </testlist> 
                    <h:br/>
                    Further evaluation activities are associated with the specific protocols.<h:br/><h:br/>
                </Tests>
              </aactivity>
            </f-element>
          </f-component>
          <f-component cc-id="ftp_trp.1" name="Trusted Path (for Enrollment)" iteration="MDFENROLL">
            <consistency-rationale>This SFR uses the trusted channel protocols defined by the Base-PP in FTP_ITC_EXT.1 to facilitate a trusted path that the 
              MDM Agent can use to enroll the mobile device it runs on into
              management. Even though the Base-PP does not define FTP_TRP.1, the
              requirement was given an iteration label for consistency with the MDM
              Server requirement of the same name. </consistency-rationale>
            <f-element>
              <title><h:b>Refinement:</h:b> The TSF shall use <selectables linebreak="yes">
                  <selectable id="TRP_TLS_2">TLS client as defined in the Package for Transport Layer Security</selectable>
                  <selectable id="TRP_HTTPS_2">HTTPS</selectable>
                </selectables> to provide a trusted communication path between itself and another
                trusted IT product that is logically distinct from other communication paths and
                provides assured identification of its endpoints and protection of the communicated
                data from disclosure and detection of modification of the communicated data from
                [<h:i>modification, disclosure</h:i>]. </title>
            </f-element>
            <f-element>
              <title><h:b>Refinement:</h:b> The TSF shall permit MD users to initiate communication via the trusted path.
              </title>
            </f-element>
            <f-element>
              <title><h:b>Refinement:</h:b> The TSF shall require the use of the trusted path for [<h:i>[all MD user actions]</h:i>]. 
              </title>
              <note role="application"> This requirement ensures that authorized MD users initiate
                all communication with the TOE via a trusted path, and that all
                communications with the TOE by MD users is performed over this
                path. The purpose of this connection is for enrollment by the MD user.
                <h:br/><h:br/> The ST author chooses the mechanism or
                mechanisms supported by the TOE. The data passed in this trusted
                communication channel are encrypted as defined by the protocol selected.
                <h:br/><h:br/> Since this requirement is only for the case when the PP-Module builds on MDF PP and in this case it is expected that the
                  MDM Agent will be a native part of the mobile operating system,
                it is expected that the MDM Agent will utilize the mobile device's
                implementation of the selected protocols. HTTPS (FCS_HTTPS_EXT.1) and TLS
                (FCS_TLSC_EXT.1) are already mandatory for a MDF ST. If "TLS" or "DTLS" is selected
                the following selections from the TLS Functional Package must be made: <!-- TODO: What is their implementation of HTTPS evaluated against?? -->
                <!--  If "implement functionality to use HTTPS" is selected-->
                <h:ul>
                  <h:li>FCS_TLS_EXT.1: <h:ul>
                      <h:li>TLS must be selected</h:li>
                      <h:li>client must be selected</h:li>
                    </h:ul>
                  </h:li>
                  <h:li>FCS_TLSC_EXT.1.1: <h:ul>
                      <h:li>The cipher suites selected must correspond with the algorithms and
                        hash functions allowed in FCS_COP.1 from the MDF PP.</h:li>
                    </h:ul>
                  </h:li>
                </h:ul>
              </note>
              <aactivity>
                <TSS>The evaluator shall examine the TSS to determine that the
                  methods of remote enrollment are indicated, along with how those communications
                  are protected. The evaluator shall also confirm that all protocols listed in the
                    TSS in support of enrollment are consistent with those
                  specified in the requirement, and are included in the requirements in the ST.
                  <h:br/><h:br/>
                </TSS>
                <Guidance>The evaluator shall confirm that the operational guidance contains
                  instructions for establishing the enrollment sessions for each supported
                  method.<h:br/><h:br/>
                </Guidance>
                <Tests>For each MDM Agent/platform listed as supported in the
                    ST: <h:br/><h:br/>
                  <testlist>
                    <test>The evaluators shall ensure that communications using each specified (in
                      the operational guidance) enrollment method is tested during the course of the
                      evaluation, setting up the connections as described in the operational
                      guidance and ensuring that communication is successful.
                    </test>
                    <test>For each method of enrollment supported, the evaluator shall follow the
                      operational guidance to ensure that there is no available interface that can
                      be used by a remote user to establish enrollment sessions without invoking the
                      trusted path.
                    </test>
                    <test>The evaluator shall ensure, for each method enrollment, the channel data
                      is not sent in plaintext.
                    </test>
                  </testlist> 
                    <h:br/>
                    Further evaluation activities are associated with the specific protocols.<h:br/><h:br/>
                </Tests>
              </aactivity>
            </f-element>
          </f-component>
        </sec:mdf_mod_ftp>
      </additional-sfrs>
      <con-toe> When this PP-Module is used to extend the MDF PP, the TOE type for
        the overall TOE is still a mobile device. The TOE boundary is simply extended to include the
          MDM Agent application that runs on the mobile device.</con-toe>
      <con-sec-prob/>
      <con-obj/>
      <con-op-en/>
      <con-mod ref="T.BACKUP">This threat protects user data from unauthorized logical access. An
        attacker would attempt to exploit this threat by first exploiting the T.PHYSICAL, T.FLAWAPP,
        or T.PERSISTENT threats defined in the Base-PP against the mobile device
        as a whole, and then using the device itself as an attack vector against any backup data
        stored on the TOE.</con-mod>
      
      <con-mod ref="A.CONNECTIVITY">This assumption expects that networking services will be available for the TOE to use. 
        This is consistent with the Base-PP because the TOE is installed on a mobile device defined by the 
        Base-PP that provides networking services through various radios.</con-mod>
      <con-mod ref="A.PLATFORM">This assumption expects that the TOE’s underlying hardware platform is validated against the MDF PP. 
        This is consistent with the Base-PP by definition because the mobile device is within the TOE boundary and evaluated against the MDF PP.</con-mod>
      <con-mod ref="A.PROPER_ADMIN">	
        This assumption expects that the TOE administrator is trusted and competent in configuring the TSF. 
        This assumption is consistent with the A.CONFIG assumption in the Base-PP which expects the TSF to be configured correctly 
        regardless of the subject performing the configuration.</con-mod>
      <con-mod ref="A.PROPER_USER">	
        This assumption expects that the TOE user is not willfully negligent or hostile in using the TSF. 
        This assumption is consistent with the A.CONFIG assumption in the Base-PP which expects the TSF 
        to be configured correctly regardless of the subject performing the configuration as well as the 
        A.NOTIFY and A.PRECAUTION assumptions which define baseline expectations for the user’s level of responsibility.</con-mod>
      
      <con-mod ref="P.ACCOUNTABILITY">The Base-PP does not define any OSPs so any OSPs defined by the PP-Module 
        will not conflict with the Base-PP by definition.</con-mod>
      <con-mod ref="P.ADMIN">The Base-PP does not define any OSPs so any OSPs defined by the PP-Module 
        will not conflict with the Base-PP by definition.</con-mod>
      <con-mod ref="P.DEVICE_ENROLL">The Base-PP does not define any OSPs so any OSPs defined by the PP-Module 
        will not conflict with the Base-PP by definition.</con-mod>
      <con-mod ref="P.NOTIFY">The Base-PP does not define any OSPs so any OSPs defined by the PP-Module 
        will not conflict with the Base-PP by definition.</con-mod>
      
      
      <con-mod ref="O.ACCOUNTABILITY"> The Base-PP provides an objective,
        O.INTEGRITY, that ensures that the integrity of the mobile device is maintained. This
        objective assists in the implementation of O.INTEGRITY by providing records of
        administrative activity, which would include actions that could cause the integrity of the
        mobile device to be lost.</con-mod>
      <con-mod ref="O.APPLY_POLICY"> This objective supports the implementation of the O.CONFIG
        objective defined in the Base-PP by specifying an additional method by
        which the TSF may be configured.</con-mod>
      <con-mod ref="O.DATA_PROTECTION_TRANSIT"> This objective extends the Base-PP’s O.COMMS objective by ensuring that the communications related to MDM
        Agent functionality are secured in the same manner as other sensitive data transmitted
        to/from the mobile device.</con-mod>
      <con-mod ref="O.STORAGE"> This objective extends the Base-PP’s O.STORAGE
        objective by ensuring that the mobile device’s data-at-rest protection mechanisms can also
        be used to secure the MDM Agent and related data.</con-mod>
      <con-mod ref="OE.DATA_PROPER_ADMIN"> This objective extends the Base-PP’s
        OE.CONFIG objective by expecting that TOE administrators act appropriately when installing
        or configuring the MDM Agent.</con-mod>
      <con-mod ref="OE.DATA_PROPER_USER"> This objective extends the Base-PP’s
        OE.NOTIFY and OE.PRECAUTION objectives by setting reasonable expectations for user security
        behavior.</con-mod>
      <con-mod ref="OE.IT_ENTERPRISE"> This objective helps mitigate the T.EAVESDROP and T.NETWORK
        threats defined by the Base-PP by reducing the network exposure of the
        mobile device. This does not conflict with the Base-PP because the Base-PP does not set specific expectations for the level of security that the
        enterprise provides, but all use cases from the Base-PP set expectations
        that the mobile device is used for some enterprise purposes so it is reasonable to expect
        the enterprise have security controls in place to protect these functions. </con-mod>
      <con-mod ref="OE.MOBILE_DEVICE_PLATFORM"> This objective is suitable because the MDM Agent can reasonably expect the device it has been deployed on to be
        secure.</con-mod>
      <con-mod ref="OE.WIRELESS_NETWORK"> This objective is suitable because while the Base-PP does not associate any availability metrics with wireless
        communications, the mobile device will always provide the ability to access a wireless
        network.</con-mod>
      <con-mod ref="fau_alt_ext.2"> This SFR requires the MDM Agent to use a
        trusted channel defined by FTP_ITC_EXT.1 in the Base-PP to transmit data
        about its own behavior to the Operational Environment.</con-mod>
      <con-mod ref="fau_gen.1/AGENT"> The Base-PP defines FAU_GEN.1; this PP-Module defines a second iteration to use the same audit mechanism to
        generate audit records for the MDM Agent’s behavior. It may alternatively
        allow the TSF to generate its own audit trail, which does not impede the MDF from enforcing
        its own security functionality.</con-mod>
      <con-mod ref="fau_sel.1/AGENT"> The Base-PP defines FAU_SEL.1; this PP-Module defines a second iteration to use the same audit mechanism to select
        the auditable events to be generated by the MDM Agent. Note that the Base-PP does not mandate this requirement so it is possible that only the
          MDM Agent portion of the TOE may implement it. In this case, the SFR
        provides a selection for the MDM Agent to implement its own mechanism to
        perform this function rather than a platform-provided one.</con-mod>
      <con-mod ref="fia_enr_ext.2"> This SFR requires the MDM Agent to record data
        that it receives from the Operational Environment. It does not need to use any functionality
        defined in the Base-PP to do this, and doing this does not prevent the
        enforcement of any security requirements from the Base-PP. </con-mod>
      <con-mod ref="fmt_pol_ext.2"> This SFR requires the MDM Agent to use a
        digital signature algorithm to validate data that it receives from the Operational
        Environment. To do this, the MDM Agent will use the functionality defined
        by the Base-PP in FCS_COP.1/SIGN.</con-mod>
      <con-mod ref="fmt_smf_ext.4"> This SFR defines the ability of the MDM Agent
        to interact with the mobile device to execute the management functions defined by
        FMT_MOF_EXT.1 in the Base-PP. The Base-PP specifically
        indicates in FMT_MOF_EXT.1.2 that some management functions may be performed via
        MDM.</con-mod>
      <con-mod ref="fmt_unr_ext.1"> This SFR defines the functions performed by the MDM Agent when unenrolled from an MDM. The Base-PP defines 
        unenrollment actions in FMT_SMF_EXT.2, and goes on to note
        that these actions may be performed “perhaps via an MDM agent,” so this is
        expected behavior. </con-mod>
      <con-mod ref="fau_stg_ext.3"> This SFR defines the ability of the MDM Agent
        to store generated audit data in the audit storage provided by the mobile device. The Base-PP defines the capability for 
        audit storage in FAU_STG.1.</con-mod>
      <con-mod ref="fpt_net_ext.1"> This SFR defines the ability of the MDM Agent
        to maintain information about its last successful connection with the environmental MDM Server 
        (i.e., the last successful invocation of the trusted channel for
        that interface, as defined in FTP_ITC_EXT.1 of the Base-PP). It does not
        need to use any functionality defined in the Base-PP to do this, and doing
        this does not prevent the enforcement of any security requirements from the Base-PP.</con-mod>
    </base-pp>
    <base-pp id="bpp-mdm">
      <git>
        <url>https://github.com/commoncriteria/mdm</url>
        <branch>v4.0</branch>
      </git>
      <url>https://www.niap-ccevs.org/Profile/Info.cfm?PPID=428&amp;id=428</url>
    
      <!--   <app-unmod-sfrs> 
        The SFRs listed in this section are defined in the MDM PP and relevant to the secure operation of the MDM Agent. While testing the TOE, it is necessary to ensure these SFRs are tested specifically in conjunction with the MDM Agent portion of the TOE. The ST author may complete all selections and assignments in these SFRs without any additional restrictions.
        <h:ul>
          <h:li>FCS_CKM.1</h:li>
          <h:li>FCS_CKM.2</h:li>
          <h:li>FCS_CKM_EXT.4</h:li>
          <h:li>FCS_COP.1(*)</h:li>
          <h:li>FCS_RBG_EXT.1</h:li>
          <h:li>FIA_X509_EXT.1</h:li>
          <h:li>FIA_X509_EXT.2</h:li>
          <h:li>FIA_X509_EXT.3</h:li>
          <h:li>FIA_X509_EXT.4</h:li>
          <h:li>FCS_DTLS_EXT.1</h:li>
          <h:li>FCS_HTTPS_EXT.1</h:li>
        </h:ul>
      </app-unmod-sfrs>-->
      <modified-sfrs/>
      <additional-sfrs>
        <sec:mdm_mod_fcs title="Cryptographic Support (FCS)">
          <f-component cc-id="fcs_stg_ext.1" name="Cryptographic Key Storage" iteration="MDMKEYS">
            <!-- Removed notnew=y from f-component -->
            <consistency-rationale> The Base-PP requires the TOE to define a
              method of key storage. This PP-Module iterates it to specify the use
              of platform key storage for MDM Agents. </consistency-rationale>
            <f-element>
              <title><h:b>Refinement:</h:b> The MDM Agent shall use the [<h:i>platform-provided key storage</h:i>] for all persistent
                secret and private keys.</title>
              <note role="application"> This requirement ensures that persistent secrets
                (credentials, secret keys) and private keys are stored securely when not in use by
                the mobile platform.<h:br/><h:br/>
              </note>
              <aactivity>
                <TSS> The evaluator will verify that the TSS lists each persistent
                  secret (credential, secret key) and private key needed to meet the requirements in
                  the ST. For each of these items, the evaluator will confirm that
                  the TSS lists for what purpose it is used, and, for each
                  platform listed as supported in the ST, how it is stored. The
                  evaluator shall verify that the Agent calls a platform-provided API to store
                  persistent secrets and private keys.<h:br/><h:br/>
                </TSS>
              </aactivity>
            </f-element>
            <audit-event/>
          </f-component>
        </sec:mdm_mod_fcs>
<!--        <subsection id="fpt" title="Protection of the TSF (FPT)">
          <f-component name="Internal TOE TSF Data Transfer" id="FPT_ITT.1(2)">
            <consistency-rationale>The Base-PP defines this SFR for secure data
              transfer between distributed TOE components. This PP-Module makes
              this functionality mandatory (since the TOE will include both the <abbr linkend="MDM"
              /> Server and distributed MDM Agents) and also eliminates IPsec as a
              supported protocol since commercially-available MDM Agents do not
              use this to communicate with MDM Servers. </consistency-rationale>
            <f-element id="FPT_ITT.1.1(2)">
              <title><h:b>Refinement:</h:b> The TSF shall <selectables>
                  <selectable>invoke platform-provided functionality to use <selectables
                      linebreak="yes">
                      <selectable>mutually authenticated TLS</selectable>
                      <selectable>HTTPS</selectable>
                      <selectable>mutually authenticated DTLS</selectable>
                    </selectables>
                  </selectable>
                  <selectable>implement functionality to use <selectables linebreak="yes">
                      <selectable>mutually authenticated TLS as defined in the Package for Transport
                        Layer Security</selectable>
                      <selectable>HTTPS</selectable>
                      <selectable>mutually authenticated DTLS as defined in the Package for
                        Transport Layer Security</selectable>
                    </selectables></selectable>
                </selectables> to protect all data from [<h:i>disclosure, modification</h:i>] when it is
                transferred between separate parts of the TOE. </title>
              <note role="application"> The intent of this requirement is to protect the
                communications channel between MDM Server and Agent, post
                enrollment. <linkref linkend="FTP_TRP.1(2)"/> from the Base-PP is
                to protect the communications channel between MDM Server and Agent
                during enrollment. <h:br/><h:br/> This requirement is to ensure that the
                transmission of any audit logs, mobile device information data (software version,
                hardware model, and application versions), and configuration data collected by the
                  MDM Agent and sent from the MDM Agent to the
                  MDM Server, when commanded, or at configurable intervals, is
                properly protected. This trusted channel also protects any commands and policies
                sent by the MDM Server to the MDM Agent. Either
                the MDM Agent or the MDM Server is able to
                initiate the connection.<h:br/><h:br/> This requirement is iterated from the
                  Base-PP to indicate the protocols that the MDM agent can use for
                a trusted channel. Since this requirement is only for the case when the <abbr
                  linkend="PP-Module"/> builds on MDM PP and in this case it is
                expected that the MDM Agent will be a third party application
                provided by the MDM Server, it is acceptable for the <abbr
                  linkend="MDM"/> Agent to utilize the protocol implementations from the mobile
                device. If that is the case then "invoke platform-provided functionality" must be
                selected. If the MDM agent implements the protocol itself, then
                "implement functionality" must be selected.<h:br/><h:br/> If "HTTPS" is selected
                the appropriate selection-based SFRs from <appref linkend="sel-based"/> of <abbr
                  linkend="MDM"/> PP must be included in the ST, if not already
                present.<h:br/><h:br/> If "implement functionality to use mutually authenticated
                TLS as defined in the Package for Transport Layer Security" or "implement
                functionality to use mutually authenticated DTLS as defined in the Package for
                Transport Layer Security" is selected the TLS Functional Package must be included in
                the ST, with the following selections made: <h:ul>
                  <h:li>FCS_TLS_EXT.1: <h:ul>
                      <h:li>either TLS or DTLS is selected depending on the selection made in
                        FPT_ITT.1.1</h:li>
                      <h:li>either client or server is selected as appropriate</h:li>
                    </h:ul>
                  </h:li>
                  <h:li>FCS_TLSC_EXT.1.1 or FCS_TLSS_EXT.1.1 (as appropriate): <h:ul>
                      <h:li>The cipher suites selected must correspond with the algorithms and
                        hash functions allowed in FCS_COP.1 from the MDM PP.</h:li>
                      <h:li>mutual authentication must be selected</h:li>
                    </h:ul>
                  </h:li>
                </h:ul> Protocol, RBG, Certificate validation, algorithm, and similar services may
                be met with platform provided services. <h:br/><h:br/>
              </note>
              <aactivity>
                <TSS>The evaluator shall examine the TSS to determine that the
                  methods and protocols used to protect distributed TOE components
                  are described. The evaluator shall also confirm that all protocols listed in the
                    TSS in support of TOE administration are
                  consistent with those specified in the requirement, and are included in the
                  requirements in the ST.<h:br/><h:br/> If "invoke
                  platform-provided functionality" is selected, the evaluator shall examine the
                    TSS of the MDM Server's ST
                  to verify that it describes (for each supported platform) how this functionality
                  is invoked (it should be noted that this may be through a mechanism that is not
                  implemented by the MDM Server; nonetheless, that mechanism will
                  be identified in the TSS as part of this evaluation
                  activity).<h:br/><h:br/>
                </TSS>
                <Guidance>The evaluator shall confirm that the operational guidance contains
                  instructions for establishing the communication paths for each supported
                  method.<h:br/><h:br/>
                </Guidance>
                <Tests>
                  <testlist>
                    <test>The evaluators shall ensure that communications using each specified (in
                      the operational guidance) communication method is tested during the course of
                      the evaluation, setting up the connections as described in the operational
                      guidance and ensuring that communication is successful.
                    </test>
                    <test>The evaluator shall ensure, for each method of communication, the channel
                      data is not sent in plaintext.
                    </test>
                  </testlist> 
                    <h:br/>
                    Further evaluation activities are associated with the specific protocols.<h:br/><h:br/>
                </Tests>
              </aactivity>
            </f-element>
          </f-component>
       </subsection>
-->
      </additional-sfrs>
      <con-toe> When this PP-Module is used to extend the MDM
        PP, the TOE type for the overall TOE is still mobile device management. The TOE boundary is
        simply extended to include the MDM Agent(s) that reside on individual
        mobile devices and support the management functionality that the MDM
        Server component implements.</con-toe>
      <con-sec-prob/>
      <con-obj/>
      <con-op-en/>
      <con-mod ref="T.BACKUP"> This threat protects user data from unauthorized logical access. If
        the backup data is stored outside the MDM or the mobile device that it protects, then there
        is no conflict with the MDM PP since it is a different security boundary. If the backup data
        is stored either on the MDM or on the protected device, an attacker would attempt to exploit
        this threat by first exploiting any of the threats that the MDM PP defines
        (T.MALICIOUS_APPS, T.NETWORK_ATTACK, T.NETWORK_EAVESDROP, T.PHYSICAL_ACCESS) depending on
        where and how the backup data is stored, and then use successful exploitation of one of
        these threats to attempt to access the backup data itself.</con-mod>
      
      <con-mod ref="A.CONNECTIVITY">This assumption expects that networking services will be available for the TOE to use. 
        This is consistent with the Base-PP because the portion of the TOE defined by the Base-PP runs on a 
        general-purpose operating system or specialized network appliance. 
        The Base-PP does not make any assumptions about the environmental functionality that this PP-Module relies on, 
        so there is nothing in this PP-Module that would contradict it.</con-mod>
      <con-mod ref="A.PLATFORM">This assumption expects that the TOE’s underlying hardware platform is validated against the MDF PP. 
        This is consistent with the Base-PP because the portion of the TOE defined by the Base-PP runs on a general-purpose operating system or 
        specialized network appliance. The Base-PP does not make any assumptions about the environmental functionality that this PP-Module relies on, 
        so there is nothing in this PP-Module that would contradict it.</con-mod>
      <con-mod ref="A.PROPER_ADMIN">	
        The Base-PP defines an A.PROPER_ADMIN assumption that is identical to the one defined by the PP-Module. 
        The PP-Module just extends it to the entire TOE boundary rather than just the MDM Server.</con-mod>
      <con-mod ref="A.PROPER_USER">	
        The Base-PP defines an A.PROPER_USER assumption that is identical to the one defined by the PP-Module. 
        The PP-Module just extends it to the entire TOE boundary rather than just the MDM Server.</con-mod>
      
      <con-mod ref="P.ACCOUNTABILITY">The Base-PP defines a P.ACCOUNTABILITY OSP that is identical to the one defined by the PP-Module. 
        The PP-Module just extends it to the entire TOE boundary rather than just the MDM Server.</con-mod>
      <con-mod ref="P.ADMIN">The Base-PP defines a P.ADMIN OSP that is identical to the one defined by the PP-Module. 
        The PP-Module just extends it to the entire TOE boundary rather than just the MDM Server.</con-mod>
      <con-mod ref="P.DEVICE_ENROLL">	
        The Base-PP defines a P.DEVICE_ENROLL OSP that is identical to the one defined by the PP-Module. 
        The PP-Module just extends it to the entire TOE boundary rather than just the MDM Server.</con-mod>
      <con-mod ref="P.NOTIFY">The Base-PP defines a P.NOTIFY OSP that is identical to the one defined by the PP-Module. 
        The PP-Module just extends it to the entire TOE boundary rather than just the MDM Server.</con-mod>
      
      
      <con-mod ref="O.ACCOUNTABILITY"> The MDM PP contains this same objective with the same
        purpose.</con-mod>
      <con-mod ref="O.APPLY_POLICY"> The MDM PP contains this same objective with the same purpose. </con-mod>
      <con-mod ref="O.DATA_PROTECTION_TRANSIT"> The MDM PP contains this same objective with the same
        purpose. </con-mod>
      <con-mod ref="O.STORAGE"> This objective requires the MDM Agent to use platform key storage to
        protect secret and private key data. The MDM PP defines a requirement for key storage
        (FCS_STG_EXT.1) that allows the MDM Agent to satisfy this objective. </con-mod>
      <con-mod ref="OE.DATA_PROPER_ADMIN"> The MDM PP contains this same objective with the same
        purpose. </con-mod>
      <con-mod ref="OE.DATA_PROPER_USER"> The MDM PP contains this same objective with the same
        purpose. </con-mod>
      <con-mod ref="OE.IT_ENTERPRISE"> The MDM PP contains this same objective with the same purpose. </con-mod>
      <con-mod ref="OE.MOBILE_DEVICE_PLATFORM"> The MDM PP contains this same objective with the same
        purpose. </con-mod>
      <con-mod ref="OE.WIRELESS_NETWORK"> The MDM PP contains this same objective with the same
        purpose. </con-mod>
      <con-mod ref="fau_alt_ext.2"> This SFR provides the alerts that are received by the 
        MDM Server as per FAU_ALT_EXT.1 in the Base-PP.</con-mod>
      <con-mod ref="fau_gen.1/AGENT"> This SFR requires the MDM Agent to generate audit records of its
        behavior. The mechanism by which it does this is not relevant to the MDM Server portion of
        the TOE as they reside on different platforms.</con-mod>
      <con-mod ref="fau_sel.1/AGENT"> The Base-PP defines FAU_SEL.1 as an optional SFR
        to limit the audit events that are generated by the TSF. This PP-Module
        adds another iteration that requires the MDM Agent to include this
        capability by default.</con-mod>
      <con-mod ref="fia_enr_ext.2"> This SFR provides information during agent enrollment that is
        required by the MDM Server to meet the FIA_ENR_EXT.1 requirement defined
        by the Base-PP.</con-mod>
      <con-mod ref="fmt_pol_ext.2"> The Base-PP defines an SFR (FMT_POL_EXT.1) that
        requires the MDM Server to provide digitally signed policies and policy
        updates to the MDM Agent. FMT_POL_EXT.2 completes this transaction by
        requiring the MDM Agent to accept only signed policies and policy
        updates.</con-mod>
      <con-mod ref="fmt_smf_ext.4"> This SFR requires the MDM Agent to interact
        with the underlying mobile device platform to enforce management functions that are
        configured by the MDM Server (FMT_SMF.1(1) in the Base-PP).</con-mod>
      <con-mod ref="fmt_unr_ext.1"> This SFR requires the TSF to define its behavior upon
        unenrollment from management. Unenrollment from management is a management function that is
        specified in the Base-PP.</con-mod>
      <con-mod ref="fau_stg_ext.3"> This SFR defines the ability of the MDM Agent
        to store generated audit data in the audit storage provided by the mobile device. This does
        not impact the Base-PP since it resides on a different platform from the
          MDM Agent. </con-mod>
      <con-mod ref="fpt_net_ext.1"> This SFR defines the ability of the MDM Agent
        to maintain information about its last successful connection with the environmental 
          MDM Server (i.e., the last successful invocation of the trusted channel for
        that interface, as defined in FPT_ITT.1(2) of the Base-PP). It does not
        otherwise impact the Base-PP since it describes behavior that occurs local
        to the MDM Agent during a period where it is not interacting with the
          MDM Server. </con-mod>
    </base-pp>
    <man-sfrs>
      
      
      <!-- Audit table for mandatory requirements  -->
      <sec:ss-audit-table title="Auditable Events for Mandatory SFRs">
        <h:p>
          The auditable events specified in this FP are included in an ST 
          if the incorporating PP, cPP, or PP-Module supports audit event reporting through FAU_GEN.1,
          and if all other criteria in the incorporating PP or PP-Module are met.
        </h:p>
        <audit-table id="at-man-audit" table="mandatory">
          <h:div class="table-caption"><ctr ctr-type="Table" id="atref-mandatory">: Auditable Events for Mandatory SFRs</ctr></h:div>
        </audit-table>
      </sec:ss-audit-table>
      
      <sec:man_fau title="Security Audit (FAU)">
        <ext-comp-def fam-id="FAU_ALT_EXT" title="MDM Alerts">
          <mod-def> This family is defined in the MDM
            Base-PP. This PP-Module augments the extended family
            by adding one additional component, FAU_ALT_EXT.2. This new component and its impact on
            the extended family’s component leveling are shown below; reference the 
              MDM PP for all other definitions for this family. </mod-def>
        </ext-comp-def>
        <f-component cc-id="fau_alt_ext.2" name="Agent Alerts">
          <consistency-rationale/>
          <comp-lev>requires the TSF to define when and how an MDM Agent generates
            alerts and transmits them to an MDM Server based on its
            activity.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT: <h:ul>
              <h:li>Ability to configure the specific events that result in generation of
                alerts.</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>Minimal: Success/failure of sending alert. </h:li>
            </h:ul>
          </audit>
          <dependencies> FAU_ALT_EXT.1 Server Alerts<h:br/> [FPT_ITT.1 Basic Internal TSF Data
            Transfer Protection; or<h:br/> FTP_ITC.1 Inter-TSF Trusted Channel] </dependencies>
          <f-element>
            <title>The MDM Agent shall provide an alert via the trusted channel to
              the MDM Server in the event of any of the following audit events: <h:ul>
                <h:li>successful application of policies to a mobile device,</h:li>
                <h:li>
                  <selectables>
                    <selectable>receiving</selectable>
                    <selectable>generating</selectable>
                  </selectables> periodic reachability events, </h:li>
                <h:li><selectables linebreak="yes">
                  <selectable>change in enrollment state</selectable>
                  <selectable>failure to install an application from the MAS Server</selectable>
                  <selectable>failure to update an application from the MAS Server</selectable>
                  <selectable><assignable>other events</assignable></selectable>
                  <selectable>no other events</selectable>
                </selectables>.</h:li>
              </h:ul>
            </title>
            <note role="application"> The trusted channel is defined in FPT_ITT.1(2) of the Base-PP if the TOE claims the MDM PP and 
              FTP_ITC_EXT.1/MDFCHANNEL in this PP-Module if the TOE claims the 
              MDF PP. “Alert” in this requirement could be as simple as an audit record or
              a notification. If any prior alerts exist in the queue, per FAU_ALT_EXT.2.2, those
              alerts must be sent when the trusted channel is available.<h:br/><h:br/> This
              requirement is to ensure that the MDM Agent must notify the 
                MDM Server whenever one of the events listed above occurs. Lack of
              receipt of a successful policy installation indicates the failure of the policy
              installation.<h:br/><h:br/> The periodic reachability events ensure that either
              the MDM Agent responds to MDM Server polls to
              determine device network reachability, or the MDM Agent can be
              configured to regularly notify the Server that it is reachable. The ST
              author must select “receiving” in the first case and “generating” in the second.
              The corresponding requirement for the MDM Server is FAU_NET_EXT.1 in
              the MDM
              PP.<h:br/><h:br/> The ST author must either
              assign further events or select the “no other events” option. Note that alerts may
              take time to reach the MDM Server, or not arrive, due to poor
              connectivity. <h:br/><h:br/>
            </note>            
          </f-element>
          <f-element>
            <title>The MDM Agent shall queue alerts if the trusted channel is not available.</title>
            <note role="application">If the trusted channel is not available, alerts must be queued. When the trusted channel becomes available, the queued alerts must be sent.<h:br/><h:br/>
            </note>
            <aactivity>
              <TSS>                  
                  The evaluator shall examine the TSS and verify that it describes how the alerts are implemented.<h:br/><h:br/> 
                  The evaluator shall examine the TSS and verify that it describes how the candidate policy updates are obtained and the actions that take place for successful (policy update installed) and unsuccessful (policy update not installed) cases. The software components that are performing the processing must also be identified in the TSS and verified by the evaluator.<h:br/><h:br/> 
                  The evaluator also ensures that the TSS describes how reachability events are implemented, and if configurable are selected in FMT_SMF_EXT.4.2. The evaluator verifies that this description clearly indicates who (MDM Agent or MDM Server) initiates reachability events.<h:br/><h:br/> 
                  The evaluator shall ensure that the TSS describes under what circumstances, if any, the alert may not be generated (e.g., the device is powered off or disconnected from the trusted channel), how alerts are queued, and the maximum amount of storage for queued messages.<h:br/><h:br/>
              </TSS>
              <Tests>
                  <testlist>
                      <test>The evaluator shall perform a policy update from the test environment MDM server. The evaluator shall verify the MDM Agent accepts the update, makes the configured changes, and reports the success of the policy update back to the MDM Server.</test>
                      <test>The evaluator shall perform each of the actions listed in FAU_ALT_EXT.2.1 and verify that the alert does in fact reach the MDM Server.</test>
                      <test>The evaluator shall configure the MDM Agent to perform a network reachability test, both with and without such connectivity and ensure that results reflect each.</test>
                      <test>The evaluator shall remove network connectivity from the MDM Agent and generate an alert/event as defined in FAU_ALT_EXT.2.1. The evaluator shall restore network connectivity to the MDM Agent and verify that the alert generated while the TOE was disconnected is sent by the MDM Agent upon re-establishment of the connectivity.</test>
                  </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>Success or failure of sending alert.</audit-event-descr>
            <audit-event-info>No additional information.</audit-event-info>
          </audit-event>
        </f-component>
        <f-component cc-id="fau_gen.1" name="Audit Data Generation" iteration="AGENT">
          <consistency-rationale/>
          <f-element>
            <title><h:b>Refinement:</h:b> The MDM Agent shall <selectables>
                <selectable>invoke platform-provided functionality</selectable>
                <selectable>implement functionality</selectable>
              </selectables> to generate an MDM Agent audit record of the
              following auditable events: <h:ol type="a">
                <h:li>Startup and shutdown of the MDM Agent;</h:li>
                <h:li>All auditable events for [<h:i>not specified</h:i>] level of audit; and</h:li>
                <h:li>[<h:i>MDM policy updated, any modification commanded by the 
                  MDM Server, specifically defined auditable events listed in 
                  Table 2, and <selectables>
                  <selectable><assignable>other events</assignable></selectable>
                  <selectable>no other events</selectable>
                </selectables></h:i>].</h:li>
              </h:ol>
            </title>
            <note role="application"> This requirement outlines the information to be included in
              the MDM Agent’s audit records. The ST author can
              include other auditable events directly in the Auditable Events table in
              FAU_GEN.1.1/AGENT; they are not limited to the list presented.<h:br/><h:br/>
              MDM policy update must minimally indicate that an update to policy
              occurred. The event record need not contain the differences between the prior policy
              and the new policy; optionally, the specific change(s) to policy that were included in
              that update may be detailed. All updates to policy should trigger this alert.
              Modifications commanded by the MDM Server are those commands listed
              in FMT_SMF.1.1.<h:br/><h:br/> The selection for the FMT_UNR_EXT.1 auditable event
              in the Auditable Events table corresponds to the selection in FMT_UNR_EXT.1. If “apply
              remediation actions” is selected in FMT_UNR_EXT.1, then the ST
              author selects “attempt to unenroll” in FAU_GEN.1.1/AGENT Auditable Events table for
              FMT_UNR_EXT.1; otherwise, "none" is selected.
              <!-- 
              <h:br/><h:br/>
              <h:b><ctr id="audit" ctr-type="Table"> Auditable Events</ctr></h:b>
              <h:table style="margin-top:0px;white-space:10px">
                <h:TR>
                  <h:TH>Requirement</h:TH>
                  <h:TH>Auditable Events</h:TH>
                  <h:TH>Additional Audit Record Contents</h:TH>
                </h:TR>
                <h:TR>
                  <h:TD>FAU_ALT_EXT.2</h:TD>
                  <h:TD>Success/failure of sending alert.</h:TD>
                  <h:TD>No additional information.</h:TD>
                </h:TR>
                <h:TR>
                  <h:TD>FAU_GEN.1/AGENT</h:TD>
                  <h:TD>None.</h:TD>
                  <h:TD>N/A</h:TD>
                </h:TR>
                <h:TR>
                  <h:TD>FAU_SEL.1/AGENT</h:TD>
                  <h:TD>All modifications to the audit configuration that occur while the audit
                    collection functions are operating.</h:TD>
                  <h:TD>No additional information.</h:TD>
                </h:TR>
                <h:TR>
                  <h:TD>FCS_STG_EXT.4/<h:br/> FCS_STG_EXT.1/MDMKEYS</h:TD>
                  <h:TD>None.</h:TD>
                  <h:TD/>
                </h:TR>
                <h:TR>
                  <h:TD rowspan="3">FCS_TLSC_EXT.1</h:TD>
                  <h:TD>Failure to establish a TLS session.</h:TD><h:TD>Reason for failure.</h:TD></h:TR>
                <h:TR><h:TD>Failure to verify presented identifier.</h:TD><h:TD>Presented identifier and reference identifier.</h:TD></h:TR>
                <h:TR><h:TD>Establishment/termination of a TLS session.</h:TD><h:TD>Non-TOE endpoint of connection.</h:TD>
                </h:TR>
                <h:TR>
                  <h:TD>FIA_ENR_EXT.2</h:TD>
                  <h:TD>Enrollment in management.</h:TD>
                  <h:TD>Reference identifier of MDM Server.</h:TD>
                </h:TR>
                <h:TR>
                  <h:TD>FMT_POL_EXT.2</h:TD>
                  <h:TD>Failure of policy validation.</h:TD>
                  <h:TD>Reason for failure of validation.</h:TD>
                </h:TR>
                <h:TR>
                  <h:TD>FMT_SMF_EXT.4</h:TD>
                  <h:TD>Outcome (Success/failure) of function.</h:TD>
                  <h:TD>No additional information.</h:TD>
                </h:TR>
                <h:TR>
                  <h:TD>FMT_UNR_EXT.1.1</h:TD>
                  <h:TD>
                    <selectables>
                      <selectable>Attempt to unenroll</selectable>
                      <selectable>none</selectable>
                    </selectables>
                  </h:TD>
                  <h:TD>No additional information.</h:TD>
                </h:TR>
                <h:TR>
                  <h:TD>FTP_ITC_EXT.1/MDFCHANNEL</h:TD>
                  <h:TD>Initiation and termination of trusted channel.</h:TD>
                  <h:TD>Trusted channel protocol. Non-TOE endpoint of connection.</h:TD>
                </h:TR>
              </h:table>
              <h:br/><h:br/>
               -->
            </note>            
          </f-element>
          <f-element>
            <title><h:b>Refinement:</h:b> The <selectables>
                <selectable>TSF</selectable>
                <selectable>TOE platform</selectable>
              </selectables> shall record within each MDM Agent 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 relevant) the outcome 
                  (success or failure) of the event, and additional information in Table 2; and</h:li>         
                <h:li>For each audit event type, based on the auditable event definitions of the functional components 
                  included in the PP-Module/ST, <assignable>other audit relevant information</assignable>.</h:li>
              </h:ol>
            </title>
            <note role="application">All audits must contain at least the information mentioned in
              FAU_GEN.1.2/AGENT, but may contain more information which can be assigned. The ST author must identify in the TSS which information
              of the audit record that is performed by the MDM Agent and that
              which is performed by the MDM Agent’s platform.<h:br/><h:br/>
            </note>
            <aactivity>
              <TSS>
                  The evaluator shall check the TSS and ensure that it provides a format for audit records. Each audit record format type must be covered, along with a brief description of each field. <h:br/><h:br/> 
                  If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it describes (for each supported platform) how this functionality is invoked (it should be noted that this may be through a mechanism that is not implemented by the MDM Agent; nonetheless, that mechanism will be identified in the TSS as part of this evaluation activity).<h:br/><h:br/> 
              </TSS>
              <Tests>
                  The evaluator shall use the TOE to perform the auditable
                  events defined in the Auditable Events table in FAU_GEN.1.1/AGENT and observe that
                  accurate audit records are generated with contents and formatting consistent with
                  those described in the TSS. Note that this testing can be
                  accomplished in conjunction with the testing of the security mechanisms
                  directly.<h:br/><h:br/>                                 
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <f-component cc-id="fau_sel.1" name="Security Audit Event Selection" iteration="AGENT">
          <consistency-rationale/>
          <f-element>
            <title><h:b>Refinement:</h:b> The TSF shall <selectables>
                <selectable>invoke platform-provided functionality</selectable>
                <selectable>implement functionality</selectable>
              </selectables> to select the set of events to be audited from the set of all auditable
              events based on the following attributes: <h:ol type="a">
                <h:li>[<h:i>event type</h:i>]</h:li>
                <h:li>[<h:i>success of auditable security events, failure of auditable security events, 
                  <assignable>other attributes</assignable></h:i>].</h:li>
              </h:ol></title>
            <note role="application">The intent of this requirement is to identify all criteria that
              can be selected to trigger an audit event. For the ST author, the
              assignment is used to list any additional criteria or “no other attributes”. This selection may be
              configured by the MDM Server.<h:br/><h:br/>
            </note>
            <aactivity>
              <TSS>If "invoke platform-provided functionality" is selected, the evaluator shall
                examine the TSS of the ST to verify that it
                describes (for each supported platform) how this functionality is invoked (it should
                be noted that this may be through a mechanism that is not implemented by the MDM
                Agent; nonetheless, that mechanism will be identified in the TSS
                as part of this evaluation activity).<h:br/><h:br/>
              </TSS>
              <Guidance>The evaluator shall examine the operational guidance to determine that it
                contains instructions on how to define the set of auditable events as well as
                explains the syntax for multi-value selection (if applicable). The evaluator shall
                also verify that the operational guidance shall identify those audit records that
                are always recorded, regardless of the selection criteria currently being
                enforced.<h:br/><h:br/>
              </Guidance>
              <Tests>
                <testlist>
                  <test>For each attribute listed in the requirement, the evaluator shall devise a
                    test to show that selecting the attribute causes only audit events with that
                    attribute (or those that are always recorded, as identified in the
                    administrative guidance) to be recorded.
                  </test>
                  <test>[conditional]: If the TSF supports specification of more complex audit
                    pre-selection criteria (e.g., multiple attributes, logical expressions using
                    attributes) then the evaluator shall devise tests showing that this capability
                    is correctly implemented. The evaluator shall also, in the test plan, provide a
                    short narrative justifying the set of tests as representative and sufficient to
                    exercise the capability.
                  </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>All modifications to the audi tconfiguration that occur while the audit collection functions are operating.</audit-event-descr>
            <audit-event-info>No additional information.</audit-event-info>
          </audit-event>
        </f-component>
      </sec:man_fau>
      <sec:man_fia title="Identification and Authentication (FIA)">
        <ext-comp-def title="Enrollment" fam-id="FIA_ENR_EXT">
          <mod-def> This family is defined in the MDM
            Base-PP. This PP-Module augments the extended family
            by adding one additional component, FIA_ENR_EXT.2. This new component and its impact on
            the extended family’s component leveling are shown below; reference the 
              MDM PP for all other definitions for this family. </mod-def>
        </ext-comp-def>
        <f-component cc-id="fia_enr_ext.2" name="Agent Enrollment of Mobile Device into Management">
          <consistency-rationale/>
          <comp-lev> requires the TSF to record specific information about the MDM
            Server (i.e. the entity that is enrolling it) during the enrollment process.</comp-lev>
          <management>There are no management functions foreseen.</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>Minimal: Completion of enrollment process.</h:li>
            </h:ul>
          </audit>
          <dependencies>FIA_ENR_EXT.1 Enrollment of Mobile Device into Management</dependencies>
          <f-element>
            <title>The MDM Agent shall record the reference identifier of the
                MDM Server during the enrollment process. </title>
            <note role="application">The reference identifier of the MDM Server
              may be the Distinguished Name, Domain Name, and/or the IP address of the 
                MDM Server. This requirement allows the specification of the information
              to be to be used to establish a network connection and the reference identifier for
              authenticating the trusted channel between the MDM Server and 
                MDM Agent, as defined in the MDM PP.<h:br/><h:br/>
            </note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to verify that it describes
                which types of reference identifiers are acceptable and how the identifier is
                specified (e.g. preconfigured in the MDM Agent, by the user, by
                the MDM server, in a policy).<h:br/><h:br/>
              </TSS>
              <Guidance>The evaluator shall examine the operational guidance to verify that it
                describes how to configure reference identifier of the MDM
                Server’s certificate and, if different than the reference identifier, the Domain
                Name or IP address (for connectivity) of the MDM
                Server.<h:br/><h:br/>
              </Guidance>
              <Tests>The evaluator shall follow the operational guidance to establish the reference
                identifier of the MDM server on the MDM Agent
                and in conjunction with other evaluation activities verify that the 
                  MDM Agent can connect to the MDM Server and validate
                the MDM Server’s certificate.<h:br/><h:br/>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>Enrollment in management.</audit-event-descr>
            <audit-event-info>Reference identifier of the MDM server.</audit-event-info>
          </audit-event>
        </f-component>
      </sec:man_fia>
      <sec:man_fmt title="Security Management (FMT)">
        <ext-comp-def title="Trusted Policy Update" fam-id="FMT_POL_EXT">
          <mod-def> This family is defined in the MDM
            Base-PP. This PP-Module augments the extended family
            by adding one additional component, FMT_POL_EXT.2. This new component and its impact on
            the extended family’s component leveling are shown below; reference the 
              MDM PP for all other definitions for this family.</mod-def>
        </ext-comp-def>
        <f-component cc-id="fmt_pol_ext.2" name="Agent Trusted Policy Update">
          <consistency-rationale/>
          <comp-lev> requires the TSF to verify the validity of the source of a policy before
            applying it.</comp-lev>
          <management>There are no management functions foreseen.</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>Minimal: Failure to validate policy.</h:li>
            </h:ul>
          </audit>
          <dependencies>FCS_COP.1 Cryptographic Operation<h:br/> FMT_POL_EXT.1 Trusted Policy
            Update </dependencies>
          <f-element>
            <title>The MDM Agent shall only accept policies and policy updates
              that are digitally signed by a private key that has been authorized for policy updates
              by the MDM Server. </title>
            <note role="application">The intent of this requirement is to cryptographically tie the
              policies to the enterprise that mandated the policy, not to protect the policies in
              transit, as this is addressed by other SFRs (the MDM Base-PP SFR FPT_ITT.1(2) or the Additional SFR
              FTP_ITC_EXT.1/MDFCHANNEL or FTP_ITC_EXT.1/OSCHANNEL, depending on the claimed Base-PP). 
              This is especially critical for
              users who connect to multiple enterprises.<h:br/><h:br/> Policies must be
              digitally signed by the enterprise using the algorithms in
              FCS_COP.1(3) in the MDM PP.<h:br/><h:br/>
              The signing private key is associated with a certificate or raw public key used by the agent to verify the signature on the policy.
            </note>           
          </f-element>
          <f-element>
            <title>The MDM Agent shall not install policies if the signature check fails.</title>
            <aactivity>
                <TSS>
                The evaluator ensures that the TSS describes how the candidate policies are obtained by the MDM Agent, the processing associated with verifying the digital signature of the policy updates, and the actions that take place for successful (signature was verified) and unsuccessful (signature could not be verified) cases. The software components that are performing the processing must also be identified in the TSS and verified by the evaluators.<h:br/><h:br/>
                </TSS>
              <Tests> 
                  This evaluation activity is performed in conjunction with the evaluation activity for FIA_X509_EXT.1 and FIA_X509_EXT.2 as defined in the Base-PPs.<h:br/><h:br/>
                  <testlist>
                      <test>The evaluator shall perform a policy update from an available configuration interface (such as through a test MDM Server). The evaluator shall verify the update is signed and is provided to the MDM Agent. The evaluator shall verify the MDM Agent accepts the digitally signed policy.</test>
                      <test>The evaluator shall perform a policy update from an available configuration interface (such as through a test MDM Server). The evaluator shall provide an unsigned and an incorrectly signed policy to the MDM Agent. The evaluator shall verify the MDM Agent does not accept the digitally signed policy.</test>
                  </testlist>            
              </Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>Failure of policy validation.</audit-event-descr>
            <audit-event-info>Reason for failure of validation.</audit-event-info>
          </audit-event>
        </f-component>
        <ext-comp-def title="Specification of Management Functions" fam-id="FMT_SMF_EXT">
          <mod-def> This family is defined in the MDF Base-PP. This 
              PP-Module augments the extended family by adding one additional component,
            FMT_SMF_EXT.4. This new component and its impact on the extended family’s component
            leveling are shown below; reference the MDF PP for all other definitions for this
            family. </mod-def>
        </ext-comp-def>
        <f-component cc-id="fmt_smf_ext.4" name="Specification of Management Functions">
          <!-- Note: Changed to .4 to avoid conflict with MDM Server -->
          <consistency-rationale> </consistency-rationale>
          <comp-lev> requires the TSF to support the execution of certain management functions that
            require interfacing with other TOE components.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<h:ul>
              <h:li>Execution of management functions.</h:li>
              <h:li>Configuration of management functions behavior.</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>Minimal: Successful and failed execution of management functions.</h:li>
            </h:ul>
          </audit>
          <dependencies>FCS_CKM.1 Cryptographic Key Generation</dependencies>
          <f-element>
            <title>The MDM Agent shall be capable of interacting with the platform
              to perform the following functions: <h:ul>
                <h:li><selectables>
                  <selectable>Import the certificates to be used for authentication of MDM
                    Agent communications</selectable>
                <selectable>Import the server public key</selectable></selectables>,</h:li>
                <h:li><selectables>
                    <selectable>administrator-provided management functions in MDF PP</selectable>
                    <selectable>administrator-provided device management functions in MDM PP</selectable>
                  </selectables></h:li>
                <h:li><selectables>
                    <selectable><assignable>additional functions</assignable></selectable>
                    <selectable> no additional functions</selectable>
                  </selectables>.</h:li>
              </h:ul>
            </title>
            <note role="application"> This requirement captures all the configuration functionality
              in the MDM Agent to configure the underlying mobile device with the
              configuration policies sent from the MDM Server to the Agent. The
                ST author selects the Base-PP (MDF PP or MDM PP) as the source of the management functions.<h:br/><h:br/> The
              administrator-provided management functions in MDF PP are specified
              in Column 4 of Table 5 in MDF PP and in FPT_TUD_EXT.1 (for version
              queries). The administrator-provided device management functions in MDM
              PP are specified in FMT_SMF.1.1(1); the functions in the selection
              of FMT_SMF.1.1(1) in the MDM
              PP are required to correspond to the functions available on the
              platforms supported by the MDM Agent.<h:br/><h:br/> The 
                ST author can add more commands and configuration policies by completing
              the assignment statement; the mobile device must support these additional commands or
              configuration policies.<h:br/><h:br/> The agent must configure the platform based
              on the commands and configuration policies received from the MDM
              Server. The ST author must not claim any functionality not provided
              by the supported mobile device(s). All selections and assignments performed by the
                ST author in this requirement should match the selections and
              assignments of the validated mobile device ST.<h:br/><h:br/>
            </note>           
          </f-element>
          <f-element>
            <title>The MDM Agent shall be capable of performing the following
              functions: <h:ul>
                <h:li>Enroll in management</h:li>
                <h:li>Configure whether users can unenroll from management</h:li>
                <h:li>
                  <selectables>
                    <selectable>configure periodicity of reachability events</selectable>
                    <selectable><assignable>other management functions</assignable></selectable>
                    <selectable>no other functions</selectable>
                  </selectables>.</h:li>
              </h:ul></title>
            <note role="application"> This requirement captures all of the configuration in the
                MDM Agent for configuration of itself.<h:br/><h:br/> If the
                MDM Agent is a part of the mobile device, enrollment is a single
              function both of the Agent and of the mobile device
              (FMT_SMF_EXT.4.1).<h:br/><h:br/> If the MDM Agent is an
              application developed separately from the mobile device, the MDM
              Agent performs the function “enroll the mobile device in management” (per
              FMT_SMF_EXT.4.1) by registering itself to the mobile device as a device administrator.
              The Agent itself is enrolled in management by configuring the MDM
              Server to which the Agent answers.<h:br/><h:br/> If the MDM
              Agent does not support unenrollment prevention, remediation actions should be applied
              upon unenrollment (per FMT_UNR_EXT.1).<h:br/><h:br/> If the Agent generates
              periodic reachability events in FAU_ALT_EXT.2.1 and the periodicity of these events is
              configurable, “configure periodicity of reachability events” must be
              selected.<h:br/><h:br/>
            </note> 
            <aactivity>
                <!-- TODO: Need to move below sentence -->
                This assurance activity may be performed in conjunction with other assurance
                activities in the Base-PP.<h:br/><h:br/>
                
              <TSS> 
                  The evaluator shall verify that the any assigned functions are described in the TSS and that these functions are documented as supported by the platform. The evaluator shall examine the TSS to verify that any differences between management functions and policies for each supported mobile device are listed.<h:br/><h:br/>
                  The evaluator shall verify that the TSS describes the methods in which the MDM Agent can be enrolled.<h:br/><h:br/> 
                  The TSS description shall make clear if the MDM Agent supports multiple interfaces for enrollment and configuration (for example, both remote configuration and local configuration).<h:br/><h:br/>                  
              </TSS>
              <Guidance> 
                  The evaluator shall verify the AGD guidance includes detailed instructions for configuring each function in this requirement.<h:br/><h:br/> 
                  If the MDM Agent is a component of the MDM system (i.e. MDM Server is the Base-PP), the evaluator shall verify, by consulting documentation for the claimed mobile device platforms, that the configurable functions listed for this Agent are supported by the platforms.<h:br/><h:br/> 
                  If the MDM Agent supports multiple interfaces for configuration (for example, both remote configuration and local configuration), the AGD guidance makes clear whether some functions are restricted to certain interfaces.<h:br/><h:br/>                
              </Guidance>
              <Tests>
                <testlist>
                    <test>In conjunction with the evaluation activities in the Base-PP, the evaluator shall attempt to configure each 
                      administrator-provided management function and shall verify that the mobile device executes the commands and enforces the policies.</test>
                  <test>[conditional: if "import the certificates to be used for authentication of MDM Agent communications" is selected in FMT_SMF_EXT.4.1, then] 
                    The evaluator shall configure the MDM Agent authentication certificate in accordance with the configuration guidance. 
                    The evaluator shall verify that the MDM Agent uses this certificate in performing the tests for the MDM PP SFR FPT_ITT.1(2) 
                    (if the MDM PP is the Base-PP),
                    the Additional SFR FTP_ITC_EXT.1/MDFCHANNEL (if the MDF PP is the Base-PP),
                    or the Additional SFR FTP_ITC_EXT.1/OSCHANNEL (if the GPOS PP is the Base-PP).</test>
                    <test>In conjunction with other evaluation activities, the evaluator shall attempt to enroll the MDM Agent in management with each interface identified in the TSS, and verify that the MDM Agent can manage the device and communicate with the MDM Server.</test>
                    <test>[conditional] In conjunction with the evaluation activity for FAU_ALT_EXT.2.1, the evaluator shall configure the periodicity for reachability events for several configured time periods and shall verify that the MDM Server receives alerts on that schedule.</test>
                  <test>[conditional] The evaluator shall design and perform tests to demonstrate that the assigned function may be configured and that the intended behavior of the function is enacted by the mobile device.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>Outcome (success or failure) of function.</audit-event-descr>
            <audit-event-info>No additional information.</audit-event-info>
          </audit-event>
        </f-component>
        <ext-comp-def title="Unenrollment" fam-id="FMT_UNR_EXT">
          <fam-behavior> Components in this family define requirements for TSF behavior when a user
            attempts to unenroll the TOE from mobile device management.</fam-behavior>
        </ext-comp-def>
        <f-component cc-id="fmt_unr_ext.1" name="User Unenrollment Prevention">
          <consistency-rationale/>
          <comp-lev> requires the TSF either to prevent unenrollment entirely or to take some
            corrective action in the event that an unenrollment is initiated.</comp-lev>
          <management>There are no management functions foreseen.</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>Minimal: Unenrollment from MDM.</h:li>
            </h:ul>
          </audit>
          <dependencies> [FIA_ENR_EXT.1 Enrollment of Mobile Device into Management; or<h:br/>
            FMT_MOF_EXT.1 Management of Functions Behavior] </dependencies>
          <f-element>
            <title>The MDM Agent shall provide a mechanism to enforce the
              following behavior upon an attempt to unenroll the mobile device from management: <selectables>
                <selectable>prevent the unenrollment from occurring</selectable>
                <selectable>apply remediation actions</selectable>
              </selectables>.
            </title>
            <note role="application">Unenrolling is the action of transitioning from the enrolled
              state to the unenrolled state. If preventing the user from unenrolling is
              configurable, administrators configure whether users are allowed to unenroll through
              the MDM Server.<h:br/><h:br/> For those configurations where
              unenrollment is allowed, for example a BYOD usage, the MDF PP describes remediation
              actions performed upon unenrollment, such as wiping enterprise data, in
              FMT_SMF_EXT.2.1; however, the MDM Agent is limited to those actions
              supported by the mobile device on which the Agent is operating.<h:br/><h:br/>
            </note>
            <aactivity>
              <TSS> The evaluator shall ensure that the TSS describes the
                mechanism used to prevent users from unenrolling or the remediation actions applied
                when unenrolled.<h:br/><h:br/>
              </TSS>
              <Guidance> The evaluator shall ensure that the administrative guidance instructs
                administrators in configuring the unenrollment prevention in each available
                configuration interface. If any configuration allows users to unenroll, the guidance
                also describes the actions that unenroll the Agent.<h:br/><h:br/>
              </Guidance>
              <Tests>
                <testlist>
                  <test>If ‘prevent the unenrollment from occurring’ is selected: The evaluator shall configure the Agent according to the administrative guidance for each available configuration interface, shall attempt to unenroll the device, and shall verify that the attempt fails.
                  </test>
                  <test>If ‘apply remediation actions’ is selected: If any configuration allows the user to unenroll, the evaluator shall configure the Agent to allow user unenrollment, attempt to unenroll, and verify that the remediation actions are applied.
                  </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event type="optional">
            <audit-event-descr>Attempt to unenroll.</audit-event-descr>
            <audit-event-info>No additional information</audit-event-info>
          </audit-event>
        </f-component>
      </sec:man_fmt>
    </man-sfrs>
    <opt-sfrs/>
    <sel-sfrs/>
    <obj-sfrs>
      <sec:obj_fau title="Security Audit (FAU)">
        <ext-comp-def title="Protected Audit Event Storage" fam-id="FAU_STG_EXT">
          <mod-def>This family is defined in the MDM
            Base-PP. This PP-Module augments the extended family
            by adding one additional component, FAU_STG_EXT.3. This new component and its impact on
            the extended family’s component leveling are shown below; reference the 
              MDM PP for all other definitions for this family.</mod-def>
        </ext-comp-def>
        <f-component cc-id="fau_stg_ext.3" name="Security Audit Event Storage">
          <!-- Note: Name changed simply to avoid name collision with MDM Server -->
          <consistency-rationale/>
          <comp-lev> requires the TSF to identify a location for audit record storage and the events
            that are stored at this location.</comp-lev>
          <management>There are no management functions foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FAU_GEN.1 Audit Data Generation</dependencies>
          <f-element>
            <title>The MDM Agent shall store MDM audit records in the platform-provided audit storage. </title>
            <note role="application">FAU_STG_EXT.3 should only be included in the ST
              for MDM Agent platforms (i.e., mobile devices) that conform to MDF PP version 3 or later.<h:br/><h:br/>
            </note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS description of the
                audit records indicates how the records are stored. The evaluator shall verify that
                the Agent calls a platform-provided API to store audit records.<h:br/><h:br/>
              </TSS>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
      </sec:obj_fau>
      <sec:obj_fpt title="Protection of the TSF (FPT)">
        <ext-comp-def title="Network Reachability" fam-id="FPT_NET_EXT">
          <fam-behavior> Components in this family define requirements for tracking the availability
            of network components. </fam-behavior>
        </ext-comp-def>
        <f-component cc-id="fpt_net_ext.1" name="Network Reachability">
          <consistency-rationale/>
          <comp-lev> requires the TSF to keep track of failed attempts to communicate with a remote
            entity.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<h:br/>
            <h:ul>
              <h:li>Configuration of unreachability threshold.</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>Minimal: Reaching/exceeding unreachability threshold.</h:li></h:ul>
          </audit>
          <dependencies>FPT_STM.1 Reliable Time Stamps</dependencies>
          <f-element>
            <title>The TSF shall detect when a configurable <selectables>
                <selectable>positive integer of missed reachability events occur</selectable>
                <selectable>time limit is exceeded</selectable>
              </selectables> related to the last successful connection with the server has been
              reached. </title>
            <note role="application"> This requirement is to enable the Agent to determine if it has
              been out of connectivity with the Server for too long. The configuration of the number
              of allowed missed reachability events or time limit since last successful connection
              with the server is handled in Server configuration policy of the Agent (the first selection of
              function 56 in FMT_SMF.1.1(1) within the MDM PP). If the first selection of FMT_SMF.1.1(1) function 56 is included in the ST,
              then FPT_NET_EXT.1.1 must be included in the ST.<h:br/><h:br/> If the Agent has been out of connectivity with the server for
              too long than the remediation actions specified in the second selection of function 56 must occur. For
              example if the Agent has not synced with the server in the allowed amount of time that
              the Agent must wipe the device without requiring a command from the
              Server.<h:br/><h:br/>
            </note>
            <aactivity>
              <TSS> The evaluator shall verify that the TSS contains a description
                of how the Agent determines how long it has been since the last successful
                connection with the Server (i.e., total number of missed reachability events or
                time). If total number of missed reachability events is selected, the evaluator
                shall verify that the TSS contains a description of how often the
                reachability events are sent.<h:br/><h:br/>
              </TSS>
              <Guidance> The evaluator shall verify that the AGD guidance instructs the
                administrator, if needed, how to configure the TOE to detect when
                the time since last successful connection with the server has been
                reached.<h:br/><h:br/>
              </Guidance>
              <Tests> The evaluator shall configure the Server configuration policy of the Agent per
                FMT_SMF.1.1(1) function 56 within the Mobile Device Managment PP. The device shall be placed in airplane mode to prevent
                connectivity with the Server. The evaluator shall verify that after the configured
                time, the remediation actions selected in function 56 occur.<h:br/><h:br/>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event type="optional">
            <audit-event-descr>MDM server connection reaching or exceeding unavailability threshold.</audit-event-descr>
            <audit-event-info>No additional information.</audit-event-info>
          </audit-event>
        </f-component>
      </sec:obj_fpt>
    </obj-sfrs>
    <impl-dep-sfrs/>
  </sec:Security_Requirements>
  <appendix title="Implicitly Satisfied Requirements" id="satisfiedreqs"> 
    <h:table>
      <h:tr>
        <h:th>Requirement</h:th>
        <h:th>Rationale for Satisfaction</h:th>
      </h:tr>
      <h:tr>
        <h:td>FMT_MTD.1 - Management of TSF Data</h:td>
        <h:td>
          FAU_SEL.1 has a dependency on FMT_MTD.1 because the configuration settings that determine what events are audited is considered to be TSF data. 
          While FAU_SEL.1 determines the extent to which the TOE’s audit function is configured, 
          it relies on FMT_MTD.1 to determine the administrative roles that are permitted to manipulate this data.
          <h:br/><h:br/>
          This is not applicable to the PP-Module because there is no management interface for a TOE user to interact with; instead, 
          all management functions are initiated by an MDM Server and performed by the MDM Agent which has sufficient privileges on the 
          underlying device to do this. 
          In this case, FIA_ENR_EXT.2 and FMT_POL_EXT.1 are sufficient to validate that the source of the policy data is 
          identified and authenticated before the policy change is accepted. 
          It is not necessary to define a management role associated with this function because the MDM Server does not need to assume a ‘role’ on the 
          TOE to communicate policy data; it is sufficient for the TSF to determine the policy is genuine.
        </h:td>
      </h:tr>
      <h:tr>
        <h:td>FPT_STM.1 - Reliable Time Stamps</h:td>
      <h:td>
        No matter what Base-PP is claimed for the TOE, the MDM Agent itself will be installed on a device. 
        If the underlying device is part of the TOE, the dependency is satisfied by FPT_STM.1 if the MDF PP is the Base-PP,
        FPT_STM.1 is implicitly satisifed per Appendix D of the GPOS PP if that is the Base-PP. 
        If the device is not part of the TOE (i.e. because the Base-PP is the MDM PP), 
        a reliable time source can still be assumed because all mobile devices must include some method to update time data from a cellular carrier network, 
        and can also reasonably be assumed to include a method to update network time if it is instead connected to a network via WLAN radio 
        (such as when in airplane mode) and general-purpose operating systems are also assumed to have network time interfaces.
      </h:td>
      </h:tr>
    </h:table>
  </appendix>

<!--
  <appendix id="use-case" title="Use Case Templates"> The following use case templates list those
    selections, assignments, and objective requirements that best support the use cases identified
    by this PP-Module. Note that the templates assume that all SFRs
    listed in Section 5 are included in the ST, not just those listed in the
    templates. These templates and deviations from the template should be identified in the Security
    Target to assist customers with making risk-based purchasing decisions. Products that do not
    meet these templates are not precluded from use in the scenarios identified by this PP-Module.
    <h:br/><h:br/> 
    Where selections for a particular requirement are not identified in a
    use case template, all available selections are equally applicable to the use case.<h:br/><h:br/>
    <usecase id="usecase1" title="Enterprise-owned device for general-purpose enterprise use">
      <description>
        <h:b>[Use Case 1] Enterprise-owned device for general-purpose enterprise use</h:b>
        <h:br/><h:br/> At this time no additional requirements are recommended for this use
        case.<h:br/><h:br/>
      </description>
    </usecase>
    <usecase title="Enterprise-owned device for specialized, high-security use" id="usecase2">
      <description>
        <h:b>[Use Case 2] Enterprise-owned device for specialized, high-security use</h:b>
        <h:table>
          <h:tr>
            <h:th>Requirement</h:th>
            <h:th>Action</h:th>
          </h:tr>
          <h:tr>
            <h:td>FAU_ALT_EXT.2.1 Function c</h:td>
            <h:td>Include in ST.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_UNR_EXT.1.1</h:td>
            <h:td>Select “prevent the unenrollment from occurring”.</h:td>
          </h:tr>
        </h:table>
        <h:br/><h:br/>
      </description>
    </usecase>
    <usecase title="Personally owned device for personal and enterprise use" id="usecase3">
      <description>
        <h:b>[Use Case 3] Personally owned device for personal and enterprise use</h:b>
        <h:table>
          <h:tr>
            <h:th>Requirement</h:th>
            <h:th>Action</h:th>
          </h:tr>
          <h:tr>
            <h:td>FMT_UNR_ENT.1.1</h:td>
            <h:td>Select “apply remediation actions”</h:td>
          </h:tr>
        </h:table>
        <h:br/><h:br/>
      </description>
    </usecase>
    <usecase title="Personally owned device for personal and limited enterprise" id="usecase4">
      <description><h:b>[Use Case 4] Personally owned device for personal and limited enterprise
          use</h:b><h:br/><h:br/> At this time no additional requirements are recommended for
        this use case.</description>
    </usecase>
  </appendix>
-->
  <bibliography>
    <cc-entry/>
  </bibliography>
  
    <!-- ToDo: Are these really the only acronyms?-->
      <!-- <term abbr="TOE" full="Target of Evaluation"/> -->
      <!-- <term abbr="TSF" full="TOE Summary Functionality"/> -->
      <!-- <term abbr="TSS" full="TOE Security Specification"/> -->

</Module>
