Closed lahwran closed 1 year ago
I'm not going to close this as I want a conversion about this, but here are some things that would have to happen before someone would find your master password.
Also, if bcrypt and scrypt were used, the libraries would have to output a plain hex value. Furthermore, the program would have to generate a static salt to use, so every time you enter your stuff, it will generate the same value. Out of the box, bcrypt and scrypt generate a random salt every time you use the function, so the generate password would change on each use. They would be more useful for password managers that store your passwords.
It's almost as if @lahwran has not used PasswordMaker. To @miquelfire's point, there are many variables involved that are not part of classic collision and brute force attacks which make this a much more difficult problem for an attacker. Having said that, it would be nice to update PasswordMaker with some newer hashing algorithms. But I don't think we have any maintainers, do we?
@lahwran The algorithms in Passwordmaker do not use the hash of the password you type in directly, the hash is converted using the options you choose in a profile to alter the output password to conform with site password requirements and your own personal requirements. So hash tables or rainbow tables cannot work for Passwordmaker generated passwords. Which is why this situation you mentioned in your post is a misconception.
@ericjung Adding new algorithms will cause implementations of PasswordMaker to not be compatible with each other. Settings and exporting/importing would have to add conditional logic based on selected algorithms. I did add support for Blake2s,Blake2b and SHA-512 in my personal branch before but never shared it because of the incompatibility reason.
https://cryptobook.nakov.com/mac-and-key-derivation/hmac-and-key-derivation
https://cryptobook.nakov.com/mac-and-key-derivation/modern-key-derivation-functions
Implementing bcrypt or scrypt would require finding a sidechannel-free javascript library which is also fast enough to use, and would not be trivial. However, the first two items are UI changes, so should simply be done and published, to inform any users of the old algorithms of their vulnerability.