TRAMInternet Engineering Task Force (IETF) T. ReddyInternet-DraftRequest for Comments: 7376 R. RavindranathIntended status:Category: Informational CiscoExpires: February 19, 2015ISSN: 2070-1721 M. Perumal Ericsson A. Yegin SamsungAugust 18,September 2014 Problems withSTUN long-termSession Traversal Utilities for NAT (STUN) Long-Term Authentication forTURN draft-ietf-tram-auth-problems-05Traversal Using Relays around NAT (TURN) Abstract This document discusses some of the security problems and practical problems with the current Session Traversal Utilities for NAT (STUN) authentication for Traversal Using Relays around NAT (TURN) messages. Status of This Memo ThisInternet-Draftdocument issubmitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documentsnot an Internet Standards Track specification; it is published for informational purposes. This document is a product of the Internet Engineering Task Force (IETF).Note that other groups may also distribute working documents as Internet-Drafts. The listIt represents the consensus ofcurrent Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents validthe 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 amaximumcandidate for any level of Internet Standard; see Section 2 of RFC 5741. Information about the current status ofsix monthsthis document, any errata, and how to provide feedback on it may beupdated, replaced, or obsoleted by other documentsobtained atany 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 February 19, 2015.http://www.rfc-editor.org/info/rfc7376. 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 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. Notational Conventions . . . . . . . . . . . . . . . . . . . 3 3. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4. Problems with STUNlong-termLong-Term Authentication for TURN . . . . 4 5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 6.IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 5 8.References . . . . . . . . . . . . . . . . . . . . . . . . . 58.1.6.1. Normative References . . . . . . . . . . . . . . . . . .6 8.2.5 6.2. Informative References . . . . . . . . . . . . . . . . . 6Authors' Addresses . . . . .Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . .78 1. Introduction Traversal Using Relays around NAT (TURN) [RFC5766] is a protocol that is often used to improve the connectivity of Peer-to-Peer (P2P) applications (as defined insectionSection 2.7 of [RFC5128]). TURN allows a connection to be established when one or both sidesisare incapable of a direct P2P connection. The TURN server is also a building block to support interactive, real-time communication using audio, video, collaboration, games, etc., between two peer web browsers using the Web Real-TimecommunicationCommunication (WebRTC)[I-D.ietf-rtcweb-overview][WebRTC-Overview] framework. A TURN server is also used in the following scenarios: oUsersFor privacy, users ofWebRTC basedWebRTC-based webapplicationapplications may use a TURN server to hide host candidate addresses from the remotepeer for privacy.peer. o Enterprise networks deploy firewallswhichthat typically block UDP traffic. When SIP user agents or WebRTC endpoints are deployed behind such firewalls, media cannot be sent over UDP across thefirewall,firewall but must instead be sent using TCP (which causes a different user experience). In suchcasescases, a TURN server deployed in the DeMilitarized Zone (DMZ) might be used to traverse firewalls. o Theuse-caseuse case explained in"SimpleSection 3.3.5 of [WebRTC-Use-Cases] ("Simple Video Communication Service, enterpriseaspects" (Section 3.2.5 of [I-D.ietf-rtcweb-use-cases-and-requirements])aspects") refers to deploying a TURN server in the DMZ to audit all media sessions from inside an Enterprise premises to any external peer. o A TURN server could also be deployed for RTP Mobility[I-D.wing-tram-turn-mobility][TURN-Mobility], etc. o A TURNServerserver may be used for IPv4-to-IPv6, IPv6-to-IPv6, andIPv6 - to-IPv4IPv6-to-IPv4 relaying [RFC6156]. o Interactive Connectivity Establishment (ICE) [RFC5245] connectivity checks using server reflexive candidates could fail when the endpoint is behind a NAT [RFC3235] that performsAddress-address- dependent mapping as described insectionSection 4.1 of [RFC4787]. In suchcasescases, a relayed candidate allocated from the TURN server is used for media.STUNSession Traversal Utilities for NAT (STUN) [RFC5389] specifies an authentication mechanism called thelong- termlong-term credential mechanism. Section 4 of TURN [RFC5766]in section 4specifies that TURN servers and clients must implement thismechanism andmechanism; Section 4 of TURN [RFC5766] also specifies that the TURN server must demand that all requests from the client be authenticated using thismechanism,mechanism or thataan equally strong or stronger mechanism for client authentication be used. In the abovescenariosscenarios, applications would use the ICE protocol for gathering candidates. An ICE agent can use TURN to learn server reflexive and relayed candidates. If the TURN server requires that the TURN requesttobeauthenticatedauthenticated, then the ICE agent will use thelong- termlong-term credential mechanism explained insectionSection 10 of [RFC5389] for authentication and message integrity. Section 10 of the TURN specification [RFC5766]in section 10explains the importance of the long-term credential mechanism to mitigate variousattacks, clientattacks. Client authentication is essential to preventun-authorizedunauthorized users from accessing the TURNserverserver, and misuse of credentials could impose significant cost on the victim TURN server. Thisnotedocument focuses on listing security problems and practical problems with current STUN authentication for TURN so that it can serve as the basis for stronger authentication mechanisms. An Allocate request is more likely than a Binding request to be identified by a server administrator as needing client authentication and integrity protection of messages exchanged. Hence, the issues discussed hereinregarding STUN authentication are applicable mainly in the context of TURN messages. 2. Notational Conventions Thisnotedocument uses terminology defined in[RFC5389],[RFC5389] and [RFC5766]. 3. Scope This document can be used asaninputto designfor designing solution(s) to addresstheproblems with the current STUN authentication for TURN messages. 4. Problems with STUNlong-termLong-Term Authentication for TURN 1.TheAs described in [RFC5389], the long-term credential mechanismin [RFC5389]coulduseprovide to users a long-term credential in the form of a traditional "log-in" username andpassword given to users which doespassword; this credential would not change for extended periods oftime and uses thetime. The key derived from the user credentials would be used togenerateprovide message integrity for every TURN request/response.AnHowever, an attacker that is capable of eavesdropping on a message exchange between a client and server can determine the password by trying a number of candidate passwords and checking to see if one of them is correct by calculating themessage-integrity of themessage integrity using these candidate passwords and comparing them with the message integrity value in the MESSAGE-INTEGRITY attribute. 2. When a TURN server is deployed in the DMZ and requires that requeststobe authenticated using the long-term credential mechanism as described in [RFC5389], the TURN server needs to be aware of the username and password to validate the message integrity of the requests and to provide message integrity for responses. This results in management overhead on the TURN server. Long-term credentials (username, realm, and password) need to be stored on theserver- sideserver side, using an MD5 hash over the credentials, which is not considered best current practice. [RFC6151] discusses security vulnerabilities of MD5 and encourages implementers not to use it. It is not possible to use STUN long-term credentials in implementations that are compliant with US FIPS 140-2[FIPS-140-2] compliant implementations,[FIPS-140-2], since MD5 isn't an approved algorithm. 3. The long-term credential mechanism discussed in [RFC5389]requiresspecifies that the TURN client must include a username value in the USERNAME STUN attribute. An adversary snooping the TURN messages between the TURN client and server can identify the users involved in thecallcall, resulting in privacy leakage. If TURN usernames are linked to realusernamesusernames, thenit will result inprivacyleakage,leakage will result, but in certain scenarios TURN usernames need not be linked to any real usernames given tousersusers, astheythe usernames are just provisioned on aper companyper-company basis. 4. STUN authentication relies on HMAC-SHA1 [RFC2104]. There is no mechanism for hash agility in the protocol itself, although Section 16.3 of [RFC5389] does discuss a plan for migrating to a more secure algorithm in case HMAC-SHA1 is found to be compromised. 5. A man-in-the middle attacker posing as a TURN server challenges the client to authenticate, learns the USERNAME of theclientclient, and later snoops the traffic from theclientclient, thereby identifyingtheuseractivity resultingactivity; this results in privacy leakage. 6. Hosting multiple realms on a single IP address is challenging with TURN. When a TURN server needs to send the REALM attribute in response to an unauthenticated request, it has no useful information for determining which realm it should send in the response, except the source transport address of the TURN request. Note that this is a problem with multi-tenant scenariosonly. Thisonly; this may not be a problem when the TURN server is located in enterprise premises. 7. InWebRTCWebRTC, theJavascriptJavaScript code needs to know the username and password to use in the W3C RTCPeerConnection API to access the TURN server. This exposestheuser credentials to theJavascriptJavaScript code, which could bemalicious. Themalicious; the maliciousjava scriptJavaScript code could then misuse or leak the credentials. If the credentials happen to be used for accessing services other thanTURNTURN, then the security implications are much larger. 5. Security Considerations This document lists problems with current STUN authentication for TURN so that it can serve as the basis for stronger authentication mechanisms. 6.IANA Considerations This document does not require any action from IANA. 7. Acknowledgments Authors would like to thank Dan Wing, Harald Alvestrand, Sandeep Rao, Prashanth Patil, Pal Martinsen, Marc Petit-Huguenin, Gonzalo Camarillo, Brian E Carpenter, Spencer Dawkins, Adrian Farrel and Simon Perreault for their comments and review. 8.References8.1.6.1. Normative References [RFC5389] Rosenberg, J., Mahy, R., Matthews, P., and D. Wing, "Session Traversal Utilities for NAT (STUN)", RFC 5389, October2008.2008, <http://www.rfc-editor.org/info/rfc5389>. [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, April2010.2010, <http://www.rfc-editor.org/info/rfc5766>. [RFC6156] Camarillo, G., Novo, O., and S. Perreault, "Traversal Using Relays around NAT (TURN) Extension for IPv6", RFC 6156, April2011. 8.2.2011, <http://www.rfc-editor.org/info/rfc6156>. 6.2. Informative References [FIPS-140-2] NIST,, "NIST,"Security Requirements for CryptographicModules"", June 2005,Modules", FIPS PUB 140-2, May 2001, <http://csrc.nist.gov/publications/fips/fips140-2/ fips1402.pdf>.[I-D.ietf-rtcweb-overview] Alvestrand, H., "Overview: Real Time Protocols for Browser-based Applications", draft-ietf-rtcweb-overview-10 (work in progress), June 2014. [I-D.ietf-rtcweb-use-cases-and-requirements] Holmberg, C., Hakansson, S., and G. Eriksson, "Web Real- Time Communication Use-cases and Requirements", draft- ietf-rtcweb-use-cases-and-requirements-14 (work in progress), February 2014. [I-D.wing-tram-turn-mobility] Wing, D., Patil, P., Reddy, T., and P. Martinsen, "Mobility with TURN", draft-wing-tram-turn-mobility-00 (work in progress), June 2014.[RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- Hashing for Message Authentication", RFC 2104, February1997.1997, <http://www.rfc-editor.org/info/rfc2104>. [RFC3235] Senie, D., "Network Address Translator (NAT)-Friendly Application Design Guidelines", RFC 3235, January2002.2002, <http://www.rfc-editor.org/info/rfc3235>. [RFC4787] Audet, F. and C. Jennings, "Network Address Translation (NAT) Behavioral Requirements for Unicast UDP", BCP 127, RFC 4787, January2007.2007, <http://www.rfc-editor.org/info/rfc4787>. [RFC5128] Srisuresh, P., Ford, B., and D. Kegel, "State of Peer-to- Peer (P2P) Communication across Network Address Translators (NATs)", RFC 5128, March2008.2008, <http://www.rfc-editor.org/info/rfc5128>. [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols", RFC 5245, April2010.2010, <http://www.rfc-editor.org/info/rfc5245>. [RFC6151] Turner, S. and L. Chen, "Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms", RFC 6151, March2011.2011, <http://www.rfc-editor.org/info/rfc6151>. [TURN-Mobility] Wing, D., Patil, P., Reddy, T., and P. Martinsen, "Mobility with TURN", Work in Progress, draft-wing-tram- turn-mobility-02, September 2014. [WebRTC-Overview] Alvestrand, H., "Overview: Real Time Protocols for Browser-based Applications", Work in Progress, draft-ietf- rtcweb-overview-11, August 2014. [WebRTC-Use-Cases] Holmberg, C., Hakansson, S., and G. Eriksson, "Web Real- Time Communication Use-cases and Requirements", Work in Progress, draft-ietf-rtcweb-use-cases-and-requirements-14, February 2014. Appendix A. Acknowledgments The authors would like to thank Dan Wing, Harald Alvestrand, Sandeep Rao, Prashanth Patil, Pal Martinsen, Marc Petit-Huguenin, Gonzalo Camarillo, Brian E. Carpenter, Spencer Dawkins, Adrian Farrel, and Simon Perreault for their comments and reviews. Authors' Addresses Tirumaleswar Reddy Cisco Systems, Inc. Cessna Business Park, Varthur Hobli Sarjapur Marathalli Outer Ring Road Bangalore, Karnataka 560103 IndiaEmail:EMail: tireddy@cisco.com Ram Mohan Ravindranath Cisco Systems, Inc. Cessna Business Park, Varthur Hobli Sarjapur Marathalli Outer Ring Road Bangalore, Karnataka 560103 IndiaEmail:EMail: rmohanr@cisco.com Muthu Arul Mozhi Perumal Ericsson Ferns Icon Doddanekundi, Mahadevapura Bangalore, Karnataka 560037 IndiaEmail:EMail: muthu.arul@gmail.com Alper Yegin Samsung Istanbul TurkeyEmail:EMail: alper.yegin@yegin.org