Application Layer Protocol Negotiation (ALPN) for Session Traversal Utilities for NAT (STUN) and Traversal Using Relays around NAT (TURN)
draft-ietf-tram-alpn-01
The information below is for an old version of the document.
| Document | Type | Active Internet-Draft (tram WG) | |
|---|---|---|---|
| Authors | Prashanth Patil , Tirumaleswar Reddy.K , Gonzalo Salgueiro , Marc Petit-Huguenin | ||
| Last updated | 2014-09-10 | ||
| Stream | Internet Engineering Task Force (IETF) | ||
| Formats | plain text xml htmlized pdfized bibtex | ||
| Reviews | |||
| Stream | WG state | WG Document | |
| Document shepherd | (None) | ||
| IESG | IESG state | I-D Exists | |
| Consensus boilerplate | Unknown | ||
| Telechat date | (None) | ||
| Responsible AD | (None) | ||
| Send notices to | (None) |
draft-ietf-tram-alpn-01
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
Abstract
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).
Status of This Memo
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 Notice
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
Patil, et al. Expires March 14, 2015 [Page 1]
Internet-Draft ALPN for STUN/TURN September 2014
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.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 3
4. Security Considerations . . . . . . . . . . . . . . . . . . . 4
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 4
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 4
6.1. Normative References . . . . . . . . . . . . . . . . . . 4
6.2. Informative References . . . . . . . . . . . . . . . . . 5
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 5
1. Introduction
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:
1. Consider an Enterprise network that deploys a TURN server in a
DeMilitarized Zone (DMZ) to audit all media sessions from inside
the Enterprise premises to any external peer. In this
deployment, an Enterprise firewall could use the TURN ALPN
identifer to detect, and act accordingly, the use of a TURN
server outisde the Enterprise domain (i.e., a TURN server
provided by an application server, access network etc).
2. If a firewall is configured to block all outgoing traffic except
for TCP traffic to specific ports (e.g., 443 for HTTPS), a TURN
Patil, et al. Expires March 14, 2015 [Page 2]
Internet-Draft ALPN for STUN/TURN September 2014
server listening on its default ports (3478 for TCP/UDP, 5349 for
TLS) would not be reachable. However, despite the restrictions
imposed by the firewall, the TURN server can still be reached on
the allowed HTTPS port if the TURN ALPN identifier is used to
establish usage of TURN as part of the TLS handshake. In this
case, the TURN ALPN identifier sent by the client will be used by
the server to identify that the client intends to make a TURN
request and it must act as a TURN server to relay the traffic to
and from the remote peer.
3. If a TURN server is in a resource exhausted state then it could
use the TURN ALPN identifier sent by the client to identify that
the connection will be used to allocate resouces, which the
server cannot accommodate, and hence reject the (D)TLS handshake
with a fatal error.
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.
2. Terminology
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].
3. IANA Considerations
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:
Protocol: Session Traversal Utilities for NAT (STUN)
Identification Sequence: 0x73 0x74 0x75 0x6E ("stun")
Specification: This document (RFCXXXX)
The "turn" label identifies TURN over TLS/DTLS:
Protocol: Traversal Using Relays around NAT (TURN)
Identification Sequence: 0x74 0x75 0x72 0x6E ("turn")
Specification: This document (RFCXXXX)
Patil, et al. Expires March 14, 2015 [Page 3]
Internet-Draft ALPN for STUN/TURN September 2014
4. Security Considerations
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.
5. Acknowledgements
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.
6. References
6.1. Normative References
[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)", draft-ietf-tram-stun-dtls-05
(work in progress), June 2014.
[I-D.mbelshe-httpbis-spdy]
Belshe, M. and R. Peon, "SPDY Protocol", draft-mbelshe-
httpbis-spdy-00 (work in progress), 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.
Patil, et al. Expires March 14, 2015 [Page 4]
Internet-Draft ALPN for STUN/TURN September 2014
6.2. Informative References
[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.
Authors' Addresses
Prashanth Patil
Cisco Systems, Inc.
Bangalore
India
Email: praspati@cisco.com
Tirumaleswar Reddy
Cisco Systems, Inc.
Cessna Business Park, Varthur Hobli
Sarjapur Marathalli Outer Ring Road
Bangalore, Karnataka 560103
India
Email: tireddy@cisco.com
Gonzalo Salgueiro
Cisco Systems, Inc.
7200-12 Kit Creek Road
Research Triangle Park, NC 27709
US
Email: gsalguei@cisco.com
Marc Petit-Huguenin
Impedance Mismatch
USA
Email: marc@petit-huguenin.org
Patil, et al. Expires March 14, 2015 [Page 5]