Abstract key server (aks) is a minimal PGP key server to support communities
Find a file
2019-07-10 08:47:33 +02:00
bin chg: [aks] HKP improvement (still WiP) 2019-07-10 08:25:52 +02:00
conf chg: [import] version is now configurable 2019-07-08 07:52:18 +02:00
deps chg: [deps] ardb added 2019-06-30 10:20:19 +02:00
doc/specs chg: [aks] first super minimal server only get and long fingerprint 2019-07-08 07:53:18 +02:00
tests/keys chg: [import] first version of the import following the first datastore format 2019-07-06 15:20:21 +02:00
.gitmodules chg: [import] first version of the import following the first datastore format 2019-07-06 15:20:21 +02:00
build.sh chg: [import] first version of the import following the first datastore format 2019-07-06 15:20:21 +02:00
README.md chg: [doc] back-end datastore table fixed 2019-07-10 08:47:33 +02:00
run-server.sh chg: [aks] first super minimal server only get and long fingerprint 2019-07-08 07:53:18 +02:00
start.sh chg: [import] first version of the import following the first datastore format 2019-07-06 15:20:21 +02:00

abstract-key-server (aks)

Abstract key server (aks) is a minimal PGP key server to support communities. aks is a kind of read-only OpenPGP key server which is updated by some core administrators of a community. Those core administrators can add other trusted aks server to provide lookup of other keys via their server.

This is a work-in-progress to solve specific problems in security and information sharing communities.

Goals

  • Minimal parsing of PGP packets (to reduce complexity and software dependencies)
  • New keys are added via a specific vetted process (or at the discretion of the aks operator)
  • AKS can connect to other trusted list to query unknown keys and there is no reconciliation protocol (by design)
  • Standard HKP interface with add method disabled
  • Simple interface to filter out known malicious or rogue PGP keys
  • Fast and reliable
  • Simple namespace to group keys in a set of known members (e.g. CSIRT, MISP sharing group, organisation)

Requirements

  • ardb as storage back-end
  • Python 3.6
  • Pgpy
  • redis python library
  • Flask

Back-end format (ardb)

key type key name values
k/v k:fingerprint armored PGP key
set n:namespace set of fingerprints
set un:uid-name set of fingerprints
set uc:uid-name set of fingerprints
set ue:uid-name set of fingerprints
  • un -> name in the UID
  • uc -> comment in the UID
  • ue -> email in the UID