Network Working Group P. Saint-Andre
Internet-Draft XMPP Standards Foundation
Intended status: Informational November 7, 2007
Expires: May 10, 2008
The Jabber-ID Header Field
draft-saintandre-jabberid-07
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
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."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on May 10, 2008.
Copyright Notice
Copyright (C) The IETF Trust (2007).
Abstract
This document defines a header field that enables the author of an
email or netnews message to include a Jabber Identifier in the
message header block for the purpose of associating the author with a
particular Extensible Messaging and Presence Protocol (XMPP) address.
Saint-Andre Expires May 10, 2008 [Page 1]
Internet-Draft Jabber-ID November 2007
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Implementation . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1. Inclusion . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Generation . . . . . . . . . . . . . . . . . . . . . . . . 4
3.3. Processing . . . . . . . . . . . . . . . . . . . . . . . . 5
3.4. Disposition . . . . . . . . . . . . . . . . . . . . . . . . 5
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5
5. Security Considerations . . . . . . . . . . . . . . . . . . . . 5
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6.1. Normative References . . . . . . . . . . . . . . . . . . . 6
6.2. Informative References . . . . . . . . . . . . . . . . . . 6
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 7
Intellectual Property and Copyright Statements . . . . . . . . . . 9
Saint-Andre Expires May 10, 2008 [Page 2]
Internet-Draft Jabber-ID November 2007
1. Introduction
The Extensible Messaging and Presence Protocol (XMPP), documented in
[XMPP-CORE], is a streaming XML technology that enables any two
entities on a network to exchange well-defined but extensible XML
elements (called "XML stanzas") in close to real time. Given XMPP's
heritage in the Jabber open-source community, one of the primary uses
for XMPP is instant messaging and presence as documented in
[XMPP-IM], and XMPP addresses are still referred to as Jabber
Identifiers or Jabber IDs.
Because almost all human users of Jabber/XMPP instant messaging and
presence systems also user email systems and because many such users
also use netnews systems, it can be helpful for such users to specify
their Jabber Identifiers in the messages they author. The Jabber-ID
header field provides a standard location for that information.
Members of the Jabber instant messaging and presence community have
been experimenting with this usage for several years. As a result,
this document provides informational documentation regarding the
syntax and implementation of the Jabber-ID header field, including
the information necessary to register the Jabber-ID field in the
Provisional Message Header Field Registry maintained by the IANA.
Naturally it may be beneficial to define a more general header field
(or fields) that can be used by non-XMPP instant messaging and
presence systems. In all likelihood the result would be one header
field encapsulating a URI that conforms to the "im:" scheme (see
[CPIM]) and a second header field encapsulating a URI that conforms
to the "pres:" scheme (see [CPP]). Experience gained with the
Jabber-ID header field within the Jabber instant messaging and
presence community should provide helpful input to the process of
defining those more general header fields.
2. Syntax
The syntax of the Jabber-ID header field is defined below using
Augmented Backus-Naur Form (as specified by [ABNF]), where the
"pathxmpp" rule is defined in [XMPP-URI] and the remaining rules are
defined in [MESSAGE]:
"Jabber-ID:" SP *WSP pathxmpp *WSP CRLF
Note: Although a native XMPP address may contain virtually any
[UNICODE] character, an electronic mail header may contain only
printable [US-ASCII] characters (see Section 2 of [MESSAGE]).
Therefore, any characters outside the US-ASCII range in an XMPP
address must be converted to US-ASCII before inclusion in a Jabber-ID
Saint-Andre Expires May 10, 2008 [Page 3]
Internet-Draft Jabber-ID November 2007
header field, in accordance with the rules specified in [XMPP-URI].
In addition, characters allowed in XMPP node identifiers and XMPP
resource identifiers but disallowed by the relevant URI rules must be
percent-encoded in accordance with the rules specified in [URI]; for
details, see [XMPP-URI].
3. Implementation
3.1. Inclusion
The Jabber-ID header field is associated with the author of the
message; see [MESSAGE]. If the "From:" header field contains more
than one mailbox, the Jabber-ID header field should not be added to
the message. There should be no more than one instance of the
Jabber-ID header field.
3.2. Generation
For a user whose XMPP address is "juliet@example.com", the
corresponding Jabber-ID header field would be:
Jabber-ID: juliet@example.com
As noted, non-US-ASCII characters in XMPP addresses must be converted
into US-ASCII before inclusion in a Jabber-ID header field. Consider
the following XMPP address:
jiři@čechy.example
Note: The string "ř" stands for the Unicode character LATIN
SMALL LETTER R WITH CARON and the string "č" stands for the
Unicode character LATIN SMALL LETTER C WITH CARON, following the "XML
Notation" used in [IRI] to represent characters that cannot be
rendered in ASCII-only documents (note also that these characters are
represented in their stringprep canonical form; see [STRINGPREP]).
For those who do not read Czech, this example could be Anglicized as
"george@czech-lands.example".
Following the rules in [XMPP-URI] and the Jabber-ID header field
syntax, the resulting header field would be:
Jabber-ID:
ji%C5%99i@%C4%8Dechy.example
Saint-Andre Expires May 10, 2008 [Page 4]
Internet-Draft Jabber-ID November 2007
3.3. Processing
Upon receiving an email message containing a Jabber-ID header field,
a mail user agent (MUA) that supports the field should process the
field by converting any escaped characters to characters outside the
US-ASCII range in accordance with the rules specified in [XMPP-URI],
thus yielding a Jabber Idenfitier that can be used for native
communication on an XMPP network.
3.4. Disposition
A mail user agent (MUA) that has processed a Jabber-ID header field
may provide appropriate interface elements if it has independent
information linking the author of the email message with the
specified Jabber Identifier (e.g., via a user-controlled address book
or automated directory lookup). Such interface elements might
include an indicator of "presence" (i.e., that the author is online
and available for communication via XMPP) if the user is subscribed
to the presence of the author, and an element that enables the user
to initiate a text chat with the author.
4. IANA Considerations
In accordance with [REG], the IANA registers the "Jabber-ID" header
field in the Provisional Message Header Field Registry. The
registration template is as follows:
Header field name: Jabber-ID
Applicable protocol: mail, netnews
Status: provisional
Author/Change controller: XMPP Registrar
Specification document(s): draft-saintandre-jabberid-06 [Note to
IANA and RFC Editor: Replace I-D name with RFC XXXX, where "XXXX"
is the number of the RFC that results from this specification, if
any]
Related information: For details regarding the native usage and
format of Jabber Identifiers, see Extensible Messaging and
Presence Protocol (RFC 3920).
5. Security Considerations
Message headers are an existing standard and are designed to easily
accommodate new types. Although the Jabber-ID header field may be
forged, this problem is inherent in Internet email; however, because
a forged Jabber-ID header field may break automated processing,
applications should not depend on the Jabber-ID header field to
Saint-Andre Expires May 10, 2008 [Page 5]
Internet-Draft Jabber-ID November 2007
indicate the authenticity of an email message or the identity of its
author or sender. Including the Jabber-ID header field among the
signer header fields in DomainKeys Identified Mail (DKIM) can help to
mitigate against forging of the header (see [DKIMSIG]).
Advertising XMPP addresses in email headers may make it easier for
malicious users to harvest XMPP addresses and therefore to send
unsolicited bulk communications to the users or applications
represented by those addresses. Care should be taken in balancing
the benefits of open information exchange against the potential costs
of unwanted communication. An email user agent that is capable of
including the Jabber-ID header field in outgoing email messages
should provide an option for its user to disable inclusion of the
Jabber-ID header field generally, on a per-recipient basis, and on a
per-message basis.
The security considerations discussed in [IRI], [URI], [XMPP-CORE],
[XMPP-IM], and [XMPP-URI] may also apply to the Jabber-ID message
header.
6. References
6.1. Normative References
[ABNF] Crocker, D. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", RFC 4234, October 2005.
[MESSAGE] Resnick, P., "Internet Message Format", RFC 2822,
April 2001.
[XMPP-URI]
Saint-Andre, P., "Internationalized Resource Identifiers
(IRIs) and Uniform Resource Identifiers (URIs) for the
Extensible Messaging and Presence Protocol (XMPP)",
draft-saintandre-rfc4622bis-01 (work in progress),
June 2007.
6.2. Informative References
[CPIM] Peterson, J., "Common Profile for Instant Messaging
(CPIM)", RFC 3860, August 2004.
[CPP] Peterson, J., "Common Profile for Presence (CPP)",
RFC 3859, August 2004.
[DKIMSIG] Allman, E., Callas, J., Delany, M., Libbey, M., Fenton,
J., and M. Thomas, "DomainKeys Identified Mail (DKIM)
Saint-Andre Expires May 10, 2008 [Page 6]
Internet-Draft Jabber-ID November 2007
Signatures", RFC 4871, May 2007.
[IRI] Duerst, M. and M. Suignard, "Internationalized Resource
Identifiers (IRIs)", RFC 3987, January 2005.
[REG] Klyne, G., Nottingham, M., and J. Mogul, "Registration
Procedures for Message Header Fields", BCP 90, RFC 3864,
September 2004.
[STRINGPREP]
Hoffman, P. and M. Blanchet, "Preparation of
Internationalized Strings ("stringprep")", RFC 3454,
December 2002.
[UNICODE] The Unicode Consortium, "The Unicode Standard, Version
3.2.0", 2000.
The Unicode Standard, Version 3.2.0 is defined by The
Unicode Standard, Version 3.0 (Reading, MA, Addison-
Wesley, 2000. ISBN 0-201-61633-5), as amended by the
Unicode Standard Annex #27: Unicode 3.1
(http://www.unicode.org/reports/tr27/) and by the Unicode
Standard Annex #28: Unicode 3.2
(http://www.unicode.org/reports/tr28/).
[URI] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, January 2005.
[US-ASCII]
American National Standards Institute, "Coded Character
Set - 7-bit American Standard Code for Information
Interchange", ANSI X3.4, 1986.
[XMPP-CORE]
Saint-Andre, P., "Extensible Messaging and Presence
Protocol (XMPP): Core", RFC 3920, October 2004.
[XMPP-IM] Saint-Andre, P., "Extensible Messaging and Presence
Protocol (XMPP): Instant Messaging and Presence",
RFC 3921, October 2004.
Saint-Andre Expires May 10, 2008 [Page 7]
Internet-Draft Jabber-ID November 2007
Author's Address
Peter Saint-Andre
XMPP Standards Foundation
Email: stpeter@jabber.org
URI: https://stpeter.im/
Saint-Andre Expires May 10, 2008 [Page 8]
Internet-Draft Jabber-ID November 2007
Full Copyright Statement
Copyright (C) The IETF Trust (2007).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Acknowledgment
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
Saint-Andre Expires May 10, 2008 [Page 9]