Skip to main content

Public Key based Password Management

Project description

PKPass: Public Key Based Password Manager

Unit Tests Documentation Status CodeQL

RTD

https://pkpass.readthedocs.io/en/latest/

Requires >= Python 3.6

Overview

This is a basic password store and password manager for maintaining arbitrary secrets.

The password management solution provides:

  • Encryption at Rest
  • Password distribution/organization based on definable hierarchies
  • Password creation timestamps
  • Password history and change logs
  • Distributed backup capabilities
  • PIV/Smartcard Credential encryption/decryption
  • Import and export functionality

Passwords that are created are distributed to recipients by public key encryption. The x509 certificate of the intended recipient is used to create an encrypted copy of the distributed password that is then saved in a password-specific git repository. Multiple encrypted copies of the secret are created, one for each user. End users then check out the git repo and are able to read passwords using their PIV/Smartcard credential to decrypt.

Install

Everything:

pip install pkpass-olcf

MacOs:

brew install olcf/tap/pkpass

x509 Certificate Repository

PKPass needs a trusted x509 certificate repository, which typically is managed using git. Certificates in this repository should all be signed by Certificate Authorities that can be found in the CABundle file that PKPass is configured to look at. Since this repository should be considered 'trusted', it is typically managed by a smaller trusted set of site administrators. PKPass validates all encryption certificates as they are used to make sure they are signed by a trusted Certificate Authority (CA).

You may also use a local x509 certificate repository that you sync with others using RSYNC, NFS, shared volumes, etc. You can configure the directory that pkpass will use for the certificate repository either on the command line, or through the .pkpassrc file.

The CABundle file to use can also be configured in the .pkpassrc file or on the command line.

Additionally, certificates should be named .cert. For example, the certificate for user 'jason' should be named 'jason.cert' inside this x509 directory.

Password Repository

PKPass also needs a directory to serve as a 'password database'. Like the x509 certificate repository, it is also typically managed with git to provide change control, history, and tracking of changes. Local directories can also be used and shared via rsync, NFS, shared volumes, etc if preferred.

To change the default password repository, you may specify another directory on the command line or in the .pkpassrc file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pkpass_olcf-2.9.3.tar.gz (69.8 kB view details)

Uploaded Source

Built Distribution

pkpass_olcf-2.9.3-py3-none-any.whl (69.9 kB view details)

Uploaded Python 3

File details

Details for the file pkpass_olcf-2.9.3.tar.gz.

File metadata

  • Download URL: pkpass_olcf-2.9.3.tar.gz
  • Upload date:
  • Size: 69.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pkpass_olcf-2.9.3.tar.gz
Algorithm Hash digest
SHA256 4d1e11042e1d8a8ff2fd2968bf82904e4c736baffd87567c67f92c4dd5e52e4f
MD5 86e9666a8f4f944179d568c3ce24bb00
BLAKE2b-256 a9a19f1f945735fb6e8b64ecfcd40fdb1a96753cfc0abfd691dd4a406d1097e1

See more details on using hashes here.

File details

Details for the file pkpass_olcf-2.9.3-py3-none-any.whl.

File metadata

  • Download URL: pkpass_olcf-2.9.3-py3-none-any.whl
  • Upload date:
  • Size: 69.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pkpass_olcf-2.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8ac17e50a599e421f91e6040c4d15709db3c37fe2a4adf1fcb935c2c07df5fe1
MD5 def3af778bab078a66637b9c1d1bc7a5
BLAKE2b-256 53e316e537057c720bbab044f74d7ea92df018e1c4415618f0e9676d31d5c1b7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page