Papildomi dešifravimo subklavišai (ADSK) su GnuPG#
✓ |
⨯ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
Papildomi dešifravimo subklavišai (ADSK) gali būti naudojami automatiškai pridėti gavėjus šifruojant žinutę su GnuPG. Tipiniai naudojimo atvejai
turėti vieną šifravimo raktą grupei ir nereikalauti, kad grupės nariai dalytųsi privačiuoju raktu,
prie šifravimo rakto pridedant atsarginį raktą, ir
nustatyti pagrindinį raktą, kuriuo galima iššifruoti kitų raktų pranešimus.
Pastaba
ADSK konfigūruoti reikia „GnuPG 2.4.1“ arba naujesnės versijos. Norint ADSK raktu užšifruoti pranešimą, reikia GnuPG 2.2.42 arba naujesnės versijos.
Apžvalga#
Šiame vadove paaiškinama, kaip pridėti atsarginį raktą (naudotojo ID backup@example.com
) kaip ADSK prie pagrindinio rakto (naudotojo ID main@example.com
). Abu raktai saugomi „Nitrokey“ rakte. Tuos pačius veiksmus galima naudoti norint prie rakto pridėti kelis ADSK arba tą patį raktą kaip ADSK pridėti prie kelių kitų raktų.
Raktai paruošiami#
Norėdami sukurti du raktus, vadovaukitės vienu iš šių vadovų:
Įsitikinkite, kad abu raktus galite išvardyti su gpg --list-keys
, pavyzdžiui:
$ 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]
ADSK pridėjimas#
Pirmiausia nustatykite atsarginės kopijos rakto šifravimo poskyrio pirštų atspaudą:
$ 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
Ieškokite eilutės, prasidedančios sub
, kurioje yra raidė E
, nurodanti šifravimo galimybę turintį subklavišą. Šio sub rakto pirštų atspaudas nurodytas kitoje eilutėje. Šiuo atveju pirštų atspaudas yra C1735CB29890EEDEABCF1D0DC9310F81D77519BC
.
Tada nustatykite pagrindinio rakto pirštų atspaudus:
$ 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]
Jį rasite kitoje eilutėje po pub
, šiuo atveju 55BC284C1D30D97638DA4A2C7963A4CD00C947CE
.
Dabar galite pridėti ADSK naudodami --quick-add-adsk
vėliavą:
$ gpg --quick-add-adsk \
55BC284C1D30D97638DA4A2C7963A4CD00C947CE \
C1735CB29890EEDEABCF1D0DC9310F81D77519BC
Pirmasis argumentas yra pagrindinio rakto pirštų atspaudas. Antrasis argumentas yra atsarginio rakto šifravimo rakto poaibio pirštų atspaudas.
Galite patikrinti, ar ADSK sukurtas:
$ 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
ADSK yra R
(riboto naudojimo) galimybę turintis subklavišas. Jis turi tą patį pirštų atspaudą, kaip ir atsarginio rakto šifravimo poaibis.
Dabar viešąjį raktą galite platinti su ADSK.
ADSK naudojimas#
Užšifruojant žinutę pagrindiniu raktu, atsarginis raktas dabar automatiškai įtraukiamas kaip gavėjas. Vieninteliai tam keliami reikalavimai:
Pranešimo siuntėjas turi atnaujintą viešąjį raktą, kuriame yra ADSK.
Pranešimo siuntėjas naudoja GnuPG 2.2.42 arba naujesnę versiją.
Jei pridėsite --verbose
vėliavą, galėsite patikrinti, kokiais raktais užšifruotas pranešimas:
$ 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>"
Taip pat galite naudoti --list-packets
parinktį užšifruotam pranešimui patikrinti:
$ 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
Kiekviena pubkey enc packet
eilutė reiškia vieną raktą, kuriuo galima iššifruoti pranešimą.
ADSK atšaukimas#
Jei atšauksite ADSK, šifruojant pranešimą jis nebebus įtrauktas kaip gavėjas. Norėdami atšaukti, atidarykite raktą naudodami 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>
Pasirinkite atšaukiamą rakto dalį naudodami key N
. Pasirinktas pagalbinis raktas pažymėtas žvaigždute:
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>
Atšaukite pagalbinį raktą naudodami revkey
ir išsaugokite pakeitimus naudodami 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
Dabar išplatinkite atnaujintą viešąjį raktą.
Pastaba
Atšaukimas įsigalios tik tada, kai siuntėjas atnaujins viešąjį raktą su atšauktu ADSK. Pranešimus, kurie jau buvo užšifruoti, vis tiek galima iššifruoti naudojant ADSK, net jei jis atšauktas.