rfc-7065

Traversal Using Relays around NAT (TURN) Uniform Resource Identifiers

M. Petit-Huguenin, S. Nandakumar, G. Salgueiro, P. Jones
date2013-11 streamIETF wgnon working group statusPROPOSED STANDARD pages9 canonicalhttps://www.rfc-editor.org/rfc/rfc7065 doi10.17487/RFC7065
This document specifies the syntax of Uniform Resource Identifier (URI) schemes for the Traversal Using Relays around NAT (TURN) protocol. It defines two URI schemes to provision the TURN Resolution Mechanism (RFC 5928).

Extracted elements (15)

design-rationale §B

No generic URI parameters were added to TURN URIs in order to prevent compatibility issues, as discussed at IETF 72 in Dublin.

nat

design-rationale §B

The <password> component is excluded from TURN URIs because it is deprecated in RFC 3986. The <username> and <auth> components are also excluded because they do not guide the RFC 5928 resolution mechanism.

nat, security

design-rationale §B

The suffix "s" on the "turns" scheme was retained rather than moving the secure option to a URI parameter (e.g., ";proto=tls") in order to preserve symmetry with the STUN URI scheme, which also uses a "stuns" variant rather than a parameter.

nat

design-rationale §B

TURN URIs are defined as opaque (non-hierarchical) URIs, following the advice of RFC 4395 Section 2.2, because the TURN URI does not describe a hierarchical structure.

nat

interoperability-note §3.1

The "turn" and "turns" URI schemes are designed to provision the four components (secure flag, host, port, transport) required by the RFC 5928 TURN Resolution Mechanism without modification. Applications using these URIs must pass the components directly to that algorithm.

nat, webrtc

normative-requirement §3.1 MUST NOT

Developers MUST NOT use a generic hierarchical URI parser to parse a "turn" or "turns" URI. Although <host> and <port> are defined in RFC 3986 as components of generic hierarchical URIs, the "turn" and "turns" schemes are opaque, not hierarchical.

nat

normative-requirement §3.2 MUST

The "turns" URI scheme MUST be used when TURN is run over TLS-over-TCP (or, in the future, DTLS-over-UDP). The "turn" scheme MUST be used otherwise. The <secure> flag is set to false for "turn" and true for "turns" when passed to the RFC 5928 algorithm.

nat, tls

protocol-element §3.2

If the <port> component is absent, the default port is 3478 for both UDP and TCP transports. The default port for TURN over TLS is 5349. When present, the port denotes where the TURN server awaits connection requests.

nat

protocol-element §3.2

The <secure> component derived from the URI scheme name (false for "turn", true for "turns") is one of the four components — along with host, port, and transport — passed to the RFC 5928 TURN Resolution Mechanism to produce a list of IP address, port, and transport tuples.

nat

protocol-element §3.1

The TURN URI scheme syntax is defined as: turnURI = scheme ":" host [ ":" port ] [ "?transport=" transport ], where scheme is "turn" or "turns" and transport is "udp", "tcp", or an extension token. The <host>, <port>, and <transport> components are passed without modification to the RFC 5928 resolution algorithm.

nat, webrtc

registry §5.1

The "turn" URI scheme is registered with IANA as a permanent URI scheme (per RFC 4395). It is intended for applications identifying a TURN server for NAT traversal. The IESG is the change controller.

nat, registry

registry §5.2

The "turns" URI scheme is registered with IANA as a permanent URI scheme (per RFC 4395). It is intended for applications identifying a TURN server for NAT traversal over a secure (TLS) connection. The IESG is the change controller.

nat, tls, registry

security-consideration §4 MUST

A TURN client MUST ensure that the username, password, "turns" URI, and any other security-relevant parameters are received with equivalent security before using the "turns" URI. Receiving those parameters over a TLS session with commensurate ciphersuites can provide appropriate security.

nat, tls, security

security-consideration §4

Although a "turns" URI does not itself carry credentials, in WebRTC environments username and password will typically be provisioned remotely at the same time as the URI. If those credentials are received in the clear, using a "turns" URI provides little or no security benefit.

nat, webrtc, security

security-consideration §4

Security considerations for the TURN resolution mechanism, including normative authentication procedures for TLS clients, are defined in Section 5 of RFC 5928. The "turn" and "turns" URI schemes do not introduce specific security issues beyond those in RFC 3986.

nat, tls, security