]> diplodocus.org Git - nmh/blob - docs/historical/mh-6.8.5/support/pop/pop-more.txt
sbr/mts.c: Delete mmdlm2; use same-valued mmdlm1 instead.
[nmh] / 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