rfc-8600

Using Extensible Messaging and Presence Protocol (XMPP) for Security Information Exchange

N. Cam-Winget (Editor), S. Appala, S. Pope, P. Saint-Andre
date2019-06 streamIETF areasec wgmile statusPROPOSED STANDARD pages28 canonicalhttps://www.rfc-editor.org/rfc/rfc8600 doi10.17487/RFC8600
This document describes how to use the Extensible Messaging and Presence Protocol (XMPP) to collect and distribute security incident reports and other security-relevant information between network- connected devices, primarily for the purpose of communication among Computer Security Incident Response Teams and associated entities. To illustrate the principles involved, this document describes such a usage for the Incident Object Description Exchange Format (IODEF).

Extracted elements (31)

design-rationale §8.3.7

End-to-end encryption between Provider and Consumer is acknowledged as desirable but is out of scope because there is no standardized method for encryption of one-to-many XMPP messages. Implementers needing E2E must use the basic instant-messaging pattern (RFC 6121) instead of XEP-0060.

security, crypto, realtime

design-rationale §8.3.4

The open, presence, and roster XEP-0060 access models are excluded from XMPP-Grid because open allows uncontrolled access and presence/roster are appropriate only for instant-messaging applications, not security incident exchange among authorized entities.

security, realtime

design-rationale §3

XMPP publish-subscribe (XEP-0060) was chosen for its one-to-many communications pattern to support high scalability to hundreds of thousands of Platforms; the Broker handles replication so Providers unicast a single update that fans out to all Consumers.

realtime, security

interoperability-note §8.3.7

While XMPP-Grid uses XEP-0060 for publish-subscribe (one-to-many), implementations needing end-to-end encryption must fall back to the basic XMPP instant-messaging pattern (RFC 6121) with a suitable E2E extension, since XEP-0060 has no standardized E2E encryption support.

realtime, security

normative-requirement §8.3.4 SHOULD

A Broker SHOULD support only the 'authorize' access model (Topic owner approves subscription requests) and the 'whitelist' access model (only preconfigured Platforms can subscribe). The open, presence, and roster models are inappropriate for XMPP-Grid.

security, realtime

normative-requirement §8.3.3 SHOULD NOT

Administrators of XMPP-Grid Controllers SHOULD NOT use password-based authentication, but SHOULD instead use non-reusable credentials and multi-factor authentication where available.

security

normative-requirement §6 MUST

An XMPP-Grid Controller MUST support 'offline messaging' delivery semantics as specified in RFC 6121 (using the XMPP <message/> stanza) to ensure messages are delivered to Consumers that are not online at publication time.

realtime, security

normative-requirement §4 MUST

Implementations MUST implement the publish-subscribe extension XEP-0060 to facilitate the asynchronous sharing of information.

realtime, security

normative-requirement §4 SHOULD

Implementations SHOULD implement Service Discovery as defined in XEP-0030 to facilitate dynamic discovery of available information and namespaces (Topics). XEP-0059 result set management SHOULD be used when discovery results are large.

realtime, security

normative-requirement §5 MUST

The disco#info response from a Broker MUST include an XMPP data form (XEP-0004) with a 'pubsub#type' field that specifies the supported namespace (e.g., the IODEF namespace) so Platforms can identify which Topics match their data format.

realtime, security

normative-requirement §8.3.2 SHOULD

The XMPP-Grid Controller SHOULD include a full authorization model so individual Platforms can be configured with only the privileges they need, and SHOULD make it easy to revoke a Platform's authorization when necessary.

security

normative-requirement §8.3.2 SHOULD

The XMPP-Grid Controller SHOULD include auditable logs of Platform activities to aid in forensic analysis and detection of misbehavior.

security

normative-requirement §8.3.1 MUST

The XMPP-Grid Platform MUST verify the XMPP-Grid Controller's certificate and determine whether the Controller is trusted before completing the TLS handshake. Mutual authentication between Platform and Controller SHOULD be used.

tls, pkix, security

normative-requirement §8.3.1 MUST

To ensure interoperability, implementations MUST implement at least either the SASL EXTERNAL mechanism (RFC 4422) or the SASL SCRAM mechanism.

security, crypto

normative-requirement §8.3.1 SHOULD

When using SASL SCRAM, the SCRAM-SHA-256-PLUS variant SHOULD be preferred over SCRAM-SHA-256, and SHA-256 variants (RFC 7677) SHOULD be preferred over SHA-1 variants (RFC 5802).

security, crypto

normative-requirement §4 MUST

XMPP-Grid implementations MUST adhere to the mandatory-to-implement and mandatory-to-negotiate features as defined in RFC 6120 (XMPP Core).

realtime, security

normative-requirement §8.3.1 MUST

XMPP-Grid messages MUST be carried over TLS, minimally TLS 1.2 and preferably TLS 1.3 (RFC 8446), as described in RFC 6120 and updated by RFC 7590.

tls, security

normative-requirement §8.3.1 SHOULD

XMPP-Grid Platforms and Controllers using certificate-based authentication SHOULD each verify the revocation status of the other party's certificate.

pkix, security

privacy-consideration §9

Audit logs maintained by XMPP-Grid Controllers must be handled carefully to avoid storing information that violates privacy agreements or laws. Restricting access to sensitive Topics, or omitting sensitive data entirely, is the simplest means of protection.

privacy, security

privacy-consideration §9

XMPP-Grid Platforms can publish endpoint health, network access events, roles, capabilities, and end-user identity; this information could be correlated to identify specific users' network activity. Deployers MUST ensure published data does not violate user agreements or local regulations.

privacy, security

protocol-element §2

A Topic is a contextual information channel on a Broker, limited to a specific type and format of security data (e.g., IODEF namespace). Providers publish to Topics; Consumers subscribe and receive real-time updates. Topics map to XMPP publish-subscribe Nodes (XEP-0060).

realtime, security

protocol-element §5

Service discovery uses XEP-0030 'disco#items' to enumerate available Topics, and 'disco#info' per Topic to retrieve the pubsub#type field (payload namespace). This allows Platforms to dynamically identify Topics that carry specific data formats such as IODEF.

realtime, security

protocol-element §2

The Broker is an XMPP publish-subscribe service acting as a control-plane broker: it handles authorization of Consumers and Providers to Topics, receives messages from Providers, and delivers published messages to Consumers.

realtime, security

protocol-element §6

Topic creation uses the XEP-0060 pubsub <create> stanza with optional <configure> parameters including pubsub#access_model (e.g., 'authorize'), pubsub#persist_items, and pubsub#send_last_published_item to control subscription and storage behavior.

realtime, security

security-consideration §8.2.3

A compromised XMPP-Grid Controller poses severe risks beyond what a Platform can do, including exposing different data to different Platforms (inconsistent views), obtaining and caching Platform credentials for future impersonation, and eavesdropping or modifying data in transit between Providers and Consumers.

security

security-consideration §8.2.2

An authorized but compromised XMPP-Grid Platform can mount attacks including flooding the Controller with false alarms, advertising crafted payloads to exploit other Platforms, issuing subscriptions that cause resource exhaustion, and advertising false data that induces incorrect behavior.

security

security-consideration §8.3.5

An XMPP-Grid Controller MAY establish limits on search or subscription result sizes, and Platforms SHOULD use XEP-0059 to bound result sets, to mitigate resource-exhaustion denial-of-service attacks from overly broad queries.

security

security-consideration §8.3.6

Certificate pinning is recommended for particularly critical certificates (such as the XMPP-Grid Controller's certificate) so that a compromised CA cannot silently substitute another certificate; pinned certificates should still be checked for revocation.

pkix, security

security-consideration §8.2.3

Some SASL mechanisms (such as PLAIN) allow a compromised Controller to cache Platform credentials for future impersonation after a breach is repaired; SCRAM and EXTERNAL with TLS mutual certificate-based authentication do not admit this class of attack and are therefore preferred.

security, crypto

security-consideration §8.1

The trust model delineates that the network provides only best-effort delivery without confidentiality or integrity; the Controller is trusted to broker and enforce authorization but is not trusted to verify the truth/correctness of data; and Platforms are trusted to preserve confidentiality of retrieved data.

security

state-machine §4

XMPP-Grid workflow: (a) Platform requests connection to Controller; (b) Controller authenticates Platform; (c) Platform establishes authorized privileges (publish/subscribe) with Broker; (d) Platform publishes, subscribes, or queries Topics; (e) Provider unicasts updates through Broker, which replicates to Consumers.

realtime, security