Certuto autofirmato: come funziona

4

Sono nuovo di SSL / certificati digitali / firme.
Quello che so è che una firma digitale deve essere verificata / decifrata usando la chiave pubblica.

Quindi un certificato firmato da una CA deve essere verificato / decodificato utilizzando la chiave pubblica della CA installata nella maggior parte dei browser.

  1. Ma che ne dici di un certificato autofirmato? In che modo un client ottiene la chiave pubblica per verificare / decrittografare il certificato autofirmato?

    È questo lo scenario in cui il browser chiederà che il certificato provenga da fonti non attendibili e richieda al client di fidarsi di esso?

    Affidandosi, significa che la firma digitale del certificato non è più verificata? E che il certificato è usato direttamente?

  1. link

    Nel link sopra, la "chiave del server" è una chiave privata o una chiave pubblica? Sembra che la "chiave del server" sia utilizzata per tutta la generazione del certificato.

    Avrei pensato che una "chiave pubblica" sarà memorizzata nel certificato e il certificato sarà firmato da una chiave privata.

posta Noob 19.01.2016 - 13:15
fonte

3 risposte

2

Per comprendere il certificato autofirmato, in un primo momento dobbiamo capire il ruolo di Certificate Authority (CA). Spiegherò le cose nel contesto dei server web e browser.

Il ruolo dell'autorità di certificazione (CA) in HTTPS:

HTTPS impiega la crittografia a chiave pubblica che utilizza una coppia di chiavi per crittografare e decrittografare il contenuto. La coppia di chiavi è composta da una chiave pubblica e una privata che sono matematicamente correlate. Un server web che intende comunicare in modo sicuro con i browser può distribuire la chiave pubblica, ma deve mantenere la chiave privata segreta.

Ora il problema è che i browser non possono sapere con certezza che la chiave che un server web utilizzato per la crittografia effettivamente apparteneva al server web. È possibile che un'altra parte che ha monitorato il canale di comunicazione tra il server Web e il browser abbia sostituito una chiave diversa. Il concetto di Autorità di certificazione (CA) si è evoluto per aiutare a risolvere questo problema. Certificate Authority (CA) è una terza parte fidata che stabilisce l'integrità e la proprietà di una chiave pubblica. CA lo fa firmando il certificato (la chiave pubblica del server web) utilizzando la sua chiave privata. I browser dispongono di chiavi pubbliche incorporate di CA note e le utilizzano per verificare i certificati.

Certificato autofirmato:

In caso di certificato autofirmato, il server Web firma il proprio certificato invece di farlo firmare da una CA di terze parti. In altre parole, il server web stesso funziona come CA per se stesso. OpenSSL può essere utilizzato per generare un certificato autofirmato.

In caso di certificati autofirmati, i browser (ad esempio Chrome) non sarebbero in grado di verificare il certificato, pertanto si lamenterà. Per risolvere il problema, è possibile installare il certificato della CA autofirmata nei browser.

References:

Wikipedia

Microsoft MSDN

    
risposta data 18.01.2017 - 04:16
fonte
2

1)

  • Un certificato autofirmato utilizza la chiave per firmare se stesso; non c'è CA coinvolta, non c'è nulla da verificare. Il certificato in pratica verifica che corrisponda alla chiave, ma nulla di più, quindi non serve a veri scopi di verifica.

  • Il tuo browser mostrerà un avviso del certificato autofirmato, il che significa che la chiave non è certificata da nessuno. Questo è diverso dai tasti che sono certificati da una CA a cui il client non ha familiarità con (CA non attendibile), dove il client ha la possibilità di fidarsi della CA sconosciuta manualmente .

2)

Qui non lavori con le chiavi pubbliche e private, solo con una chiave e il suo certificato che è una firma e i metadati per la chiave. La chiave in questione è la tua chiave privata: mantienila privata.

Fornisci all'utente il segreto generato dalla tua chiave privata insieme al certificato (firma e metadati di un'autorità di certificazione), dove il certificato deve corrispondere al segreto generato dalla tua chiave e comunicare al cliente il nome della chiave, proprietario , validità e altri metadati.

Tuttavia il certificato potrebbe essere stato creato da chiunque (è necessario solo abbinare la chiave), quindi il client si fida solo del certificato se è firmato da un certificato principale (che certifica che il certificato è autorevole), o da una catena di certificati, in cui il principale firmatario dovrebbe essere considerato affidabile dal cliente e tutte le firme attraverso la catena della firma devono essere valide.

I certificati principali possono essere incorporati nel client (o nel browser o generalmente nel database dei certificati di sicurezza attendibili) o possono essere importati e accettati dall'utente. Un certificato superiore (CA) casalingo ma affidabile può firmare chiavi che verrebbero verificate in tutti i client che si fidano della CA fatta in casa, ma non in altri.

    
risposta data 19.01.2016 - 13:50
fonte
1

Q1 Per i siti Web pubblici l'approccio più sicuro o l'unico modo sicuro è utilizzare i certificati di una CA attendibile. Tuttavia, in molti scenari possiamo usare un certificato autofirmato per ottenere connessioni "sicure" con un sito web. I browser non si fidano affatto di SSC, ma lancia un avvertimento spaventoso per impedire agli utenti di un sito non attendibile e rischioso.

Q2 Una chiave del server è privata, è la parte sensata della crittografia asincrona e viene utilizzata per firmare un certificato o anche una parte pubblica della crittografia asincrona. Entrambi sono memorizzati nel file system del server, ma solo la parte pubblica è conosciuta dal client / browser per crittografare / decrittografare i dati.

Controlla Ivan Ristic OpenSSL Cook Book se vuoi il depper.

    
risposta data 20.01.2016 - 06:40
fonte