Crittografa il messaggio proteggendolo dagli attacchi di estensione della lunghezza

0

Supponendo che venga utilizzato il seguente HMAC: HMACK(M) = Hash(K||M) = H che è la funzione hash "secret-prefix". M è il messaggio in chiaro, K è la chiave segreta usata

Il testo cifrato viene generato come segue: Ciphertext = EK(M||H) dove EK è uno schema di crittografia che utilizza la chiave segreta K.

Ho letto su Wikipedia che un attacco con estensione di lunghezza funziona su hash dove è nota la lunghezza e il messaggio della chiave segreta. In questo caso, poiché ho crittografato il messaggio, vorrei confermare che non è più possibile condurre un attacco con estensione di lunghezza poiché M è sconosciuto perché l'ho crittografato.

Mi piacerebbe anche sapere se lo schema di cui sopra utilizzato per autenticare i messaggi è suscettibile di altri attacchi ??

    
posta Computernerd 13.11.2014 - 02:46
fonte

1 risposta

4

Questo fa molte cose sbagliate. Innanzitutto, come Rory menziona nei commenti, Non tirare il tuo. Usa HMAC, non una funzione hash arbitraria. Questo in realtà ti proteggerà dagli attacchi di estensione della lunghezza.

In secondo luogo, proponi di crittografare il tuo pseudo-MAC insieme al messaggio. Non fare neanche questo. Questo è chiamato MAC-then-encrypt, e ti lascia potenzialmente suscettibile agli attacchi sul padding come l'attacco POODLE che ha appena ucciso SSLv3. Lo standard corrente è encrypt-then-MAC, e devi includere entrambi l'IV e il testo cifrato del messaggio nel MAC per assicurarti che non ci possano essere manomissioni.

Quindi, puoi crittografare-allora-MAC con HMAC, o meglio ancora, basta usare una modalità di crittografia autenticata che gestisce l'implementazione per te, come AES-GCM, e non devi preoccuparti se tu sia " l'ho fatto in sicurezza o no, perché qualcun altro ha già gestito quei dettagli per te.

    
risposta data 13.11.2014 - 17:54
fonte

Leggi altre domande sui tag