draft-ietf-tram-alpn-00.txt   draft-ietf-tram-alpn-01.txt 
TRAM P. Patil TRAM P. Patil
Internet-Draft T. Reddy Internet-Draft T. Reddy
Intended status: Standards Track G. Salgueiro Intended status: Standards Track G. Salgueiro
Expires: January 24, 2015 Cisco Expires: March 14, 2015 Cisco
M. Petit-Huguenin M. Petit-Huguenin
Jive Communications Impedance Mismatch
July 23, 2014 September 10, 2014
Application Layer Protocol Negotiation (ALPN) for Session Traversal Application Layer Protocol Negotiation (ALPN) for Session Traversal
Utilities for NAT (STUN) Utilities for NAT (STUN) and Traversal Using Relays around NAT (TURN)
draft-ietf-tram-alpn-00 draft-ietf-tram-alpn-01
Abstract Abstract
An Application Layer Protocol Negotiation (ALPN) label for the Application Layer Protocol Negotiation (ALPN) labels for the Session
Session Traversal Utilities for NAT (STUN) protocol is defined in Traversal Utilities for NAT (STUN) and Traversal Using Relays around
this document to allow the application layer to negotiate STUN within NAT (TURN) are defined in this document to allow the application
the Transport Layer Security (TLS) connection. The STUN ALPN layer to negotiate STUN, TURN within the Transport Layer Security
protocol identifier applies to both TLS and Datagram Transport Layer (TLS) connection. The STUN ALPN protocol identifier and TURN ALPN
Security (DTLS). identifier applies to both TLS and Datagram Transport Layer Security
(DTLS).
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 24, 2015. This Internet-Draft will expire on March 14, 2015.
Copyright Notice Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 26 skipping to change at page 2, line 27
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 4 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 4
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 4 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 4
6.1. Normative References . . . . . . . . . . . . . . . . . . 4 6.1. Normative References . . . . . . . . . . . . . . . . . . 4
6.2. Informative References . . . . . . . . . . . . . . . . . 5 6.2. Informative References . . . . . . . . . . . . . . . . . 5
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 5 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 5
1. Introduction 1. Introduction
STUN can be securely transported using TLS-over-TCP (referred to as STUN can be securely transported using TLS-over-TCP (referred to as
TLS [RFC5246]), as specified in [RFC5389], or TLS-over-UDP (referred TLS [RFC5246]), as specified in [RFC5389], or TLS-over-UDP (referred
to as DTLS [RFC6347]), as specified in to as DTLS [RFC6347]), as specified in [I-D.ietf-tram-stun-dtls].
[I-D.petithuguenin-tram-turn-dtls].
ALPN [I-D.ietf-tls-applayerprotoneg] enables an endpoint to ALPN [RFC7301] enables an endpoint to positively identify STUN
positively identify STUN protocol uses in TLS/DTLS and distinguish protocol and TURN in TLS/DTLS and distinguish them from other TLS/
them from other TLS/DTLS protocols. With ALPN, the client sends the DTLS protocols. With ALPN, the client sends the list of supported
list of supported application protocols as part of the TLS/DTLS application protocols as part of the TLS/DTLS ClientHello message.
ClientHello message. The server chooses a protocol and sends the The server chooses a protocol and sends the selected protocol as part
selected protocol as part of the TLS/DTLS ServerHello message. The of the TLS/DTLS ServerHello message. The application protocol
application protocol negotiation can thus be accomplished within the negotiation can thus be accomplished within the TLS/DTLS handshake,
TLS/DTLS handshake, without adding network round-trips, and allows without adding network round-trips, and allows the server to
the server to associate a different certificate with each application associate a different certificate with each application protocol, if
protocol, if desired. desired.
For example, a firewall could block all outgoing traffic except for TURN ALPN is useful in the following scenarios:
TCP traffic to specific ports (e.g., 443 for HTTPS). A TURN server
listening on its default ports (3478 for TCP/UDP, 5349 for TLS) would
not be reachable in this case. However, despite the restrictions
imposed by the firewall, the TURN server can still be reached on the
allowed HTTPS port if an ALPN STUN protocol identifier is used to
establish the STUN application layer protocol as part of the TLS
handshake. In this case, the STUN 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. Similarly, with Quick UDP
Internet Connections (QUIC) [QUIC], a UDP-based transport protocol
that operates under SPDY [I-D.mbelshe-httpbis-spdy], a TURN server
could be operated on the same ports as that of a SPDY server.
This document defines an entry ("stun") in the "Application Layer 1. Consider an Enterprise network that deploys a TURN server in a
Protocol Negotiation (ALPN) Protocol IDs" registry established by DeMilitarized Zone (DMZ) to audit all media sessions from inside
[I-D.ietf-tls-applayerprotoneg] to identify the STUN protocol. 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).
[[TODO: In various offline discussions some have expressed a desire 2. If a firewall is configured to block all outgoing traffic except
to add an additional ALPN protocol identifier for TURN (see IANA for TCP traffic to specific ports (e.g., 443 for HTTPS), a TURN
Considerations below for example registration). ALPN can be used server listening on its default ports (3478 for TCP/UDP, 5349 for
more granularly to externally identify more of the protocol variants TLS) would not be reachable. However, despite the restrictions
and their different properties (i.e., STUN and TURN over TLS/DTLS). imposed by the firewall, the TURN server can still be reached on
The advantage in dividing it this way is that these different forms the allowed HTTPS port if the TURN ALPN identifier is used to
can be externally identified (obviously, there isn't any inherent establish usage of TURN as part of the TLS handshake. In this
value in the different identifiers from within the TLS case, the TURN ALPN identifier sent by the client will be used by
handshake).There are two main disadvantages. the first is that this the server to identify that the client intends to make a TURN
two application protocol approach may make implementations more request and it must act as a TURN server to relay the traffic to
complicated/confusing. The second is that there may be difficulty in and from the remote peer.
differentiating the two with ALPN when TURN was specifically designed
to be able to run on the same port as STUN usage (in section 13 of 3. If a TURN server is in a resource exhausted state then it could
RFC 5389). Section 4.1.1.2 of RFC 5245 explicitly says that "If the use the TURN ALPN identifier sent by the client to identify that
Allocate request is rejected because the server lacks resources to the connection will be used to allocate resouces, which the
fulfill it, the agent SHOULD instead send a Binding request to obtain server cannot accommodate, and hence reject the (D)TLS handshake
a server reflexive candidate." Does that prove there is no need to with a fatal error.
differentiate TURN and STUN request on UDP/TCP or TLS and now DTLS?
Are there sufficiently meaningful differences between the usages to This document defines entries ("stun") and ("turn") in the
warrant separate STUN and TURN ALPN identifiers?]] "Application Layer Protocol Negotiation (ALPN) Protocol IDs" registry
established by [RFC7301] to identify the STUN protocol and usage of
TURN.
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
3. IANA Considerations 3. IANA Considerations
The following entry is to be added to the "Application Layer Protocol The following entry is to be added to the "Application Layer Protocol
Negotiation (ALPN) Protocol IDs" registry established by Negotiation (ALPN) Protocol IDs" registry established by [RFC7301].
[I-D.ietf-tls-applayerprotoneg].
The "stun" label identifies STUN over TLS/DTLS: The "stun" label identifies STUN over TLS/DTLS:
Protocol: Session Traversal Utilities for NAT (STUN) Protocol: Session Traversal Utilities for NAT (STUN)
Identification Sequence: 0x73 0x74 0x75 0x6E ("stun") Identification Sequence: 0x73 0x74 0x75 0x6E ("stun")
Specification: This document (RFCXXXX) Specification: This document (RFCXXXX)
[[TODO: Shown only as an example. Remove the below registry entry if
open issue above dictates a single STUN ALPN identifier is
sufficient.]]
The "turn" label identifies TURN over TLS/DTLS: The "turn" label identifies TURN over TLS/DTLS:
Protocol: Traversal Using Relays around NAT (TURN) Protocol: Traversal Using Relays around NAT (TURN)
Identification Sequence: 0x74 0x75 0x72 0x6E ("turn") Identification Sequence: 0x74 0x75 0x72 0x6E ("turn")
Specification: This document (RFCXXXX) Specification: This document (RFCXXXX)
4. Security Considerations 4. Security Considerations
The ALPN STUN protocol identifier does not introduce any specific The ALPN STUN protocol identifier does not introduce any specific
security considerations beyond those detailed in the TLS ALPN security considerations beyond those detailed in the TLS ALPN
Extension specification [I-D.ietf-tls-applayerprotoneg]. It also Extension specification [RFC7301]. It also does not impact security
does not impact the security of TLS/DTLS session establishment nor of TLS/DTLS session establishment nor application data exchange.
the application data exchange.
5. Acknowledgements 5. Acknowledgements
This work benefited from the discussions and invaluable input by the This work benefited from the discussions and invaluable input by the
various members of the TRAM working group. These include Simon various members of the TRAM working group. These include Simon
Perrault, Paul Kyzivat, and Andrew Hutton. Special thanks to Martin Perrault, Paul Kyzivat, Brandon Williams and Andrew Hutton. Special
Thomson and Oleg Moskalenko for their constructive comments, thanks to Martin Thomson and Oleg Moskalenko for their constructive
suggestions, and early reviews that were critical to the formulation comments, suggestions, and early reviews that were critical to the
and refinement of this document. formulation and refinement of this document.
6. References 6. References
6.1. Normative References 6.1. Normative References
[I-D.ietf-tls-applayerprotoneg] [I-D.ietf-tram-stun-dtls]
Friedl, S., Popov, A., Langley, A., and S. Emile, Petit-Huguenin, M. and G. Salgueiro, "Datagram Transport
"Transport Layer Security (TLS) Application Layer Protocol Layer Security (DTLS) as Transport for Session Traversal
Negotiation Extension", draft-ietf-tls-applayerprotoneg-05 Utilities for NAT (STUN)", draft-ietf-tram-stun-dtls-05
(work in progress), March 2014. (work in progress), June 2014.
[I-D.mbelshe-httpbis-spdy] [I-D.mbelshe-httpbis-spdy]
Belshe, M. and R. Peon, "SPDY Protocol", draft-mbelshe- Belshe, M. and R. Peon, "SPDY Protocol", draft-mbelshe-
httpbis-spdy-00 (work in progress), February 2012. httpbis-spdy-00 (work in progress), February 2012.
[I-D.petithuguenin-tram-turn-dtls]
Petit-Huguenin, M. and G. Salgueiro, "Datagram Transport
Layer Security (DTLS) as Transport for Traversal Using
Relays around NAT (TURN)", draft-petithuguenin-tram-turn-
dtls-00 (work in progress), January 2014.
[QUIC] http://www.ietf.org/proceedings/88/slides/
slides-88-tsvarea-10.pdf, "QUIC Slide Deck at IETF88,", .
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
(TLS) Protocol Version 1.2", RFC 5246, August 2008. (TLS) Protocol Version 1.2", RFC 5246, August 2008.
[RFC5389] Rosenberg, J., Mahy, R., Matthews, P., and D. Wing, [RFC5389] Rosenberg, J., Mahy, R., Matthews, P., and D. Wing,
"Session Traversal Utilities for NAT (STUN)", RFC 5389, "Session Traversal Utilities for NAT (STUN)", RFC 5389,
October 2008. October 2008.
[RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer
Security Version 1.2", RFC 6347, January 2012. 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.
6.2. Informative References 6.2. Informative References
[RFC5766] Mahy, R., Matthews, P., and J. Rosenberg, "Traversal Using [RFC5766] Mahy, R., Matthews, P., and J. Rosenberg, "Traversal Using
Relays around NAT (TURN): Relay Extensions to Session Relays around NAT (TURN): Relay Extensions to Session
Traversal Utilities for NAT (STUN)", RFC 5766, April 2010. Traversal Utilities for NAT (STUN)", RFC 5766, April 2010.
Authors' Addresses Authors' Addresses
Prashanth Patil Prashanth Patil
Cisco Systems, Inc. Cisco Systems, Inc.
skipping to change at page 6, line 4 skipping to change at page 5, line 28
Email: praspati@cisco.com Email: praspati@cisco.com
Tirumaleswar Reddy Tirumaleswar Reddy
Cisco Systems, Inc. Cisco Systems, Inc.
Cessna Business Park, Varthur Hobli Cessna Business Park, Varthur Hobli
Sarjapur Marathalli Outer Ring Road Sarjapur Marathalli Outer Ring Road
Bangalore, Karnataka 560103 Bangalore, Karnataka 560103
India India
Email: tireddy@cisco.com Email: tireddy@cisco.com
Gonzalo Salgueiro Gonzalo Salgueiro
Cisco Systems, Inc. Cisco Systems, Inc.
7200-12 Kit Creek Road 7200-12 Kit Creek Road
Research Triangle Park, NC 27709 Research Triangle Park, NC 27709
US US
Email: gsalguei@cisco.com Email: gsalguei@cisco.com
Marc Petit-Huguenin Marc Petit-Huguenin
Jive Communications Impedance Mismatch
1275 West 1600 North, Suite 100
Orem, UT 84057
USA USA
Email: marcph@getjive.com Email: marc@petit-huguenin.org
 End of changes. 20 change blocks. 
91 lines changed or deleted 72 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/