linuxboot / linuxboot/heads

FR: Use Trezor's GPG capability to decrypt LUKS keys

Open
#637 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Makefile
Stars
1.6k
Forks
211
Avg merge
4d 21h
Merged PRs (30d)
6

Description

Trezor apart from being a bitcoin wallet provides GPG functionality. I think there are major pros of the device compared to Yubikeys:

- Open hardware/software.
- Keys are derived from the mnemonic, which can be remembered. In case Trezor is lost it's easy to recover the keys.
- It's protected by a pin code and an additional passphrase (which is used with the mnemonic stored on the device to generate a new key space). Just stealing the device is not enough. The pin code is much harder to shoulder surf.

It would be amazing if it could be used to decrypt LUKS keys instead of using TPM.

Trezor Bridge is written in go, and could potentially be just compiled and included as a part of heads build. This service starts a HTTP server to provide API to communicate with Trezor. Unfortunately, the other piece — trezor-agent (https://github.com/romanz/trezor-agent) uses Python, which I am not certain could fit in heads installation. Trezor-agent doesn't require the bridge, but will use it if service is found.

There might also be a completely custom solution using Trezor without GPG directly.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the proposed Trezor Bridge and trezor-agent approaches described in the issue, including their communication and runtime requirements. Determine a concrete integration scope for Heads and define completion around decrypting LUKS keys through Trezor without relying on TPM.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, python
Domain
operating-systems, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.