Earlier quoted context omitted.
Correct, there is no salt. A dictionary attack will uncover common passwords. It's crucial to pick a strong secret key. That's the price you pay for using a stateless password manager. However, the gigazillion rounds are not for nothing. That is the defense against brute force attacks, which could otherwise crack passwords even if they are random.
[deleted]
Show HN: A simple “stateless” password manager for Chrome
41–50 of 54 posts
Re: Show HN: A simple “stateless” password manager for Chrome
#42Re: Show HN: A simple “stateless” password manager for Chrome
#43Re: Show HN: A simple “stateless” password manager for Chrome
#44Re: Show HN: A simple “stateless” password manager for Chrome
#45Earlier quoted context omitted.
[deleted]
Wouldn't you then need to sync the randomly generated salt across browsers? That doesn't seem so stateless anymore.
Examples:
syntax: gassy salt base [password length || 16]
gassy spoiler news.ycombinator
gassy email@personal.me home_email
gassy name@ work.com 32
in the next step you're prompted for a password (with echo off). Also, it calculates a token based on the salt which determines in which way the password will be generated.I know it's not ideal, but it served me well so far! :-)
Re: Show HN: A simple “stateless” password manager for Chrome
#46Re: Show HN: A simple “stateless” password manager for Chrome
#47The #1 benefit of a purely stateless password manager is that there is no password database, so your password database cannot be compromised.
The drawback, as others have mentioned, is that it's difficult to use strong salts without keeping some sort of database. Changing passwords also becomes a big hassle.
But what about a compromise? Keep a database, but only store the salts in the database. Generate the passwords on the fly using the master password and the domain-specific salt. Now you can have your cake and eat it too! If anyone steals your database, all they have is a bunch of salts. You probably won't even have to keep it encrypted.
Keeping a database will also let you add some of the following features, which I consider essential to any modern password manager:
- Remember the username for each website. Some websites ask for my email address, others ask for a simple handle, and I shouldn't have to remember which is which.
- Manage more than one account for the same domain, each with a different username.
- Change the password for only one website, without changing the master password, and without having to use a silly suffix. Just change the salt for that website. (This is one reason why it's a bad idea to use the username as the salt. The salt should be random and easily changeable.)
- Remember password restrictions for each website. If your bank limits passwords to 12 characters, you can store this setting in the database and automatically truncate the hash to the desired length. If your school doesn't allow special characters in the password, also remember this setting and skip non-alphanumeric characters from the auto-generated hash.
Until now, most of the features I listed above have only been possible with password databases. But if you think about it, there's no reason not to go the hybrid route.
Re: Show HN: A simple “stateless” password manager for Chrome
#48It needs to be improved to be secure - salt. To avoid rainbow table attacks. One could use the login/email as salt - key strengthening function. Instead of repeating naively SHA-256 a few times, use PBDKF2 or even better, something which is also memory hard like scrypt. Finally. What happens when the password requires to have upper case, symbols, x number of digits, min or max number of characters... If you think abo…
>Finally. What happens when the password requires to have upper case, symbols, x number of digits, min or max number of characters... If you think about it, some websites have conflicting requirements. It would be great if there was a site ran by a widely-trusted body (EFF for example) that tracks the various password requirements and limitations of websites. That way password managers, such as this one, can query th…
Re: Show HN: A simple “stateless” password manager for Chrome
#49Earlier quoted context omitted.
Just took a look at the SGP FAQ and saw this: > 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. Yikes! MD5 is known to be broken, a…
No, SHA-256, the way you use it, is not "far too slow for brute-force". To anyone reading here: Please do yourselves a favor and stay away from BOTH SuperGenPass and from this one. They are nearly equivalent to using the same password for every website. A malicious website owner can derive your "master password" from the hash that you gave them and thereby gain access to all your websites.
That's an extraordinary claim. (I'm not gonna argue too strenuously about MD5 being somewhat dangerous in this context, as it is very easy to find collisions...slightly harder to find the exact passphrase, particularly if it is a very long/strong passphrase. A collision in this context is not enough to break the usage.)
Re: Show HN: A simple “stateless” password manager for Chrome
#50Earlier quoted context omitted.
No, SHA-256, the way you use it, is not "far too slow for brute-force". To anyone reading here: Please do yourselves a favor and stay away from BOTH SuperGenPass and from this one. They are nearly equivalent to using the same password for every website. A malicious website owner can derive your "master password" from the hash that you gave them and thereby gain access to all your websites.
It sounds like you're asserting that Bitcoin is not secure because it uses SHA-256. i.e. a pass phrase that has been hashed with SHA-256 could be brute forced to find the master passphrase, thus, a Bitcoin private key could be compromised by a brute force attack. That's an extraordinary claim. (I'm not gonna argue too strenuously about MD5 being somewhat dangerous in this context, as it is very easy to find collision…
Don't put words in my mouth, I never suggested anything like that.
In Bitcoin the private key is derived from the public key which is normally randomly generated and not provided by the user.
The browser 'password manglers' mentioned here instead derive it directly from the password provided by the user. That is a big difference.
Most users don't choose a password of sufficient strength since they are limited to printable characters and especially when they are required to type it in all the time.
This is why key stretching functions such as PKDF2 and Scrypt were invented. To make relatively bad passwords (which users are prone to choose) harder to crack.
Screwing this particular step up in a tool that wants to be a password manager (of all things) strongly indicates that the creator has no remote clue what he is doing and that everyone should stay far away from his software.