Dopo aver letto alcuni documenti, posso finalmente rispondere alla mia domanda.
Fondamentalmente ho avuto un malinteso.
È importante conoscere il " TLS Record Protocol ". Questo protcol è la base di TLS e viene sempre utilizzato. All'inizio per l'handshake e alla fine quando l'handshake è terminato e i dati vengono trasmessi su TLS (quando si utilizza HTTPS questo è HTTP).
(trattodall'articolo Wikipedia tedesco su TLS ; CC-BY-SA 3.0 )
Tuttavia all'inizio non esiste ovviamente alcuna crittografia o HMAC che il client e il server possano utilizzare per proteggere i messaggi scambiati in quanto non hanno ancora concordato di utilizzare un cifrario (ciò è fatto nell'handshake).
Quindi devono usare una cifra senza alcuna crittografia e protezione dell'integrità . Questo è TLS_NULL_WITH_NULL_NULL
.
Dopo che il livello del record è stato inizializzato con questo codice, che fondamentalmente non offre alcuna protezione, l'handshake può iniziare.
Quindi i messaggi di hello di client e server sono quindi non protetti e un utente malintenzionato può manometterli.
Per proteggere l'intero processo, i messaggi Finished
(che vengono scambiati alla fine dell'handshake) contengono un hash (HMAC) di tutti i precedenti messaggi inviati e pertanto consentono a client e server di verificare l'integrità di questi messaggi.
In SSL 3.0 fino a TLS 1.1 viene utilizzata una combinazione di MD5 e SHA-1. In TLS 1.2 viene utilizzato l'HMAC definito nel codice. Ulteriori dettagli sono spiegato qui .
Il problema è che la chiave utilizzata nell'HMAC e nello stesso HMAC può essere debole. Per esempio. l'HMAC potrebbe utilizzare un hash MD5 (come nel attacco SLOTH contro TLS 1.2).
Ciò è stato spiegato anche dal scopritore dell'attacco SLOTH (in particolare una diapositiva 8).
Concludono:
The TLS downgrade protection mechanism
itself depends on downgradeable parameters.
- hence, the only fix is to find and disable all weak
parameters: groups, curves, mac algorithms,...
Il modo in cui gli attacchi di downgrade sui cifrari di EXPORT funzionano in dettaglio è spiegato in questa risposta .