Lisää salauksen purkuavaimia (ADSK) GnuPG:n kanssa#

(Nitrokey 3 - macOS)

Additional Decryption Subkeys (ADSK) voidaan käyttää vastaanottajien automaattiseen lisäämiseen, kun viestiä salataan GnuPG:llä. Tyypillisiä käyttötapauksia ovat

  • ryhmällä on yksi ainoa salausavain ilman, että yksityistä avainta tarvitsee jakaa ryhmän jäsenten kesken,

  • vara-avaimen lisääminen salausavaimeen, ja

  • perustamalla pääavain, jolla voidaan purkaa muiden avainten viestit.

Muista

ADSK:n määrittämiseen tarvitset GnuPG 2.4.1:n tai uudemman version. Jotta voit salata viestin ADSK-avaimelle, tarvitset GnuPG 2.2.42:n tai uudemman version.

Yleiskatsaus#

Tässä oppaassa kerrotaan, miten vara-avain (käyttäjätunnus backup@example.com) lisätään ADSK:ksi pääavaimeen (käyttäjätunnus main@example.com). Molemmat avaimet on tallennettu Nitrokey-avaimeen. Samoja vaiheita voidaan käyttää useiden ADSK:iden lisäämiseen avaimeen tai saman avaimen lisäämiseen ADSK:na useisiin muihin avaimiin.

Avainten valmistelu#

Seuraa jompaakumpaa näistä ohjeista kahden avaimen luomiseksi:

Varmista, että voit luetella molemmat avaimet osoitteessa gpg --list-keys, esimerkiksi:

$ 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:n lisääminen#

Määritä ensin vara-avaimen salausavaimen sormenjälki:

$ 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

Etsi rivi, joka alkaa kirjaimella sub ja sisältää kirjaimen E, joka osoittaa salausominaisuuksia sisältävän aliavaimen. Tämän aliavaimen sormenjälki on lueteltu seuraavalla rivillä. Tässä tapauksessa sormenjälki on C1735CB29890EEDEABCF1D0DC9310F81D77519BC.

Määritä sitten pääavaimen sormenjälki:

$ 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]

Löydät sen seuraavalta riviltä pub jälkeen, tässä tapauksessa 55BC284C1D30D97638DA4A2C7963A4CD00C947CE.

Nyt voit lisätä ADSK:n käyttämällä --quick-add-adsk -lippua:

$ gpg --quick-add-adsk \
      55BC284C1D30D97638DA4A2C7963A4CD00C947CE \
      C1735CB29890EEDEABCF1D0DC9310F81D77519BC

Ensimmäinen argumentti on pääavaimen sormenjälki. Toinen argumentti on vara-avaimen salausavaimen aliavaimen sormenjälki.

Voit tarkistaa, että ADSK on luotu:

$ 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

Aliavain, jolla on R (rajoitettu) kyky, on ADSK. Sillä on sama sormenjälki kuin vara-avaimen salausavaimella.

Nyt voit jakaa julkisen avaimen ADSK:n kanssa.

ADSK:n käyttäminen#

Kun viestiä salataan pääavainta varten, vara-avain lisätään nyt automaattisesti vastaanottajaksi. Ainoat vaatimukset tälle ovat seuraavat:

  • Viestin lähettäjällä on ajantasainen julkinen avain, joka sisältää ADSK:n.

  • Viestin lähettäjä käyttää GnuPG 2.2.42:ta tai uudempaa.

Jos lisäät --verbose -lippulauseen, voit tarkistaa, millä avaimilla viesti on salattu:

$ 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>"

Voit myös käyttää --list-packets -vaihtoehtoa salatun viestin tarkistamiseen:

$ 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

Jokainen pubkey enc packet rivi edustaa yhtä avainta, jolla viesti voidaan purkaa.

ADSK:n peruuttaminen#

Jos peruutat ADSK:n, sitä ei enää lisätä vastaanottajaksi, kun viestiä salataan. Voit tehdä peruuttamisen avaamalla avaimen komennolla 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>

Valitse peruutettava aliavain osoitteella key N. Valittu aliavain on merkitty tähdellä:

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>

Peruuta aliavain komennolla revkey ja tallenna muutokset komennolla 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

Levitä nyt päivitetty julkinen avain.

Muista

Peruutus tulee voimaan vasta, kun lähettäjä on päivittänyt julkisen avaimen peruutetulla ADSK:lla. Jo salatut viestit voidaan edelleen purkaa ADSK:lla, vaikka ADSK peruutettaisiinkin.