Behave Muthu A M. Perumal
Internet-Draft D. Wing
Intended status: Standards Track Ram Mohan. Ravindranath
Expires: July 21, 2013 Cisco Systems
H. Kaplan
Acme Packet
January 17, 2013
STUN Usage for Consent Freshness
draft-muthu-behave-consent-freshness-02
Abstract
Verification of peer consent is necessary in WebRTC deployments to
ensure that a malicious JavaScript cannot use the browser as a
platform for launching attacks. A related problem is session
liveness. WebRTC applications may want to detect connection failure
and take appropriate actions. This document describes a STUN usage
that enables a WebRTC browser to perform the following on a candidate
pair ICE is using for a media component after session establishment:
1. Verify the peer consent for continuing to receive traffic.
2. Dectect connection failure.
Status of this Memo
This Internet-Draft is submitted to IETF 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 July 21, 2013.
Copyright Notice
Copyright (c) 2013 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
Perumal, et al. Expires July 21, 2013 [Page 1]
Internet-Draft STUN Usage for Consent Freshness January 2013
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 . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. Design Considerations . . . . . . . . . . . . . . . . . . . . . 4
5. Solution Overview . . . . . . . . . . . . . . . . . . . . . . . 5
6. Interaction with Keepalives used for Refreshing NAT
Bindings . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
7. Security Considerations . . . . . . . . . . . . . . . . . . . . 5
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
9. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . . 6
10. Normative References . . . . . . . . . . . . . . . . . . . . . 6
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 6
Perumal, et al. Expires July 21, 2013 [Page 2]
Internet-Draft STUN Usage for Consent Freshness January 2013
1. Introduction
Consent verification is the mechanism using which WebRTC
implementations can verify the peer consent for receiving traffic on
candidate media transport addresses. This has two parts
1. Verifying peer consent for receiving traffic on candidate media
transport addresses at session establishment.
2. Verifying peer consent for continuing to receive traffic on
candidate media transport addresses after session establishment.
WebRTC implements are required to perform STUN connectivity checks at
session establishment as part of ICE procedures [RFC5245]. This
takes care of the first part of the consent verification described
above.
After session establishment ICE requires STUN Binding indications to
be used for refreshing NAT bindings for a candidate pair ICE is using
for a media component. Since a STUN Binding indication does not
evoke a response, it cannot be used for the second part of the
consent verification describes above.
A related problem is session liveness. WebRTC applications may want
to detect connection failure on candidate media transport addresses
after session establishment and take appropriate actions. Again, the
STUN Binding indications in ICE sent after session establishment
cannot be used for determining session liveness.
This document describes a STUN usage based on STUN request/response
that enables a WebRTC browser to perform the following on a candidate
pair ICE is using for a media component after session establishment:
1. Verify the peer consent for continuing to receive traffic.
2. Dectect connection failure.
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. Definitions
Perumal, et al. Expires July 21, 2013 [Page 3]
Internet-Draft STUN Usage for Consent Freshness January 2013
Consent Freshness: It is the mechanism of verifying peer consent for
continuing to receive traffic on a candidate pair ICE is using for
a media component after ICE has concluded. This document uses
completion of session establishment synonymous with the conclusion
of ICE.
Session Liveness: It is the mechanism of detecting connectivity on a
candidate pair ICE is using for a media component after ICE has
concluded.
Transport Address: The combination of an IP address and port number
(such as a UDP or TCP port number).
4. Design Considerations
As described earlier in this document, STUN indications are not
suitable for performing consent freshness. Hence, performing consent
freshness requires the use of STUN request/response.
ICE requires the usage of message integrity with STUN using its
short-term credential mechanism. The need for this mechanism goes
beyond just security and is required for the correct operation of the
ICE connectivity check procedures; without message integrity the
connectivity checks can yield false positives, as described in
Appendix B section B.4 of the ICE specification. However, this
problem is not applicable for consent freshness, since consent
freshness is performed only after ICE concludes.
One of the reasons for ICE choosing STUN Binding indications for
keepalives is because Binding indication allows integrity to be
disabled, allowing for better performance. This is useful for large-
scale endpoints, such as PSTN gateways and SBCs as described in
Appendix B section B.10 of the ICE specification.
STUN requires the 96 bits transaction ID to be uniformly and randomly
chosen from the interval 0 .. 2**96-1, and be cryptographically
random. This is deemed sufficient for consent freshness from a
security perspective. However, omitting the MESSAGE-INTEGRITY
attribute that requires calculating SHA1 from STUN Binding request/
response would break backward compatibility with ICE/ICE-lite agents.
Though ICE specifies STUN Binding indications to be used for
keepalives, it requires that an agent be prepared to receive
connectivity check as well. If a connectivity check is received, a
response is generated, but there is no impact on ICE processing, as
described in section 10 of the ICE specification.
Perumal, et al. Expires July 21, 2013 [Page 4]
Internet-Draft STUN Usage for Consent Freshness January 2013
The above considerations imply that STUN Binding request/response is
most suitable for performing consent freshness.
5. Solution Overview
The solution uses two timers:
1. A consent timer Tc whose value is determined by the browser.
2. A packet receipt timer Tr whose value is determined by the
application.
A WebRTC browser performs a combined consent freshness and session
liveness test using STUN resuest/respose as described below:
o Starts a consent timer Tc (no less than 15 sec).
o Starts a packet receipt timer Tr (no less than 1 sec); application
configurable.
o When either timer expires it starts a STUN transaction.
o When the STUN transaction succeeds, it re-starts both timers.
o When the STUN transaction fails
* If the transaction was started by timer Tc, it stops sending
traffic on that candidate pair.
* Else, it notifies the application of the failure and continues.
o It resets timer Tr on receiving any packet from the other side.
While consent freshness serves as a circuit breaker (if there is a
failure the WebRTC browser stops sending all traffic on that
candidate pair), determining session liveness serves the purpose of
notifying the application of connectivity failure so that the
application can take appropriate action.
6. Interaction with Keepalives used for Refreshing NAT Bindings
An implementation that performs the procedures described in this
document has no need to also perform the keepalives described in ICE
[RFC5245] or RTP keepalive [RFC6263], as they both force recurring
messages to be sent over the UDP port used by RTP. Thus, an
implementation that performs the procedures described in this
document SHOULD NOT also do the keepalives described in ICE [RFC5245]
or RTP keepalives [RFC6263] for the same UDP port.
7. Security Considerations
TBD
Perumal, et al. Expires July 21, 2013 [Page 5]
Internet-Draft STUN Usage for Consent Freshness January 2013
8. IANA Considerations
TBD
9. Acknowledgement
Thanks to Eric Rescorla, Harald Alvestrand, Martin Thomson, Bernard
Aboba, Cullen Jennings and Simon Perreault for their valuable inputs
and comments
10. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC5245] Rosenberg, J., "Interactive Connectivity Establishment
(ICE): A Protocol for Network Address Translator (NAT)
Traversal for Offer/Answer Protocols", RFC 5245,
April 2010.
[RFC6263] Marjou, X. and A. Sollaud, "Application Mechanism for
Keeping Alive the NAT Mappings Associated with RTP / RTP
Control Protocol (RTCP) Flows", RFC 6263, June 2011.
Authors' Addresses
Muthu Arul Mozhi Perumal
Cisco Systems
Cessna Business Park
Sarjapur-Marathahalli Outer Ring Road
Bangalore, Karnataka 560103
India
Email: mperumal@cisco.com
Dan Wing
Cisco Systems
821 Alder Drive
Milpitas, California 95035
USA
Email: dwing@cisco.com
Perumal, et al. Expires July 21, 2013 [Page 6]
Internet-Draft STUN Usage for Consent Freshness January 2013
Ram Mohan Ravindranath
Cisco Systems
Cessna Business Park
Sarjapur-Marathahalli Outer Ring Road
Bangalore, Karnataka 560103
India
Email: rmohanr@cisco.com
Hadriel Kaplan
Acme Packet
Email: hkaplan@acmepacket.com
Perumal, et al. Expires July 21, 2013 [Page 7]