Perché dovrei usare MAC rispetto alla firma digitale?

5

Per quanto ho letto, non c'è alcun vantaggio di un MAC rispetto a una firma digitale, tranne il fatto che è più veloce da generare ed elaborare.

È vero? Le firme digitali (crittografia asimmetrica) sembrano essere abbastanza veloci da essere utilizzate da quasi tutti i siti web. Quindi non può essere un grosso inconveniente al giorno d'oggi.

Mi manca qualcosa di importante?

    
posta Wolfgang 24.08.2017 - 10:01
fonte

3 risposte

6

Le prestazioni da sole sono un motivo per usare MAC.

Considera una connessione TLS. Per il pacchetto ogni , la parte ricevente deve verificare che il pacchetto non sia stato modificato in transito da un aggressore man-in-the-middle. Quindi per ogni pacchetto, il mittente deve calcolare un MAC / firma e il ricevitore deve verificarlo. Se si desidera, ad esempio, una velocità di trasferimento di 10 MB / s e una media di 10 KB / pacchetto, significa che si dispone solo di una frazione di 1 ms per calcolare o verificare la firma. È troppo lento per una firma digitale.

Il tempo necessario per creare e verificare una firma asimmetrica è abbastanza piccolo da essere un non-problema se lo fai una volta quando viene stabilita una connessione, supponendo che tu abbia un hardware di fascia alta come un PC, un server o smartphone (può essere un problema su dispositivi embedded). Ma non funziona se devi farlo una volta per pacchetto.

Una firma digitale ha il vantaggio che può essere verificata da una parte che non è in grado di generare una firma falsa. Questo non è utile in un caso come una connessione TLS. Per TLS, le due parti impostano una chiave di sessione, che è una chiave simmetrica generata casualmente all'inizio della connessione. Dopodiché, le uniche due parti che conoscono la chiave sono il client e il server. Se il client vede un MAC valido (che non si è generato), può essere stato prodotto solo dal server e viceversa. Allo stesso modo, una volta generata la chiave di sessione, viene utilizzata la crittografia (e non la crittografia asimmetrica) per la crittografia.

(Correttamente parlando, la stessa chiave non dovrebbe essere usata per scopi diversi come MAC e crittografia, anche se capita di avere il formato giusto. Ho semplificato le cose un po 'sopra. La "chiave di sessione" è in realtà un segreto materiale da cui derivano una chiave di crittografia e una chiave MAC o, in alcune cifrarie, viene derivata una singola chiave di crittografia autenticata, sebbene l'algoritmo AE ottenga due chiavi internamente.)

    
risposta data 23.09.2017 - 15:10
fonte
1

Sia l'HMAC che la firma possono essere utilizzati per verificare l'integrità dei dati e l'autenticazione dei messaggi. Tuttavia, le firme forniscono anche la proprietà di non ripudio: dato un messaggio e la sua firma, puoi provare che il messaggio è stato effettivamente scritto dal mittente.

Potresti non volere questa proprietà. Ad esempio, potresti voler scambiare messaggi in privato con qualcuno di cui non ti fidi. Se i tuoi messaggi sono firmati, l'altra parte sarà in grado di rivelare un messaggio compromettente e dimostrare di averlo scritto. Usando HMAC, puoi comunque essere sicuro della privacy della conversazione, ma l'altra parte non sarà in grado di dimostrare che hai scritto questo messaggio compromettente perché anche loro avrebbero potuto scriverlo.

    
risposta data 24.08.2017 - 11:22
fonte
0

Penso che potrei aver pensato a una possibile risposta.

Con una firma il ricevitore (app client) può essere sicuro che il messaggio provenga dal mittente (app del server). Ma se l'app client ora invia qualcosa al server (un'altra richiesta HTTP che pubblica alcuni dati) il server non può essere sicuro che il messaggio provenga realmente dalla stessa app client - qualsiasi client possibile potrebbe utilizzare la chiave pubblica del server per creare un messaggio del genere .

D'altra parte se condividono un segreto (come in HMAC), c'è almeno una certa misura di certezza che il messaggio sia originato dall'app client prevista.

Il problema con questo sembra essere che un sale segreto per la creazione di MAC non vale molto per i clienti non affidabili (javascript o app per dispositivi mobili) poiché possono sempre essere violati.

    
risposta data 24.08.2017 - 11:32
fonte

Leggi altre domande sui tag