TRAM | P. Patil |
Internet-Draft | T. Reddy |
Intended status: Standards Track | G. Salgueiro |
Expires: March 14, 2015 | Cisco |
M. Petit-Huguenin | |
Impedance Mismatch | |
September 10, 2014 |
Application Layer Protocol Negotiation (ALPN) for Session Traversal Utilities for NAT (STUN) and Traversal Using Relays around NAT (TURN)
draft-ietf-tram-alpn-01
Application Layer Protocol Negotiation (ALPN) labels for the Session Traversal Utilities for NAT (STUN) and Traversal Using Relays around NAT (TURN) are defined in this document to allow the application layer to negotiate STUN, TURN within the Transport Layer Security (TLS) connection. The STUN ALPN protocol identifier and TURN ALPN identifier applies to both TLS and Datagram Transport Layer Security (DTLS).
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on March 14, 2015.
Copyright (c) 2014 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 (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
STUN can be securely transported using TLS-over-TCP (referred to as TLS [RFC5246]), as specified in [RFC5389], or TLS-over-UDP (referred to as DTLS [RFC6347]), as specified in [I-D.ietf-tram-stun-dtls].
ALPN [RFC7301] enables an endpoint to positively identify STUN protocol and TURN in TLS/DTLS and distinguish them from other TLS/DTLS protocols. With ALPN, the client sends the list of supported application protocols as part of the TLS/DTLS ClientHello message. The server chooses a protocol and sends the selected protocol as part of the TLS/DTLS ServerHello message. The application protocol negotiation can thus be accomplished within the TLS/DTLS handshake, without adding network round-trips, and allows the server to associate a different certificate with each application protocol, if desired.
TURN ALPN is useful in the following scenarios:
This document defines entries ("stun") and ("turn") in the "Application Layer Protocol Negotiation (ALPN) Protocol IDs" registry established by [RFC7301] to identify the STUN protocol and usage of TURN.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
The following entry is to be added to the "Application Layer Protocol Negotiation (ALPN) Protocol IDs" registry established by [RFC7301].
The "stun" label identifies STUN over TLS/DTLS:
The "turn" label identifies TURN over TLS/DTLS:
The ALPN STUN protocol identifier does not introduce any specific security considerations beyond those detailed in the TLS ALPN Extension specification [RFC7301]. It also does not impact security of TLS/DTLS session establishment nor application data exchange.
This work benefited from the discussions and invaluable input by the various members of the TRAM working group. These include Simon Perrault, Paul Kyzivat, Brandon Williams and Andrew Hutton. Special thanks to Martin Thomson and Oleg Moskalenko for their constructive comments, suggestions, and early reviews that were critical to the formulation and refinement of this document.
[I-D.ietf-tram-stun-dtls] | Petit-Huguenin, M. and G. Salgueiro, "Datagram Transport Layer Security (DTLS) as Transport for Session Traversal Utilities for NAT (STUN)", Internet-Draft draft-ietf-tram-stun-dtls-05, June 2014. |
[I-D.mbelshe-httpbis-spdy] | Belshe, M. and R. Peon, "SPDY Protocol", Internet-Draft draft-mbelshe-httpbis-spdy-00, February 2012. |
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. |
[RFC5246] | Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, August 2008. |
[RFC5389] | Rosenberg, J., Mahy, R., Matthews, P. and D. Wing, "Session Traversal Utilities for NAT (STUN)", RFC 5389, October 2008. |
[RFC6347] | Rescorla, E. and N. Modadugu, "Datagram Transport Layer Security Version 1.2", RFC 6347, January 2012. |
[RFC7301] | Friedl, S., Popov, A., Langley, A. and E. Stephan, "Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension", RFC 7301, July 2014. |
[RFC5766] | Mahy, R., Matthews, P. and J. Rosenberg, "Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN)", RFC 5766, April 2010. |