News for hackers. Stuff that matters.
Re:CBCrypt: Encrypt from the client rather than send passwor... by creshal on Tuesday October 06, 2015 @11:48AM (#10339676)
Whatever happened to challenge-response schemes in the vein of CRAM-MD5?
Re:CBCrypt: Encrypt from the client rather than send passwor... by xnyhps on Tuesday October 06, 2015 @01:39PM (#10340744)
The state of the art for SASL is SCRAM-SHA-1. It uses challenge/response authentication and it allows the server and the client to only store salted hashes (using PBKDF2 with a configurable number of rounds). It also uses mutual authentication (the server also proves to the client that it has the hashed password, not just the other way around).

No idea how that compares to TFA, because they have no documentation.

Re:CBCrypt: Encrypt from the client rather than send passwor... by ybx on Tuesday October 06, 2015 @11:58AM (#10339796)
Yeah, there are plenty of authentication systems out there for this kind of thing, and preferably something like SRP would be used.
Re:CBCrypt: Encrypt from the client rather than send passwor... by cvwright on Tuesday October 06, 2015 @12:45PM (#10340198)
And before SRP there was EKE. I thought the main reason it never saw wider use was because it was patented. Although according to Wikipedia, those patents expired in 2011 and 2013.
Re:CBCrypt: Encrypt from the client rather than send passwor... by yaur on Tuesday October 06, 2015 @12:04PM (#10339861)
Challenge response schemes generally require the server to have the password in a recoverable format so that both sides can generate identical hashes. IMO the current state of things is better than it would be with 1000s of random websites with DBs full of clear-text passwords.
Re:CBCrypt: Encrypt from the client rather than send passwor... by briHass on Tuesday October 06, 2015 @01:50PM (#10340842)
Nah. Hashes of hashes works just fine, and allows the actual password value to never be stored plaintext. A simple example:

Stored on server: x = SHA256("mypassword")

Server challenge to client: send a secure random nonce

Client sends: c = HMACSHA256(nonce, SHA256("mypassword"))

Server verifies: c == HMACSHA256(nonce, x)

In some implementations, the server challenge and 'c' are encrypted using 'x' or some derivation that both sides can create. In addition, salts can remove the sensitivity of the stored 'x' values (https://en.wikipedia.org/wiki/Salted_Challenge_Response_Auth...)

Re:CBCrypt: Encrypt from the client rather than send passwor... by k3d3 on Tuesday October 06, 2015 @07:10PM (#10343077)
The problem with hashes of hashes is now instead of the password being directly grabbed, the hash is directly grabbed, which can be thrown through the challenge-response system with no problem.

This only mitigates knowing the password itself, not anything to do with authentication.

Re:CBCrypt: Encrypt from the client rather than send passwor... by creshal on Wednesday October 07, 2015 @04:57AM (#10344905)
> The problem with hashes of hashes is now instead of the password being directly grabbed, the hash is directly grabbed, which can be thrown through the challenge-response system with no problem.

But now you have to grab the hash first from one of the endpoints, MITMing the connection no longer suffices to impersonate the user.

I suppose public key schemes would be preferable, but deploying those isn't feasible for a lot of use cases.

Re:CBCrypt: Encrypt from the client rather than send passwor... by creshal on Tuesday October 06, 2015 @12:06PM (#10339876)
> Challenge response schemes generally require the server to have the password in a recoverable format so that both sides can generate identical hashes.

Do they? Doesn't the server just need to share the salt and algorithm parameters it stores anyway?

Re:CBCrypt: Encrypt from the client rather than send passwor... by jcranmer on Tuesday October 06, 2015 @12:39PM (#10340150)
The server can store the salt and parameters, although it gets really hairy if you decide that MD5 is too weak and now you want to upgrade to SHA-1 or SHA-256.
Re:CBCrypt: Encrypt from the client rather than send passwor... by dorfsmay on Tuesday October 06, 2015 @11:56AM (#10339773)
Good question. This would be even better.