keybase / keybase/client

TPM 2.0/cryptoprocessor protection of device private keys

Open
#24,689 0 comments 1 reaction 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.