Quando l'attacco è stato descritto per la prima volta nel 2003 (il "bad padding" oracle attraverso l'analisi dei tempi), lo scenario di attacco previsto era un client di posta elettronica (ad esempio Outlook Express) che si collegava regolarmente (ad esempio una volta al minuto) al server per sapere se è arrivata nuova posta (non puoi essere notificato di nuova posta quando usi il protocollo POP , devi sondare). Poiché ogni connessione inizia con la stessa fase di autenticazione, la password di destinazione si trova in una posizione deterministica e riproducibile nello stream e, poiché Outlook Express è notoriamente negativo nella segnalazione degli errori (ovvero è silenzioso o aggiorna solo una vecchia messaggio di errore che l'utente è stato addestrato a ignorare), quindi è stata una buona configurazione per l'attacco.
Un punto importante da fare è che tali attacchi devono verificarsi vicino al punto decrittazione , dove i "dati interessanti" (la password) sta per essere decodificati. Nello scenario del server di posta, questo è vicino al server , non al client.
Il "Lucky Thirteen" aggiunge due nuovi punti dati:
-
Sottolinea che la difesa comune contro gli attacchi temporali (vale a dire, quando il padding è sbagliato, si comporta come se fosse buono e calcola comunque il MAC) può perdere un po '(perché il "padding supposto" non avere la lunghezza esatta della "buona imbottitura"). Quando l'attacco iniziale del 2003 ha usato ritardi di circa 1 millisecondo, la nuova perdita è circa un migliaio di volte più breve, circa 1 microsecondo.
-
Dimostra che in condizioni di laboratorio (100 Mbit / s ethernet con un solo switch tra target e attacker, milioni di misure) misure fino a circa 1 microsecondo sono fattibili.
Il primo punto è ovviamente interessante. Vorrei affermare, tuttavia, che il secondo punto ha questo difetto fondamentale: se l'attaccante può avvicinarsi al bersaglio, quindi può vincere in molti altri modi. Infatti, gli attacchi temporali riguardano l'estrazione di informazioni da un sistema chiuso attraverso perdite di dati basate sul tempo. Noi crittografi tendiamo a concentrarci sullo strato crittografico, perché quello è il nostro lavoro, e la crittografia riguarda esclusivamente la concentrazione dei segreti : la "chiave" è l'essenza della segretezza e un obiettivo molto prezioso. Tuttavia, l'intero punto di crittografia è proteggere i dati sensibili e qualsiasi elaborazione di dati riservati può perdere parte di essa attraverso i tempi .
In uno stack di elaborazione dati completo, il livello SSL / TLS rimane tra lo stack TCP / IP di basso livello e "l'applicazione" che utilizza i dati riservati in vari modi. Poiché la decrittografia si verifica in TLS, il livello TCP / IP vede solo chunk cifrati e quindi non ha nulla da perdere. Tuttavia, sarebbe troppo ottimistico, rasentando le assurdità, credere che le perdite potrebbero verificarsi solo nel livello TLS. Il codice di applicazione completo è potenzialmente vulnerabile agli attacchi di temporizzazione. Mentre un attacco a TLS è di per sé più interessante, dichiaro che gli attacchi al codice dell'applicazione hanno molte più probabilità di essere devastanti.
Per riassumere, l'attacco "tredici fortunati" è interessante ma non molto realistico. Per quanto riguarda gli attacchi temporali, il livello TLS è solo la punta dell'iceberg. Per abusare ulteriormente della metafora, preoccuparsi dei "tredici fortunati" è un po 'come preoccuparsi della corrosione a bordo del Titanic: una preoccupazione valida in un modo astratto, ma non così pressante come altre questioni legate alla nautica.