1 1.1 agc 2 1.1 agc 3 1.1 agc 4 1.1 agc 5 1.1 agc 6 1.1 agc 7 1.1 agc Network Working Group C. Newman 8 1.1 agc Request for Comments: 2245 Innosoft 9 1.1 agc Category: Standards Track November 1997 10 1.1 agc 11 1.1 agc 12 1.1 agc Anonymous SASL Mechanism 13 1.1 agc 14 1.1 agc Status of this Memo 15 1.1 agc 16 1.1 agc This document specifies an Internet standards track protocol for the 17 1.1 agc Internet community, and requests discussion and suggestions for 18 1.1 agc improvements. Please refer to the current edition of the "Internet 19 1.1 agc Official Protocol Standards" (STD 1) for the standardization state 20 1.1 agc and status of this protocol. Distribution of this memo is unlimited. 21 1.1 agc 22 1.1 agc Copyright Notice 23 1.1 agc 24 1.1 agc Copyright (C) The Internet Society (1997). All Rights Reserved. 25 1.1 agc 26 1.1 agc Abstract 27 1.1 agc 28 1.1 agc It is common practice on the Internet to permit anonymous access to 29 1.1 agc various services. Traditionally, this has been done with a plain 30 1.1 agc text password mechanism using "anonymous" as the user name and 31 1.1 agc optional trace information, such as an email address, as the 32 1.1 agc password. As plaintext login commands are not permitted in new IETF 33 1.1 agc protocols, a new way to provide anonymous login is needed within the 34 1.1 agc context of the SASL [SASL] framework. 35 1.1 agc 36 1.1 agc 1. Conventions Used in this Document 37 1.1 agc 38 1.1 agc The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" 39 1.1 agc in this document are to be interpreted as defined in "Key words for 40 1.1 agc use in RFCs to Indicate Requirement Levels" [KEYWORDS]. 41 1.1 agc 42 1.1 agc 2. Anonymous SASL mechanism 43 1.1 agc 44 1.1 agc The mechanism name associated with anonymous access is "ANONYMOUS". 45 1.1 agc The mechanism consists of a single message from the client to the 46 1.1 agc server. The client sends optional trace information in the form of a 47 1.1 agc human readable string. The trace information should take one of 48 1.1 agc three forms: an Internet email address, an opaque string which does 49 1.1 agc not contain the '@' character and can be interpreted by the system 50 1.1 agc administrator of the client's domain, or nothing. For privacy 51 1.1 agc reasons, an Internet email address should only be used with 52 1.1 agc permission from the user. 53 1.1 agc 54 1.1 agc 55 1.1 agc 56 1.1 agc 57 1.1 agc 58 1.1 agc Newman Standards Track [Page 1] 59 1.1 agc 61 1.1 agc RFC 2245 Anonymous SASL Mechanism November 1997 62 1.1 agc 63 1.1 agc 64 1.1 agc A server which permits anonymous access will announce support for the 65 1.1 agc ANONYMOUS mechanism, and allow anyone to log in using that mechanism, 66 1.1 agc usually with restricted access. 67 1.1 agc 68 1.1 agc The formal grammar for the client message using Augmented BNF [ABNF] 69 1.1 agc follows. 70 1.1 agc 71 1.1 agc message = [email / token] 72 1.1 agc 73 1.1 agc TCHAR = %x20-3F / %x41-7E 74 1.1 agc ;; any printable US-ASCII character except '@' 75 1.1 agc 76 1.1 agc email = addr-spec 77 1.1 agc ;; as defined in [IMAIL], except with no free 78 1.1 agc ;; insertion of linear-white-space, and the 79 1.1 agc ;; local-part MUST either be entirely enclosed in 80 1.1 agc ;; quotes or entirely unquoted 81 1.1 agc 82 1.1 agc token = 1*255TCHAR 83 1.1 agc 84 1.1 agc 3. Example 85 1.1 agc 86 1.1 agc 87 1.1 agc Here is a sample anonymous login between an IMAP client and server. 88 1.1 agc In this example, "C:" and "S:" indicate lines sent by the client and 89 1.1 agc server respectively. If such lines are wrapped without a new "C:" or 90 1.1 agc "S:" label, then the wrapping is for editorial clarity and is not 91 1.1 agc part of the command. 92 1.1 agc 93 1.1 agc Note that this example uses the IMAP profile [IMAP4] of SASL. The 94 1.1 agc base64 encoding of challenges and responses, as well as the "+ " 95 1.1 agc preceding the responses are part of the IMAP4 profile, not part of 96 1.1 agc SASL itself. Newer profiles of SASL will include the client message 97 1.1 agc with the AUTHENTICATE command itself so the extra round trip below 98 1.1 agc (the server response with an empty "+ ") can be eliminated. 99 1.1 agc 100 1.1 agc In this example, the user's opaque identification token is "sirhc". 101 1.1 agc 102 1.1 agc S: * OK IMAP4 server ready 103 1.1 agc C: A001 CAPABILITY 104 1.1 agc S: * CAPABILITY IMAP4 IMAP4rev1 AUTH=CRAM-MD5 AUTH=ANONYMOUS 105 1.1 agc S: A001 OK done 106 1.1 agc C: A002 AUTHENTICATE ANONYMOUS 107 1.1 agc S: + 108 1.1 agc C: c2lyaGM= 109 1.1 agc S: A003 OK Welcome, trace information has been logged. 110 1.1 agc 111 1.1 agc 112 1.1 agc 113 1.1 agc 114 1.1 agc 115 1.1 agc Newman Standards Track [Page 2] 116 1.1 agc 118 1.1 agc RFC 2245 Anonymous SASL Mechanism November 1997 119 1.1 agc 120 1.1 agc 121 1.1 agc 4. Security Considerations 122 1.1 agc 123 1.1 agc The anonymous mechanism grants access to information by anyone. For 124 1.1 agc this reason it should be disabled by default so the administrator can 125 1.1 agc make an explicit decision to enable it. 126 1.1 agc 127 1.1 agc If the anonymous user has any write privileges, a denial of service 128 1.1 agc attack is possible by filling up all available space. This can be 129 1.1 agc prevented by disabling all write access by anonymous users. 130 1.1 agc 131 1.1 agc If anonymous users have read and write access to the same area, the 132 1.1 agc server can be used as a communication mechanism to anonymously 133 1.1 agc exchange information. Servers which accept anonymous submissions 134 1.1 agc should implement the common "drop box" model which forbids anonymous 135 1.1 agc read access to the area where anonymous submissions are accepted. 136 1.1 agc 137 1.1 agc If the anonymous user can run many expensive operations (e.g., an 138 1.1 agc IMAP SEARCH BODY command), this could enable a denial of service 139 1.1 agc attack. Servers are encouraged to limit the number of anonymous 140 1.1 agc users and reduce their priority or limit their resource usage. 141 1.1 agc 142 1.1 agc If there is no idle timeout for the anonymous user and there is a 143 1.1 agc limit on the number of anonymous users, a denial of service attack is 144 1.1 agc enabled. Servers should implement an idle timeout for anonymous 145 1.1 agc users. 146 1.1 agc 147 1.1 agc The trace information is not authenticated so it can be falsified. 148 1.1 agc This can be used as an attempt to get someone else in trouble for 149 1.1 agc access to questionable information. Administrators trying to trace 150 1.1 agc abuse need to realize this information may be falsified. 151 1.1 agc 152 1.1 agc A client which uses the user's correct email address as trace 153 1.1 agc information without explicit permission may violate that user's 154 1.1 agc privacy. Information about who accesses an anonymous archive on a 155 1.1 agc sensitive subject (e.g., sexual abuse) has strong privacy needs. 156 1.1 agc Clients should not send the email address without explicit permission 157 1.1 agc of the user and should offer the option of supplying no trace token 158 1.1 agc -- thus only exposing the source IP address and time. Anonymous 159 1.1 agc proxy servers could enhance this privacy, but would have to consider 160 1.1 agc the resulting potential denial of service attacks. 161 1.1 agc 162 1.1 agc Anonymous connections are susceptible to man in the middle attacks 163 1.1 agc which view or alter the data transferred. Clients and servers are 164 1.1 agc encouraged to support external integrity and encryption mechanisms. 165 1.1 agc 166 1.1 agc Protocols which fail to require an explicit anonymous login are more 167 1.1 agc susceptible to break-ins given certain common implementation 168 1.1 agc techniques. Specifically, Unix servers which offer user login may 169 1.1 agc 170 1.1 agc 171 1.1 agc 172 1.1 agc Newman Standards Track [Page 3] 173 1.1 agc 175 1.1 agc RFC 2245 Anonymous SASL Mechanism November 1997 176 1.1 agc 177 1.1 agc 178 1.1 agc initially start up as root and switch to the appropriate user id 179 1.1 agc after an explicit login command. Normally such servers refuse all 180 1.1 agc data access commands prior to explicit login and may enter a 181 1.1 agc restricted security environment (e.g., the Unix chroot function) for 182 1.1 agc anonymous users. If anonymous access is not explicitly requested, 183 1.1 agc the entire data access machinery is exposed to external security 184 1.1 agc attacks without the chance for explicit protective measures. 185 1.1 agc Protocols which offer restricted data access should not allow 186 1.1 agc anonymous data access without an explicit login step. 187 1.1 agc 188 1.1 agc 5. References 189 1.1 agc 190 1.1 agc [ABNF] Crocker, D. and P. Overell, "Augmented BNF for Syntax 191 1.1 agc Specifications: ABNF", RFC 2234, November 1997. 192 1.1 agc 193 1.1 agc [IMAIL] Crocker, D., "Standard for the Format of Arpa Internet Text 194 1.1 agc Messages", STD 11, RFC 822, August 1982. 195 1.1 agc 196 1.1 agc [IMAP4] Crispin, M., "Internet Message Access Protocol - Version 197 1.1 agc 4rev1", RFC 2060, December 1996. 198 1.1 agc 199 1.1 agc [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate 200 1.1 agc Requirement Levels", RFC 2119, March 1997. 201 1.1 agc 202 1.1 agc [SASL] Myers, J., "Simple Authentication and Security Layer (SASL)", 203 1.1 agc RFC 2222, October 1997. 204 1.1 agc 205 1.1 agc 6. Author's Address 206 1.1 agc 207 1.1 agc Chris Newman 208 1.1 agc Innosoft International, Inc. 209 1.1 agc 1050 Lakes Drive 210 1.1 agc West Covina, CA 91790 USA 211 1.1 agc 212 1.1 agc Email: chris.newman (a] innosoft.com 213 1.1 agc 214 1.1 agc 215 1.1 agc 216 1.1 agc 217 1.1 agc 218 1.1 agc 219 1.1 agc 220 1.1 agc 221 1.1 agc 222 1.1 agc 223 1.1 agc 224 1.1 agc 225 1.1 agc 226 1.1 agc 227 1.1 agc 228 1.1 agc 229 1.1 agc Newman Standards Track [Page 4] 230 1.1 agc 232 1.1 agc RFC 2245 Anonymous SASL Mechanism November 1997 233 1.1 agc 234 1.1 agc 235 1.1 agc 7. Full Copyright Statement 236 1.1 agc 237 1.1 agc Copyright (C) The Internet Society (1997). All Rights Reserved. 238 1.1 agc 239 1.1 agc This document and translations of it may be copied and furnished to 240 1.1 agc others, and derivative works that comment on or otherwise explain it 241 1.1 agc or assist in its implementation may be prepared, copied, published 242 1.1 agc and distributed, in whole or in part, without restriction of any 243 1.1 agc kind, provided that the above copyright notice and this paragraph are 244 1.1 agc included on all such copies and derivative works. However, this 245 1.1 agc document itself may not be modified in any way, such as by removing 246 1.1 agc the copyright notice or references to the Internet Society or other 247 1.1 agc Internet organizations, except as needed for the purpose of 248 1.1 agc developing Internet standards in which case the procedures for 249 1.1 agc copyrights defined in the Internet Standards process must be 250 1.1 agc followed, or as required to translate it into languages other than 251 1.1 agc English. 252 1.1 agc 253 1.1 agc The limited permissions granted above are perpetual and will not be 254 1.1 agc revoked by the Internet Society or its successors or assigns. 255 1.1 agc 256 1.1 agc This document and the information contained herein is provided on an 257 1.1 agc "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 258 1.1 agc TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 259 1.1 agc BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 260 1.1 agc HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 261 1.1 agc MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 262 1.1 agc 263 1.1 agc 264 1.1 agc 265 1.1 agc 266 1.1 agc 267 1.1 agc 268 1.1 agc 269 1.1 agc 270 1.1 agc 271 1.1 agc 272 1.1 agc 273 1.1 agc 274 1.1 agc 275 1.1 agc 276 1.1 agc 277 1.1 agc 278 1.1 agc 279 1.1 agc 280 1.1 agc 281 1.1 agc 282 1.1 agc 283 1.1 agc 284 285 286 Newman Standards Track [Page 5] 287 289