KWallet

Last updated
KDE Wallet Manager
Developer(s) KDE
Stable release
5.109.0 [1]   OOjs UI icon edit-ltr-progressive.svg / 8 August 2023
Repository github.com/KDE/kwallet
Written inMainly C++ (Qt), some C
Operating system Cross-platform
Type
License Various LGPL [lower-alpha 1]
Website apps.kde.org/kwalletmanager5/

KDE Wallet Manager (KWallet) is free and open-source password management software written in C++ for UNIX-style operating systems. KDE Wallet Manager runs on a Linux-based OS and Its main feature is storing encrypted passwords in KDE Wallets. [2] The main feature of KDE wallet manager (KWallet) is to collect user's credentials such as passwords or IDs and encrypt them through Blowfish symmetric block cipher algorithm or GNU Privacy Guard encryption.

Contents

Installation

KDE Wallet Manager (KWallet) requires a Linux-based OS and the KDE Software Compilation desktop environment such as Kubuntu. [3]

Browser extensions

KDE Wallet manager (KWallet) can be integrated with various web browsers including Chrome, Firefox, Opera, and Edge.

To use KDE Wallet manager (KWallet) integration on Google Chrome or Chromium, user needs to run a program with argument --password-store=kwallet5 or --password-store=detect . [4]

A standalone add-on is also available in Firefox. This addon allows users to store passwords internally through KDE Wallet manager (KWallet) instead of the default Firefox password manager.

Konqueror, the official web browser of the K Desktop Environment (KDE) features KDE Wallet manager (KWallet) to store sensitive passwords encrypted.

API

KDE Wallet Manager’s APIs trigger authentication events when the application makes a request through Desktop Communications protocol (DCOP), which is KDE’s primary interprocess communication (IPC) mechanism, which causes a password dialog box to be displayed for the application. This causes the password dialog box to be launched by the KDE daemon process. Users can choose either to cancel the dialog box which will terminate the application or to fill the password box in. If the password box is filled, the Wallet will automatically open. KDE Wallet Manager’s Desktop communications protocol (DCOP) can only be accessed locally because it is an interprocess communication (IPC) protocol that is processed over UNIX local sockets. [5]

GUI

On KDE Wallet Manager’s GUI, users can manage every wallet and password assigned to them.

KDE Wallet Manager allows users to save or delete Wallets and users can identify which wallet applications should look in when attempting to access a stored password. [5]

These are the lists of actions that users can take on the GUI of KDE Wallet manager (KWallet):

Wallets

Managing Wallets in KWallet. KWallet Interface.PNG
Managing Wallets in KWallet.

The Wallet is a term for password storage used in KDE Wallet Manager software. Wallets can be created manually by the user or It is offered by dialogue when the user enters in a password on any KDE desktop environment or website. Once created, Wallet can store various passwords and It is controlled by one master password. This way users do not have to remember various passwords, instead, they can just manage them by memorizing one master password for the wallet. The default Wallet is named “kdewallet” and users can create more of their own if needed.

Managing wallets

Users can manage wallets on their own KDE Wallet Manager window. Packaging or combining wallets can be done by dragging and dropping. If the user wants to export information to other locations such as flash drives, the window allows for the user to choose whether to export data encrypted or not. Providing the master password, the user can similarly import the data encrypted.

Setting preference of wallets is also possible, user can set certain wallets to be the default wallet. The close wallet setting enables the user to close the wallet after:

Encryption of the password

The data stored by the KDE Wallet manager can be encrypted in two major ways. The GNU Privacy Guard (GnuPG or GPG) algorithm is used if GnuPG Made Easy library is installed on the user’s Linux-based OS. If not, Blowfish symmetric block cipher algorithm is used. [6]

The encryption methods of KWallet. Method.PNG
The encryption methods of KWallet.

Blowfish symmetric block cipher algorithm

KDE Wallet manager encrypts the data stored in the wallet using the Blowfish symmetric block cipher algorithm in CBC mode. To protect the user’s information, blowfish encrypted data is authenticated with the SHA-1 hashing algorithm.

KDE Wallet manager’s blowfish encryption provides faster encryption compared to Khufu, RC5, DES, IDEA, and Trip-DES. Blowfish encrypts at a rate of 18 clock cycles per byte in 32-bit microprocessors.

KDE Wallet manager’s Blowfish algorithm can be executed in memory within 5k, and a simple structure is easy to implement and easy to determine the strength of the algorithm. The algorithm is variable in key length, which can be long as 448 bites and it allows basic word addition and bit XOR operations. [7]

GNU Privacy Guard encryption

Users can create a GNU Privacy Guard (GnuPG or GPG) based wallet to store extra-sensitive passwords. This requires users to install GnuPG Made Easy library. If the library is installed and once the software found GNU Privacy Guard (GnuPG or GPG), users will be asked to choose a key to use for a new wallet. [6] User stil can encrypt passwords with Blowfish symmetric block cipher algorithm since GNU Privacy Guard encrtpytion library includes DSA/Blowfish symmetric block cipher algorithm. [8]

Security of KDE Wallet manager

Using KDE Wallet manager (KWallet) may ease the management of the passwords but It does not provide greater security conditions to user's system. Instead of getting user's other passwords, attackers may get the master password for user's wallets through user's PC.

Since the directory of encrypted files of KDE wallet manager (KWallet) are located in predictable files, It might be vulnerable to viruses or worms those are programmed to aim password management system itself. [5]

Known vulnerabilities

Notes

  1. LGPL-2.0-only, LGPL-2.0-or-later, LGPL-2.1-or-later, and LGPL-3.0-or-later.

Related Research Articles

Blowfish is a symmetric-key block cipher, designed in 1993 by Bruce Schneier and included in many cipher suites and encryption products. Blowfish provides a good encryption rate in software, and no effective cryptanalysis of it has been found to date. However, the Advanced Encryption Standard (AES) now receives more attention, and Schneier recommends Twofish for modern applications.

Pretty Good Privacy (PGP) is an encryption program that provides cryptographic privacy and authentication for data communication. PGP is used for signing, encrypting, and decrypting texts, e-mails, files, directories, and whole disk partitions and to increase the security of e-mail communications. Phil Zimmermann developed PGP in 1991.

<span class="mw-page-title-main">Password</span> Used for user authentication to prove identity or access approval

A password, sometimes called a passcode, is secret data, typically a string of characters, usually used to confirm a user's identity. Traditionally, passwords were expected to be memorized, but the large number of password-protected services that a typical individual accesses can make memorization of unique passwords for each service impractical. Using the terminology of the NIST Digital Identity Guidelines, the secret is held by a party called the claimant while the party verifying the identity of the claimant is called the verifier. When the claimant successfully demonstrates knowledge of the password to the verifier through an established authentication protocol, the verifier is able to infer the claimant's identity.

<span class="mw-page-title-main">GNU Privacy Guard</span> Complete implementation of the OpenPGP and S/MIME standards

GNU Privacy Guard is a free-software replacement for Symantec's PGP cryptographic software suite. The software is compliant with RFC 4880, the IETF standards-track specification of OpenPGP. Modern versions of PGP are interoperable with GnuPG and other OpenPGP-compliant systems.

<span class="mw-page-title-main">Cryptographic hash function</span> Hash function that is suitable for use in cryptography

A cryptographic hash function (CHF) is a hash algorithm that has special properties desirable for a cryptographic application:

In cryptography, a key derivation function (KDF) is a cryptographic algorithm that derives one or more secret keys from a secret value such as a master key, a password, or a passphrase using a pseudorandom function. KDFs can be used to stretch keys into longer keys or to obtain keys of a required format, such as converting a group element that is the result of a Diffie–Hellman key exchange into a symmetric key for use with AES. Keyed cryptographic hash functions are popular examples of pseudorandom functions used for key derivation.

In cryptanalysis and computer security, password cracking is the process of recovering passwords from data that has been stored in or transmitted by a computer system in scrambled form. A common approach is to repeatedly try guesses for the password and to check them against an available cryptographic hash of the password. Another type of approach is password spraying, which is often automated and occurs slowly over time in order to remain undetected, using a list of common passwords.

Cisco PIX was a popular IP firewall and network address translation (NAT) appliance. It was one of the first products in this market segment.

The following tables compare general and technical features of notable email client programs.

In computer security, arbitrary code execution (ACE) is an attacker's ability to run any commands or code of the attacker's choice on a target machine or in a target process. An arbitrary code execution vulnerability is a security flaw in software or hardware allowing arbitrary code execution. A program that is designed to exploit such a vulnerability is called an arbitrary code execution exploit. The ability to trigger arbitrary code execution over a network is often referred to as remote code execution (RCE).

<span class="mw-page-title-main">Seahorse (software)</span>

Seahorse is a GNOME front-end application for managing passwords, PGP and SSH keys. Seahorse integrates with a number of apps including Nautilus file manager, Epiphany browser and Evolution e-mail suite. It has HKP and LDAP key server support.

<span class="mw-page-title-main">GNOME Keyring</span>

GNOME Keyring is a software application designed to store security credentials such as usernames, passwords, and keys, together with a small amount of relevant metadata. The sensitive data is encrypted and stored in a keyring file in the user's home directory. The default keyring uses the login password for encryption, so users don't need to remember another password.

In cryptography, key stretching techniques are used to make a possibly weak key, typically a password or passphrase, more secure against a brute-force attack by increasing the resources it takes to test each possible key. Passwords or passphrases created by humans are often short or predictable enough to allow password cracking, and key stretching is intended to make such attacks more difficult by complicating a basic step of trying a single password candidate. Key stretching also improves security in some real-world applications where the key length has been constrained, by mimicking a longer key length from the perspective of a brute-force attacker.

A password manager is a computer program that allows users to store and manage their passwords for local applications or online services such as web applications, online shops or social media.

<span class="mw-page-title-main">FreeOTFE</span> Disk encryption software application

FreeOTFE is a discontinued open source computer program for on-the-fly disk encryption (OTFE). On Microsoft Windows, and Windows Mobile, it can create a virtual drive within a file or partition, to which anything written is automatically encrypted before being stored on a computer's hard or USB drive. It is similar in function to other disk encryption programs including TrueCrypt and Microsoft's BitLocker.

bcrypt is a password-hashing function designed by Niels Provos and David Mazières, based on the Blowfish cipher and presented at USENIX in 1999. Besides incorporating a salt to protect against rainbow table attacks, bcrypt is an adaptive function: over time, the iteration count can be increased to make it slower, so it remains resistant to brute-force search attacks even with increasing computation power.

The following outline is provided as an overview of and topical guide to cryptography:

crypt is a POSIX C library function. It is typically used to compute the hash of user account passwords. The function outputs a text string which also encodes the salt, and identifies the hash algorithm used. This output string forms a password record, which is usually stored in a text file.

<span class="mw-page-title-main">YubiKey</span> Hardware authentication device supporting MFA

The YubiKey is a hardware authentication device manufactured by Yubico to protect access to computers, networks, and online services that supports one-time passwords (OTP), public-key cryptography, and authentication, and the Universal 2nd Factor (U2F) and FIDO2 protocols developed by the FIDO Alliance. It allows users to securely log into their accounts by emitting one-time passwords or using a FIDO-based public/private key pair generated by the device. YubiKey also allows for storing static passwords for use at sites that do not support one-time passwords. Google, Amazon, Microsoft, Twitter, and Facebook use YubiKey devices to secure employee accounts as well as end user accounts. Some password managers support YubiKey. Yubico also manufactures the Security Key, a similar lower cost device with only FIDO2/WebAuthn and FIDO/U2F support.

pass is a password manager inspired by the Unix philosophy. It has a command-line interface, and uses GnuPG for encryption and decryption of stored passwords.

References

  1. Error: Unable to display the reference properly. See the documentation for details.
  2. Zhang, Jie; Luo, Xin; Akkaladevi, Somasheker; Ziegelmayer, Jennifer (2009). "Improving multiple-password recall: an empirical study". European Journal of Information Systems. 18 (2): 165–176. doi:10.1057/ejis.2009.9. ISSN   0960-085X. S2CID   7244341.
  3. Gray, Joshua; Franqueira, Virginia N. L.; Yu, Yijun (2016). "Forensically-Sound Analysis of Security Risks of Using Local Password Managers". 2016 IEEE 24th International Requirements Engineering Conference Workshops (REW) (PDF). Beijing, China: IEEE. pp. 114–121. doi:10.1109/REW.2016.034. ISBN   978-1-5090-3694-3. S2CID   15971740.
  4. Toman, Zinah Hussein; Toman, Sarah Hussein; Hazar, Manar Joundy (2019). "An In-Depth Comparison Of Software Frameworks For Developing Desktop Applications Using Web Technologies". Journal of Southwest Jiaotong University. 54 (4). doi: 10.35741/issn.0258-2724.54.4.1 . ISSN   0258-2724. S2CID   209057621.
  5. 1 2 3 4 Mulligan, J.; Elbirt, A. J. (2005). "Desktop Security and Usability Trade-Offs: An Evaluation of Password Management Systems". Information Systems Security. 14 (2): 10–19. doi:10.1201/1086/45241.14.2.20050501/88289.3. ISSN   1065-898X. S2CID   21253225.
  6. 1 2 Dudášová, Ludmila; Vaculík, Martin; Procházka, Jakub (2021-12-29). "Psychologický kapitál v pracovní, klinické a školní psychologii: přehledová studie". Ceskoslovenska Psychologie. 65 (6): 558–574. doi: 10.51561/cspsych.65.6.558 . ISSN   0009-062X. S2CID   245578091.
  7. Mousa, A. (2005). "Data encryption performance based on Blowfish". 47th International Symposium ELMAR, 2005. IEEE. pp. 131–134. doi:10.1109/elmar.2005.193660. ISBN   953-7044-04-1. ISSN   1334-2630. S2CID   21814142.
  8. Aghili, Hamed (2018-07-26), "Improving Security Using Blow Fish Algorithm on Deduplication Cloud Storage", Fundamental Research in Electrical Engineering, Lecture Notes in Electrical Engineering, vol. 480, Singapore: Springer Singapore, pp. 723–731, doi:10.1007/978-981-10-8672-4_54, ISBN   978-981-10-8671-7, S2CID   69654258 , retrieved 2022-05-27
  9. "NVD - CVE-2005-4900". nvd.nist.gov. Retrieved 2022-05-27.PD-icon.svg This article incorporates text from this source, which is in the public domain .
  10. "NVD - CVE-2018-12356". nvd.nist.gov. Retrieved 2022-05-27.PD-icon.svg This article incorporates text from this source, which is in the public domain .
  11. "NVD - CVE-2020-25125". nvd.nist.gov. Retrieved 2022-05-27.PD-icon.svg This article incorporates text from this source, which is in the public domain .
  12. "NVD - CVE-2019-14855". nvd.nist.gov. Retrieved 2022-05-27.PD-icon.svg This article incorporates text from this source, which is in the public domain .
  13. "NVD - CVE-2013-4576". nvd.nist.gov. Retrieved 2022-05-27.PD-icon.svg This article incorporates text from this source, which is in the public domain .
  14. "NVD - CVE-2014-9087". nvd.nist.gov. Retrieved 2022-05-27.PD-icon.svg This article incorporates text from this source, which is in the public domain .
  15. "NVD - CVE-2010-2547". nvd.nist.gov. Retrieved 2022-05-27.PD-icon.svg This article incorporates text from this source, which is in the public domain .
  16. "NVD - CVE-2018-12020". nvd.nist.gov. Retrieved 2022-05-27.PD-icon.svg This article incorporates text from this source, which is in the public domain .
  17. "NVD - CVE-2005-0366". nvd.nist.gov. Retrieved 2022-05-27.PD-icon.svg This article incorporates text from this source, which is in the public domain .
  18. "NVD - CVE-2006-6169". nvd.nist.gov. Retrieved 2022-05-27.PD-icon.svg This article incorporates text from this source, which is in the public domain .
  19. "NVD - CVE-2007-1263". nvd.nist.gov. Retrieved 2022-05-27.PD-icon.svg This article incorporates text from this source, which is in the public domain .
  20. "NVD - CVE-2018-12020". nvd.nist.gov. Retrieved 2022-05-27.PD-icon.svg This article incorporates text from this source, which is in the public domain .
  21. "NVD - CVE-2016-6313". nvd.nist.gov. Retrieved 2022-05-27.PD-icon.svg This article incorporates text from this source, which is in the public domain .
  22. "NVD - CVE-2015-1607". nvd.nist.gov. Retrieved 2022-05-27.PD-icon.svg This article incorporates text from this source, which is in the public domain .