Un modo per mitigare BEAST è non fare nulla . Accade che, sebbene la vulnerabilità utilizzata in BEAST sia ancora lì, sfruttarla è piuttosto difficile. Richiede la capacità di eseguire richieste tra domini, con un alto livello di controllo sui dati inviati nella richiesta; in particolare, ha bisogno di dati "binari". Duong e Rizzo non hanno trovato un modo per mappare l'attacco su semplici tag <img>
(Javascript ostile che produce tali tag, con un percorso scelto da un attaccante: il percorso arriva nella richiesta, ma è solo testo). Nella loro dimostrazione, potrebbero utilizzare due fori tra domini, uno in una versione bozza di WebSockets, l'altro nell'implementazione di Java da Oracle. Entrambi i fori sono stati quindi sistemati, quindi, adesso BEAST non si applica più (a meno che tu non abbia aggiornato il tuo browser per più di un anno, nel qual caso probabilmente hai problemi più grandi).
Dal momento che fare affidamento sull'assenza di vulnerabilità tra domini è, nel migliore dei casi, inconsistente, i venditori di browser hanno incluso anche alcune contromisure aggiuntive, con divisione del record . Quando il browser vuole inviare un blocco di n byte di dati, invece di inserirlo in un record SSL, lo divide in due record, il primo è molto piccolo. I limiti di registrazione non hanno alcun significato semantico in SSL / TLS, quindi è possibile eseguire tale suddivisione senza modificare il significato. Tuttavia, ogni record termina con un MAC calcolato sui dati del record e un numero di sequenza e utilizzando una chiave derivata dallo scambio di chiavi iniziale. Questo in qualche modo si comporta come un generatore di numeri pseudo-casuali. Pertanto, il piccolo record "emula" la generazione casuale di IV che rende immune TLS 1.1+ da BEAST.
Idealmente, la divisione sarebbe 0 / n : un record senza dati (ma sempre con un MAC), seguito da un record con i dati effettivi. Sono consentiti record a lunghezza zero (come per lo standard ) ma le implementazioni client e server non sono tollerabili (in particolare IE 6.0); i browser utilizzano invece uno split 1 / n-1 , che è altrettanto valido per sconfiggere BEAST, ma funziona anche con quasi tutti i client ei server SSL / TLS esistenti. Almeno Chrome e Firefox lo hanno spinto l'anno scorso .
La buona soluzione è TLS 1.1 + ma anche su SSL 3.0 e TLS 1.0, il problema BEAST può essere considerato fisso, almeno nel contesto Web. Pertanto, utilizza AES e sii felice.