Convalida hmac con la chiave memorizzata con hash

1

Che cosa succede se un HMAC viene generato correttamente e inviato con i dati al server, finora so che il server deve conoscere i dati originali con cui è stato creato il MAC per ricreare il MAC e confrontare, ma in in questo scenario il server ha tutto tranne che la chiave è hash e non memorizzata "plain". Come può il server convalidare il MAC?

    
posta Alvarolm 15.11.2012 - 22:13
fonte

3 risposte

0

La differenza significativa tra un (H) MAC e un hash è il componente chiave. L'idea di un MAC è che dovrebbe essere possibile generare un MAC specifico per uno specifico input conoscendo una chiave specifica. Quindi, se qualcuno può generare un'uscita MAC specifica (data) per un dato input di messaggio, dimostra di avere la stessa chiave usata per generare l'output MAC specificato.

In altre parole: se qualcuno calcola il MAC x del messaggio m usando la chiave k (ma pubblica solo m ), tutti quelli che possono generare x dimostrano di avere conoscenza del chiave k .

Per rispondere alla tua domanda: se hai bisogno di generare il MAC senza avere la chiave sul tuo server, probabilmente vorresti usare un hash invece di un MAC.

    
risposta data 15.11.2012 - 22:46
fonte
2

Se non conosci la chiave, non puoi generare l'HMAC. Questo è il punto principale di un HMAC: è un modo rapido per fornire l'integrità del messaggio utilizzando il materiale chiave esistente. Se si potesse rigenerare l'HMAC senza la chiave, un utente malintenzionato potrebbe semplicemente generare un HMAC per un messaggio diverso e modificare il carico utile.

    
risposta data 16.11.2012 - 00:00
fonte
1

Se vuoi un tipo di MAC che è tale che può essere verificato utilizzando una "chiave trasformata" che di per sé non è sufficiente per calcolare altri valori MAC, quindi non si desidera un MAC. Quello che vuoi è un algoritmo di firma digitale . Un modo per descrivere un algoritmo di firma digitale è il seguente: è come un MAC in cui la chiave per generare nuovi valori MAC e la chiave per verificare un valore MAC per quanto riguarda per alcuni dati, sono distinti. Le due chiavi sono collegate matematicamente l'una all'altra (la chiave di verifica funziona per i valori MAC generati con la chiave di generazione corrispondente e nessuna altra), ma non è possibile ricalcolare la chiave di generazione dalla chiave di verifica. La chiave di verifica può quindi essere pubblica , mentre la chiave di generazione viene mantenuta privata .

L'algoritmo di firma più utilizzato è RSA (RSA è in realtà due algoritmi, uno per la crittografia e uno per le firme, sto parlando di quello per le firme, entrambi gli algoritmi condividono la stessa operazione matematica di base, ma sono ancora molto diversi nei dettagli di utilizzo).

HMAC è non un algoritmo di firma digitale (nonostante ciò che i terminologi sciatti occasionalmente fingono ).

    
risposta data 23.02.2013 - 23:34
fonte

Leggi altre domande sui tag