Or maybe, Paypal is using bcrypt. :-P
Yes, of course you need the user table in the DB, but if it is your argument
and you feel strong on how difficult is to access you DB, why don't you
store the passwords in clear in your DB?
I am not saying that it is easy to do, but in case it happen (see RockYou
story for example), the attacker can access any account on the system, and
probably more than that since a few user reuse the same password on multiple
websites.
Regarding "your bcrypt is just as vulnerable to a plain jane dictionary
attack as anything else." It is not mine, unfortunately. But actually the
speed necessary to calculate an hash IS a factor against brute forcing.
Because if it takes a microsecond or instead nearly one second to calculate
the hash make a huge difference. While ,according to the link I posted, it
takes 40 sec to crack a SHA1 hash of 6 letter password, it would take
40*1,000,000 sec to crack a bcrypt hash that is more than a year. In the
case posted in my previous message is 8min with SHA1 vs more than 12 years
with bcrypt.
Another interesting property of bcrypt is that given the same password the
hash generated is (practically) always different so you cannot
pre-calculate the hash values. Trying a dictionary attack checking hundred
of millions of terms is just unpractical too.
That is actually the point, if it takes 8 minutes or even a day, an attacker
may actually do that. If it takes year, he will probably desist and try to
get access of another system that use SHA1 like someone out there :-P
This thread is going longer than necessary. The point is: if somebody wants
to use SHA1 can freely do it. It would be nice that cake would not make the
assumption that the password is a traditional hash and insert the plug for
a verify_password function instead of the current password() function that
return an hash.
Best,
Chris
On Tue, Sep 13, 2011 at 4:46 PM, Greg Skerman <[email protected]> wrote:
>
>
> On Wed, Sep 14, 2011 at 8:33 AM, Chris Cinelli <
> [email protected]> wrote:
>
>>
>>
>> According to: http://research.microsoft.com/pubs/74164/www2007.pdf *~20%
>> of Fidelity, ~20% of NY Times, ~15% of Paypal* have a password with bit
>> strength of 30 or less. According to that study, this mean that If I know
>> the hash and salt, you need to try just 2^30 total combinations to find the
>> password of 45% of Paypal users. Using a ATI HD 5970 (that you can find at
>> $499 at Buy.com and http://www.golubev.com/hashgpu.htm you can try
>> 2,300,000 SHA1 hashes a second.
>>
>>
>>
> No you can't - you'd need 45% of PayPal User's usernames... And the db
> table of passwords to check against...neither of which is trivial to get.
>
> if it was this easy, everyone would have 45% of paypal user's passwords....
>
> --
> Our newest site for the community: CakePHP Video Tutorials
> http://tv.cakephp.org
> Check out the new CakePHP Questions site http://ask.cakephp.org and help
> others with their CakePHP related questions.
>
>
> To unsubscribe from this group, send email to
> [email protected] For more options, visit this group
> at http://groups.google.com/group/cake-php
>
--
Our newest site for the community: CakePHP Video Tutorials
http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others
with their CakePHP related questions.
To unsubscribe from this group, send email to
[email protected] For more options, visit this group at
http://groups.google.com/group/cake-php