Perché i certificati autofirmati non sono attendibili e c'è un modo per renderli affidabili?

31

Ho creato localmente un certificato CA root. Ho usato il certificato CA per firmare il certificato IA e ho utilizzato il certificato IA per firmare il certificato del server. Quando provo ad accedere al server locale che utilizza il certificato del server, mi dà un avviso di rischio per la sicurezza. C'è un modo per non dare l'avvertimento?

Tutto ciò che sostanzialmente voglio sapere è, è possibile rendere affidabile il certificato autofirmato?

    
posta Praz 04.02.2016 - 13:46
fonte

8 risposte

47

Devi importare il certificato di root nel trust store per il browser. Una volta che il browser sa che ti fidi di questo certificato radice, tutti i certificati firmati da questo verranno visualizzati come attendibili.

Tieni presente che questo renderà la connessione affidabile per te, tutti gli altri che non hanno il certificato di root installato continueranno a ricevere un errore.

    
risposta data 04.02.2016 - 13:51
fonte
38

I certificati autofirmati non sono considerati attendibili dal tuo browser perché un certificato di per sé non costituisce alcun trust, la fiducia deriva dall'essere firmata da un'Autorità di certificazione che TUTTI credono. Il tuo browser semplicemente non si fida del tuo certificato autofirmato come se fosse un certificato di root. Per fare in modo che il tuo browser accetti il tuo certificato, accedi alle configurazioni del tuo browser e aggiungi il certificato come certificato di origine.

Il modo migliore per ottenere un certificato autofirmato è di passare attraverso una cerimonia chiave , che è fondamentalmente un un grande evento pubblico in cui tutti i crittografi e gli esperti di sicurezza si riuniscono per assistere a una CA radice che genera la propria coppia di chiavi e si dichiara un'autorità di certificazione principale. Tutto è registrato: video, chi sono tutti e cosa fanno tutti gli avvocati. La chiave privata è suddivisa in molte parti diverse e memorizzata separatamente nelle cassette di sicurezza in genere dopo aver firmato un singolo certificato che viene utilizzato come intermediario per firmare altri certificati. Puoi leggere la procedura tipica se lo desideri. Ovviamente, è necessario disporre di una sicurezza allo stato dell'arte, sia tecnologica che fisica, per fare ciò e chiedere a chiunque di utilizzare o fidarsi della propria CA principale. Dopo averlo fatto, i certificati possono essere inclusi nelle distribuzioni del browser e quindi possono essere utilizzati dal pubblico per creare catene di certificati di fiducia.

    
risposta data 04.02.2016 - 13:52
fonte
15

In realtà, i certificati autofirmati possono essere sicuri, solo che non sono sotto il modello che stiamo utilizzando ora.

Nell'ambito del modello CA (autorità di certificazione) esteso che ognuno utilizza attualmente, lo scopo del certificato firmato da una CA attendibile è quello di fornire l'autenticazione.

Quando otteniamo un certificato, tutto ciò che vediamo realmente sono gli 1 e gli 0 che arrivano dal jack nel muro; non abbiamo idea di dove venissero quegli 1 e gli 0. Tuttavia, poiché il certificato è firmato da una CA - qualcosa che nessun altro al mondo può fare - e siccome crediamo che la CA verifichi l'identità del proprietario del certificato, crediamo che il certificato proviene da chi dichiara di essere

Naturalmente, se la CA è compromessa o non verifica correttamente il proprietario , tutte le scommesse sono disattivate.

Tuttavia, esiste un altro modello, in base al quale i certificati autofirmati fanno forniscono autenticità. Si chiama modello notarile .

In sostanza, piuttosto che fidarsi di una singola CA, distribuiamo il trust su qualsiasi numero di notai . Questi notai percorrono Internet alla ricerca di certificati, conservando una cache di tutti i certificati che hanno visto. Quando visiti un sito per la prima volta e ottieni il certificato, chiedi a un certo numero di notai distribuiti a livello globale quale sia l'ultimo certificato che hanno visto. Se non sono d'accordo con quello che stai vedendo, potresti essere parte di un attacco man-in-the-middle.

Sotto questo modello, i certificati autofirmati sono perfettamente sicuri, purché si presuma che il server non sia immediatamente compromesso prima che qualsiasi notaio possa mai visualizzare il suo certificato.

Il modello notarile è ancora nella sua infanzia, e dubito che possa mai prendere il modello di CA (in realtà, non è necessario - possono essere usati in tandem) . Il progetto più promettente finora è Convergence.io , che ha un plugin per Firefox.

    
risposta data 04.02.2016 - 18:41
fonte
7

Risposta più breve.

Molte risposte qui, ma nessuna sembra arrivare direttamente al punto: senza una terza parte neutrale e riconosciuta, come un'autorità di certificazione, che verifica la proprietà del certificato, un certificato non ha senso.

Risposta più lunga.

Per capire meglio, quando fai qualcosa come la creazione di una connessione HTTPS hai la seguente catena:

  • Un browser Web client che effettua la richiesta al server.
  • Il server Web remoto che invia i dati al client.
  • E un certificato HTTPS autorizzato da una terza parte neutrale che garantisce che il server è chi è e la crittografia è valida a causa di ciò.

Un certificato autofirmato è intrinsecamente non attendibile perché chiunque può generare un certificato autofirmato . Chiunque includa un'entità che finge deliberatamente di essere qualcosa / qualcuno che non è. Con un certificato autofirmato non c'è semplicemente una terza parte fidata che abbia le procedure umane di base impostate semplicemente nello stato, "Okay, questo dominio ha un certificato che abbiamo rilasciato e quindi puoi fidarti di loro. Diciamo che sono di fatto il dominio che si sostiene di essere e non un impostore. "

E dal momento che chiunque nel mondo può creare autonomamente un certificato autofirmato, il suo utilizzo ha problemi di affidabilità intrinseca. Ciò che rende un certificato valido ha molto poco a che fare con la tecnologia profonda o le tecniche di crittografia ma ciò che lo rende valido è un processo incentrato su una neutrale e riconosciuta terza parte che convalida un procedura di utilizzo e produttori di browser che aderiscono al rispetto di tali procedure.

Alla fine della giornata una coppia di chiavi di crittografia è una pila di bit e byte priva di significato senza l'applicazione dei processi e delle procedure che li circondano.

    
risposta data 05.02.2016 - 06:25
fonte
4

I certificati autofirmati non possono essere considerati attendibili perché chiunque è in grado di crearne uno.

Un utente malintenzionato che esegue un attacco MITM potrebbe facilmente sostituire qualsiasi certificato con un autofirmato e impersona qualsiasi sito web che stai navigando, anche se utilizzi HTTPS.

Ecco perché utilizziamo Autorità di certificazione di fiducia per garantire che i certificati non possano essere falsificati.

    
risposta data 05.02.2016 - 14:54
fonte
3

Abbiamo tutti bisogno di un piccolo contesto.

C'è una differenza tra "non attendibile" e sicuro.

E "Trusted" non implica necessariamente Secure (o Authentic)

Un certificato autofirmato su una rete isolata con un solo server e un client è probabilmente più sicuro di qualsiasi certificato "fidato".

E "trusted" implica SOLO che un certificato dell'autorità di certificazione è stato aggiunto all'archivio certificati attendibili per il client. Se il certificato dell'autorità di certificazione è stato aggiunto durante una sessione di "phishing", non c'è nulla di sicuro sul certificato.

Non sono un fan che ci siano spesso centinaia di Autorità di certificazione "attendibili" inserite nel client da "altri", ma non conosco un approccio migliore.

Certamente le autorità di certificazione devono eseguire un processo di "controllo" migliore (in generale) di quello che stanno facendo ora prima di rilasciare un certificato.

    
risposta data 05.02.2016 - 16:12
fonte
2

A qualsiasi applicazione deve essere fornita l'elenco dei "certificati radice" per essere considerati attendibili.

Nel caso di un browser, esiste un elenco definito che viene fornito di default con qualsiasi browser, ma questo elenco non contiene il tuo certificato.

Immagina di non aver bisogno di fornire l'elenco dei certificati di cui ti fidi, quindi chiunque sarebbe in grado di configurare un sito Web https che un browser del mondo accetterebbe senza preavviso sul rischio per la sicurezza.

D'altra parte, funzionerebbe fuori dalla scatola se il tuo certificato CA è a sua volta firmato da uno dei certificati attendibili predefiniti ... ma devi pagare.

Ci sono sufficienti risposte su come aggiungere un certificato CA all'elenco di fiducia, quindi salterò questa parte.

    
risposta data 04.02.2016 - 15:22
fonte
0

Se vuoi farlo per i browser, ecco i passaggi:

Per Chrome 58+:  - Impostazioni - > Mostra impostazioni avanzate - > Gestisci certificati - > Importa - > sfoglia - > scegli Autorità di certificazione radice affidabile - > fai clic su Sì nel popup.

    
risposta data 28.06.2017 - 09:24
fonte

Leggi altre domande sui tag