KeePass is the original project. It is an open source dotnet application. The source code, as of the last time I checked, is released as a tar/zip with the binaries only.
KeePassX is an open source c++ application. It was one of the cross platform applications to manage KeePass databases. It has not been under very active development for a while.
KeePassXC is a fork of KeePassX which is under active developement. They have added many features and improvements and has stayed up to date with kdbx updates.
KeePassXC is fantastic, I especially like the good Yubikey integration. The one small feature I miss from the original KeePass was the password templates. I like all my passwords to follow a grouped pattern so its easier to type into a phone or something while still being strong.
Is KeePassXC also audited? The main KeePass has had multiple security audits, also thanks to the EU who funded it one time. Seems relevant for a password manager.
While I like KeePassXC more, this is even more relevant as KeePassXC is made in C++, while Keepass is made in C#. C++ makes it easier to shoot yourself in the foot.
The difference is the UI. They all use the same* database format underneath.
Thr original Keepass was at first a Windows only app, so KeepassX was created as a cross platform reimplementation using Qt. Nowadays Keepass uses .Net and also is cross platform but Linux users prefer Qt because it feels more "native" than .Net.
KeepassXC is a more recent fork of KeepassX, which added a bunch of extra features. Notably, it added support for version 4 of the keepass database format, and it also allows you to use a browser extension to enter passwords inside web browser forms without needing to cut and paste.
I'm a LastPass user trying to switch to KeePassXC. I tried it once on my computer but couldn't find a way to create folder inside a folder inside a folder and so on. I like organizing everything so this is the only thing holding me from switching to KeePass. BTW is it possible to do that in KeePass? I haven't explored it a lot.
I've got a complex hierarchy of folders (Groups in Keepass terminology) in some of my Keepass files. It's definitely possible to do, some of the UIs are better than others at making it obvious.
It is, but the 2.4 release introduced integrated updates. I was still on 2.3 and wasn't aware of this, or that my KeePass was out of date until I saw this this morning. So I am thankful for the heads up. :)
I switched to KeePassXC a few months ago (from KeePass). It was a no brainer when I noticed that I didn't need plugins anymore, since SSH keys, TOTP, and browser integration came out of the box.
In fact, KeePassXC has shown to have better memory protection than KeePass: https://keepassxc.org/blog/2019-02-21-memory-security/ (note the article is from February, some things have changed since then, see below).
The only thing we do not have at the moment is in-memory encryption. We do, however implement the following security measures on all platforms:
- prevent swapping of master key hashes (using gcry_malloc_secure)
- prevent non-root / admin access to our process memory (KeePass does NOT have this)
- overwrite all dynamically allocated memory with zeros on free
Please note that this still cannot fully prevent swapping out of secrets. As soon as things are to be displayed somewhere in the GUI, they are basically out of our hands. We also cannot fully protect everything while the database is being loaded or written. However, the same applies to KeePass. There is just too much going on with memory management on modern operating systems.
> KeePassXC also cannot prevent data extraction from a hibernation file which stores your computer's memory to disk when going to sleep.
KeePass uses DPAPI so password-storage memory is not written to swap (and I guess hibernatefile) in cleartext. Note that this doesn't protect against reading the memory directly[0].
Though (on unices) it doesn't mention mlock(2) either.
Can elaborate more on the practical benefits of encrypted memory? Presumably this is mainly good for multi-user systems? On the average single-user system it seems that if you can already read memory there are 1000 other possible exploits that are cheaper / easier to perform (ie. keylog, screen capture, etc).
AFAIK the only thing it protects you from is generic malware that scans process memory for passwords. It’s trivial to bypass though: all you need to do is patch the code as it’s running to dump all the plaintext entries for you.
> there are 1000 other possible exploits that are cheaper / easier to perform (ie. keylog, screen capture, etc).
Crash reports often include memory dumps. Firefox automatically reports these to Mozilla - there's plenty of other software that auto-reports crash data as well. If that crash data includes in-memory credentials, that could lead to your master password being compromised.
What troubles? I recently started to use it, and so far I did not encounter any troubles. For me the killer feature of KeePass is that it allows me to safely use it without typing master password using -pw-enc command line argument. I hated to type my password every day over and over again with 1Password. Especially because I understand that it's very weak protection if someone already break in my computer.
I reckon OP dislikes the need to have the whole Mono runtime to run one small-ish application. At least that's the reason I always preferred the native ports.
Been using BitWarden since I stopped using LastPass (lost my 10 year old vault) anybody know of any good reviews of all the different types of password managers that go into the security flaws / considerations?
Anyone got any good recommendations for an iOS client. I've just moved from android and there's several but not sure which to pick, which are opensource etc.
https://github.com/MiniKeePass/MiniKeePass
it's very basic but it works. if you keep the kdbx file in cloud storage, you can use iOS "open with" to open in MiniKeePass.
Ye I'm using that right now but 25.99 GBP is a lot for me as a student. I know software development isn't free, don't mind paying say 10, but 25.99 is quite a stretch for me :(
Anybody know if they've fixed (or plan to fix) the sort by latest modification date of all records? That was the one missing feature from going from KeePassX to KeePassXC.
For me the biggest difference is that you have a single encrypted database file, and that no metadata is stored unencrypted. By default, pass uses file names as keys, so website names are stored in the clear. (To fix this on pass.you need to use pass-tomb, which I found very clunky, and could never get working quite right)
Another thing I like about keepassxc is that it has lots of features. It comes with a flexible passwird generator, has a friendly GUI UI, can be integrated to the web browser using an extension, and there are compatible android apps you can use on your phone.
As I mentioned further up, pass tomb needs to be installed separately (which is not trivial depending on your distro) and is clunky to use. AFAIK it also cannot be used to encrypt the password database on Android.
It also really bugs me that an important security feature like this one is not the default.
This is a common claim, and besides that fact that tomb fixes it and is supported on all distributions, I'm not convinced it's a problem. What's the threat model? That folder should be 700 anyway? Or is this just paranoia?
You need to download an app. Search keepass on ios (I use android so I can't recommend one to you). They won't be made by the same people, but they can use the same password database