Network Working Group J. Hildebrand Internet-Draft P. Saint-Andre Intended status: Standards Track Cisco Expires: November 9, 2009 May 8, 2009 Multiplexing of Connections between Extensible Messaging and Presence Protocol (XMPP) Servers Using Transport Layer Security (TLS) draft-hildebrand-xmpp-tls-multiplexing-00 Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and 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 November 9, 2009. Copyright Notice Copyright (c) 2009 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 in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Abstract This document specifies requirements for multiplexing of connections between Extensible Messaging and Presence Protocol (XMPP) servers Hildebrand & Saint-Andre Expires November 9, 2009 [Page 1] Internet-Draft XMPP Multiplexing Using TLS May 2009 using Transport Layer Security (TLS). Table of Contents 1. Problem Statement . . . . . . . . . . . . . . . . . . . . . . . 3 2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Security Considerations . . . . . . . . . . . . . . . . . . . . 4 4. References . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4.1. Normative References . . . . . . . . . . . . . . . . . . . 4 4.2. Informative References . . . . . . . . . . . . . . . . . . 4 Appendix A. Copying Conditions . . . . . . . . . . . . . . . . . . 4 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 5 Hildebrand & Saint-Andre Expires November 9, 2009 [Page 2] Internet-Draft XMPP Multiplexing Using TLS May 2009 1. Problem Statement The Extensible Messaging and Presence Protocol (XMPP) has been widely deployed over the Internet since publication of [RFC3920] in 2004. One common deployment scenario is for a hosting provider or application service provider to service multiple domains on the same machine or machines. With the increasing popularity of so-called "cloud computing", some of these providers service thousands of domains. Because RFC 3920 specifies that each domain-to-domain "link" shall use two XML streams (one in each direction) and because currently XMPP has no method by which an existing stream can be re- used for additional domains, establishing connectivity between two XMPP "clouds" can quickly necessitate a large number of TCP connections. This is true even if the clouds have authenticated to each other using Transport Layer Security [TLS] and the Simple Authentication and Security Layer [SASL] with digital certificates issued by trusted roots. Therefore it would be desirable to define a method by which two XMPP clouds could optionally multiplex communications between themselves, so that an existing domain-to- domain stream could be re-used for additional domains. This document defines requirements for such a method. Possible solutions will be defined in separate specifications, potentially for inclusion into [rfc3920bis]. 2. Requirements We stipulate the following requirements for server-to-server multiplexing in XMPP: o The multiplexing method must be backwards-compatible with existing server-to-server connection methods. o A party that supports multiplexing must also support bidirectional XML streams. o Each party to a server-to-server communication must be able to determine if the other party supports multiplexing. o If the addition of a new domain to an existing domain-to-domain stream fails, the existing stream must not be terminated, and the adding party may attempt to add the new domain again. o Multiplexing shall depend on presentation of a valid digital certificate for the multiplexed domain. o The certificate for a multiplexed domain should not be same (i.e., have the same subject) as a certificate that has previously been accepted for the stream; however, if it is the same then it shall replace the previous certificate with the same subject (e.g., to present a new certificate with a different expiry time). Hildebrand & Saint-Andre Expires November 9, 2009 [Page 3] Internet-Draft XMPP Multiplexing Using TLS May 2009 o When a multiplexed domain is accepted for the stream, each name on the certificate (e.g., id-on-dnsSRV or id-on-xmppAddr) becomes valid for this stream. o The protocol for accepting the initial certificate for a stream may be different from the protocol for accepting subsequent ("multiplexed") certificates for the stream. o The process of adding a subsequent domain shall not affect transmission of application data over the stream. o If the stream is resumed, all of the certificates that were accepted for the previous session apply to the resumed session. o It is a security violation to proceed with transmission of application between two domains if multiplexing for those domains failed. It is acceptable for the party that receives such applicatino data to terminate the stream. o It must be possible to remove a domain from the stream. 3. Security Considerations The requirements in this memo are intended to provide guidance regarding solutions to the problem of securely multiplexing domain- to-domain XMPP communications over a single XML stream. 4. References 4.1. Normative References [RFC3920] Saint-Andre, P., Ed., "Extensible Messaging and Presence Protocol (XMPP): Core", RFC 3920, October 2004. [TLS] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, August 2008. 4.2. Informative References [rfc3920bis] Saint-Andre, P., "Extensible Messaging and Presence Protocol (XMPP): Core", draft-saintandre-rfc3920bis-09 (work in progress), March 2009. [SASL] Melnikov, A. and K. Zeilenga, "Simple Authentication and Security Layer (SASL)", RFC 4422, June 2006. Appendix A. Copying Conditions Regarding this entire document or any portion of it, the authors make Hildebrand & Saint-Andre Expires November 9, 2009 [Page 4] Internet-Draft XMPP Multiplexing Using TLS May 2009 no guarantees and are not responsible for any damage resulting from its use. The authors grant irrevocable permission to anyone to use, modify, and distribute it in any way that does not diminish the rights of anyone else to use, modify, and distribute it, provided that redistributed derivative works do not contain misleading author or version information. Derivative works need not be licensed under similar terms. Authors' Addresses Joe Hildebrand Cisco Email: jhildebr@cisco.com Peter Saint-Andre Cisco Email: psaintan@cisco.com Hildebrand & Saint-Andre Expires November 9, 2009 [Page 5]