Identificazione dell'entità SSL / TLS

1

SSL / TLS contiene qualsiasi forma di identificazione nell'handshake iniziale, quindi un utente malintenzionato non può semplicemente rinunciare al certificato per rivendicare di essere qualcun altro? Wikipedia non ha detto di averlo fatto, ma mi chiedevo se la chiave pubblica sul certificato del server venga talvolta usata per questo. Oppure si presume che l'attaccante non possa completare l'handshake senza la chiave privata (e quindi non può completare lo scambio di chiavi e generare la chiave simmetrica per l'autenticazione come HMAC)?

    
posta dylan7 19.07.2015 - 04:50
fonte

1 risposta

2

Non è possibile eseguire l'identificazione prima che il certificato sia inviato, poiché l'intero punto del certificato è quello di stabilire l'identità. Quindi se potessi stabilire l'identità del server prima di ricevere il certificato, quale sarebbe il punto di convalidare il certificato contro il server? Questo è in realtà un altro punto, un certificato è per un dominio, quindi un client dovrebbe sempre verificare che il dominio nel cert corrisponda al dominio a cui si sta connettendo. Quindi, tecnicamente, se provo a connettermi a evil.com su HTTPS e tu mi dai il certificato per google.com, non dovrei convalidare il certificato (anche se le implementazioni sono note per omettere questo controllo !!). E come hai detto tu, potresti inviare un certificato che non è il tuo, e se il client (erroneamente) convalida questo certificato, il client invia quindi un segreto crittografato sotto la chiave pubblica contenuta in tale certificato all'attaccante. L'autore dell'attacco non è in grado di decrittografare questi dati poiché non ha la chiave privata. A questo punto l'utente malintenzionato non è in grado di ricavare chiavi simmetriche dal segreto che il client ha inviato (poiché non può decrittografare il segreto) e di conseguenza non è in grado di decrittografare il traffico inviato dal client.

    
risposta data 19.07.2015 - 05:57
fonte

Leggi altre domande sui tag