6 ms·
Secure Remote Password protocol
- alfalfasprout 9y agoThis sounds like ephemeral diffie hellman. Is that still protected by patents? I wouldn't think so seeing we've had robust implementations in openssl for a long time now.
- tptacek 9y agoIt's not ephemeral Diffie-Hellman.
- DorothySim 9y agoAccording to this [0] they are related ("SRP is related to Diffie-Hellman."). [0]: http://web.archive.org/web/20130407190430/http://chargen.matasano.com/chargen/2007/9/7/enough-with-the-rainbow-tables-what-you-need-to-know-about-s.html http://web.archive.org/web/20130407190430/http://chargen.mat...
- tptacek 9y agoThey're related in that the derivation of session secrets is done through a simple modular exponentiation. Pretty much nothing else, from the generation of keypairs to the selection of groups to work in to the way parameters have to be checked, are the same.
- dfc 9y ago> The Secure Remote Password protocol (SRP) is an augmented password-authenticated key agreement (PAKE) protocol, specifically designed to work around existing patents.[1]
- tprynn 9y agoWhile this is interesting historical reading, SRP is badly outdated and should not be used for any newly built systems. It has a lot of non-obvious failure modes around parameter handling and offline password cracking that have broken the authentication mechanism in every implementation I've seen in the real world (new implementations, not when using large packages such as OpenSSL). Furthermore, PAKEs are of relatively limited utility; in almost every situation you could use a PAKE, there is a better, more battle-tested alternative. You will be much less likely to have complete authentication bypass in your system if you use mutual TLS rather than a PAKE. If you have to use a PAKE, use a reviewed implementation of SPAKE2. Oh wait, there aren't any. Don't use a PAKE.
- motive 9y agoI thought I remembered 1Password using SRP (https://blog.agilebits.com/2015/11/11/how-1password-for-teams-protects-your-secrets/ https://blog.agilebits.com/2015/11/11/how-1password-for-team...). I admittedly don't know enough about the underlying cryptography to have an educated opinion, but it seems like they put some due diligence into determining it still provided value.
- tprynn 9y ago1Password uses TLS, and SRP inside TLS. If TLS is broken as in Cloudbleed, SRP hopefully still protects the channel - at least against non-active attacks such as Cloudbleed. The security still ultimately relies on TLS. Having not read the document fully, I think those would be against initial registration or in an active MITM allowing password-guessing. I'm looking at page 52 of https://1password.com/teams/white-paper/1Password%20for%20Teams%20White%20Paper.pdf https://1password.com/teams/white-paper/1Password%20for%20Te....
- tptacek 9y agoA nit: even compared to some recent designs, SRP is pretty thoughtful about offline password cracking. It's not as expensive to crack as a real password hash, but far more expensive than other PAKEs.
- tprynn 9y agoI haven't read enough about the other PAKEs to know what offline attacks look like there, but the fact that they are endemic to PAKEs is a total footgun. For example, one implementation of SRP I looked at used 8-digit codes (e.g. 12345678) to connect new devices to a network. Eight digits was enough to prevent brute-forcing by repeatedly sending codes to the server, but not enough to prevent an attacker from MITMing the connection and brute-forcing the code offline, because the server was using a bad RNG.
- tptacek 9y agoWait, what's the brute-force attack you're contemplating here? I'm thinking of the attack where you've compromised the servers and stolen the verifiers.
- throwaway2016a 9y agoThe part I found interesting was "specifically designed to work around existing patents"
- cvwright 9y agoSpecifically, Bellovin & Merritt's Encrypted Key Exchange (EKE). https://en.wikipedia.org/wiki/Encrypted_key_exchange https://en.wikipedia.org/wiki/Encrypted_key_exchange The patent is expired now though.