You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
3.8 KiB

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE xep SYSTEM 'xep.dtd' [
<!ENTITY % ents SYSTEM 'xep.ent'>
<!ENTITY otr3 "<span class='ref'><link url=''>Off-the-Record Messaging Protocol version 3</link></span> <note>Off-the-Record Messaging Protocol (OTR) version 3 &lt;<link url=''></link>&gt; (Accessed 2015-08-30).</note>" >
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
<title>OTR Discovery</title>
This document provides a mechanism by which OTR encryption support can be
discovered in XMPP, without relying on OTRs protocol agnostic discovery
<type>Standards Track</type>
<spec>XMPP Core</spec>
<initials>XEP Editor (jwi)</initials>
<remark>Defer due to lack of activity.</remark>
<remark><p>Initial version approved by the Council.</p></remark>
<section1 topic='Introduction' anchor='intro'>
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 &xep0364;. 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
<section1 topic='Discovering support' anchor='disco'>
If an entity supports OTR it MUST advertise the fact by returning a
feature of 'urn:xmpp:otr:0' &VNOTE; in response to a &xep0030; information
request. This indicates support for OTRv3 as defined by &otr3;.
<example caption='Disco response'><![CDATA[
<feature var='urn:xmpp:otr:0' />]]></example>
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.
<section1 topic='Security Considerations' anchor='security'>
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).
<section1 topic='IANA Considerations' anchor='iana'>
This document requires no interaction with the Internet Assigned Numbers
Authority (IANA).
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
<p>This specification defines the following XML namespaces:</p>
The &REGISTRAR; shall include the foregoing namespaces in its disco
features registry as defined in &xep0030;.
<code caption='Registry Submission'><![CDATA[
<desc>Indicates support for Off-the-Record Messaging (OTR) version 3</desc>