HTTPS - Il server può vedere i dettagli del certificato lato client?

1

Sto usando mitmproxy per intercettare le connessioni HTTPS dal mio dispositivo client a un server di terze parti. Affinché mitmproxy possa intercettare le richieste SSL, devo installare un certificato radice attendibile sul mio dispositivo.

C'è un modo per il server di sapere che le richieste sono state intercettate? Il server può vedere i dettagli del certificato radice personalizzato? Ad esempio se il nome è "mitmproxy", può il server vederlo?

    
posta pandemic 08.05.2015 - 15:57
fonte

2 risposte

1

Is there a way for the server to know that requests have been intercepted?

No, perché la comunicazione con il server non utilizza il certificato MITM installato dall'utente. Questo certificato viene utilizzato solo dal client quando comunica con il proxy.

[Client] <=========================> [Proxy] <=======================> [Server]
           Connection using fake               Connection using real
           user-installed cert/key             server cert/key

Il server sa solo che sta comunicando con qualche client. Il server non ha idea che quel client sia in realtà un proxy che agisce per conto di un altro client. La connessione proxy-server è una connessione HTTPS perfettamente autentica, che utilizza la chiave e il certificato reali del server.

La connessione tra il client e il proxy è dove sta succedendo qualcosa di strano. Il proxy sa che il certificato non è autentico, ma il proxy è controllato dalla persona che orchestra l'attacco MITM, quindi è perfettamente ragionevole.

    
risposta data 08.05.2015 - 17:40
fonte
1

Un attacco Man-in-the-Middle è davvero una doppia imitazione: l'attaccante si pone come client falso quando si parla al server e come server falso quando si parla al client. In un contesto SSL, ciò significa che ci sono due strette di mano completamente distinte: una tra l'attaccante e il client e una tra l'attaccante e il server. I dettagli su ciò che accade in una stretta di mano, inclusi i certificati in cui vengono scambiati, non hanno alcun impatto sull'altro (e viceversa).

Il MitM esegue entrambe le rappresentazioni allo stesso tempo perché desidera riutilizzare gli elementi di dati sia dal client che dal server. In genere, l'utente malintenzionato richiede la password dell'utente; l'utente malintenzionato potrebbe quindi semplicemente emulare un server falso e non parlare mai al server vero (quindi sarebbe una semplice rappresentazione), ma l'utente malintenzionato lo trova conveniente per parlare simultaneamente al server vero, perché questo lo rende più facile offrire un'emulazione convincente del server al client.

    
risposta data 07.07.2015 - 19:57
fonte

Leggi altre domande sui tag