<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Identity on My personal blog</title>
        <link>https://www.matteobianchi.eu/tags/identity/</link>
        <description>Recent content in Identity on My personal blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Tue, 25 Aug 2026 09:00:00 +0200</lastBuildDate><atom:link href="https://www.matteobianchi.eu/tags/identity/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Verifica continua e accesso adattivo al rischio</title>
        <link>https://www.matteobianchi.eu/p/verifica-continua-e-accesso-adattivo/</link>
        <pubDate>Tue, 25 Aug 2026 09:00:00 +0200</pubDate>
        
        <guid>https://www.matteobianchi.eu/p/verifica-continua-e-accesso-adattivo/</guid>
        <description>&lt;img src="https://www.matteobianchi.eu/p/verifica-continua-e-accesso-adattivo/cover.png" alt="Featured image of post Verifica continua e accesso adattivo al rischio" /&gt;&lt;h2 id=&#34;perché-conta&#34;&gt;Perché conta
&lt;/h2&gt;&lt;p&gt;Il quinto dei &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/zero-trust-i-cinque-principi/&#34; &gt;cinque principi&lt;/a&gt; è quello che
distingue lo Zero Trust maturo da un semplice &amp;ldquo;login forte&amp;rdquo;: l&amp;rsquo;accesso &lt;strong&gt;non è un evento, è uno
stato&lt;/strong&gt;. Un modello che verifica tutto perfettamente al login ma poi lascia la sessione aperta per
otto ore ha solo spostato il perimetro al momento dell&amp;rsquo;autenticazione. Se a metà giornata il
dispositivo viene compromesso o il comportamento diventa anomalo, nulla reagisce. La verifica
continua rivaluta l&amp;rsquo;accesso nel tempo; l&amp;rsquo;accesso adattivo lo commisura al rischio del momento.&lt;/p&gt;
&lt;h2 id=&#34;da-cancello-a-condizione&#34;&gt;Da cancello a condizione
&lt;/h2&gt;&lt;pre class=&#34;mermaid&#34;&gt;
  flowchart LR
    L[Login] --&amp;gt; S{Sessione}
    S --&amp;gt;|segnali ok| A[Accesso mantenuto]
    S --&amp;gt;|rischio sale| STEP[Step-up: richiedi MFA]
    S --&amp;gt;|rischio alto| LIM[Restringi / sola lettura]
    S --&amp;gt;|anomalia grave| REV[Revoca sessione]
    style REV fill:#fde2e4,stroke:#e63946
&lt;/pre&gt;

&lt;p&gt;La decisione del &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/pdp-pep-il-motore-delle-policy/&#34; &gt;PDP&lt;/a&gt; non viene presa una
volta e dimenticata: viene &lt;strong&gt;rinnovata&lt;/strong&gt; a intervalli e a eventi. Token a vita breve
(&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/identita-il-nuovo-perimetro/&#34; &gt;identità&lt;/a&gt;) sono il meccanismo di base — ogni
rinnovo è una nuova occasione di rivalutare — ma la verifica continua va oltre, reagendo ai segnali
mentre la sessione è viva.&lt;/p&gt;
&lt;h2 id=&#34;il-punteggio-di-rischio&#34;&gt;Il punteggio di rischio
&lt;/h2&gt;&lt;p&gt;L&amp;rsquo;accesso adattivo combina i segnali in una valutazione del &lt;strong&gt;rischio&lt;/strong&gt; della richiesta:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Segnale&lt;/th&gt;
&lt;th&gt;Abbassa il rischio&lt;/th&gt;
&lt;th&gt;Alza il rischio&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Dispositivo&lt;/td&gt;
&lt;td&gt;gestito, conforme (&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/device-trust-e-posture/&#34; &gt;postura&lt;/a&gt;)&lt;/td&gt;
&lt;td&gt;sconosciuto, non conforme&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Posizione / rete&lt;/td&gt;
&lt;td&gt;abituale&lt;/td&gt;
&lt;td&gt;paese insolito, IP anonimizzante&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Comportamento&lt;/td&gt;
&lt;td&gt;coerente con lo storico&lt;/td&gt;
&lt;td&gt;orario anomalo, volume inusuale&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Risorsa&lt;/td&gt;
&lt;td&gt;bassa sensibilità&lt;/td&gt;
&lt;td&gt;dati critici&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Il rischio risultante decide la &lt;strong&gt;risposta&lt;/strong&gt;: consentire in silenzio, chiedere un fattore in più
(step-up), restringere i privilegi, o revocare.&lt;/p&gt;
&lt;h2 id=&#34;la-chiave-attrito-proporzionale-al-rischio&#34;&gt;La chiave: attrito proporzionale al rischio
&lt;/h2&gt;&lt;p&gt;Qui si scioglie il malinteso che lo Zero Trust sia &amp;ldquo;sempre più fastidioso&amp;rdquo;. L&amp;rsquo;accesso adattivo è
pensato per essere &lt;strong&gt;invisibile quando il rischio è basso&lt;/strong&gt;: identità, dispositivo e contesto soliti
→ nessuna richiesta aggiuntiva. La frizione compare &lt;strong&gt;solo&lt;/strong&gt; quando qualcosa è anomalo — ed è
esattamente lì che la vogliamo.&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;hl&#34;&gt;&lt;span class=&#34;lnt&#34;&gt;4
&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;# risposta in funzione del rischio
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rischio basso:   accesso trasparente (nessun prompt)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rischio medio:   step-up (MFA resistente al phishing)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rischio alto:    accesso ridotto o negato, sessione rivalutata
&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;Rispetto alla VPN classica — che chiede login e token a ogni connessione a prescindere — un modello
adattivo ben fatto riduce l&amp;rsquo;attrito medio, concentrandolo dove serve.&lt;/p&gt;
&lt;h2 id=&#34;continuous-access-evaluation&#34;&gt;Continuous access evaluation
&lt;/h2&gt;&lt;p&gt;Il meccanismo moderno che rende reattiva la sessione è la &lt;strong&gt;valutazione continua degli accessi&lt;/strong&gt;:
invece di aspettare la scadenza del token (anche solo un&amp;rsquo;ora), l&amp;rsquo;IdP e i servizi si scambiano
&lt;strong&gt;eventi&lt;/strong&gt; — &amp;ldquo;questo utente è stato disabilitato&amp;rdquo;, &amp;ldquo;il dispositivo ha perso la conformità&amp;rdquo;, &amp;ldquo;rischio
elevato rilevato&amp;rdquo; — e la sessione viene rivalutata o chiusa &lt;strong&gt;subito&lt;/strong&gt;. Chiude la finestra tra &amp;ldquo;il
rischio è cambiato&amp;rdquo; e &amp;ldquo;il prossimo rinnovo del token&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;il-prerequisito-i-segnali&#34;&gt;Il prerequisito: i segnali
&lt;/h2&gt;&lt;p&gt;L&amp;rsquo;accesso adattivo è buono quanto i segnali che lo alimentano. Senza telemetria su identità,
dispositivi e comportamento, il &amp;ldquo;rischio&amp;rdquo; è una parola vuota. Per questo il capitolo successivo è
dedicato alla telemetria: è il sistema nervoso senza cui la verifica continua non vede nulla.&lt;/p&gt;
&lt;h2 id=&#34;lab&#34;&gt;Lab
&lt;/h2&gt;&lt;p&gt;Con un IdP che supporti policy di accesso condizionale/adattivo (Keycloak con flussi condizionali, o
regole in un reverse proxy + &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/policy-as-code-con-opa/&#34; &gt;OPA&lt;/a&gt;):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Definite una policy che consenta l&amp;rsquo;accesso trasparente da un contesto &amp;ldquo;normale&amp;rdquo; (device conforme,
rete nota).&lt;/li&gt;
&lt;li&gt;Introducete un segnale di rischio (login da IP/paese diverso) e configurate uno &lt;strong&gt;step-up&lt;/strong&gt; MFA.&lt;/li&gt;
&lt;li&gt;Simulate un peggioramento della postura a sessione avviata e verificate che l&amp;rsquo;accesso si
restringa senza nuovo login.&lt;/li&gt;
&lt;li&gt;Revocate l&amp;rsquo;utente e osservate la sessione cadere il prima possibile, non alla scadenza del token.&lt;/li&gt;
&lt;/ol&gt;


&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Domanda:&lt;/strong&gt; valutare il rischio in continuazione non rischia di bloccare utenti legittimi per falsi positivi — un viaggio, una VPN personale, una giornata diversa dal solito?&lt;/summary&gt;
&lt;p&gt;Il rischio di falsi positivi è reale, ed è il motivo per cui la risposta corretta è quasi mai &#34;blocca&#34;
e quasi sempre &#34;chiedi conferma&#34;. Un segnale anomalo — sei in un altro paese, usi una rete nuova — non
deve negare l&#39;accesso, deve innescare uno &lt;em&gt;step-up&lt;/em&gt;: una verifica in più (una
&lt;a href=&#34;https://www.matteobianchi.eu/p/mfa-resistente-al-phishing/&#34;&gt;passkey&lt;/a&gt;) che l&#39;utente legittimo supera in due secondi e
l&#39;attaccante no. Così l&#39;anomalia benigna costa un tocco, non una giornata persa. Il blocco secco si
riserva ai casi gravi e combinati (dispositivo non gestito &lt;em&gt;e&lt;/em&gt; paese a rischio &lt;em&gt;e&lt;/em&gt; accesso
a dati critici), dove il falso positivo è raro e il costo del falso negativo altissimo. E i modelli
imparano: il &#34;nuovo&#34; paese, dopo una conferma, entra nello storico e smette di essere anomalo. L&#39;errore
da evitare è trattare ogni deviazione come una minaccia binaria; l&#39;accesso adattivo fatto bene gradua la
risposta, e la gradazione è proprio ciò che tiene bassi sia i falsi positivi sia i falsi negativi.&lt;/p&gt;
&lt;/details&gt;


&lt;h2 id=&#34;conclusione&#34;&gt;Conclusione
&lt;/h2&gt;&lt;p&gt;Lo Zero Trust maturo tratta l&amp;rsquo;accesso come uno stato da rivalutare, non un cancello da aprire una
volta: il rischio si ricalcola di continuo dai segnali, e la risposta — trasparente, step-up,
ridotta, revocata — è proporzionale. Fatto bene, riduce l&amp;rsquo;attrito concentrandolo dove il rischio è
reale. Tutto questo dipende dalla qualità dei segnali: il prossimo capitolo costruisce il sistema
nervoso dello Zero Trust, la telemetria.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>SPIFFE e SPIRE: dare un&#39;identità a ogni workload</title>
        <link>https://www.matteobianchi.eu/p/spiffe-e-spire/</link>
        <pubDate>Tue, 04 Aug 2026 09:00:00 +0200</pubDate>
        
        <guid>https://www.matteobianchi.eu/p/spiffe-e-spire/</guid>
        <description>&lt;img src="https://www.matteobianchi.eu/p/spiffe-e-spire/cover.png" alt="Featured image of post SPIFFE e SPIRE: dare un&#39;identità a ogni workload" /&gt;&lt;h2 id=&#34;perché-conta&#34;&gt;Perché conta
&lt;/h2&gt;&lt;p&gt;Nel capitolo precedente abbiamo stabilito che ogni workload ha bisogno di un&amp;rsquo;identità crittografica
per l&amp;rsquo;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/identita-dei-workload-mtls/&#34; &gt;mTLS&lt;/a&gt;. Ma sorge subito il problema più
difficile dell&amp;rsquo;intera identità macchina-a-macchina: il &lt;strong&gt;bootstrap della fiducia&lt;/strong&gt;. Come fa un
servizio appena avviato a ottenere il suo primo certificato in modo sicuro, senza un segreto
pre-condiviso che a sua volta andrebbe protetto? SPIFFE e SPIRE risolvono proprio questo: uno
standardizza &lt;em&gt;cos&amp;rsquo;è&lt;/em&gt; l&amp;rsquo;identità di un workload, l&amp;rsquo;altro la &lt;em&gt;emette&lt;/em&gt; senza il problema dell&amp;rsquo;uovo e
della gallina.&lt;/p&gt;
&lt;h2 id=&#34;spiffe-lo-standard-dellidentità&#34;&gt;SPIFFE: lo standard dell&amp;rsquo;identità
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;SPIFFE (Secure Production Identity Framework For Everyone)&lt;/strong&gt; definisce un formato universale per
l&amp;rsquo;identità di un workload: lo &lt;strong&gt;SPIFFE ID&lt;/strong&gt;, un URI che descrive &lt;em&gt;chi&lt;/em&gt; è il servizio,
indipendentemente da dove gira.&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;lnt&#34;&gt;2
&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;spiffe://azienda.it/ns/pagamenti/sa/servizio-ordini
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;         └─ trust domain ─┘ └──── percorso del workload ────┘
&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;Questa identità viene incapsulata in un documento verificabile, lo &lt;strong&gt;SVID (SPIFFE Verifiable
Identity Document)&lt;/strong&gt;, tipicamente un &lt;strong&gt;certificato X.509&lt;/strong&gt; (usabile direttamente in mTLS) o un JWT.
Il vantaggio dello standard: servizi, mesh e strumenti diversi parlano la stessa lingua di identità.&lt;/p&gt;
&lt;h2 id=&#34;spire-emettere-senza-segreti-pre-condivisi&#34;&gt;SPIRE: emettere senza segreti pre-condivisi
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;SPIRE&lt;/strong&gt; è l&amp;rsquo;implementazione che emette gli SVID. Il suo cuore è l&amp;rsquo;&lt;strong&gt;attestazione&lt;/strong&gt;: invece di dare
a ogni servizio un segreto iniziale (che andrebbe custodito, diventando il nuovo bersaglio), SPIRE
&lt;strong&gt;verifica proprietà osservabili&lt;/strong&gt; del workload e della piattaforma per decidere a chi dare quale
identità.&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;
  flowchart TD
    W[Workload] --&amp;gt;|&amp;#34;chiedo la mia identità&amp;#34;| A[SPIRE Agent&amp;lt;br/&amp;gt;sul nodo]
    A --&amp;gt;|attesta: quale processo,&amp;lt;br/&amp;gt;quale pod, quale nodo| S[SPIRE Server]
    N[Attestazione del nodo:&amp;lt;br/&amp;gt;cloud, k8s, TPM] --&amp;gt; S
    S --&amp;gt;|verifica contro i&amp;lt;br/&amp;gt;registration entries| S
    S --&amp;gt;|emette SVID&amp;lt;br/&amp;gt;certificato a vita breve| A
    A --&amp;gt; W
    style S fill:#fde2e4,stroke:#e63946
&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Node attestation&lt;/strong&gt;: SPIRE prova &lt;em&gt;su quale nodo&lt;/em&gt; gira l&amp;rsquo;agent (identità del nodo cloud, token
Kubernetes, TPM).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Workload attestation&lt;/strong&gt;: l&amp;rsquo;agent prova &lt;em&gt;quale processo/pod&lt;/em&gt; sta chiedendo l&amp;rsquo;identità (selettori
come lo UID del processo, le label del pod).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Il workload non presenta nessun segreto: è la piattaforma stessa a testimoniare chi è. Si àncora la
fiducia a proprietà verificabili, non a una chiave che qualcuno deve consegnare per primo.&lt;/p&gt;
&lt;h2 id=&#34;il-problema-del-bootstrap-risolto&#34;&gt;Il problema del bootstrap, risolto
&lt;/h2&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;lnt&#34;&gt;2
&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;hl&#34;&gt;&lt;span class=&#34;lnt&#34;&gt;4
&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;# il nodo delle tartarughe: come si autentica il primo segreto?
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API key / cert statico →  serve un segreto per ottenere il segreto (ricorsione)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;SPIFFE/SPIRE          →  attestazione di proprietà della piattaforma
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                         (nessun segreto iniziale da proteggere)
&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;Questo è il contributo concettuale: eliminare il &amp;ldquo;segreto zero&amp;rdquo;. La fiducia iniziale non poggia su
una credenziale consegnata, ma su ciò che la piattaforma può &lt;strong&gt;attestare&lt;/strong&gt; del workload — lo stesso
principio dell&amp;rsquo;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/device-trust-e-posture/&#34; &gt;attestazione del dispositivo&lt;/a&gt; via TPM,
applicato ai servizi.&lt;/p&gt;
&lt;h2 id=&#34;rotazione-automatica&#34;&gt;Rotazione automatica
&lt;/h2&gt;&lt;p&gt;Gli SVID hanno vita breve e SPIRE li &lt;strong&gt;ruota&lt;/strong&gt; di continuo, trasparente al workload. Questo rende
pratico ciò che il capitolo mTLS richiedeva: certificati a vita breve senza gestione manuale. Un
SVID rubato vale per minuti, non per sempre.&lt;/p&gt;
&lt;h2 id=&#34;lab&#34;&gt;Lab
&lt;/h2&gt;&lt;p&gt;Con SPIRE in un cluster di test:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Avviate SPIRE Server e un SPIRE Agent su un nodo.&lt;/li&gt;
&lt;li&gt;Create un &lt;em&gt;registration entry&lt;/em&gt; che leghi uno SPIFFE ID a selettori di workload (es. una certa
label di pod o UID).&lt;/li&gt;
&lt;li&gt;Avviate un workload che combaci e verificate che riceva uno SVID (X.509) via l&amp;rsquo;API del Workload.&lt;/li&gt;
&lt;li&gt;Usate due SVID per stabilire una connessione mTLS tra due servizi e osservate la rotazione
automatica dei certificati.&lt;/li&gt;
&lt;/ol&gt;


&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Domanda:&lt;/strong&gt; l&#39;attestazione si basa su selettori come &#34;questo pod ha questa label&#34;; chi impedisce a un attaccante di avviare un pod con la label giusta e rubare l&#39;identità?&lt;/summary&gt;
&lt;p&gt;È la domanda corretta, e la robustezza dell&#39;attestazione sta nel &lt;em&gt;combinare&lt;/em&gt; più selettori e
nel radicarli il più in basso possibile. Una sola label di pod sarebbe debole, esatto: chiunque possa
creare pod in quel namespace potrebbe imitarla. Per questo SPIRE compone l&#39;attestazione del
&lt;em&gt;nodo&lt;/em&gt; (provata da qualcosa che l&#39;attaccante non falsifica: l&#39;identità dell&#39;istanza cloud, un
token del kubelet, un TPM) con quella del &lt;em&gt;workload&lt;/em&gt; (selettori multipli: service account,
namespace, immagine, UID del processo). L&#39;identità viene emessa solo se &lt;em&gt;tutti&lt;/em&gt; combaciano, e
molti selettori dipendono da privilegi che l&#39;attaccante non ha nel namespace giusto sul nodo giusto. La
sicurezza non è mai migliore della piattaforma sottostante — se qualcuno controlla l&#39;orchestratore,
controlla le identità — ma questo riporta il problema al controllo d&#39;accesso della piattaforma, dove
deve stare, invece di nasconderlo dietro un segreto pre-condiviso altrettanto rubabile. L&#39;attestazione
sposta il bersaglio da &#34;una stringa segreta&#34; a &#34;l&#39;integrità della piattaforma&#34;, che è molto più difficile
da falsificare e molto più facile da monitorare.&lt;/p&gt;
&lt;/details&gt;


&lt;h2 id=&#34;conclusione&#34;&gt;Conclusione
&lt;/h2&gt;&lt;p&gt;SPIFFE dà un formato universale all&amp;rsquo;identità dei workload (lo SPIFFE ID, incapsulato in uno SVID);
SPIRE la emette tramite attestazione, eliminando il &amp;ldquo;segreto zero&amp;rdquo; e ruotando i certificati in
automatico. È l&amp;rsquo;infrastruttura che rende praticabile l&amp;rsquo;mTLS su scala. Ma chiedere a ogni servizio di
gestire SVID e mTLS nel proprio codice è troppo: serve uno strato che lo faccia per tutti. È il
service mesh, il prossimo capitolo.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Least privilege e accesso Just-in-Time</title>
        <link>https://www.matteobianchi.eu/p/least-privilege-e-jit/</link>
        <pubDate>Tue, 21 Jul 2026 09:00:00 +0200</pubDate>
        
        <guid>https://www.matteobianchi.eu/p/least-privilege-e-jit/</guid>
        <description>&lt;img src="https://www.matteobianchi.eu/p/least-privilege-e-jit/cover.png" alt="Featured image of post Least privilege e accesso Just-in-Time" /&gt;&lt;h2 id=&#34;perché-conta&#34;&gt;Perché conta
&lt;/h2&gt;&lt;p&gt;Il terzo dei &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/zero-trust-i-cinque-principi/&#34; &gt;cinque principi&lt;/a&gt; è il minimo
privilegio, e spesso è il più tradito. Nelle organizzazioni reali i permessi si &lt;strong&gt;accumulano&lt;/strong&gt;:
qualcuno riceve un accesso per un progetto, il progetto finisce, il permesso resta. Anni dopo,
account con decine di privilegi dimenticati sono la norma. E quando uno di quegli account viene
compromesso, l&amp;rsquo;attaccante eredita ogni permesso in un colpo solo. Lo Zero Trust risponde dando il
&lt;strong&gt;minimo&lt;/strong&gt; accesso per il &lt;strong&gt;minimo tempo&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;il-privilege-creep&#34;&gt;Il privilege creep
&lt;/h2&gt;&lt;pre class=&#34;mermaid&#34;&gt;
  flowchart LR
    A[Nuovo ruolo] --&amp;gt; P1[+ accesso progetto X]
    P1 --&amp;gt; P2[+ accesso temporaneo Y]
    P2 --&amp;gt; P3[+ &amp;#39;serve per un attimo&amp;#39; Z]
    P3 --&amp;gt; ACC[&amp;#34;Account con 30 permessi,&amp;lt;br/&amp;gt;3 davvero usati&amp;#34;]
    style ACC fill:#fde2e4,stroke:#e63946
&lt;/pre&gt;

&lt;p&gt;Il &amp;ldquo;privilege creep&amp;rdquo; è entropia: aggiungere un permesso è facile e richiesto, toglierlo non lo chiede
mai nessuno. Il risultato è una superficie d&amp;rsquo;attacco che cresce in silenzio. La soluzione non è
ricordarsi di revocare (non succede), è rendere i permessi &lt;strong&gt;temporanei per costruzione&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;due-assi-enough-e-in-time&#34;&gt;Due assi: enough e in-time
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Just-enough-access (JEA)&lt;/strong&gt;: non &amp;ldquo;accesso admin&amp;rdquo;, ma esattamente il permesso per il compito —
leggere quella tabella, riavviare quel servizio, nulla di più.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Just-in-Time (JIT)&lt;/strong&gt;: il permesso non è permanente, si &lt;strong&gt;richiede al momento&lt;/strong&gt; del bisogno, è
concesso per una finestra breve, e &lt;strong&gt;scade&lt;/strong&gt; da solo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Insieme: invece di &amp;ldquo;Alice è amministratrice del database&amp;rdquo;, si ha &amp;ldquo;Alice può &lt;em&gt;richiedere&lt;/em&gt; 1 ora di
accesso in scrittura al database, con motivazione, e l&amp;rsquo;accesso sparisce da solo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;il-flusso-just-in-time&#34;&gt;Il flusso Just-in-Time
&lt;/h2&gt;&lt;pre class=&#34;mermaid&#34;&gt;
  sequenceDiagram
    participant U as Utente
    participant B as Broker JIT (PDP)
    participant R as Risorsa
    U-&amp;gt;&amp;gt;B: richiede accesso (compito, durata)
    B-&amp;gt;&amp;gt;B: valuta policy + eventuale approvazione
    B-&amp;gt;&amp;gt;R: concede permesso temporaneo (es. 60 min)
    Note over R: accesso attivo, registrato
    Note over B,R: alla scadenza il permesso viene revocato automaticamente
&lt;/pre&gt;

&lt;p&gt;Il punto non è solo la scadenza: è che ogni elevazione è &lt;strong&gt;esplicita, motivata e registrata&lt;/strong&gt;. Lo
stato &amp;ldquo;a riposo&amp;rdquo; di ogni identità è il minimo; l&amp;rsquo;elevazione è l&amp;rsquo;eccezione tracciata, non la regola.&lt;/p&gt;
&lt;h2 id=&#34;gli-account-più-pericolosi-gli-admin&#34;&gt;Gli account più pericolosi: gli admin
&lt;/h2&gt;&lt;p&gt;Dove il JIT conta di più è sugli account privilegiati. Un amministratore che resta admin 24/7 è un
bersaglio permanente. Con il &lt;strong&gt;PAM (Privileged Access Management)&lt;/strong&gt; in modalità JIT, nessuno è admin
di default: lo si diventa per una sessione approvata e tracciata, con credenziali effimere. Un
account admin compromesso che non ha privilegi &lt;em&gt;attivi&lt;/em&gt; in quel momento vale molto meno.&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;# modello concettuale
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;stato normale:   permessi = { minimo per il ruolo }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;elevazione JIT:  richiesta + (approvazione) → permesso temporaneo con TTL
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scadenza:        permesso revocato automaticamente, torna al minimo
&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;h2 id=&#34;il-legame-con-il-resto&#34;&gt;Il legame con il resto
&lt;/h2&gt;&lt;p&gt;Il minimo privilegio non vive da solo: ha senso solo se l&amp;rsquo;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/identita-il-nuovo-perimetro/&#34; &gt;identità&lt;/a&gt;
è forte (altrimenti non si sa a chi si concede), se il &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/pdp-pep-il-motore-delle-policy/&#34; &gt;PDP&lt;/a&gt;
valuta le richieste, e se tutto è &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/telemetria-e-analytics-zero-trust/&#34; &gt;registrato&lt;/a&gt;
(altrimenti l&amp;rsquo;elevazione non è verificabile). Lo stesso principio vale per i workload: un servizio
ottiene scope minimi e token a vita breve, non una chiave onnipotente.&lt;/p&gt;
&lt;h2 id=&#34;lab&#34;&gt;Lab
&lt;/h2&gt;&lt;p&gt;Con un broker di accesso o uno script che gestisca permessi temporanei (es. su un DB o via sudo con
timeout):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Partite da un utente senza privilegi su una risorsa.&lt;/li&gt;
&lt;li&gt;Implementate una richiesta JIT che conceda un permesso con TTL (es. accesso in scrittura per 15
minuti).&lt;/li&gt;
&lt;li&gt;Verificate l&amp;rsquo;accesso durante la finestra e la revoca automatica allo scadere.&lt;/li&gt;
&lt;li&gt;Registrate ogni richiesta ed elevazione in un log e rileggetele: chi, cosa, quando, perché.&lt;/li&gt;
&lt;/ol&gt;


&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Domanda:&lt;/strong&gt; chiedere l&#39;accesso ogni volta e aspettare che scada non rallenta il lavoro degli amministratori fino a renderlo insopportabile?&lt;/summary&gt;
&lt;p&gt;È la tensione reale tra sicurezza e operatività, e si gestisce dosando l&#39;attrito sul rischio. L&#39;errore
è pensare che ogni elevazione richieda un&#39;approvazione umana lenta: la maggior parte può essere
&lt;em&gt;auto-approvata&lt;/em&gt; dalla policy (identità valida, dispositivo conforme, orario lavorativo), con
concessione in pochi secondi e scadenza automatica — l&#39;amministratore quasi non se ne accorge, ma lo
stato a riposo resta il minimo. L&#39;approvazione manuale si riserva alle azioni davvero sensibili
(produzione, dati critici), dove qualche minuto di attesa è un prezzo accettabile per un&#39;operazione
rara. E il beneficio è concreto proprio per gli admin: non essere un bersaglio con privilegi perenni
significa che una loro credenziale rubata, da sola, non apre nulla. Il JIT fatto male è burocrazia;
fatto bene, è invisibile quando il rischio è basso e presente solo dove serve — la stessa logica
dell&#39;accesso adattivo.&lt;/p&gt;
&lt;/details&gt;


&lt;h2 id=&#34;conclusione&#34;&gt;Conclusione
&lt;/h2&gt;&lt;p&gt;I permessi permanenti sono debito che si accumula e che un account compromesso eredita per intero.
Lo Zero Trust li rende temporanei per costruzione: minimo privilegio (just-enough) concesso al
momento (just-in-time) e revocato da solo, con ogni elevazione motivata e registrata — soprattutto
per gli amministratori. Finora abbiamo parlato di utenti; i prossimi capitoli applicano la stessa
logica ai servizi, partendo dall&amp;rsquo;identità dei workload con mTLS.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Device trust e postura: l&#39;altro metà dell&#39;identità</title>
        <link>https://www.matteobianchi.eu/p/device-trust-e-posture/</link>
        <pubDate>Tue, 14 Jul 2026 09:00:00 +0200</pubDate>
        
        <guid>https://www.matteobianchi.eu/p/device-trust-e-posture/</guid>
        <description>&lt;img src="https://www.matteobianchi.eu/p/device-trust-e-posture/cover.png" alt="Featured image of post Device trust e postura: l&#39;altro metà dell&#39;identità" /&gt;&lt;h2 id=&#34;perché-conta&#34;&gt;Perché conta
&lt;/h2&gt;&lt;p&gt;La &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/zero-trust-i-cinque-principi/&#34; &gt;verifica esplicita&lt;/a&gt; usa &lt;em&gt;tutti&lt;/em&gt; i segnali,
e il dispositivo è tra i più importanti. Un utente perfettamente legittimo, con
&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/mfa-resistente-al-phishing/&#34; &gt;MFA resistente al phishing&lt;/a&gt;, che accede da un
laptop infetto da malware è comunque un vettore: l&amp;rsquo;attaccante cavalca la sessione dell&amp;rsquo;utente
autenticato. L&amp;rsquo;identità dell&amp;rsquo;utente da sola non basta; serve anche l&amp;rsquo;identità e lo &lt;strong&gt;stato&lt;/strong&gt; del
dispositivo. È l&amp;rsquo;altra metà del perimetro-identità.&lt;/p&gt;
&lt;h2 id=&#34;due-domande-sul-dispositivo&#34;&gt;Due domande sul dispositivo
&lt;/h2&gt;&lt;p&gt;Lo Zero Trust pone al dispositivo due domande distinte:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Identità&lt;/strong&gt;: è un dispositivo che conosciamo e gestiamo? (non un portatile qualunque)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Postura&lt;/strong&gt;: è in uno stato sano? (cifrato, aggiornato, con EDR attivo, senza jailbreak)&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&#34;mermaid&#34;&gt;
  flowchart LR
    DEV[Dispositivo] --&amp;gt; ID{Identità nota?}
    ID --&amp;gt;|sì| POS{Postura sana?}
    ID --&amp;gt;|no| DENY[Nega / solo guest]
    POS --&amp;gt;|sì| OK[Accesso pieno]
    POS --&amp;gt;|parziale| LIM[Accesso ridotto]
    POS --&amp;gt;|no| DENY
    style DENY fill:#fde2e4,stroke:#e63946
&lt;/pre&gt;

&lt;p&gt;La postura non è binaria: un dispositivo quasi conforme può ottenere accesso &lt;strong&gt;ridotto&lt;/strong&gt; invece di
essere respinto — è la gradualità dell&amp;rsquo;accesso adattivo (cap. 15).&lt;/p&gt;
&lt;h2 id=&#34;identità-hardware-il-tpm&#34;&gt;Identità hardware: il TPM
&lt;/h2&gt;&lt;p&gt;L&amp;rsquo;identità forte di un dispositivo si àncora all&amp;rsquo;hardware. Il &lt;strong&gt;TPM (Trusted Platform Module)&lt;/strong&gt; è un
chip che custodisce chiavi che non lasciano il dispositivo e può &lt;strong&gt;attestare&lt;/strong&gt; lo stato di avvio
(secure boot, misura dei componenti caricati). Un certificato legato al TPM diventa l&amp;rsquo;identità del
dispositivo — l&amp;rsquo;equivalente, per la macchina, di una
&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/mfa-resistente-al-phishing/&#34; &gt;passkey&lt;/a&gt; per l&amp;rsquo;utente: non trasferibile, non
clonabile.&lt;/p&gt;
&lt;p&gt;Questa identità si usa per l&amp;rsquo;accesso alla rete via &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/nac-8021x/&#34; &gt;802.1X / EAP-TLS&lt;/a&gt;
e per i controlli ZTNA.&lt;/p&gt;
&lt;h2 id=&#34;i-segnali-di-postura&#34;&gt;I segnali di postura
&lt;/h2&gt;&lt;p&gt;La postura si compone di segnali concreti, raccolti da un agente di gestione (MDM/EDR):&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Segnale&lt;/th&gt;
&lt;th&gt;Perché conta&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Disco cifrato&lt;/td&gt;
&lt;td&gt;un dispositivo rubato non rivela i dati&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OS aggiornato / patch&lt;/td&gt;
&lt;td&gt;niente vulnerabilità note aperte&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EDR attivo e sano&lt;/td&gt;
&lt;td&gt;rilevamento sul dispositivo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Firewall locale attivo&lt;/td&gt;
&lt;td&gt;superficie ridotta&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nessun jailbreak/root&lt;/td&gt;
&lt;td&gt;il modello di sicurezza dell&amp;rsquo;OS è intatto&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Questi segnali alimentano il &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/pdp-pep-il-motore-delle-policy/&#34; &gt;PDP&lt;/a&gt;: la
decisione di accesso combina identità dell&amp;rsquo;utente &lt;strong&gt;e&lt;/strong&gt; postura del dispositivo.&lt;/p&gt;
&lt;h2 id=&#34;il-dispositivo-non-gestito&#34;&gt;Il dispositivo non gestito
&lt;/h2&gt;&lt;p&gt;Non tutti gli accessi vengono da dispositivi aziendali: il BYOD e i collaboratori esterni esistono.
Lo Zero Trust non li blocca in assoluto, li tratta per quello che sono — meno fidati — concedendo
accesso &lt;strong&gt;ridotto&lt;/strong&gt;: solo app web via &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/ztna-oltre-la-vpn/&#34; &gt;ZTNA&lt;/a&gt; clientless,
nessun download di dati, sessioni più brevi. La fiducia è commisurata a ciò che si può verificare.&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;lnt&#34;&gt;2
&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;hl&#34;&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&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;# policy concettuale: accesso in funzione del dispositivo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;se dispositivo gestito E cifrato E patchato:  accesso pieno
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;se dispositivo gestito ma non conforme:        accesso ridotto + remediation
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;se dispositivo non gestito (BYOD):             solo web, sola lettura, no download
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;altrimenti:                                     nega
&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;h2 id=&#34;lab&#34;&gt;Lab
&lt;/h2&gt;&lt;p&gt;Con un MDM/strumento di compliance open source (o uno script di attestazione) e
&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/nac-8021x/&#34; &gt;802.1X&lt;/a&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Emettete un certificato dispositivo legato al TPM (dove disponibile) e usatelo per l&amp;rsquo;accesso alla
rete.&lt;/li&gt;
&lt;li&gt;Raccogliete segnali di postura di base (cifratura disco, stato patch) con uno script.&lt;/li&gt;
&lt;li&gt;Costruite una policy che dia accesso pieno solo se i segnali sono verdi, altrimenti ridotto.&lt;/li&gt;
&lt;li&gt;Degradate un segnale (disattivate la cifratura su una VM di test) e osservate l&amp;rsquo;accesso
restringersi.&lt;/li&gt;
&lt;/ol&gt;


&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Domanda:&lt;/strong&gt; i segnali di postura arrivano da un agente sul dispositivo; se la macchina è compromessa, l&#39;agente non può mentire e dichiararsi sano?&lt;/summary&gt;
&lt;p&gt;È la critica più seria al device trust, e la risposta sta nel radicare la fiducia nell&#39;hardware, non
nel software. Un agente software su una macchina pienamente compromessa &lt;em&gt;può&lt;/em&gt; essere manomesso:
per questo i segnali più forti non vengono dall&#39;agente ma dall&#39;&lt;strong&gt;attestazione hardware&lt;/strong&gt;.
Il TPM misura la catena di avvio e firma quelle misure con una chiave che il malware non può estrarre:
un sistema con bootkit o secure boot disattivato produce un&#39;attestazione che non combacia, e lo si
rileva a prescindere da cosa dichiari l&#39;agente. I segnali software (patch, EDR) restano utili come
strato aggiuntivo, ma non sono la radice della fiducia. Il principio è lo stesso di
&lt;a href=&#34;https://www.matteobianchi.eu/p/mfa-resistente-al-phishing/&#34;&gt;FIDO2&lt;/a&gt;: la prova nasce in un elemento sicuro che il
software compromesso non controlla. Dove l&#39;hardware di attestazione non c&#39;è (vecchi dispositivi, BYOD),
lo si tratta onestamente come meno fidato e si concede meno — invece di fingere una garanzia che non
si ha.&lt;/p&gt;
&lt;/details&gt;


&lt;h2 id=&#34;conclusione&#34;&gt;Conclusione
&lt;/h2&gt;&lt;p&gt;Lo Zero Trust verifica il dispositivo quanto l&amp;rsquo;utente: identità ancorata all&amp;rsquo;hardware (TPM) e
postura (cifratura, patch, EDR) entrano nella decisione di accesso, che diventa graduale invece che
binaria. Il dispositivo non gestito non è bandito, è limitato a ciò che si può verificare. Verificati
utente e dispositivo, resta da stringere &lt;em&gt;cosa&lt;/em&gt; possono fare: il minimo privilegio e l&amp;rsquo;accesso
Just-in-Time, il prossimo capitolo.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>MFA resistente al phishing: FIDO2 e WebAuthn</title>
        <link>https://www.matteobianchi.eu/p/mfa-resistente-al-phishing/</link>
        <pubDate>Tue, 09 Jun 2026 09:00:00 +0200</pubDate>
        
        <guid>https://www.matteobianchi.eu/p/mfa-resistente-al-phishing/</guid>
        <description>&lt;img src="https://www.matteobianchi.eu/p/mfa-resistente-al-phishing/cover.png" alt="Featured image of post MFA resistente al phishing: FIDO2 e WebAuthn" /&gt;&lt;h2 id=&#34;perché-conta&#34;&gt;Perché conta
&lt;/h2&gt;&lt;p&gt;Se l&amp;rsquo;&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/identita-il-nuovo-perimetro/&#34; &gt;identità è il perimetro&lt;/a&gt;, l&amp;rsquo;autenticazione è
la serratura. E non tutte le serrature sono uguali: aggiungere &amp;ldquo;un secondo fattore&amp;rdquo; non basta se quel
fattore si può rubare con l&amp;rsquo;inganno. Gran parte delle brecce odierne non rompe la crittografia, ruba
le credenziali — compresi i codici MFA — con il phishing. La MFA &lt;strong&gt;resistente al phishing&lt;/strong&gt; (FIDO2/
WebAuthn) chiude proprio questa strada, ed è il tipo di autenticazione che lo Zero Trust richiede.&lt;/p&gt;
&lt;h2 id=&#34;perché-otp-e-push-non-bastano&#34;&gt;Perché OTP e push non bastano
&lt;/h2&gt;&lt;p&gt;I fattori più diffusi sono rubabili perché l&amp;rsquo;utente può essere ingannato a consegnarli:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OTP (codici a tempo)&lt;/strong&gt;: un sito di phishing che imita quello vero chiede il codice; l&amp;rsquo;utente lo
digita; l&amp;rsquo;attaccante lo inoltra al sito vero in tempo reale. Il codice non sa &lt;em&gt;a chi&lt;/em&gt; lo stai
dando.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Push &amp;ldquo;approva/nega&amp;rdquo;&lt;/strong&gt;: l&amp;rsquo;attaccante tenta il login e l&amp;rsquo;utente riceve la richiesta; con il
&lt;strong&gt;MFA fatigue&lt;/strong&gt; (richieste ripetute, di notte) prima o poi qualcuno approva per sfinimento.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SMS&lt;/strong&gt;: in più soffre di SIM swapping.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Il difetto comune: il fattore non è &lt;strong&gt;legato al sito legittimo&lt;/strong&gt;. L&amp;rsquo;utente è l&amp;rsquo;anello che può essere
indirizzato verso il posto sbagliato.&lt;/p&gt;
&lt;h2 id=&#34;lidea-di-fido2-legare-la-credenziale-al-dominio&#34;&gt;L&amp;rsquo;idea di FIDO2: legare la credenziale al dominio
&lt;/h2&gt;&lt;p&gt;FIDO2/WebAuthn usa la &lt;strong&gt;crittografia a chiave pubblica&lt;/strong&gt; e lega la credenziale all&amp;rsquo;&lt;strong&gt;origine&lt;/strong&gt; (il
dominio) per cui è stata creata. La chiave privata vive in un autenticatore (chiave di sicurezza,
TPM, Secure Enclave del telefono) e &lt;strong&gt;non lascia mai&lt;/strong&gt; il dispositivo; al sito va solo una firma.&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;
  sequenceDiagram
    participant U as Utente + autenticatore
    participant B as Browser
    participant S as Sito (origine)
    S-&amp;gt;&amp;gt;B: challenge + origine attesa
    B-&amp;gt;&amp;gt;U: firma challenge (lega all&amp;#39;origine reale del browser)
    Note over U: chiave privata non esce mai
    U-&amp;gt;&amp;gt;B: firma
    B-&amp;gt;&amp;gt;S: firma verificata con chiave pubblica
&lt;/pre&gt;

&lt;p&gt;Il punto decisivo: il browser include l&amp;rsquo;&lt;strong&gt;origine reale&lt;/strong&gt; nella firma. Se l&amp;rsquo;utente è su un sito di
phishing (&lt;code&gt;banca-login.evil.com&lt;/code&gt;), la firma è per &lt;em&gt;quel&lt;/em&gt; dominio, e il sito vero (&lt;code&gt;banca.it&lt;/code&gt;) la
rifiuta. La credenziale &lt;strong&gt;non è trasferibile&lt;/strong&gt; a un dominio diverso. Il phishing smette di
funzionare non perché l&amp;rsquo;utente è più attento, ma perché la tecnica è inefficace.&lt;/p&gt;
&lt;h2 id=&#34;passkey-fido2-usabile&#34;&gt;Passkey: FIDO2 usabile
&lt;/h2&gt;&lt;p&gt;Le &lt;strong&gt;passkey&lt;/strong&gt; sono credenziali FIDO2 sincronizzabili (via il portachiavi del sistema operativo) o
legate a un dispositivo. Rendono FIDO2 pratico per il grande pubblico: niente password, sblocco con
biometria o PIN locale, e resistenza al phishing di serie. Per lo Zero Trust sono il fattore da
preferire per gli utenti; per gli account ad alto privilegio, le chiavi di sicurezza hardware
dedicate.&lt;/p&gt;
&lt;h2 id=&#34;registrazione-e-verifica-in-breve&#34;&gt;Registrazione e verifica, in breve
&lt;/h2&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;lnt&#34;&gt;3
&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;span class=&#34;lnt&#34;&gt;7
&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;# registrazione (una volta)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;navigator.credentials.create(...)   # genera coppia di chiavi legata a questa origine
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# → la chiave pubblica viene salvata dal sito, la privata resta nell&amp;#39;autenticatore
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# login (ogni volta)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;navigator.credentials.get(...)      # firma la challenge SOLO per questa origine
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# → il server verifica la firma con la chiave pubblica registrata
&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;Le due righe evidenziate sono il cuore: la creazione lega la credenziale all&amp;rsquo;origine, e il login
firma solo per quell&amp;rsquo;origine. Nessun segreto condiviso viaggia mai.&lt;/p&gt;
&lt;h2 id=&#34;non-dimenticare-il-recupero&#34;&gt;Non dimenticare il recupero
&lt;/h2&gt;&lt;p&gt;L&amp;rsquo;anello debole di ogni MFA forte è il &lt;strong&gt;recupero account&lt;/strong&gt;: se &amp;ldquo;ho perso la chiave&amp;rdquo; riporta a un
codice via email o a una domanda segreta, l&amp;rsquo;attaccante punta lì. Il recupero va trattato con lo
stesso rigore: un secondo autenticatore registrato in anticipo, o un processo verificato, non una
backdoor via SMS.&lt;/p&gt;
&lt;h2 id=&#34;lab&#34;&gt;Lab
&lt;/h2&gt;&lt;p&gt;Con una libreria WebAuthn in laboratorio (o un IdP come Keycloak che supporta FIDO2) e una chiave di
sicurezza o una passkey:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Registrate una credenziale FIDO2 su un&amp;rsquo;app di test servita da &lt;code&gt;localhost&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Effettuate il login con la passkey/chiave: nessuna password.&lt;/li&gt;
&lt;li&gt;Simulate il phishing: servite la stessa app da un host diverso e verificate che l&amp;rsquo;autenticatore
&lt;strong&gt;non&lt;/strong&gt; produca una firma valida per l&amp;rsquo;origine sbagliata.&lt;/li&gt;
&lt;li&gt;Registrate un secondo autenticatore come recupero e provate a perdere il primo.&lt;/li&gt;
&lt;/ol&gt;


&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Domanda:&lt;/strong&gt; se la passkey è sul telefono e perdo il telefono, non resto chiuso fuori da tutto?&lt;/summary&gt;
&lt;p&gt;È la preoccupazione giusta, e il motivo per cui le passkey moderne sono pensate attorno al recupero,
non solo all&#39;accesso. Due meccanismi la risolvono. Primo: le passkey sincronizzate vivono nel
portachiavi del vostro ecosistema (Apple, Google, un password manager) e si ripristinano sul nuovo
dispositivo dopo esservi autenticati a quell&#39;account — la passkey non è prigioniera di un singolo pezzo
di hardware. Secondo, e sempre consigliato in azienda: registrare &lt;em&gt;almeno due&lt;/em&gt; autenticatori in
anticipo (ad esempio il telefono più una chiave hardware tenuta al sicuro), così la perdita di uno non
chiude fuori. Il rischio reale non è perdere l&#39;accesso, è un recupero &lt;em&gt;debole&lt;/em&gt;: se il &#34;ho perso
tutto&#34; ripiega su un codice via email, avete riaperto proprio la porta che FIDO2 aveva chiuso. Il
recupero va progettato forte quanto l&#39;accesso.&lt;/p&gt;
&lt;/details&gt;


&lt;h2 id=&#34;conclusione&#34;&gt;Conclusione
&lt;/h2&gt;&lt;p&gt;La MFA conta solo se è resistente al phishing: OTP e push si fanno rubare perché non sanno a chi si
consegnano, FIDO2/WebAuthn no perché lega la credenziale al dominio e non la fa mai uscire dal
dispositivo. È il fattore che lo Zero Trust richiede per utenti e, a maggior ragione, per gli
amministratori. Autenticata l&amp;rsquo;identità, serve il motore che decide cosa può fare: PDP e PEP, il
prossimo capitolo.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>L&#39;identità è il nuovo perimetro</title>
        <link>https://www.matteobianchi.eu/p/identita-il-nuovo-perimetro/</link>
        <pubDate>Tue, 02 Jun 2026 09:00:00 +0200</pubDate>
        
        <guid>https://www.matteobianchi.eu/p/identita-il-nuovo-perimetro/</guid>
        <description>&lt;img src="https://www.matteobianchi.eu/p/identita-il-nuovo-perimetro/cover.png" alt="Featured image of post L&#39;identità è il nuovo perimetro" /&gt;&lt;h2 id=&#34;perché-conta&#34;&gt;Perché conta
&lt;/h2&gt;&lt;p&gt;Nel capitolo precedente abbiamo tolto alla rete il potere di conferire fiducia
(&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/oltre-il-perimetro/&#34; &gt;oltre il perimetro&lt;/a&gt;). Ma la fiducia deve pur fondarsi su
qualcosa: nello Zero Trust quel qualcosa è l&amp;rsquo;&lt;strong&gt;identità&lt;/strong&gt;. Non più &amp;ldquo;da quale IP arrivi&amp;rdquo;, ma &amp;ldquo;chi sei
e cosa ti è concesso&amp;rdquo;. L&amp;rsquo;identità diventa il &lt;strong&gt;piano di controllo&lt;/strong&gt;: il punto da cui parte ogni
decisione di accesso. Se l&amp;rsquo;identità è debole, tutto il resto dell&amp;rsquo;architettura poggia sulla sabbia.&lt;/p&gt;
&lt;h2 id=&#34;identità-non-solo-utenti&#34;&gt;Identità: non solo utenti
&lt;/h2&gt;&lt;p&gt;Un errore comune è pensare all&amp;rsquo;identità solo come all&amp;rsquo;utente umano. Nello Zero Trust hanno
un&amp;rsquo;identità verificabile anche:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dispositivi&lt;/strong&gt;: il laptop, il telefono (cap. 09).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Workload&lt;/strong&gt;: servizi, container, funzioni — che si autenticano a vicenda con
&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/identita-dei-workload-mtls/&#34; &gt;mTLS&lt;/a&gt; e identità come
&lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/spiffe-e-spire/&#34; &gt;SPIFFE&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Servizi esterni&lt;/strong&gt;: API di terze parti, partner.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ogni attore che fa una richiesta ha un&amp;rsquo;identità, e ogni identità è verificata.&lt;/p&gt;
&lt;h2 id=&#34;il-piano-di-controllo-dellidentità&#34;&gt;Il piano di controllo dell&amp;rsquo;identità
&lt;/h2&gt;&lt;pre class=&#34;mermaid&#34;&gt;
  flowchart TD
    subgraph CP[&amp;#34;Piano di controllo: Identity Provider (IdP)&amp;#34;]
        DIR[(Directory&amp;lt;br/&amp;gt;utenti/gruppi)]
        AUTH[Autenticazione + MFA]
        TOK[Emissione token]
    end
    U[Utente / servizio] --&amp;gt;|si autentica| AUTH
    AUTH --&amp;gt; TOK
    TOK --&amp;gt;|token firmato| APP1[App A]
    TOK --&amp;gt;|token firmato| APP2[App B]
    DIR --&amp;gt; AUTH
    style CP fill:#fde2e4,stroke:#e63946
&lt;/pre&gt;

&lt;p&gt;Un &lt;strong&gt;Identity Provider (IdP)&lt;/strong&gt; centrale autentica l&amp;rsquo;identità una volta e rilascia &lt;strong&gt;token firmati&lt;/strong&gt;
(OpenID Connect / SAML) che le applicazioni verificano. Centralizzare l&amp;rsquo;autenticazione significa un
solo posto dove applicare MFA, un solo posto dove revocare un accesso, un solo registro di chi è
chi.&lt;/p&gt;
&lt;h2 id=&#34;sso-e-federazione&#34;&gt;SSO e federazione
&lt;/h2&gt;&lt;p&gt;Il &lt;strong&gt;Single Sign-On (SSO)&lt;/strong&gt; permette a un&amp;rsquo;identità di accedere a molte applicazioni con una sola
autenticazione forte presso l&amp;rsquo;IdP. La &lt;strong&gt;federazione&lt;/strong&gt; estende questo tra organizzazioni e domini:
un partner si autentica presso il proprio IdP, e il nostro si fida di quell&amp;rsquo;asserzione tramite una
relazione di trust stabilita.&lt;/p&gt;
&lt;p&gt;Il vantaggio per lo Zero Trust è doppio: meno password in giro (meno da rubare) e un punto unico
dove applicare le policy. Lo svantaggio da gestire: l&amp;rsquo;IdP diventa il bersaglio numero uno — se cade
lui, cade tutto. Per questo il capitolo 04 dedica attenzione all&amp;rsquo;autenticazione resistente al
phishing.&lt;/p&gt;
&lt;h2 id=&#34;un-token-non-è-un-lasciapassare-eterno&#34;&gt;Un token non è un lasciapassare eterno
&lt;/h2&gt;&lt;p&gt;Un token OIDC/SAML dice &amp;ldquo;questa identità è stata verificata&amp;rdquo;. Ma nello Zero Trust non basta averlo:
conta per &lt;strong&gt;quanto&lt;/strong&gt; vale e &lt;strong&gt;cosa&lt;/strong&gt; autorizza. Token a vita breve, scope minimi, e verifica a ogni
accesso (non &amp;ldquo;ho il token, entro ovunque&amp;rdquo;). Il token prova l&amp;rsquo;identità; l&amp;rsquo;autorizzazione resta una
decisione separata del &lt;a class=&#34;link&#34; href=&#34;https://www.matteobianchi.eu/p/pdp-pep-il-motore-delle-policy/&#34; &gt;PDP&lt;/a&gt;.&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;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;hl&#34;&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;hl&#34;&gt;&lt;span class=&#34;lnt&#34;&gt;5
&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;# claim essenziali di un token (concettuale)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sub: alice@azienda.it      # chi
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;aud: app-gestionale        # per quale servizio
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;exp: +10m                  # scadenza BREVE
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scope: ordini:lettura      # privilegio MINIMO, non &amp;#34;tutto&amp;#34;
&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;h2 id=&#34;identità-forte-come-prerequisito&#34;&gt;Identità forte come prerequisito
&lt;/h2&gt;&lt;p&gt;Se l&amp;rsquo;identità è il perimetro, va resa robusta prima di tutto il resto:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Una &lt;strong&gt;fonte autorevole&lt;/strong&gt; unica delle identità (directory), senza account fantasma.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MFA&lt;/strong&gt; ovunque, meglio se resistente al phishing (cap. 04).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deprovisioning&lt;/strong&gt; immediato: quando qualcuno se ne va, l&amp;rsquo;accesso sparisce subito.&lt;/li&gt;
&lt;li&gt;Separazione tra &lt;strong&gt;autenticazione&lt;/strong&gt; (chi sei) e &lt;strong&gt;autorizzazione&lt;/strong&gt; (cosa puoi), per poter cambiare
i privilegi senza toccare l&amp;rsquo;identità.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;lab&#34;&gt;Lab
&lt;/h2&gt;&lt;p&gt;Con un IdP open source (Keycloak o Authentik) in laboratorio:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Configurate un IdP e due applicazioni di test che si fidano di esso via OpenID Connect.&lt;/li&gt;
&lt;li&gt;Abilitate il SSO: autenticatevi una volta e accedete a entrambe le app senza re-login.&lt;/li&gt;
&lt;li&gt;Impostate token a vita breve e osservate il rinnovo.&lt;/li&gt;
&lt;li&gt;Revocate l&amp;rsquo;utente nell&amp;rsquo;IdP e verificate che l&amp;rsquo;accesso a entrambe le app cada.&lt;/li&gt;
&lt;/ol&gt;


&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Domanda:&lt;/strong&gt; centralizzare tutto sull&#39;IdP non crea un singolo punto di fallimento catastrofico?&lt;/summary&gt;
&lt;p&gt;Sì, e va affrontato apertamente: l&#39;IdP diventa il sistema più critico dell&#39;intera architettura, sul
piano sia della disponibilità sia della sicurezza. Ma l&#39;alternativa — identità e password sparse su
decine di sistemi, ognuno con la propria logica — non è più sicura, è solo più difficile da difendere e
da revocare. La concentrazione è un vantaggio &lt;em&gt;se&lt;/em&gt; la si tratta come tale: alta disponibilità e
ridondanza per non restare chiusi fuori, MFA resistente al phishing per gli account, protezione
rigorosa degli amministratori dell&#39;IdP, e monitoraggio di ogni autenticazione anomala. Si sposta il
rischio da &#34;molti bersagli mediocri&#34; a &#34;un bersaglio critico ben difeso&#34;: è un compromesso migliore,
ma solo se quel bersaglio lo si difende davvero.&lt;/p&gt;
&lt;/details&gt;


&lt;h2 id=&#34;conclusione&#34;&gt;Conclusione
&lt;/h2&gt;&lt;p&gt;Tolta alla rete, la fiducia si fonda sull&amp;rsquo;identità: utenti, dispositivi e workload, ciascuno con
un&amp;rsquo;identità verificata a ogni accesso tramite un IdP centrale. L&amp;rsquo;identità è il piano di controllo
dello Zero Trust, e perciò va resa forte per prima. Il pezzo più fragile dell&amp;rsquo;identità è
l&amp;rsquo;autenticazione: nel prossimo capitolo la rendiamo resistente al phishing.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
