it-swarm-eu.dev

Quali alternative ci sono al sistema esistente dell'autorità di certificazione per SSL?

Mentre l'attuale sistema CA funziona molto bene per molte persone, mette molto potere nelle mani delle singole CA e rende un hack CA potenzialmente devastante per clienti e aziende. Quali alternative ci sono alle autorità di certificazione e quali sono le sfide nel passaggio a tali sistemi? Ho visto proposte per una varietà di sistemi distribuiti simili al P2P, ma non ne è mai venuto fuori nulla.

42
Polynomial

Le "alternative" dipendono dal fatto che tu voglia qualcosa che potrebbe funzionare in futuro o qualcosa che funzioni ora, con i browser esistenti.

In questo momento , i browser Web prevedono che i server inviino certificati X.509 , quindi li convalidano rispetto all'insieme della CA principale integrato nel browser (o nel sistema operativo). Ciò significa che se desideri qualcosa che funzioni senza alcuna installazione di software aggiuntivo, tutto ciò che puoi fare è modificare il set di CA radice (your trust anchor). Puoi:

  • Rimuovi parte della CA ( è stato detto che puoi rimuoverne la maggior parte senza influire realmente sulla tua esperienza di navigazione, perché non tutte le CA affidabili sono ugualmente attive).
  • Aggiungi nuovi ancoraggi di fiducia. Nota che a anchor anchor è "un nome e una chiave pubblica di cui ti fidi a priori". Gli ancoraggi di fiducia sono di solito codificati come certificati (perché il formato è conveniente per quello), e tradizionalmente sono autofirmati (principalmente perché in un certificato, c'è un campo per una "firma" che non può essere lasciato vuoto). Ma puoi fidarti dei certificati che non sono autofirmati; puoi persino fidarti dei certificati delle entità finali (ovvero ti fidi del certificato specifico di un determinato server SSL: questo si chiama fiducia diretta). Con la fiducia diretta, gestisci manualmente ciò di cui ti fidi con una granularità molto fine. Si noti che, con la fiducia diretta, si perdono i vantaggi di revoca (un certificato direttamente attendibile non può essere considerato attendibile se non mediante un intervento manuale da parte tua, mentre la revoca riguarda la propagazione automatica delle informazioni di sfiducia).

(Si può notare che il modello di affidabilità diretta è esattamente ciò che segue SSH e funziona bene nel contesto di utilizzo di SSH.)

In futuro , potrebbero esserci altri modelli. Esistono diverse proposte, alcune supportate da componenti aggiuntivi software esistenti. Per quanto ne sappia, nessuno ha ancora raggiunto il livello "generalmente utilizzabile". Ci sono, ad esempio:

  • DNSSEC e DANE : DNSSEC riguarda la mappatura di un PKI sul sistema DNS, principalmente in modo da autenticare i dati restituiti dal DNS stesso, ma questo può essere una leva per distribuire le chiavi del server SSL (di cosa parla DANE). Questo è ancora un PKI gerarchico, con un insieme limitato di ancoraggi di fiducia; la differenza con il set esistente di CA root è principalmente un cambiamento di giocatori: il nuovo set di gatekeeper è più piccolo e si sovrappone solo parzialmente con il CA root esistente. Inoltre, DNSSEC/DANE associa il processo di autenticazione dei server Web all'infrastruttura e agli attori DNS e non è chiaro se ciò sia positivo o negativo.

  • A Web of Trust come OpenPGP. Il modello WoT si basa sulla superconnettività del grafico. Per semplificare le cose, con un WoT ognuno è un CA e ogni attore è il suo unico e unico CA principale; per far fronte a "CA" ingannevoli o addirittura maliziosi, gli utenti WoT (ovvero i browser Web) accettano un certificato di destinazione valido solo se possono verificarlo attraverso molti percorsi che attraversano una CA distinta e tutti concorrono a posizionare la chiave del server di destinazione. La natura decentralizzata di WoT è molto popolare tra le persone che diffidano dei governi e tutto ciò che sembra un'amministrazione. Tuttavia, la sicurezza di WoT dipende molto da massa critica: non ti darà molto fino a quando non collaboreranno a sufficienza. Vedi progetto Monkeysphere per un'implementazione (con componenti aggiuntivi del browser) (non so molto sulla qualità del progetto, però).

  • Convergence è un discendente del progetto Prospettive . Se ci si arriva, Convergence si basa su Speranza e pigrizia . Ciò che Convergence assume è che gli aspiranti aspiranti troveranno troppo difficile/costoso/noioso impersonare attivamente un determinato server con un certificato falso sia per molto tempo che nella prospettiva di molte persone. Vale a dire, pratico attacchi Man-in-the-Middle sono vicini alla vittima (ad es. Utenti di un determinato hotspot WiFi), nel qual caso hanno un impatto solo su pochissime persone o vicino al server, che richiede qualcosa su larga scala (come un avvelenamento da DNS pesante) che sarà abbastanza evidente, quindi non durerà a lungo. Con questo modello, Convergence è una soluzione piacevole, relativamente economica, con una centralizzazione minima (richiede ancora notai e la centralizzazione de facto può essere prevista, ma non completa come l'attuale set di root CIRCA).

Un punto importante è che l'attuale sistema "funziona". Gli attacchi reali che colpiscono la PKI sono molto rari (molto pubblicizzati, ma comunque rari). Il sistema reale con CA di root è sufficientemente difficile da rompere che gli aggressori trovano più facile aggirarlo in altri modi (in primo luogo abusando della credulità degli utenti umani). Come tale, ci sono pochi incentivi per sostituirlo con un altro sistema che, nella migliore delle ipotesi, farà lo stesso. Quindi, mentre le proposte alternative hanno qualche merito (principalmente in termini finanziari e politici), ritengo relativamente improbabile che qualcuno di loro rimuova la CA radice esistente nel prossimo futuro, per "il Web" come lo conosciamo.

Per architetture chiuse che non sono il Web e in cui controlli client e server, puoi utilizzare qualsiasi sistema tu voglia, ma l'architettura chiusa è precisamente il situazione in cui la PKI gerarchica funziona molto bene.

25
Thomas Pornin

Un'alternativa è DANE/TLSA , che è uno standard RFC che consente le chiavi autofirmate nel DNS.

Una delle sfide è che questo è molto nuovo e la maggior parte dei software client non lo supporta ancora. (Chrome è una nuova aggiunta) Inoltre il DNS è soggetto a vari attacchi, specialmente su reti WiFi e simili.

Un modo per porre rimedio all'attacco DNS è utilizzare DNSSec e assicurarsi che il software client utilizzi DNSSec solo per i domini che lo offrono. Se quest'ultima funzione non esiste, ciò aprirebbe gli utenti a un tipo di vulnerabilità di tipo SSL.

9

SSL supporta anche Secure Remote Password (SRP) . Qui è dove ti autentichi usando una password anziché un certificato. Peccato che i browser non lo supportino.

C'è anche Convergence che è un calo nella sostituzione del sistema CA/PKI. In teoria potresti usare un certificato autofirmato e comunque difenderti dagli attacchi MITM. Fornisce inoltre protezione contro CA non autorizzate.

3
rook

Vale la pena sottolineare che il concetto di catena di fiducia non è esso stesso più o meno vulnerabile della rete di fiducia, del segreto condiviso o di qualsiasi altro meccanismo se implementato alla stessa scala del nostro attuale PKI.

Il problema principale è la proliferazione di autorità di certificazione attendibili nonché la mancanza di differenziazione tra autorità di certificazione a fini di fiducia. Per casi d'uso specifici dell'applicazione (ovvero non browser web ), puoi aggirare questo problema e creare un PKI privato molto solido e molto affidabile. Poiché le implementazioni SSL/TLS ti consentono di specificare le tue radici di fiducia, non c'è motivo per cui devi includere gli elenchi CA popolari forniti da Mozilla e Microsoft. In effetti, se non stai utilizzando un browser , quindi ci sono pochi motivi per cui dovresti includere l'elenco globale delle CA e molti motivi per cui non dovresti . Se sei l'unica CA, la tua superficie di attacco è significativamente limitata (come Microsoft ha recentemente appreso).

Per quanto riguarda il browser PKI, una soluzione più ideale sarebbe quella di creare TLD segmentati per categoria di trust (ad esempio *.bank per istituti finanziari, ecc.) e, soprattutto, limitare l'autorità della CA a un determinato TLD. In questo modo l'ufficio postale di Hong Kong non può più firmare per Paypal o Google.

Ma poiché la tecnologia attuale è effettivamente messa in pietra dall'uso popolare, la possibilità che questa o qualsiasi altra infrastruttura di sicurezza alternativa diventi mainstream è efficace zero.

3
tylerl