Purse

GPG asymmetric (YubiKey) password manager
授权协议 MIT License
开发语言 SHELL
所属分类 应用工具、 终端/远程登录
软件类型 开源软件
地区 不详
投 递 者 闻人弘雅
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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 userName@1574723600

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

  • 短语loosen the purse strings的意思是慷慨解囊。 例句: 1. Ford’s chief financial officer, Lewis Booth, said there was no chance that management would loosen the purse strings on its $21 billion in cash reserves. 福特公

  • About this coach handbags: A shoulder bag made with crackled gunmetal metallic leather. The crackled leather is soft, durable, and still has a great sheen. There is an inside zip, cellphone, and multi

 相关资料
  • YubiKey at Datadog Summary Estimated burden and prerequisites U2F GPG git SSH Reset Troubleshooting Optional References Summary GPG is useful for authenticating yourself over SSH and / or GPG-signing

  • yubikey-server 是 Go 语言实现的 yubikey 服务器,你可以在网络上运行自己的服务器,这些服务并不能访问你的办公网络。 使用方法: // to build the server$go build // will add a new application and display the id and key$./yubikey-server -app "NameOfYourA

  • Yubikey 是由 Yubico 制作的一个硬件设备,它能提供多种形式的高强度的认证与加密,能运用在不同的地方。除此之外,Yubico还有许多有趣的软件。Yubikey 使用手册 意在发掘这些用途并生动形象的展示给你。 它主要内容是讲述 Yubikey 4 和 Yubikey 4 Nano 的使用方法。事实上,经过一些改动之后,部分内容也同样适用于 Yubikey NEO。

  • Yubikey 验证模块 在 YubiCloud 上创建一个 API 从 Yubico 获得一个 API 密钥,应用程序、上下文和服务器各需要一个 client id。 输入你的邮件地址 ,选择 Yubikey OTP 输入后触摸 Yubikey,你会获得这样的一组字符串: Client ID: <clientId> Secret Key: <secretKey> 把它们保存在一个安全的地方以备接

  • Yubikey PIV 管理器 Yubikey PIV 管理器是一个可以管理 PIV 相关内容的图形界面管理工具。它的命令行版本可以使用 Homebrew 来安装【译者注:macOS 平台】: ❯ brew install yubico-piv-tool 命令行版本的工具拥有更加强大的功能(例如 允许覆盖 PIN 和修改默认插槽的触摸策略),但它更容易导致用户误操作。(它很容易会覆盖现有密钥) 完

  • 在 Yubikey 上使用 PIV 在Yubikey 4 中拥有 5 个可以保存 X.509 证书和私钥的可编程插槽。 其他的 20 个插槽被用作遗存密钥管理,这允许使用旧时的密钥对较早的加密文档或电子邮件进行解密。 每个插槽都可以设置一个预定方案,包括默认的 PIN 和触摸策略。这些仅仅是示例,可以自行覆盖。 9a 插槽:PIV 验证 验证智能卡和持卡人(比如用于操作系统登录、ssh、WiFi、

  • 创建 Yubikey PAM 验证策略 获取 YubiKey 的令牌 ID Yubikey 令牌 ID 是唯一标识 YubiKey 的公共标识符。您可以通过多种方式获取 Yubikey 令牌ID。 最简单的方法是移除 Yubikey 生成的一次性密码的最后 32 位: 打开一个终端. 长按 Yubikey. 一个一次性密码会输入到终端中: ❯ cccccccgklgcvnkcvnnegrnhgrj

  • Generating the root key on the Yubikey List all the keys known on the host: ❯ notary -d ~/.docker/trust key list You probably don’t have any keys available yet. Let’s generate one. Create an 256-bit E