idnits 2.17.1 draft-ietf-tram-auth-problems-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 85: '...rized Zone (DMZ) MAY be used to traver...' RFC 2119 keyword, line 106: '...vers and clients MUST implement this m...' RFC 2119 keyword, line 107: '... TURN server MUST demand that all re...' Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (April 30, 2014) is 3649 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- ** Obsolete normative reference: RFC 5389 (Obsoleted by RFC 8489) ** Obsolete normative reference: RFC 5766 (Obsoleted by RFC 8656) ** Obsolete normative reference: RFC 6156 (Obsoleted by RFC 8656) == Outdated reference: A later version (-19) exists of draft-ietf-rtcweb-overview-09 == Outdated reference: A later version (-16) exists of draft-ietf-rtcweb-use-cases-and-requirements-14 == Outdated reference: A later version (-01) exists of draft-thomson-tram-turn-bandwidth-00 == Outdated reference: A later version (-07) exists of draft-wing-mmusic-ice-mobility-06 -- Obsolete informational reference (is this intentional?): RFC 5245 (Obsoleted by RFC 8445, RFC 8839) Summary: 4 errors (**), 0 flaws (~~), 5 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 BEHAVE T. Reddy 3 Internet-Draft Ram. Ravindranath 4 Intended status: Informational Muthu. Perumal 5 Expires: November 1, 2014 Cisco 6 A. Yegin 7 Samsung 8 April 30, 2014 10 Problems with STUN long-term Authentication for TURN 11 draft-ietf-tram-auth-problems-01 13 Abstract 15 This document discusses some of the issues with STUN authentication 16 for TURN messages. 18 Status of This Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF). Note that other groups may also distribute 25 working documents as Internet-Drafts. The list of current Internet- 26 Drafts is at http://datatracker.ietf.org/drafts/current/. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 This Internet-Draft will expire on November 1, 2014. 35 Copyright Notice 37 Copyright (c) 2014 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents 42 (http://trustee.ietf.org/license-info) in effect on the date of 43 publication of this document. Please review these documents 44 carefully, as they describe your rights and restrictions with respect 45 to this document. Code Components extracted from this document must 46 include Simplified BSD License text as described in Section 4.e of 47 the Trust Legal Provisions and are provided without warranty as 48 described in the Simplified BSD License. 50 Table of Contents 52 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 53 2. Notational Conventions . . . . . . . . . . . . . . . . . . . 3 54 3. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 55 4. Problems with STUN long-term Authentication for TURN . . . . 4 56 5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 57 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 58 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 5 59 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 60 8.1. Normative References . . . . . . . . . . . . . . . . . . 5 61 8.2. Informative References . . . . . . . . . . . . . . . . . 6 62 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6 64 1. Introduction 66 Traversal Using Relay NAT (TURN) [RFC5766] is a protocol that is 67 often used to improve the connectivity of P2P applications. TURN 68 ensures that a connection can be established even when one or both 69 sides is incapable of a direct P2P connection. The TURN server is 70 also a a building block to support interactive, real-time 71 communication using audio, video, collaboration, games, etc., between 72 two peer web browsers using the Web Real-Time communication (WebRTC) 73 [I-D.ietf-rtcweb-overview] framework. 75 TURN server is also used in the following scenarios: 77 o Users of RTCWEB based web application may use TURN server to hide 78 host candidate addresses from the remote peer for privacy. 80 o Enterprise networks deploy firewalls which typically block UDP 81 traffic. When SIP user agents or WebRTC endpoints are deployed 82 behind such firewalls, media cannot be sent over UDP across the 83 firewall, but must be sent using TCP (which causes a different 84 user experience). In such cases a TURN server deployed in the 85 DeMilitarized Zone (DMZ) MAY be used to traverse firewalls. 87 o The use-case explained in "Simple Video Communication Service, 88 enterprise aspects" (Section 3.2.5 of 89 [I-D.ietf-rtcweb-use-cases-and-requirements]) refers to deploying 90 a TURN server in the DMZ to audit all media sessions from inside 91 an Enterprise premises to any external peer. 93 o TURN server could also be deployed for RTP Mobility 94 [I-D.wing-mmusic-ice-mobility] etc. 96 o TURN Server may be used for IPv4-to-IPv6, IPv6-to-IPv6, and IPv6 97 -to-IPv4 relaying [RFC6156]. 99 o ICE connectivity checks using server reflexive candidates could 100 fail when the endpoint is behind NAT that performs Address- 101 dependent mapping. In such cases relayed candidate allocated from 102 the TURN server is used for media. 104 STUN [RFC5389] specifies an authentication mechanism called the long- 105 term credential mechanism. TURN [RFC5766] in section 4 specifies 106 that TURN servers and clients MUST implement this mechanism and the 107 TURN server MUST demand that all requests from the client be 108 authenticated using this mechanism, or that a equally strong or 109 stronger mechanism for client authentication be used. 111 In the above scenarios applications would use Interactive 112 Connectivity Establishment (ICE) protocol [RFC5245] for gathering 113 candidates. ICE agent can use TURN to learn server-reflexive and 114 relayed candidates. If the TURN server requires the TURN request to 115 be authenticated then ICE agent will use the long-term credential 116 mechanism explained in section 10 of [RFC5389] for authentication and 117 message integrity. TURN specification [RFC5766] in section 10 118 explains the importance of long-term credential mechanism to mitigate 119 various attacks. With proposals like 120 [I-D.thomson-tram-turn-bandwidth] that defines a STUN BANDWIDTH 121 attribute for requesting bandwidth allocation at a TURN server, STUN 122 authentication becomes further important to prevent un-authorized 123 users from accessing the TURN server and misuse of credentials could 124 impose significant cost on the victim TURN server. 126 This note focuses on listing the problems with current STUN 127 authentication for TURN so that it can serve as the basis for 128 stronger authentication mechanisms. 130 Compared to a Binding request the Allocate request is more likely to 131 be identified by a server administrator as needing client 132 authentication and integrity protection of messages exchanged. 133 Hence, the issues discussed here in STUN authentication are 134 applicable mainly in the context of TURN messages. 136 2. Notational Conventions 138 This note uses terminology defined in [RFC5389], [RFC5766]. 140 3. Scope 142 This document can be used as an input to design solution(s) to 143 address the problems with the current STUN authentication for TURN 144 messages. 146 4. Problems with STUN long-term Authentication for TURN 148 1. The long-term credential mechanism in [RFC5389] could use 149 traditional "log-in" username and password given to users which 150 does not change for extended periods of time and uses the key 151 derived from user credentials to generate message integrity for 152 every TURN request/response. An attacker that is capable of 153 eavesdropping on a message exchange between a client and server 154 can determine the password by trying a number of candidate 155 passwords and checking if one of them is correct by calculating 156 the message-integrity of the message using these candidate 157 passwords and comparing with the message integrity value in the 158 MESSAGE-INTEGRITY attribute. 160 2. When TURN server is deployed in the DMZ and requires requests to 161 be authenticated using the long-term credential mechanism in 162 [RFC5389], TURN server needs to be aware of the username and 163 password to validate the message integrity of the requests and to 164 provide message integrity for responses. This results in 165 management overhead on the TURN server. Long-term credentials 166 (username, realm, and password) need to be stored on the server- 167 side using MD5 hash over the the credentials. It is not possible 168 to use STUN long-term credentials in US FIPS 140-2 [FIPS-140-2] 169 compliant implementations, since MD5 isn't an approved algorithm. 171 3. The long-term credential mechanism in [RFC5389] requires that the 172 TURN client must include username value in the USERNAME STUN 173 attribute. An adversary snooping the TURN messages between the 174 TURN client and server can identify the users involved in the 175 call resulting in privacy leakage. If TURN usernames are linked 176 to real usernames then it will result in privacy leakage, but in 177 certain scenarios TURN usernames need not be linked to any real 178 usernames given to users as they are just provisioned on a per 179 company basis. 181 4. STUN authentication relies on HMAC-SHA1 [RFC2104]. There is no 182 mechanism for hash agility in the protocol itself, although 183 Section 16.3 of [RFC5389] does discuss a plan for migrating to a 184 more secure algorithm in case HMAC-SHA1 is found to be 185 compromised. 187 5. A man-in-the middle attacker posing as a TURN server challenges 188 the client to authenticate, learns the USERNAME of the client and 189 later snoops the traffic from the client identifying the user 190 activity resulting in privacy leakage. 192 6. Hosting multiple realms on a single IP address is challenging 193 with TURN. When a TURN server needs to send the REALM attribute 194 in response to an unauthenticated request, it has no useful 195 information for determining which realm it should send, except 196 the source transport address of the TURN request. Note this is a 197 problem with multi-tenant scenarios only. This may not be a 198 problem when TURN server is located in enterprise premises. 200 7. In WebRTC the Javascript code needs to know the username and 201 password to use in W3C RTCPeerConnection API to access the TURN 202 server. This exposes the user credentials to the Javascript 203 which could be malicious. The malicious java script could misuse 204 or leak the credentials. If the credentials happen to be used 205 for accessing services other than TURN then the security 206 implications are much larger. 208 5. Security Considerations 210 This document lists problems with current STUN authentication for 211 TURN so that it can serve as the basis for stronger authentication 212 mechanisms. 214 6. IANA Considerations 216 This document does not require any action from IANA. 218 7. Acknowledgments 220 Authors would like to thank Dan Wing, Harald Alvestrand, Sandeep Rao, 221 Prashanth Patil, Pal Martinsen, Marc Petit-Huguenin and Simon 222 Perreault for their comments and review. 224 8. References 226 8.1. Normative References 228 [RFC5389] Rosenberg, J., Mahy, R., Matthews, P., and D. Wing, 229 "Session Traversal Utilities for NAT (STUN)", RFC 5389, 230 October 2008. 232 [RFC5766] Mahy, R., Matthews, P., and J. Rosenberg, "Traversal Using 233 Relays around NAT (TURN): Relay Extensions to Session 234 Traversal Utilities for NAT (STUN)", RFC 5766, April 2010. 236 [RFC6156] Camarillo, G., Novo, O., and S. Perreault, "Traversal 237 Using Relays around NAT (TURN) Extension for IPv6", RFC 238 6156, April 2011. 240 8.2. Informative References 242 [FIPS-140-2] 243 NIST, , "NIST, "Security Requirements for Cryptographic 244 Modules"", June 2005, . 247 [I-D.ietf-rtcweb-overview] 248 Alvestrand, H., "Overview: Real Time Protocols for Brower- 249 based Applications", draft-ietf-rtcweb-overview-09 (work 250 in progress), February 2014. 252 [I-D.ietf-rtcweb-use-cases-and-requirements] 253 Holmberg, C., Hakansson, S., and G. Eriksson, "Web Real- 254 Time Communication Use-cases and Requirements", draft- 255 ietf-rtcweb-use-cases-and-requirements-14 (work in 256 progress), February 2014. 258 [I-D.thomson-tram-turn-bandwidth] 259 Thomson, M., Aboba, B., Johnston, A., and O. Moskalenko, 260 "A Bandwidth Attribute for TURN", draft-thomson-tram-turn- 261 bandwidth-00 (work in progress), February 2014. 263 [I-D.wing-mmusic-ice-mobility] 264 Wing, D., Reddy, T., Patil, P., and P. Martinsen, 265 "Mobility with ICE (MICE)", draft-wing-mmusic-ice- 266 mobility-06 (work in progress), February 2014. 268 [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- 269 Hashing for Message Authentication", RFC 2104, February 270 1997. 272 [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment 273 (ICE): A Protocol for Network Address Translator (NAT) 274 Traversal for Offer/Answer Protocols", RFC 5245, April 275 2010. 277 Authors' Addresses 279 Tirumaleswar Reddy 280 Cisco Systems, Inc. 281 Cessna Business Park, Varthur Hobli 282 Sarjapur Marathalli Outer Ring Road 283 Bangalore, Karnataka 560103 284 India 286 Email: tireddy@cisco.com 287 Ram Mohan Ravindranath 288 Cisco Systems, Inc. 289 Cessna Business Park, Varthur Hobli 290 Sarjapur Marathalli Outer Ring Road 291 Bangalore, Karnataka 560103 292 India 294 Email: rmohanr@cisco.com 296 Muthu Arul Mozhi Perumal 297 Cisco Systems, Inc. 298 Cessna Business Park 299 Sarjapur-Marathahalli Outer Ring Road 300 Bangalore, Karnataka 560103 301 India 303 Email: mperumal@cisco.com 305 Alper Yegin 306 Samsung 307 Istanbul 308 Turkey 310 Email: alper.yegin@yegin.org