Non utilizzare la crittografia senza l'autenticazione dei messaggi

2

Il testo è tratto dalla famosa risposta: Lezioni apprese e idee sbagliate riguardo la crittografia e la crittologia: non usare crittografia senza autenticazione dei messaggi

Alternatively, you can apply your own message authentication, as follows. First, encrypt the message using an appropriate symmetric-key encryption scheme (e.g., AES-CBC). Then, take the entire ciphertext (including any IVs, nonces, or other values needed for decryption), apply a message authentication code (e.g., AES-CMAC, SHA1-HMAC, SHA256-HMAC), and append the resulting MAC digest to the ciphertext before transmission. On the receiving side, check that the MAC digest is valid before decrypting. This is known as the encrypt-then-authenticate construction. (See also: 1, 2.) This also works fine, but requires a little more care from you.

È davvero corretto? Se un utente malintenzionato cambia un testo cifrato, può semplicemente generare un nuovo MAC per quel testo cifrato e aggiungerlo al posto di un MAC precedente. No? Non dovresti usare MAC su un testo semplice?

    
posta evening 20.10.2013 - 19:21
fonte

1 risposta

4

Un MAC utilizza una chiave, che si presume che l'autore dell'attacco non sappia. L'autore dell'attacco non può "generare un nuovo MAC".

Esistono alcuni protocolli che utilizzano come tipo di un MAC un valore hash (quindi senza alcuna chiave) aggiunto al testo in chiaro e quindi crittografato con il testo in chiaro. Qui, il MAC non è il valore hash, ma la combinazione dell'hash e della crittografia (in altre parole, la chiave di crittografia viene riutilizzata per il MAC). Questo è un modo povero di fare un MAC, molto scarso se la crittografia utilizza RC4 o un codice a blocchi in modalità CTR (la ragione esatta è lasciata come esercizio) (anche se molto debole, l'ho visto distribuito in produzione, per niente meno di una soluzione bancaria online!).

Un sacco di confusione è stata prodotta da questo tipo di schemi pseudo-MAC fatti in casa. Un algoritmo MAC buono è HMAC .

Anche con un buon algoritmo MAC, la combinazione della crittografia simmetrica e di un MAC è soggetta a sottigliezze, che è ciò di cui si parla. C'è qualche discussione in questa domanda .

    
risposta data 20.10.2013 - 20:14
fonte

Leggi altre domande sui tag