How one auth server's JWT signing key moved from memory to vault — and what went wrong
A software team managing a production authentication server documented how their JWT signing key evolved through three distinct stages: from in-process RSA-2048 memory storage, to a Vault KMS where the key is never exported and only signs on request. The shift to KMS meant a compromised application could no longer yield the private key itself, only the ability to request signatures — a capability that can be rate-limited, audited, and revoked. However, the same commit that introduced KMS signing quietly halved the PBKDF2 password-hashing iteration count from 100,000 to 50,000, a regression that went unnoticed because reviewers focused on the headline security improvement. The incident revealed a blind spot in code review: security-labeled changes can carry hidden regressions in sensitive constants like work factors, key sizes, or algorithm names. The team now treats work-factor values with the same scrutiny as algorithm choices, requiring explicit assertion and verification rather than inherited trust from a commit's stated purpose.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in