[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[minion-cvs] Replied to some comments. Still working on it ...
Update of /home/minion/cvsroot/doc
In directory moria.seul.org:/tmp/cvs-serv23073
Modified Files:
minion-spec.tex
Log Message:
Replied to some comments. Still working on it ...
Index: minion-spec.tex
===================================================================
RCS file: /home/minion/cvsroot/doc/minion-spec.tex,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- minion-spec.tex 26 May 2002 02:06:09 -0000 1.5
+++ minion-spec.tex 28 May 2002 14:49:49 -0000 1.6
@@ -67,6 +67,9 @@
literature, the weaknesses in OAEP's security proofs only appear
when you're using something other than RSA. With RSA, I believe
the claim is still that OAEP is secure. -NM]
+[XXXX I agree that for most practical purposes OAEP is secure. Using
+ the standard construction will allow implementors to use ready
+ made libreries. -GD]
\subsection{The subheader structure and address extensions}
@@ -104,6 +107,8 @@
I removed RTRN because it's redundant with respect to routing
type.
I removed SWAP because it makes address type redundant. -NM]
+ [XXXX Cool! You are right they were, as long as we make clear that
+ routing types make the message being treated in different ways -GD]
* The Routing Type of a message defines how the MIX should deliver or
relay it. Most routing methods require addition addressing information.
@@ -118,8 +123,9 @@
using OAEP+, using a 1024 bit key. This results in an encrypted block
of 128 bytes. If the routing info is longer than 86-42=44 bytes, then
additional subheader have to be added.
+ [XXXX Should the above really be OAEP+? or simply OAEP? -GD]
- When additional block is added to fit the routing info, it must be be a
+ When an additional block is added to fit the routing info, it must be be a
multiple of 128 bytes and should have the following structure:
Routing Extension:
@@ -132,6 +138,13 @@
routing size. -NM]
[XXXX What purpose does the magic number serve? -NM]
+ [XXXX It was originally there to make sure that the decryption was
+ correct. It is not releven any more because:
+ - we do not use a AONT for the additional block
+ (could modify bits inside without modufying first 4 bytes)
+ - the integrity of the additional block is protected by the
+ message digest in the header (this should be made clear!).
+ -GD]
* The magic number is set to be four zero bytes.
* Padding of zeroes is used to make the size of the Address Extension a
@@ -175,6 +188,10 @@
[XXXX Are the TLS keys different from the keys used to encrypt the
headers? I claim they should be. -NM]
+[XXXX YES! They have to be different since they are discarded after
+ the key exchange. The signature/verifucation key pair can be
+ used for both purposes (signing ethemeral keys, and signing the
+ mix encryption keys).
A SWAP routing type tells the node to exchange headers as described below.
@@ -190,6 +207,14 @@
reminding recipients of the master secrets they used to generate the
reply block.)
+[XXXX Where has the RTRN type gone? I guess you can do the same job
+with the LOCAL field but I would prefer to have it specified as a
+separate type in the standard.
+
+0x0101 RTRN (HOPS: 1 byte , KEY: 20 bytes) : 21 bytes
+
+-GD]
+
\subsection{The header structure}
Each type III message has two identical headers that are swapped at
@@ -248,6 +273,12 @@
[XXXX Shouldn't size info go into the header, or no place? Size
info makes tagged payloads distinguishable from garbage. -NM]
+ [XXXX Size info is quite important as well as some type information.
+ Maybe in order to minimise the potential for tagging we should
+ encrypt the payload using an encryption key specified in the
+ reply block. So the reply block would be (SURB, encryption key,
+ first hop, deadline). That would make us waste another 128 bytes
+ of payload. -GD]
Size: 2 bytes
Data: (Variable)
@@ -270,13 +301,16 @@
Process:
// Phase 1
- if (H2 is a reply block)
+ if (H2 is *not* a reply block)
for i = N .. 0
P = SPRP_ENC(SK2_i, "PAYLOAD ENCRYPT", P)
end
else
[ XXXX what do we use for H2 if we're not using a reply
block? -NM ]
+ [ XXXX The above processing is only happening if it is NOT
+ a reply block. Otherwise it is impossible to know the keys
+ SK2_i. For a reply block there is no other processing]
// Phase 2
H2 = SPRP(P, ``HIDE HEADER'', H2)
@@ -378,6 +412,12 @@
ClientHello packet to renegotiate session key between all
messages. [XXXX why so often? -NM] If the client does not do so, the
server must close the connection. [XXXX Is this so? -NM]
+
+[XXXX If there is a key updating operation between every message it means
+that every message is encrypted under a different key. It also
+provides a very small time window for someone breaking down your door
+in order to decrypt what you have just transmitted. Is there a problem
+with having it so often? -GD]
Protocol outline: (Portions marked with '*' are normative; other
portions are non-normative descriptions of TLS.)