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:
-
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 ..
-
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?
-
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?
-
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?
-
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!