TPM 2.0/cryptoprocessor protection of device private keys
- Dominant language
- Go
- Stars
- 9.2k
- Forks
- 1.3k
- Avg merge
- 12h 58m
- Merged PRs (30d)
- 56
Description
It seems device keys are stored on-disk, which isn't ideal. This [old reddit thread](https://www.reddit.com/r/Keybase/comments/798pgz/what_happens_if_a_device_key_gets_compromised/) demonstrates the vulnerability:
> Eeep, the SecretBox key used to encrypt your device private keys are sitting on disk:
> [...]
> Regardless if you have an active session or not... I.E, if you stay logged in, but say shutdown, and an advisory images your disk, they'd have your Keybase Device Keys...
Modern laptops have TPM 2.0 (which [has built-in support in GnuPG 2.3](https://gnupg.org/blog/20210315-using-tpm-with-gnupg-2.3.html)), Pixel devices have a Titan M chip, and Apple has a "Secure Enclave". Would it be possible to use the secure crytoprocessors, when available, to secure device keys? (And how helpful would it actually be to use these? ie., is it not always possible to enforce physical interaction?)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the current device-key storage behavior described in the issue, then compare the referenced TPM 2.0/GnuPG approach with Titan M and Secure Enclave capabilities. Determine whether secure cryptoprocessors can be used when available and how much protection they provide, including physical-interaction requirements. Done means a concrete feasibility and usefulness assessment with an implementable scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- cryptography, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100