1

I'm kind of tired of the password managers that are available around... I need one that's open source, that works on OSX, that lets me store .pem files and that I can trust.

As I haven't found one, I thought it could be an interesting project for me to work on. I'm going to use AngularJS just b/c it's a technology that I want to start using and this project seems like a good fit.

My idea would be to have a dumb backend that took care of the login / registration and CRUD operations of the passwords (with tags to make the search easier)... but all the encryption / decryption should be performed by the browser.

The only thing that I'm not quite sure is how safe the private key is on the browser... Can different plugins / addons access to it when I load it into OpenPGP? is the private key stored as is on memory when OpenPGP is using it?

I've seen there are quite some other plugins using this, but I'm not exactly sure how good this would be.

I guess I could just have a different profile, or a browser I don't use with this... how good of an idea is it?

3
  • @David the use cases of browser crypto that are in the matasano article are not consistent with a what a password manager does. I've read Thomas Ptacek (the author) saying ~"no matter which you choose, you should be using A password manager~" many times... – user11869 Jul 19 '14 at 1:13
  • based on that article... SSL would be the way to go. But after heartbleed (and thinking that this isn't information that can be easily changed) I thought I'd go one step further... Also, if the server is compromised, I really don't want the attacker to have access to all my passwords – g3rv4 Jul 19 '14 at 1:18
5

[Disclosure: I, too, work for a password manager company]

Long ago, I tried to develop my own password management solution using PGP/GnuPG. As I thought more about it, I found it unsatisfactory and eventually switched to the one that I have now come to work for.

Here are some things you should consider before trying to roll your own password management system:

  • What is your source of randomness for key and password generation?

    Do you know how to use a cryptographically secure random number generator and why it works the way it does

  • What is your key derivation function?

    Does it use something like PBKDF2 to resist password cracking attempts against your master password?

    Do you know how all of the choices in your KDF interact and stand up against current and foreseeable attacks?

  • How much sensitive data remains decrypted at any one time?

    If you decrypt an entire file, then all of that decrypted data will need to reside in memory or virtual memory on your computer, leaving it potentially exposed after a crash, in memory, in automatic backup files, or in system swap files

  • What measures does the system have to prevent data loss?

    Does the (automatic) back up system perform any integrity checks on the data prior to making a backup?

  • How is memory of sensitive data cleared when it is no longer needed?

    Are there obfuscation techniques for sensitive data (such as decryption keys) that may need to reside in the app’s memory for a while?

  • Will your system automatically lock or does it require you to take action to lock/close your data?

  • Can you eliminate or minimize the use of Copy and Paste of sensitive data?

  • If you build in web browser support are you aware of the kinds of threats against password management tools "in the browser"?

  • And most importantly, can you keep up with all of the research and development on all of these (and other) issues that may require a change in design or implementation?

You do not have to have a satisfactory answer to all of these to try to roll your own. But if you wish to "ignore" some of these questions you should do so deliberately.

I wish you the best with whatever you decide to do.

1

Full Disclosure: I work at a password manager company. I won't say which because I'm not going to mention any of them by name.

You are better off using one of the commercial or FOSS, already existing password managers.

Why? Because a team of people who work full time (or in the FOSS managers, a team of dedicated and intelligent volunteers) on the project are much more likely to do it right than you are. They have a large stake in ensuring that issues are corrected promptly and the flow is done correctly.

It isn't a good idea to roll out your own from only a weekend of hacking.

1
  • This is not a good argument, X is better than yours. – Herr Nov 25 '14 at 11:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.