Abstract: | This document provides a mechanism by which OTR encryption support can be discovered in XMPP, without relying on OTRs protocol agnostic discovery mechanism. |
Author: | Sam Whited |
Copyright: | © 1999 – 2017 XMPP Standards Foundation. SEE LEGAL NOTICES. |
Status: | Experimental |
Type: | Standards Track |
Version: | 0.0.1 |
Last Updated: | 2016-07-15 |
WARNING: This Standards-Track document is Experimental. Publication as an XMPP Extension Protocol does not imply approval of this proposal by the XMPP Standards Foundation. Implementation of the protocol described herein is encouraged in exploratory implementations, but production systems are advised to carefully consider whether it is appropriate to deploy implementations of this protocol before it advances to a status of Draft.
1. Introduction
2. Discovering support
3. Security Considerations
4. IANA Considerations
5. XMPP Registrar Considerations
Appendices
A: Document Information
B: Author Information
C: Legal Notices
D: Relation to XMPP
E: Discussion Venue
F: Requirements Conformance
G: Notes
H: Revision History
The Off-the-Record messaging protocol (OTR) is widely layered on top of XMPP to provide end-to-end encryption. Current use of the protocol is described in Current Off-the-Record Messaging Usage (XEP-0364) [1]. OTR provides its own discovery mechanism in which it sends messages with special whitespace characters to indicate support. While this works when initializing a session, there is no way to query a client for support and to know in advance that a particular version of OTR is supported. This specification aims to solve that by providing an in-band mechanism for discovering OTR support in XMPP.
It should be noted that newer, more secure encryption protocols exist for XMPP, and that new implementations of OTR are discouraged. This protocol is primarily intended to solve issues with existing implementations of OTR.
If an entity supports OTR it MUST advertise the fact by returning a feature of 'urn:xmpp:otr:0' (see Namespace Versioning regarding the possibility of incrementing the version number) in response to a Service Discovery (XEP-0030) [2] information request. This indicates support for OTRv3 as defined by Off-the-Record Messaging Protocol version 3 [3].
<feature var='urn:xmpp:otr:0' />
If older versions of OTR are required, they may be discovered out of band using OTRs built in mechanism which is beyond the scope of this document.
Because OTR support is advertised outside of any end-to-end encrypted stream, it may be subject to downgrade attacks (eg. the server operator may remove OTR from the features list).
This document requires no interaction with the Internet Assigned Numbers Authority (IANA).
This specification defines the following XML namespaces:
The XMPP Registrar [4] shall include the foregoing namespaces in its disco features registry as defined in Service Discovery (XEP-0030) [2].
<var> <name>urn:xmpp:otr:0</name> <desc>Indicates support for Off-the-Record Messaging (OTR) version 3</desc> <doc>XEP-0378</doc> </var>
Series: XEP
Number: 0378
Publisher: XMPP Standards Foundation
Status:
Experimental
Type:
Standards Track
Version: 0.0.1
Last Updated: 2016-07-15
Approving Body: XMPP Council
Dependencies: XMPP Core, XEP-0030
Supersedes: None
Superseded By: None
Short Name: OTR-DISCO
Source Control:
HTML
This document in other formats:
XML
PDF
Email:
sam@samwhited.com
JabberID:
sam@samwhited.com
URI:
https://blog.samwhited.com/
The Extensible Messaging and Presence Protocol (XMPP) is defined in the XMPP Core (RFC 6120) and XMPP IM (RFC 6121) specifications contributed by the XMPP Standards Foundation to the Internet Standards Process, which is managed by the Internet Engineering Task Force in accordance with RFC 2026. Any protocol defined in this document has been developed outside the Internet Standards Process and is to be understood as an extension to XMPP rather than as an evolution, development, or modification of XMPP itself.
The primary venue for discussion of XMPP Extension Protocols is the <standards@xmpp.org> discussion list.
Discussion on other xmpp.org discussion lists might also be appropriate; see <http://xmpp.org/about/discuss.shtml> for a complete list.
Errata can be sent to <editor@xmpp.org>.
The following requirements keywords as used in this document are to be interpreted as described in RFC 2119: "MUST", "SHALL", "REQUIRED"; "MUST NOT", "SHALL NOT"; "SHOULD", "RECOMMENDED"; "SHOULD NOT", "NOT RECOMMENDED"; "MAY", "OPTIONAL".
1. XEP-0364: Current Off-the-Record Messaging Usage <https://xmpp.org/extensions/xep-0364.html>.
2. XEP-0030: Service Discovery <https://xmpp.org/extensions/xep-0030.html>.
3. Off-the-Record Messaging Protocol (OTR) version 3 <https://otr.cypherpunks.ca/Protocol-v3-4.0.0.html> (Accessed 2015-08-30).
4. The XMPP Registrar maintains a list of reserved protocol namespaces as well as registries of parameters used in the context of XMPP extension protocols approved by the XMPP Standards Foundation. For further information, see <https://xmpp.org/registrar/>.
Note: Older versions of this specification might be available at http://xmpp.org/extensions/attic/
Initial version approved by the Council.
(ssw)END