Verifica dei certificati client

1

Ho letto molti articoli sui certificati client. Per favore correggimi se ho torto:

  1. i certificati client vengono emessi utilizzando CA
  2. CA potrebbe essere creata da solo (autofirmato) o acquistata
  3. Il certificato client
  4. include una coppia di chiavi pubbliche \ private e una firma creata utilizzando la chiave privata di CA
  5. Il client
  6. deve avere installato solo il certificato client
  7. Il server
  8. deve avere installato CA per convalidare la firma del certificato client utilizzando la chiave pubblica CA

Domanda : qual è la differenza tra CA acquistata e CA autofirmata? Perché, come ho capito in entrambi i casi, ho bisogno di installare CA sul server per convalidare i certificati client.

    
posta mtkachenko 11.12.2015 - 11:37
fonte

2 risposte

3

Lascia che risponda alla tua domanda di root (gioco di parole):

Question: what is difference between bought CA and self-signed CA? Because as I understand in both cases I need to install CA on server to validate client certificates.

Sfondo

Per rispondere a questo, assicuriamoci di capire cos'è un certificato. Quando hai una chiave pubblica / una coppia di chiavi private puoi dare la chiave pubblica a chi vuoi tu, è pubblica, ma come faranno le persone a sapere che in realtà è la tua chiave pubblica? Immagina questo scenario: Alice invia la sua chiave pubblica a Bob, ma Charlie intercetta il messaggio e sostituisce la chiave pubblica di Alice con la sua. Bob non ha modo di sapere che le chiavi pubbliche sono state cambiate perché tutto ciò che vede è una chiave pubblica. Ora Bob pensa di avere una connessione sicura con Alice, quando in realtà ha una connessione sicura con Charlie che sta fingendo di essere Alice.

I certificati risolvono questo problema di conoscenza della cui chiave pubblica hai. Il processo è che mi metto in contatto con una società di autorità di certificazione e dimostrare loro che io sono chi dico di essere (esattamente come vogliono che tu dimostri che la risposta è questa domanda ). Quindi posso inviare la mia chiave pubblica a loro e lo impacchetteranno in un certificato, che contiene la chiave pubblica stessa e un mucchio di informazioni su chi sono. La CA firmerà il certificato per dire "Certifichiamo che questa chiave pubblica appartiene a questa persona" e in modo che i dati nel certificato non possano essere modificati. Ora ho un documento "ufficiale" che dimostra che questa chiave pubblica appartiene a me. Ora non c'è modo per Charlie di fingere di essere Alice.

Nella maggior parte dei casi, non richiedi un certificato come persona, ma per un server specifico all'interno della tua azienda o nel tuo caso, ma l'idea è la stessa.

risposta

Hai 2 modi per trasformare la tua chiave pubblica in un certificato:

  1. Puoi inviarlo a una delle autorità di certificazione radice pubblicamente affidabili di Internet (Digicert, Verisign, Godaddy, Letencrypt, ecc.) che ti rilasciano un certificato (a pagamento),

  2. Oppure puoi creare la tua CA autofirmata e rilasciare un certificato.

L'unica vera differenza tra i due deriva dalla fiducia del pubblico; se paghi una delle radici pubbliche per certificare la tua chiave pubblica, allora ogni computer su Internet si fiderà automaticamente del tuo certificato come autentico e autentico perché si fida della reputazione della CA. Zero lavori extra per te.

Se crei la tua CA autofirmata, ogni computer dirà "cos'è questo e perché dovrei fidarmi di esso?" (ricorda che Charlie può facilmente creare la propria CA e creare un certificato con il nome di di Alice associato alla chiave pubblica di Charlie ). Dovrai quindi accedere manualmente a tutti i computer che necessitano di convalidare uno di questi certificati e dire di fidarti della CA autofirmata aggiungendo il certificato di root autofirmato all'archivio "Autorità di certificazione delle autorità di certificazione di fiducia" di quel computer.

Consigli

La creazione della propria CA radice autofirmata non è necessariamente negativa, dipende da cosa si sta tentando di fare. In molti casi, il fatto che i tuoi certificati siano pubblicamente affidabili su Internet non aggiunge nulla. Ad esempio, in un sistema di badge identificativo aziendale per entrare nell'edificio; a chi importa se quei badge identificativi sono pubblicamente affidabili o meno - ti interessa solo sapere se lo scanner della porta li riconosce. O certificati client su dispositivi embedded; i dispositivi dovranno autenticarsi su un server per ricevere gli aggiornamenti del firmware - solo quel server avrà mai bisogno di convalidare i certificati.

Se il tuo caso d'uso è uno di questi casi d'uso "sistema chiuso", allora con tutti i mezzi, usa la tua CA autofirmata.

    
risposta data 11.12.2015 - 14:56
fonte
1

CA sta per autorità di certificazione ed è diverso da un certificato. i tuoi clienti presenteranno certificati e non CA.

il tuo server dovrebbe essere in grado di verificare il certificato del client indipendentemente dal fatto che tu usi il certificato del cliente con firma personale o se usi il certificato del cliente 'comprato'. Per eseguire tale verifica, il server deve contenere il certificato di origine della CA.

Se utilizzi certificati autofirmati per i tuoi clienti, devi creare il certificato di root e installarlo nel server.

Se acquisti certificati per i clienti, i certificati di root corrispondenti per questi clienti potrebbero essere già disponibili nel Key Store del tuo server - devi installarli altrimenti.

C'è anche un link che fornisce gratuitamente i certificati "acquistati".

    
risposta data 11.12.2015 - 12:19
fonte

Leggi altre domande sui tag