KeePass


KeePass Password Safe is a free and open-source password manager primarily for Windows. It officially supports macOS and Linux operating systems through the use of Mono. Additionally, there are several unofficial ports for Windows Phone, Android, iOS, and BlackBerry devices. KeePass stores usernames, passwords, and other fields, including free-form notes and file attachments, in an encrypted file. This file can be protected by any combination of a master password, a key file, and the current Windows account details. By default, the KeePass database is stored on a local file system.
KeePass supports a number of plugins. It has a password generator and synchronization function, supports two-factor authentication, and has a Secure Desktop mode. It can use a two-channel auto-type obfuscation feature to offer additional protection against keyloggers. KeePass can import from over 30 other most commonly used password managers.
A 2017 Consumer Reports article described KeePass as one of the four most widely used password managers, being "popular among tech enthusiasts" and offering the same level of security as non-free competitors.
A 2019 Independent Security Evaluators study described KeePass as well as other widely used password managers as being unable to control Windows 10's tendency to leave passwords in cleartext in RAM after they are displayed using Windows controlled GUI. In addition, several github projects specifically attack a running KeePass to steal all data; when the host is compromised. KeePass cannot prevent password theft and "neither KeePass nor any other password manager can magically run securely in a spyware-infected, insecure environment."

Overview

Import and export

The password list is saved by default as a .kdbx file, but it can be exported to TXT, HTML, XML and CSV. The XML output can be used in other applications and re-imported into KeePass using a plugin. The CSV output is compatible with many other password safes like the commercial closed-source Password Keeper and the closed-source Password Agent. Also, the CSVs can be imported by spreadsheet applications like Microsoft Excel or OpenOffice/LibreOffice Calc.
File format support can be expanded through the use of KeePass plugins.

Multi-user support

KeePass supports simultaneous access and simultaneous changes to a shared password file by multiple computers, however there is no provisioning of access per-group or per-entry. As of May 2014, there are no plugins available to add provisioned multi-user support, but there exists a proprietary password server that is compatible with the KeePass client and includes provisioning.

Auto-type, global auto-type hotkeys, and drag and drop

KeePass can minimize itself and type the information of the currently selected entry into dialogs, webforms, etc. KeePass has a global auto-type hot key. When KeePass is running in the background and the user presses the hotkey, it looks up the correct entry and executes its auto-type sequence. All fields, such as title, username, password, URL, and notes, can be drag and dropped into other windows.
Windows clipboard handling allows double-clicking on any field of the password list to copy its value to the Windows clipboard. KeePass can clear the clipboard automatically some time after the user has copied one of their passwords into it. KeePass features protection against clipboard monitors.
KeePass at one time had a paste-once functionality, where after a single paste operation, the clipboard would be cleared automatically, but this was removed in version 2.x due to incompatibility and insufficient effectiveness.

Browser support

The auto-type functionality works with all windows, and consequently with all browsers. The KeeForm extension allows users to open websites with Internet Explorer and Mozilla Firefox and fill in user details automatically. Internet Explorer also has a browser integration toolbar available.
For Firefox, an extension called KeeFox connects to KeePass when a user needs to access a password from it.

Built-in password generator

KeePass features a built-in password generator that generates random passwords. Random seeding can be done through user input.

Plugins

KeePass has a plugin architecture. There are various plugins available from the KeePass website. Note that plugins may compromise the security of KeePass, because they are written by independent authors and have full access to the KeePass database.

Wrapper

KeePass has an opensource wrapper, QuicKeepass, that allows the use of KeePass more efficiently on Linux.

Cryptography

Runtime security

According to the utility's author, KeePass was one of the first password management utilities to use security-enhanced password edit controls, in this case one called CSecureEditEx.
The author makes several claims regarding the security of the control and its resistance to password revealing utilities; however, the author does not cite or make any references to any third-party testing of the control to corroborate the claims of its security.
Passwords are protected in memory while KeePass is running. On Windows Vista and later versions, passwords are encrypted in process memory using Windows Data Protection API, which allows storing the key for memory protection in a secure, non-swappable memory area. On previous Windows systems, KeePass falls back to using the ARC4 cipher with a temporary, random session key.

Offline security

Access to the database is restricted by a master password or a key file. Both methods may be combined to create a "composite master key". If both methods are used, then both must be present to access the password database. KeePass version 2.x introduces a third option—dependency upon the current Windows user.
KeePass encrypts the database with the AES or Twofish symmetric ciphers. The kdbx database is encrypted with AES in CBC/PKCS7 mode without proper authentication, as there are only SHA2 hashes guarding the integrity of ciphertext, while these might catch a typical file corruption they will not prevent malicious tampering. AES is the default option, and Twofish is available in 1.x, but is not available in version 2.x. However, a separate plugin provides Twofish as an encryption algorithm. Beginning with version 2.35 ChaCha20 cipher is also available.

Notable KeePass derivatives