Supponiamo che ci siano due server che eseguono TLS. Entrambi i server hanno certificati di punto finale validi. In altre parole, nessuno dei due avrebbe sollevato un avviso dai browser dopo che la connessione è stata stabilita.
Esiste un modo per abusare dell'autenticazione client richiesta da un server per creare una connessione valida all'altro server? Per TLS 1.2 l'autenticazione finale viene eseguita utilizzando il messaggio Finished
contenente verify_data
che viene calcolato su tutti i messaggi di handshake. È abbastanza per prevenire un attacco man-in-the-middle anche se c'è un server malintenzionato attendibile in gioco? Che dire dei precedenti protocolli TLS 1.1, 1.0 e SSLv3?
Uno dei due server può essere considerato dannoso. Il server dannoso può utilizzare lo stesso indirizzo Web con un certificato client valido da una catena e una chiave privata diverse. Qualsiasi suite di cifratura è valida anche se quelle che sono comunemente abilitate nei browser hanno ovviamente una preferenza per un utente malintenzionato. Non penso che importi molto, ma supponiamo che l'autenticazione del client sia eseguita usando i certificati X509v3 usando il padding PKCS # 1 v1.5 con SHA-256 come algoritmo di firma.