Esiste un attacco in grado di modificare il testo cifrato pur continuando a decifrarlo?

3

È possibile che un file crittografato che utilizza AES-256 possa essere modificato senza avvisare il proprietario del file, ad es., quindi può ancora essere decodificato con la stessa chiave?

So che senza i blocchi di un vettore di inizializzazione in un testo cifrato può essere cancellato, spostato, duplicato ecc. (ho ragione?) senza rilevamento. Usare un vettore di inizializzazione dovrebbe precludere quell'attacco, ma ce ne sono altri?

Il testo cifrato deve essere firmato per garantire che sia immutato?

    
posta Razick 09.12.2013 - 14:37
fonte

3 risposte

12

Sì.

Questo è un problema con qualsiasi sistema crittografico che non protegge l'integrità, come con una firma o hmac. Vedete, la crittografia e la decrittografia sono solo operazioni matematiche. È sempre possibile eseguire un'operazione matematica su un blob di dati binari e otterrà sempre un risultato. La crittografia di una decrittografia non comporta errori, perché i dati vengono modificati.

L'impatto specifico della modifica del testo cifrato dipende dalla modalità operativa e dai dati modificati. C'è un famoso attacco in cui girare un po 'nel vecchio protocollo ATM (Automated teller machine) protetto da DES cambierebbe il valore di una transazione - deposita un numero sconosciuto di dollari invece dell'importo che hai digitato. L'attaccante non avrebbe saputo quale sarebbe stato il risultato, ma l'attaccante avrebbe depositato una piccola somma di denaro e il sistema avrebbe avuto un grande valore massimo, quindi le probabilità erano che una modifica "casuale" alla somma avrebbe comportato un deposito più grande .

I blocchi di swap e gli altri attacchi a cui fai riferimento sono destinati a cambiamenti significativi noti. La causa principale è sempre la stessa: mancanza di protezione dell'integrità del messaggio.

Ora, ci sono alcune eccezioni a questo, nella forma di GCM, XST e un paio di altre modalità di crittografia più recenti. Queste modalità includono il controllo dell'integrità come parte dell'algoritmo, invece di richiedere l'implementazione di un controllo dell'integrità.

Il vettore di inizializzazione rende crittografati due valori con la stessa chiave crittografata su valori diversi. Senza IV, quando riutilizzi le chiavi e ti risenti per lo stesso messaggio riceverai lo stesso testo cifrato.

    
risposta data 09.12.2013 - 15:06
fonte
5

Gli algoritmi di crittografia come AES di per sé non garantiscono l'integrità dei dati. Tale proprietà è fornita da un MAC come HMAC .

È completamente possibile che un utente malintenzionato possa manomettere il testo cifrato senza essere rilevato se non si usa correttamente applica un MAC su di esso.

    
risposta data 09.12.2013 - 15:02
fonte
1

Supponendo che la chiave non sia rubata / rotta / compromessa, la risposta dipende da quale modalità è stata utilizzata per applicare la crittografia .

Se è stata utilizzata una modalità debole o inappropriata (ad esempio ECB ), quindi un utente malintenzionato ha il vantaggio di utilizzare i vari blocchi di testo cifrato. Può rimuovere, riordinare e riutilizzare liberamente blocchi (anche da flussi precedenti usando la stessa chiave) con il livello di crittografia più saggio.

Con altri modi operativi di blocco, lo stesso non è necessariamente possibile. Se viene scelto un vettore di inizializzazione appropriato (vale a dire univoco), ad esempio, anche CBC è resiliente a qualsiasi di queste manipolazioni.

Si noti che, in ogni caso, nessuno dei precedenti impedirà un attacco di replay completo (quando l'utente malintenzionato riproduce l'intero messaggio crittografato) su di esso, molti sono vulnerabili al troncamento dei dati. Ecco perché è consigliabile inserire un timestamp o un numero di serie e alcuni di CRC con il messaggio in chiaro: consentirà al destinatario di proteggersi dagli attacchi di replay e di troncamento.

    
risposta data 09.12.2013 - 15:03
fonte