[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[minion-cvs] Incorporate comments from peter palfrader-- leave some ...
Update of /home/minion/cvsroot/doc/spec
In directory moria.mit.edu:/tmp/cvs-serv17387
Modified Files:
dir-spec.txt
Log Message:
Incorporate comments from peter palfrader-- leave some unanswered.
Index: dir-spec.txt
===================================================================
RCS file: /home/minion/cvsroot/doc/spec/dir-spec.txt,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- dir-spec.txt 12 Aug 2004 04:53:28 -0000 1.24
+++ dir-spec.txt 12 Aug 2004 07:44:07 -0000 1.25
@@ -1,6 +1,6 @@
$Id$
- MIX3:3
+ MIX3:3
Type III (Mixminion) Mix Directory Specification
George Danezis
@@ -55,7 +55,7 @@
1. Introduction
For a Mix network to provide anonymity to its users, it is vital
- that those users to provide cover traffic to one another by
+ that those users provide cover traffic to one another by
behaving as similarly as possible when choosing paths and servers
for their messages. Because of this, it is vital that users have a
means to learn about usable Mixes -- and that this means yield
@@ -100,7 +100,7 @@
allowed.
Formally, a Mix Information Message is a sequence of ASCII
- characters, consisting of zero or more Sections. Each Section
+ characters, consisting of one or more Sections. Each Section
contains a Header, and one or more Entries. Each Header consists
of a left square-bracket ('[', ASCII 91), an Identifier, a right
square-bracket (']', ASCII 93), and an EOL. Each Entry consists of
@@ -114,6 +114,11 @@
or a tab. An EOL is an optional Space, followed by either a CR
('\r', ASCII 13), a NL ('\n', ASCII 10), or a CR-NL sequence.
+ [XXXX Everybody using Minion is going to support ASCII, so I think
+ it's fine to make them use it here. -RD]
+ [XXXX Contact Information and comments desgined to be read by humans
+ may want to be encoded in UTF-8. -PP]
+
Here is a grammar, using C syntax for characters:
Message ::= Section | Message Section
@@ -144,7 +149,9 @@
[Empty_Section]
[Section-Three]
Key-two: the second value is this value
- Key3:
+ Key3:
+
+ (Note: the space after "Key3:" above is not optional.)
2.2. Processing unrecognized information
@@ -238,6 +245,12 @@
for 0.0.0.0/0.0.0.0. An omitted PortSpec defaults to 48099 for
'allow' entries and 0-65535 on 'deny' entries.
+ [XXXX please consider using cidr notation instead.
+ e.g. 192.0.2.0/24 -PP]
+ [XXXX Tentatively agreed, but it is very possible that none of
+ the Address Pattern uses will ever get implemented, so
+ I'll hold off on revising this for a bit. -NM]
+
- Unless specified otherwise, all 'sorted' lists are sorted lexically by
their ASCII encodings, in ascending order.
@@ -280,14 +293,16 @@
'Descriptor-Version': the string '1.0'
'Nickname': A human-readable identifier for this server. It
- MUST be no more than 128 characters. It MUST contain only
+ MUST NOT be more than 128 characters. It MUST contain only
the characters [A-Za-z0-9] and '-'. It MUST NOT begin
with a '-' or a digit.
'Identity': This Mix node's identity key, represented in ASN.1,
- and encoded in BASE64. The modulus of this key should be at
+ and encoded in BASE64. The modulus of this key SHOULD be at
least 2048 bits long and no more than 4096 bits long. The
- exponent of this key must be 65537.
+ exponent of this key MUST be 65537.
+ [XXX: Is there a reason why the exponent is a MUST requirement,
+ and not a SHOULD? - PP]
'Digest': The digest of this descriptor. The value of this
entry is unsigned. (See section 2.5)
@@ -312,30 +327,33 @@
'Packet-Versions': A comma-separated list of allowable
major.minor versions for packets this server will process.
- In a production network, only one value should be used for
+ In a production network, only one value SHOULD be used for
this field.
- 'Contact': An email address that may be used to contact the
- administrator of this server. MUST be no more than 256
+ 'Contact': An email address that can be used to contact the
+ administrator of this server. MUST NOT be more than 256
characters. [This was a 'MAY' until Mixminion 0.0.7.]
+ [XXX: it 'MUST be no more..' and it 'MAY be not more..'
+ what's the difference? confused - PP]
+
The 'Server' section MAY contain the following entries, at most
once each:
'Contact-Fingerprint': Fingerprint of the server administrator's
- PGP key. Must be no more than 128 characters.
+ OpenPGP key. MUST NOT be more than 128 characters.
- 'Comments': Human-readable information about this server. Must
- be <1024 bytes long. It MUST NOT be necessary to read this
- information to use the server properly.
+ 'Comments': Human-readable information about this server. MUST
+ be less than 1024 bytes long. It MUST NOT be necessary
+ to read this information to use the server properly.
'Software': A string description of the software this server is
- running. Must be less than 256 characters. Softare SHOULD
+ running. MUST be less than 256 characters. Softare SHOULD
NOT take any action based on this field, other than to
display it.
'Secure-Configuration': A boolean value. If true, the server
- must not be running in an insecure operating mode. [XXXX
+ MUST NOT be running in an insecure operating mode. [XXXX
list these modes. Added in Mixminion 0.0.4]
'Why-Insecure': A human-readable string. This string SHOULD
@@ -343,7 +361,7 @@
present, it SHOULD contain an explanation of why the
operating mode is insecure. [Added in Mixminion 0.0.5]
- [Note: before computing the digest, all implementations must
+ [Note: before computing the digest, all implementations MUST
normalize CR and CR-LF style newlines to a single NL, and remove
any spaces and tabs that may have been introduced at the ends of
lines.]
@@ -364,7 +382,7 @@
*FWD/HOST messages, and that servers with IPs can send
*FWD/IPv4 messages.]
- 'Port': A port at which IP accepts incoming MMTP connections.
+ 'Port': A TCP port at which IP accepts incoming MMTP connections.
'Protocols': A comma-separated list of the versions of MMTP this
server accepts.
@@ -462,8 +480,8 @@
- 'DirectoryURL' : The URL base for this directory server. (See 5.1)
- 'DirectoryIdentity' : The Identity key of the directory server
- that generated this directory. The modulus of this key must be
- between 2048 and 4096 bits long, and the exponent must be 65537.
+ that generated this directory. The modulus of this key MUST be
+ between 2048 and 4096 bits long, and the exponent MUST be 65537.
- 'DirectoryDigest' : The digest of the entire directory, starting
with the Directory-Info section.
@@ -495,7 +513,7 @@
- 'Voting-Servers' : A comma-separated list of information for the of
the directory servers who voted on this directory. Each item contains
- a fingerprint, a single space, and a URL base. Each fingerprints is a
+ a fingerprint, a single space, and a URL base. Each fingerprint is a
base-64 encoded SHA1 hash of the ASN.1 encoding of the directory
server's identity key; each URL base MUST be escaped. (See 5.1 below
for more information on URL bases.) The items are sorted by
@@ -512,8 +530,8 @@
issue a warning, and MAY refuse to run.
- 'MixminionServer' : A comma-separated list of up-to-date versions of
- Mixminion, in ascending order by version. Servers should interpret
- this list as clients interpret 'MixminionClient'.
+ Mixminion, in ascending order by version. Servers should interpret
+ this list as clients interpret 'MixminionClient'.
Entries in 'MixminionClient' and 'MixminionServer' are in decreasing order
of preference. Because the version numbering scheme will be different for
@@ -613,7 +631,7 @@
B/
SHOULD contain a human-readble HTML document describing the
- directory server's
+ directory server and its policies.
B/current.gz