Come posso richiedere a un browser di rifiutare il certificato MITM proxy per il mio sito web

3

C'è un modo per il mio sito web di dire a un browser, come Chrome, di non consentire un certificato MITM sostitutivo come quelli utilizzati dai server proxy aziendali? per esempio. vedi Domanda 61056: C'è un modo per il mio ISP o l'amministratore di rete LAN per imparare il mio indirizzo Gmail come risultato dell'accesso all'interfaccia web di Gmail attraverso tramite la loro rete?

Capisco il modo normale in cui dovrebbe funzionare, e capisco che, in generale, il controllo del browser da parte del gruppo aziendale può controllarlo come preferiscono, ma mi chiedo se, forse, sotto istruzione da il sito web , Chrome ha un modo per sconfiggerlo o, almeno, renderlo più ovvio quando ciò accade. (ad esempio, forse attraverso un percorso di verifica alternativo?)

(Immagino che il mio debba essere una domanda dupile, ma non riesco a trovarne un altro, adesso. - DN)

    
posta danorton 05.08.2018 - 18:51
fonte

2 risposte

2

[nuova risposta basata su una migliore comprensione della domanda basata sui commenti OP a prima, ora cancellata, risposta]

Is there any way for my website to tell a browser to disallow a substitute MITM certificate like those used by corporate proxy servers?

Ci sono, anche se sono soluzioni progettate per prevenire il danno causato da certificati che sono stati erroneamente emessi da una CA. Due di queste soluzioni sono HPKP e DANE. Tuttavia, questi sono in declino quando altre soluzioni diverse (che non aiutano il tuo caso d'uso) entrano in gioco.

HTTP Public Key Pinning (HPK) coinvolge il server che comunica quali certificati sono validi per il browser all'interno delle intestazioni HTTP. È stato tuttavia deprecato "a causa della sua complessità e dei pericolosi effetti collaterali". Ma vale la pena notare in particolare perché, pertinente alla tua domanda,

Most browsers disable pinning for certificate chains with private root certificates to enable various corporate content inspection scanners and web debugging tools (such as mitmproxy or Fiddler). The RFC 7469 standard recommends disabling pinning violation reports for "user-defined" root certificates, where it is "acceptable" for the browser to disable pin validation.

In altre parole - ci sono dei ganci per consentire il Corporate MITM anche in HPKP.

Autenticazione basata su DNS di entità nominate (DANE) fa qualcosa di simile, mettendo informazioni su certificati accettabili in DNS inserimenti. Tuttavia, non sembra che abbia un ottimo supporto per i browser e, se i Corporate Overlords stanno imponendo MITM al proxy, sono anche in grado di oscurare le query DNS necessarie.

Le nuove soluzioni al problema dei certificati "fasulli" si sono spostate dal browser e, in quanto tali, non sono utili ai fini dell'utente. Autorizzazione dell'autorità di certificazione DNS (CAA) consente agli amministratori del server di pubblicare un record DNS che identifica la CA corretta che utilizzano; tuttavia, questo viene utilizzato da altre CA come controllo per evitare richieste dannose di certificati da parte di soggetti diversi dal proprietario del dominio. I browser non usano questo record per verificare nulla.

Allo stesso modo, Certificate Transparency (CT) richiede alle CA di pubblicare i certificati rilasciati, consentendo soggetti e terze parti cercare certificati dannosi. Tuttavia, questo non è qualcosa che i browser usano, neanche.

Teoricamente , se vuoi diventare creativo e lanciare da solo, puoi usare Implementazione di JavaScript TLS JavaScript per aprire una sessione TLS dal browser dell'utente al server ai fini dell'ispezione del certificato. Se il certificato non è tuo, c'è il MITM in corso! Quindi è possibile eseguire azioni sul lato client (ad es., Visualizzare un avviso) o sul lato server (ad esempio, interrompere l'accesso o, se è già stato effettuato l'accesso, disconnettere l'utente). Potrebbe essere difficile distinguere il proxy che il browser è configurato per utilizzare, sebbene ...

    
risposta data 06.08.2018 - 18:57
fonte
1

Non puoi. Come operatore di un sito web, il browser non è sotto il tuo controllo, quindi non puoi aspettarti che esso collabori nel tuo tentativo di fargli diffidare di un certificato che il proprietario del computer ha già deciso di affidare.

Detto questo, potresti essere in grado di indovinare se un utente visita il tuo sito tramite un proxy MITM utilizzando varie euristiche, ad esempio confrontando i parametri crittografici utilizzati durante l'handshake TLS con i valori noti per i browser più diffusi, come descritto nel paper Impatto sulla sicurezza dell'intercettazione HTTPS . Il server Web Caddy ha questa funzione integrata .

Una volta rilevato che è in uso un proxy, puoi rifiutare la connessione dalla tua parte. Fai attenzione però che esiste un rischio significativo di falsi positivi. Si noti inoltre che mentre questa tecnica può essere sufficiente per rilevare i proxy aziendali, non funzionerà contro un avversario che è a conoscenza di questo metodo e sta tentando di eludere il rilevamento.

    
risposta data 06.08.2018 - 20:04
fonte

Leggi altre domande sui tag