Questa è la tecnica "1 / n-1 split" che è stata distribuita nelle librerie SSL come soluzione alternativa all'attacco BEAST.
L'attacco BEAST è l'applicazione a un contesto Web di un attacco di testo normale scelto . L'attacco funziona quando:
- La crittografia utilizza un codice a blocchi in modalità CBC .
- L'utente malintenzionato può scegliere i dati che vengono crittografati (in un contesto Web, questo viene fatto con Javascript).
- Subito prima di inviare i suoi byte per crittografare, l'utente malintenzionato conosce l'IV che verrà utilizzato con la modalità CBC.
In SSL 3.0 e TLS 1.0, l'IV per un record è l'ultimo blocco crittografato dal record precedente, in modo che l'utente malintenzionato possa vederlo spiando la linea (la configurazione dell'attacco suppone che l'attaccante possa origliare sulla linea < em> e invia informazioni ad alcuni Javascript malvagi inseriti nel browser della vittima - questo è realistico nello scenario "WiFi in un ristorante", con un punto di accesso controllato dagli attaccanti).
Il "1 / n-1 split" impedisce l'attacco perché il frame con 1 byte include un valore MAC, che l'utente malintenzionato non può prevedere e che viene crittografato. La sottigliezza è una questione di tempistica : quando l'utente malintenzionato sceglie i dati che verranno crittografati, non sono stati emessi né i record "1" né "n-1"; solo quando l'utente malintenzionato ha spinto i suoi n byte, i due record verranno calcolati e inviati. L'effetto netto è che l'attaccante non sarà in grado di conoscere l'IV per il record n-1 prima di inviare i suoi n byte per crittografare. L'attaccante sarà ancora in grado di predire la IV per il record "1", ma un byte non è sufficiente per l'attaccante per rimuovere l'attacco BEAST.
Teoricamente, uno "0 / n split" sarebbe possibile (un primo frame senza dati, quindi il frame effettivo) e sarebbe ancora migliore (in modo accademico), ma, sebbene sia supportato fino a come lo standard è interessato, un certo numero di implementazioni implementate soffoca sui record vuoti, quindi il "1 / n-1 split" è considerato più pratico.
L'attacco BEAST richiede anche che l'attaccante ottenga molto controllo sui byte che deve inviare, ad es. non deve essere limitato ai soli caratteri ASCII; l'attacco del prototipo si basava su un paio di vulnerabilità extra che sono state corrette da allora, quindi anche senza la divisione 1 / n-1, l'attacco non funzionerebbe più. Ma i progettisti di librerie SSL sono cauti e non vogliono vedere la sicurezza SSL messa a repentaglio da una vulnerabilità in un altro componente dell'applicazione.
TLS 1.1 e versioni successive sono immuni perché la loro intestazione del record include un IV specifico.