Perché dovrei firmare dati già crittografati? [duplicare]

15

La mia domanda riguarda la differenza tra la firma e la crittografia. Perché dovresti ancora firmare qualcosa se stai già andando a crittografarlo su PKI?

La crittografia PKI non fornisce intrinsecamente autenticazione, integrità e non ripudio?

== aggiunto successivamente ===

Che cosa succede se uso la mia chiave privata per crittografare il mio messaggio. Quindi chiunque può decodificare questo messaggio con la mia chiave pubblica in modo che non sia privato, ma tutti quelli che lo fanno, sanno che provengono da me perché era decrittografato dalla mia chiave pubblica. Inoltre, tutti sanno che non è stato manomesso proprio perché potrebbero decodificarlo

    
posta Jaap 29.08.2014 - 12:06
fonte

4 risposte

34

La crittografia garantisce la riservatezza, assicurando che solo il destinatario previsto sia in grado di decodificare il messaggio.

La firma fornisce l'autenticazione, cioè consente al destinatario di controllare che il messaggio sia stato inviato da un determinato mittente e non sia stato modificato.

Un modo per vedere questo nel contesto di PKI è come questo: la crittografia richiede solo la conoscenza della chiave pubblica del destinatario, quindi chiunque può crittografare un messaggio. La firma, d'altra parte, richiede la conoscenza della chiave privata del mittente, quindi solo il mittente può firmare il messaggio. Come puoi vedere, la crittografia a chiave pubblica pura non fornisce integrità né autenticazione.

    
risposta data 29.08.2014 - 12:16
fonte
9

La crittografia con chiave pubblica di qualcuno fornisce riservatezza, ma non fornisce l'autenticazione o l'integrità.

In un'architettura PKI, crittografa il tuo messaggio con la chiave pubblica del destinatario. Questo dimostra solo che conosci la loro chiave pubblica, ma nulla su di te. Quando la loro chiave pubblica è effettivamente pubblica, potresti essere chiunque, incluso un utente malintenzionato che ha intercettato il messaggio (sebbene non sia in grado di leggerlo) e lo ha sostituito con un altro messaggio crittografato con la stessa chiave pubblica.

Ma aggiungendo una firma con la tua chiave privata (che può quindi essere verificata con la tua chiave pubblica), provi la tua identità che rende impossibile manomettere il messaggio.

Si noti che questo si applica solo quando la chiave pubblica del destinatario è effettivamente pubblica. Quando la chiave "pubblica" è un segreto condiviso solo tra te e il destinatario, una firma diventa effettivamente ridondante.

    
risposta data 29.08.2014 - 12:30
fonte
6

Se avessi lasciato una cassetta chiusa nel tuo portico nel cuore della notte e l'avessi incatenato alla tua porta e lasciato cadere una chiave nello slot della posta, sarebbe sicuro. Nessun altro sarebbe in grado di entrare e solo tu saresti in grado di aprirlo, ma non avresti modo di sapere chi lo ha lasciato per te. Potrebbe essere stato lasciato dal vincitore del premio della Casa editrice o da un terrorista, semplicemente non lo sai. La crittografia fa questo, impedisce a chiunque altro di accedere al tuo messaggio, ma non hai modo di sapere chi fosse.

Se il tizio della Clearing House del publisher ha invece lasciato l'assegno, firmato e seduto di fronte alla tua porta. Sapresti che è stato da loro perché l'hanno firmato e il controllo è valido, ma chiunque potrebbe venire e prenderlo perché non è protetto. Questo è ciò che firma. Dimostra che un messaggio proviene da una determinata persona, ma non fornisce alcuna protezione per il contenuto del messaggio.

Quello che vuoi veramente è un pacco firmato seduto sulla porta. In questo modo nessun altro può dire di cosa si tratta, ma puoi verificare da chi proviene e che non è stato manomesso.

    
risposta data 29.08.2014 - 15:40
fonte
2

Il modo in cui lo guardo è che se ho un messaggio cifrato che è una serie di byte, posso decifrarlo con la tua chiave pubblica. Tuttavia, qualsiasi serie di byte è "valida" come risultato della crittografia. Ciò significa che se qualcuno modifica il messaggio, posso ancora decifrarlo, semplicemente non otterrò quello che hai originariamente crittografato. Probabilmente la persona che ha effettuato la manomissione non saprà quale effetto ha avuto la manomissione sul messaggio (a meno che non abbia la chiave privata) ma può garantire che avrà cambiato il messaggio. A volte (ad esempio se si tratta solo di dati binari piuttosto che di un messaggio di testo), non si saprà che è stato manomesso perché non si ha nulla a cui confrontare.

Ciò che la firma può fare è garantire che il messaggio non sia stato manomesso. Prendi un hash del messaggio originale e quindi criptalo con la tua chiave privata. Ora, quando decodifico il messaggio, posso cancellarlo e confrontarlo con l'hash che mi hai dato. Se corrispondono, so che a) il contenuto non è stato manomesso (perché gli hash corrispondono) eb) che è da te perché l'hash è stato crittografato dalla tua chiave privata.

    
risposta data 29.08.2014 - 16:15
fonte

Leggi altre domande sui tag