Matthew Toseland wrote:
> Invites with a temporary keypair (invite = H(pubkey_temp), IP:port; 
> obfuscation key = H(pubkey_temp))

Minor point: obfuscation key = H(nonce + H(pubkey_temp)). Or if you
accept the argument in my other message that we need mutual
authentication, obfuscation key = H(nonce + H(pubkey_temp_R) +
H(pubkey_temp_I)).

> Short noderefs (ref = H(real_pubkey), IP:port; obfuscation key = H(pubkey_R + 
> H(pubkey_I)) )

Again, H(nonce + H(pubkey_R) + H(pubkey_I)). But if we're doing a
two-way exchange anyway, is there any advantage to using refs instead of
invites? Should we get rid of refs altogether and just use invites?

> And possibly SRP. 
> PRO: We can use easy-to-remember/communicate (low entropy) passphrases, 
> rather 
> than 32 bytes (64 hex chars, 43 base64).
> PRO: And it's still secure, provided that we have a limited number of 
> attempts 
> per password (so for SRP-based invites we will need IP:port, invite counter, 
> passphrase).

Tempting, but not secure - anyone who sees the invite can MITM the
handshake. I think we need to be realistic about user behaviour: most
people don't exchange keys face to face, the most they're likely to do
is use a real-time medium that's easy to eavesdrop but hard to MITM.

The furthest I've ever known someone to go is emailing a public key and
phoning to confirm a few digits of the fingerprint, and that's someone
who makes their living from network security. Most users will just cross
their fingers and email the password if we give them that option.

Cheers,
Michael
_______________________________________________
Devl mailing list
Devl@freenetproject.org
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to