Added all of the MH sources, including RCS files, in
[mmh] / docs / historical / mh-6.8.5 / support / pop / pop-more.txt
1
2
3
4
5           draft       POP Version 3: More Service Offerings       Apr 92
6
7
8                          Post Office Protocol: Version 3
9                               More Service Offerings
10
11                              Fri Apr 17 21:03:20 1992
12
13
14                                  Marshall T. Rose
15                            Dover Beach Consulting, Inc.
16                               mrose@dbc.mtview.ca.us
17
18
19
20
21
22
23           1.  Status of this Memo
24
25           This memo provides information for the Internet community.  It
26           does not specify any standard.  Distribution of this memo is
27           unlimited.  Please send comments to the author.
28
29
30           2.  Abstract
31
32           This memo suggests some modest enhancements to version 3 of
33           the Post Office Protocol (RFC 1081).  All of these extensions
34           are optional.  In particular, administrators should examine
35           their environment to see if any of these enhancements are
36           useful.
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58           M. Rose                                               [Page 1]
59 \f
60
61
62
63
64           draft       POP Version 3: More Service Offerings       Apr 92
65
66
67           3.  Historical Overview
68
69           The Post Office Protocol (POP) was developed to provide a
70           simple mechanism for workstations to download their mailboxes
71           from workgroup and departmental servers.  Typically, the
72           workstations and servers are interconnected via a LAN or
73           perhaps an internet-mesh with reasonable throughput and
74           latency.
75
76           As use of the Internet suite of protocols has grown, different
77           kind of environments are beginning to use the POP.  This memo
78           suggests optional enhancements to the POP to allow it to
79           function better in these environments.
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117           M. Rose                                               [Page 2]
118 \f
119
120
121
122
123           draft       POP Version 3: More Service Offerings       Apr 92
124
125
126           4.  The APOP command
127
128           Each POP session starts with a USER/PASS exchange.  This
129           results in a POP-subscriber password being sent in the clear
130           on the network.  For intermittent use of POP, this may not
131           introduce a sizable risk.  However, many POP client
132           implementations connect to the POP server on a regular
133           basis -- to check for new mail.  Further the interval of
134           session initiation may be on the order of five minutes.
135           Hence, the risk of password capture is greatly enhanced.
136
137           A new method of authentication is required which provides for
138           both origin authentication and replay protection, but which
139           does not involve sending a password in the clear over the
140           network.  This memo introduces a new command, APOP, to provide
141           this functionality.
142
143           A POP server which implements the APOP command will include a
144           timestamp in its banner greeting.  The syntax of the timestamp
145           corresponds to the `msg-id' in RFC 822, and MUST be different
146           each time the POP server issues a banner greeting.  For
147           example, on a UNIX implementation in which a separate UNIX
148           process is used for each instance of a POP server, the syntax
149           of the timestamp might be:
150
151                <process-ID.clock@hostname>
152
153           where `process-ID' is the decimal value of the process's PID,
154           clock is the decimal value of the system clock, and hostname
155           is the fully-qualified domain-name corresponding to the host
156           where the POP server is running.
157
158           The POP client makes note of this timestamp, and then issues
159           the APOP command.  The syntax of this command is:
160
161                APOP name digest
162
163           The `name' parameter is a locally-significant string which
164           identifies a particular POP-subscriber.  The `digest'
165           parameter is calculated by applying the MD5 algorithm[1] to a
166           string consisting of the timestamp (including angle-brackets)
167           followed by a shared secret.  This shared secret is a string
168           known only to the POP client and POP server.  Great care
169           should be taken to prevent unauthorized disclosure of the
170           secret, as knowledge of the secret will allow any entity to
171
172
173
174
175
176           M. Rose                                               [Page 3]
177 \f
178
179
180
181
182           draft       POP Version 3: More Service Offerings       Apr 92
183
184
185           successfully masquerade as the named POP-subscriber.  The
186           `digest' parameter itself is a 16-octet value which is sent in
187           hexadecimal format.
188
189           When the POP server receives the APOP command, it verifies the
190           digest provided.  If the digest is correct, the POP server
191           issues a positive response, and the POP session enters the
192           TRANSACTION state.  Otherwise, a negative response is issued
193           and the POP session remains in the AUTHORIZATION state.
194
195           4.1.  Usage Example
196
197                S: +OK POP server ready <1896.697170952@dbc.mtview.ca.us>
198                C: USER mrose
199                S: +OK password required for mrose
200                C: APOP c4c9334bac560ecc979e58001b3e22fb
201                S: +OK maildrop has 1 message (369 octets)
202
203           In this example, the shared secret is the string `tanstaaf'.
204           Hence, the MD5 algorithm is applied to the string
205
206                <1896.697170952@dbc.mtview.ca.us>tanstaaf
207
208           which produces a digest value of
209
210                c4c9334bac560ecc979e58001b3e22fb
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235           M. Rose                                               [Page 4]
236 \f
237
238
239
240
241           draft       POP Version 3: More Service Offerings       Apr 92
242
243
244           5.  The XTND SCAN command
245
246           The current POP model works best when network latency and
247           throughput is on the order provided by most LANs.  However,
248           when POP is used over low-speed connections (e.g., 2400 baud
249           dialup lines), the POP does not work well.
250
251           Historically, the POP model has been to make only minimal
252           requirements on the POP server.  In order to more effectively
253           operate over low-speed connections, this model must be
254           modified somewhat.  Implementation experience shows that the
255           largest improvement can be achieved by making one shift:
256           having the POP server generate a scan listing for the POP
257           client.  This memo introduces a new command, XTND SCAN, to
258           provide this functionality.
259
260           A POP client issues the XTND SCAN command during the
261           TRANSACTION state.  The syntax of this command is:
262
263                XTND SCAN width [format]
264
265           The `width' parameter is the maximum length for a scan
266           listing.  The optional `format' parameter is a quoted-string
267           with the semantics of an mh-format(5) string[2].  If the
268           `format' parameter is not given, the POP server uses a
269           locally-defined default value.  Note that the resulting format
270           string must not contain CR or LF.
271
272           The `format' parameter is the only token in the POP which must
273           be enclosed in double-quotation marks.  Within the string, two
274           special sequences are recognized:
275
276                \"  - double-quote
277                \\ - single-\
278
279           Otherwise, each character is used verbatim.  Note that this
280           string can be quite long (on the order of 400 characters).
281
282           When the POP server receives the XTND SCAN command and if it
283           implements it, it issues a positive response.  Otherwise a
284           negative response is issued.  Thereafter, whenever the POP
285           client issues a LIST command, the syntax of the resulting
286           `scan listing' is of the form:
287
288                msgno size #string
289
290
291
292
293
294           M. Rose                                               [Page 5]
295 \f
296
297
298
299
300           draft       POP Version 3: More Service Offerings       Apr 92
301
302
303           As with the standard POP, the `msgno' field gives the message
304           number and the `size' field gives the size of the message in
305           octets.  The `string' parameter, which immediately follows the
306           `#' character is the string calculated when the formatting
307           string is applied to the message.  Note that the `string' may
308           not be multiline.
309
310           5.1.  Usage Example
311
312                S: XTND SCAN 80 "%4(msg)%<(cur)+%| %>%<{replied}-%|...
313                C: +OK SCAN
314                S: LIST 1
315                C: +OK 1 369 #   1  02/03 17:49PST To:mrose           test<<
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353           M. Rose                                               [Page 6]
354 \f
355
356
357
358
359           draft       POP Version 3: More Service Offerings       Apr 92
360
361
362           6.  Implementations
363
364           MH 6.7.4 implements the POP extensions described in this memo.
365           Contact Bug-MH@ics.uci.edu for information on how to get MH.
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
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412           M. Rose                                               [Page 7]
413 \f
414
415
416
417
418           draft       POP Version 3: More Service Offerings       Apr 92
419
420
421           7.  Acknowledgements
422
423           The author gratefully acknowledges the comments of Alfred
424           Grimstad and Neil Ostroff of Bellcore, and Keith McCloghrie of
425           Hughes LAN Systems.
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471           M. Rose                                               [Page 8]
472 \f
473
474
475
476
477           draft       POP Version 3: More Service Offerings       Apr 92
478
479
480           8.  References
481
482           [1]  R.L. Rivest, The MD5 Message-Digest Algorithm.  Request
483                for Comments 1321, (April, 1992).
484
485           [2]  M.T. Rose, J.L. Romine, The Rand MH Message Handling
486                System: User's Manual, November, 1985.
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530           M. Rose                                               [Page 9]
531 \f
532
533
534
535
536           draft       POP Version 3: More Service Offerings       Apr 92
537
538
539           Table of Contents
540
541
542           1 Status of this Memo ...................................    1
543           2 Abstract ..............................................    1
544           3 Historical Overview ...................................    2
545           4 The APOP command ......................................    3
546           4.1 Usage Example .......................................    4
547           5 The XTND SCAN command .................................    5
548           5.1 Usage Example .......................................    6
549           6 Implementations .......................................    7
550           7 Acknowledgements ......................................    8
551           8 References ............................................    9
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589           M. Rose                                              [Page 10]
590 \f