NOTA: se non altrimenti specificato, si fa riferimento a gpg2.
NOTA2: utile anche signing-party

KEY

NOTA: per gpg, davanti agli hash utilizzare 0x.

Tipi di chiavi:

Constant              Character
───────────────────────────────
PUBKEY_USAGE_SIG      S
PUBKEY_USAGE_CERT     C
PUBKEY_USAGE_ENC      E
PUBKEY_USAGE_AUTH     A

Sicurezza

Al momento consigliato 2048-bit RSA, fino al passaggio all'ECC.

Per ridurre il rischio di collisioni, usare --keyid-format LONG.

ECC

Dalla versione 2.1 (stretch) supporto anche all'ECC.

Gestione

Tenere sempre aggiornate le chiavi:

gpg --refresh-keys

gpg --import-key filename|hash

gpg [--keyserver pgp.mit.edu] --search-keys [user@example.com|'Mario Rossi']

gpg --list-options show-photos --fingerprint 0xdc6dc026

Personali

Si inizia sempre da gpg --edit-key mykey, quindi:

Per verificare la password:

gpg2 -o /dev/null --local-user MyKeyHASH -as <(echo 1234)

Distrubuzione:

gpg --send-key [keyname] [--keyserver serverdomain]

e quindi aspettare...

UID multipli

Argomento vario:

Di base scomodo, da utilizzare solo se si vuole tenere separate due identità (ad esempio principi di weboftrust differenti) e/o prestigio.

SubKeys

Di terzi

Ricerca ed importazione

Ricerca chiavi:

gpg --search-keys email

Oppure, se nota:

gpg --recv-key 0xHASH   <= da server
gpg --import key.txt    <= da file

Firma

Per firmare, una volta che la chiave è disponibile in locale:

--- via interfaccia ---
gpg --edit-key blake@cyb.org
Command> fpr      <= show fingerprint
Command> sign
Command> check    <= controlla firma
--- via cli ---
gpg --fingerprint C27659A2
gpg --sign-key C27659A2

In caso di UID multipli è sufficiente firmare solo il principale (prima di sign, selezionare il principale con 1).

Quindi posso esportare:

gpg --armor --output otherHASH.signby.MyHASH.asc --export otherHASH
---- esporto e crypto ----
gpg --armor --export 00AA11BB22CC33DD | gpg --encrypt -r 00AA11BB22CC33DD --armor --output 00AA11BB22CC33DD-signedBy-1A2B3C4D5E6F7G8H.asc

Nota: posso controllare il contenuto del file con gpg --list-packets firma_risca.asc, dovessi mai avere dubbi... In alternativa pgpdump [file] fornisce le medesime informazioni, ma più leggibili.

Solitamente non si effettua l'upload della chiave firmata, ma si invia copia al'interessato il quale importerà e pubblichera:

gpg --import file.asg
gpg --list-sigs        <= verifico
gpg --send-key         <= upload

WebOfTrust

Assegnazione

gpg2 --edit-key selectedkey
> trust
[here select the trust level (from 1 to 5)

Analisi

Visualizzazione grafica:

gpg --list-sigs | sig2dot > gpg.dot
dot -Tps gpg.dot > gpg.ps
evince gpg.ps

Testuale:

gpglist keyname|0xHASH

Debian notes

Importante: fino versione 8 jessie copresenza di gpg e gpg2, dalla 9 solo più gpg2 (gpg è un metapacchetto).

Keysigning party

Signing

Check for which keys a certain file is encrypted

gpg2 --batch --list-packets /your/file.gpg

Sitografia

MyWiki: GPG (last edited 2017-12-20 16:44:38 by risca)