I would like to have the following setup: a main Key, saved in a hardware wallet or paper wallet. Let's call this level 1. The idea is to never have to use this key again, as a sort of last resort.

The main key has a subkey, let's call this level 2, this key is on the main device and still follow some strict security rules, but is actively used to generate subkey used by applications.

The level 2 subkey, let's call them level 3 key, follow less secure rules, for example are duplicated in multiple device, maybe even via storage cloud services (encrypted).

The question is: if my main device get stolen or compromised, can I use the level 1 key to revoke level 2 and level 3 keys?

As far as I understand, as long as level 2 and level 3 public keys are uploaded on the key server, it should be possible to follow this chain of thrust.

1 Answer 1


It seems you mix up two concepts of OpenPGP: subkeys and certifications.

OpenPGP subkeys allow a primary key, which is used to create subkeys (technically, the subkeys are created independently but signed by the primary key using a binding signature). Such a set of keys (one primary key, an arbitrary number of subkeys) is considered a single trust unit in OpenPGP, ie. the subkeys are trusted if the primary key is trusted (trusting the subkey is not considered an additional step in the web of trust).

There is no such thing as "subkeys of subkeys", though -- only primary keys are allowed to bind subkeys. You may not construct multi-level subkey hierarchies.

On the other hand, there are certifications in-between primary keys. Using them, you can construct arbitrary trust networks (the web of trust) -- but each primary key is considered a single trust entity, and any other party would have to follow that trust chain and issue trust on each of the keys manually (in contrast to real subkeys, as soon as the primary key is considered valid, automatically the same applies to the subkeys).

Generally, consider a primary key to form an identity -- and (a single level of) subkeys can be used for key management and "keeping the primary key safe". You will have to use it from time to time -- creating and manipulating user IDs, subkeys and certifications on other keys is only allowed using the primary key. Certifications are used to provide trust statements among such identities. While you could of course use certifications to construct such a "two-level-subkey-hierarchy" technically, you are breaking the expected use of certifications and will have a hard time explaining third parties which key to trust (and use for what purpose).

  • thanks, I was hoping the key subsystem could be "exploited" to get a chain of trust; I understand is a particular situation and maybe was just hard to find some literature.
    – Lesto
    Sep 8, 2017 at 22:08
  • The OpenPGP specification does not allow subkeys to bind other subkeys, so there is no standard-compliant way to do so. Technically, this will not be an issue (although you'd have to modify the source code of the existing implementations), but you would not be interoperable with other users of OpenPGP.
    – Jens Erat
    Sep 9, 2017 at 6:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.