Re: Requesting comments: SRP based IRC encryption
- From: Ilmari Karonen <usenet2@xxxxxxxxxxxxxx>
- Date: 8 Feb 2009 20:32:10 GMT
On 2009-02-08, Björn Edström <be@xxxxxxx> wrote:
Ilmari Karonen wrote:
On 2009-01-27, Björn Edström <be@xxxxxxx> wrote:
Say for the sake of argument we add HMAC-SHA1 or similar.
What do we use as secret key, and how is this key established
among users?
The same way you establish the encryption key. Instead of setting up
a shared 256-bit key fer encryption, you set up a shared 512-bit key
and use half of it for encryption and the other for authentication.
There are other ways to do it, too, but this is the simplest, safest
and most obvious one.
So with your solution Alice and Dave have a shared key for
authentication. What about Bob and Carol? Alice _only_
exchange keys with Dave.
I see you're going to insist I actually _read_ your proposal, eh? ;)
At a glance, it seems in your protocol all session keys are generated
by a single trusted party ("Dave"), who sends them to the other users
after they've autheticated themselves using SRP, right?
If so, I still don't see what the problem is. If Dave can generate
and distribute 256-bit session keys for encryption, surely he can just
as well generate and distribute 512-bit session keys for encryption
_and_ authentication. Or am I missing something obvious here?
Note that I'm mainly addressing only the "channel encryption" part of
the protocol here; I'm assuming that the "authenticated key exchange"
really is properly authenticated already, though I'd need to take a
closer look at SRP and your implementation of it to see if that's
really the case.
At a glance, it does seem like there might be a potential gap in step
4 of your key exchange, where the session key is sent encrypted but
not authenticated; appending M2 to it doesn't help by itself, since
CBC mode is still somewhat malleable. Fortunately, this is easily
fixed: instead of doing K = H(S), do something like K = H("foo" || S
|| "foo"), L = H("bar" || S || "bar"), and use the key K to encrypt
and the key L to authenticate the message. This is just standard key
expansion.
--
Ilmari Karonen
To reply by e-mail, please replace ".invalid" with ".net" in address.
.
- Follow-Ups:
- Re: Requesting comments: SRP based IRC encryption
- From: Björn Edström
- Re: Requesting comments: SRP based IRC encryption
- References:
- Re: Requesting comments: SRP based IRC encryption
- From: Ilmari Karonen
- Re: Requesting comments: SRP based IRC encryption
- From: Björn Edström
- Re: Requesting comments: SRP based IRC encryption
- Prev by Date: Re: Requesting comments: SRP based IRC encryption
- Next by Date: Re: Requesting comments: SRP based IRC encryption
- Previous by thread: Re: Requesting comments: SRP based IRC encryption
- Next by thread: Re: Requesting comments: SRP based IRC encryption
- Index(es):
Relevant Pages
|