Domanda:
Perché i browser consentono CA radice personalizzate?
eddi
2018-07-26 19:24:14 UTC
view on stackexchange narkive permalink

Al mio lavoro tutti i browser hanno una CA root personalizzata installata, che consente loro di curiosare su tutto il traffico https mentre gli utenti hanno la falsa impressione che stiano navigando su una pagina https sicura.

Perché lo sono browser che consentono di sconfiggere https così facilmente e non avvisare l'utente al riguardo?

EDIT: sulla base delle risposte / commenti mi rendo conto che forse stavo sottolineando erroneamente la parte sbagliata della mia confusione. Capisco che ci siano alcune esigenze legittime per voler cambiare l'elenco CA, quello che non capisco è perché non si vorrebbe avvisare l'utente se tale modifica è stata apportata. Non avvisa l'utente che annulla il punto della casella verde accanto all'indirizzo? Devo davvero fare più clic e quindi forse fare una ricerca (compromessa) per capire se la CA radice è reale o meno per qualsiasi computer che non possiedo e / o se lascio che qualcun altro tocchi il mio computer?

I commenti non sono per discussioni estese;questa conversazione è stata [spostata in chat] (https://chat.stackexchange.com/rooms/80806/discussion-on-question-by-eddi-why-do-browsers-allow-custom-root-cas).
Sette risposte:
Mike Ounsworth
2018-07-26 23:07:06 UTC
view on stackexchange narkive permalink

Come sottolineato nei commenti e nelle risposte, ci sono molti motivi legittimi per cui vorresti aggiungere una CA al truststore del tuo browser e i meccanismi per farlo richiedono l'accesso di amministratore alla macchina / browser.

Stai implicando un modello di fiducia in cui non consideri il tuo amministratore (o te che hai passato) come affidabile e vorresti che il browser distinguesse visivamente tra un certificato che è pubblicamente attendibile (cioè emesso da una CA in Mozilla elenco attendibile pubblicamente) e uno attendibile privatamente perché è stato aggiunto esplicitamente al truststore del browser. Forse il solito verde con un simbolo di avvertenza per utenti privati?

Buona idea! Risolverebbe anche il mio problema di aver bisogno di due copie di Firefox installate: una per testare i prodotti che richiedono l'installazione di certificati e una per navigare in Internet. Dovresti vedere se Firefox ha già un miglioramento per questo e, in caso contrario, suggerirlo :)

Anche se sono d'accordo che potrebbe essere una bella funzionalità, se davvero non ti fidi del tuo amministratore, non risolverà necessariamente il problema.L'amministratore potrebbe ancora fare in modo che il browser _pensare_ sia nell'elenco pubblico a seconda di quanto lavoro i browser impiegano per impedirlo e di quanto lavoro è disposto a fare l'amministratore.Tuttavia, potrebbe essere considerato non etico da parte di un amministratore aggirare una tale funzionalità, quindi se non pensi che siano decisamente dannosi ma semplicemente non ti fidi completamente di loro, potrebbe essere "abbastanza buono" in pratica.
@AndrolGenhald Non mi fido assolutamente del personale IT dell'università, ma ho bisogno di installare il loro certificato di root per accedere a Internet.Sarebbe bello se il mio browser mi dicesse quali connessioni sono state ispezionate e quali no.(ovviamente controllo spesso manualmente il certificato per es. siti bancari, ma non sempre; un avviso visivo sarebbe meglio).Credo che i browser si fidino della chiave pubblica delle CA, non del DN, quindi rendere il browser _think_ il loro certificato è nell'elenco pubblico dovrebbe richiedere l'accesso alla chiave privata della CA pubblicamente attendibile.
In tal caso sono d'accordo, sarebbe una funzione utile anche per me, ma la differenza tra questo e la domanda è che _ tu_ lo stai installando.Non stai affidando il tuo computer a un IT non affidabile per fare quello che vogliono con esso.Inoltre, quando ho detto che potevano far credere al browser che fosse attendibile, volevo solo dire che probabilmente avrebbero potuto installarlo in un modo che il browser non sarebbe stato in grado di dire che non è nell'elenco pubblico senza controllare un riferimento online (cheutilizzerebbe comunque una connessione compromessa), probabilmente modificando l'elenco "pubblico" memorizzato del browser.
@AndrolGenhald La mia comprensione è che l'elenco di certificati fornito con un browser è incorporato nel codice sorgente del browser in modo tale che modificandolo provocherebbe il fallimento dei controlli automatici del browser all'avvio.Ecco perché la revoca di un certificato di root richiede il rilascio di una patch ufficiale per il browser piuttosto che il download di alcuni dati.Quelli che aggiungi vanno in una sorta di database.Non so se sia accurato al 100%.
So che attualmente non è vero per Chrome, poiché utilizza l'archivio del sistema operativo.Firefox viene fornito con il proprio, ma non posso dire con certezza quanto sarebbe difficile modificarlo.Dato che Firefox è completamente open source e puoi compilarlo da solo, non penso che sarebbe troppo difficile, ma forse abbastanza difficile da non disturbare un amministratore snoopy.
@AndrolGenhald Buon punto su Chrome, sì, probabilmente non può dirlo.Costruendo il tuo FF dai sorgenti, non avrebbe un certificato di firma del codice che Windows (o il tuo gestore di pacchetti linux) accetterebbe, quindi tutte le scommesse sulla sicurezza sono fuori dalla modifica del binario.
È vero, non sarebbe firmato, ma se sei un amministratore malizioso ti interesserebbe?Puoi consentire che venga eseguito non firmato o firmarlo con il tuo certificato autofirmato che importi nell'elenco attendibile del sistema operativo, abbiamo effettivamente spostato il problema di un livello :)
@MikeOunsworth lo firmerei con il mio certificato di firma del codice (se ne fosse effettivamente richiesto uno), ovviamente.
@immibis Uno di cui Windows si fiderà?Se anche tu sei l'amministratore del dominio, immagino che potresti installarlo.
Sarebbe sensato se potessi impostare il livello di sicurezza delle CA root che * aggiungi *, ovviamente.Quindi, se sto testando qualcosa con Burp e aggiungo la CA di Burp, posso fare in modo che il mio browser visualizzi una piccola icona di avviso (o anche un https barrato in rosso) mentre continua a visualizzare la pagina.
@MikeOunsworth È consentito installare solo software attendibile da Microsoft su questo computer?Non riesco ad installare ad esempio IntelliJ IDEA?Se posso, come fa il computer a conoscere la differenza tra il certificato JetBrains acquistato da Microsoft e il certificato che ho acquistato da Microsoft?
@immibis Sì, giusto punto in realtà.A Windows non importa se il tuo software è autentico (sono un utente Linux quindi "install software" == "apt-get install" nel mio cervello)
Anche se installi solo software con "apt-get install" (che non è vero per gli utenti di Ubuntu, anche se vogliono installare qualcosa che non è nel repository) è irrilevante perché la versione modificata era già installata sulcomputer quando l'hai ottenuto, e non dovevano usare apt-get.
Sì, smetterò di parlare ora: P (ma devi ammettere che installare Firefox da `.deb` locale non è il solito modo per farlo)
no.no non mi fido del mio amministratore.Mi assicura che il software che sta usando per curiosare nel traffico non avrebbe mai fiutato il mio internet banking.E che lui e lui stesso aderiscono effettivamente alle corrette pratiche di sicurezza e quindi non hanno trapelato la chiave compromettendo tutti.E devo estendere questa fiducia a ogni altra persona nel suo dipartimento per non fare qualcosa di losco con la chiave privata a cui senza dubbio tutti hanno accesso.
@AndrolGenhald: Sebbene sia tecnicamente possibile, i fornitori di browser potrebbero renderlo un campo minato legale condizionando l'uso del marchio del browser a non manomettere la UX per l'affidabilità dei certificati.Questo è un approccio che sostengo da molto tempo, poiché aggirerebbe la riluttanza della legge attuale a trattare i certificati contraffatti come atti di frode che in realtà sono, e utilizzerebbe invece la legge e l'applicazione della proprietà intellettuale da parte dei fornitori di browser per proteggere gli utenti davulnerabilità a questo tipo di frode da parte di parti che vogliono fare il MITM silenzioso.
@AndrolGenhald Crea una VM ultraleggera (linux?) E installa lì il certificato.Quindi, connettiti a una VPN esterna dalla VM (OpenVPN supporta una connessione su HTTP (s). Questa connessione dovrebbe essere consentita, puoi avviarne una su AWS).Infine, configura il tuo PC per utilizzare la VM come gateway Fondamentalmente, stiamo isolando il certificato non attendibile su una macchina che effettuerà solo connessioni VPN (che hanno aggiunto la crittografia).Il tuo desktop si comporterebbe normalmente e le tue comunicazioni non possono essere intercettate.Potrebbe non essere necessario nemmeno il certificato sulla VM se consentono il semplice http.
Agent_L
2018-07-26 23:55:34 UTC
view on stackexchange narkive permalink

Quello che vuoi è che il browser difenda l'utente dagli "attacchi" eseguiti dall'amministratore locale.

In tale scenario, la difesa è impossibile. L'amministratore "malizioso" può sempre sostituire il tuo Firefox legittimo con un impostore che ha compilato utilizzando le proprie CA, che mostrerà un lucchetto verde. Quando sei al lavoro e usi la macchina di qualcuno (azienda in questo caso), sei al 100% in balia del proprietario della macchina. Se l'azienda desidera ficcarti il ​​naso di nascosto, può sempre installare keylogger e vedere le tue password prima ancora che raggiungano un browser sicuro.

La casella verde non indica la sicurezza contro le minacce locali, indica la sicurezza da remoto curiosare. In questo caso, indica una connessione sicura al tuo ispettore TSL. Indica che i tuoi colleghi nella stessa LAN non possono spiare le tue password, da qui l'icona verde. Ciò che accade dopo che l'ispettore è responsabilità dell'amministratore di rete e il browser non è in grado di stabilire se utilizza effettivamente HTTP.

Quello che puoi fare, come utente, è visualizzare il certificato ed esaminarne il percorso di certificazione. Il tuo browser non può decidere se il certificato emesso da DigiNotar è "migliore" di quello emesso da EvilCorp (che potrebbe essere il tuo datore di lavoro). I certificati vengono costantemente modificati e anche le CA vengono modificate. Il browser non può decidere se una CA è più affidabile dell'altra. Solo tu puoi decidere chi è l'emittente e se puoi fidarti di loro e con che tipo di informazioni. Dovresti usare la macchina solo per attività legate al lavoro, quindi tecnicamente non stai facendo nulla che non vuoi che EvilCorp veda.

Sono d'accordo con tutta questa risposta tranne "visualizza il percorso del certificato".Questo ti dà qualcosa, un certificato non può affermare di provenire da un'organizzazione che le piace?
@RichardTingle Hai ragione.Ho escluso un intercettatore veramente dannoso che emetterebbe "DigiCert High Assurance EV Root CA", installarlo nel browser e quindi inviare tutta la catena fino a * .stackexchange.com, perché l'amministratore con quel tipo di determinazione ha modi migliori.Immagino che spetti all'utente usare il buon senso durante l'installazione della CA radice per installare qualcosa che riconosce come "la mia CA".
gowenfawr
2018-07-26 19:50:42 UTC
view on stackexchange narkive permalink
  1. Perché l'elenco ufficiale cambia nel tempo.
  2. Perché le aziende hanno un legittimo bisogno di includere CA "interne".
  3. Perché le aziende hanno un legittimo interesse a poter a Man-in-the-Middle per motivi di sicurezza, conformità o risorse umane.
  4. Perché sviluppatori e tester hanno una legittima esigenza di Man-in-the-Middle.

Preferiresti fidarti di StartCom oggi? Questo è ciò che otterresti con modifiche non banali.

# 3 risulta essere davvero una cattiva idea.Posso dimostrare che nessun prodotto sul mercato funziona davvero a causa del principio della casella.Suggerimento 1: se un certificato dovesse cadere ... Suggerimento 2: cosa fa l'unità MitM con i certificati autofirmati?
@Joshua Sono curioso di sapere come si inserisce qui il preside della casellaria?"Possono esistere solo N certificati, quindi quando introduco un N + 1 ° certificato, deve corrispondere a uno esistente"?
@Joshua # 3 può o non può essere una pessima idea, ma ci sono un eccesso di fornitori (Websense, Netskope, ...) che lo forniscono felicemente alle imprese che lo usano felicemente.Un buon elenco di problemi è [qui] (https://www.secureworks.com/research/transitive-trust) ... ma non aspettarti che il tuo capo cambi idea in base a questo.
@MikeOunsworth: L'interceptor non sa di quali certificati fidarsi e può inviare solo 2 stati al browser: trust o no trust.In questo caso N è 2: questo certificato è affidabile o questo non lo è.Ma il conteggio reale è 5: certificato affidabile, inaffidabile, revocato forzatamente (tramite aggiornamento della sicurezza del browser), certificato root revocato o certificato autofirmato (l'utente deve decidere se autofirmato).
@Joshua Punto interessante: la decisione trust / notrust viene spostata dal browser al proxy.Ciò solleva alcune questioni interessanti, ma non sono sicuro che sia davvero un argomento di conteggio.
I commenti non sono per discussioni estese;questa conversazione è stata [spostata in chat] (https://chat.stackexchange.com/rooms/80803/discussion-on-answer-by-gowenfawr-why-do-browsers-allow-custom-root-cas).
"Man-in-the-Middle for security" suona come un ossimoro per me.
@kasperd In realtà è una parte onnipresente e spesso vitale di qualsiasi NIDS.
Sefa
2018-07-26 19:29:46 UTC
view on stackexchange narkive permalink

Uno dei motivi principali per consentire una CA radice personalizzata è per lo sviluppatore web. Lo sviluppo e la compilazione di test utilizzano molto spesso un certificato interno (principalmente per costi e facilità di creazione). Non consentendoti di aggiungere la tua CA root comporterebbe uno stato (più) diverso tra la tua istanza di sviluppo / build e quella di produzione che potrebbe generare bug difficili da correggere.

Inoltre, il proxy aziendale, come azienda è (nella maggior parte delle legislazioni) responsabili di ciò che fai con la sua Internet, spesso usano man in the middle, che sebbene eticamente dubbio, è per lo più legale e previsto.

Un altro motivo per non codificare come root CA è consentire di rimuovere quello di cui non ti fidi più (forse sono sotto il controllo di un governo di cui non ti fidi, forse hanno recentemente perso la chiave, ecc.) indipendentemente dalla considerazione del tuo browser nei loro confronti.

Potrebbero comunque generare un avviso al riguardo e non affermare che il sito web è sicuro ..?Ciò consentirebbe allo sviluppo di procedere senza ostacoli, ma avverte comunque gli utenti che non sono sicuri.
Ho visto, giocato e scritto test di siti web in cui qualsiasi cosa diversa da un "sicuro" nel tuo browser web è un fallimento, cose del genere sono spesso nere o bianche, non grigie
@eddi Se le aggiunte personalizzate non sono ancora considerate sicure perché l'elenco originale non le aveva, allora qual è il punto delle aggiunte personalizzate in primo luogo?
Un altro motivo all'interno delle aziende: i siti Web interni con elementi riservati, che non dovrebbero essere rilevati dai dipendenti sbagliati, devono essere semplicemente collegati da qualche parte nel proprio computer, ma non avranno un certificato CA pubblico perché ad es.non è nemmeno raggiungibile al di fuori dell'azienda.
E per quanto riguarda lo sniffing aziendale: è il computer della tua azienda e il tempo per cui la tua azienda ti paga.Finché informano i loro dipendenti che esiste una tale sorveglianza, anche il problema morale non è più così grande.La maggior parte delle aziende non ha nemmeno problemi con l'invio di un'e-mail a un membro della famiglia, ecc., Ma non vogliono avere un uso privato eccessivo, malware, siti di p * rn e streaming di film mentre dovresti lavorare.
@deviantfan Stanno ancora impersonando siti Web appartenenti ad altre società, utilizzando il loro nome di dominio (Proprietà intellettuale) su certificati inventati ...
@curiousguy Lo sono?Il richiedente non si è lamentato del fatto che fornissero siti Web falsi.E no, la combinazione di nomi di dominio con elementi tecnici come indirizzi IP e certificati interni all'azienda non è una violazione del copyright ecc. (E il certificato è "inventato" come quello della CA reale. È del tutto valido e legittimo da farecertificati propri)
@deviantfan Copyright non protegge i domini, ma sono comunque IP (proprietà intellettuale) e fare un certificato non autorizzato potrebbe essere una violazione.
@curiousguy Temo di non riuscire a capirlo.Alcuni punti: a) Nelle giurisdizioni di cui sono a conoscenza, solo "usare il nome" non è un problema, dipende sempre da come viene utilizzato.Nessuno può impedirmi di dire "Ho comprato X da Y" alla mia famiglia, ma possono fare qualcosa per me che fingono di essere Y. b) Con la tua logica, qualsiasi richiesta DNS, cache del browser ecc. È illegale.Non dovrebbe essere.
c) Il sistema aziendale non utilizzerà nemmeno esplicitamente un dominio aziendale specifico da nessuna parte.Durante una richiesta certo, ma per quello vedi b.d) Non è inoltre possibile fingere che il certificato falso provenga dalla società originale.È perfettamente visibile chi l'ha creato.Inoltre, il certificato "reale" non è stato rilasciato dalla società.
@deviantfan "_Con la tua logica, qualsiasi richiesta DNS, cache del browser ecc. È illegale_" Assurdità assoluta.Non ho detto niente del genere."_Il sistema aziendale non utilizzerà nemmeno esplicitamente un dominio aziendale specifico da nessuna parte_" Lo fa, nel certificato e nel proxy.Dice che il nome di dominio è associato a quella chiave pubblica.Dice che parla per quel nome."_Inoltre, il certificato" reale "non è stato nemmeno rilasciato dall'azienda_" È stato realizzato per l'azienda, sotto il controllo dell'azienda (si spera)
@curiousguy Consiglio di provare a configurare qualcosa di simile.Alcuni domini specifici dei siti che le persone chiamano non sono necessari.E per me, il proxy rientra nelle stesse cose di qualsiasi tecnicità come HTTP ecc ... Ad ogni modo, sono curioso, ci sono effettivamente casi in cui una tale configurazione è stata ritenuta colpevole di abuso di marchio, in qualsiasi parte del mondo?Alcuni paesi sono abbastanza senza cervello in queste cose, ma questo mi sorprenderebbe comunque.
@deviantfan "_sono effettivamente casi in cui una tale configurazione è stata ritenuta colpevole di abuso di marchio_" Nessuno che io sappia
myron-semack
2018-07-27 03:03:20 UTC
view on stackexchange narkive permalink

Generalmente l'aggiunta di nuovi certificati radice richiede l'accesso a livello di amministratore o root. Quindi, non possono essere installati senza il consenso del proprietario del computer (a meno che non venga utilizzato un exploit).

Il problema sembra essere che hai un malinteso su chi possiede il computer. Se il computer è stato rilasciato dal tuo datore di lavoro e ha accesso come root, non è il "tuo" computer. È loro e ti permettono di usarlo. Non dovresti aspettarti la privacy usando quel sistema. Probabilmente ha detto qualcosa in tal senso nel contratto dei dipendenti. (I dettagli su questo possono variare a seconda delle leggi locali.)

R.. GitHub STOP HELPING ICE
2018-07-27 22:07:51 UTC
view on stackexchange narkive permalink

Non c'è davvero nessuna buona ragione per cui i browser lo permettano e dovrebbero disabilitarlo. Consentitemi di affrontare una per una le giustificazioni errate:

  1. Sviluppo Web. Non è necessaria una CA radice per firmare i certificati solo per un singolo dominio o un piccolo insieme finito di domini per cui stai sviluppando. Invece il browser potrebbe consentire l'aggiunta di certificati CA validi solo per determinati domini e avvisarti nella barra degli URL quando viene utilizzato un certificato di questo tipo, invece di consentire l'aggiunta di certificati CA che possono firmare per arbitrario domini.

  2. Enterprise e AV MITM. Queste sono solo cattive idee per ragioni che puoi trovare discusse altrove. Implementa AV sugli endpoint, non tramite MITM. Il controllo delle risorse tramite MITM semplicemente non funziona se non contro utenti davvero ingenui. Se disponi di dati così sensibili che ritieni di aver bisogno del controllo delle risorse tramite MITM, probabilmente hai bisogno di sistemi con air gap senza accesso a Internet.

  3. "Se il browser non lo consente, gli amministratori che desiderano aggiungere CA root modificheranno semplicemente il browser. " Sì, è sempre tecnicamente possibile, ma i fornitori di browser hanno l'opportunità di renderlo legalmente difficile o impossibile semplicemente condizionando l'uso del marchio del browser a non manomettere il CA trust UX. Lo sostengo da molto tempo. Se i browser lo facessero, gli utenti non appena vedessero "Firefox" o "Chrome" su un sistema in cui si siedono che non accetterà certificati fraudolenti per consentire a qualcuno di MITM fintanto che si fidano di quello la parte che ha istituito il sistema rispetta la legge . Questo è un presupposto abbastanza ragionevole in contesti come luoghi di lavoro, scuole, biblioteche, ecc. Ed è testabile, quindi se qualcuno infrange le regole, è facile eliminarlo e lasciare che il fornitore del browser avvii un'azione legale.

E i certificati per i siti interni che non sono accessibili dall'esterno?Non dovresti essere in grado di aggiungere una CA radice per quelli?
@AndrolGenhald: Non dovresti creare siti interni i cui nomi sono in conflitto con il sistema DNS globale, indipendentemente da qualsiasi cosa abbia a che fare con le CA.Mettili tutti sotto un dominio di tua proprietà o un nome riservato in modo permanente che non verrà mai assegnato come TLD e quindi avrai solo bisogno di una CA specifica del dominio per quel dominio.
Non devo aver letto abbastanza attentamente, in effetti accenni all'autorizzazione delle CA per domini specifici.Sembra che potrebbe non essere una cattiva idea, ma poiché richiederebbe che Firefox diventi meno libero, temo che ricondurrà di nuovo a Iceweasel :(
Oltre a soddisfare i miei pregiudizi, spero che accettare questa risposta (e quindi promuoverla verso l'alto) aggiunga un po 'di più alla discussione.Se qualcuno pensa che questa risposta sia sbagliata, per favore commenta.
Wow, non mi aspettavo che questa diventasse la risposta accettata.Se qualcuno ha suggerimenti per altri tentativi di giustificazione che dovrei affrontare nella risposta o dettagli che dovrei aggiungere per migliorarla, per favore commenta e cercherò di farlo.
Godonsplork
2018-07-27 13:03:49 UTC
view on stackexchange narkive permalink

Se il tuo computer fa parte di una rete aziendale, ha senso aggiungere CA radice personalizzate per i siti Web interni che utilizzano HTTPS o vari pacchetti di aggiornamento o app interne che invii ai tuoi clienti / =.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 4.0 con cui è distribuito.
Loading...