In cosa consiste una firma OpenPGP?

4

Non capisco come funzionano le firme di OpenPGP. Ho una foto che voglio firmare e un certificato digitale composto dal mio nome e indirizzo email e la mia chiave pubblica. Inoltre, una firma digitale (hash di chiave pubblica, nome e indirizzo, crittografata con la mia chiave privata).

Questo certificato viene importato nel mio sistema e impostato come affidabile.

Ora sto firmando la mia foto (sto usando Kleopatra, ma non importa). Apro un'immagine e seleziono il mio certificato. Il programma emette un piccolo file picture.sig nella cartella di destinazione. Cosa contiene questo file? Quello che immagino è che contiene un hash dell'immagine, che è stato crittografato dalla chiave privata. Quindi confrontando l'hash dell'immagine e la firma decifrata mostrerà se l'immagine è ciò che pensiamo che sia.

Ma il file .sig dovrebbe contenere anche l'intero certificato, o forse un'impronta digitale. Cosa contiene? In che modo Kleopatra sceglie automaticamente il certificato giusto?

Inoltre, se esporto questo certificato, rimuoverlo dal sistema e quindi importarlo, sarà impossibile verificare l'integrità del file fino a quando non firmerò questo certificato importato con uno dei miei certificati.

    
posta yanpas 27.01.2016 - 15:25
fonte

1 risposta

3

Firme OpenPGP

The program outputs a small picture.sig file to the destination folder. What does this file contain?

[...]

But the .sig file should also contain entire certificate, or maybe a fingerprint of it. What does it contain? How does Kleopatra automatically choose the right certificate?

Le firme OpenPGP possono contenere il documento originale o no. Sembra che Kleopatra abbia creato una cosiddetta firma separata senza il documento originale (sulla riga di comando, questa viene creata con gpg --detach --sign in esecuzione).

Le firme OpenPGP sono calcolate su un hash del documento da firmare. Tecnicamente, una firma è l'hash del documento crittografato usando la chiave privata , quindi può essere decifrata con la chiave pubblica. Dato che la decrittografia produce l'hashsum corretto, il file deve essere stato firmato da qualcuno con accesso alla chiave privata (si spera che sia il proprietario della chiave). Ricorda che la crittografia regolare funziona in senso inverso: il messaggio (o per essere più specifico, una chiave di sessione per la crittografia simmetrica) viene crittografato utilizzando la chiave pubblica e può essere decifrato solo utilizzando la chiave privata.

Inoltre, le firme OpenPGP includono diversi metadati, tra cui l'ID della chiave lunga della chiave di firma (non l'impronta digitale). Il certificato completo / chiave pubblica non è incluso e deve essere recuperato (ad esempio, dalla rete del server delle chiavi) in base a questo ID quando non è disponibile localmente.

È possibile visualizzare il contenuto del file della firma utilizzando i comandi gpg --list-packets e pgpdump , offrendo output simili. pgpdump mostra alcuni più dettagli se usato insieme all'opzione -l (stampa i dati letterali, il messaggio originale se disponibile) e -i (stampa i numeri reali come risultati delle operazioni crittografiche). Un esempio per un file firmato usando la mia chiave:

Old: Signature Packet(tag 2)(540 bytes)
    Ver 4 - new
    Sig type - Signature of a binary document(0x00).
    Pub alg - RSA Encrypt or Sign(pub 1)
    Hash alg - SHA1(hash 2)
    Hashed Sub: signature creation time(sub 2)(4 bytes)
        Time - Wed Jan 27 16:36:30 CET 2016
    Sub: issuer key ID(sub 16)(8 bytes)
        Key ID - 0x8E78E44DFB1B55E9
    Hash left 2 bytes - 7d 3c 
    RSA m^d mod n(4093 bits) - 18 1d d5 3f 6d f1 3e bb 93 08 8d 83 1a 3b a7 7a 70 56 f4 2c cb 92 cf a9 d1 f0 21 cd 7a f0 f8 5d 3e 75 46 d1 6a 14 56 27 a3 05 4a 6c 31 ee d4 8d 22 c6 d1 8a 41 6c 22 30 e4 90 19 1a 3f 18 ca 76 a3 1d d3 c1 f5 4a b7 54 9e 5f 83 dd 43 25 6b 80 66 65 34 36 80 4d 69 c7 fd 2a 3b 5b e8 a5 d8 c5 5a 26 a5 a8 19 b6 74 bc 47 69 e0 b7 a8 14 4b e7 51 5e e6 65 18 67 69 3e c8 5f 1b 78 8e f2 60 fa 15 a0 a0 be 7e 71 2f 68 19 07 af f7 d2 21 dc fb 3f f6 67 fd de eb ed c0 29 93 b7 59 5e 0a 35 1f 28 f4 89 51 43 a9 33 a9 f1 75 d6 6b 37 6b 3e a1 04 76 c5 43 b7 a8 05 3f 1a 08 b0 83 76 73 1e 61 78 e6 3b be 69 ca 60 93 5b e2 28 6c 53 65 63 ef 4b 06 df ce d4 81 47 ce 29 ea e3 06 a0 2a 13 30 98 00 8b 81 4d af 3d 5f 91 a0 26 e5 be 35 49 95 b3 7f 01 76 47 29 5e 8c 78 2b 22 c7 49 3a a1 b8 c5 48 ec 86 41 9b 34 65 a3 f1 3b f2 a4 8f 2c 2f 56 cd 72 86 42 7c 0d 08 51 8c 26 ee 91 1b 5a fc 6f 60 70 88 f8 d5 83 ea 89 c6 5c 13 0c 32 03 7b e2 82 50 77 f7 0d 2d 10 8c c9 95 05 b2 c7 99 ed 74 e4 46 75 95 00 6d d4 1b fc 4d 77 cf 7d f0 3f 1c 48 fa ab 8e 83 26 9c 09 e2 da e0 92 42 c6 8a df f6 3f 68 54 3a 02 49 d8 0a 1b 32 49 73 13 db 46 28 3a a1 aa 02 9a 9c cf 90 61 a5 ed 3f 7b 16 d3 64 1a cc 76 19 7e 84 62 ce 70 5a a7 cd be 40 28 72 f1 f0 16 7d fb 5a 84 69 d5 dc f9 f8 03 f7 5a ab a5 24 08 da a2 f3 14 1e e4 72 f9 62 72 d7 e0 52 07 b3 7c 1d 72 e5 6b 6f 43 9f 47 24 61 ab a3 c5 9a 6b c0 38 fb 8f 21 38 79 b5 2c 7f e8 1b 25 34 fd ce d5 2c e7 cd f8 57 43 b6 68 47 76 9e 03 70 f5 1e 30 21 83 12 bf fc d4 44 b9 dd 05 fc a0 2b f1 c0 56 3b 92 af 97 08 16 95 01 0d 12 c2 
        -> PKCS-1

fiducia

Moreover, if I export this certificate, remove it from system and then import it; it will be impossible to check integrity of file until I won't sign this imported certificate by one of my own certificates.

Questo è un altro problema considerando la fiducia, e devi discriminare tra due operazioni: verificare una firma (in termini di firma emessa da una chiave di donazione, e il documento non è stato manomesso) contro convalidare (se la chiave è affidabile, in base alle certificazioni). Non appena è disponibile la chiave pubblica, puoi verificare se la chiave è stata emessa da questa chiave (con altre parole, decifrare l'hash con la chiave pubblica e confrontarla), ma non hai necessariamente le informazioni richieste fidarsi della chiave o no. Un modo per farlo è confrontare l'impronta digitale della chiave con l'altra parte e rilasciare una certificazione.

    
risposta data 27.01.2016 - 17:03
fonte

Leggi altre domande sui tag