-
Notifications
You must be signed in to change notification settings - Fork 49
Key Rotation Milestones
Chris Dunlap edited this page Sep 2, 2020
·
3 revisions
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