SSL può fermare i MiTM ... ma a lungo andare, può davvero? [duplicare]

0

SSL utilizza le CA che firmano i certificati per i domini dopo che convalidano che la persona che richiede è veramente il proprietario e da una coppia di chiavi pubblica / privata viene raggiunta una connessione crittografata che non può essere decifrata da un MITM.

Ora pensiamo a lungo termine, se qualcuno ha il controllo sulla propria rete per tutto il tempo, dopo un po 'di tempo la CA avrà firmato un paio di migliaia di certificati aggiuntivi che dovranno essere sincronizzati e scaricati nel browser che li usa. Cosa impedisce effettivamente a un MiTM di intercettarlo?

    
posta user36976 24.03.2014 - 15:34
fonte

2 risposte

1

After some time the CA will have signed a couple of thousands more certificates which will need to be synced and downloaded to the browser/app using them. What is actually stopping a MiTM from intercepting that?

Il fatto che il certificato del sito web sia firmato è ciò che impedisce un MITM.

Dimostrerò il mio punto con un semplice esempio. Non so se questo è esattamente come funziona il moderno SSL / TLS. Ma l'idea di base rimane la stessa.

Passaggio 1, browser di Mario

Bob ha una chiave pubblica di CA. La chiave pubblica CA è ben nota e non cambia mai, quindi è integrata nel browser / sistema operativo di Mario.

Passaggio 2, Alice imposta SSL / TLS

Alice vuole rendere il suo sito protetto. Alice crea una coppia di chiavi privata / pubblica e invia la chiave pubblica alla CA. La CA raggruppa la chiave pubblica, il nome di dominio e altre informazioni di Alice in un unico pacchetto. Quindi CA crittografa il pacchetto con la chiave privata della CA e lo invia ad Alice.

Ora Alice ha un certificato firmato che contiene la sua chiave pubblica, il nome del dominio e alcune altre informazioni. Il certificato è crittografato (firmato) con la chiave privata della CA. Può essere decodificato con la ben nota chiave pubblica di CA.

Questo passaggio deve essere eseguito una sola volta.

Passaggio 3, Bob si connette ad Alice

Bob collega al sito web di Alice. Alice invia a Bob il suo certificato firmato. Bob ottiene il certificato firmato e lo decripta usando la chiave pubblica della CA che già conosce. Ora, bob controlla se il nome di dominio all'interno del certificato corrisponde a quello a cui si sta connettendo. Una volta fatto, Bob è sicuro di avere la chiave pubblica di Alice e nessun MITM può verificarsi.

(Supponendo che la CA non sia cattiva)

Passaggio 4, Scar tenta di intercettare

Bob si connette nuovamente al sito Web di Alice. Alice invia a Bob il suo certificato firmato. Questa volta Scar che ha il controllo della rete di Bob sta ascoltando il flusso di comunicazione. Sebbene possa intercettare e decifrare il certificato di Alice utilizzando la ben nota chiave pubblica di CA, non può modificare il certificato e crittografarlo nuovamente perché Scar non ha la chiave privata della CA. Il meglio che può fare è corrompere il certificato, ma ciò avverte Bob e la connessione si interromperà.

    
risposta data 24.03.2014 - 17:04
fonte
0

Durante la generazione del certificato, la chiave privata non viene mai inviata in rete. Una combinazione di chiavi privata / pubblica viene generata dall'organizzazione che ha il server che necessita di un certificato. La chiave pubblica / CSR viene inviata alla CA (e crittografata in modo tale da non poter essere modificata nel percorso) e la CA quindi firma la chiave pubblica in un certificato e restituisce tale certificato all'organizzazione. L'organizzazione utilizza quindi quel certificato come prova di quello che dicono di essere.

Anche con il controllo completo della rete, la chiave privata per il server e la chiave privata per la CA non vengono mai divulgate, quindi è impossibile per la terza parte produrre un falso certificato o per la terza parte ottenere la CA per produrre un falso certificato.

In base al tuo commento, sembrerebbe che tu abbia un completo fraintendimento su come funziona SSL. La tua domanda non ha senso nel contesto del client che si connette al server. La CA non invia nulla al browser, mai. Il browser viene fornito con certificati pubblici di root per la CA preinstallati e attendibili. Quella CA quindi utilizza la chiave privata che controlla che corrisponde a quel certificato per firmare un numero infinito di altri certificati.

Quando il server a cui ci si connette fornisce un certificato, si dice "ecco la mia chiave pubblica che puoi usare per parlare con me e solo io posso capirlo. Vedi, è stato firmato da una CA di cui ti fidi, quindi ho davvero sono io. " Non c'è modo per un utente malintenzionato di fingere questo dato che non ha accesso alla chiave privata per la CA e non può firmare un certificato per renderlo affidabile.

    
risposta data 24.03.2014 - 18:29
fonte

Leggi altre domande sui tag