All Projects → drduh → Purse

drduh / Purse

Licence: mit
GPG asymmetric (YubiKey) password manager

Programming Languages

shell
77523 projects
bash
514 projects

Projects that are alternatives of or similar to Purse

Pwd.sh
GPG symmetric password manager
Stars: ✭ 1,468 (+369.01%)
Mutual labels:  bash-script, unix, encryption, password, password-manager, gpg, gnupg
gpgpwd
Moved to GitLab
Stars: ✭ 22 (-92.97%)
Mutual labels:  password-manager, gnupg, gpg, password
Buttercup Core
🎩 The mighty NodeJS password vault
Stars: ✭ 340 (+8.63%)
Mutual labels:  encryption, password, password-manager
Swifty
🔑 Free Offline Password Manager
Stars: ✭ 496 (+58.47%)
Mutual labels:  encryption, password, password-manager
Featherpasswordmanager
Highly portable extremely light-weight password manager that stores all your passwords in a local encrypted file.
Stars: ✭ 39 (-87.54%)
Mutual labels:  encryption, password, password-manager
Passage
A password manager using https://age-encryption.org/
Stars: ✭ 48 (-84.66%)
Mutual labels:  encryption, password, password-manager
Gitpass
Open Source Your Password (Mismanagement)!
Stars: ✭ 113 (-63.9%)
Mutual labels:  encryption, password, password-manager
Bouncy Gpg
Make using Bouncy Castle with OpenPGP fun again!
Stars: ✭ 164 (-47.6%)
Mutual labels:  encryption, gpg, gnupg
OormiPass
Free open source cross platform password manager
Stars: ✭ 50 (-84.03%)
Mutual labels:  encryption, password-manager, password
Authorizer
Authorizer is a Password Manager for Android. It emulates an HID keyboard over USB and enters your credentials on your target device. Additionally it supports OTP 🔑📴
Stars: ✭ 172 (-45.05%)
Mutual labels:  encryption, password-manager, gpg
Gpg Encrypt
Use GPG to encrypt a file using our best settings
Stars: ✭ 53 (-83.07%)
Mutual labels:  unix, encryption, gpg
PassHUD
A HUD-style interface for pass on macOS
Stars: ✭ 31 (-90.1%)
Mutual labels:  password-manager, password
pwm
自用的密码管理工具
Stars: ✭ 34 (-89.14%)
Mutual labels:  password-manager, password
turaku-client
Web / Electron client application for Turaku
Stars: ✭ 27 (-91.37%)
Mutual labels:  password-manager, password
Passky-Server
API and Database for Passky (password manager)
Stars: ✭ 77 (-75.4%)
Mutual labels:  password-manager, password
Passky-Desktop
Desktop application for Passky (password manager)
Stars: ✭ 47 (-84.98%)
Mutual labels:  password-manager, password
mpw-rs
Master Password in Pure Rust
Stars: ✭ 34 (-89.14%)
Mutual labels:  password-manager, password
PASSY
This project has moved to GitLab.com
Stars: ✭ 14 (-95.53%)
Mutual labels:  password-manager, password
win-gpg-agent
[DEPRECATED] Windows helpers for GnuPG tools suite
Stars: ✭ 214 (-31.63%)
Mutual labels:  gnupg, gpg
mopass
A OpenSource Clientless & Serverless Password Manager
Stars: ✭ 40 (-87.22%)
Mutual labels:  password-manager, password

Purse

Purse is a fork of drduh/pwd.sh.

Both programs are Bash shell scripts which use GPG to manage passwords and other secrets in encrypted text files. Purse uses asymmetric (public-key) authentication, while pwd.sh uses symmetric (password-based) authentication.

While both scripts use a trusted crypto implementation (GPG) and safely handle passwords (never saving plaintext to disk), Purse eliminates the need to remember and use a master password - just plug in a YubiKey, enter the PIN, then touch it to decrypt a password to clipboard.

By using Purse with YubiKey, the risk of master password theft or keylogging is eliminated - only physical possession of the Yubikey AND knowledge of the PIN can unlock the encrypted index and password files.

Release notes

Version 2b1 (2020)

Minor update to the second release. Currently in beta testing. Compatible on Linux, OpenBSD, macOS.

Changelist:

  • Purse now uses a GPG keygroup to encrypt secrets to multiple recipients for improved reliability. The program will prompt for key IDs to define the keygroup; a single key ID can still be used.
  • Encrypted index is now optional and off by default, allowing a single touch to encrypt and decrypt secrets instead of two.
  • GPG configuration file is now included in Purse backup archives.

Version 2b (2019)

The second release of purse.sh features several security and reliability improvements, and is an optional upgrade. Currently in beta testing. Compatible on Linux, OpenBSD, macOS.

Known issues:

  • Read actions now require two Yubikey touches, if touch to decrypt is enabled - once for the index and twice for the encrypted password file.

Changelist:

  • Passwords are now encrypted as individual files, rather than all encrypted as a single flat file.
  • Individual password filenames are random, mapped to usernames in an encrypted index file.
  • Index and password files are now "immutable" using chmod while purse.sh is not running.
  • Read passwords are now copied to clipboard and cleared after a timeout, instead of printed to stdout.
  • Use printf instead of echo for improved portability.
  • New option: list passwords in the index.
  • New option: create tar archive for backup.
  • Removed option: delete password; the index is now a permanent ledger.
  • Removed option: read all passwords; no use case for having a single command.
  • Removed option: suppress generated password output; should be read from safe to verify save.

Version 1 (2018)

The original release which has been available for general use and review since June 2018 (forked from pwd.sh which dates to 2015). There are no known bugs nor security vulnerabilities identified in this stable version of purse.sh. Compatible on Linux, OpenBSD, macOS.

Use

This script requires a GPG identity - see drduh/YubiKey-Guide to set one up. Multiple identities stored on several YubiKeys are recommended for reliability.

$ git clone https://github.com/drduh/Purse

(Version 2b and older) Set your GPG key ID with export PURSE_KEYID=0xFF3E7D88647EBCDB or by editing purse.sh.

cd purse.sh and run the script interactively using ./purse.sh or symlink to a directory in PATH:

  • Type w to write a password
  • Type r to read a password
  • Type l to list passwords
  • Type b to create an archive for backup
  • Type h to print the help text

Options can also be passed on the command line.

Example usage:

Create a 30-character password for userName:

$ ./purse.sh w userName 30

Read password for userName:

$ ./purse.sh r userName

Passwords are stored with a timestamp for revision control. The most recent version is copied to clipboard on read. To list all passwords or read a previous version of a password:

$ ./purse.sh l

$ ./purse.sh r [email protected]

Create an archive for backup:

$ ./purse.sh b

Restore an archive from backup:

$ tar xvf purse*tar

The backup contains only encrypted passwords and can be publicly shared for use on trusted computers. For additional privacy, the recipient key ID is not included in GPG metadata (throw-keyids option). The password index file can also be encrypted by changing the encrypt_index variable to true in the script.

See drduh/config/gpg.conf for additional GPG configuration options.

Similar software

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].