Skip to content

SGP should use much higher iteration countΒ #82

@nealmcb

Description

@nealmcb

I'm alarmed to see this at https://github.com/chriszarate/supergenpass/wiki/FAQ

SuperGenPass uses a one-way hash algorithm (base-64 MD5) to generate passwords. Specifically, it concatenates the master password and the domain name of the Web site (masterpassword:domain.com), hashes the result at least ten times (and until it satisfies the generated password requirements), and cuts the result to the desired length.

It is well known that one of the most important attributes of a hash function for passwords is that it be slow. Yes - it must be slow so that brute-forcing the password is hard. See e.g. How to securely hash passwords?

So the fact that you use a very fast hashing primitive (MD5) and may only iterate 10 times makes our passphrases and secrets much more vulnerable. Best practice these days seems to be an iteration count of more than 10000. I don't know what the performance in a browser would be, but it should certainly be higher, and perhaps be configurable (which would provide yet another way to increase the difficulty).

Of course using MD5 is also bad because it has been badly broken and is deprecated. I guess you provide SHA512 as an alternative which is much better. You should recommend that to folks and explain how to use it, and explain that over time as cracking speeds increase, people will want yet more iterations.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions