Verifica della firma digitale senza chiave pubblica chiave nella firma

6

Quando si ricevono e-mail, a volte vedo quanto segue:

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1

I found an integer overflow in PHP, in the conversation of dates to "Julian Day Count" function.

The commit, with a PoC can be found here: https://github.com/MegaManSec/php-src/commit/a538d2f5605798422f2746636 ecdc300f8ebcaa1
Use CVE-2015-1353.

CVE assignment team, MITRE CVE Numbering Authority M/S M300 202 Burlington
Road, Bedford, MA 01730 USA [ PGP key available through
http://cve.mitre.org/cve/request_id.html ]

-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.14 (SunOS)

iQEcBAEBAgAGBQJUw/LpAAoJEKllVAevmvmsiYoH/Ag+n/8x+blfJyccUhjt39bp
nRxsuZw2MIx7COJcoufIxeycu2YGnm1O9RxZBA9lKmVYjb0wjMi9yHogcWkT8UOo 
i93ARMw7V6UFp1nV+2Kv5BgVh2EcwEBXyDkKkcaN2l68Dm3nRoApMB4i4m7G67BC 
K2T1L4eq1orQCNaR7n4hup2155pHZbLqZQRMAYn5EGQPr/+zPjgq+PQKes631US5 
SXrnthRKOAfZk9QVIlxf5t1JfVvC3Cta0HgETTaXJ8TbqEAA5AXw8hl+RmhWgFnI 
Cto73LM+iiA1tyxDXdXnfdRqV/uxmqK+FCgO6asyCuT7EYOpBZ74Wmq1z+RVJRc=
=VLR4 
-----END PGP SIGNATURE-----

Da quello che ho capito, una firma digitale funziona nel modo seguente:

  1. Il contenuto del messaggio è sottoposto a hash per fornire un output a lunghezza fissa dell'intero contenuto.
  2. L'hash che viene generato viene quindi crittografato con la chiave privata dei mittenti (PS: pensavo che la chiave pubblica fosse usata per crittografare le cose, contesto differente?)
  3. Il processo precedente crea una firma digitale che viene trasmessa con il messaggio originale
  4. Il ricevitore utilizza la chiave pubblica per decrittografare il testo cifrato per restituire l'hash e quindi esegue il hash del messaggio per vedere se è lo stesso

Il problema che non riesco a capire è la parte della chiave pubblica, nell'esempio sopra di Mitre, non c'è nessuna chiave pubblica inviata per decifrare la firma. Quindi, come faccio a verificare questa firma? Vedo che hanno fornito un link "Chiave PGP disponibile" ma questo link contiene l'ID della chiave. Cos'è questo ID chiave ed è ciò di cui ho bisogno per trovare la chiave pubblica?

    
posta W Khan 29.01.2015 - 12:52
fonte

2 risposte

4

Ricerca del PGP / KEY di CVE

Questo articolo spiega come cercare una chiave GPG e in particolare la chiave pubblica del sito CVE. Ci sono istruzioni su come importarlo lì, e ho fornito le istruzioni di importazione di base di seguito.

Tipico GPG / PGP

In PGP / GPG quando un utente genera una chiave è associato anche un ID della chiave. Noterai, nel link che hai fornito, che gli ultimi 4 byte dell'impronta sono anche l'ID della chiave .

Generalmente, l'utente carica la sua chiave pubblica su un server delle chiavi. L'ID della chiave è ciò che il server delle chiavi utilizza per cercare le chiavi all'interno del suo database. Altri utenti possono cercare nel key server l'ID della chiave associato ai dati che stanno cercando di decodificare o verificare. GPG usa il tuo portachiavi per eseguire tutte le sue operazioni. Su una macchina Linux puoi installare GPG.

Debian:

sudo apt-get install pgpgpg

Puoi quindi importare le chiavi nel tuo portachiavi con un determinato ID della chiave da un server delle chiavi:

gpg --recv-keys 0x<key_id> --keyserver 'http://key-server.org'

O se hai il file di chiavi:

gpg --import <keyfile>

Ci sono alcuni modi in cui un documento può essere firmato. Un modo creando un file di firma distaccato. In questo caso puoi fare quanto segue:

gpg --verify file-1.2.3.tar.sig file-1.2.3.tar

Tuttavia, nel tuo caso hai sia il messaggio che la firma nello stesso file. Puoi dirlo perché hai sia -----BEGIN PGP SIGNED MESSAGE----- che -----BEGIN PGP SIGNATURE----- all'interno del messaggio. In questo caso puoi fare quanto segue :

gpg --output your-file.txt --decrypt my-file.gpg

Per ognuno di questi comandi verifica GPG proverà a cercare nel tuo portachiavi la chiave utilizzata per firmare il messaggio. Se non riesce a trovarlo, stamperà un messaggio di errore.

Hai detto che lo vedi nelle email. Se stai usando Thunderbird c'è un'estensione chiamata Enigmail che ti permetterà di impostare i server delle chiavi, importare GPG / PGP chiavi e crittografa / decodifica / verifica le firme email per te.

Per rispondere alle tue domande su come si riferiscono le chiavi pubbliche e le chiavi private, leggerei Risposta di Thomas Pornin qui .

    
risposta data 29.01.2015 - 15:24
fonte
1

Non ho molto in pgp o gpg, ma posso dirti come funziona con la semplice rsa.

Se vuoi firmare qualcosa lo cripti con la tua chiave privata, chiunque riceve questo messaggio può decodificarlo con la tua chiave pubblica e quindi sa che qualcuno che ha la chiave privata ha inviato questo messaggio (si spera solo tu abbia il privato chiave).

Se entrambi avessero chiavi Rsa, potresti criptarlo con la tua chiave privata e poi criptarlo con la chiave pubblica della persona a cui vuoi inviare il messaggio. Quindi il destinatario decrittografa il messaggio di conseguenza e hai un messaggio che solo una persona può aprire e solo una persona potrebbe aver inviato.

Per quanto ho capito, pgp e gpg hanno cancellato i messaggi con una chiave segreta e poi hanno crittografato questa chiave con RSA.

Per i tuoi problemi con le chiavi: ci sono server di chiavi pubbliche (es .: MIT: link )

    
risposta data 29.01.2015 - 14:34
fonte

Leggi altre domande sui tag