On Jul 30, 2009, at 9:16 PM, Bottiger wrote:

>
> As long as the salt is different for every password, it pretty much
> makes it infeasible for someone to create a large enough rainbow hash
> table attack.

Different but predictable.

> hash = md5(password+password[-1])

is easy to make a rainbow table from, the it's same size as the  
original password table.

Now, you might argue that web2py isn't a big enough target to bother  
with. But that's a fairly weak argument, seems to me.

>
> The Unix salt of 12 random bytes is ok, but comes at the cost of extra
> storage and pretty much the same benefit. To put a larger barrier on
> computational speed, you could double or triple the original password
> before putting it through the hash.
>
> On Jul 30, 8:38 pm, Jonathan Lundell <jlund...@pobox.com> wrote:
>> On Jul 30, 2009, at 8:30 PM, Bottiger wrote:
>>
>>
>>
>>> I know you have the mantra of not breaking backwards compatibility,
>>> but it is a pretty bad idea to have unsalted MD5 passwords.
>>
>>> For example, let's say your password is "massimo". The MD5 hash of
>>> that happens to be "8cac5ac44b51f182143a43c4cdb6c4ac".
>>
>>> Even forgetting rainbow tables, you can simply do a search for it on
>>> Google and you have 10+ pages telling you that it is the hash for
>>> "massimo".
>>
>> How about a new validator that does the right thing, and deprecating
>> CRYPT?
>>
>> I'd prefer some less-predictable salt than the suggestion below,
>> though. How about the old Unix passwd trick of choosing a some random
>> salt, and appending the salt in plaintext to the hash?
>>
>>
>>
>>> http://www.google.com/search?q=8cac5ac44b51f182143a43c4cdb6c4ac
>>
>>> On Jul 30, 8:10 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
>>>> We cannot break backward compatibility. People should specify a key
>>>> and use the HMAC+SHA512 anyway.
>>
>>>> Massimo
>>
>>>> On Jul 30, 9:49 pm, Bottiger <bottig...@gmail.com> wrote:
>>
>>>>> The CRYPT validator is unsecure because it uses unsalted MD5.
>>
>>>>> There are public rainbow tables that have unsalted MD5 passwords
>>>>> of up
>>>>> to 10 characters long including symbols.
>>
>>>>> I highly recommend that if no "key" is specified, that CRYPT will
>>>>> automatically salt the password based on a substring of the  
>>>>> password
>>>>> itself. For example:
>>
>>>>> password = "secretpass"
>>>>> hash = md5(password+password[-1])
>>
>>>>> This will of course break backward compatibility, but this is a  
>>>>> real
>>>>> security vulnerability.
> >



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to