La crittografia fornisce solo riservatezza . L'autenticazione può solo garantire integrità in quanto impedisce la modifica illegale dei dati. Encryption + authentication offre sia riservatezza e integrità .
Ora la domanda viene perché la riservatezza da sola non è sufficiente o l'integrità da sola non è sufficiente. La crittografia viene solitamente eseguita in varie modalità, come ECB, CBC, OFB, CFB, ecc. Ogni modalità presenta alcuni vantaggi e limitazioni.
Come primo passo, considera ECB . Questa è la modalità più semplice.
Come attaccante puoi rimuovere facilmente alcuni blocchi crittografati e il ricevitore non lo saprà. (Anche se non è così semplice ma solo come esempio). Prendi in considerazione la seguente frase e supponi che ogni parola sia un blocco che verrà crittografato in modalità ECB.
I am not coming today
. Se l'utente malintenzionato rimuove
not
"blocco, il ricevitore riceverà
I am coming today
.
Ora considera la modalità CBC. In questo caso, l'output cifrato di un blocco viene utilizzato come input nel blocco successivo. Ora se tu come attaccante vuoi rimuovere uno di quei blocchi, anche se il prossimo blocco avrà bisogno del blocco rimosso, ma solo pochi bit saranno interessati e l'errore non si propagherà al blocco successivo. Questo può essere sfruttato dagli attaccanti per lanciare attacchi taglia e incolla
D'altra parte, nel caso venga applicata solo l'autenticazione, la riservatezza non può essere garantita. Anche se viene applicata la crittografia del livello dell'applicazione, significa che solo il pacchetto di dati originale viene crittografato, ma non l'intestazione aggiuntiva associata a tali dati in ogni livello successivo. La crittografia dei livelli di collegamento dati garantisce la riservatezza per le informazioni aggiuntive presenti nelle intestazioni.