Compare Revisions
Certificato di sicurezza di un sito web
Revision 292423:
Revision 292423 by michro on
Revision 303839:
Revision 303839 by michro on
Keywords:
sicurezza PKI
sicurezza PKI
Search results summary:
I siti web possono fornire ai browser un certificato al fine di identificarsi. In questo articolo viene spiegato come in Firefox viene controllata l'autenticità dei siti visitati.
I siti web possono fornire ai browser un certificato al fine di identificarsi. In questo articolo viene spiegato come in Firefox viene controllata l'autenticità dei siti visitati.
Content:
I certificati [https://it.wikipedia.org/wiki/Transport_Layer_Security TLS] (Transport Layer Security) verificano la proprietà e l'integrità delle informazioni dei siti web visitati. In pratica questi certificati di sicurezza di un sito web aiutano Firefox a determinare se il sito che si sta visitando sia proprio il sito che dichiara di essere. In questo articolo viene spiegato il funzionamento dei certificati.
__TOC__
=Quali siti web utilizzano i certificati?=
I siti web i cui indirizzi iniziano con '''https''' utilizzano certificati del server TLS. I siti web che utilizzano certificati del server TLS soddisfano due condizioni:
* L'amministratore del sito web possiede o ha il controllo del nome di dominio, garantendo che gli utenti si colleghino al sito legittimo e non a una copia contraffatta o malevola del sito web.
* Lo scambio di dati crittati tramite TLS tra il browser e il sito web è protetto da intercettazioni o manomissioni da parte di soggetti non autorizzati.
=Catena di affidabilità=
I browser come Firefox verificano i certificati attraverso una gerarchia chiamata '''catena di affidabilità''', che in genere è composta da almeno tre certificati:
* Il certificato root '''(trust anchor)'''
* Uno o più certificati intermedi
* Il certificato del server '''(end entity)'''
;[[Image:chain-of-trust]] <!-- Localizers: "chain-of-trust" image is optional -->
Il certificato root (radice) appartiene a una [http://it.wikipedia.org/wiki/Certificate_authority Autorità di certificazione] (CA) che il browser ritiene attendibile per emettere altri certificati. In genere, un certificato radice emette uno o più certificati intermedi che vengono poi utilizzati per emettere certificati del server TLS alle organizzazioni che possono dimostrare il controllo sui domini dei siti web specificati da tali certificati.
I certificati si basano sulla crittografia a chiave pubblica, in cui una coppia di chiavi asimmetriche ha due chiavi matematicamente correlate:
* '''Chiave privata''': questa chiave è tenuta segreta dal suo proprietario e viene utilizzata per operazioni crittografiche come la firma di dati (inclusi i certificati) o la decrittografia di informazioni crittate con la chiave pubblica.
* '''Chiave pubblica''': questa chiave è condivisa pubblicamente e viene utilizzata per verificare le firme create dalla chiave privata o per crittare informazioni che solo la chiave privata può decrittografare.
I certificati a chiave pubblica contengono le seguenti informazioni:
* Dettagli sull'autorità di certificazione (CA) che ha emesso il certificato
* Una chiave pubblica appartenente all'organizzazione che ha ricevuto il certificato
* Dettagli identificativi sull'organizzazione che detiene la chiave privata (vedere [[#w_contenuto-di-un-certificato|Contenuto del certificato]] di seguito. Per i certificati del server TLS, questo è principalmente il nome di dominio del sito web)
Ora possiamo descrivere come Firefox determina se un sito web è sicuro.
==In che modo Firefox verifica l'integrità del certificato?==
Ecco come Firefox utilizza la catena di affidabilità per verificare i certificati del server TLS:
# Firefox scarica il certificato del sito web visitato.
# Firefox verifica il certificato utilizzando il database interno delle autorità di certificazione (CA) attendibili.
#* Utilizza la chiave pubblica del certificato radice della CA per garantire che il certificato radice e il certificato intermedio siano firmati correttamente lungo la catena fino al certificato del server TLS fornito dal sito web.
# Firefox controlla le informazioni contenute nel certificato per verificare che il sito web a cui si è connessi corrisponda al sito web elencato nel certificato.
# Firefox genera una chiave simmetrica (singola) per crittare il traffico HTTP della connessione.
# Firefox critta la chiave simmetrica con la chiave pubblica del server, che si trova nel certificato del server.
# La chiave privata, che si trova sul server web, decritta i dati di connessione necessari per completare quello che è noto come ''TLS handshake''.
Potrà quindi verificarsi una comunicazione sicura tra Firefox e il sito web.
=Visualizzare un certificato=
Per visualizzare un certificato, seguire questa procedura:
# Fare clic sull'icona del lucchetto [[Image:Fx89Padlock]] nella barra degli indirizzi.
# Nel [[Site Information panel|pannello Informazioni sul sito]] che si apre, fare clic su {button Connessione sicura}.
#;[[Image:clic_connessione_sicura_fx134|width=450]]
# Nel pannello successivo, fare clic su {button Ulteriori informazioni}.
#;[[Image:clic_ulteriori_informazioni_fx134|width=450]]
# Nella [[Firefox Page Info window|finestra Page Info]] che si apre, fare clic su {button Visualizza certificato}.
#;[[Image:visualizza_certificato_fx134]]
In Firefox verrà aperta la pagina '''about:certificate''' che consente di visualizzare le informazioni sul certificato per il sito web in cui si trova:
;[[Image:pagina_about_certificate_fx134|width=700]]
Le tre schede mostrano, da sinistra a destra, il certificato del server TLS, il certificato intermedio e il certificato radice.
=Contenuto di un certificato=
Un certificato del server TLS di un sito web contiene le seguenti informazioni:
* '''Nome soggetto''': contiene attributi facoltativi, ad esempio il nome del sito web e altre informazioni sull'organizzazione proprietaria del certificato.
* '''Nome autorità emittente''': identifica l'Autorità emittente (CA) che ha rilasciato il certificato.
* '''Validita''': visualizza il periodo di validità del certificato.
* '''Estensione nome alternativo soggetto''': elenca gli indirizzi dei siti web per i quali il certificato è valido.
* '''Informazioni chiave pubblica''': elenca gli attributi della chiave pubblica del certificato.
* '''Numero di serie''': identifica univocamente il certificato.
* '''Algoritmo di firma''': algoritmo utilizzato per creare la Firma.
* '''Impronte digitali''': hash del file del certificato in formato binario [https://wiki.openssl.org/index.php/DER DER].
* '''Utilizzo della chiave''' e '''Utilizzo esteso della chiave''': specifica come gli utenti potrebbero utilizzare il certificato, ad esempio per eseguire l'autenticazione del server web TLS.
* '''ID chiave soggetto''': un identificatore generato dalla chiave pubblica del certificato TLS come modo per identificare il certificato.
* '''ID chiave autorità''': un identificatore generato dalla chiave pubblica della CA come modo per identificare la chiave pubblica corrispondente alla chiave privata utilizzata per firmare il certificato.
* '''Endpoint CRL''': la posizione dell'[https://it.wikipedia.org/wiki/Certificate_revocation_list elenco dei certificati revocati (Certificate Revocation List o CRL)] dell'autorità di certificazione emittente (Certification Authority o CA).
* '''Info autorità (AIA)''': contiene il metodo di convalida per l'autorità di certificazione e il file del certificato intermedio.
* '''Criteri certificato''': contiene puntatori al tipo di certificato TLS di cui si tratta (ad esempio, informazioni verificate al momento dell'emissione del certificato).
* '''SCT inclusi''': elenca i [https://www.globalsign.com/en/blog/what-is-certificate-transparency timestamp (data e ora) dei certificati firmati] (Signed Certificate Timestamps o SCT).
=Certificati problematici=
Quando si visita un sito web il cui indirizzo inizia con '''https''' e viene rilevato un problema con il certificato TLS, il browser visualizzerà una pagina di errore. Alcuni degli errori più comuni relativi ai certificati sono elencati nell'articolo [[What do the security warning codes mean?]].
Per visualizzare il certificato problematico, procedere nel seguente modo:
# Nella pagina '''Attenzione: potenziale rischio per la sicurezza''', fare clic su {button Avanzate…}.
#;[[Image:certificato_problematico_avanzate_fx122|width=650]]
#Fare clic su ''Visualizza certificato''.
#;[[Image:visualizza_certificato_problematico_fx122|width=600]]
Verrà visualizzata la pagina ''about:certificate'' del certificato problematico.
<!-- see discussion
=Eliminare certificati=
È possibile eliminare i certificati seguendo questa procedura:
# [[Template:optionspreferences]]
# Fare clic su {menu Privacy e sicurezza} nel pannello a sinistra.
# Scorrere verso il basso fino alla sezione '''Certificati'''.
# Fare clic sul pulsante {button Mostra certificati…}.
#;Verrà visualizzata la finestra pop-up '''Gestione certificati''' con la scheda {menu Certificati personali} selezionata per impostazione predefinita che contiene un elenco di certificati associati.
# Fare clic su un certificato nell'elenco.
# Fare clic sul pulsante {button Elimina…} nella parte inferiore della finestra pop-up.
#;Verrà visualizzata una finestra pop-up con la richiesta di conferma.
# Fare clic sul pulsante {button OK}.
#;Il certificato non verrà più visualizzato nella scheda {menu Certificati personali}.
-->
I certificati [https://it.wikipedia.org/wiki/Transport_Layer_Security TLS] (Transport Layer Security) verificano la proprietà e l'integrità delle informazioni dei siti web visitati. In pratica questi certificati di sicurezza di un sito web aiutano Firefox a determinare se il sito che si sta visitando sia proprio il sito che dichiara di essere. In questo articolo viene spiegato il funzionamento dei certificati.
__TOC__
=Quali siti web utilizzano i certificati?=
I siti web i cui indirizzi iniziano con '''https''' utilizzano certificati del server TLS. I siti web che utilizzano certificati del server TLS soddisfano due condizioni:
* L'amministratore del sito web possiede o ha il controllo del nome di dominio, garantendo che gli utenti si colleghino al sito legittimo e non a una copia contraffatta o malevola del sito web.
* Lo scambio di dati crittati tramite TLS tra il browser e il sito web è protetto da intercettazioni o manomissioni da parte di soggetti non autorizzati.
=Catena di affidabilità=
I browser come Firefox verificano i certificati attraverso una gerarchia chiamata '''catena di affidabilità''', che in genere è composta da almeno tre certificati:
* Il certificato root '''(trust anchor)'''
* Uno o più certificati intermedi
* Il certificato del server '''(end entity)'''
;[[Image:Chain of trust diagram|width=400]] <!-- Localizers: "chain-of-trust" image is optional -->
Il certificato root (radice) appartiene a una [http://it.wikipedia.org/wiki/Certificate_authority Autorità di certificazione] (CA) che il browser ritiene attendibile per emettere altri certificati. In genere, un certificato radice emette uno o più certificati intermedi che vengono poi utilizzati per emettere certificati del server TLS alle organizzazioni che possono dimostrare il controllo sui domini dei siti web specificati da tali certificati.
I certificati si basano sulla crittografia a chiave pubblica, in cui una coppia di chiavi asimmetriche ha due chiavi matematicamente correlate:
* '''Chiave privata''': questa chiave è tenuta segreta dal suo proprietario e viene utilizzata per operazioni crittografiche come la firma di dati (inclusi i certificati) o la decrittografia di informazioni crittate con la chiave pubblica.
* '''Chiave pubblica''': questa chiave è condivisa pubblicamente e viene utilizzata per verificare le firme create dalla chiave privata o per crittare informazioni che solo la chiave privata può decrittografare.
I certificati a chiave pubblica contengono le seguenti informazioni:
* Dettagli sull'autorità di certificazione (CA) che ha emesso il certificato
* Una chiave pubblica appartenente all'organizzazione che ha ricevuto il certificato
* Dettagli identificativi sull'organizzazione che detiene la chiave privata (vedere [[#w_contenuto-di-un-certificato|Contenuto del certificato]] di seguito. Per i certificati del server TLS, questo è principalmente il nome di dominio del sito web)
Ora possiamo descrivere come Firefox determina se un sito web è sicuro.
==In che modo Firefox verifica l'integrità del certificato?==
Ecco come Firefox utilizza la catena di affidabilità per verificare i certificati del server TLS:
# Firefox scarica il certificato del sito web visitato.
# Firefox verifica il certificato utilizzando il database interno delle autorità di certificazione (CA) attendibili.
#* Utilizza la chiave pubblica del certificato radice della CA per garantire che il certificato radice e il certificato intermedio siano firmati correttamente lungo la catena fino al certificato del server TLS fornito dal sito web.
# Firefox controlla le informazioni contenute nel certificato per verificare che il sito web a cui si è connessi corrisponda al sito web elencato nel certificato.
# Firefox genera una chiave simmetrica (singola) per crittare il traffico HTTP della connessione.
# Firefox critta la chiave simmetrica con la chiave pubblica del server, che si trova nel certificato del server.
# La chiave privata, che si trova sul server web, decritta i dati di connessione necessari per completare quello che è noto come ''TLS handshake''.
Potrà quindi verificarsi una comunicazione sicura tra Firefox e il sito web.
=Visualizzare un certificato=
Per visualizzare un certificato, seguire questa procedura:
# Fare clic sull'icona del lucchetto [[Image:Fx89Padlock]] nella barra degli indirizzi.
# Nel [[Site Information panel|pannello Informazioni sul sito]] che si apre, fare clic su {button Connessione sicura}.
#;[[Image:clic_connessione_sicura_fx134|width=450]]
# Nel pannello successivo, fare clic su {button Ulteriori informazioni}.
#;[[Image:clic_ulteriori_informazioni_fx134|width=450]]
# Nella [[View site information with Page Info|finestra Page Info]] che si apre, fare clic su {button Visualizza certificato}.
#;[[Image:visualizza_certificato_fx134]]
In Firefox verrà aperta la pagina '''about:certificate''' che consente di visualizzare le informazioni sul certificato per il sito web in cui si trova:
;[[Image:pagina_about_certificate_fx134|width=700]]
Le tre schede mostrano, da sinistra a destra, il certificato del server TLS, il certificato intermedio e il certificato radice.
=Contenuto di un certificato=
Un certificato del server TLS di un sito web contiene le seguenti informazioni:
* '''Nome soggetto''': contiene attributi facoltativi, ad esempio il nome del sito web e altre informazioni sull'organizzazione proprietaria del certificato.
* '''Nome autorità emittente''': identifica l'Autorità emittente (CA) che ha rilasciato il certificato.
* '''Validita''': visualizza il periodo di validità del certificato.
* '''Estensione nome alternativo soggetto''': elenca gli indirizzi dei siti web per i quali il certificato è valido.
* '''Informazioni chiave pubblica''': elenca gli attributi della chiave pubblica del certificato.
* '''Numero di serie''': identifica univocamente il certificato.
* '''Algoritmo di firma''': algoritmo utilizzato per creare la Firma.
* '''Impronte digitali''': hash del file del certificato in formato binario [https://wiki.openssl.org/index.php/DER DER].
* '''Utilizzo della chiave''' e '''Utilizzo esteso della chiave''': specifica come gli utenti potrebbero utilizzare il certificato, ad esempio per eseguire l'autenticazione del server web TLS.
* '''ID chiave soggetto''': un identificatore generato dalla chiave pubblica del certificato TLS come modo per identificare il certificato.
* '''ID chiave autorità''': un identificatore generato dalla chiave pubblica della CA come modo per identificare la chiave pubblica corrispondente alla chiave privata utilizzata per firmare il certificato.
* '''Endpoint CRL''': la posizione dell'[https://it.wikipedia.org/wiki/Certificate_revocation_list elenco dei certificati revocati (Certificate Revocation List o CRL)] dell'autorità di certificazione emittente (Certification Authority o CA).
* '''Info autorità (AIA)''': contiene il metodo di convalida per l'autorità di certificazione e il file del certificato intermedio.
* '''Criteri certificato''': contiene puntatori al tipo di certificato TLS di cui si tratta (ad esempio, informazioni verificate al momento dell'emissione del certificato).
* '''SCT inclusi''': elenca i [https://www.globalsign.com/en/blog/what-is-certificate-transparency timestamp (data e ora) dei certificati firmati] (Signed Certificate Timestamps o SCT).
=Certificati problematici=
Quando si visita un sito web il cui indirizzo inizia con '''https''' e viene rilevato un problema con il certificato TLS, il browser visualizzerà una pagina di errore. Alcuni degli errori più comuni relativi ai certificati sono elencati nell'articolo [[What do the security warning codes mean?]].
Per visualizzare il certificato problematico, procedere nel seguente modo:
# Nella pagina '''Attenzione: potenziale rischio per la sicurezza''', fare clic su {button Avanzate…}.
#;[[Image:certificato_problematico_avanzate_fx122|width=650]]
#Fare clic su ''Visualizza certificato''.
#;[[Image:visualizza_certificato_problematico_fx122|width=600]]
Verrà visualizzata la pagina ''about:certificate'' del certificato problematico.
<!-- see discussion
=Eliminare certificati=
È possibile eliminare i certificati seguendo questa procedura:
# [[Template:optionspreferences]]
# Fare clic su {menu Privacy e sicurezza} nel pannello a sinistra.
# Scorrere verso il basso fino alla sezione '''Certificati'''.
# Fare clic sul pulsante {button Mostra certificati…}.
#;Verrà visualizzata la finestra pop-up '''Gestione certificati''' con la scheda {menu Certificati personali} selezionata per impostazione predefinita che contiene un elenco di certificati associati.
# Fare clic su un certificato nell'elenco.
# Fare clic sul pulsante {button Elimina…} nella parte inferiore della finestra pop-up.
#;Verrà visualizzata una finestra pop-up con la richiesta di conferma.
# Fare clic sul pulsante {button OK}.
#;Il certificato non verrà più visualizzato nella scheda {menu Certificati personali}.
-->