~ubuntu-branches/debian/stretch/alpine/stretch

« back to all changes in this revision

Viewing changes to imap/docs/rfc/rfc2971.txt

  • Committer: Package Import Robot
  • Author(s): Asheesh Laroia
  • Date: 2013-05-19 16:15:01 UTC
  • mfrom: (1.1.10)
  • Revision ID: package-import@ubuntu.com-20130519161501-epf6pfldn07xnd11
Tags: 2.10+dfsg-1
* New upstream release.
* This release ships a fix for an issue where the PREFDATETIME token
  was always set to "Sun" incorrectly. (Closes: #692870)
* This release ships a fix for IMAP-encoded non-ASCII folder names.
  (Closes: #674067)
* This release simplifies (and corrects) S/MIME handling for messages
  that encrypted *and* signed. (Closes: #653420)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
 
 
3
 
 
4
 
 
5
 
 
6
 
 
7
Network Working Group                                        T. Showalter
 
8
Request for Comments: 2971                                Mirapoint, Inc.
 
9
Category: Standards Track                                    October 2000
 
10
 
 
11
 
 
12
                           IMAP4 ID extension
 
13
 
 
14
Status of this Memo
 
15
 
 
16
   This document specifies an Internet standards track protocol for the
 
17
   Internet community, and requests discussion and suggestions for
 
18
   improvements.  Please refer to the current edition of the "Internet
 
19
   Official Protocol Standards" (STD 1) for the standardization state
 
20
   and status of this protocol.  Distribution of this memo is unlimited.
 
21
 
 
22
Copyright Notice
 
23
 
 
24
   Copyright (C) The Internet Society (2000).  All Rights Reserved.
 
25
 
 
26
Abstract
 
27
 
 
28
   The ID extension to the Internet Message Access Protocol - Version
 
29
   4rev1 (IMAP4rev1) protocol allows the server and client to exchange
 
30
   identification information on their implementation in order to make
 
31
   bug reports and usage statistics more complete.
 
32
 
 
33
1. Introduction
 
34
 
 
35
   The IMAP4rev1 protocol described in [IMAP4rev1] provides a method for
 
36
   accessing remote mail stores, but it provides no facility to
 
37
   advertise what program a client or server uses to provide service.
 
38
   This makes it difficult for implementors to get complete bug reports
 
39
   from users, as it is frequently difficult to know what client or
 
40
   server is in use.
 
41
 
 
42
   Additionally, some sites may wish to assemble usage statistics based
 
43
   on what clients are used, but in an an environment where users are
 
44
   permitted to obtain and maintain their own clients this is difficult
 
45
   to accomplish.
 
46
 
 
47
   The ID command provides a facility to advertise information on what
 
48
   programs are being used along with contact information (should bugs
 
49
   ever occur).
 
50
 
 
51
 
 
52
 
 
53
 
 
54
 
 
55
 
 
56
 
 
57
 
 
58
Showalter                   Standards Track                     [Page 1]
 
59
 
 
60
RFC 2971                   IMAP4 ID extension               October 2000
 
61
 
 
62
 
 
63
2. Conventions Used in this Document
 
64
 
 
65
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
 
66
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
 
67
   document are to be interpreted as described in [KEYWORDS].
 
68
 
 
69
   The conventions used in this document are the same as specified in
 
70
   [IMAP4rev1].  In examples, "C:" and "S:" indicate lines sent by the
 
71
   client and server respectively.  Line breaks have been inserted for
 
72
   readability.
 
73
 
 
74
3. Specification
 
75
 
 
76
   The sole purpose of the ID extension is to enable clients and servers
 
77
   to exchange information on their implementations for the purposes of
 
78
   statistical analysis and problem determination.
 
79
 
 
80
   This information is be submitted to a server by any client wishing to
 
81
   provide information for statistical purposes, provided the server
 
82
   advertises its willingness to take the information with the atom "ID"
 
83
   included in the list of capabilities returned by the CAPABILITY
 
84
   command.
 
85
 
 
86
   Implementations MUST NOT make operational changes based on the data
 
87
   sent as part of the ID command or response.  The ID command is for
 
88
   human consumption only, and is not to be used in improving the
 
89
   performance of clients or servers.
 
90
 
 
91
   This includes, but is not limited to, the following:
 
92
 
 
93
      Servers MUST NOT attempt to work around client bugs by using
 
94
      information from the ID command.  Clients MUST NOT attempt to work
 
95
      around server bugs based on the ID response.
 
96
 
 
97
      Servers MUST NOT provide features to a client or otherwise
 
98
      optimize for a particular client by using information from the ID
 
99
      command.  Clients MUST NOT provide features to a server or
 
100
      otherwise optimize for a particular server based on the ID
 
101
      response.
 
102
 
 
103
      Servers MUST NOT deny access to or refuse service for a client
 
104
      based on information from the ID command.  Clients MUST NOT refuse
 
105
      to operate or limit their operation with a server based on the ID
 
106
      response.
 
107
 
 
108
 
 
109
 
 
110
 
 
111
 
 
112
 
 
113
 
 
114
Showalter                   Standards Track                     [Page 2]
 
115
 
 
116
RFC 2971                   IMAP4 ID extension               October 2000
 
117
 
 
118
 
 
119
   Rationale: It is imperative that this extension not supplant IMAP's
 
120
   CAPABILITY mechanism with a ad-hoc approach where implementations
 
121
   guess each other's features based on who they claim to be.
 
122
 
 
123
   Implementations MUST NOT send false information in an ID command.
 
124
 
 
125
   Implementations MAY send less information than they have available or
 
126
   no information at all.  Such behavior may be useful to preserve user
 
127
   privacy.  See Security Considerations, section 7.
 
128
 
 
129
3.1. ID Command
 
130
 
 
131
   Arguments:  client parameter list or NIL
 
132
 
 
133
   Responses:  OPTIONAL untagged response: ID
 
134
 
 
135
   Result:     OK    identification information accepted
 
136
               BAD   command unknown or arguments invalid
 
137
 
 
138
   Implementation identification information is sent by the client with
 
139
   the ID command.
 
140
 
 
141
   This command is valid in any state.
 
142
 
 
143
   The information sent is in the form of a list of field/value pairs.
 
144
   Fields are permitted to be any IMAP4 string, and values are permitted
 
145
   to be any IMAP4 string or NIL.  A value of NIL indicates that the
 
146
   client can not or will not specify this information.  The client may
 
147
   also send NIL instead of the list, indicating that it wants to send
 
148
   no information, but would still accept a server response.
 
149
 
 
150
   The available fields are defined in section 3.3.
 
151
 
 
152
   Example:  C: a023 ID ("name" "sodr" "version" "19.34" "vendor"
 
153
                 "Pink Floyd Music Limited")
 
154
             S: * ID NIL
 
155
             S: a023 OK ID completed
 
156
 
 
157
3.2. ID Response
 
158
 
 
159
   Contents:   server parameter list
 
160
 
 
161
   In response to an ID command issued by the client, the server replies
 
162
   with a tagged response containing information on its implementation.
 
163
   The format is the same as the client list.
 
164
 
 
165
 
 
166
 
 
167
 
 
168
 
 
169
 
 
170
Showalter                   Standards Track                     [Page 3]
 
171
 
 
172
RFC 2971                   IMAP4 ID extension               October 2000
 
173
 
 
174
 
 
175
   Example:  C: a042 ID NIL
 
176
             S: * ID ("name" "Cyrus" "version" "1.5" "os" "sunos"
 
177
                  "os-version" "5.5" "support-url"
 
178
                  "mailto:cyrus-bugs+@andrew.cmu.edu")
 
179
             S: a042 OK ID command completed
 
180
 
 
181
   A server MUST send a tagged ID response to an ID command.  However, a
 
182
   server MAY send NIL in place of the list.
 
183
 
 
184
3.3. Defined Field Values
 
185
 
 
186
   Any string may be sent as a field, but the following are defined to
 
187
   describe certain values that might be sent.  Implementations are free
 
188
   to send none, any, or all of these.  Strings are not case-sensitive.
 
189
   Field strings MUST NOT be longer than 30 octets.  Value strings MUST
 
190
   NOT be longer than 1024 octets.  Implementations MUST NOT send more
 
191
   than 30 field-value pairs.
 
192
 
 
193
     name            Name of the program
 
194
     version         Version number of the program
 
195
     os              Name of the operating system
 
196
     os-version      Version of the operating system
 
197
     vendor          Vendor of the client/server
 
198
     support-url     URL to contact for support
 
199
     address         Postal address of contact/vendor
 
200
     date            Date program was released, specified as a date-time
 
201
                       in IMAP4rev1
 
202
     command         Command used to start the program
 
203
     arguments       Arguments supplied on the command line, if any
 
204
                       if any
 
205
     environment     Description of environment, i.e., UNIX environment
 
206
                       variables or Windows registry settings
 
207
 
 
208
   Implementations MUST NOT use contact information to submit automatic
 
209
   bug reports.  Implementations may include information from an ID
 
210
   response in a report automatically prepared, but are prohibited from
 
211
   sending the report without user authorization.
 
212
 
 
213
   It is preferable to find the name and version of the underlying
 
214
   operating system at runtime in cases where this is possible.
 
215
 
 
216
   Information sent via an ID response may violate user privacy.  See
 
217
   Security Considerations, section 7.
 
218
 
 
219
   Implementations MUST NOT send the same field name more than once.
 
220
 
 
221
 
 
222
 
 
223
 
 
224
 
 
225
 
 
226
Showalter                   Standards Track                     [Page 4]
 
227
 
 
228
RFC 2971                   IMAP4 ID extension               October 2000
 
229
 
 
230
 
 
231
4. Formal Syntax
 
232
 
 
233
   This  syntax is intended to augment the grammar specified in
 
234
   [IMAP4rev1] in order to provide for the ID command.  This
 
235
   specification uses the augmented Backus-Naur Form (BNF) notation as
 
236
   used in [IMAP4rev1].
 
237
 
 
238
     command_any ::= "CAPABILITY" / "LOGOUT" / "NOOP" / x_command / id
 
239
         ;; adds id command to command_any in [IMAP4rev1]
 
240
 
 
241
     id ::= "ID" SPACE id_params_list
 
242
 
 
243
     id_response ::= "ID" SPACE id_params_list
 
244
 
 
245
     id_params_list ::= "(" #(string SPACE nstring) ")" / nil
 
246
         ;; list of field value pairs
 
247
 
 
248
     response_data ::= "*" SPACE (resp_cond_state / resp_cond_bye /
 
249
         mailbox_data / message_data / capability_data / id_response)
 
250
 
 
251
5. Use of the ID extension with Firewalls and Other Intermediaries
 
252
 
 
253
   There exist proxies, firewalls, and other intermediary systems that
 
254
   can intercept an IMAP session and make changes to the data exchanged
 
255
   in the session.  Such intermediaries are not anticipated by the IMAP4
 
256
   protocol design and are not within the scope of the IMAP4 standard.
 
257
   However, in order for the ID command to be useful in the presence of
 
258
   such intermediaries, those intermediaries need to take special note
 
259
   of the ID command and response.  In particular, if an intermediary
 
260
   changes any part of the IMAP session it must also change the ID
 
261
   command to advertise its presence.
 
262
 
 
263
   A firewall MAY act to block transmission of specific information
 
264
   fields in the ID command and response that it believes reveal
 
265
   information that could expose a security vulnerability.  However, a
 
266
   firewall SHOULD NOT disable the extension, when present, entirely,
 
267
   and SHOULD NOT unconditionally remove either the client or server
 
268
   list.
 
269
 
 
270
   Finally, it should be noted that a firewall, when handling a
 
271
   CAPABILITY response, MUST NOT allow the names of extensions to be
 
272
   returned to the client that the firewall has no knowledge of.
 
273
 
 
274
 
 
275
 
 
276
 
 
277
 
 
278
 
 
279
 
 
280
 
 
281
 
 
282
Showalter                   Standards Track                     [Page 5]
 
283
 
 
284
RFC 2971                   IMAP4 ID extension               October 2000
 
285
 
 
286
 
 
287
6. References
 
288
 
 
289
   [KEYWORDS]  Bradner, S., "Key words for use in RFCs to Indicate
 
290
               Requirement Levels", RFC 2119, March 1997.
 
291
 
 
292
   [IMAP4rev1] Crispin, M., "Internet Message Access Protocol - Version
 
293
               4rev1", RFC 2060, October 1996.
 
294
 
 
295
   [RFC-822]   Crocker, D., "Standard for the Format of ARPA Internet
 
296
               Text Messages", STD 11, RFC 822, August 1982.
 
297
 
 
298
7. Security Considerations
 
299
 
 
300
   This extension has the danger of violating the privacy of users if
 
301
   misused.  Clients and servers should notify users that they implement
 
302
   and enable the ID command.
 
303
 
 
304
   It is highly desirable that implementations provide a method of
 
305
   disabling ID support, perhaps by not sending ID at all, or by sending
 
306
   NIL as the argument to the ID command or response.
 
307
 
 
308
   Implementors must exercise extreme care in adding fields sent as part
 
309
   of an ID command or response.  Some fields, including a processor ID
 
310
   number, Ethernet address, or other unique (or mostly unique)
 
311
   identifier allow tracking of users in ways that violate user privacy
 
312
   expectations.
 
313
 
 
314
   Having implementation information of a given client or server may
 
315
   make it easier for an attacker to gain unauthorized access due to
 
316
   security holes.
 
317
 
 
318
   Since this command includes arbitrary data and does not require the
 
319
   user to authenticate, server implementations are cautioned to guard
 
320
   against an attacker sending arbitrary garbage data in order to fill
 
321
   up the ID log.  In particular, if a server naively logs each ID
 
322
   command to disk without inspecting it, an attacker can simply fire up
 
323
   thousands of connections and send a few kilobytes of random data.
 
324
   Servers have to guard against this.  Methods include truncating
 
325
   abnormally large responses; collating responses by storing only a
 
326
   single copy, then keeping a counter of the number of times that
 
327
   response has been seen; keeping only particularly interesting parts
 
328
   of responses; and only logging responses of users who actually log
 
329
   in.
 
330
 
 
331
   Security is affected by firewalls which modify the IMAP protocol
 
332
   stream; see section 5, Use of the ID Extension with Firewalls and
 
333
   Other Intermediaries, for more information.
 
334
 
 
335
 
 
336
 
 
337
 
 
338
Showalter                   Standards Track                     [Page 6]
 
339
 
 
340
RFC 2971                   IMAP4 ID extension               October 2000
 
341
 
 
342
 
 
343
8. Author's Address
 
344
 
 
345
   Tim Showalter
 
346
   Mirapoint, Inc.
 
347
   909 Hermosa Ct.
 
348
   Sunnyvale, CA 94095
 
349
 
 
350
   EMail: tjs@mirapoint.com
 
351
 
 
352
 
 
353
 
 
354
 
 
355
 
 
356
 
 
357
 
 
358
 
 
359
 
 
360
 
 
361
 
 
362
 
 
363
 
 
364
 
 
365
 
 
366
 
 
367
 
 
368
 
 
369
 
 
370
 
 
371
 
 
372
 
 
373
 
 
374
 
 
375
 
 
376
 
 
377
 
 
378
 
 
379
 
 
380
 
 
381
 
 
382
 
 
383
 
 
384
 
 
385
 
 
386
 
 
387
 
 
388
 
 
389
 
 
390
 
 
391
 
 
392
 
 
393
 
 
394
Showalter                   Standards Track                     [Page 7]
 
395
 
 
396
RFC 2971                   IMAP4 ID extension               October 2000
 
397
 
 
398
 
 
399
9.  Full Copyright Statement
 
400
 
 
401
   Copyright (C) The Internet Society (2000).  All Rights Reserved.
 
402
 
 
403
   This document and translations of it may be copied and furnished to
 
404
   others, and derivative works that comment on or otherwise explain it
 
405
   or assist in its implementation may be prepared, copied, published
 
406
   and distributed, in whole or in part, without restriction of any
 
407
   kind, provided that the above copyright notice and this paragraph are
 
408
   included on all such copies and derivative works.  However, this
 
409
   document itself may not be modified in any way, such as by removing
 
410
   the copyright notice or references to the Internet Society or other
 
411
   Internet organizations, except as needed for the purpose of
 
412
   developing Internet standards in which case the procedures for
 
413
   copyrights defined in the Internet Standards process must be
 
414
   followed, or as required to translate it into languages other than
 
415
   English.
 
416
 
 
417
   The limited permissions granted above are perpetual and will not be
 
418
   revoked by the Internet Society or its successors or assigns.
 
419
 
 
420
   This document and the information contained herein is provided on an
 
421
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
 
422
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
 
423
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
 
424
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
 
425
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 
426
 
 
427
Acknowledgement
 
428
 
 
429
   Funding for the RFC Editor function is currently provided by the
 
430
   Internet Society.
 
431
 
 
432
 
 
433
 
 
434
 
 
435
 
 
436
 
 
437
 
 
438
 
 
439
 
 
440
 
 
441
 
 
442
 
 
443
 
 
444
 
 
445
 
 
446
 
 
447
 
 
448
 
 
449
 
 
450
Showalter                   Standards Track                     [Page 8]
 
451