Další podklíče pro dešifrování (ADSK) s GnuPG¶
✓ |
⨯ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
Additional Decryption Subkeys (ADSK) lze použít k automatickému přidávání příjemců při šifrování zprávy pomocí GnuPG. Typické případy použití zahrnují
mít jeden šifrovací klíč pro skupinu bez nutnosti sdílení soukromého klíče mezi členy skupiny,
přidání záložního klíče k šifrovacímu klíči a
nastavení hlavního klíče, který může dešifrovat zprávy pro ostatní klíče.
Poznámka
Pro konfiguraci ADSK potřebujete GnuPG 2.4.1 nebo novější. Chcete-li šifrovat zprávu pro klíč ADSK, potřebujete GnuPG 2.2.42 nebo novější.
Přehled¶
Tento návod vysvětluje, jak přidat záložní klíč (ID uživatele backup@example.com
) jako ADSK k hlavnímu klíči (ID uživatele main@example.com
). Oba klíče jsou uloženy na klíči Nitrokey. Stejný postup lze použít k přidání více klíčů ADSK k jednomu klíči nebo k přidání stejného klíče jako ADSK k více jiným klíčům.
Příprava klíčů¶
Podle jednoho z těchto návodů vygenerujte dva klíče:
Ujistěte se, že můžete uvést oba klíče pomocí gpg --list-keys
, například:
$ gpg --list-keys main@example.com backup@example.com
pub ed25519 2023-07-04 [SC]
55BC284C1D30D97638DA4A2C7963A4CD00C947CE
uid [ultimate] Main Key <main@example.com>
sub ed25519 2023-07-04 [A]
sub cv25519 2023-07-04 [E]
pub ed25519 2023-07-04 [SC]
5271152B531F7FFD8787818251FB75800E281241
uid [ultimate] Backup Key <backup@example.com>
sub ed25519 2023-07-04 [A]
sub cv25519 2023-07-04 [E]
Přidání služby ADSK¶
Nejprve určete otisk šifrovacího podklíče pro záložní klíč:
$ gpg --list-keys --with-subkey-fingerprints backup@example.com
pub ed25519 2023-07-04 [SC]
5271152B531F7FFD8787818251FB75800E281241
uid [ultimate] Backup Key <backup@example.com>
sub ed25519 2023-07-04 [A]
7AEA1A0EC7BD66FF03AFEFAC8F243D8EC7678FCC
sub cv25519 2023-07-04 [E]
C1735CB29890EEDEABCF1D0DC9310F81D77519BC
Vyhledejte řádek začínající sub
, který obsahuje písmeno E
, označující dílčí klíč s možností šifrování. Otisk tohoto dílčího klíče je uveden v dalším řádku. V tomto případě se jedná o otisk C1735CB29890EEDEABCF1D0DC9310F81D77519BC
.
Poté určete otisk hlavního klíče:
$ gpg --list-keys main@example.com
pub ed25519 2023-07-04 [SC]
55BC284C1D30D97638DA4A2C7963A4CD00C947CE
uid [ultimate] Main Key <main@example.com>
sub ed25519 2023-07-04 [A]
sub cv25519 2023-07-04 [E]
Najdete ji v dalším řádku za pub
, v tomto případě 55BC284C1D30D97638DA4A2C7963A4CD00C947CE
.
Nyní můžete přidat ADSK pomocí příznaku --quick-add-adsk
:
$ gpg --quick-add-adsk \
55BC284C1D30D97638DA4A2C7963A4CD00C947CE \
C1735CB29890EEDEABCF1D0DC9310F81D77519BC
Prvním argumentem je otisk hlavního klíče. Druhým argumentem je otisk šifrovacího podklíče záložního klíče.
Můžete zkontrolovat, zda byla vytvořena služba ADSK:
$ gpg --list-keys --with-subkey-fingerprints main@example.com
pub ed25519 2023-07-04 [SC]
55BC284C1D30D97638DA4A2C7963A4CD00C947CE
uid [ultimate] Main Key <main@example.com>
sub ed25519 2023-07-04 [A]
9DF42A789DA4E848295C529634E35A6897DFABFD
sub cv25519 2023-07-04 [E]
1DFD6EA8D8B88BEA063ADB4BD75708BAF0CD49C8
sub cv25519 2023-07-04 [R]
C1735CB29890EEDEABCF1D0DC9310F81D77519BC
Podklíč s možností R
(restricted) je ADSK. Má stejný otisk prstu jako šifrovací podklíč záložního klíče.
Nyní můžete veřejný klíč distribuovat pomocí ADSK.
Použití ADSK¶
Při šifrování zprávy pro hlavní klíč je nyní záložní klíč automaticky přidán jako příjemce. Jedinými požadavky jsou:
Odesílatel zprávy má aktuální veřejný klíč, který obsahuje ADSK.
Odesílatel zprávy používá GnuPG 2.2.42 nebo novější.
Pokud přidáte příznak --verbose
, můžete zkontrolovat klíče, kterými je zpráva zašifrována:
$ echo message | gpg --verbose --encrypt --armor --recipient main@example.com > /tmp/msg.asc
gpg: using pgp trust model
gpg: using subkey D75708BAF0CD49C8 instead of primary key 7963A4CD00C947CE
gpg: automatically retrieved 'main@example.com' via Local
gpg: This key belongs to us
gpg: reading from '[stdin]'
gpg: writing to stdout
gpg: ECDH/AES256 encrypted for: "D75708BAF0CD49C8 Main Key <main@example.com>"
gpg: ECDH/AES256 encrypted for: "C9310F81D77519BC Main Key <main@example.com>"
Pro kontrolu šifrované zprávy můžete také použít volbu --list-packets
:
$ gpg --pinentry-mode cancel --list-packets /tmp/msg.asc | grep "pubkey enc packet"
:pubkey enc packet: version 3, algo 18, keyid D75708BAF0CD49C8
:pubkey enc packet: version 3, algo 18, keyid C9310F81D77519BC
Každý řádek pubkey enc packet
představuje jeden klíč, kterým lze zprávu dešifrovat.
Zrušení ADSK¶
Pokud ADSK odvoláte, nebude již přidán jako příjemce při šifrování zprávy. Chcete-li provést odvolání, otevřete klíč pomocí gpg --edit-key
:
$ gpg --edit-key main@example.com
sec ed25519/7963A4CD00C947CE
created: 2023-07-04 expires: never usage: SC
card-no: FFFE 5E0E868D
trust: ultimate validity: ultimate
ssb ed25519/34E35A6897DFABFD
created: 2023-07-04 expires: never usage: A
card-no: FFFE 5E0E868D
ssb cv25519/D75708BAF0CD49C8
created: 2023-07-04 expires: never usage: E
card-no: FFFE 5E0E868D
ssb cv25519/C9310F81D77519BC
created: 2023-07-04 expires: never usage: R
[ultimate] (1). Main Key <main@example.com>
Pomocí key N
vyberte dílčí klíč, který chcete zrušit. Vybraný dílčí klíč je označen hvězdičkou:
gpg> key 2
sec ed25519/7963A4CD00C947CE
created: 2023-07-04 expires: never usage: SC
card-no: FFFE 5E0E868D
trust: ultimate validity: ultimate
ssb ed25519/34E35A6897DFABFD
created: 2023-07-04 expires: never usage: A
card-no: FFFE 5E0E868D
ssb cv25519/D75708BAF0CD49C8
created: 2023-07-04 expires: never usage: E
card-no: FFFE 5E0E868D
ssb* cv25519/C9310F81D77519BC
created: 2023-07-04 expires: never usage: R
[ultimate] (1). Main Key <main@example.com>
Odeberte podklíč pomocí revkey
a poté uložte změny pomocí save
:
gpg> revkey
Do you really want to revoke this subkey? (y/N) y
Please select the reason for the revocation:
0 = No reason specified
1 = Key has been compromised
2 = Key is superseded
3 = Key is no longer used
Q = Cancel
Your decision? 0
Enter an optional description; end it with an empty line:
>
Reason for revocation: No reason specified
(No description given)
Is this okay? (y/N) y
sec ed25519/7963A4CD00C947CE
created: 2023-07-04 expires: never usage: SC
card-no: FFFE 5E0E868D
trust: ultimate validity: ultimate
ssb ed25519/34E35A6897DFABFD
created: 2023-07-04 expires: never usage: A
card-no: FFFE 5E0E868D
ssb cv25519/D75708BAF0CD49C8
created: 2023-07-04 expires: never usage: E
card-no: FFFE 5E0E868D
ssb cv25519/C9310F81D77519BC
created: 2023-07-04 revoked: 2023-07-04 usage: R
[ultimate] (1). Main Key <main@example.com>
gpg> save
Nyní distribuujte aktualizovaný veřejný klíč.
Poznámka
Odvolání se stane účinným až poté, co odesílatel aktualizuje veřejný klíč s odvolaným ADSK. Zprávy, které již byly zašifrovány, mohou být dešifrovány pomocí ADSK i v případě jeho odvolání.