/[pkg-mixmaster]/trunk/Docs/draft-moeller-v2-01.txt
ViewVC logotype

Contents of /trunk/Docs/draft-moeller-v2-01.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 561 - (show annotations) (download)
Sat Jul 12 21:06:43 2003 UTC (9 years, 11 months ago) by rabbi
File MIME type: text/plain
File size: 31783 byte(s)
Removed a reference to "Mixmaster protocol 3", updated Security
Considerations wrt to replay attack protection, moved a security
consideration nit to its proper place.
1 Internet-Draft Ulf Moeller
2 Expires: December 31, 2003
3 Lance Cottrell
4 Anonymizer Inc.
5 Peter Palfrader
6 The Mixmaster Project
7 Len Sassaman
8 Nomen Abditum Services
9 July 2003
10
11
12
13 Mixmaster Protocol Version 2
14 <draft-moeller-v2-01.txt>
15
16 Status of This Memo
17
18 This document is an Internet-Draft and is subject to all provisions
19 of Section 10 of RFC2026.
20
21 Internet-Drafts are working documents of the Internet Engineering
22 Task Force (IETF), its areas, and its working groups. Note that
23 other groups may also distribute working documents as
24 Internet-Drafts.
25
26 Internet-Drafts are draft documents valid for a maximum of six
27 months and may be updated, replaced, or obsoleted by other
28 documents at any time. It is inappropriate to use Internet-
29 Drafts as reference material or to cite them other than as
30 "work in progress."
31
32 The list of current Internet-Drafts can be accessed at
33 http://www.ietf.org/1id-abstracts.html
34
35 The list of Internet-Draft Shadow Directories can be accessed at
36 http://www.ietf.org/shadow.html
37
38 This Internet-Draft will expire on December 31, 2003.
39
40 Copyright Notice
41
42 Copyright (C) The Internet Society (2003). All Rights Reserved.
43
44
45
46 Abstract
47
48 Most e-mail security protocols only protect the message body, leaving
49 useful information such as the the identities of the conversing
50 parties, sizes of messages and frequency of message exchange open to
51 adversaries. This document describes Mixmaster (version 2), a mail
52 transfer protocol designed to protect electronic mail against traffic
53 analysis.
54
55 Mixmaster is based on D. Chaum's mix-net protocol.
56 A mix (remailer) is a service that forwards messages, using public key
57 cryptography to hide the correlation between its inputs and outputs.
58 Sending messages through sequences of remailers achieves anonymity and
59 unobservability of communications against a powerful adversary.
60
61
62
63 Table of Contents
64
65 1. Introduction
66 2. The Mix-Net Protocol
67 2.1 Message Creation
68 2.2 Remailing
69 2.3 Message Reassembly
70 2.4 Remixing
71 3. Pool Behavior
72 3.1 Timed Dynamic Pool Mix Algorithm
73 3.2 Dummy Traffic
74 4. Message Format
75 4.1 Payload Format
76 4.2 Cryptographic Algorithms
77 4.3 Packet Format
78 4.3.1 Header Section Format
79 4.3.2 Body Format
80 4.4 Mail Transport Encoding
81 5. Key Format
82 5.1 Key Rotation
83 6. Administrative Commands
84 7. Delivery of Anonymous Messages
85 8. Security Considerations
86 9. Acknowledgments
87 10. References
88 11. Authors' Addresses
89
90
91 1. Introduction
92
93 This document describes a mail transfer protocol designed to protect
94 electronic mail against traffic analysis. Most e-mail security
95 protocols only protect the message body, leaving useful information
96 such as the the identities of the conversing parties, sizes of
97 messages and frequency of message exchange open to adversaries.
98
99 Message transmission can be protected against traffic analysis by the
100 mix-net protocol. A mix (remailer) is a service that forwards
101 messages, using public key cryptography to hide the correlation
102 between its inputs and outputs. If a message is sent through a
103 sequence of mixes, one trusted mix is sufficient to provide anonymity
104 and unobservability of communications against a powerful
105 adversary. Mixmaster is a mix-net implementation for electronic mail.
106
107 This memo describes version 2 of the Mixmaster message format, as used on
108 the Internet since 1995.
109
110
111 2. The Mix-Net Protocol
112
113 The mix-net protocol [Chaum 1981] allows one to send messages while hiding
114 the relation of sender and recipient from observers
115 (unobservability). It also provides the sender of a message with the
116 ability to remain anonymous to the recipient (sender anonymity). If
117 anonymity is not desired, authenticity and unobservability can be
118 achieved at the same time by transmitting digitally signed messages.
119
120 This section gives an overview over the protocol used in Mixmaster. The
121 mixing algorithm is specified in section 3, and the message format is
122 specified in section 4.
123
124
125 2.1 Message Creation
126
127 To send a message, the user agent splits it into parts of fixed size,
128 which form the bodies of Mixmaster packets. If sender anonymity is
129 desired, care should be taken not to include identifying information
130 in the message. The message may be compressed.
131
132 The sender chooses a sequence of up to 20 remailers for each
133 packet. The final remailer must be identical for all packets.
134
135 The packet header consists of 20 sections. For a sequence of n
136 remailers, header sections n+1, ... , 20 are filled with random
137 data. For all sections i := n down to 1, the sender generates a
138 symmetric encryption key, which is used to encrypt the body and
139 all following header sections. This key, together with other control
140 information for the remailer, is included in the i-th header section,
141 which is then encrypted with the remailer's public key. The resulting
142 message is sent to the first remailer in an appropriate transport
143 encoding.
144
145 To increase reliability, redundant copies of the message may be sent
146 through different paths. The final remailer must be identical for all
147 paths, so that duplicates can be detected and the message is delivered
148 only once.
149
150
151 2.2 Remailing
152
153 When a remailer receives a message, it decrypts the first header
154 section with its private key. By keeping track of a packet ID, the
155 remailer verifies that the packet has not been processed before. The
156 integrity of the message is verified by checking the packet length and
157 verifying message digests included in the packet. Then the first
158 header section is removed, the others are shifted up by one, and the
159 last section is filled with random padding. All header sections and
160 the packet body are decrypted with the symmetric key found in the
161 header. This reveals a public key-encrypted header section for the
162 next remailer at the top, and removes the old top header
163 section. Transport encoding is applied to the resulting message.
164
165 The remailer collects several encrypted messages before sending the
166 resulting messages in random order. Thus the relation between the
167 incoming and outgoing messages is obscured to outside adversaries even
168 if the adversary can observe all messages sent. The message is
169 effectively anonymized by sending it through a chain of independently
170 operated remailers.
171
172
173 2.3 Message Reassembly
174
175 When a packet is sent to the final remailer, it contains an indication
176 that the chain ends at that remailer, and whether the packet contains
177 a complete message or part of a multi-part message. If the packet
178 contains the entire message, the packet body is decrypted and after
179 reordering messages the plain text is delivered to the recipient. For
180 partial messages, a message ID is used to identify the other parts as
181 they arrive. When all parts have arrived, the message is reassembled,
182 decompressed if necessary, and delivered. If the parts do not arrive
183 within a time limit, the message is discarded.
184
185 Only the last remailer in the chain can determine whether packets are
186 part of a certain message. To all the others, they are completely
187 independent.
188
189 2.4 Remixing
190
191 Some remailers may understand multiple remailer protocols. In the interest of
192 creating a unified anonymity set, remailers which speak multiple remailer
193 protocols should attempt to remix messages that use the older protocols whenever
194 possible.
195
196 When a remailer receives a message in the older protocol format, it should
197 determine if the message destination is another remailer which also speaks the
198 Mixmaster protocol. If the remailer knows the Mixmaster public key for the next
199 hop, it should process the message normally, but instead of sending the message
200 to its next hop, treat the processed message as opaque data which will comprise
201 the body of a Mixmaster message. The remailer should then create a Mixmaster
202 message with this body to be delivered to the next hop remailer.
203
204 If the remailer receives a Mixmaster message that, when decrypted, reveals a
205 message of another protocol which the remailer speaks, it should process the
206 message as though it had been delivered in the other protocol format initially.
207
208
209 3. Pool Behavior
210
211 3.1 Timed Dynamic Pool Mix Algorithm
212
213 In order to obfuscate the link between incoming and outgoing messages,
214 Mixmaster uses a pooling scheme. Messages that are to be forwarded
215 anonymously are stored in a pool. In regular intervals the remailer fires
216 and sends some random messages from the pool to either the next hop or
217 their final recipients.
218
219 The pooling scheme used in Mixmaster is a "Timed Dynamic Pool Mix", which has
220 the following three parameters:
221 t mixing interval
222 min minimum number of messages in the pool
223 rate percentage of messages to be send in one round
224
225 Every t seconds:
226 - Let n be the number of messages currently in the pool
227 - count is the smaller of (n - min) and (n * rate), or 0 if
228 (n - min) is negative.
229 - Select count random messages from the pool and send them.
230
231 3.2. Dummy Traffic
232
233 "Dummy messages" are multi-hop messages of type NULL with four randomly
234 selected nodes as their chain.
235
236 Older versions of Mixmaster (2.0.4 - 2.9.0) allowed for the creation of
237 dummy message cover traffic, but provided no automated means for introducing
238 this dummy traffic into the system. Beginning in version 3.0, Mixmaster employs
239 an internal dummy policy.
240
241 Every time a message is placed in the pool, the remailer chooses a random
242 number from a geometric distribution and creates that many dummy messages
243 which are also placed in the pool.
244
245 Similarly, prior to each execution of the mixing algorithm described in
246 section 3.1, the remailer selects a random number from a different geometric
247 distribution and adds that many dummy messages to the pool as well.
248
249 The distributions' parameters are chosen so that on average the remailer
250 creates one dummy for every 32 messages coming in and one every 9 mixing
251 rounds.
252
253
254 4. Message Format
255
256 4.1 Payload Format
257
258 The Mixmaster message payload can be an e-mail message, a Usenet
259 message or a dummy message.
260
261 The messages use the formats specified in [RFC 822] and [RFC 1036]
262 respectively, prepended with data specifying the payload type. An
263 additional, more restricted method of specifying message header lines
264 is defined for reasons of backward compatibility.
265
266 The payload format is as follows:
267
268 Number of destination fields [ 1 byte]
269 Destination fields [ 80 bytes each]
270 Number of header line fields [ 1 byte]
271 Header lines fields [ 80 bytes each]
272 User data section [ up to ~2.5 MB]
273
274 Each destination field consist of a string of up to 80 ASCII characters,
275 padded with null-bytes to a total size of 80 bytes. The following
276 strings are defined:
277
278 null: dummy message
279 post: Usenet message
280 post: [newsgroup] Usenet message
281 [address] e-mail message
282
283 If no destination field is given, the payload is an e-mail message.
284
285 If the destination field is "post: [newsgroup]", a "Newsgroups:
286 [newsgroup]" field is added to the header of the resulting message. If
287 the destination field is of the fourth type, a "To: [address]" field
288 is added to the header of the resulting message. [address] and
289 [newsgroup] are strings of ASCII characters. If the message
290 is a dummy message the node should discard it.
291
292 Message headers can be specified in header line fields. Each header
293 line field consists of a string of up to 80 ASCII characters, padded
294 with null-bytes to a total size of 80 bytes.
295
296 There are three types of user data sections:
297
298 A compressed user data section begins with the GZIP identification
299 header (31, 139). It contains another user data section. The data are
300 compressed using GZIP [RFC 1952]. The GZIP operating system field must
301 be set to Unix, and file names must not be given. Compression may be
302 used if the capabilities attribute of the final remailer contains the
303 flag "C".
304
305 An RFC 822 user data section begins with the identification "##<CR>"
306 (35, 35, 13). It contains an e-mail message or a Usenet message as
307 specified in [RFC 822] and [RFC 1036]. This type cannot be used if
308 the final remailer uses a Mixmaster software version prior to 2.0.4.
309
310 A user data section not beginning with one of the above identification
311 strings contains only the body of the message. When this type of user
312 data section is used, the message header fields must be included in
313 destination and header line fields.
314
315 The payload is limited to a maximal size of 2610180 bytes. Individual
316 remailers may use a smaller limit.
317
318 Remailer operators can choose to remove header fields supplied by the
319 sender and insert additional header fields, according to local policy
320 (see section 5).
321
322
323 4.2 Cryptographic Algorithms
324
325 The asymmetric encryption operation in Mixmaster version 2 uses RSA
326 with 1024 bit RSA keys and the PKCS #1 v1.5 (RSAES-PKCS1-v1_5) padding
327 format [RFC 2437]. The symmetric encryption uses EDE 3DES with cipher
328 block chaining (24 byte key, 8 byte initialization vector) [Schneier
329 1996]. MD5 [RFC 1321] is used as the message digest algorithm.
330
331
332 4.3 Packet Format
333
334 A Mixmaster packet consists of a header containing information for the
335 remailers, and a body containing payload data. To ensure that
336 packets are indistinguishable, the size of these encrypted data fields
337 is fixed.
338
339 The packet header consists of 20 header sections (specified in
340 section 3.3.1) of 512 bytes each, resulting in a total header size
341 of 10240 bytes. The header sections -- except for the first one -- and
342 the packet body are encrypted with symmetric session keys specified in
343 the first header section.
344
345
346 4.3.1 Header Section Format
347
348 Public key ID [ 16 bytes]
349 Length of RSA-encrypted data [ 1 byte ]
350 RSA-encrypted session key [ 128 bytes]
351 Initialization vector [ 8 bytes]
352 Encrypted header part [ 328 bytes]
353 Padding [ 31 bytes]
354
355 Total size: 512 bytes
356
357 To generate the RSA-encrypted session key, a random 24 byte Triple-DES
358 key is encrypted with RSAES-PKCS1-v1_5, resulting in 128 bytes (1024
359 bits) of encrypted data. This Triple-DES key and the initialization
360 vector provided in clear are used to decrypt the encrypted header part.
361 They are not used at other stages of message processing.
362
363 The 328 bytes of data encrypted to form the encrypted header part are
364 as follows:
365
366 Packet ID [ 16 bytes]
367 Triple-DES key [ 24 bytes]
368 Packet type identifier [ 1 byte ]
369 Packet information [depends on packet type]
370 Timestamp [ 7 bytes]
371 Message digest [ 16 bytes]
372 Random padding [fill to 328 bytes]
373
374 The possible packet type identifiers are:
375
376 Intermediate hop 0
377 Final hop 1
378 Final hop, partial message 2
379
380 The packet information depends on the packet type identifier, as follows:
381
382 Packet type 0 (intermediate hop):
383 19 Initialization vectors [152 bytes]
384 Remailer address [ 80 bytes]
385
386 Packet type 1 (final hop):
387 Message ID [ 16 bytes]
388 Initialization vector [ 8 bytes]
389
390 Packet type 2 (final hop, partial message):
391 Chunk number [ 1 byte ]
392 Number of chunks [ 1 byte ]
393 Message ID [ 16 bytes]
394 Initialization vector [ 8 bytes]
395
396 Packet ID: randomly generated packet identifier.
397
398 Triple-DES key: used to encrypt the following header sections and the
399 packet body.
400
401 Initialization vectors: For packet type 1 and 2, the IV is used to
402 symmetrically encrypt the packet body. For packet type 0, there is one IV
403 for each of the 19 following header sections. The IV for the last header
404 section is also used for the packet body.
405
406 Remailer address: e-mail address of next hop.
407
408 Message ID: randomly generated identifier unique to (all chunks of)
409 this message.
410
411 Chunk number: Sequence number used in multi-part messages, starting
412 with 1.
413
414 Number of chunks: Total number of chunks.
415
416 Timestamp: A timestamp is introduced with the byte sequence (48, 48, 48,
417 48, 0). The following two bytes specify the number of days since Jan 1,
418 1970, given in little-endian byte order. A random number of up to 3 may be
419 subtracted from the number of days in order to obscure the origin of the
420 message.
421
422 Message digest: MD5 digest computed over the preceding elements of the
423 encrypted header part.
424
425 In the case of packet type 0, header sections 2 .. 20 and the packet body
426 each are decrypted separately using the respective initialization vectors.
427 In the case of packet types 1 and 2, header sections 2 .. 20 are ignored,
428 and the packet body is decrypted using the given initialization vector.
429
430
431 4.3.2 Body Format
432
433 The message payload (section 3.1) is split into chunks of 10236
434 bytes. To each chunk, its length is prepended as a 4 byte
435 little-endian number to form the body of a Mixmaster packet.
436
437 A message may consist of up to 255 packets.
438
439
440 4.4 Mail Transport Encoding
441
442 Mixmaster packets are sent as text messages [RFC 822]. The RFC 822
443 message body has the following format:
444
445 ::
446 Remailer-Type: Mixmaster [version number]
447
448 -----BEGIN REMAILER MESSAGE-----
449 [packet length ]
450 [message digest]
451 [encoded packet]
452 -----END REMAILER MESSAGE-----
453
454 The length field always contains the decimal number "20480", since the
455 size of Mixmaster packets is constant. An MD5 message digest [RFC
456 1321] of the (un-encoded) packet is encoded in base64.
457
458 The packet itself is encoded in base 64 encoding [RFC 1421], broken
459 into lines of 40 characters (except that the last line is shorter).
460
461
462 5. Key Format
463
464 Remailer public key files consist of a list of attributes and a
465 public RSA key:
466
467 [attributes list]
468
469 -----Begin Mix Key-----
470 [key ID]
471 [length]
472 [encoded key]
473 -----End Mix Key-----
474
475 The attributes are listed in one line separated by spaces. Individual
476 attributes must not contain whitespace:
477
478 identifier: a human readable string identifying the remailer
479 address: the remailer's Internet mail address
480 key ID: public key ID
481 version: the Mixmaster software version number
482 capabilities: flags indicating additional remailer capabilities
483 validity date: date from which the key is valid
484 expiration date: date of the key's expiration
485
486 The identifier consists of lowercase alphanumeric characters, beginning
487 with an alphabetic character. The identifier should consist of no more
488 than eight characters in length.
489
490 The encoded key packet consists of two bytes specifying the key length
491 (1024 bits) in little-endian byte order, and of the RSA modulus and the
492 public exponent in big-endian form using 128 bytes each, with preceding
493 null bytes for the exponent if necessary. The packet is encoded in base 64
494 [RFC 1421], and broken into lines of 40 characters each (except that the
495 last line is shorter). Its length (258 bytes) is given as a decimal
496 number.
497
498 The key ID is the MD5 message digest of the representation of the RSA
499 public key (not including the length bytes). It is encoded as a
500 hexadecimal string.
501
502 The version field consists of the protocol version number followed by a
503 colon and the software version information, limited to the ASCII
504 alphanumeric characters, plus dot (.) and dash (-). All implementations of
505 this protocol should prepend the software version with "2:" to indicate
506 Mixmaster protocol version 2. Existing implementations lacking a protocol
507 version number imply protocol version 2.
508
509 The capabilities field is optional. It is a list of flags represented
510 by a string of ASCII characters. Clients should ignore unknown
511 flags. The following flags are used in version 2.0.4 through 3.0:
512
513 C accepts compressed messages.
514 M will forward messages to another mix when used as final hop.
515 Nm supports posting to Usenet through a mail-to-news gateway.
516 Np supports direct posting to Usenet.
517
518 The date fields introduced in version 3.0 are optional. They are ASCII
519 date stamps in the format YYYY-MM-DD. The first date indicates the date
520 from which the key is first valid; the second date indicates its
521 expiration. If only one date is present, it is treated as the key creation
522 date. (The date stamp implies 00:00 UTC).
523
524 Digital signatures [RFC 2440] should be used to ensure the
525 authenticity of the key files.
526
527
528 5.1 Key Rotation
529
530 Beginning with version 3.0, Mixmaster offers automatic key rotation. Care
531 must be taken to minimize the possibility for partitioning attacks during
532 the key rotation window.
533
534 Keys are generated with a validity date and an expiration date. Mixmaster
535 clients only display keys which are currently valid and not expired.
536
537 Keys are valid for a 13 month period. Mixmaster remailers generate new
538 keys when the existing key's expiration date is one month or less in the
539 future. Remailers report the most recently generated key as the remailer
540 key when queried, effectively giving each key a 12 month service period.
541
542 Remailers continue to decrypt and process mail encrypted to expired keys
543 for one week past the expiration date on the key. One week after
544 expiration, an expired remailer key should be securely destroyed.
545
546
547 6. Administrative Commands
548
549 The remailer software understands a number of specific administrative
550 commands. These commands are sent via the Subject: line of an email to the
551 email address of the remailer:
552
553 remailer-help: returns information on using the remailer
554 remailer-key: returns the remailer's public key
555 remailer-stats: returns information on the number of messages processed
556 remailer-conf: returns local configuration information
557 remailer-adminkey: returns the public key of the remailer operator
558
559 Upon receiving an administrative request, the remailer returns its reply
560 to the email address specified in the Reply-To: or From: header of the
561 request.
562
563 The remailer-help request should return basic information on using the
564 remailer. Remailers may also accept remailer-help requests with an ISO 639
565 two-letter language code appended following a hyphen. For example,
566 remailer-help-ar will return a help file in Arabic, if available.
567 Supported languages should be listed at the beginning of the remailer-help
568 response.
569
570 The remailer-key request returns the remailer key as described above. It
571 may also return keys and capability information for other remailer
572 protocols supported by the remailer.
573
574 The remailer-stats request returns statistics on the number of messages
575 processed per day by the remailer.
576
577 The remailer-conf request returns local configuration information, such as
578 the version of the remailer software, the supported remailer protocols,
579 filtered headers, blocked newsgroups and domains, and the attribute
580 strings for other remailers the remailer knows about.
581
582 The remailer-adminkey request returns a public OpenPGP key for use in
583 communication with the remailer operator.
584
585
586 7. Delivery of Anonymous Messages
587
588 When anonymous messages are forwarded to third parties, remailer
589 operators should be aware that senders might try to supply header
590 fields that indicate a false identity or to send Usenet control
591 messages [RFC 1036] unauthorized, which is a problem because many news
592 servers accept control messages automatically without any
593 authentication.
594
595 For these reasons, remailer software should allow the operator
596 to disable certain types of message headers, and to insert headers
597 automatically.
598
599 Remailers usually add a "From:" field containing an address controlled
600 by the remailer operator to anonymous messages. Using the word
601 "Anonymous" in the name field allows recipients to apply scoring
602 mechanisms and filters to anonymous messages. Appropriate additional
603 information about the origin of the message can be inserted in the
604 "Comments:" header field of the anonymous messages.
605
606 If the recipient does not wish to receive anonymous messages,
607 unobservability of communications and authenticity can be achieved at
608 the same time by the remailer verifying that the message is
609 cryptographically signed [RFC 2440] by a known sender.
610
611 Anonymous remailers are sometimes used to send harassing e-mail. To
612 prevent this abuse, remailer software should allow operators to block
613 destination addresses on request. Real-life abuse and attacks on
614 anonymous remailers are discussed in [Mazieres 1998].
615
616
617 8. Security Considerations
618
619 The security of the mix-net relies on the assumption that the
620 underlying cryptographic primitives are secure. In addition, specific
621 attacks on the mix-net need to be considered ([Möller 1998] contains a
622 more detailed analysis of these attacks).
623
624 Passive adversaries can observe some or all of the messages sent to
625 mixes. The users' anonymity comes from the fact that a large number
626 of messages are collected and sent in random order. For that reason
627 remailers should collect as many messages as possible while keeping
628 the delay acceptable.
629
630 Statistical traffic analysis is possible even if single messages are
631 anonymized in a perfectly secure way: An eavesdropper may correlate
632 the times of Mixmaster packets being sent and anonymized messages
633 being received. This is a powerful attack if several anonymous
634 messages can be linked together (by their contents or because they are
635 sent under a pseudonym). To protect themselves, senders must mail
636 Mixmaster packets stochastically independent of the actual messages
637 they want to send. This can be done by sending packets in regular
638 intervals, using a dummy message whenever appropriate. To avoid
639 leaking information, the intervals should not be smaller than the
640 randomness in the delay caused by trusted remailers.
641
642 There is no anonymity if all remailers in a given chain collude with
643 the adversary, or if they are compromised during the lifetime of their
644 keys. Using a longer chain increases the assurance that the user's
645 privacy will be preserved, but in the same time causes lower
646 reliability and higher latency. Sending redundant copies of a message
647 increases reliability but may also facilitate attacks. An optimum must
648 be found according to the individual security needs and trust in the
649 remailers.
650
651 Active adversaries can also create, suppress or modify messages. Remailers
652 must check the packet IDs to prevent replay attacks. To minimize the
653 number of packet IDs that the remailer must retain, packets which bear a
654 timestamp more than a reasonable number of days in the past may be
655 discarded. Implementors should consider that packets maybe up to three
656 days younger than indicated by the timestamp, and select an expiration
657 value which allowsd sufficient time for legitimate messages to pass
658 through the network. The number of packet IDs that the remailer must
659 retain can be further minimized by discarding packet IDs for packets
660 encrypted to a key which has expired more than a week in the past.
661
662 Early implementations of Mixmaster did not generate a timestamp packet.
663 Implementors should be aware of the partitioning attack implications if
664 they chose to permit processing of packets without timestamps.
665
666 Message integrity must be verified to prevent the adversary
667 from performing chosen ciphertext attacks or replay attacks with
668 modified packet IDs, and from encoding information in an intercepted
669 message in a way not affected by decryption (e.g. by modifying the
670 message length or inducing errors). This version of the protocol does
671 not provide integrity for the packet body. Because the padding for
672 header section is random, in this version of the protocol it is
673 impossible for a remailer to check the integrity of the encrypted
674 header sections that will be decrypted by the following remailers.
675 Chosen ciphertext attacks and replay attacks are detected by verifying
676 the message digest included in the header section.
677
678 The adversary can trace a message if he knows the decryption of all
679 other messages that pass through the remailer at the same time. To
680 make it less practical for an attacker to flood a mix with known
681 messages, remailers can store received messages in a reordering pool
682 that grows in size while more than average messages are received, and
683 periodically choose at random a fixed fraction of the messages in the
684 pool for processing. There is no complete protection against flooding
685 attacks in an open system, but if the number of messages required is
686 high, an attack is less likely to go unnoticed.
687
688 If the adversary suppresses all Mixmaster messages from one particular
689 sender and observes that anonymous messages of a certain kind are
690 discontinued at the same time, that sender's anonymity is compromised
691 with high probability. There is no practical cryptographic protection
692 against this attack in large-scale networks. The effect of a more
693 powerful attack that combines suppressing messages and re-injecting
694 them at a later time is reduced by using timestamps.
695
696 The lack of accountability that comes with anonymity may have
697 implications for the security of a network. For example, many news
698 servers accept control messages automatically without any
699 cryptographic authentication. Possible countermeasures are discussed
700 in section 7.
701
702
703 9. Acknowledgments
704
705 Several people contributed ideas and source code to the Mixmaster v2
706 software. "Antonomasia" <ant@notatla.demon.co.uk>, Adam Back
707 <adam@cypherspace.org> and Bodo Möller <bmoeller@acm.org> suggested
708 improvements to this document.
709
710
711 10. References
712
713 [Chaum 1981] Chaum, D., "Untraceable Electronic Mail, Return Addresses, and
714 Digital Pseudonyms", Communications of the ACM 24 (1981) 2.
715
716 [Mazieres 1998] Mazières, D., and Kaashoek, F., "The Design, Implementation and
717 Operation of an Email Pseudonym Server",
718 5th ACM Conference on Computer and Communications Security, 1998.
719 <URL: ftp://cag.lcs.mit.edu/pub/dm/papers/mazieres:pnym.ps.gz>.
720
721 [Möller 1998] Möller, U., "Anonymisierung von Internet-Diensten",
722 Studienarbeit, University of Hamburg, January 1998.
723 <URL: http://agn-www.informatik.uni-hamburg.de/people/3umoelle/st.ps>.
724
725 [RFC 822] Crocker, D., "Standard for the Format of ARPA Internet Text
726 Messages", STD 11, RFC 822, August 1982.
727
728 [RFC 1036] Horton, M., and Adams, R., "Standard for Interchange of
729 USENET Messages", RFC 1036, December 1987.
730
731 [RFC 1321] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321,
732 April 1992.
733
734 [RFC 1421] Linn, J., "Privacy Enhancement for Internet Electronic
735 Mail: Part I -- Message Encryption and Authentication Procedures", RFC
736 1421, February 1993.
737
738 [RFC 1952] Deutsch, P., "GZIP file format specification version 4.3",
739 RFC 1952, May 1996.
740
741 [RFC 2311] Dusse, S., Hoffman, P, Ramsdell, B, Lundblade, L., and
742 Repka, L., "S/MIME Version 2 Message Specification", RFC 2311, March
743 1998.
744
745 [RFC 2437] Kaliski, B., and Staddon, J., "PKCS #1: RSA Cryptography
746 Specifications, Version 2.0", RFC 2437, October 1998.
747
748 [RFC 2440] Callas, J., Donnerhacke, L., Finney, H., and Thayer, R.:
749 "OpenPGP Message Format", RFC 2440, November 1998.
750
751 [Schneier 1996] Schneier, B., "Applied Cryptography", 2nd Edition, Wiley,
752 1996.
753
754
755 11. Authors' Addresses
756
757
758 Ulf Moeller
759
760 EMail: mail@ulfm.de
761
762
763 Lance Cottrell
764 Anonymizer, Inc.
765 5694 Mission Center Road #426
766 San Diego, CA 92108-4380
767
768 EMail: loki@infonex.com
769
770
771 Peter Palfrader
772
773 EMail: peter@palfrader.org
774
775
776 Len Sassaman
777 Nomen Abditum Services
778 P.O. Box 99282
779 Emeryville, CA 94662-9282
780
781 EMail: rabbi@abditum.com

  ViewVC Help
Powered by ViewVC 1.1.5