Quando dovrei creare e utilizzare la mia CA?

1

Stavo dando un'occhiata a un tutorial di Docker in cui viene spiegato come creare e utilizzare la nostra CA per crittografare la comunicazione tra il client Docker e il demone e subito mi sono venute in mente un paio di domande: perché non utilizzare sempre un certificato CA creato da noi (ad esempio, per https)? e quando dovremmo usare il nostro certificato CA e quando no?

    
posta Franzech Domâs 30.06.2016 - 23:29
fonte

2 risposte

5

Nel contesto di ssl / tls, un lavoro principale delle CA è assicurare al client che il server al quale è connesso il client è il server a cui il client intendeva connettersi. In alcuni casi può anche essere usato per verificare altre cose.

Comprendere questo e capire i tuoi clienti è la chiave per capire quando dovresti creare la tua CA. Devi pormi alcune domande.

  1. I tuoi clienti utilizzeranno software generico o useranno il software che fornisci?
  2. Se si tratta di un software generico, si prevede di utilizzare un elenco predefinito di CA di sistema o prevede la configurazione di una CA esplicita?
  3. I tuoi clienti saranno sulle macchine che gestisci?

Una volta fatto ciò, puoi valutare i pro e i contro dell'uso del sistema CA pubblico o di una CA privata nel tuo particolare contesto.

Spesso avrai poca scelta. Ad esempio, prendi un sito Web pubblico, i tuoi clienti utilizzano software generico, su macchine che non controlli e su cui non sono disposti a eseguire configurazioni speciali per il tuo sito. Fondamentalmente non hai altra scelta che usare una CA pubblica ampiamente riconosciuta.

All'altro estremo prendi qualcosa come openvpn. Si aspetta completamente che tu usi la tua CA privata come mezzo di identificazione e controllo degli accessi. Provare ad usarlo con una CA pubblica non funzionerebbe ragionevolmente.

Una via di mezzo potrebbe essere un sito Web solo per uso interno. L'utilizzo della propria CA qui comporterebbe dei vantaggi, si potrebbero emettere certificati per i nomi di host interni e non si dovrebbe dipendere da parti esterne per emettere certificati. Tuttavia porterebbe anche degli svantaggi, dovresti installare la tua root nei principali negozi root affidabili sui client. Ottenere il certificato di root negli archivi root attendibili sui client può essere un problema se si hanno macchine non gestite in giro. Avere il tuo cert negli archivi root attendibili significherebbe anche che potrebbe essere usato per gli attacchi MITM sui tuoi client, quindi dovrai mantenere i certificati root (e intermedio se applicabile) sotto controllo molto stretto.

O spostandoti sul lato dello sviluppo del software, considera un programma con un sistema di aggiornamento automatico che si basa su tls per la sicurezza (non un design che consiglierei). Se si utilizza una CA pubblica sul server e l'elenco CA predefinito dei sistemi operativi sul client, chiunque riesca a convincere una CA pubblica a fornire loro un certificato per il proprio dominio può MITM gli aggiornamenti. D'altra parte con una CA privata, l'utente malintenzionato dovrebbe compromettere l'infrastruttura di certificazione interna.

    
risposta data 01.07.2016 - 01:09
fonte
0

Un CA è un certificate authority che indica una terza parte che attesta la tua identità.

È possibile utilizzare certificati autofirmati per la crittografia ma non consente di attestare che il certificato proviene dalla macchina appropriata (autorizzata). Chiunque può impostare un certificato autofirmato per il tuo nome di dominio.

Se davvero volevi creare il tuo CA per firmare i tuoi certificati, potresti non avere alcuna credibilità e richiederebbe a tutti i browser di importare manualmente il certificato.

    
risposta data 30.06.2016 - 23:50
fonte

Leggi altre domande sui tag