pgp-key-management/todo.md

1.3 KiB

TODO

There's lots of things to add.

  • TLS
    • Autorenew this with an ACME server (eg, Boulder; use the Lego library)
    • self-host the Boulder server & add the main CA pubkey to the client
    • Work with self-signed stuff for now tho
  • Authentication
    • Give each client an API key
    • Limit decryption keys that client can access?
  • Admin UI on the server
    • Manage client accounts
    • Import public keys
    • Add/Remove keys
  • Private Key autorotation
  • PGP Public Key Server
    • a la keys.openpgp.org
    • two servers? one public (company pub keys), one internal (customer pub keys)
  • Encryption groups
    • Add a number of public keys to a group. When the client encrypts to a group, use all the keys.
    • Auto-remove expired keys from groups

Technical TODO

More specific stuff

  • Wrap keys in Armor when sending over the wire
    • Figure out sending multiple keys in the same request. Wrap in json? Can Armor handle multiple keys? Can I just concatinate multiple Armored keys?
  • Auto-generate self-signed certs for testing TLS
  • Password protect private keys?
    • Where would this password be stored?
    • Keys would ultimately need to be stored on disk somewhere, and they can't be unprotected there.
  • Reorganize code to split client and server and a common lib
  • Look at KMIP. Do I want to implement this?