Also, it isn't too difficult to implement a PAKE. But there isn't a
(known?) way to do it without adding rounds, if you want to protect the
username. This is because the server needs the username before it can
do anything with the password. Unless it has 0-RTT information the
client can't encrypt the username before receiving the server's
ephemeral share. So you need at least
ClientHello ->
<- ServerKeyshare
PakeStuff ->
<- PasswordVerify
PasswordVerify, Finished ->
(With other messages in there too of course, but these ones limit the
round count with PAKE.)
-- Mike
On 7/19/2015 3:42 AM, Thijs van Dijk wrote:
Hi Manuel,
On 19 July 2015 at 12:21, Manuel Pegourie-Gonnard <m...@elzevir.fr
<mailto:m...@elzevir.fr>> wrote:
I'm probably wrong since I only thought about it for a few
minutes, but it seems to me that the PasswordVerify message would
be encrypted with (keys derived from) the handshake master secret,
which would prevent offline attacks.
What am I missing?
The key observation is the following: (I mentioned this off-list a few
weeks ago, but I guess I'll post it here as well for posterity.)
[T]he master secret will be derived from the client's and server's
respective KeyShare messages, and will therefore be known at the
time the server's PasswordVerify is sent. A malicious client could
therefore perform half a handshake (just enough to get the server
to give up its PV message), abort, and proceed with an offline
attack in its own time.
I thought about switching the order in which server and client
send their PV, but in much the same manner this won't protect
clients from malicious servers.
-Thijs
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls