I recently looked into password managers myself after the MtGox leak. I tried 1Password and LastPass. While both do what they say--I found them cumbersome to use.
I settled on a scheme like this:
E-mail: Very strong, completely unique. 2-factor auth. If you have my e-mail, it's game over.
Bank: Very strong, completely unique.
The rest of the passwords I've broken down into tiers. I've memorized a password for each tier combined with a hashing algorithm stored in my head.
The theory here being if an entire tier gets compromised (someone figures out my hashing scheme), at the very worst I lose the entire tier.
This does keep me safe from automated attacks, but not if someone singled me out individually. Which in that case, I've got other problems.
This isn't perfect, but it gives me a couple of things I really value:
- Keep all passwords in my head
- Unique passwords on each site
- Tiered passwords so if someone figures out my hashing scheme, they only get that tier
I like the idea of password managers, but in practice they were too much hassle for me.
The MtGox breach inspired me to switch to LastPass. I used to do what you did, and MtGox was part of my "medium security" tier.
Now, I've decided that there is no real effective solution other than randomly generated passwords unique to each site.
I also turned on 2-factor auth for Gmail a couple months ago - their SMS system is really effective.
I do have to credit Google for being extremely awesome when it comes to security... They noticed a few "your password has been changed" emails incoming to my inbox yesterday and immediately put a security flag on my account, requiring me to re-auth with 2-factor and change my password. Google is really proactive when it comes to security. The fact that they can recognize a high number of password change emails arriving as an indicator of possibly account hijacking is just amazing.
I think LastPass is probably as good of a solution as any. They only store your encrypted password database in the cloud. With a strong enough master password and optional 2-factor authentication with Yubikey, it seems quite secure.
My reason for not using LastPass is because it is proprietary. In fact, there has been an XSS attack on them in the past which was somewhat successful. I use KeePassX because it allows me to avoid laying trust on any proprietary entity. At present if LastPass were to have another security flaw (and hey, security flaws on web-facing servers are all too common) you'd be out of luck. With KeePassX security is local. The worst case for me is someone stealing my database and trying to bruteforce the password (hah, like that'll happen). This requires them to have physical access to my computer. Anyone can take a guess at your password because it's a web based service.
KeePassX is still vulnerable to a keylogger on your local machine.
LastPass with 2-factor auth should be more secure than KeePassX, however, your point about it being proprietary is well taken.
I also think LastPass has a very good reputation for full disclosure - when the salted hashes of master passwords were compromised in 2010 it was very refreshing to see the CEO come forward and give immediate full disclosure to the public about the implications, and why you should change your master password.
I also find it refreshing that if you have a strong master password, even someone compromising their entire database should not give you reason to worry - it would be similar to someone getting a copy of your KeePassX database - it's still encrypted with high-grade encryption.
All my services have gotten 50 char (nice entropy) random passwords, and for ease of use I store them in the browser with an equally difficult master password.
My Fx settings involve flushing all cache and sessions on closing.
Apparently when setting the Fx master password, the local database appears to be using 3DES encryption in CBC mode[0] (nice and slow) which is insanely secure with long and keys. The only password I have to remember is the KeePass database, which in turn is as complicated as I can remember. The when booting up firefox, just paste the master password.
Funny enough, the SpiderOak distribution password is saved in the KeePass db, giving me a sort of chicken-or-egg problem when setting up, I'm toying with the idea of distributing the database publicly, which should be secure enough.
This means that the only password that is stored in my head is for the KeePass db, but I'm planning on replacing it with a key file (perhaps on USB), once I've figured out a usable scheme for it.
I'm just dying for the day when web services can be integrated into a proper keychain, that would spell an end to this bull.
I haven't heard of SpiderOak before, but from their site, it sounds like you create the equivalent of a private key on each device you use, so that your data is encrypted on the machine itself and never visible/readable by the SpiderOak servers (roughly). Is this correct?
I gave SpiderOak a shot but had to give up quickly because their OSX client was an unmitigated disaster.
It may be possible to ignore the horrible UI once it's set up, but I couldn't ignore that it randomly decided to stop syncing individual files or entire folders.
On the second day I even set it up from scratch again, as I figured I might have done something wrong the first time. But on day 3 my laptop and desktop were desynced again, so I went back to unison...
http://www.spideroak.com is nice but unfortunately they started to implement some file sharing features so they stopped offering true client-side encryption as well. At least they are way more secure than DropBox. Another one: https://secure.cloudsafe.com/
> I like the idea of password managers, but in practice they were too much hassle for me.
Too much hassle in putting data in, getting it out, or both?
I used to feel that way, but I just ended up getting lazy too often and repeating passwords, so I started seriously using a simple one on iOS (that I helped make, so I had some encouragement). I never use autofill (it annoys the ever long crap out of me) and browser integration features and don't really want to, as I don't mind having to sign in occasionally (I prefer it).
I force myself to take the time to turn it on and create a new entry when i am creating a new web login (e.g. online bill pay for some utility) and I'm tempted to use a throw-away password. Or, when i realize i've got a throw-away password i've been using on multiple sites and it's time to set a new one. This makes data entry easy, it's kind of like lazy loading IRL ;-) People make a big fuss about having lots of add-on features for such apps, but in the end I think all one really needs is a good habit and a strong data store.
Our app uses an open source encryption engine we developed called SQLCipher, it's page-level encryption for SQLite plus some key hardening and hmac protection on the pages. You can check it out here (and maybe use it to build your own?) http://sqlcipher.net
I developed my own password manager. It is browser based javascript and html with Amazon S3 for storage. I embed it in my home page, so for every device/computer I have it is accessable. If I don't like something I can tweak the code:
Both LastPass and 1Password failed to save some generated passwords for me, causing too many trips to forgot password.
LastPass would sometimes post to the wrong login form.
1Password got confused a couple of times between 'Logins' and 'Accounts'.
With 1Password, when I'm away from my computer, I have to use my phone to read my passwords. If my phone dies (fairly common) I have to install the password manager (not always possible).
With LastPass I can access their web interface--but experienced too many of the issues above. Plus I am a little nervous about a 3rd party having that much power.
I'm sure all of this was my fault, but the end result was I discovered many hidden costs and it felt like I was fighting against them.
Do you store your 1Password keychain in Dropbox? If so, check out the html file they put there. It's 1PasswordAnywhere, which is basically a web interface to 1Password. You would still need to remember your Dropbox login, and of course your master password that encrypts all the 1Password data.
I guess you could put it in the Dropbox Public folder. I wouldn't be totally comfortable doing this, but all the 1Password data is encrypted so it should be safe.
The problem with that is once someone DOES get your 1Password database, they can crack it at their leisure. Now sure the encryption is strong, and sure it will take a long, long time, but once the attacker has your 1Password database they only have to keylog your master password once and you're SOL. If you keylog my LastPass account you still need my grid (soon to be SMS 2 factor auth when LastPass implements it).
Yes, 1Password is especially bad at not saving generated passwords to the specific account you are trying to update. However, by changing your settings, you can get a history of all generated passwords, sorted by website. It's a pain, but you can grab that password from the history, and update the login record for the website in question.
Curious why you think LastPass is too hard for the average user. It integrates with the browser and autofills stuff. Where is the point of difficulty and how can it get easier than that?
1Password has saved me so much time. It has a nice search feature that allows you to just start typing the domain (or name) of the password you saved and then click it, and it will auto-fill and login.
I am a freelancer and I maintain about 50+ sites (most of those are cpanel logins). I don't know what I would do without a password manager.
I used keepass for awhile too, but it's too buggy and just doesn't work as well.
Don't all browsers have password managers built in? I've been using Firefox's and it seems to work pretty well. As far as I can tell it's stored encrypted on the disk (and my sync server) so I'm not sure why a external password manager is better... I'm happy to be enlightened.
Just for example: Let's say I want to log into google's jabber service with a non-web client (pidgin or something). If I used firefox's built in password storage I could not easily log in. This applies to passwords that are not web based. In addition, firefox's security is not very strong. By default they are stored unencrypyed (Security -> Saved Passwords -> Show passwords ... That button wouldn't be there if they weren't unencrypted).
The reason I don't use LastPass is because it is proprietary. I use KeePassX over firefox because it has better security, can store associated details (Comments field which I can put, for example, what my secret was (I randomly generate those too) and so on), and can easily be used for passwords that are not for only web based stuff.
The most important detail would be the fact that passwords saved in browsers are only useful in the browser, not for apps etc.
As another random example, firefox couldn't save, say, the passwords of sites I ssh into or the irc keys I need to authenticate myself on various irc servers.
> By default they are stored unencrypyed (Security -> Saved Passwords -> Show passwords ... That button wouldn't be there if they weren't unencrypted).
Once you set up a master password then firefox encrypts them in the password database. That button is still there, but using it requires the master password before actually it shows you the stored encrypted password.
The problem with your solution is that when you need to change all your password in 6 months, it's kind of a pain in the ass. A password manager with very strong passwords for everything is the way to go.
I've been using Password Safe for quite some time, it is fairly minimalist, very easy to use.
I love 1Password, but really wish they supported syncing over iDisk (apple) or ideally over a user-specified WebDAV directory. I use dropbox for sharing public files only; my password db, even with a strong passphrase, is one of the things I least want to share.
The wifi sync thing works ok, though.
It would almost be worth writing a utility to manage 1Password syncing external from 1Password.
The real solution to all of this is some kind of active agent running on each frontend which can make zero-knowledge proofs to third parties about credentials, vs. passwords, but I don't have a lot of faith the web will move to a sane authentication infrastructure anytime soon.
I use 1Password on Dropbox, but is there any particular reason you can't use it with iDisk? 1Password's db "file" is really a directory and is designed to use a ton of small files for easy file-level syncing, and it notices any externally-motivated changes to the files or directory and reads the changes live. Seems like this should work just as well with iDisk as it does with Dropbox.
Mobile client (on IOS, Android). It's trivial to do this on real computers with OS access, but for me, there is a LOT of value to using 1Pass on my phone too.
What would utterly fucking rock is NFC/RFID credentials managed through 1Password too; with a dongle on my desktop, and maybe in my phone, or even a dedicated hw device.
Maybe also manage smartcard/crypto credentials (processed in HW, but this could be the admin UI to shuffle them around).
The other wishlist I have is Linux support (I'm a Linux desktop dev/sysadmin workstation holdout, with macs for mobile and office automation).
Jasber - I'm doing pretty much everything you describe (random base password plus "salt" algorithmically derived from the URL, resulting in unique password per site, plus extra salt for email and banking, paypal etc.
However, where we differ is I then have those stored in LastPass, so I have log-in convenience, plus the ability to log in even without the password manager.
The problem with tiered passwords is that if someone leaks a tier one password they get your tier one. It doesn't matter how important it is to you, if they mess up and lead your information its out there, nothing you can do about it.
This thread just encouraged me to enable 2 factor auth everywhere I could (aws, google, google apps, openid) etc.
I recently looked into password managers myself after the MtGox leak. I tried 1Password and LastPass. While both do what they say--I found them cumbersome to use.
I settled on a scheme like this:
E-mail: Very strong, completely unique. 2-factor auth. If you have my e-mail, it's game over.
Bank: Very strong, completely unique.
The rest of the passwords I've broken down into tiers. I've memorized a password for each tier combined with a hashing algorithm stored in my head.
The theory here being if an entire tier gets compromised (someone figures out my hashing scheme), at the very worst I lose the entire tier.
This does keep me safe from automated attacks, but not if someone singled me out individually. Which in that case, I've got other problems.
This isn't perfect, but it gives me a couple of things I really value:
- Keep all passwords in my head
- Unique passwords on each site
- Tiered passwords so if someone figures out my hashing scheme, they only get that tier
I like the idea of password managers, but in practice they were too much hassle for me.