[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[minion-cvs] Reply to some comments on SURB encoding.



Update of /home/minion/cvsroot/doc
In directory moria.seul.org:/tmp/cvs-serv12443

Modified Files:
	minion-spec.tex 
Log Message:
Reply to some comments on SURB encoding. 
Added version numbers.



Index: minion-spec.tex
===================================================================
RCS file: /home/minion/cvsroot/doc/minion-spec.tex,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- minion-spec.tex	17 Jun 2002 05:16:10 -0000	1.27
+++ minion-spec.tex	17 Jun 2002 13:17:37 -0000	1.28
@@ -495,7 +495,9 @@
 Binary Format:
 
 Begin Marker: 4 bytes
+Version: 2 bytes
 Address Size: 2 bytes
+Address Type: 2 bytes
 Address: (Address Size) bytes
 Use-by-Date: 4 bytes
 SURB size: 2 bytes
@@ -508,18 +510,23 @@
 Total: 54 bytes + Address Size + SURB size + Linked Data Size
 
 * The magic marker contains the ASCII 4-byte string 'SURB'. 
-   [ XXXX There should be a version number here. -NM ]
+* The version number contains the format version of the SURB.
+  (should be 1 and 0 for this standard)
 * Address: Contains the address of the first hop to which the message
   encoded using this SURB should be sent to.
    [ XXXX Won't the first hop always be a forward address?  If so, then
      we don't need the size marker: we only need an IP, port, and
      keyid.  If not, then we need a routing type as well. -NM ]
+   [ XXXX I would rather have a consistent addressing scheme
+          throughout. Is that causing any problems? Added an address 
+          type as well. -GD]
 * Use-by-Date: indicated the expiry date the SURB should be used by. Can
   be calculated using the key rotation frequencies of the intermediate
   nodes.
    [ XXXX Units? If we're too fine-grained, people may use this to
      leak info.  If we're too course-grained, we can't move to a
      tighter schedule later on.  -NM]
+   [ XXXX Should we have it in days since a magic date? -GD]
 * SURB data: Containst the SURB that is created as described
   above. The Junk at the end can be omited (although it is not wise
   to reduce it more than half the size of a full SURB). When the SURB
@@ -534,28 +541,53 @@
 
     [ XXXX Why not just always include the junk?  It'd be easier, and
        omitting the junk never saves more than 1K per SURB. -NM]
+    [ XXXX True. Leaving the Junk also does not give away any
+       information about the real length of the message. I included
+       this possibility because 16 hops is actually quite a lot and 1k
+       in a message of 32k could be significant (particularly is more
+       than one SURB have to be transported). -GD]
 
 * Linked Data: Additional data that might have to be linked with the 
   SURB.
     [ XXXX Hm.  What is the point of this? Leaving it free-form raises
       issues of linkability.  I suggest that rather than adding a
-      catch-all hook, we just embed SURBs when we want to embed them. -NM]
+      catch-all hook, we just embed SURBs when we want to embed
+  them. -NM]
+    [ XXXX The rationale for including this additional data is the
+  following: we might want to associate a public encryption key or
+  someting else with the address itself, so the hash needs to be
+  included before the junk. It is better to have a standard place to
+  hold and encode this additional data otherwise everyone will be
+  finding a different method for doing it. -GD]
+
 * The Digest is a Hash of all the other fields.
     [ XXXX Why have a digest here?  What is the risk?  Anybody who can
        tamper with a SURB can recompute the digest.  -NM ]
-
+    [ XXXX This is not a security feature, this is a reliability
+       one. As the SURBs are transported over email (that can be
+  commented etc) it is better if they can be checked as valid. Could
+  just be a CRC. Is is nice if it is a hash since we are sure it is
+  difficult to find another SURB that hashes to the same ID. -GD]
 
 The ASCII Encoding of SURBs.
 
 The  ASCII compatible format of SURB's is:
 
 --- BEGIN SURB ---
+Version: x.x
 ID: Base64 Encoding of the first 48 bits of the Digest (8 characters).
 Base64 encoded binary SURB 
 --- END SURB ---
 
+The version number should be in decimal ASCII and is the same as the
+binary version.
+
 [ XXXX This should absolutely have a version number.  Again, what does
   the digest defend against? -NM]
+[ XXXX It is not a security feature but an ID that uniquely identifies
+  this SURB. Can be used by applications that manage SURBs to refer to
+  them, and as a 8 character short hand if you want to address an
+  email to the SURB -GD]
 
 \section{Email Transport exchange format}