Loading...

Approfondimento Tech

Infrastruttura PKI: come funziona davvero

Scopri cos'è la PKI, a cosa serve, come funziona e perché è fondamentale per la cyber security moderna.

Public Key Infrastructure.

Indice dei contenuti

  • Cos’è la PKI: significato e struttura
  • Scopo e funzione della PKI
  • Componenti principali della PKI
  • Esempi pratici e scenari tipici di utilizzo
  • Vantaggi della Public Key Infrastructure
  • Svantaggi e limiti della PKI
  • Alternative alla PKI

Uno dei pilastri fondamentali è la PKI – sigla di Public Key Infrastructure. Si tratta di un sistema strutturato che consente la gestione delle chiavi crittografiche e dei certificati digitali, con lo scopo di garantire autenticità, riservatezza, integrità e non ripudio nelle comunicazioni digitali.

Questo articolo esplora in modo approfondito il significato, il funzionamento e gli impieghi reali della PKI, valutando vantaggi, limiti e possibili alternative. L’obiettivo è fornire una guida completa e aggiornata utile sia ai professionisti della sicurezza sia ai lettori interessati alla protezione dei dati.

Cos’è la PKI: significato e struttura

La Public Key Infrastructure (PKI) è un’architettura crittografica composta da una serie di ruoli, policy, hardware, software e procedure operative che permettono di gestire in modo sicuro certificati digitali e chiavi crittografiche asimmetriche.

Crittografia asimmetrica: il cuore della PKI

Alla base della PKI troviamo la crittografia a chiave pubblica, o crittografia asimmetrica, che si differenzia dalla crittografia simmetrica in quanto utilizza una coppia di chiavi:

  • Una chiave pubblica, che può essere condivisa liberamente.
  • Una chiave privata, che deve rimanere segreta e protetta.

Queste due chiavi sono matematicamente correlate: ciò che viene cifrato con una può essere decifrato solo con l’altra. Questo meccanismo è alla base di firma digitale e cifratura sicura.

Ecco un esempio in OpenSSL per generare una coppia di chiavi RSA a 2048 bit:

# Genera una chiave privata

openssl genpkey -algorithm RSA -out chiave_privata.pem -pkeyopt rsa_keygen_bits:2048

# Estrae la chiave pubblica dalla privata

openssl rsa -pubout -in chiave_privata.pem -out chiave_pubblica.pem

Il certificato digitale: identità verificata

Una chiave pubblica di per sé non offre garanzie sull’identità del soggetto a cui appartiene. È qui che entra in gioco il certificato digitale, un file strutturato che associa in modo verificabile un’identità (una persona, un server, un’organizzazione) a una chiave pubblica.

Il certificato contiene:

  • Il nome del soggetto (common name o CN)
  • La chiave pubblica
  • La CA emittente
  • La firma digitale della CA
  • La validità temporale
  • L’algoritmo utilizzato (es. SHA256-RSA)

La Certification Authority (CA) funge da terza parte fidata: verifica l’identità del soggetto e firma digitalmente il certificato usando la propria chiave privata. Qualsiasi sistema può quindi validare l’autenticità del certificato usando la chiave pubblica della CA (già presente nel sistema operativo o nel browser).

Esempio per generare una Certificate Signing Request (CSR) in OpenSSL:

openssl req -new -key chiave_privata.pem -out richiesta.csr

La CSR viene inviata a una CA, che verifica le informazioni e restituisce un certificato firmato:

# Firma simulata di un certificato (esempio per CA interna)

openssl x509 -req -in richiesta.csr -CA ca_cert.pem -CAkey ca_key.pem -CAcreateserial -out certificato.pem -days 365 -sha256

Scopo e funzione della PKI

Il principale obiettivo della Public Key Infrastructure (PKI) è garantire comunicazioni sicure su reti insicure, come Internet. Questo viene realizzato grazie alla combinazione di crittografia asimmetrica, certificati digitali e autorità di certificazione. La PKI permette di costruire un modello di fiducia digitale, fondamentale per qualsiasi transazione elettronica sicura.

Funzioni fondamentali della PKI

Vediamo ora nel dettaglio le quattro funzioni fondamentali della PKI, ciascuna con un esempio pratico.

1. Autenticazione

Garantisce l’identità delle parti coinvolte in una comunicazione. Quando un server presenta un certificato digitale firmato da una CA, il client può verificare che quel server è davvero chi dice di essere.

Esempio pratico:

Quando visiti https://www.bancaonline.it, il browser controlla che il certificato SSL/TLS sia:

  • rilasciato da una CA riconosciuta (es. DigiCert, Let’s Encrypt),
  • associato al dominio corretto (bancaonline.it),
  • ancora valido.
# Verifica del certificato SSL di un sito web

openssl s_client -connect www.bancaonline.it:443

2. Confidenzialità

La PKI consente la crittografia dei dati, così che solo il destinatario previsto (in possesso della chiave privata) possa leggerli. Questo è cruciale, ad esempio, nelle comunicazioni tra client e server web, o nella posta elettronica cifrata.

Esempio pratico:

Con S/MIME, un’email viene cifrata con la chiave pubblica del destinatario. Solo lui, con la sua chiave privata, può decifrarla.

3. Integrità

Serve a garantire che i dati non siano stati alterati durante la trasmissione. Questo è possibile usando firme digitali, generate con la chiave privata del mittente e verificate con la chiave pubblica corrispondente.

Esempio pratico:

La firma digitale di un file .pdf genera un hash cifrato. Se anche un solo byte del file cambia, la verifica fallisce.

# Calcolo hash SHA256 di un documento

sha256sum contratto.pdf

4. Non ripudio

Con la firma digitale, il mittente non può negare di aver inviato un messaggio: la firma può essere verificata pubblicamente, ma solo lui poteva crearla con la sua chiave privata.

Esempio pratico:

Una fattura elettronica firmata digitalmente con una smart card ha valore legale in Italia perché non è falsificabile.

Casi d’uso critici supportati dalla PKI

La PKI è alla base di molte applicazioni reali:

  • HTTPS
    Ogni sito sicuro presenta un certificato SSL/TLS.
  • Firma digitale
    Per documenti, contratti, file software.
  • Autenticazione forte
    Smart card e token hardware con certificati X.509.
  • PEC (Posta Elettronica Certificata)
    Integra firma digitale e tracciabilità.
  • VPN e Wi-Fi aziendale
    Autenticazione client tramite certificati.

Componenti principali della PKI

Una PKI (Public Key Infrastructure) operativa e sicura si basa su diversi componenti fondamentali, ognuno con un ruolo specifico all’interno del processo di creazione, gestione e verifica dei certificati digitali e delle chiavi crittografiche.

Vediamo nel dettaglio ciascun elemento con esempi e strumenti comunemente utilizzati in ambito enterprise e open-source.

1. Certification Authority (CA)

La CA (Certification Authority) è il cuore della fiducia in una PKI. È l’ente incaricato di:

  • emissione dei certificati digitali,
  • firma dei certificati usando la propria chiave privata,
  • revoca dei certificati in caso di compromissione o scadenza anticipata,
  • pubblicazione delle CRL (Certificate Revocation List).

In un’infrastruttura aziendale, la CA può essere interna (privata) o esterna (pubblica). CA pubbliche note includono DigiCert, Sectigo, Let’s Encrypt.

Esempio con OpenSSL (CA autofirmata):

# Genera la chiave privata della CA

openssl genpkey -algorithm RSA -out ca_key.pem -pkeyopt rsa_keygen_bits:4096

# Crea il certificato autofirmato della CA

openssl req -x509 -new -key ca_key.pem -sha256 -days 3650 -out ca_cert.pem

2. Registration Authority (RA)

La RA (Registration Authority) è un modulo intermediario che si occupa di verificare l’identità del richiedenteprima che la CA emetta un certificato. La RA può svolgere funzioni come:

  • raccolta e verifica di documenti,
  • convalida dei nomi di dominio (per HTTPS),
  • approvazione o rifiuto delle richieste di certificazione.

Nelle grandi organizzazioni, la RA può essere separata dalla CA per migliorare la sicurezza (principio di separazione dei ruoli).

3. Repository

Il repository è un sistema di archiviazione pubblicamente accessibile che contiene:

  • i certificati digitali emessi dalla CA,
  • la Certificate Revocation List (CRL),
  • file CA bundle utili ai browser e sistemi operativi per verificare catene di fiducia.

Può essere un semplice server HTTP, una directory LDAP, o un DNS con DNSSEC.

Esempio di download CRL:

wget http://ca.miodominio.it/crl/ca_revocation_list.crl

4. Certificati digitali X.509

I certificati digitali sono file strutturati secondo lo standard X.509 (definito dall’ITU-T). Un certificato contiene:

  • Nome del soggetto (CN, organization, locality…),
  • Chiave pubblica del soggetto,
  • CA emittente,
  • Periodo di validità (notBefore, notAfter),
  • Algoritmo e firma digitale.

Esempio per ispezionare un certificato:

openssl x509 -in certificato.pem -noout -text

Esempio di output:

Subject: CN=www.miodominio.it

Issuer: CN=My Root CA

Validity:

    Not Before: Apr 20 12:00:00 2025 GMT

    Not After : Apr 20 12:00:00 2026 GMT

5. Chiavi crittografiche

Ogni certificato X.509 si basa su una coppia di chiavi crittografiche:

  • Chiave pubblica
    Contenuta nel certificato e usata per verificare firme o cifrare dati.
  • Chiave privata
    Tenuta segreta dal titolare, usata per firmare digitalmente o decifrare dati.

Il compromesso della chiave privata implica l’invalidazione immediata del certificato.

Esempio per cifrare e decifrare file:

# Cifra con la chiave pubblica

openssl rsautl -encrypt -inkey chiave_pubblica.pem -pubin -in messaggio.txt -out messaggio_cifrato.bin

# Decifra con la chiave privata

openssl rsautl -decrypt -inkey chiave_privata.pem -in messaggio_cifrato.bin -out messaggio_decifrato.txt

Esempi pratici e scenari tipici di utilizzo

La PKI è alla base di moltissime applicazioni quotidiane e professionali, spesso invisibili agli occhi dell’utente finale, ma fondamentali per garantire sicurezza, autenticazione, riservatezza e integrità nelle comunicazioni digitali.

Vediamo i quattro casi d’uso più significativi.

1. HTTPS e certificati SSL/TLS

Cos’è:

Quando un utente visita un sito web con HTTPS, il server presenta un certificato digitale SSL/TLS. Questo certificato contiene la chiave pubblica del server ed è firmato da una CA.

Il browser client verifica:

  • che il certificato sia firmato da una CA attendibile,
  • che il nome del dominio corrisponda,
  • che il certificato non sia scaduto o revocato.

Se la verifica ha successo, viene stabilita una connessione cifrata tramite protocollo TLS.

Esempio pratico con OpenSSL:

# Verifica del certificato SSL/TLS di un sito

openssl s_client -connect www.example.com:443

Il comando mostra l’intero certificato, inclusi issuer, subject, validità e algoritmo.

2. Firma digitale dei documenti

Cos’è:

Nei contesti legali, giuridici e amministrativi, la firma digitale garantisce che:

  • il documento non sia stato modificato,
  • il firmatario sia autenticato,
  • il documento sia legalmente vincolante.

Una firma digitale utilizza la chiave privata del firmatario e può essere verificata con la chiave pubblica contenuta nel suo certificato digitale.

Esempio base con OpenSSL:

# Crea l'hash di un documento

openssl dgst -sha256 -sign chiave_privata.pem -out firma.bin documento.pdf

# Verifica la firma

openssl dgst -sha256 -verify chiave_pubblica.pem -signature firma.bin documento.pdf

In Italia, le firme digitali sono valide legalmente e usate nella fatturazione elettronica, nei contratti, nelle comunicazioni con la PA.

3. Accesso sicuro a VPN o reti aziendali

Cos’è:

Molti sistemi VPN aziendali (es. OpenVPN, WireGuard) implementano la PKI per autenticare i client in modo forte e non bypassabile.

Ogni utente riceve:

  • un certificato client (con chiave pubblica),
  • una chiave privata,
  • il certificato della CA.

Durante la connessione, il client presenta il proprio certificato, che il server verifica contro la lista dei certificati approvati.

Esempio di configurazione OpenVPN (semplificata):

# Esempio di file client .ovpn

client

cert client-cert.pem

key client-key.pem

ca ca-cert.pem

Questo sistema sostituisce le password, eliminando uno dei punti deboli più comuni nei sistemi di autenticazione.

4. Email sicura (S/MIME)

Cos’è:

S/MIME (Secure/Multipurpose Internet Mail Extensions) è un protocollo per:

  • firmare digitalmente le email (verifica mittente e integrità),
  • cifrare il contenuto (confidenzialità).

Utilizza certificati digitali personali. È supportato da client come Outlook, Apple Mail, Thunderbird, e sistemi di posta aziendali.

Come funziona:

  • Il mittente firma il messaggio con la sua chiave privata.
  • L’email è cifrata con la chiave pubblica del destinatario.
  • Il destinatario decifra l’email con la sua chiave privata e verifica la firma con la chiave pubblica del mittente.

L’utilizzo di S/MIME è comune in banche, aziende, studi legali e in ambienti con requisiti di compliance elevati (es. GDPR, HIPAA).

Vantaggi della Public Key Infrastructure

1. Sicurezza robusta

La crittografia asimmetrica combinata con l’attestazione di identità offerta dalle CA rende la PKI un sistema altamente sicuro.

2. Scalabilità

Una sola CA può gestire milioni di certificati, rendendo la PKI ideale anche per grandi organizzazioni.

3. Automatizzazione e integrazione

Strumenti come ACME (utilizzato da Let’s Encrypt) permettono l’automazione completa dell’emissione e del rinnovo dei certificati.

4. Fiducia centralizzata

La fiducia è basata su un sistema di CA radicate nei sistemi operativi o nei browser, rendendo l’adozione rapida e universale.

Svantaggi e limiti della PKI

1. Dipendenza dalle autorità centrali

Le CA rappresentano single point of failure: se compromesse, l’intero sistema di fiducia può crollare. Un esempio è il caso DigiNotar nel 2011, quando una CA olandese fu violata e emise certificati falsi.

2. Complessità gestionale

Gestire una PKI in-house richiede competenze avanzate, risorse e monitoraggio costante.

3. Revoca inefficace

Sistemi come CRL e OCSP per la revoca dei certificati non sempre sono tempestivi, lasciando finestre di vulnerabilità.

Alternative alla PKI

Nonostante la sua diffusione, esistono alternative alla PKI in certi contesti:

1. Web of Trust (WoT)

Usato storicamente in PGP, il WoT si basa su una rete decentralizzata di fiducia, dove gli utenti certificano le chiavi altrui manualmente. È più adatto a comunità ristrette, ma poco scalabile.

2. Blockchain-based PKI

Sistemi come CertCoin o Blockchain ID propongono un approccio decentralizzato, dove le informazioni sui certificati vengono salvate su blockchain pubbliche, rendendo impossibile la modifica non autorizzata.

3. DNS-based Authentication of Named Entities (DANE)

Questo protocollo utilizza DNSSEC per associare certificati a nomi di dominio. È una soluzione tecnica molto promettente, ma ancora poco adottata.


Domande e risposte

  1. Cos’è una PKI in parole semplici?
    È un sistema che gestisce chiavi crittografiche per proteggere dati e comunicazioni online.
  2. A cosa serve un certificato digitale?
    Serve a garantire l’identità di una persona o sito web e a proteggere la comunicazione.
  3. Che differenza c’è tra crittografia simmetrica e asimmetrica?
    La simmetrica usa una sola chiave, l’asimmetrica usa una coppia (pubblica e privata).
  4. Chi emette i certificati digitali?
    Le Certification Authority (CA), enti fidati preinstallati nei browser.
  5. Cosa succede se una CA viene compromessa?
    La fiducia nei certificati emessi può venire meno e i certificati devono essere revocati.
  6. Come posso verificare un certificato?
    Tramite strumenti come OpenSSL o il browser stesso, che controlla la validità.
  7. Quanto dura un certificato digitale?
    In genere da 1 a 3 anni, ma può variare in base alla policy della CA.
  8. Posso creare una mia PKI privata?
    Sì, molte aziende lo fanno per gestire certificati interni in modo autonomo.
  9. Cos’è la CRL?
    È una lista dei certificati revocati da una CA, pubblicata regolarmente.
  10. Qual è il futuro della PKI?
    Evolverà verso soluzioni più decentralizzate e resistenti alla crittografia quantistica.
To top