Key Rotation Milestones - dun/munge GitHub Wiki
key format (v2)
- add
valid-startandvalid-end64b timestamps - add
commentfield - add
checksumfield to detect corruption - revamp key construction
- replace use of SHA-1 with SHA-256 or SHA-512
- update subkey distinguishers
- update subkey derivation to use HKDF
- investigate switching crypto to libsodium
keyring format (v2)
- define on-disk binary format
- allow multiple keys in keyring file
- add
checksumentry to detect corruption - add
realmentry
credential format (v4)
- define extensible format
- support 64b timestamps
- add
data-encryption-keypacket type - change order of crypto ops to "encrypt-then-authenticate"
- revisit how DEK is generated
libmunge
- add function to support sending
RELOAD_KEYRINGcommand - clean up namespace
protocol
- add
RELOAD_KEYRINGcommand
mungekey
- compute key ID from key w/o exposing sensitive key material
--listcmdline opt to list keys and corresponding IDs--validatecmdline opt to verify keyring checksum- support editing key's
valid-endtime - support specifying
valid-endtime during key creation - support specifying
valid-endtime in various formats --importcmdline opt to import keys--exportcmdline opt to export keys--appendcmdline opt to append keys to existing file--reloadcmdline opt to signalmungedto reload keyring- link against
libmungefor communicating withmungedover socket
- link against
munged
- add configuration file
- add mechanism to reload key while daemon is running
- support efficient locking of key data structures to allow modification
- revisit worker thread code and resolution of concurrency issues
- revisit statically-initialized mutexes and condition variables
- will facilitate switch from deprecated
gettimeofday()toclock_gettime() - will facilitate supporting monotonic clocks
- will facilitate switch from deprecated
- support receipt of
RELOAD_KEYRINGcommand to reload key - when loading key, add timer to disable key based on
valid-endtime - when encoding credential, create DEK packet for each active key
- when decoding credential, process each DEK packet regardless of rv