News for hackers. Stuff that matters.
Re:CBCrypt: Encrypt from the client rather than send passwor... by hinkley on Tuesday October 06, 2015 @12:59PM (#10340330)
It's not the same. The main point of asymmetric ciphers is that it's a very good way to prove I know something without ever revealing the thing I know.

Instead of sending the public key every time, the server sends a challenge, which only the private key holder can answer. This is a pretty basic usage of keypairs and an extremely brief perusal of their source code suggests to me they've thought of it.

So no, the public key is not the password, unlike hash based systems which do suffer from the problem you're concerned about. The hash IS in fact now your password in those systems.

Re:CBCrypt: Encrypt from the client rather than send passwor... by dchest on Tuesday October 06, 2015 @02:48PM (#10341360)
Yes, there's a challenge/response scheme (like in SRP), so the communication part is slightly improved, but what I'm talking about is that the server stores public key, and this public key is deterministically derived from password, thus stealing the database of public keys from the server is equal to stealing the database of password hashes (like in SRP).
Re:CBCrypt: Encrypt from the client rather than send passwor... by hinkley on Wednesday October 07, 2015 @03:20AM (#10344654)
I haven't read their code or critiques of it, so I can't say if that's the case for this algorithm.

But for this class of algorithms, that doesn't have to be the case. Starting with a cryptographic hash could keep the key from being reversed to the input. There are probably other things that could help as well, like maybe not using the password in the public key at all.

Re:CBCrypt: Encrypt from the client rather than send passwor... by tptacek on Wednesday October 07, 2015 @10:16AM (#10346124)
How exactly does "starting with a cryptographic hash" solve this problem?

Remember, the attack is: start with "aardvark", run the deterministic key-generation process, hash, scrypt, elliptic curve and all, and check to see if you get the same result. If you don't, move on to "apple", then "ataxia" and so on.

The attacker has every piece of information in the system except the password string, which they can substitute with a dictionary.

Re:CBCrypt: Encrypt from the client rather than send passwor... by sarciszewski on Wednesday October 07, 2015 @01:01PM (#10347225)
I haven't had a chance to look at the code yet, but riddle me this: Are they eschewing salts entirely?
Re:CBCrypt: Encrypt from the client rather than send passwor... by tptacek on Wednesday October 07, 2015 @01:05PM (#10347255)
Yes. The same [password,name,host] tuple should produce the same keypair.
Re:CBCrypt: Encrypt from the client rather than send passwor... by zaroth on Wednesday October 07, 2015 @09:46AM (#10345943)
It's not a question of reversing the hash, it's a question of what is the 'password validator' and what are the inputs to the algorithm which get you from 'candidate password' to 'compare result to the password validator and return true or false'.
Re:CBCrypt: Encrypt from the client rather than send passwor... by tptacek on Tuesday October 06, 2015 @02:48PM (#10341356)
Can you explain in more detail why you believe the public key "isn't the password" the way it is in a "hash based system"? I don't think this is true, but I'm not totally clear on what you're arguing.
Re:CBCrypt: Encrypt from the client rather than send passwor... by hinkley on Wednesday October 07, 2015 @03:11AM (#10344626)
Hey I got pulled away from this conversation and didn't continue.

In most systems where the server never sees your password, they store a hash that is generated from the password.

Then the login code on the client takes the password, performs the same operation and then sends either that same hash to the server, or one that's simple to calculate from it.

So if I steal your password file, I can log in as everybody without even knowing what their passwords are. I just change the code in the client to skip the hash generation part of the authentication algorithm and use the one I supply.

The idea with asymmetric ciphers (at least the ones that interest us) is that one party HAS to know the secret, and the other has no way to get it.

Re:CBCrypt: Encrypt from the client rather than send passwor... by tptacek on Wednesday October 07, 2015 @10:18AM (#10346146)
I'm even more confused now.

I think you're saying that this system is better because, since it uses public key pairs, an attacker who steals the password file doesn't know enough to log in as a different user.

Leaving aside that an attacker who steals your password file has probably mooted login security altogether, the attacker in this system seems to have exactly the same leverage as an attacker who steals a password file full of scrypt hashes.