[curves] Use cases for PAKE?
feng.hao at newcastle.ac.uk
Thu Mar 20 04:13:30 PDT 2014
From: wasa bee [mailto:wasabee18 at gmail.com]
Sent: 20 March 2014 10:45
To: Feng Hao
Cc: Trevor Perrin; curves at moderncrypto.org
Subject: Re: [curves] Use cases for PAKE?
although the idea of using J-PAKE for end-to-end messaging with shared secret looks interesting, do you realistically believe users can set and remember different codes for different contacts?
No, I don't. It's the same issue as expecting the users to remember different passwords for different website.
would you then end up with same pwd for your wife and mistress :)
Reusing the same pwd is not a problem to the secrecy of the key as long as the attack is passive (due to the forward secrecy property of PAKE). Surely, you need to know who you are talking to : )
There's also been some research about PIN/code selection which shows it's not uniformly distributed so you might be able to just guess it. So do you plan to have an unbrute-force-able random shared secret stored on the phone, with the shared secret possibly be exchanged face-to-face (or something along those lines)?
The PAKE key exchange only needs to be done once and you can choose to cache the key, but you can always choose to refresh it when you want to. Users need to agree what is the shared password. They may speak over the phone: hey, do you still remember the day when we went to see that scary movie together? Let's use that date as the password to start secure chatting now so no one will know what we are talking about.
On Thu, Mar 20, 2014 at 10:23 AM, Feng Hao <feng.hao at newcastle.ac.uk<mailto:feng.hao at newcastle.ac.uk>> wrote:
* PAKE for the web has been attempted in TLS (RFC 5054) with little interest from browsers or sites. Partly this is a layering problem (username in clear, too early in the connection, and the TLS terminator is the wrong place for client auth). But there are deeper UI problems: browsers would have to display an unspoofable dialog; users would have to be trained to enter certain passwords only into this dialog; and sites would lose control of login UI. Client auth for the web seems likely to evolve in other directions (e.g. password managers, 2-factor, federation).
The web UI is indeed a major issue. It should be possible for the web browser to add a trusted UI for entering passwords (e.g., possibly in the address bar next to the web address where you click to find out the certificate details). But still, the question is how to educate ordinary users to *only* use this trusted interface for password entry. If a phishing website displays a password field in the web page and asks users to enter the password, then the PAKE mechanism is entirely bypassed and becomes useless.
* SSH already has J-PAKE which (I think?) is rarely used, though I'm not sure why. If part of the reason is performance, is there room for improvement here?
I don't think performance is any issue. I guess the main concern may be that J-PAKE has not been formally standardized. I submitted an initial proposal (http://homepages.cs.ncl.ac.uk/feng.hao/files/RationaleForJPAKE.pdf) to the UK standards committee meeting last month in Feb, and it passed the preliminary review; next month, I'm going to present J-PAKE, as the UK input, to ISO/IEC at the international SC27 meeting (http://www.sc27.hk/). I had hoped to get J-PAKE published as an RFC in IETF, but it was slow and it is still not clear to me how the IETF process works.
* IEEE 802.11s I think has standardized on "Simultaneous Authentication of Equals" (aka Dragonfly) as an EC PAKE. I don't know if it's seen real deployment, nor do I understand the "mesh networking" scenario it's being used for, which seems different from just authenticating a client to an AP. Anyone know more?
I don't think the EC version of Dragonfly is fully specified. It is derived from SPEKE, and has the same issues as SPEKE when it comes to both DL and EC implementations (the file in the above link gives a bit more details).
* There are smaller, more specialized uses of PAKE for protocols like online backups or device pairing. E.g. I think Chrome is (using? investigating?) SPAKE2 for "chromoting", whatever that is.
Do you know if there is any sample source code of SPAKE2 somewhere that people can view? I am curious to learn how the two generators are actually implemented.
Anyways, it's not clear that there are strong-enough use cases to motivate a good discussion and keep it on track. Though I wish there were! PAKEs are cool, it seems like they should be useful somewhere.
I believe there are useful use cases in certain applications. Currently, I'm supervising an undergraduate student project. The student is developing a secure messaging app for Android. The app establishes a secure E2E communication channel with another Android phone user via a google cloud after both users enter the same short code at two phones. The encryption is end-to-end, so no third parties, including Google, ISP etc, are able to eavesdrop. The app is based on J-PAKE (using the existing boucycastle implementation). We plan to release the app for free when the project is done, possibly, in the next 2-3 months.
Curves mailing list
Curves at moderncrypto.org<mailto:Curves at moderncrypto.org>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Curves