Quale parte di un certificato autofirmato può essere considerata attendibile?

12

Voglio garantire che il mittente del documento B sia la stessa persona di chi mi ha inviato in precedenza il documento A. Entrambi i documenti sono firmati con certificati autofirmati. Non mi interessa conoscere l'identità del mittente nel mondo reale.

Quando apro il certificato autofirmato con un visualizzatore di certificati, mostra l'oggetto del certificato, l'emittente, il numero di serie, l'identificatore della chiave dell'oggetto, la chiave pubblica (molto lunga senza senso), il digest SHA1 della chiave pubblica, i dati X.509, Digestione SHA1 (di cosa?) E digestione MD5 (di cosa?).

So che l'emittente del certificato autofirmato può inserire elementi arbitrari nei campi "soggetto", "emittente", "numero di serie", quindi non hanno senso. Ma non so nulla di altri campi.

Se i certificati contenuti in questi due documenti hanno, ad esempio, esattamente la stessa stringa "SHA1 digest of public key", significa che sono effettivamente firmati dalla stessa persona? Può un hacker fingere?

    
posta certnoob 16.01.2018 - 15:42
fonte

4 risposte

22

Le chiavi pubbliche e private sono collegate in modo tale che se due certificati hanno la stessa chiave pubblica, sono stati creati utilizzando la stessa chiave privata.

Quindi, se si assume che la chiave privata sia effettivamente mantenuta privata, la parte di cui ci si può fidare dei certificati per identificare il creatore è la chiave pubblica , e per estensione il digest della chiave pubblica.

    
risposta data 16.01.2018 - 16:14
fonte
14

Se due certificati autofirmati hanno chiavi pubbliche diverse non è possibile determinare se questi certificati sono stati creati dalla stessa persona o meno.

Se due certificati autofirmati hanno la stessa chiave pubblica, almeno si sa che è stata utilizzata la stessa chiave privata per creare i certificati. Se si presume che questa chiave privata segreta sia nota solo a una persona, è possibile dedurre che la stessa persona ha creato entrambi i certificati.
Se invece si deve presupporre che più persone possano avere accesso alla stessa chiave privata, allora almeno si sa che uno dei certificati è stato emesso da una persona in questo gruppo e l'altra dalla stessa persona o da un'altra persona dello stesso gruppo.

    
risposta data 16.01.2018 - 15:55
fonte
1

Oltre ai punti fatti da altri utenti, se i documenti stessi sono firmati con MD5 o SHA-1, allora non ci si può fidare che siano stati firmati dalla stessa persona, anche se le firme sono valide e hanno lo stesso pubblico chiave (che sarebbe normalmente sufficiente).

La ragione di ciò è che sia MD5 che SHA-1 hanno riscontrato punti deboli che possono essere sfruttati per far sembrare che un documento controllato da un attaccante sia stato firmato dall'autore originale.

L'attacco SHA-1 è ancora molto costoso, quindi potrebbe essere tentato solo da un aggressore molto ben finanziato, ma MD5 è sfruttabile con hardware relativamente economico (attacchi reali reali sono stati montati da ricercatori universitari).

Entrambi gli attacchi dipendono da un oracolo di firma, quindi potrebbero non essere applicabili alla situazione, ma MD5 o SHA-1 sono problematici, specialmente se si hanno avversari ben finanziati.

    
risposta data 17.01.2018 - 12:46
fonte
0

Penso che la matematica dietro le funzioni dovrebbe mantenerti relativamente sicuro, dato che la chiave pubblica nel certificato corrisponde alla chiave pubblica del creatore.

Dalla tua domanda, tuttavia, sembra che tu sia nuovo al concetto di SHA digest e Digital Signatures (la maggior parte delle firme sono autofirmate). Se ti piacerebbe imparare i principi ci sono un sacco di siti web e video di YouTube che potrebbero aiutare. Le basi sono le seguenti. Ci sono due funzioni, una per la creazione e l'altra per il controllo. La funzione di creazione prende l'input come digest SHA del messaggio e la chiave privata del creatore e fornisce un output come firma digitale. La funzione di controllo assume l'input sotto forma di messaggio (è SHA digest), la chiave pubblica dei creatori e la firma digitale per fornire un output logico "true" o "false" a seconda che la firma digitale sia valida o meno. Si noti inoltre che il digest SHA di un messaggio fisso non varia. Questo è un ottimo modo per garantire l'integrità dei dati e dimostra che un certificato è legittimo.

Ma una risposta semplice è, se la chiave pubblica nel certificato corrisponde alla chiave pubblica del creatore, sei relativamente al sicuro. Ad esempio, due chiavi pubbliche con lo stesso digest SHA1 sono incredibilmente rare e difficili da trovare. Ciò può garantire che sia altamente improbabile che SHA1 sia il collegamento debole, dal momento che è possibile eseguire il controllo incrociato del digest SHA1 di una chiave fornita con una calcolata dalla chiave pubblica (devono corrispondere). Puoi anche provare ad autocontrollare i vari digest menzionati nella tua domanda per garantire la legittimità del certificato. Se la firma digitale non è valida, il tuo sistema operativo o applicazione dovrebbe rilevarlo tramite funzioni integrate, se non applica la funzione da solo. Quindi, in conclusione, controlli incrociati i digest e la chiave pubblica. Per la tua domanda iniziale, se ritieni che il documento A sia stato inviato da un mittente legittimo, le chiavi pubbliche di entrambi i certificati devono corrispondere. Se l'utente malintenzionato tenta di fingere di essere il mittente originale, verrà visualizzato nel digest e nelle firme.

    
risposta data 16.01.2018 - 16:27
fonte

Leggi altre domande sui tag