Come vengono definiti i flag di utilizzo GPG nell'elenco dei dettagli chiave?


58

Quando elenco i dettagli di una chiave ottengo un output in questo modo:

$ gpg --edit-key SOMEID
pub [..] created: [..] expires: [..]   usage:SC
[..]
sub [..] created: [..] expires: [..]   usage: E

O anche usage: SCAsu un'altra chiave (la parte della chiave principale).

Cosa significano queste abbreviazioni nel campo di utilizzo?

Posso derivare che:

S -> for signing
E -> for encrypting

Ma che dire di Ce A?

E ce ne sono altri?

E dove cercare cose del genere?

Risposte:


59

Ok, il manuale di gpg non sembra menzionare queste abbreviazioni. Quindi, si deve guardare alla fonte.

Ad esempio sotto Debian / Ubuntu:

$ apt-get source gnupg2
$ cd gnupg2-2.0.17
$ cscope -bR
$ grep 'usage: %' . -r --exclude '*po*'
$ vim g10/keyedit.c
jump to usage: %
jump to definition of `usagestr_from_pk`

Dal codice si può derivare la seguente tabella:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Carattere costante
───────────────────────────────
PUBKEY_USAGE_SIG S
PUBKEY_USAGE_CERT C
PUBKEY_USAGE_ENC E
PUBKEY_USAGE_AUTH A
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Pertanto, ad esempio, usage: SCAsignifica che la sottochiave può essere utilizzata per la firma, per la creazione di un certificato e per scopi di autenticazione.


7
davvero ovunque nei documenti?
Jaime Hablutzel,

@JaimeHablutzel, hai trovato buona documentazione su questo?
Eric Fail

No, scusa, ma la fonte sembra un buon punto di partenza
Jaime Hablutzel,

15

Il layout della --edit-keylista non è documentato (non che potrei trovare comunque). Le abbreviazioni che menzioni comunque sono, da qualche parte nelle pagine di informazioni ( info gpg).

Ho cercato S:e scoperto che in realtà volevo cercare usage:.

In "Opzioni relative alla chiave GPG":

4.2.1 Come modificare la configurazione

Queste opzioni vengono utilizzate per modificare la configurazione e di solito si trovano nel file delle opzioni.

'--list-options parameters'

 show-usage

      Show usage information for keys and subkeys in the standard
      key listing.  This is a list of letters indicating the allowed
      usage for a key ('E'=encryption, 'S'=signing,
      'C'=certification, 'A'=authentication).  Defaults to no.

Quindi, fare gpg -k --list-options show-usage 1A3ABKEYti mostrerà qualcosa del genere:

pub   rsa4096/1A3ABKEY 2015-01-25 [SC]
uid         [ultimate] Some Key
sub   rsa4096/4B907KEY 2015-09-19 [S]
sub   rsa4096/F9A41KET 2015-09-19 [E]

Altre informazioni sono disponibili in "Uso incustodito di GPG"

Utilizzo chiave: ELENCO DEGLI USI

 Space or comma delimited list of key usages.  Allowed values are
 'encrypt', 'sign', and 'auth'.  This is used to generate the key
 flags.  Please make sure that the algorithm is capable of this
 usage.  Note that OpenPGP requires that all primary keys are
 capable of certification, so no matter what usage is given here,
 the 'cert' flag will be on.  If no 'Key-Usage' is specified and the
 'Key-Type' is not 'default', all allowed usages for that particular
 algorithm are used; if it is not given but 'default' is used the
 usage will be 'sign'.

Quindi, anche se non immediatamente evidenti, le informazioni sono lì, da qualche parte, sul tuo sistema. Se mannon ti aiuta, prova man -ke / o info.


Posso vederlo sulla manpage di gpg 1.4.18, tuttavia sembra assente dal manuale di gpg 2.0.28. Inoltre, su entrambe le versioni, il comando "gpg -k --list-options show-use 1A3ABKEY" genera "gpg: opzione sconosciuta" show-use ""
YoungFrog,

@YoungFrog. Grazie per il commento. Ho chiarito di aver trovato le informazioni nelle pagine informative. Per quanto riguarda il comando non funziona, per me funziona su gpg (2.1.8). Quando provo gpg1 (1.4.19) ottengo anche gpg: unknown option 'show-usage' gpg: invalid list optionsse il suo utilizzo è documentato nelle pagine di informazioni di gpg1 ...
jeroentbt,

5

Questi flag chiave sono definiti nelle specifiche OpenPGP

5.2.3.21. Bandiere chiave

(N ottetti di bandiere)

Questo pacchetto secondario contiene un elenco di flag binari che contengono informazioni su una chiave. È una stringa di ottetti e un'implementazione NON DEVE assumere una dimensione fissa. Questo è così che può crescere nel tempo. Se un elenco è più corto di quanto previsto da un'implementazione, i flag non dichiarati sono considerati zero. I flag definiti sono i seguenti:

   First octet:

   0x01 - This key may be used to certify other keys.

   0x02 - This key may be used to sign data.

   0x04 - This key may be used to encrypt communications.

   0x08 - This key may be used to encrypt storage.

   0x10 - The private component of this key may have been split
          by a secret-sharing mechanism.

   0x20 - This key may be used for authentication.

   0x80 - The private component of this key may be in the
          possession of more than one person.

5
Sembra un riferimento utile, ma in realtà non risponde alla domanda.
G-Man dice "Ripristina Monica" il

2

Sepolto in profondità nella mailing list di GnuPG ...

Cosa significano le lettere a destra delle parole "utilizzo"?
(S, C, A, E) Posso solo immaginare | S | ign, | E | ncrypt, ....

(S) ign: firma alcuni dati (come un file)
(C) cancella: firma una chiave (si chiama certificazione)
(A) autentica: autenticati su un computer (ad esempio, accedi)
(E) ncrypt: encrypt dati


2

Un'altra fonte di informazioni è il file DETAILS nella distribuzione GnuPG .

Sezione "Campo 12 - Le principali funzionalità" afferma

Le capacità definite sono:

e
Encrypt
S
Cartello
c
Certificare
un'
Autenticazione
?
Capacità sconosciuta

Una chiave può avere qualsiasi combinazione di essi in qualsiasi ordine. 
Oltre a queste lettere, la chiave primaria è in maiuscolo 
versioni delle lettere per indicare le capacità utilizzabili dell'intero 
chiave e una potenziale lettera 'D' per indicare una chiave disabilitata.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.