it-swarm-eu.dev

I certificati autofirmati sono attualmente più sicuri dei certificati firmati CA adesso?

I certificati autofirmati sono attualmente più sicuri dei certificati firmati CA adesso?

Lo chiedo perché recenti perdite sui programmi di spionaggio NSA e tribunali segreti FISA significano che il governo degli Stati Uniti può costringere le autorità di certificazione negli Stati Uniti a consegnare segretamente i loro certificati di root e le autorità competenti non possono fare qualcosa al riguardo a causa di un ordine di gag segreto. Date le intercettazioni di comunicazione degli Stati Uniti in tutti gli ISP e gateway, sarebbe semplice per loro MITM ogni connessione HTTPS in arrivo e dare invece la propria chiave pubblica firmata con lo stesso certificato radice , permettendo così loro di intercettare le chiavi private utilizzate nella sessione TLS e di inoltrare una copia di tutti i dati al loro data center dello Utah per l'analisi e l'archiviazione permanente. Sembra che abbiano questa capacità da un po 'e non si può dire cosa le informazioni sono state rubate, il che mina sostanzialmente la fiducia nell'intera Internet.

Conoscendo queste informazioni, sarebbe tecnicamente altro sicuro per un'organizzazione privata generare un certificato autofirmato per un server, quindi copiarlo manualmente e consegnarlo ai propri utenti su un'unità CD/USB, i loro utenti caricheranno manualmente il certificato come attendibile nei loro browser Web? In questo modo se la connessione fosse MITM effettuata dagli Stati Uniti, non corrisponderebbe a quella nel loro browser.

Tuttavia, poiché esistono già certificati CA "attendibili" precaricati da Verisign, Comodo e tutti nel browser, poiché gli Stati Uniti stanno eseguendo un attacco MITM sulla connessione, non è possibile avviare una richiesta sul server reale, copiare il pubblico informazioni sul certificato, quindi creare un nuovo certificato basato su tali informazioni per quel dominio richiesto, firmarlo con uno dei certificati della CA radice di cui sono fidati dal browser, consentendo così di intercettare i dati? Nessuno si preoccupa davvero di guardare queste cose per vedere se il certificato è stato firmato dalla società corretta Verisign, Comodo o un altro. Gli utenti stanno solo guardando il lucchetto. Sembrerebbe solo sospetto all'amministratore che ha ricordato di aver creato un certificato autofirmato, non un certificato firmato da Verisign o da qualche altra società.

Questo mi ha fatto capire che gli Stati Uniti hanno bisogno solo di un complicato certificato CA precaricato e attendibile nella maggior parte dei browser per essere in grado di eseguire attacchi MITM su qualsiasi cosa, semplicemente scambiano il vero certificato di un sito con uno nuovo dove lo hanno firmato con uno dei i certificati CA principali considerati affidabili dal browser. In tal caso, sarebbe necessario un nuovo profilo del browser, rimuovere TUTTI i certificati attendibili, caricare il certificato attendibile della propria organizzazione e utilizzare tale browser esclusivamente per le comunicazioni all'interno dell'organizzazione. Qualsiasi tentativo di MITM genererebbe un grosso avvertimento nel browser.

33
elysium7

C'è un punto sottile qui. Nella situazione prevista, esiste una (o più) CA canaglia che può emettere certificati falsi per attacchi man-in-the-middle . La vulnerabilità qui non riguarda un server che utilizza un certificato (autentico) da quella CA non autorizzata; riguarda il cliente che potenzialmente accetta un certificato da quella CA. Per proteggerti (come client) dalla CA canaglia, devi devi non fidarti di quella CA (cioè rimuoverla dal tuo archivio certificati "radici attendibili"). Questo semplicemente implica che i server con cui desideri ancora parlare dovrebbero usare qualche altra CA distinta, per i loro certificati.

In una società, produrre certificati autofirmati e inviarli a tutti i clienti è davvero un caso speciale di mantenimento del proprio PKI : la società produce uno o diverse radici, che devono essere installate in tutti i client. Questo è fattibile; alcune aziende fanno proprio questo. Ma per MitM come discusso qui, non si ottiene nulla fino a quando l'archivio "radici attendibili" di tutti i client non viene ripulito da tutte le altre CA potenzialmente malvagie.

Sfortunatamente, non puoi necessariamente farlo . Se il tuo sistema operativo è Windows, allora ci sono molte firme utilizzate per vari componenti, in particolare per gli aggiornamenti da Microsoft. Tu do vuoi installare correzioni di sicurezza, vero? È possibile cavarsela rimuovendo la maggior parte della CA principale dalle proprie "radici attendibili", ma non tutte, altrimenti molte cose si romperanno nel sistema operativo.

Il problema concettuale è che alcuni sistemi operativi (in particolare Windows) utilizzano un meccanismo centralizzato per la convalida dei certificati, in cui è presente one truststore ritenuto appropriato per tutto ciò che riguarda la convalida dei certificati sulla macchina (in dettaglio, esiste un negozio di fiducia "macchina locale", comune a tutti gli utenti e un negozio di fiducia extra per utente, ma un utente non può "annullare" il negozio di fiducia macchina locale comune). Potresti avere più fortuna con altri sistemi operativi come Linux, che tradizionalmente non usano i certificati X.509 per le loro esigenze interne, ma le chiavi OpenPGP, con un sistema di fiducia molto più decentralizzato.


Il browser Web Firefox , tuttavia, utilizza la propria implementazione SSL e l'archivio di fiducia, separato da quello del sistema operativo di base. Inoltre, Firefox supporta i profili , il che significa che un utente può avere diversi "personaggi" con Firefox, ognuno con le proprie impostazioni, compreso l'insieme delle radici attendibili. Pertanto, una società che teme per la riservatezza dei propri dati potrebbe fare quanto segue: potrebbe istruire i suoi dipendenti, quando trattano con i server aziendali, a utilizzare sempre Firefox, con un profilo specifico che contiene solo la radice della società (o un set di auto- certificati firmati) come "radici attendibili".

Non è chiaro se gli stessi dipendenti vorrebbero, ma è fattibile.

Ricorda, tuttavia, che un potente attaccante è potente. Se quell'aggressore può controllare la "CA ufficiale", potrebbe spingere un falso aggiornamento, presumibilmente firmato da Microsoft, che installa una backdoor in ogni sistema. Oppure potrebbero semplicemente chiedere a Microsoft di piantare da soli la backdoor. In ogni caso, non hai molta scelta: per costruzione, devi fidarti del sistema operativo e dell'hardware per non giocare a giochi disgustosi su di te.

23
Thomas Pornin

I plugin del browser come Certificate Patrol per Firefox possono avvisarti delle modifiche dall'ultima o dalla prima visita; ma scoprirai che molte topologie di rete legittime e soluzioni di bilanciamento del carico si sono affidate a questo difetto di fiducia intercambiabile di SSL, quindi ti ritroverai con un sacco di suggerimenti e avvertenze durante la navigazione in Internet.

È corretto affermare che i certificati autofirmati o le CA principali private sono più sicuri delle CA principali pubbliche pre-attendibili; a condizione che tu abbia motivo di fidarti della catena di certificati privata e di un canale sicuro per riceverlo. Cioè: Affidati sempre e solo ai certificati autofirmati di cui hai motivo di fidarti. Dovrai eliminare tutte le altre CA radice pre-attendibili.

Forse sul computer sono presenti due istanze del browser con marchio diverso. Uno per comunicazioni sicure utilizzando solo un piccolo set di CA radice verificate; e un'altra istanza del browser Vanilla per comunicazioni non sicure.


La crittografia inizialmente asimmetrica (coppie di chiavi pubbliche/private) avrebbe dovuto comportare una qualche forma di fiducia più diretta, come la popolarità delle parti fisiche firmatarie negli anni '90. Un esatto approccio praticabile non era stato completamente chiarito prima che Internet fosse esplosa a metà degli anni '90.

Dato che queste reti fisiche di fiducia erano considerate inattuabili per il commercio elettronico su distanze nazionali o internazionali, abbiamo accettato la creazione di società che agiscono come autorità di certificazione "affidabili" per il resto della comunità aziendale; presumibilmente in grado di essere citato in giudizio se hanno firmato certificati che non avevano verificato. Mentre questa è una soluzione (per lo più adeguata) per citizen<->business fiducia per scopi di e-commerce; non fa nulla per la protezione contro entità con le risorse e i poteri legali per intercettare e forzare le autorità di certificazione commerciali.

Per parafrasare: la migliore bugia che l'NSA * abbia mai detto era che la loro spionaggio non esiste o non funziona.

La conservazione dei dati porta questo a un livello completamente nuovo.

Personalmente, da quando ho letto La luce degli altri giorni , ho subliminalmente assorbito l'idea che nulla è veramente privato. Dipende da quanto sono interessati i poteri che sono in te, ciò che è a loro disposizione e se esiste una democrazia sana per tenerli sotto controllo.

* o [inserire qui l'agenzia di spionaggio preferita]

7
LateralFractal

Tutti gli altri qui hanno ragione, ma ecco una semplice risposta diretta alla tua domanda.

Se riesci a comunicare con il proprietario del server fuori banda la prima volta che accetti un certificato autofirmato e verifica che si tratti del loro certificato e riconosci solo quel certificato per connessioni future al loro server, in teoria un tale l'installazione potrebbe essere più sicura di un tradizionale certificato firmato dalla CA. Lo scenario di trasporto dell'unità USB funzionerebbe come comunicazione fuori banda qui, purché si possa essere certi che l'unità USB non sia stata in alcun modo compromessa.

In tal caso, potresti farlo se il loro certificato è firmato dalla CA o autofirmato, e se quel certificato è sempre "bloccato" dal tuo browser (o nella tua mente; quindi verifichi che sia la stessa firma per ciascuno e ogni visita), allora puoi essere relativamente sicuro che non sta avvenendo MitM. Ciò comporta, comunque, la necessità di parlare direttamente con e fidarsi di ogni singolo operatore del server, e spesso ciò non è fattibile.

Questo scenario richiederebbe anche un canale di revoca fuori banda, nel caso in cui un'entità ostile entri nel loro server e rubi la loro chiave privata. E se dici "bene, cosa succede se l'operatore del server non è a conoscenza del compromesso della chiave privata?" allora non si può fare molto; questo è un problema che SSL/TLS non può prevenire in generale.

2
Anorov

È più sicuro utilizzare un certificato bloccato piuttosto che basarsi sull'origine di CA. Questo è indipendente dal fatto che il certificato sia autofirmato o firmato da una CA.

Tuttavia, è necessario garantire la distribuzione del pinnng :-)

Nel caso in cui si stia distribuendo un "browser sicuro" su CD, è possibile installare un collegamento con una riga di comando come "Twitter Like A Boss" di http://scarybeastsecurity.blogspot.com.es/2011 /04/fiddling-with-chromiums-new-certificate.html

(attenzione: corrente Chrome non supportano la proprietà public_key_hashes in HSTS, che viene utilizzata in quella riga di comando per bloccare il certificato)

0
Ángel

Avere solo un certificato autofirmato non lo rende più sicuro. Dopo che è stato compromesso, devi dire personalmente a tutti i tuoi clienti che la connessione non è più sicura e che non dovrebbero più fidarsene, distribuire il nuovo certificato e tenere le dita incrociate che tutti i tuoi clienti vengono avvisati in tempo.

Se si desidera procedere in questo modo, è necessario creare la propria CA con il proprio certificato radice privato (generato su un computer che non si è mai connesso a Internet). Dovresti conservare la chiave solo su una chiavetta USB e metterla in un caveau ed estrarla solo se devi emettere un nuovo certificato (richiesta) (di nuovo, fallo solo su un computer che non ha mai visto il World Wide Web) . Avere una CA ti dà la possibilità di creare nuovi certificati quando ne hai bisogno. Quindi configurare un server OCSP in modo che i client possano controllare su richiesta (se si tratta del software client è necessario imporre il controllo OCSP prima di qualsiasi connessione) se sono stati revocati eventuali certificati.

Quando tutto è impostato e funzionante devi sperare che nulla vada storto (i tuoi server vengono hackerati). Ma è un sacco di lavoro e per mantenerlo sicuro probabilmente non è economico.

0
esskar