summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc7443.txt
blob: e2d61e20b2ec6c1eca1fcf1af6325c16303be3f0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
Internet Engineering Task Force (IETF)                          P. Patil
Request for Comments: 7443                                      T. Reddy
Category: Informational                                     G. Salgueiro
ISSN: 2070-1721                                                    Cisco
                                                       M. Petit-Huguenin
                                                      Impedance Mismatch
                                                            January 2015


          Application-Layer Protocol Negotiation (ALPN) Labels
         for Session Traversal Utilities for NAT (STUN) Usages

Abstract

   Application-Layer Protocol Negotiation (ALPN) labels for Session
   Traversal Utilities for NAT (STUN) usages, such as Traversal Using
   Relays around NAT (TURN) and NAT discovery, are defined in this
   document to allow an application layer to negotiate STUN 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 document is not an Internet Standards Track specification; it is
   published for informational purposes.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Not all documents
   approved by the IESG are a candidate for any level of Internet
   Standard; see Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc7443.














Patil, et al.                 Informational                     [Page 1]
^L
RFC 7443                   ALPN for STUN/TURN               January 2015


Copyright Notice

   Copyright (c) 2015 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.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   3
   3.  Security Considerations . . . . . . . . . . . . . . . . . . .   3
   4.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   4
     4.1.  Normative References  . . . . . . . . . . . . . . . . . .   4
     4.2.  Informative References  . . . . . . . . . . . . . . . . .   4
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .   4
   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.

   STUN protocol usages, such as TURN [RFC5766], can be used to identify
   the purpose of a flow without initiating a session.

   This document proposes the following ALPN labels to identify STUN
   protocol [RFC5389] usages.





Patil, et al.                 Informational                     [Page 2]
^L
RFC 7443                   ALPN for STUN/TURN               January 2015


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

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

2.  IANA Considerations

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

   The "stun.turn" label identifies the use of TURN usage (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 (RFC 7443)

   The "stun.nat-discovery" label identifies the use of STUN for the
   purposes of NAT 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 (RFC 7443)

3.  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 the
   security of TLS/DTLS session establishment or application data
   exchange.











Patil, et al.                 Informational                     [Page 3]
^L
RFC 7443                   ALPN for STUN/TURN               January 2015


4.  References

4.1.  Normative References

   [RFC5246]  Dierks, T. and E. Rescorla, "The Transport Layer Security
              (TLS) Protocol Version 1.2", RFC 5246, August 2008,
              <http://www.rfc-editor.org/info/rfc5246>.

   [RFC5389]  Rosenberg, J., Mahy, R., Matthews, P., and D. Wing,
              "Session Traversal Utilities for NAT (STUN)", RFC 5389,
              October 2008, <http://www.rfc-editor.org/info/rfc5389>.

   [RFC6347]  Rescorla, E. and N. Modadugu, "Datagram Transport Layer
              Security Version 1.2", RFC 6347, January 2012,
              <http://www.rfc-editor.org/info/rfc6347>.

   [RFC7301]  Friedl, S., Popov, A., Langley, A., and E. Stephan,
              "Transport Layer Security (TLS) Application-Layer Protocol
              Negotiation Extension", RFC 7301, July 2014,
              <http://www.rfc-editor.org/info/rfc7301>.

   [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,
              <http://www.rfc-editor.org/info/rfc7350>.

4.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,
              <http://www.rfc-editor.org/info/rfc5766>.

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.

   Barry Leiba, Stephen Farrell, Adrian Farrel, and Richard Barnes
   provided useful feedback during IESG review.  Thanks to Russ Housley
   for his Gen-ART review and Adam Langley for his IETF LC review
   comments as TLS expert.





Patil, et al.                 Informational                     [Page 4]
^L
RFC 7443                   ALPN for STUN/TURN               January 2015


   The authors would also like to express their gratitude to the TRAM WG
   chairs Gonzalo Camarillo and especially Simon Perrault, who also
   acted as document shepherd.  Lastly, we also want to thank the
   Transport Area Director Spencer Dawkins for his support and careful
   reviews.

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
   United States

   EMail: gsalguei@cisco.com


   Marc Petit-Huguenin
   Impedance Mismatch
   United States

   EMail: marc@petit-huguenin.org











Patil, et al.                 Informational                     [Page 5]
^L