Cosa mi impedisce di acquistare un certificato SSL per un dominio che non controllo?

88

Posso semplicemente creare un server web, rendere il suo nome host " google.com ", creare un CSR su quel server e inviarlo a un'autorità di certificazione per la firma? Diciamo che scelgo il vestito più economico e più dodolento che riesco a trovare.

Funzionerà? Quali meccanismi sono in atto per impedire alle persone di farlo?

Sono ben consapevole che non riceverò traffico destinato a google.com a causa dei record DNS che puntano al vero Google, ma potrei MitM attaccare qualsiasi traffico Google utilizzando questo metodo. Potrei anche reindirizzare il traffico locale verso il mio server senza che gli utenti lo sappiano.

    
posta Flamer 24.02.2016 - 05:36
fonte

4 risposte

138

Questo è più un problema di quanto pensi, in particolare per un'azienda come Google, perché è un obiettivo frequente per questo tipo di imbrogli. Ma ci sono diversi livelli di protezione e la nostra protezione sta migliorando nel tempo.

La prima linea di difesa è l'autorità di certificazione.

Non dovrebbero consentire ai certificati di essere firmati in modo inappropriato. Ogni CA ha il proprio meccanismo per verificare la propria titolarità all'acquisto di un certificato per un determinato dominio, ma in genere include l'esecuzione di una o più delle seguenti operazioni:

  • Verifica la proprietà dell'indirizzo email elencato nelle informazioni WHOIS per il dominio.
  • Verifica la proprietà di un indirizzo email che segue uno dei numerosi modelli predeterminati nel dominio (ad esempio "amministratore @ {dominio}")
  • Crea un record DNS specifico nel dominio
  • Apporta una modifica specifica al sito web ospitato su quel dominio

Ma con tutte le CA che abbiamo, viene emesso un numero sorprendente di certificati inappropriati. Questo è un caso di, "hai avuto letteralmente UN posto di lavoro", ma dobbiamo accettare che gli errori accadano.

Trasparenza certificato è stato creato per aiutare a controllare le CA

C'è una sorprendente mancanza di responsabilità e trasparenza da parte delle CA, quindi Google ha deciso di fare qualcosa al riguardo con Trasparenza certificato .

Questo è un registro pubblico di tutti i certificati firmati dalla CA; se un certificato non viene visualizzato nel registro, non è valido e il registro è solo accodato; non puoi tornare indietro e fregare la tua storia. È ancora relativamente nuovo, ma Chrome lo richiede già su alcune CA, incluse tutte le CA EV. L'idea è che puoi seguire il log e vedere se il tuo dominio appare quando non dovrebbe. Gli strumenti si stanno ancora evolvendo per renderlo più semplice, ma è una tecnologia molto promettente.

La tua ultima linea di difesa è pinning

I browser più sicuri consentiranno ai proprietari di domini di "pin" una o più chiavi pubbliche al loro dominio. Si tratta di un end-around dell'intero sistema PKI e inietta la fiducia direttamente nel browser. I proprietari di domini possono, tramite l'intestazione HTTP, dire al browser di consentire solo i certificati con chiavi pubbliche specifiche, e possono infatti spedire tale asserzione preinstallata sul browser stesso. Ciò impedisce l'utilizzo di un certificato non autorizzato, anche se ha una firma CA valida.

DNSSEC e DANE sono dove andrà a finire

Probabilmente. Con DNSSEC, puoi firmare i tuoi record DNS, il che significa che puoi inserire la tua firma di chiave pubblica proprio lì in DNS. Il che significa che non hai bisogno di un'autorità di certificazione di terze parti per firmare le tue chiavi. Questa è una soluzione piuttosto elegante, ma DNSSEC è ancora lontano; non puoi usarlo con un numero di sistemi operativi e l'adozione è decisamente glaciale.

    
risposta data 24.02.2016 - 06:52
fonte
19

Devi dimostrare la proprietà del DNS prima che qualcuno firmi un certificato per un determinato nome di dominio.

Creare una CSR con il dominio di Google non sarà sufficiente.

Se un'autorità di certificazione ti ha effettivamente fornito un Cert valido per un dominio di cui non provavi la proprietà, quella CA sarebbe stata immediatamente sospettata dalle persone e i loro certificati di origine sarebbero stati rimossi dagli archivi fiduciari.

    
risposta data 24.02.2016 - 06:04
fonte
4

In teoria, per le attuali autorità di certificazione questo è possibile. Ma ci sono molti safegaurd sul posto. Ma questo è già stato risolto.

Tuttavia questo è non possibile con l'autorità di certificazione letsencrypt . Perché utilizza il protocollo ACME per dimostrare la proprietà del nome di dominio.

Fondamentalmente si esegue il client di crittografia che comunica con i server dell'autorità di certificazione di consentirne la crittografia utilizzando il protocollo ACME per dimostrare di essere il proprietario del nome di dominio rivendicato. Una volta provato, ti viene rilasciato un nuovo certificato, gratuitamente e automaticamente.

    
risposta data 25.02.2016 - 04:23
fonte
2

Risposta breve; SÌ, potrebbe funzionare

Visto il modo in cui funzionano i certs, se potessi trovare una CA che fosse abbastanza schifosa da fare, potresti finire con un certificato che dice il tuo Google.com.

Il problema è che le CA dovrebbero verificare la tua identità. Questo è il loro intero scopo. Uno che fa un brutto lavoro non durerà a lungo.

Di solito queste CA meno degne di fiducia sono al 4 ° e al 5 ° livello in una catena di fiducia, e solitamente vengono identificate e rimosse rapidamente dalla catena di fiducia.

Detto questo, quando guardi solo i certificati, la CA è l'ultima linea di difesa, quindi se riesci a trovarne uno che certifichi che sei google.com senza la ricerca appropriata, ti ritroverai con un certificato che lo dimostra sei google.com. (probabilmente ancora per un tempo molto breve)

È importante notare che questo è un vettore serio per l'attacco e un problema per i server più grandi. È anche un possibile (ma meno utilizzato) vettore di attacco se è possibile aggiungere un certificato di root a un client tramite codice dannoso.

Ci sono alcune "correzioni" nei lavori, come DNSSEC, ma ci vorrà un po 'di tempo prima che venga ampiamente utilizzato.

Oggi la migliore protezione è assicurarsi che i certificati di root dei tuoi clienti siano sani di mente e non aggiungano loro.

    
risposta data 24.02.2016 - 19:30
fonte

Leggi altre domande sui tag