-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
When forced to change your password... #40
Comments
Good question... I just ran in to this EXACT thing with Ebay. I was planning on just using a new master password for Ebay. But maybe there is a better way? |
I think I addressed this in the FAQ, but there's no best way. What I do is add a counter to my master password. So if my master password is "cornflakes" and I have to reset my password, I use a master password of "cornflakes1". If I have to change it again then I use "cornflakes2", etc.
|
We could make supergenpass generate 10 passwords (say).. and it tries the first as it does now... but clicking the second would populate the password fields with the second... etc. then without remembering, you can easily try them in order. A more complex approach would be to be able to 'retire' a password.. which would log the obsolete password with a central server. Then the bookmarklet could generate a password, and where the generated one is in the list, it generates a second automatically. Sharing these expired passwords wouldn't be a security hole as you could do it anonymously. It may break the portability of SGP a bit though or cause cross-domain javascript issues. |
@NigelThorne eventually you will run out of passwords. But maybe the trick would be to combine your idea with @chriszarate's, by adding a "try next variation" button which would automatically add a "1", to "cornflakes" (and then a "2", etc) @scottchiefbaker I use different master passwords on each site. Otherwise all it takes for you to compromise the master password once to compromise them all. They can all be variations on a theme, with some extra info that comes from the domain. Plus I use the versioning trick chris uses. |
In my fork, I've solved this with two additions, one of which might need some more thought. First, I added a counter field which gets appended to the secret key at time of password generation. This is fine, but how to remember which sites are at which count? To solve that problem rather than storing just the last-used settings to the browser's localStorage, I index the settings by site at which a password is generated. The thing that makes me uncomfortable is that if an attacker is able to get at the browser's localStorage, the data stored there is much more valuable, e.g. a list of financial institutions where SGP is used. The only way to secure that data would be to use the master password to perform a one-way hash of the url. But that creates a totally different workflow than current SGP users would be used to. On the other hand, if you're willing to "trust" the localStorage, then the solution works fine. |
Couldn't you salt the the domain the password was generated for, and use that in localstorage? |
Yes, but of course in order to compare the hash without user intervention, the salt would have to be stored in the app. So, we will have obfuscated the url, but I think that would provide more of an illusion of protection rather than actual protection. I mean, anyone going in to examine the localStorage for SGP settings is already beyond normal browser-history snooping. |
@cmcnulty, what's wrong with hasing the domain with the master password, as you yourself suggested? Also, if an attacker has access to the localStorage of any domain, they generally already have full control of the computer and all is lost. |
The problem with hashing the master password with the domain (besides working out the work-flow issues), is that then your master-password can be brute-forced with the hashed domain values. But, like you said, if an attacker has cross-domain access to localStorage, it can probably be assumed that it's game-over for securing anything on that browser. With that in mind, I didn't bother to hash/encrypt the domain values stored in localStorage at all. I added a new field (counter) which gets appended to the master password at time of generation, and then that counters value is saved with the domain to the localStorage for future retrieval from the same browser. |
I don't think I saw anyone mention the "secret password" field in this thread. It just adds more seed to the original hash string (masterpassword + mastersecret + ':' + domain) and is very well suited for this purpose. Might I suggest a workflow like this: Master Password Secret Password This field is also, I would suggest, where one would add "counters". The way that data breaches and hacks go, it's very piecemeal. Certain segments of websites get hacked but not others, so perhaps only one of your accounts needs changing etc. So this way, you can keep your master password intact for a very long time and just add the counter to the secret password field so that you don't have to try to remember multiple master passwords, which to me, defeats the entire purpose of using such a tool. Keeping the master password secure however requires that there always be something in the secret password field; so whatever passwords get generated out there in the wild always have 2 variable inputs. I have a holding password that I use in this field for situations where I don't have account/user specific information. when sh hits the fan**
|
I highly recommend that counter method. It's KISS. I write my passwords down in a plaintext file with their counters and any other tweaks like this:
Of course, I don't write down how h() is defined: that's includes which password hasher I'm using plus my master password and is only in my head. I think this is the optimal balance between difficulty (so it's secure) and usability (so I actually want to use the security). |
I personally use the general supergenpass, if that does not work, I either open up a KeePassX, or use recover-password-over-email functionality. With "remember me" working everywhere I don't need to do that often. Between all mentioned approaches in this topic, I think we can close the issue. |
...what's the recommended workflow when forced to change my password, when I was already using SGP, and a site asks me to generate a new one. I don't want to end up having to remember a different master password for each site as this would invalidate the advantage of SGP.
Thanks
Nigel Thorne
(ps.. I love SGP)
The text was updated successfully, but these errors were encountered: