Skip to main content

Application Layer Protocol Negotiation (ALPN) labels for Session Traversal Utilities for NAT (STUN) and its Usages
draft-ietf-tram-alpn-04

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft that was ultimately published as RFC 7443.
Authors Prashanth Patil , Tirumaleswar Reddy.K , Gonzalo Salgueiro , Marc Petit-Huguenin
Last updated 2014-09-18
RFC stream Internet Engineering Task Force (IETF)
Formats
Reviews
Additional resources Mailing list discussion
Stream WG state WG Document
Document shepherd (None)
IESG IESG state Became RFC 7443 (Informational)
Consensus boilerplate Unknown
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-ietf-tram-alpn-04
TRAM                                                            P. Patil
Internet-Draft                                                  T. Reddy
Intended status: Standards Track                            G. Salgueiro
Expires: March 22, 2015                                            Cisco
                                                       M. Petit-Huguenin
                                                      Impedance Mismatch
                                                      September 18, 2014

    Application Layer Protocol Negotiation (ALPN) labels for Session
           Traversal Utilities for NAT (STUN) and its Usages
                        draft-ietf-tram-alpn-04

Abstract

   Application Layer Protocol Negotiation (ALPN) labels for Session
   Traversal Utilities for NAT (STUN) and its usages, such as Traversal
   Using Relays around NAT (TURN) and NAT discovery, are defined in this
   document to allow an application layer negotiate STUN and its usages
   within the Transport Layer Security (TLS) connection.  ALPN protocol
   identifiers defined in this document apply 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 22, 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 22, 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.  ALPN Labels . . . . . . . . . . . . . . . . . . . . . . . . .   3
   4.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   3
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   4
   6.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   4
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   4
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   4
     7.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 [RFC7350].

   ALPN [RFC7301] enables an endpoint to positively identify an
   application protocol in TLS/DTLS and distinguish it 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.  Application protocol
   negotiation can thus be accomplished within the TLS/DTLS handshake,
   without adding network round-trips.

   A STUN protocol identifier and its associated usages, such as TURN
   [RFC5766], can be used to identify the purpose of a flow without
   initiating a session.  This capability is useful and adds efficiency,
   as shown 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
       identifier to detect the use of a TURN server that is outside the
       Enterprise domain (i.e., a TURN server provided by an application
       server, access network, etc).

Patil, et al.            Expires March 22, 2015                 [Page 2]
Internet-Draft             ALPN for STUN/TURN             September 2014

   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
       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, a 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.

   This document defines entries in the "Application Layer Protocol
   Negotiation (ALPN) Protocol IDs" registry established by [RFC7301] to
   identify the STUN protocol and its usages.

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.  ALPN Labels

   The document proposes the following ALPN labels to identify the STUN
   protocol [RFC5389] and its associated usages.

   'stun.turn':  Label to identify the specific use of STUN over (D)TLS
      for TURN [RFC5766].

   'stun.nat-discovery':  Label to identify the specific use of STUN
      over (D)TLS for NAT discovery (Section 4.1 of [RFC7350]).

   'stun':  This label is used as a fallback for STUN usages that do not
      have a corresponding ALPN label.

   This document does not explicitly assign ALPN labels for other usages
   of STUN, such as NAT Behavior Discovery using STUN ([RFC5780]).  All
   such usages that do not have a dedicated label are implicitly
   identified by the generic "stun" ALPN label.

4.  IANA Considerations

   The following entries are to be added to the "Application Layer
   Protocol Negotiation (ALPN) Protocol IDs" registry established by
   [RFC7301].

   The "stun" label identifies STUN over (D)TLS:

      Protocol: Session Traversal Utilities for NAT (STUN)

      Identification Sequence: 0x73 0x74 0x75 0x6E ("stun")

Patil, et al.            Expires March 22, 2015                 [Page 3]
Internet-Draft             ALPN for STUN/TURN             September 2014

      Specification: This document (RFCXXXX)

   The "stun.turn" label identifies TURN usage over (D)TLS:

      Protocol: Traversal Using Relays around NAT (TURN)

      Identification Sequence: 0x73 0x74 0x75 0x6E 0x2E 0x74 0x75 0x72
      0x6E ("stun.turn")

      Specification: This document (RFCXXXX)

   The "stun.nat-discovery" label identifies usage of STUN for the
   purposes of NAT/behavior discovery over (D)TLS:

      Protocol: NAT discovery using Session Traversal Utilities for NAT
      (STUN)

      Identification Sequence: 0x73 0x74 0x75 0x6E 0x2E 0x6e 0x61 0x74
      0x2d 0x64 0x69 0x73 0x63 0x6f 0x76 0x65 0x72 0x79 ("stun.nat-
      discovery")

      Specification: This document (RFCXXXX)

5.  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.

6.  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.

7.  References

7.1.  Normative References

   [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.

Patil, et al.            Expires March 22, 2015                 [Page 4]
Internet-Draft             ALPN for STUN/TURN             September 2014

   [RFC5389]  Rosenberg, J., Mahy, R., Matthews, P., and D. Wing,
              "Session Traversal Utilities for NAT (STUN)", RFC 5389,
              October 2008.

   [RFC5780]  MacDonald, D. and B. Lowekamp, "NAT Behavior Discovery
              Using Session Traversal Utilities for NAT (STUN)", RFC
              5780, May 2010.

   [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.

   [RFC7350]  Petit-Huguenin, M. and G. Salgueiro, "Datagram Transport
              Layer Security (DTLS) as Transport for Session Traversal
              Utilities for NAT (STUN)", RFC 7350, August 2014.

7.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

Patil, et al.            Expires March 22, 2015                 [Page 5]
Internet-Draft             ALPN for STUN/TURN             September 2014

   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 22, 2015                 [Page 6]