| 1 |
|
| 2 |
<?xml version="1.0"?>
|
| 3 |
<!-- vim: set et sw=2 wm=5 fdm=syntax nofen: -->
|
| 4 |
<!-- $Id$ -->
|
| 5 |
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
|
| 6 |
<?rfc toc="yes"?>
|
| 7 |
<!-- change this to no to create a document with lots of whitespace -->
|
| 8 |
<?rfc compact="yes"?>
|
| 9 |
|
| 10 |
<rfc ipr="full2026" docName="draft-sassaman-mixmaster-02.txt">
|
| 11 |
|
| 12 |
<front>
|
| 13 |
|
| 14 |
<title abbrev="Mixmaster">Mixmaster Protocol Version 2</title>
|
| 15 |
<workgroup>The Mixmaster Project</workgroup>
|
| 16 |
|
| 17 |
<author initials="U." surname="Moeller" fullname="Ulf Moeller">
|
| 18 |
<organization>Secardeo GmbH</organization>
|
| 19 |
<address>
|
| 20 |
<postal>
|
| 21 |
<street>Betastr. 9a</street>
|
| 22 |
<city>85774 Unterfoehring</city>
|
| 23 |
<country>Germany</country>
|
| 24 |
</postal>
|
| 25 |
<email>ulf.moeller@secardeo.com</email>
|
| 26 |
</address>
|
| 27 |
</author>
|
| 28 |
|
| 29 |
<author initials="L." surname="Cottrell" fullname="Lance Cottrell">
|
| 30 |
<organization>Anonymizer, Inc.</organization>
|
| 31 |
<address>
|
| 32 |
<postal>
|
| 33 |
<street>5694 Mission Center Road #426</street>
|
| 34 |
<city>San Diego</city> <region>CA</region> <code>92108-4380</code>
|
| 35 |
<country>USA</country>
|
| 36 |
</postal>
|
| 37 |
<email>loki@infonex.com</email>
|
| 38 |
</address>
|
| 39 |
</author>
|
| 40 |
|
| 41 |
<author initials="P." surname="Palfrader" fullname="Peter Palfrader">
|
| 42 |
<organization>Debian Project</organization>
|
| 43 |
<address>
|
| 44 |
<postal>
|
| 45 |
<street>Hoettinger Auffahrt 1</street>
|
| 46 |
<city>6020 Innsbruck</city>
|
| 47 |
<country>Austria</country>
|
| 48 |
</postal>
|
| 49 |
<email>peter@palfrader.org</email>
|
| 50 |
<uri>http://www.palfrader.org/</uri>
|
| 51 |
</address>
|
| 52 |
</author>
|
| 53 |
|
| 54 |
<author initials="L." surname="Sassaman" fullname="Len Sassaman">
|
| 55 |
<organization>Nomen Abditum Services</organization>
|
| 56 |
<address>
|
| 57 |
<postal>
|
| 58 |
<street>P.O. Box 900481</street>
|
| 59 |
<city>San Diego</city> <region>CA</region> <code>92190-0481</code>
|
| 60 |
<country>USA</country>
|
| 61 |
</postal>
|
| 62 |
<email>rabbi@abditum.com</email>
|
| 63 |
</address>
|
| 64 |
</author>
|
| 65 |
|
| 66 |
<date month="May" year="2004"/>
|
| 67 |
|
| 68 |
<abstract>
|
| 69 |
<t>Most e-mail security protocols only protect the message body, leaving
|
| 70 |
useful information such as the identities of the conversing parties,
|
| 71 |
sizes of messages and frequency of message exchange open to
|
| 72 |
adversaries. This document describes Mixmaster version 2, a mail
|
| 73 |
transfer protocol designed to protect electronic mail against traffic
|
| 74 |
analysis.</t>
|
| 75 |
|
| 76 |
<t>Mixmaster is based on Dr. David Chaum's mix-net concept. A mix
|
| 77 |
(remailer) is a service that forwards messages, using public key
|
| 78 |
cryptography to hide
|
| 79 |
the correlation between its inputs and outputs. Sending messages
|
| 80 |
through sequences of remailers achieves anonymity and unobservability
|
| 81 |
of communications against a powerful adversary.</t>
|
| 82 |
</abstract>
|
| 83 |
|
| 84 |
</front>
|
| 85 |
|
| 86 |
<middle>
|
| 87 |
|
| 88 |
<section anchor="introduction" title="Introduction">
|
| 89 |
|
| 90 |
<t>This document describes a mail transfer protocol designed to protect
|
| 91 |
electronic mail against traffic analysis. Most e-mail security
|
| 92 |
protocols only protect the message body, leaving useful information
|
| 93 |
such as the identities of the conversing parties, sizes of messages and
|
| 94 |
frequency of message exchange open to adversaries.</t>
|
| 95 |
|
| 96 |
<t>Message transmission can be protected against traffic analysis by the
|
| 97 |
mix-net protocol. A mix (remailer) is a service that forwards messages,
|
| 98 |
using public key cryptography to hide the correlation between its
|
| 99 |
inputs and outputs. If a message is sent through a sequence of mixes,
|
| 100 |
one trusted mix is sufficient to provide anonymity and unobservability
|
| 101 |
of communications against a powerful adversary. Mixmaster is a mix-net
|
| 102 |
implementation for electronic mail.</t>
|
| 103 |
|
| 104 |
<t>This memo describes version 2 of the Mixmaster message format, as used
|
| 105 |
on the Internet since 1995.</t>
|
| 106 |
|
| 107 |
</section>
|
| 108 |
|
| 109 |
<section anchor="protocol" title="The Mix-Net Protocol">
|
| 110 |
|
| 111 |
<t>The mix-net protocol <xref target="Chaum81"/> allows one to send
|
| 112 |
messages while hiding the relation of sender and recipient from
|
| 113 |
observers (unobservability). It also allows the sender of a message to
|
| 114 |
remain anonymous to the recipient (sender anonymity). If anonymity is
|
| 115 |
not desired, authenticity and unobservability can be achieved at the
|
| 116 |
same time by transmitting digitally signed messages.</t>
|
| 117 |
|
| 118 |
<t>This section gives an overview of the protocol and messaging
|
| 119 |
pattern.
|
| 120 |
The mixing algorithm is specified in <xref target="pool-behavior"/>,
|
| 121 |
and the message format is specified in
|
| 122 |
<xref target="message-format"/>.</t>
|
| 123 |
|
| 124 |
<t>Viewed from a high level, Mixmaster is like a packet network,
|
| 125 |
where each node in the network is known as a "remailer."
|
| 126 |
The original content is split into pieces, and an independent
|
| 127 |
path is determined for each piece, with the only requirement
|
| 128 |
that all paths must end at the same remailer. Each piece
|
| 129 |
is multiply encrypted so that any intermediate remailer can
|
| 130 |
only decrypt enough information to determine the next hop
|
| 131 |
in the path. When all pieces have arrived at the final
|
| 132 |
remailer, the original content is re-created and sent to its
|
| 133 |
final destination.</t>
|
| 134 |
|
| 135 |
<section anchor="message-creation" title="Message Creation">
|
| 136 |
|
| 137 |
<t>In this section the terms "sender" and "user agent" are
|
| 138 |
used informally.</t>
|
| 139 |
|
| 140 |
<t>The user agent splits the original content into chunks
|
| 141 |
of 10236 bytes; if the last chunk is shorter, random padding
|
| 142 |
is added. Each chunk has a four-byte length prepended,
|
| 143 |
and the result is called the packet body.
|
| 144 |
If sender anonymity is desired, care should be taken to not
|
| 145 |
include any identifying information (such as headers or unique
|
| 146 |
content from the original plaintext message) in the packets.
|
| 147 |
The content may be compressed before splitting.</t>
|
| 148 |
|
| 149 |
<t>The sender next chooses a chain of up to 20 remailers
|
| 150 |
for each packet. Each path is independent, and can be of
|
| 151 |
a different length, but all paths must end at the same
|
| 152 |
remailer. This final remailer is responsible for detecting and
|
| 153 |
discarding duplicate packets, reconstructing the message,
|
| 154 |
and doing the final delivery.</t>
|
| 155 |
|
| 156 |
<t>Each packet is next prepared as follows (the full details
|
| 157 |
are in <xref target="header-section"/>). For a chain
|
| 158 |
of "n" remailers, headers "n + 1" through 20 are filled
|
| 159 |
with random data. For headers "n" down to one, the sender
|
| 160 |
generates a symmetric encryption key. This key is used to
|
| 161 |
encrypt the packet body and all the following headers. The
|
| 162 |
key, and other control information, is then encrypted with
|
| 163 |
the public key of the "n"'th remailer in the chain.</t>
|
| 164 |
|
| 165 |
<t>The process is repeated, working backward through the chain
|
| 166 |
until the first packet has header information encrypted for the
|
| 167 |
first remailer, and the packet body has been encrypted "n" times.
|
| 168 |
The packet is then sent to the first remailer on its
|
| 169 |
chain.</t>
|
| 170 |
|
| 171 |
</section>
|
| 172 |
|
| 173 |
<section anchor="remailing" title="Remailing">
|
| 174 |
|
| 175 |
<t>When a remailer receives a message, it uses its private key to
|
| 176 |
decrypt the first header section. The Packet ID (see
|
| 177 |
<xref target="header-section"/>) can be used to detect
|
| 178 |
duplicates. The integrity of the message is verified by
|
| 179 |
checking the packet length and verifying the message digest
|
| 180 |
in the packet header.</t>
|
| 181 |
|
| 182 |
<t>All header sections, as well as the packet body, are decrypted with
|
| 183 |
the symmetric key found in the header. This reveals a public
|
| 184 |
key-encrypted header section for the next remailer.</t>
|
| 185 |
|
| 186 |
<t>The first header section is now removed, the others are shifted
|
| 187 |
up, and the last section is replaced with random bytes. Transport
|
| 188 |
encoding is applied to the new message as described in <xref
|
| 189 |
target="transport-encoding"/>.</t>
|
| 190 |
|
| 191 |
<t>In order to prevent an adversary from determining the relationship
|
| 192 |
between incoming and outgoing messages (i.e., traffic analysis), the
|
| 193 |
remailer must collect several encrypted messages before sending the
|
| 194 |
message it has just created; see <xref target="timed-pool"/>.</t>
|
| 195 |
|
| 196 |
</section>
|
| 197 |
|
| 198 |
<section anchor="message-reassembly" title="Message Reassembly">
|
| 199 |
|
| 200 |
<t>When a packet is sent to the final remailer, it contains an
|
| 201 |
indication that the chain ends at that remailer, and whether the
|
| 202 |
packet contains the complete message or if it is part of a multi-part
|
| 203 |
message. If the packet contains the entire message, the packet body
|
| 204 |
is decrypted and after reordering messages, the plain text is
|
| 205 |
delivered to the recipient. For partial messages, a message ID is
|
| 206 |
used to identify the other parts as they arrive. When all parts have
|
| 207 |
arrived, the message is reassembled, decompressed if necessary, and
|
| 208 |
delivered. A final remailer may discard partial messages if all
|
| 209 |
packets have not been received within a local time limit.</t>
|
| 210 |
|
| 211 |
<t>Note that only the final remailer can determine whether packets
|
| 212 |
are part of a specific message. To all of other remailers, the
|
| 213 |
packets appear to be completely independent.</t>
|
| 214 |
|
| 215 |
</section>
|
| 216 |
|
| 217 |
</section>
|
| 218 |
|
| 219 |
<section anchor="pool-behavior" title="Pool Behavior">
|
| 220 |
|
| 221 |
<section anchor="timed-pool" title="Timed Dynamic Pool Mix Algorithm">
|
| 222 |
|
| 223 |
<t>To obfuscate the link between incoming and outgoing messages,
|
| 224 |
Mixmaster uses a pooling scheme. Messages to be forwarded are
|
| 225 |
stored in a pool. At regular intervals the remailer
|
| 226 |
sends some random messages from the pool to either the next hop or
|
| 227 |
their final recipients.</t>
|
| 228 |
|
| 229 |
<t>The pooling scheme is a "Timed Dynamic Pool
|
| 230 |
Mix" <xref target="trickle02"/>, which has the following three parameters:
|
| 231 |
<texttable>
|
| 232 |
<ttcol align='left' width='20%'>Name</ttcol>
|
| 233 |
<ttcol align='left'>Description</ttcol>
|
| 234 |
<c>t</c><c>Mixing interval</c>
|
| 235 |
<c>min</c><c>Minimum number of messages in the pool</c>
|
| 236 |
<c>rate</c><c>Percentage of messages to be send in one round</c>
|
| 237 |
</texttable>
|
| 238 |
The following steps are implemented every "t" seconds:
|
| 239 |
<list style="numbers">
|
| 240 |
<t>Let "n" be the number of messages currently in the pool.</t>
|
| 241 |
<t>Let "count" be the smaller of "n - min" and "n * rate", or
|
| 242 |
zero if "n - min" is negative.</t>
|
| 243 |
<t>Select "count" messages from the pool at random and send
|
| 244 |
them.</t>
|
| 245 |
</list>
|
| 246 |
</t>
|
| 247 |
<t>
|
| 248 |
In its default configuration, Mixmaster has a mixing interval of
|
| 249 |
15 minutes, a minimum pool size of 45 messages, and permits a
|
| 250 |
maximum of 65% of the pool to be sent in one round.
|
| 251 |
</t>
|
| 252 |
|
| 253 |
<!-- XXX: give the default Mix 3.0 parameters here for reference?
|
| 254 |
- weasel -->
|
| 255 |
|
| 256 |
</section>
|
| 257 |
|
| 258 |
<section anchor="dummy-traffic" title="Dummy Traffic">
|
| 259 |
|
| 260 |
<t>Dummy messages (see <xref target="payload-format"/>) are multi-hop
|
| 261 |
messages with four randomly selected remailers as the chain. The
|
| 262 |
chain must be selected such that no remailer will appear twice
|
| 263 |
unless two other remailers separate them.</t>
|
| 264 |
|
| 265 |
<t>Every time a message is placed in the pool, the remailer chooses
|
| 266 |
a random number from a geometric distribution and creates that
|
| 267 |
many dummy messages which are also placed in the pool.</t>
|
| 268 |
|
| 269 |
<t>Similarly, prior to each execution of the mixing algorithm
|
| 270 |
described in <xref target="timed-pool"/>, the remailer selects a
|
| 271 |
random number from a different geometric distribution and adds
|
| 272 |
that many dummy messages to the pool as well.</t>
|
| 273 |
|
| 274 |
<t>The parameters should be chosen so that on average the remailer
|
| 275 |
creates one dummy for every 32 inbound messages and one every
|
| 276 |
nine mixing rounds.</t>
|
| 277 |
|
| 278 |
</section>
|
| 279 |
|
| 280 |
</section>
|
| 281 |
|
| 282 |
<section anchor="message-format" title="Message Format">
|
| 283 |
|
| 284 |
<section anchor="payload-format" title="Payload Format">
|
| 285 |
|
| 286 |
<t>The message payload can be an e-mail message <xref
|
| 287 |
target="RFC2822"/>, a Usenet message <xref target="RFC1036"/>, or a
|
| 288 |
dummy message.</t>
|
| 289 |
|
| 290 |
<t>Mail and Usenet messages are prefixed with data specifying the
|
| 291 |
payload type. An additional, more restricted method of specifying
|
| 292 |
message header lines is defined for reasons of backward
|
| 293 |
compatibility.</t>
|
| 294 |
|
| 295 |
<t>The payload format is as follows:<figure><artwork>
|
| 296 |
Number of destination fields [ 1 byte]
|
| 297 |
Destination fields [ 80 bytes each]
|
| 298 |
Number of header line fields [ 1 byte]
|
| 299 |
Header lines fields [ 80 bytes each]
|
| 300 |
User data section [ 2549K - previous fields ]</artwork></figure>
|
| 301 |
</t>
|
| 302 |
|
| 303 |
<t>Each destination field consists of a string of up to 80 ASCII
|
| 304 |
characters, padded with null-bytes to a total size of 80 bytes. The
|
| 305 |
following strings are defined:
|
| 306 |
<list style="hanging">
|
| 307 |
<t hangText="null:">Dummy message. The remailer will discard the
|
| 308 |
message.</t>
|
| 309 |
<t hangText="post:">Usenet message. The remailer will post the
|
| 310 |
message to Usenet.</t>
|
| 311 |
<t hangText="post: [newsgroup]">Usenet message. The remailer will
|
| 312 |
add a "Newsgroups" header with the specified content, and post
|
| 313 |
the message to Usenet.</t>
|
| 314 |
<t hangText="[address]">E-mail message. The remailer will add a
|
| 315 |
"To" header with the specified content, and send the message as
|
| 316 |
e-mail.</t>
|
| 317 |
</list>
|
| 318 |
</t>
|
| 319 |
|
| 320 |
<t>If no destination field is given, the payload is an e-mail
|
| 321 |
message.</t>
|
| 322 |
|
| 323 |
<t>Message headers can be specified in header line fields. Each header
|
| 324 |
line field consists of a string of up to 80 ASCII characters, padded
|
| 325 |
with null-bytes to a total size of 80 bytes.</t>
|
| 326 |
|
| 327 |
<t>There are three types of user data sections:
|
| 328 |
<list style="symbols">
|
| 329 |
<t>A compressed user data section begins with the GZIP identification
|
| 330 |
header (31, 139). This header contains an additional user data
|
| 331 |
section. The data are compressed using GZIP [RFC 1952]. The GZIP
|
| 332 |
operating system field must be set to Unix, and file names must not
|
| 333 |
be given. Compression may be used if the capabilities attribute of
|
| 334 |
the final remailer contains the flag "C".</t>
|
| 335 |
<t>An RFC 2822 user data section begins with the three bytes
|
| 336 |
"##[CR]" (35, 35, 13). It contains an e-mail message or a
|
| 337 |
Usenet message.</t>
|
| 338 |
<t>A user data section not beginning with one of the above
|
| 339 |
identification strings contains only the body of the message. When
|
| 340 |
this type of user data section is used, the message header fields
|
| 341 |
must be included in destination and header line fields.</t>
|
| 342 |
</list>
|
| 343 |
</t>
|
| 344 |
|
| 345 |
<t>The payload is limited to a maximum size of 2610180 bytes.
|
| 346 |
Individual remailers may use a smaller limit.</t>
|
| 347 |
|
| 348 |
<t>Remailer operators can choose to remove header fields supplied by
|
| 349 |
the sender and insert additional header fields, according to local
|
| 350 |
policy; see <xref target="key-format"/>.</t>
|
| 351 |
|
| 352 |
</section>
|
| 353 |
|
| 354 |
<section anchor="crypto-algorithms" title="Cryptographic Algorithms">
|
| 355 |
|
| 356 |
<t>The asymmetric encryption mechanism is RSA with 1024 bit RSA keys
|
| 357 |
and the PKCS #1 v1.5 (RSAES-PKCS1-v1_5) padding format <xref
|
| 358 |
target="RFC2437"/>. The symmetric encryption mechanism is EDE
|
| 359 |
3DES with cipher block chaining (24-byte key, 8-byte initialization
|
| 360 |
vector) <xref target="MENEZES"/>. MD5 <xref target="RFC1321"/>
|
| 361 |
is used as the message digest algorithm.</t>
|
| 362 |
</section>
|
| 363 |
|
| 364 |
<section anchor="packet-format" title="Packet Format">
|
| 365 |
|
| 366 |
<t>A Mixmaster packet consists of a header containing information for
|
| 367 |
the remailers, and a body containing payload data. To ensure that
|
| 368 |
packets are indistinguishable, the fields are all of fixed
|
| 369 |
size.</t>
|
| 370 |
|
| 371 |
<t>The packet header consists of 20 header sections (specified in
|
| 372 |
<xref target="header-section"/>) of 512 bytes each, resulting in a
|
| 373 |
total header size of 10240 bytes. The header sections (except for
|
| 374 |
the first one) and the packet body are encrypted with symmetric
|
| 375 |
session keys specified in the first header section.<figure><artwork>
|
| 376 |
+-------------------+
|
| 377 |
| Header section 1 |
|
| 378 |
+- - - - - - - - - -+
|
| 379 |
| Header section 2 |
|
| 380 |
+- - - - - - - - - -+
|
| 381 |
+ ... +
|
| 382 |
+- - - - - - - - - -+
|
| 383 |
| Header section 20 |
|
| 384 |
+-------------------+
|
| 385 |
| |
|
| 386 |
| Payload |
|
| 387 |
| |
|
| 388 |
| |
|
| 389 |
| |
|
| 390 |
| |
|
| 391 |
| |
|
| 392 |
+-------------------+</artwork></figure>
|
| 393 |
</t>
|
| 394 |
|
| 395 |
<section anchor="header-section" title="Header Section Format">
|
| 396 |
|
| 397 |
<t>Packet layout<figure><artwork>
|
| 398 |
[ Public key ID 16 bytes ]
|
| 399 |
[ Length of RSA-encrypted data 1 byte ]
|
| 400 |
[ RSA-encrypted session key 128 bytes ]
|
| 401 |
[ Initialization vector 8 bytes ]
|
| 402 |
[ Encrypted header part 328 bytes ]
|
| 403 |
[ Random padding 31 bytes ]</artwork></figure>
|
| 404 |
Total size: 512 bytes
|
| 405 |
</t>
|
| 406 |
|
| 407 |
<t>To generate the RSA-encrypted session key, a 24-byte
|
| 408 |
Triple-DES key is encrypted with RSAES-PKCS1-v1_5, resulting in
|
| 409 |
128 bytes (1024 bits) of encrypted data. This Triple-DES key and
|
| 410 |
the initialization vector provided in clear are used to decrypt
|
| 411 |
the encrypted header part. They are not used at other stages of
|
| 412 |
message processing.</t>
|
| 413 |
|
| 414 |
<t>The 328 bytes of data encrypted to form the encrypted header
|
| 415 |
part are as follows:<figure><artwork>
|
| 416 |
[ Packet ID 16 bytes ]
|
| 417 |
[ Triple-DES key 24 bytes ]
|
| 418 |
[ Packet type identifier 1 byte ]
|
| 419 |
[ Packet information depends on packet type ]
|
| 420 |
[ Timestamp 7 bytes ]
|
| 421 |
[ Message digest 16 bytes ]
|
| 422 |
[ Random padding as needed ]</artwork></figure>
|
| 423 |
Total size: 328 bytes
|
| 424 |
</t>
|
| 425 |
|
| 426 |
<t>The fields are defined as follows:
|
| 427 |
<list style="hanging">
|
| 428 |
<t hangText="Packet ID:">randomly generated packet identifier.</t>
|
| 429 |
<t hangText="Triple-DES key:">used to encrypt the following
|
| 430 |
header sections and the packet body.</t>
|
| 431 |
<t hangText="Packet type identifier:">The type identifiers
|
| 432 |
are:
|
| 433 |
<texttable>
|
| 434 |
<ttcol align='left' width='20%'>Value</ttcol>
|
| 435 |
<ttcol align='left'>Type</ttcol>
|
| 436 |
<c>0</c><c>Intermediate hop</c>
|
| 437 |
<c>1</c><c>Final hop, complete message</c>
|
| 438 |
<c>2</c><c>Final hop, partial message</c>
|
| 439 |
</texttable>
|
| 440 |
</t>
|
| 441 |
<t hangText="Timestamp:">A timestamp is introduced with the byte
|
| 442 |
sequence (48, 48, 48, 48, 0). The following two bytes specify
|
| 443 |
the number of days since January 1, 1970 (00:00 UTC), in
|
| 444 |
little-endian byte order. A random number between one and
|
| 445 |
three, inclusive, may be subtracted from the number of days
|
| 446 |
in order to obscure the origin of the message.</t>
|
| 447 |
<t hangText="Message digest:">MD5 digest computed over the
|
| 448 |
preceding elements of the encrypted header part.</t>
|
| 449 |
</list>
|
| 450 |
</t>
|
| 451 |
|
| 452 |
<t>The packet information depends on the packet type identifier,
|
| 453 |
as follows:<figure><artwork>
|
| 454 |
Packet type 0 (intermediate hop):
|
| 455 |
[ 19 Initialization vectors 152 bytes ]
|
| 456 |
[ Remailer address 80 bytes ]
|
| 457 |
|
| 458 |
Packet type 1 (final hop):
|
| 459 |
[ Message ID 16 bytes ]
|
| 460 |
[ Initialization vector 8 bytes ]
|
| 461 |
|
| 462 |
Packet type 2 (final hop, partial message):
|
| 463 |
[ Chunk number 1 byte ]
|
| 464 |
[ Number of chunks 1 byte ]
|
| 465 |
[ Message ID 16 bytes ]
|
| 466 |
[ Initialization vector 8 bytes ]</artwork></figure>
|
| 467 |
|
| 468 |
<list style="hanging">
|
| 469 |
<t hangText="Initialization vectors:"> For packet type 1 and 2,
|
| 470 |
the IV is used to symmetrically encrypt the packet body. For
|
| 471 |
packet type 0, there is one IV for each of the 19 following
|
| 472 |
header sections. The IV for the last header section is also
|
| 473 |
used for the packet body.</t>
|
| 474 |
<t hangText="Remailer address:">E-mail address of next hop.</t>
|
| 475 |
<t hangText="Message ID:">Identifier unique to
|
| 476 |
(all chunks of) this message.</t>
|
| 477 |
<t hangText="Chunk number:">Sequence number used in multi-part
|
| 478 |
messages, starting with one.</t>
|
| 479 |
<t hangText="Number of chunks:">Total number of chunks.</t>
|
| 480 |
</list>
|
| 481 |
</t>
|
| 482 |
|
| 483 |
<t>In the case of packet type zero, header sections two through
|
| 484 |
twenty, and the packet body, each are decrypted
|
| 485 |
separately using the respective initialization
|
| 486 |
vectors. In the case of packet types one and two, header
|
| 487 |
sections two through twenty are ignored, and the packet body
|
| 488 |
is decrypted using the given initialization vector.</t>
|
| 489 |
|
| 490 |
</section>
|
| 491 |
|
| 492 |
<section anchor="body-format" title="Body Format">
|
| 493 |
|
| 494 |
<t>The message payload <xref target="payload-format"/> is split
|
| 495 |
into chunks of 10236 bytes. Random padding is added to the last
|
| 496 |
chunk if necessary. The length of each chunk (not counting the
|
| 497 |
padding), is prepended to the chunk as a four-byte little-endian
|
| 498 |
number. This forms the body of a Mixmaster packet.</t>
|
| 499 |
|
| 500 |
<t>A message may consist of up to 255 packets.</t>
|
| 501 |
|
| 502 |
</section>
|
| 503 |
|
| 504 |
</section>
|
| 505 |
|
| 506 |
<section anchor="transport-encoding" title="Mail Transport Encoding">
|
| 507 |
|
| 508 |
<t>Mixmaster packets are sent as standard email messages <xref
|
| 509 |
target="RFC2822"/>. The message body has the following format:
|
| 510 |
<figure><artwork>
|
| 511 |
##
|
| 512 |
Remailer-Type: Mixmaster [version number]
|
| 513 |
|
| 514 |
-----BEGIN REMAILER MESSAGE-----
|
| 515 |
[packet length ]
|
| 516 |
[message digest]
|
| 517 |
[encoded packet]
|
| 518 |
-----END REMAILER MESSAGE-----
|
| 519 |
</artwork></figure></t>
|
| 520 |
|
| 521 |
<t>The length field always contains the decimal number "20480", since
|
| 522 |
the size of Mixmaster packets is constant. An MD5 message digest
|
| 523 |
<xref target="RFC1321"/> of the packet prior to Base-64 encoding is
|
| 524 |
encoded in Base-64.</t>
|
| 525 |
|
| 526 |
<t>The packet itself is encoded in Base-64 encoding <xref
|
| 527 |
target="RFC1421"/>, with line-breaks every 40 characters.</t>
|
| 528 |
|
| 529 |
</section>
|
| 530 |
|
| 531 |
</section>
|
| 532 |
|
| 533 |
<section anchor="key-format" title="Key Format">
|
| 534 |
|
| 535 |
<t>Remailer public key files consist of a list of attributes and a public
|
| 536 |
RSA key:<figure><artwork>
|
| 537 |
[attributes list]
|
| 538 |
|
| 539 |
-----Begin Mix Key-----
|
| 540 |
[key ID]
|
| 541 |
[length]
|
| 542 |
[encoded key]
|
| 543 |
-----End Mix Key-----</artwork></figure>
|
| 544 |
</t>
|
| 545 |
|
| 546 |
<t>The attributes are listed in one line separated by spaces. Individual
|
| 547 |
attributes must not contain whitespace, and are defined as follows:</t>
|
| 548 |
<t>
|
| 549 |
<list style="hanging">
|
| 550 |
<t hangText="identifier:">A human readable string identifying the
|
| 551 |
remailer</t>
|
| 552 |
<t hangText="address:">The remailer's Internet mail address</t>
|
| 553 |
<t hangText="key ID:">Public key ID</t>
|
| 554 |
<t hangText="version:">Software version number</t>
|
| 555 |
<t hangText="capabilities:">Flags indicating additional remailer
|
| 556 |
capabilities</t>
|
| 557 |
<t hangText="validity date:">Date from which the key is valid</t>
|
| 558 |
<t hangText="expiration date:">Date of the key's expiration</t>
|
| 559 |
</list>
|
| 560 |
</t>
|
| 561 |
|
| 562 |
<t>The identifier consists of lowercase alphanumeric characters,
|
| 563 |
beginning with an alphabetic character. The identifier should be
|
| 564 |
no more than eight characters in length.</t>
|
| 565 |
|
| 566 |
<t>The key ID is the MD5 message digest of the representation of the RSA
|
| 567 |
public key (not including the length bytes). It is encoded as a
|
| 568 |
hexadecimal string.</t>
|
| 569 |
|
| 570 |
<t>The version field consists of the protocol version number followed by
|
| 571 |
a colon and the software version information, limited to the ASCII
|
| 572 |
alphanumeric characters, plus dot (.) and dash (-). All implementations
|
| 573 |
of the protocol specified here should prepend the software
|
| 574 |
version with "2:". Existing implementations lacking
|
| 575 |
a protocol version number imply protocol version 2.</t>
|
| 576 |
|
| 577 |
<t>The capabilities field is optional. It is a list of flags represented
|
| 578 |
by a string of ASCII characters. Clients should ignore unknown flags.
|
| 579 |
The following flags are defined:
|
| 580 |
<texttable>
|
| 581 |
<ttcol align='left' width='20%'>Flag</ttcol>
|
| 582 |
<ttcol align='left'>Meaning</ttcol>
|
| 583 |
<c>C</c><c>Accepts compressed messages</c>
|
| 584 |
<c>M</c><c>Will forward messages to another mix when used as final hop</c>
|
| 585 |
<c>Nm</c><c>Supports posting to Usenet through a mail-to-news gateway</c>
|
| 586 |
<c>Np</c><c>Supports direct posting to Usenet</c>
|
| 587 |
</texttable>
|
| 588 |
</t>
|
| 589 |
|
| 590 |
<t>The date fields are optional. They are ASCII date stamps in the format
|
| 591 |
YYYY-MM-DD. The first date indicates the date from which the key is
|
| 592 |
first valid; the second date indicates its expiration. If only one date
|
| 593 |
is present, it is treated as the key creation date. (The date stamp
|
| 594 |
implies 00:00 UTC).</t>
|
| 595 |
|
| 596 |
<t>The version, capabilities, and date fields must each be no longer than
|
| 597 |
125 characters.</t>
|
| 598 |
|
| 599 |
<t>The encoded key part consists of two bytes specifying the key length
|
| 600 |
(1024 bits) in little-endian byte order, and of the RSA modulus and the
|
| 601 |
public exponent in big-endian form using 128 bytes each, with preceding
|
| 602 |
null bytes for the exponent if necessary. The packet is encoded in
|
| 603 |
Base-64 <xref target="RFC1421"/>, with line-breaks every 40 characters.
|
| 604 |
Its length (258 bytes) is given as a decimal number.</t>
|
| 605 |
|
| 606 |
<t>Digital signatures <xref target="RFC2440"/> should be used to ensure
|
| 607 |
the authenticity of the key files.</t>
|
| 608 |
|
| 609 |
</section>
|
| 610 |
|
| 611 |
|
| 612 |
<section anchor="implementation" title="Implementation Notes">
|
| 613 |
|
| 614 |
<t>This section discusses various implementation issues.</t>
|
| 615 |
|
| 616 |
<section anchor="remixing" title="Remixing">
|
| 617 |
|
| 618 |
<t>Some remailers may understand multiple remailer protocols. In the
|
| 619 |
interest of creating a unified anonymity set, remailers which speak
|
| 620 |
multiple remailer protocols should attempt to remix messages that use
|
| 621 |
the older protocols whenever possible.</t>
|
| 622 |
|
| 623 |
<t>When a remailer receives a message in the older protocol format, it
|
| 624 |
should determine if the message destination is another remailer which
|
| 625 |
also speaks the Mixmaster protocol. If the remailer knows the
|
| 626 |
Mixmaster public key for the next hop, it should process the message
|
| 627 |
normally, but instead of sending the message to its next hop, treat
|
| 628 |
the processed message as opaque data which will comprise the body of
|
| 629 |
a Mixmaster message. The remailer should then create a Mixmaster
|
| 630 |
message with this body to be delivered to the next hop remailer.</t>
|
| 631 |
|
| 632 |
<t>Ensuring that a remailer's keyring contains up to date copies of
|
| 633 |
the public keys for other remailers is the responsibility of the
|
| 634 |
given remailer's operator. Utilities such as Echolot <xref
|
| 635 |
target="Palfrader03"/> can be used to assist in automating this task.
|
| 636 |
</t>
|
| 637 |
|
| 638 |
|
| 639 |
<t>If the remailer receives a Mixmaster message that, when decrypted,
|
| 640 |
contains a message in an alternate protocol supported by the
|
| 641 |
remailer, it should process the message as though it had initially
|
| 642 |
been delivered in the alternate protocol format.</t>
|
| 643 |
|
| 644 |
</section>
|
| 645 |
|
| 646 |
<section anchor="admin-commands" title="Administrative Commands">
|
| 647 |
|
| 648 |
<t>The existing remailer software understands a number of specific
|
| 649 |
administrative commands. These commands are sent via the Subject:
|
| 650 |
line of an e-mail to the email address of the remailer:
|
| 651 |
<list style="hanging">
|
| 652 |
<t hangText="remailer-help:">Returns information about using the
|
| 653 |
remailer. The remailer may support a suffix consisting of a
|
| 654 |
dash and a two-letter ISO 639 country code. For example,
|
| 655 |
remailer-help-ar will return a help file in Arabic, if
|
| 656 |
available. Supported languages should be listed at the
|
| 657 |
beginning of the "remailer-help" response.</t>
|
| 658 |
<t hangText="remailer-key:">Returns the remailer's public key as
|
| 659 |
described in <xref target="key-format"/>. It may also return the keys and attributes
|
| 660 |
of other remailers it knows about.</t>
|
| 661 |
<t hangText="remailer-stats:">Returns information about the number
|
| 662 |
of messages the remailer has processed per day (again, a day
|
| 663 |
starts at 00:00 UTC).</t>
|
| 664 |
<t hangText="remailer-conf:">Returns local configuration
|
| 665 |
information such as software version, supported protocols,
|
| 666 |
filtered headers, blocked newsgroups and domains, and the
|
| 667 |
attribute strings for other remailers the remailer knows
|
| 668 |
about.</t>
|
| 669 |
<t hangText="remailer-adminkey:">Returns the OpenPGP <xref target="RFC2440"/>
|
| 670 |
key of the remailer's operator.</t>
|
| 671 |
</list>
|
| 672 |
</t>
|
| 673 |
|
| 674 |
</section>
|
| 675 |
|
| 676 |
<section anchor='impl-dummy-traffic' title="Dummy Traffic">
|
| 677 |
|
| 678 |
<t>Older versions of Mixmaster (2.0.4 through 2.9.0) allowed for the
|
| 679 |
creation of dummy message cover traffic, but provided no automated
|
| 680 |
means for introducing this dummy traffic into the system. Beginning
|
| 681 |
in version 3.0, Mixmaster employs an internal dummy policy.</t>
|
| 682 |
|
| 683 |
</section>
|
| 684 |
|
| 685 |
<section anchor="key-rotation" title="Key Rotation">
|
| 686 |
|
| 687 |
<t>Beginning with version 3.0, Mixmaster offers automatic key rotation.
|
| 688 |
Care must be taken to minimize the possibility for partitioning
|
| 689 |
attacks during the key rotation window.</t>
|
| 690 |
|
| 691 |
<t>Keys are generated with a validity date and an expiration date.
|
| 692 |
User agents should only display valid keys which have not
|
| 693 |
expired.</t>
|
| 694 |
|
| 695 |
<t>Keys are valid for a 13 month period. A remailer must generate
|
| 696 |
a new key when the existing key's expiration date is one month or
|
| 697 |
less in the future. When queried, a remailer must report the most
|
| 698 |
recently generated key as its key, effectively giving each key a 12
|
| 699 |
month service period.</t>
|
| 700 |
|
| 701 |
<t>Remailers must continue to decrypt and process mail encrypted to
|
| 702 |
expired keys for one week past the expiration date on the key.
|
| 703 |
One week after expiration, an expired remailer key should be
|
| 704 |
securely destroyed.</t>
|
| 705 |
|
| 706 |
</section>
|
| 707 |
|
| 708 |
<section anchor="anon-delivery" title="Delivery of Anonymous Messages">
|
| 709 |
|
| 710 |
<t>When anonymous messages are forwarded to third parties, remailer
|
| 711 |
operators should be aware that senders might try to supply header
|
| 712 |
fields that indicate a false identity or to send unauthorized Usenet
|
| 713 |
control messages. This is a problem because many news servers
|
| 714 |
accept control messages automatically without any authentication.</t>
|
| 715 |
|
| 716 |
<t>For these reasons, remailer software should allow the operator to
|
| 717 |
disable certain types of message headers, and to insert headers
|
| 718 |
automatically.</t>
|
| 719 |
|
| 720 |
<t>Remailers usually add a "From:" field containing an address controlled
|
| 721 |
by the remailer operator to anonymous messages. Using the word
|
| 722 |
"Anonymous" in the name field allows recipients to apply scoring
|
| 723 |
mechanisms and filters to anonymous messages. Appropriate additional
|
| 724 |
information about the origin of the message can be inserted in the
|
| 725 |
"Comments:" header field of the anonymous messages.</t>
|
| 726 |
|
| 727 |
<t>Anonymous remailers are sometimes used to send harassing e-mail. To
|
| 728 |
prevent this abuse, remailer software should allow operators to block
|
| 729 |
destination addresses on request. Real-life abuse and attacks on
|
| 730 |
anonymous remailers are discussed in <xref target="Mazieres98"/>.</t>
|
| 731 |
|
| 732 |
</section>
|
| 733 |
|
| 734 |
</section>
|
| 735 |
|
| 736 |
<section anchor="security-consideration" title="Security Considerations">
|
| 737 |
|
| 738 |
<t>The security of the mix-net relies on the assumption that the
|
| 739 |
underlying cryptographic primitives are secure. In addition, specific
|
| 740 |
attacks on the mix-net need to be considered; <xref
|
| 741 |
target="Moeller98"/> contains a more detailed analysis of these
|
| 742 |
attacks.</t>
|
| 743 |
|
| 744 |
<t>Passive adversaries can observe some or all of the messages sent to
|
| 745 |
mixes. The users' anonymity comes from the fact that a large number of
|
| 746 |
messages are collected and sent in random order. For that reason
|
| 747 |
remailers should collect as many messages as possible while keeping the
|
| 748 |
delay acceptable.</t>
|
| 749 |
|
| 750 |
<t>Statistical traffic analysis is possible even if single messages are
|
| 751 |
anonymized in a perfectly secure way: an eavesdropper may correlate the
|
| 752 |
times of Mixmaster packets being sent and anonymized messages being
|
| 753 |
received. This is a powerful attack if several anonymous messages can
|
| 754 |
be linked together (by their contents or because they are sent under a
|
| 755 |
pseudonym). To protect themselves, senders must mail Mixmaster packets
|
| 756 |
stochastically independent of the actual messages they want to send.
|
| 757 |
This can be done by sending packets at regular intervals, using a dummy
|
| 758 |
message whenever appropriate. To avoid leaking information, the
|
| 759 |
intervals should not be smaller than the randomness in the delay caused
|
| 760 |
by trusted remailers.</t>
|
| 761 |
|
| 762 |
<t>There is no anonymity if all remailers in a given chain collude with
|
| 763 |
the adversary, or if they are compromised during the lifetime of their
|
| 764 |
keys. Using a longer chain increases the assurance that the user's
|
| 765 |
privacy will be preserved, but at the same time causes lower
|
| 766 |
reliability and higher latency. Sending redundant copies of a message
|
| 767 |
increases reliability but may also facilitate attacks. An optimum must
|
| 768 |
be found according to the individual security needs and trust in the
|
| 769 |
remailers.</t>
|
| 770 |
|
| 771 |
<t>Active adversaries can also create, suppress or modify messages.
|
| 772 |
Remailers must check the packet IDs to prevent replay attacks. To
|
| 773 |
minimize the number of packet IDs that the remailer must retain,
|
| 774 |
packets which bear a timestamp more than a reasonable number of days in
|
| 775 |
the past may be discarded. Implementors should consider that packets
|
| 776 |
maybe up to three days younger than indicated by the timestamp, and
|
| 777 |
select an expiration value which allows sufficient time for legitimate
|
| 778 |
messages to pass through the network. The number of packet IDs that the
|
| 779 |
remailer must retain can be further minimized by discarding packet IDs
|
| 780 |
for packets encrypted to a key which has expired more than a week in
|
| 781 |
the past.</t>
|
| 782 |
|
| 783 |
<t>The use of a link-level encryption protocol with an ephemeral key,
|
| 784 |
such as STARTTLS with SMTP <xref target="RFC2487"/>, provides for
|
| 785 |
forward secrecy and further aids against replay attacks. Remailer
|
| 786 |
operators should be encouraged to deploy such solutions at the MTA
|
| 787 |
level whenever possible.</t>
|
| 788 |
|
| 789 |
<t>Early implementations of Mixmaster did not generate a timestamp
|
| 790 |
packet. Implementors should be aware of the partitioning attack
|
| 791 |
implications if they chose to permit processing of packets without
|
| 792 |
timestamps. Mixmaster versions 2.0.5 and greater in the 2.0.x tree
|
| 793 |
as well as Mixmaster 3.0 in the 3.x tree do not permit processing of
|
| 794 |
such packets.</t>
|
| 795 |
|
| 796 |
<t>Message integrity must be verified to prevent the adversary from
|
| 797 |
performing chosen ciphertext attacks or replay attacks with modified
|
| 798 |
packet IDs, and from encoding information in an intercepted message in
|
| 799 |
a way not affected by decryption (e.g. by modifying the message length
|
| 800 |
or inducing errors). This version of the protocol does not provide
|
| 801 |
integrity for the packet body. Because the padding for header section
|
| 802 |
is random, in this version of the protocol it is impossible for a
|
| 803 |
remailer to check the integrity of the encrypted header sections that
|
| 804 |
will be decrypted by the following remailers. Chosen ciphertext attacks
|
| 805 |
and replay attacks are detected by verifying the message digest
|
| 806 |
included in the header section.</t>
|
| 807 |
|
| 808 |
<t>The adversary can trace a message if he knows the decryption of all
|
| 809 |
other messages that pass through the remailer at the same time. To make
|
| 810 |
it less practical for an attacker to flood a mix with known messages,
|
| 811 |
remailers can store received messages in a reordering pool that grows
|
| 812 |
in size while more than average messages are received, and periodically
|
| 813 |
choose at random a fixed fraction of the messages in the pool for
|
| 814 |
processing. There is no complete protection against flooding attacks in
|
| 815 |
an open system, but if the number of messages required is high, an
|
| 816 |
attack is less likely to go unnoticed. Additional work has been done in
|
| 817 |
the field of active flooding attack protection; future mix-net protocols
|
| 818 |
may wish to take advantage of this work <xref target="Danezis03"/>.</t>
|
| 819 |
|
| 820 |
<t>If the adversary suppresses all Mixmaster messages from one particular
|
| 821 |
sender and observes that anonymous messages of a certain kind are
|
| 822 |
discontinued at the same time, that sender's anonymity is compromised
|
| 823 |
with high probability. There is no practical cryptographic protection
|
| 824 |
against this attack in large-scale networks. The effect of a more
|
| 825 |
powerful attack that combines suppressing messages and re-injecting
|
| 826 |
them at a later time is reduced by using timestamps.</t>
|
| 827 |
|
| 828 |
<t>Manipulation of the distribution of remailer keys, capabilities, and
|
| 829 |
statistics can lead to powerful attacks against a remailer network.
|
| 830 |
Sensitive information such as this should be distributed in a secure
|
| 831 |
manner.</t>
|
| 832 |
|
| 833 |
<t>The lack of accountability that comes with anonymity may have
|
| 834 |
implications for the security of a network. For example, many news
|
| 835 |
servers accept control messages automatically without any cryptographic
|
| 836 |
authentication. Possible countermeasures are discussed in <xref
|
| 837 |
target="anon-delivery"/>.</t>
|
| 838 |
|
| 839 |
</section>
|
| 840 |
|
| 841 |
<section anchor="acknowledgments" title="Acknowledgments">
|
| 842 |
|
| 843 |
<t>Several people contributed ideas and source code to the Mixmaster v2
|
| 844 |
software.</t>
|
| 845 |
|
| 846 |
<t>"Antonomasia" <ant@notatla.org.uk>,
|
| 847 |
Adam Back <adam@cypherspace.org>,
|
| 848 |
Marco A. Calamari <marcoc@dada.it>,
|
| 849 |
Colin Tuckley <colin@tuckley.org>,
|
| 850 |
Bodo Moeller <bmoeller@acm.org>, and
|
| 851 |
Jon Orbeton <jono@networkcommand.com>
|
| 852 |
suggested improvements to this document.
|
| 853 |
Rich Salz <rsalz@datapower.com> contributed
|
| 854 |
significantly to this document by XMLifying it and rewording
|
| 855 |
many ambiguous sections. Myles Conley <miles@tenhand.com>
|
| 856 |
also reworded many ambiguous sections and contributed important
|
| 857 |
suggestions for improving clarity.</t>
|
| 858 |
|
| 859 |
</section>
|
| 860 |
|
| 861 |
</middle>
|
| 862 |
|
| 863 |
<back>
|
| 864 |
|
| 865 |
<references title="References">
|
| 866 |
|
| 867 |
<reference anchor="Chaum81">
|
| 868 |
<front>
|
| 869 |
<title>Untraceable Electronic Mail, Return Addresses, and Digital
|
| 870 |
Pseudonyms</title>
|
| 871 |
<author initials="D." surname="Chaum" fullname="David Chaum">
|
| 872 |
<organization/><address/>
|
| 873 |
</author>
|
| 874 |
<date year="1981"/>
|
| 875 |
</front>
|
| 876 |
<seriesInfo name="Communications of the ACM" value="24:2"/>
|
| 877 |
</reference>
|
| 878 |
|
| 879 |
<reference anchor="Palfrader03"
|
| 880 |
target="http://http://www.palfrader.org/echolot/">
|
| 881 |
<front>
|
| 882 |
<title>Echolot: A Pinger for Anonymous Remailers</title>
|
| 883 |
<author initials="P." surname="Palfrader" fullname="Peter Palfrader">
|
| 884 |
<organization/><address/>
|
| 885 |
</author>
|
| 886 |
<date year="2003"/>
|
| 887 |
</front>
|
| 888 |
</reference>
|
| 889 |
|
| 890 |
<reference anchor="Mazieres98"
|
| 891 |
target="ftp://cag.lcs.mit.edu/pub/dm/papers/mazieres:pnym.ps.gz">
|
| 892 |
<front>
|
| 893 |
<title>The Design, Implementation and Operation of an Email Pseudonym
|
| 894 |
Server</title>
|
| 895 |
<author initials="D." surname="Mazieres" fullname="D. Mazieres">
|
| 896 |
<organization/><address/>
|
| 897 |
</author>
|
| 898 |
<author initials="F." surname="Kaashoek" fullname="F. Kaashoek">
|
| 899 |
<organization>5th ACM Conference on Computer and Communications
|
| 900 |
Security</organization>
|
| 901 |
<address/>
|
| 902 |
</author>
|
| 903 |
<date month="November" year="1998"/>
|
| 904 |
</front>
|
| 905 |
<seriesInfo name="In the Proceedings of the 5th ACM Conference on Computer and Communications Security (CCS 1998)" value=""/>
|
| 906 |
</reference>
|
| 907 |
|
| 908 |
<reference anchor="Danezis03"
|
| 909 |
target="http://www.cl.cam.ac.uk/users/gd216/p125_danezis.pdf">
|
| 910 |
<front>
|
| 911 |
<title>Heartbeat Traffic to Counter (n-1) Attacks</title>
|
| 912 |
<author initials="G." surname="Danezis" fullname="George Danezis">
|
| 913 |
<organization/><address/>
|
| 914 |
</author>
|
| 915 |
<author initials="L." surname="Sassaman" fullname="Len Sassaman">
|
| 916 |
<organization>Workshop on Privacy in the Electronic Society
|
| 917 |
</organization>
|
| 918 |
<address/>
|
| 919 |
</author>
|
| 920 |
<date month="October" year="2003"/>
|
| 921 |
</front>
|
| 922 |
<seriesInfo name="In the Proceedings of the Workshop on Privacy in the Electronic Society (WPES 2003), Washington, DC, USA" value=""/>
|
| 923 |
</reference>
|
| 924 |
|
| 925 |
<reference anchor="Moeller98"
|
| 926 |
target="http://agn-www.informatik.uni-hamburg.de/people/3umoelle/st.ps">
|
| 927 |
<front>
|
| 928 |
<title>Anonymisierung von Internet-Diensten</title>
|
| 929 |
<author initials="U." surname="Moeller" fullname="Ulf Moeller">
|
| 930 |
<organization>Studienarbeit, University of Hamburg</organization>
|
| 931 |
<address/>
|
| 932 |
</author>
|
| 933 |
<date month="January" year="1998"/>
|
| 934 |
</front>
|
| 935 |
</reference>
|
| 936 |
|
| 937 |
<reference anchor="trickle02"
|
| 938 |
target="http://freehaven.net/doc/batching-taxonomy/taxonomy.pdf">
|
| 939 |
<front>
|
| 940 |
<title>From a Trickle to a Flood: Active Attacks on Several Mix Types</title>
|
| 941 |
<author initials="A." surname="Serjantov" fullname="Andrei Serjantov">
|
| 942 |
<organization/><address/>
|
| 943 |
</author>
|
| 944 |
<author initials="R." surname="Dingledine" fullname="Roger Dingledine">
|
| 945 |
<organization/><address/>
|
| 946 |
</author>
|
| 947 |
<author initials="P." surname="Syverson" fullname="Paul Syverson">
|
| 948 |
<organization>Proceedings of Information Hiding Workshop (IH 2002)</organization>
|
| 949 |
<address/>
|
| 950 |
</author>
|
| 951 |
<date month="October" year="2002"/>
|
| 952 |
</front>
|
| 953 |
<seriesInfo name="In the Proceedings of Information Hiding Workshop (IH 2002)" value=""/>
|
| 954 |
</reference>
|
| 955 |
|
| 956 |
|
| 957 |
<reference anchor="MENEZES">
|
| 958 |
<front>
|
| 959 |
<title>"Handbook of Applied Cryptography", CRC Press</title>
|
| 960 |
<author initials="A." surname="Menezes" fullname="Alfred Menezes">
|
| 961 |
<organization/><address/>
|
| 962 |
</author>
|
| 963 |
<author initials="P." surname="van Oorschot" fullname="Paul van Oorschot">
|
| 964 |
<organization/><address/>
|
| 965 |
</author>
|
| 966 |
<author initials="S." surname="Vanstone" fullname="Scott Vanstone">
|
| 967 |
<organization/><address/>
|
| 968 |
</author>
|
| 969 |
<date year="1996"/>
|
| 970 |
</front>
|
| 971 |
</reference>
|
| 972 |
|
| 973 |
<?rfc include="reference.RFC.1036.xml" ?>
|
| 974 |
<?rfc include="reference.RFC.1321.xml" ?>
|
| 975 |
<?rfc include="reference.RFC.1421.xml" ?>
|
| 976 |
<?rfc include="reference.RFC.1952.xml" ?>
|
| 977 |
<?rfc include="reference.RFC.2311.xml" ?>
|
| 978 |
<?rfc include="reference.RFC.2437.xml" ?>
|
| 979 |
<?rfc include="reference.RFC.2440.xml" ?>
|
| 980 |
<?rfc include="reference.RFC.2487.xml" ?>
|
| 981 |
<?rfc include="reference.RFC.2822.xml" ?>
|
| 982 |
|
| 983 |
</references>
|
| 984 |
|
| 985 |
</back>
|
| 986 |
|
| 987 |
</rfc>
|
| 988 |
|