> The "man in the middle" attack that we are talking about is simply you talking
> something else then the node you think you are talking to. To authenticate
> means to check who you are talking to, and that that is who you expect it to
> be. Obviously, stopping this "man in the middle attack" is the same as
> authenticating who you are talking to. 

Yes, I see your point. When I said authenticated I meant knowing who you
were talking to even if they change their address and key, which would be
a layer above the layer when you are sure you are talking to the address
that you think you are. The first layer prevents man in the middle attacks
on the key negotiation for the encryption of the stream. The second layer
allows nodes to change addresses and public keys without being
disassociated from the data which the other nodes have collected about its
reliability, trustworthiness, etc..

> The obvious authentication method, and this is possibly what you mean, is to
> pass a fingerprint/hash of the PK along with the Address, so that it looks 
> like
> this:
> 
> tcp/123.45.67.89:50001|98ABDFC4CE9973CC498DD9A24E4FE9F37B2609E8

I was thinking of including the actual PK along with the address and then
encrypting the stream with that. Inside of that encrypted stream, key
negotiation will occur. Then the stream will be encrypted with the
exchanged keys.

> I don't want to use the handshake for the encryption negotiation. I want to
> keep this outside the message protocol and part of the carrier. The message

> more complicated as well, because if you use the handshakes from crypto
> negotiation, then you have to be able to change the crypto in the middle of a
> connection, where as otherwise you can just decide that the negotiation is 
> done
> when the line is set up an think no more of it.

You don't _have_ to switch encryption in the middle of a stream. A
handshake exchange is in the form of a request and a reply. The request
can request any cipher and but the receiving node and ignore it if a
cipher has already been agreed upon. Handshaking is really expected to
occur in the middle of a stream of messages. It occurs occasionally with
connectionless exchanges and only at the beginning of opening a keepalive
stream.

I don't have strong feelings on using handshakes to do the negotiation. It
just seems simpler. He have them, they're subclassible, and they seemed
well suited to this kind of application.



_______________________________________________
Freenet-dev mailing list
Freenet-dev at lists.sourceforge.net
http://lists.sourceforge.net/mailman/listinfo/freenet-dev

Reply via email to