qual è la differenza tra un mac e una firma digitale

12

Capisco che un algoritmo MAC prende un messaggio e una chiave privata come input e li salda a un valore. Comprendo che mittenti e destinatari utilizzano spesso MAC per autenticare un messaggio e verificare l'integrità di un messaggio. Se un mittente / ricevitore calcola con successo lo stesso mac, allora (1) il ricevitore ha la certezza che il mittente ha la chiave segreta (2) il ricevitore ha la certezza che il messaggio non è stato manomesso nell'invio (perché altrimenti genererebbe un nuovo valore mac). Capisco anche che le firme digitali sono in qualche modo diverse dai MAC. Ma sembra che entrambi confermino il mittente e l'autenticità del messaggio. Se hai impostato correttamente uno schema MAC, sai che il messaggio (1) proviene da una persona con la chiave (gestione dell'autenticazione) e (2) non è stato manomesso (manomissione). Quindi, cosa fanno le firme digitali a quello dei MAC? Qual è la differenza?

    
posta bernie2436 06.03.2013 - 17:45
fonte

2 risposte

14

In entrambi MAC e firma digitale schemi, hai due algoritmi:

  • Generazione : dato il messaggio m e una chiave K 1 , calcola il valore MAC o la firma s .
  • Verifica : dato il messaggio m , un tasto K 2 e il valore MAC o la firma s , verifica che corrispondano tra loro (il valore MAC o la firma sono validi per il messaggio m , utilizzando il codice di verifica K 2 )

Con un MAC, i tasti K 1 e K 2 sono identici (o possono essere banalmente ricalcolati da l'un l'altro). Con una firma, il tasto di verifica K 2 è matematicamente collegato con K 1 ma non identico, ed è non è possibile ricalcolare K 1 da K 2 o generare firme valide quando si conosce solo K < sub> 2 .

Pertanto, le firme dissociano i poteri di generazione e verifica. Con un MAC, qualsiasi entità che possa verificare un valore MAC ha necessariamente il potere di generare valori MAC propri. Con le firme, puoi rendere pubblica la chiave di verifica, mantenendo privata la chiave di generazione. Le firme sono quando vuoi produrre una prova verificabile da parte di terzi senza dover affidare a queste terze parti nulla.

Applicazione: una CA (come Verisign o Thawte o qualsiasi altra cosa) invia un certificato a un server SSL. Tutti , e in particolare il browser Web, è in grado di verificare che il certificato rilasciato al server SSL sia stato effettivamente firmato da Verisign / Thawte / qualunque. Ma questo non ti dà il potere di rilasciare (firmare) i certificati da solo, che sembrerebbero come se fossero stati emessi da Verisign / Thawte / qualunque cosa.

    
risposta data 06.03.2013 - 18:30
fonte
4

La risposta di Thomas Pornin, come sempre, è eccellente, ma volevo aggiungere un punto, e questa è stata la differenza in ciò che la verifica di ognuno di questi rappresenta. In poche parole, un MAC può essere utilizzato solo per verificare l'integrità del messaggio. Una firma verifica non solo l'integrità del messaggio, ma l'identità del mittente.

La differenza è inerente alla struttura simmetrica rispetto a quella asimmetrica degli algoritmi. Tornando al post di Thomas, i MAC sono simmetrici; usano la stessa chiave K per generare il MAC e per verificarlo. In quanto tali, verificano che il messaggio che contiene il MAC sia il messaggio originariamente inviato dall'altra parte a questa conversazione, perché essere in grado di manomettere il messaggio in modo che il MAC corrisponda ancora è ritenuto difficile (e "difficile "nella crittografia ha la definizione colloquiale di" praticamente impossibile ").

Tuttavia, poiché la chiave di un algoritmo simmetrico è un "segreto condiviso", deve essere condivisa e ciò significa che non è veramente un segreto. Esistono metodi conosciuti per condividere questa chiave con una sola persona specifica, ma è questo processo di condivisione che ti permette di identificare positivamente l'altra persona usando la chiave; l'algoritmo in sé non ha modo di dimostrare a una delle parti che l'altra persona è quella che suppone di averla.

Le firme digitali, OTOH, sono asimmetriche; vengono utilizzati due tasti diversi, uno da generare e l'altro da verificare. La chiave di verifica è "pubblica"; puoi spruzzare la vernice sulla tua auto e guidarla nel mezzo di DEF CON (convenzione degli hacker) e non renderebbe lo schema più debole. Di nuovo, si crede che sia difficile generare o manomettere un messaggio e / o la sua firma e fare ancora una corrispondenza con l'altro, senza conoscere la chiave di generazione.

Questa chiave di generazione è "privata"; è un vero segreto, noto solo a una parte, che può implementare ogni sorta di ulteriore livello di sicurezza fisica ed elettronica per proteggere questi dati anche da loro stessi (molti PKI sono configurati utilizzando un modulo di sicurezza hardware per generare effettivamente la chiave privata ed eseguire crittografia che utilizza, la chiave non lascia mai quella HSM). Pertanto, è teoricamente possibile identificare positivamente l'altra parte della conversazione, in base alla loro capacità di firmare correttamente i messaggi che possono essere verificati con la loro chiave pubblica, perché c'è una sola entità sul pianeta che ha una preghiera per farlo .

    
risposta data 06.03.2013 - 19:55
fonte

Leggi altre domande sui tag