<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>PKI on My personal blog</title>
        <link>https://www.matteobianchi.eu/tags/pki/</link>
        <description>Recent content in PKI on My personal blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Tue, 29 Sep 2026 09:00:00 +0200</lastBuildDate><atom:link href="https://www.matteobianchi.eu/tags/pki/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Crittografia applicata: la serie</title>
        <link>https://www.matteobianchi.eu/p/crittografia-applicata-la-serie/</link>
        <pubDate>Tue, 04 Aug 2026 09:00:00 +0200</pubDate>
        
        <guid>https://www.matteobianchi.eu/p/crittografia-applicata-la-serie/</guid>
        <description>&lt;img src="https://www.matteobianchi.eu/p/crittografia-applicata-la-serie/cover.png" alt="Featured image of post Crittografia applicata: la serie" /&gt;&lt;h2 id=&#34;perché-questa-serie&#34;&gt;Perché questa serie
&lt;/h2&gt;&lt;p&gt;Usi la crittografia centinaia di volte al giorno senza pensarci: ogni sito in HTTPS, ogni messaggio
cifrato, ogni password salvata, ogni aggiornamento firmato. Quando funziona è invisibile. Quando la si
implementa male — ed è facile — i dati trapelano in silenzio, e nessun test funzionale se ne accorge.
Questa serie in &lt;strong&gt;10 capitoli&lt;/strong&gt; spiega la crittografia &lt;em&gt;applicata&lt;/em&gt;: non le dimostrazioni matematiche,
ma &lt;em&gt;quale&lt;/em&gt; primitiva usare, &lt;em&gt;perché&lt;/em&gt;, e quali errori evitare.&lt;/p&gt;
&lt;h2 id=&#34;la-regola-doro&#34;&gt;La regola d&amp;rsquo;oro
&lt;/h2&gt;&lt;p&gt;Prima di tutto il resto, una regola che vale più di ogni capitolo:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Non inventare la tua crittografia, e non implementare primitive a mano.&lt;/strong&gt; Usa librerie
affermate, revisionate, e le loro impostazioni predefinite sicure.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;La crittografia fallisce in modi silenziosi: un nonce riusato, un confronto non a tempo costante, un
padding mal gestito. Capire &lt;em&gt;come&lt;/em&gt; funziona serve a usarla bene e a riconoscere gli errori — non a
riscriverla. Tutta la serie è pensata con questo spirito.&lt;/p&gt;
&lt;h2 id=&#34;la-mappa&#34;&gt;La mappa
&lt;/h2&gt;&lt;pre class=&#34;mermaid&#34;&gt;
  flowchart TD
    SYM[Simmetrica&amp;lt;br/&amp;gt;AES, AEAD] --&amp;gt; HASH[Hashing&amp;lt;br/&amp;gt;integrità]
    HASH --&amp;gt; MAC[HMAC&amp;lt;br/&amp;gt;autenticità]
    MAC --&amp;gt; PW[Password&amp;lt;br/&amp;gt;hashing]
    PW --&amp;gt; ASYM[Asimmetrica&amp;lt;br/&amp;gt;RSA, ECC]
    ASYM --&amp;gt; KEX[Scambio chiavi&amp;lt;br/&amp;gt;forward secrecy]
    KEX --&amp;gt; SIG[Firme&amp;lt;br/&amp;gt;digitali]
    SIG --&amp;gt; PKI[PKI&amp;lt;br/&amp;gt;catena di fiducia]
    PKI --&amp;gt; PQC[Post-quantum]
    style SYM fill:#fde2e4,stroke:#e63946
    style PKI fill:#e8f0fe,stroke:#4361ee
&lt;/pre&gt;

&lt;p&gt;Si parte dai mattoni più semplici (cifrare e verificare l&amp;rsquo;integrità) e si sale fino a come TLS, le
firme del software e la PKI li combinano. L&amp;rsquo;ultimo capitolo guarda avanti: cosa cambia quando
arriveranno i computer quantistici.&lt;/p&gt;
&lt;h2 id=&#34;i-tre-obiettivi-della-crittografia&#34;&gt;I tre obiettivi della crittografia
&lt;/h2&gt;&lt;p&gt;Tutto ruota attorno a tre proprietà, e confonderle è l&amp;rsquo;errore concettuale più comune:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Riservatezza&lt;/strong&gt;: nessuno legge il messaggio tranne il destinatario. → cifratura.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integrità&lt;/strong&gt;: il messaggio non è stato alterato. → hash, MAC.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Autenticità&lt;/strong&gt;: il messaggio viene davvero da chi dice. → MAC, firme.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cifrare &lt;em&gt;non&lt;/em&gt; garantisce integrità; un hash &lt;em&gt;non&lt;/em&gt; garantisce autenticità. Gran parte della serie è
imparare quale strumento dà quale garanzia, e come combinarli senza lasciare buchi.&lt;/p&gt;
&lt;h2 id=&#34;a-chi-si-rivolge&#34;&gt;A chi si rivolge
&lt;/h2&gt;&lt;p&gt;A chi scrive software e deve scegliere come cifrare dati, salvare password, verificare firme — senza
essere un crittografo. Diamo per note le basi (byte, encoding, un po&amp;rsquo; di aritmetica); tutto il resto
lo costruiamo. Questa serie è il complemento naturale di temi già trattati come il
&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/tls-deep-dive/&#34; &gt;TLS&lt;/a&gt; e la &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/certificate-transparency/&#34; &gt;Certificate Transparency&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Partiamo dal mattone più usato di tutti: la cifratura simmetrica, prossimo capitolo.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>PKI e la catena di fiducia</title>
        <link>https://www.matteobianchi.eu/p/pki-e-fiducia/</link>
        <pubDate>Tue, 29 Sep 2026 09:00:00 +0200</pubDate>
        
        <guid>https://www.matteobianchi.eu/p/pki-e-fiducia/</guid>
        <description>&lt;img src="https://www.matteobianchi.eu/p/pki-e-fiducia/cover.png" alt="Featured image of post PKI e la catena di fiducia" /&gt;&lt;h2 id=&#34;perché-conta&#34;&gt;Perché conta
&lt;/h2&gt;&lt;p&gt;Due capitoli hanno lasciato aperta la stessa domanda: la &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/crittografia-asimmetrica/&#34; &gt;crittografia asimmetrica&lt;/a&gt;
e le &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/firme-digitali/&#34; &gt;firme&lt;/a&gt; funzionano solo se sai che una chiave pubblica
appartiene &lt;em&gt;davvero&lt;/em&gt; a chi dice. Una chiave senza identità verificata è inutile: un man-in-the-middle
ti dà la sua e tu cifri felicemente per lui. La &lt;strong&gt;PKI (Public Key Infrastructure)&lt;/strong&gt; risolve questo:
lega chiavi a identità tramite &lt;strong&gt;certificati&lt;/strong&gt; firmati da autorità fidate.&lt;/p&gt;
&lt;h2 id=&#34;il-certificato-unidentità-firmata&#34;&gt;Il certificato: un&amp;rsquo;identità firmata
&lt;/h2&gt;&lt;p&gt;Un certificato &lt;strong&gt;X.509&lt;/strong&gt; è, in sostanza, una dichiarazione firmata: &amp;ldquo;questa chiave pubblica appartiene
a questo soggetto&amp;rdquo;, con una firma di chi lo attesta.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;hl&#34;&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;hl&#34;&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;hl&#34;&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Certificato (semplificato):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  soggetto:       www.esempio.it         ← a chi appartiene
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  chiave pubblica: 30 82 01 0a...         ← la chiave legata all&amp;#39;identità
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  validità:       dal ... al ...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  emittente:      CA Intermedia X
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  FIRMA dell&amp;#39;emittente                    ← la CA garantisce il legame
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Il certificato non è segreto: è pubblico. La sua forza sta nella &lt;em&gt;firma&lt;/em&gt; dell&amp;rsquo;emittente, che puoi
verificare — a patto di fidarti dell&amp;rsquo;emittente. E qui comincia la catena.&lt;/p&gt;
&lt;h2 id=&#34;la-catena-di-fiducia&#34;&gt;La catena di fiducia
&lt;/h2&gt;&lt;p&gt;Nessuna singola autorità firma direttamente ogni certificato del mondo. La fiducia è gerarchica:&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;
  flowchart TD
    ROOT[Root CA&amp;lt;br/&amp;gt;autofirmata, nel trust store&amp;lt;br/&amp;gt;del tuo SO/browser] --&amp;gt;|firma| INT[CA Intermedia]
    INT --&amp;gt;|firma| LEAF[Certificato del sito&amp;lt;br/&amp;gt;www.esempio.it]
    LEAF -.verifico risalendo.-&amp;gt; INT
    INT -.fino a una radice&amp;lt;br/&amp;gt;che già mi fido.-&amp;gt; ROOT
    style ROOT fill:#fde2e4,stroke:#e63946
&lt;/pre&gt;

&lt;p&gt;Il tuo sistema operativo e il browser contengono un &lt;strong&gt;trust store&lt;/strong&gt;: un insieme di poche centinaia di
&lt;em&gt;root CA&lt;/em&gt; di cui ti fidi a priori. Quando visiti un sito, il browser riceve il certificato foglia e la
catena di intermedie, e verifica ogni firma risalendo fino a una radice fidata. Se la catena regge e
tutto è valido (nome corretto, non scaduto, non revocato), la connessione è autenticata. È ciò che
avviene a ogni handshake &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/tls-deep-dive/&#34; &gt;TLS&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;il-punto-debole-la-revoca&#34;&gt;Il punto debole: la revoca
&lt;/h2&gt;&lt;p&gt;Cosa succede se una chiave privata viene compromessa &lt;em&gt;prima&lt;/em&gt; della scadenza del certificato? Va
&lt;strong&gt;revocata&lt;/strong&gt;. Ma la revoca è storicamente il tallone d&amp;rsquo;Achille della PKI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;hl&#34;&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;hl&#34;&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CRL (liste di revoca)  → grandi, scaricate di rado: lente ad aggiornarsi
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;OCSP (query online)    → una richiesta per certificato: lenta, e un problema di privacy
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;OCSP stapling          → il server allega la prova di non-revoca: meglio
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tendenza moderna       → certificati a VITA BREVE (es. 90 giorni, Let&amp;#39;s Encrypt) + automazione
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La direzione vincente è ridurre il problema alla fonte: certificati a &lt;strong&gt;vita breve&lt;/strong&gt;, rinnovati
automaticamente. Se un certificato dura 90 giorni, una compromissione ha una finestra corta anche
senza revoca tempestiva — lo stesso principio delle credenziali effimere visto per i
&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/gestione-dei-segreti/&#34; &gt;segreti&lt;/a&gt; e la forward secrecy.&lt;/p&gt;
&lt;h2 id=&#34;il-rischio-sistemico-una-ca-compromessa&#34;&gt;Il rischio sistemico: una CA compromessa
&lt;/h2&gt;&lt;p&gt;Tutta la PKI poggia sulla fiducia nelle CA. Una CA compromessa o disonesta può emettere un certificato
valido per &lt;em&gt;qualsiasi&lt;/em&gt; dominio, abilitando un man-in-the-middle che il browser accetterebbe. È un
rischio reale, già successo. La difesa è la &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/certificate-transparency/&#34; &gt;Certificate Transparency&lt;/a&gt;:
ogni certificato emesso finisce in log pubblici append-only, così un&amp;rsquo;emissione fraudolenta per il tuo
dominio è &lt;em&gt;visibile&lt;/em&gt; e rilevabile, anche se tecnicamente valida. La trasparenza non impedisce l&amp;rsquo;abuso,
ma lo rende impossibile da nascondere — e questo cambia gli incentivi.&lt;/p&gt;


&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Domanda:&lt;/strong&gt; l&#39;intero sistema poggia sul fidarsi di qualche centinaio di CA che non conosco, inserite nel mio browser da qualcun altro. Non è un modello di fiducia fragile e centralizzato?&lt;/summary&gt;
&lt;p&gt;Sì, è fragile e in parte centralizzato, e la comunità della sicurezza lo riconosce apertamente — ma è
anche il miglior compromesso pratico trovato finora per un problema che, su scala planetaria, non ha
soluzioni perfette, e nel tempo è stato rinforzato proprio nei punti che citi. Partiamo dal problema di
fondo: miliardi di persone devono poter verificare l&#39;identità di milioni di siti che non hanno mai
contattato, senza un incontro preliminare. Qualunque soluzione richiede un &lt;em&gt;punto di partenza di
fiducia&lt;/em&gt; comune, perché la fiducia non si crea dal nulla. Le alternative teoriche hanno tutte difetti
peggiori alla scala: la verifica manuale delle impronte (come SSH al primo accesso) non scala a un web che
visiti a centinaia di domini nuovi; la ragnatela di fiducia di PGP, dove ti fidi di chi è fidato dai tuoi
contatti, è elegante ma troppo complessa per l&#39;utente medio e con una copertura disomogenea. La PKI
gerarchica ha vinto perché delega il lavoro di verifica a entità specializzate e lo ammortizza su tutti.
Ora, i difetti che sollevi sono reali e sono stati attaccati su più fronti. Primo, &#34;non conosco quelle
CA&#34;: vero, ma non sei tu a doverle fidare alla cieca — i gestori dei trust store (i produttori di sistemi
operativi e browser) applicano programmi di root rigorosi, con audit, requisiti tecnici e il potere di
&lt;em&gt;espellere&lt;/em&gt; una CA che si comporta male, cosa successa a CA importanti che hanno emesso certificati
impropri. La fiducia non è eterna, è condizionata e revocabile. Secondo, &#34;una CA può emettere per
qualsiasi dominio&#34;: questo era il buco più grave, ed è proprio ciò che la Certificate Transparency ha
chiuso rendendo &lt;em&gt;pubblica e verificabile&lt;/em&gt; ogni emissione — un certificato fraudolento per la tua
banca non può più essere emesso di nascosto, comparirebbe nei log monitorati. In aggiunta, meccanismi
come i record CAA permettono a un dominio di dichiarare &lt;em&gt;quali&lt;/em&gt; CA possono emettere per lui,
restringendo la superficie. Terzo, la centralizzazione: è mitigata dal fatto che le root sono molte e
indipendenti, e che errori di una non compromettono le altre. Resta vero che un attaccante con risorse
statali, capace di piegare o compromettere una CA fidata, è una minaccia seria contro cui la PKI da sola
non basta — ed è per questo che per i casi ad altissima sensibilità si aggiungono strati come il
certificate pinning. Il quadro onesto: la PKI è un modello di fiducia imperfetto e centralizzato, ma
&lt;em&gt;sorvegliato, revocabile e reso trasparente&lt;/em&gt;, che funziona a una scala dove i modelli più
&#34;puri&#34; falliscono. Non è fidarsi ciecamente: è fidarsi di un sistema con controllori, conseguenze e, ora,
testimoni pubblici.&lt;/p&gt;
&lt;/details&gt;


&lt;h2 id=&#34;conclusione&#34;&gt;Conclusione
&lt;/h2&gt;&lt;p&gt;La PKI lega chiavi a identità tramite certificati firmati in una catena che risale a poche root fidate;
la revoca è il punto debole, mitigato dai certificati a vita breve, e il rischio di una CA compromessa
è reso visibile dalla Certificate Transparency. Con questo i mattoni della crittografia applicata sono
completi — cifratura, integrità, autenticità, scambio di chiavi, firme e fiducia. Ma tutto questo
poggia su problemi matematici che un computer quantistico potrebbe un giorno risolvere. Cosa cambia, e
cosa fare già oggi, è l&amp;rsquo;ultimo capitolo.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
