MILE N. Cam-Winget, Ed.
Internet-Draft S. Appala
Intended status: Standards Track S. Pope
Expires: May 3, 2018 Cisco Systems
P. Saint-Andre
Jabber.org
October 30, 2017

Using XMPP for Security Information Exchange
draft-ietf-mile-xmpp-grid-04

Abstract

This document describes how to use the Extensible Messaging and Presence Protocol (XMPP) as a transport for collecting and distributing security-relevant information between network-connected devices. To illustrate the principles involved, this document describes such a usage for the Incident Object Description Exchange Format (IODEF).

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on May 3, 2018.

Copyright Notice

Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.


Table of Contents

1. Introduction

This document describes "XMPP-Grid": a method for using the Extensible Messaging and Presence Protocol (XMPP) [RFC6120] as a transport for collecting and distributing security-relevant information among network platforms, endpoints, and any other network-connected device. Among other services, XMPP provides a publish-subscribe service that acts as a broker, providing control-plane functions by which entities can discover available information to be published or consumed. Although such information can take the form of any structured data (XML, JSON, etc.), this document uses the Incident Object Description Exchange Format (IODEF) [RFC7970] to illustrate the principles of XMPP-Grid.

2. Terminology

This document uses XMPP terminology defined in [RFC6120] and [XEP-0060] as well as Security Automation and Continuous Monitoring (SACM) terminology defined in [I-D.ietf-sacm-terminology]. Because the intended audience for this document consists of those who implement and deploy security reporting systems, in general the SACM terms are used here (however, mappings are provided for the benefit of XMPP developers and operators).

Broker:
As defined in [I-D.ietf-sacm-terminology], a Broker is a specific type of controller containing control plane functions; as used here, the term refers to an XMPP publish-subscribe service.
Broker Flow:
A method by which security-related information is published and consumed in a mediated fashion through a Broker. In this flow, the Broker handles authorization of Subscribers and Publishers to Topics, receives messages from Publishers, and delivers published messages to Subscribers.
Consumer:
As defined in [I-D.ietf-sacm-terminology], a Consumer is a component that contains functions to receive information from other components; as used here, the term refers to an XMPP publish-subscribe Subscriber.
Controller:
As defined in [I-D.ietf-sacm-terminology], a controller is a "component containing control plane functions that manage and facilitate information sharing or execute on security functions"; as used here, the term refers to either an XMPP server, which provides both core message delivery [RFC6120] used by publish-subscribe entities.
Node:
The term used in the XMPP publish-subscribe specification [XEP-0060] for a Topic.
Platform:
Any entity that implements connects to the XMPP-Grid in order to publisher or consume security-related data.
Provider:
As defined in [I-D.ietf-sacm-terminology], a Provider is a component that contains functions to provide information to other components; as used here, the term refers to an XMPP publish-subscribe Publisher.
Publisher:
The term used in the XMPP publish-subscribe specification [XEP-0060] for a Provider.
Publish-Subscribe Service:
A Broker that implements the XMPP publish-subscribe extension [XEP-0060].
Subscriber:
The term used in the XMPP publish-subscribe specification [XEP-0060] for a Consumer.
Topic:
A contextual information channel created on a Broker at which messages generated by a Publisher will be propagated by XMPP in real time to one or more Subscribers. Each Topic is limited to a type and format of security data (e.g., IODEF) that a platform wants to share with other platform(s) and a specified interface by which the data can be obtained.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

3. Architecture

The following figure illustrates the architecture of XMPP-Grid.

          +--------------------------------------+
          | +--------------------------------------+
          | | +--------------------------------------+
          | | |                                      |
          +-| |             Platforms                |
            +-|                                      |
              +--------------------------------------+
                /   \         /   \            /   \
               /  C  \       /     \          /     \
               -  o  -       -  d  -          -     -
                ||n||A        | a  |B          |   |C
                ||t||         | t  |           |   |
               -  r  -       -  a  -           |   |
               \  o  /       \     /           |   |
                \ l /         \   /            |   |
             /|---------------------|\         |   |
      /|----/                         \--------| d |--|\
     /     /        Controller         \ ctrl  | a |    \
     \     \        & Broker           / plane | t |    /
      \|----\                         /--------| a |--|/
             \|---------------------|/         |   |
                /   \         /   \            |   |
               /  C  \       /     \           |   |
               -  o  -       -  d  -           |   |
                ||n||A        | a |B           |   |C
                ||t||         | t |            |   |
               -  r  -       -  a  -          -     -
               \  o  /       \     /          \     /
                \ l /         \   /            \   /
              +------------------------------------+
              |                                    |-+
              |            Platforms               | |
              |                                    | |-+
              +------------------------------------+ | |
                +------------------------------------+ |
                  +------------------------------------+

Figure 1: XMPP-Grid Architecture

Platforms connect to the Controller (XMPP server) to authenticate and and then establish appropriate authorizations and relationships (e.g., Publisher or Subscriber) at the Broker (XMPP publish-subscribe service). The control plane messaging is established through XMPP and shown as "A" (control plane interface) in Figure 1. Authorized nodes may then share data either thru the Broker (shown as "B" in Figure 1) or in some cases directly (shown as "C" in Figure 1). This document focuses primarily on the Broker Flow for information sharing (although "direct flow" interactions can be used for specialized purposes such as bulk data transfer, methods for doing so are outside the scope of this document).

4. Workflow

A typical XMPP-Grid workflow is as follows:

  1. A Platform with a source of security data requests connection to the XMPP-Grid via a Controller (XMPP server).
  2. The Controller authenticates the Platform.
  3. The Platform establishes authorized privileges (e.g. privilege to publish and/or subscribe to security data Topics) with a Broker.
  4. The Platform may publish security-related data to a Topic, subscribe to a Topic, query a Topic, or any combination of these operations.
  5. A Publisher unicasts its Topic updates to the Grid in real time through a Broker. The Broker handles replication and distribution of the Topic to Subscribers. A Publisher may publish the same or different data to multiple Topics.
  6. Any Platform on the Grid may subscribe to any Topics published to the Grid (as permitted by authorization policy), and (as Subscribers) will then receive a continuous, real-time stream of updates from the Topics to which they are subscribed.

5. Service Discovery

Using the XMPP service discovery extension [XEP-0030], a Controller enables Platforms to discover what information may be consumed through the Broker (publish-subscribe service). For instance, the Controller might provide a Broker at 'broker.security-grid.example', where 'security-grid.example' is the Controller host. Below is an example for how a Platform can query for available information from the XMPP-Controller:

<iq type='get'
    from='xmpp-grid-client@mile-host.example/postures'
    to='broker.security-grid.example'
    id='disco1'>
  <query xmlns='http://jabber.org/protocol/disco#items'/>
</iq>              

The XMPP-Controller responds with the different types of information it can publish:

<iq type='result'
    from='broker.security-grid.example'
    to='xmpp-grid-client@mile-host.example/postures'
    id='disco1'>
  <query xmlns='http://jabber.org/protocol/disco#items'
         node='secinfo'>
    <item node='NEA1'
          name='endpoint-posture'
          jid='broker.security-grid.example'/>
    <item node='MILEHost'
          name='iodef-1.0'
          jid='broker.security-grid.example'/>
  </query>
</iq>              

6. IODEF Example

A Platform follows the standard XMPP workflow for connecting to the Controller as well as using the XMPP discovery mechanisms to discover the availability to consume IODEF information. The general workflow is summarized in the figure below:

+----------------+         +----------------+         +----------------+
| IODEF Client   |         | XMPP Server    |         | IODEF Service  |
|  (Subscriber)  |         | (Controller)   |         |  (Publisher)   |
+----------------+         +----------------+         +----------------+
        |                          |                         |
        |     IODEF Client         |                         |
        |     Authentication       |                         |
        |<------------------------>|                         |
        |                          | IODEF Service           |
        |                          | Authentication          |
        |                          |<----------------------->|
        |                          | Create IODEF as a Topic |
        |                          | (XEP-0060)              |
        |                          |<------------------------|
        |                          | Topic Creation Success  |
        |                          |------------------------>|
        | Topic Discovery          |                         |
        | (XEP-0030)               |                         |
        |------------------------->|                         |
        | Discovery Response       |                         |
        | with Topics              |                         |
        |<-------------------------|                         |
        |                          |                         |
        | Subscribe to IODEF Topic |                         |
        | (XEP-0060)               |                         |
        |------------------------->|                         |
        | Subscription Success     |                         |
        |<-------------------------|                         |
        |                          | IODEF Incident Publish  |
        | IODEF Incident Publish   |<------------------------|
        |<-------------------------|                         |
        |                          |                         |
        

Figure 2: IODEF Example Workflow

An example XMPP discovery request for an IODEF 1.0 topic is shown below:

<iq type='get'
    from='iodefclientabc@company.example'
    to='pubsub.company.example'
    id='nodes1'>
  <query xmlns='http://jabber.org/protocol/disco#items'/>
</iq>
            

An example XMPP discovery response for an IODEF 1.0 topic is shown below:

<iq type='result'
    from='pubsub.company.example'
    to='iodefclientabc@company.example'
    id='nodes1'>
  <query xmlns='http://jabber.org/protocol/disco#items'>
    <item jid='pubsub.company.example'
          node='incident'
          name='IODEF incident report'/>
  </query>
</iq>
        

7. IANA Considerations

This document has no actions for IANA.

8. Security Considerations

An XMPP-Grid Controller serves as an controlling broker for XMPP-Grid Platforms such as Enforcement Points, Policy Servers, CMDBs, and Sensors, using a publish-subscribe-search model of information exchange and lookup. By increasing the ability of XMPP-Grid Platforms to learn about and respond to security-relevant events and data, XMPP-Grid can improve the timeliness and utility of the security system. However, this integrated security system can also be exploited by attackers if they can compromise it. Therefore, strong security protections for XMPP-Grid are essential.

This section provides a security analysis of the XMPP-Grid transport protocol and the architectural elements that employ it, specifically with respect to their use of this protocol. Three subsections define the trust model (which elements are trusted to do what), the threat model (attacks that may be mounted on the system), and the countermeasures (ways to address or mitigate the threats previously identified).

8.1. Trust Model

The first step in analyzing the security of the XMPP-Grid transport protocol is to describe the trust model, listing what each architectural element is trusted to do. The items listed here are assumptions, but provisions are made in the Threat Model and Countermeasures sections for elements that fail to perform as they were trusted to do.

8.1.1. Network

The network used to carry XMPP-Grid messages is trusted to:

The network used to carry XMPP-Grid messages is not expected (trusted) to:

8.1.2. XMPP-Grid Platforms

Authorized XMPP-Grid Platforms are trusted to:

8.1.3. XMPP-Grid Controller

The XMPP-Grid Controller is trusted to:

The XMPP-Grid Controller is not expected (trusted) to:

8.1.4. Certification Authority

The Certification Authority (CA) that issues certificates for the XMPP-Grid Controller and/or XMPP-Grid Platforms (or each CA, if there are several) is trusted to:

The CA is not expected (trusted) to:

8.2. Threat Model

To secure the XMPP-Grid transport protocol and the architectural elements that implement it, this section identifies the attacks that can be mounted against the protocol and elements.

8.2.1. Network Attacks

A variety of attacks can be mounted using the network. For the purposes of this subsection the phrase "network traffic" should be taken to mean messages and/or parts of messages. Any of these attacks may be mounted by network elements, by parties who control network elements, and (in many cases) by parties who control network-attached devices.

8.2.2. XMPP-Grid Platforms

An unauthorized XMPP-Grid Platforms (one which is not recognized by the XMPP-Grid Controller or is recognized but not authorized to perform any actions) cannot mount any attacks other than those listed in the Network Attacks section above.

An authorized XMPP-Grid Platform, on the other hand, can mount many attacks. These attacks might occur because the XMPP-Grid Platform is controlled by a malicious, careless, or incompetent party (whether because its owner is malicious, careless, or incompetent or because the XMPP-Grid Platform has been compromised and is now controlled by a party other than its owner). They might also occur because the XMPP-Grid Platform is running malicious software; because the XMPP-Grid Platform is running buggy software (which may fail in a state that floods the network with traffic); or because the XMPP-Grid Platform has been configured improperly. From a security standpoint, it generally makes no difference why an attack is initiated. The same countermeasures can be employed in any case.

Here is a list of attacks that may be mounted by an authorized XMPP-Grid Platform:

Dependencies of or vulnerabilities of authorized XMPP-Grid Platforms may be exploited to effect these attacks. Another way to effect these attacks is to gain the ability to impersonate an XMPP-Grid Platform (through theft of the XMPP-Grid Platform's identity credentials or through other means). Even a clock skew between the XMPP-Grid Platform and XMPP-Grid Controller can cause problems if the XMPP-Grid Platform assumes that old XMPP-Grid Platform data should be ignored.

8.2.3. XMPP-Grid Controllers

An unauthorized XMPP-Grid Controller (one which is not trusted by XMPP-Grid Platforms) cannot mount any attacks other than those listed in the Network Attacks section above.

An authorized XMPP-Grid Controller can mount many attacks. Similar to the XMPP-Grid Platform case described above, these attacks might occur because the XMPP-Grid Controller is controlled by a malicious, careless, or incompetent party (either an XMPP-Grid Controller administrator or an attacker who has seized control of the XMPP-Grid Controller). They might also occur because the XMPP-Grid Controller is running malicious software, because the XMPP-Grid Controller is running buggy software (which may fail in a state that corrupts data or floods the network with traffic), or because the XMPP-Grid Controller has been configured improperly.

All of the attacks listed for XMPP-Grid Platform above can be mounted by the XMPP-Grid Controller. Detection of these attacks will be more difficult since the XMPP-Grid Controller can create false operational attributes and/or logs that imply some other party created any bad data.

Additional XMPP-Grid Controller attacks may include:

Dependencies of or vulnerabilities of the XMPP-Grid Controller may be exploited to obtain control of the XMPP-Grid Controller and effect these attacks.

8.2.4. Certification Authority

A Certification Authority trusted to issue certificates for the XMPP-Grid Controller and/or XMPP-Grid Platforms can mount several attacks:

8.3. Countermeasures

Below are countermeasures for specific attack scenarios to the XMPP-Grid infrastructure.

8.3.1. Securing the XMPP-Grid Transport Protocol

To address network attacks, the XMPP-Grid transport protocol described in this document requires that the XMPP-Grid messages MUST be carried over TLS (minimally TLS 1.2 [RFC5246]) as described in [RFC6120] and updated by [RFC7590]. The XMPP-Grid Platform MUST verify the XMPP-Grid Controller's certificate and determine whether the XMPP-Grid Controller is trusted by this XMPP-Grid Platform before completing the TLS handshake. The XMPP-Grid Controller MUST authenticate the XMPP-Grid Platform either using mutual certificate-based authentication in the TLS handshake or using Basic Authentication as described in IETF RFC 2617. XMPP-Grid Controller MUST use Simple Authentication and Security Layer (SASL), described in [RFC4422], to support the aforesaid authentication mechanisms. SASL offers authentication mechanism negotiations between the XMPP-Grid Controller and XMPP-Grid node during the connection establishment phase. XMPP-Grid Platforms and XMPP-Grid Controllers using mutual certificate-based authentication SHOULD each verify the revocation status of the other party's certificate. All XMPP-Grid Controllers and XMPP-Grid Platforms MUST implement both mutual certificate-based authentication and Basic Authentication. The selection of which XMPP-Grid Platform authentication technique to use in any particular deployment is left to the administrator.

An XMPP-Grid Controller MAY also support a local, configurable set of Basic Authentication userid-password pairs. If so, it is implementation dependent whether an XMPP-Grid Controller ends a session when an administrator changes the configured password. Since Basic Authentication has many security disadvantages (especially the transmission of reusable XMPP-Grid Platform passwords to the XMPP-Grid Controller), it SHOULD only be used when absolutely necessary. Per the HTTP specification, when basic authentication is in use, an XMPP-Grid Controller MAY respond to any request that lacks credentials with an error code similar to HTTP code 401. An XMPP-Grid Platform SHOULD avoid this code by submitting basic auth credentials with every request when basic authentication is in use. If it does not do so, an XMPP-Grid Platform MUST respond to this code by resubmitting the same request with credentials (unless the XMPP-Grid Platform is shutting down).

Best practices for the use of TLS in XMPP are defined in [RFC7590].

These protocol security measures provide protection against all the network attacks listed in the above document section except denial of service attacks. If protection against these denial of service attacks is desired, ingress filtering, rate limiting per source IP address, and other denial of service mitigation measures may be employed. In addition, an XMPP-Grid Controller MAY automatically disable a misbehaving XMPP-Grid Platform.

8.3.2. Securing XMPP-Grid Platforms

XMPP-Grid Platforms may be deployed in locations that are susceptible to physical attacks. Physical security measures may be taken to avoid compromise of XMPP-Grid Platforms, but these may not always be practical or completely effective. An alternative measure is to configure the XMPP-Grid Controller to provide read-only access for such systems. The XMPP-Grid Controller SHOULD also include a full authorization model so that individual XMPP-Grid Platforms may be configured to have only the privileges that they need. The XMPP-Grid Controller MAY provide functional templates so that the administrator can configure a specific XMPP-Grid Platform as a DHCP server and authorize only the operations and metadata types needed by a DHCP server to be permitted for that XMPP-Grid Platform. These techniques can reduce the negative impacts of a compromised XMPP-Grid Platform without diminishing the utility of the overall system.

To handle attacks within the bounds of this authorization model, the XMPP-Grid Controller MAY also include rate limits and alerts for unusual XMPP-Grid Platform behavior. XMPP-Grid Controllers SHOULD make it easy to revoke an XMPP-Grid Platform's authorization when necessary. Another way to detect attacks from XMPP-Grid Platforms is to create fake entries in the available data (honeytokens) which normal XMPP-Grid Platforms will not attempt to access. The XMPP-Grid Controller SHOULD include auditable logs of XMPP-Grid Platform activities.

To avoid compromise of XMPP-Grid Platform, XMPP-Grid Platform SHOULD be hardened against attack and minimized to reduce their attack surface. They should be well managed to minimize vulnerabilities in the underlying platform and in systems upon which the XMPP-Grid Platform depends. Personnel with administrative access should be carefully screened and monitored to detect problems as soon as possible.

8.3.3. Securing XMPP-Grid Controllers

Because of the serious consequences of XMPP-Grid Controller compromise, XMPP-Grid Controllers SHOULD be especially well hardened against attack and minimized to reduce their attack surface. They should be well managed to minimize vulnerabilities in the underlying platform and in systems upon which the XMPP-Grid Controller depends. Network security measures such as firewalls or intrusion detection systems may be used to monitor and limit traffic to and from the XMPP-Grid Controller. Personnel with administrative access should be carefully screened and monitored to detect problems as soon as possible. Administrators should not use password-based authentication but should instead use non-reusable credentials and multi-factor authentication (where available). Physical security measures SHOULD be employed to prevent physical attacks on XMPP-Grid Controllers.

To ease detection of XMPP-Grid Controller compromise should it occur, XMPP-Grid Controller behavior should be monitored to detect unusual behavior (such as a reboot, a large increase in traffic, or different views of an information repository for similar XMPP-Grid Platforms). XMPP-Grid Platforms should log and/or notify administrators when peculiar XMPP-Grid Controller behavior is detected. To aid forensic investigation, permanent read-only audit logs of security-relevant information (especially administrative actions) should be maintained. If XMPP-Grid Controller compromise is detected, a careful analysis should be performed of the impact of this compromise. Any reusable credentials that may have been compromised should be reissued.

8.3.4. Limit on search result size

While XMPP-Grid is designed for high scalability to 100,000s of Platforms, an XMPP-Grid Controller MAY establish a limit to the amount of data it is willing to return in search or subscription results. This mitigates the threat of an XMPP-Grid Platform causing resource exhaustion by issuing a search or subscription that leads to an enormous result.

8.3.5. Cryptographically random session-id and authentication checks for ARC

An XMPP-Grid Controller SHOULD ensure that the XMPP-Grid Platform establishing an Authenticated Results Chain (ARC) is the same XMPP-Grid Platform as the XMPP-Grid Platform that established the corresponding Synchronization Source Identifier (SSRC). The XMPP-Grid Controller SHOULD employ both of the following strategies:

8.3.6. Securing the Certification Authority

As noted above, compromise of a Certification Authority (CA) trusted to issue certificates for the XMPP-Grid Controller and/or XMPP-Grid Platforms is a major security breach. Many guidelines for proper CA security have been developed: the CA/Browser Forum's Baseline Requirements, the AICPA/CICA Trust Service Principles, etc. The CA operator and relying parties should agree on an appropriately rigorous security practices to be used.

Even with the most rigorous security practices, a CA may be compromised. If this compromise is detected quickly, relying parties can remove the CA from their list of trusted CAs, and other CAs can revoke any certificates issued to the CA. However, CA compromise may go undetected for some time, and there's always the possibility that a CA is being operated improperly or in a manner that is not in the interests of the relying parties. For this reason, relying parties may wish to "pin" a small number of particularly critical certificates (such as the certificate for the XMPP-Grid Controller). Once a certificate has been pinned, the relying party will not accept another certificate in its place unless the Administrator explicitly commands it to do so. This does not mean that the relying party will not check the revocation status of pinned certificates. However, the Administrator may still be consulted if a pinned certificate is revoked, since the CA and revocation process are not completely trusted.

8.4. Summary

XMPP-Grid's considerable value as a broker for security-sensitive data exchange distribution also makes the protocol and the network security elements that implement it a target for attack. Therefore, strong security has been included as a basic design principle within the XMPP-Grid design process.

The XMPP-Grid transport protocol provides strong protection against a variety of different attacks. In the event that an XMPP-Grid Platform or XMPP-Grid Controller is compromised, the effects of this compromise have been reduced and limited with the recommended role-based authorization model and other provisions, and best practices for managing and protecting XMPP-Grid systems have been described. Taken together, these measures should provide protection commensurate with the threat to XMPP-Grid systems, thus ensuring that they fulfill their promise as a network security clearing-house.

9. Privacy Considerations

XMPP-Grid Platforms may publish information about endpoint health, network access, events (which may include information about what services an endpoint is accessing), roles and capabilities, and the identity of the end user operating the endpoint. Any of this published information may be queried by other XMPP-Grid Platforms and could potentially be used to correlate network activity to a particular end user.

Dynamic and static information brokered by an XMPP-Grid Controller, ostensibly for purposes of correlation by XMPP-Grid Platforms for intrusion detection, could be misused by a broader set of XMPP-Grid Platforms which hitherto have been performing specific roles with strict well-defined separation of duties.

Care should be taken by deployers of XMPP-Grid to ensure that the information published by XMPP-Grid Platforms does not violate agreements with end users or local and regional laws and regulations. This can be accomplished either by configuring XMPP-Grid Platforms to not publish certain information or by restricting access to sensitive data to trusted XMPP-Grid Platforms. That is, the easiest means to ensure privacy or protect sensitive data, is to omit or not share it at all.

Another consideration for deployers is to enable end-to-end encryption to ensure the data is protected from the data layer to data layer and thus protect it from the transport layer.

10. Acknowledgements

The authors would like to acknowledge the contributions, authoring and/or editing of the following people: Joseph Salowey, Lisa Lorenzin, Clifford Kahn, Henk Birkholz, Jessica Fitzgerald-McKay, Steve Hanna, and Steve Venema. In addition, we want to thank Takeshi Takahashi, Panos Kampanakis, Adam Montville, Chris Inacio, and Dave Cridland for reviewing and providing valuable comments.

11. References

11.1. Normative References

[I-D.ietf-sacm-terminology] Birkholz, H., Lu, J., Strassner, J. and N. Cam-Winget, "Secure Automation and Continuous Monitoring (SACM) Terminology", Internet-Draft draft-ietf-sacm-terminology-13, July 2017.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997.
[RFC4422] Melnikov, A. and K. Zeilenga, "Simple Authentication and Security Layer (SASL)", RFC 4422, DOI 10.17487/RFC4422, June 2006.
[RFC6120] Saint-Andre, P., "Extensible Messaging and Presence Protocol (XMPP): Core", RFC 6120, DOI 10.17487/RFC6120, March 2011.
[RFC7590] Saint-Andre, P. and T. Alkemade, "Use of Transport Layer Security (TLS) in the Extensible Messaging and Presence Protocol (XMPP)", RFC 7590, DOI 10.17487/RFC7590, June 2015.
[XEP-0030] Hildebrand, J., Millard, P., Eatmon, R. and P. Saint-Andre, "Service Discovery", XSF XEP 0030, July 2010.
[XEP-0060] Millard, P. and P. Saint-Andre, "Publish-Subscribe", XSF XEP 0060, December 2016.

11.2. Informative References

[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, DOI 10.17487/RFC5246, August 2008.
[RFC7970] Danyliw, R., "The Incident Object Description Exchange Format Version 2", RFC 7970, DOI 10.17487/RFC7970, November 2016.

Authors' Addresses

Nancy Cam-Winget (editor) Cisco Systems 3550 Cisco Way San Jose, CA 95134 USA EMail: ncamwing@cisco.com
Syam Appala Cisco Systems 3550 Cisco Way San Jose, CA 95134 USA EMail: syam1@cisco.com
Scott Pope Cisco Systems 5400 Meadows Road Suite 300 Lake Oswego, OR 97035 USA EMail: scottp@cisco.com
Peter Saint-Andre Jabber.org P.O. Box 787 Parker, CO 80134 USA EMail: stpeter@jabber.org