"Autorizzato" L'uomo nel mezzo

4

Sto implementando una connessione TLS con un server e un client di base. È una connessione unidirezionale: il server ha un certificato incatenato alla CA e il client ha una raccolta di certificati radice attendibili.

È possibile che uno strumento registri la connessione come un uomo nel mezzo, ma autorizzato? Per il server questo strumento sembrerebbe essere un client; per il client sarebbe visto come il server.

È possibile? Di quali certificati ha bisogno questo strumento?

    
posta Yann-Reun 23.04.2015 - 11:02
fonte

3 risposte

8

Devi solo aggiungere il certificato dello strumento nel trust store del client, in modo che il client si fidi del tuo "strumento come server". Quindi, per non avere errori, ogni volta che il client tenta di aprire una connessione TLS, devi clonare il certificato effettivo con la tua CA personalizzata:

  • Il client tenta di avviare la connessione con il server, passa attraverso il proxy

  • Il proxy avvia la connessione effettiva con il server, recupera il certificato del server

  • Il proxy crea un nuovo certificato con lo stesso CN ma con la sua CA personalizzata

  • Il proxy risponde al client con quel nuovo certificato, è considerato affidabile dal client perché hai aggiunto la CA personalizzata nell'archivio fidato del cliente

Fai anche attenzione a propagare possibili errori di certs ai client (non come Lenovo ad esempio ..)

    
risposta data 23.04.2015 - 11:10
fonte
3

Hai dato un'occhiata a questa risposta ? Ci sono alcuni strumenti elencati.

Tuttavia, il punto chiave per te è avere un certificato che il tuo cliente accetterà . Per rispondere alla tua domanda, nella sua forma più semplice è necessario:

  • Un certificato SSL valido (firmato dalle CA che sono considerate affidabili dal client)
  • Controllo della risoluzione DNS (ma se controlli l'ambiente avresti il tuo strumento configurato sul gateway, come suggerito nei commenti)

Un possibile scenario potrebbe essere:

  1. Con risoluzione DNS:

    1. Il client cerca l'IP del server
    2. Il tuo DNS lo risolve all'indirizzo IP del tuo strumento
  2. Il client si connette al tuo strumento

  3. Il tuo strumento risponde con un certificato firmato per il nome host richiesto
  4. ...
  5. profitto! Inoltre, MiTM

Una versione leggermente modificata di questa configurazione è quella di installare sul client il certificato della propria CA, con il quale è possibile firmare il certificato SSL del proprio strumento. Dal momento che parli di rimozione SSL autorizzata, presumo che tu abbia il controllo dell'ambiente client.

    
risposta data 23.04.2015 - 11:21
fonte
0

Zorp Firewall ( link ) può farlo. Supporta non solo web / http ma anche un altro paio di protocolli. Inoltre è molto leggero, facilmente dispiegabile su un dispositivo OpenWRT.

Tuttavia, dovrai farti affidare la CA proxy dai client, ma in uno scenario autorizzato non dovrebbe esserci un problema.

    
risposta data 24.04.2015 - 17:29
fonte

Leggi altre domande sui tag