Caso di utilizzo legittimo dell'attacco man-in-the-middle per DPI?

2

Sto lavorando su un dispositivo che dovrebbe stare tra l'utente finale e il server e che eseguirà un'ispezione approfondita dei pacchetti. È fondamentalmente un nodo di controllo parentale. Questo dispositivo sarà venduto all'utente, quindi avrà piena conoscenza di ciò che è e di ciò che fa. Fare in modo che tutto funzioni su HTTP è abbastanza semplice, ma per far sì che questo sia di reale utilità, è necessario che funzioni anche su HTTPS. Ho alcune domande su questo scenario e apprezzerei le tue intuizioni:

  1. Pensi che questo sia un caso d'uso legittimo per un attacco man-in-the-middle? Mi sento come se fosse, e che tecnicamente non è più un attacco ..

  2. Quale pensi che sia il modo meno attrattivo per farlo? Questo dovrebbe essere il più semplice possibile da configurare per gli utenti finali. Sto pensando di configurare la scatola come un proxy trasparente e convincere l'utente ad accettare una CA radice per inoltrare il traffico. Ho giocato con mitmproxy, che in qualche modo fa questo. Ma il processo è alquanto imprevedibile. Ad esempio, Firefox può accettare direttamente i certificati radice in un clic, mentre Safari su OS X richiede di aggiungere il certificato al portachiavi inserendo la password di root. Qualsiasi pensiero qui sarebbe apprezzato. Forse l'installazione tramite i componenti aggiuntivi del browser è più semplice?

  3. In che modo questo dispositivo può riconoscere che l'utente finale dispone della corretta CA radice installata? Esiste un test per verificare se l'utente sta accettando il nostro certificato, in modo tale che se non lo sono, li inviamo a una pagina "istruzioni di installazione", ad esempio?

  4. Mi è stato detto che cert pinning avrebbe invalidato questo processo, ma non riesco a trovare troppe informazioni su questo. Pensi che questo sia un problema?

  5. Sembra esserci una proposta in HTTP / 2.0 per quanto riguarda proxy attendibili espliciti . Sembra che si adatterebbe esattamente al mio caso d'uso. Tuttavia, questa proposta ha anche ricevuto un rappresentante molto cattivo . Cosa ne pensi di questa proposta? Pensi che alla fine sarà vantaggioso per l'utente finale?

Grazie!

    
posta user1496984 04.03.2014 - 07:53
fonte

1 risposta

1

Questo è tecnicamente possibile da raggiungere, ma ci sono alcuni problemi con esso. In risposta alle tue domande

  1. Alcuni sarebbero d'accordo con te sul fatto che questo è un uso legittimo del MITM. Esistono già prodotti popolari nel mondo aziendale che implementano questo approache (ad esempio BlueCoat)

  2. Il modo meno frivolo per farlo sarebbe quello di ottenere firme firmate da un'autorità di certificazione conosciuta e quindi creare certificati legittimi secondo necessità. Sfortunatamente, a meno che tu non sia il governo, non è un'opzione probabile. Il modo standard per affrontare questo è come dici tu, fai in modo che gli utenti installino l'autorità di certificazione in ogni dispositivo in uso. I think componenti aggiuntivi del browser non funzionerebbero

  3. Non sono a conoscenza di un modo per farlo senza installare software aggiuntivo, che sarebbe in effetti lo stesso livello di sforzo dell'installazione del certificato, quindi non molto di molto.

  4. Il blocco dei certificati Yep causerà problemi con questo e sta diventando più comune col passare del tempo. Il modo in cui funziona è che il browser conosca un certificato specifico o un set di certificati che si fida di un determinato nome host e non baserà tale trust sui certificati emessi da una CA conosciuta. Non sono a conoscenza di un modo per superare questo problema.

  5. Ho letto un po 'di questa proposta e da quello che ho capito non sono un fan.

Un altro problema a cui devi pensare con il tipo di prodotto che stai guardando è, come gestisci i certificati non validi quando il tuo dispositivo li incontra? Supponiamo che il proxy faccia una connessione a un sito e che abbia un certificato non valido. Ti

a) rilascia un certificato all'utente valido (ad esempio firmato dalla CA del dispositivo). A questo punto, cosa succede se quel sito è un sito di phishing e hai appena impedito all'utente di identificare che il certificato non era valido e che avrebbe potuto avvisarlo del problema?

b) emettere un certificato deliberatamente non valido dalla CA, in modo che possano vedere il problema. La maggior parte degli utenti (supponendo che siano abbastanza esperti da guardare certs) assumerà semplicemente che si tratta di un problema con il tuo dispositivo.

c) passare la connessione direttamente, in modo che l'utente possa stabilire correttamente che potrebbe connettersi a un sito dannoso? A questo punto diventa un modo noto per aggirare il tuo dispositivo e perdi anche la possibilità di proteggere l'utente da contenuti dannosi su quel sito.

o

d) Blocca l'accesso a qualsiasi sito con errori di certificato. Questo è probabilmente il modo migliore per risolvere il problema, ma ti lascia ancora con un problema di percezione del cliente "abbiamo installato questa cosa e ha rotto l'accesso al nostro sito"

    
risposta data 04.03.2014 - 08:42
fonte

Leggi altre domande sui tag