Che cosè HPKP?

HPKP è un'intestazione di risposta di sicurezza Web deprecata, l'acronimo sta per HTTP Public Key Pins. Aveva lo scopo di impedire a un'autorità di certificazione compromessa o non autorizzata di emettere un certificato HTTPS pubblicamente attendibile, ma controllato da hacker per un sito Web. In questo scenario, gli hacker sarebbero in grado di decrittografare qualsiasi traffico HTTPS intercettato verso il sito Web interessato.

Suggerimento: le intestazioni di risposta Web sono parti di metadati che il server include quando risponde alle richieste. Un piccolo sottoinsieme di questi è indicato come intestazioni di sicurezza, poiché abilitano e configurano varie funzionalità di sicurezza.

Infrastruttura del certificato HTTPS

L'infrastruttura dei certificati su cui si basa HTTPS si basa su una rete di fiducia. Alcune società fungono da autorità di certificazione (CA) che pubblicano uno o più certificati radice. Un set di certificati radice è incluso in tutti i dispositivi in ​​un truststore. Quando un sito Web richiede un proprio certificato HTTPS da una CA, il certificato viene firmato da un certificato radice. Quando il tuo computer vede un certificato HTTPS, controlla la firma. Se il certificato è firmato da un certificato radice di cui si fida, anche il tuo computer si fida del certificato HTTPS.

Suggerimento: una CA può anche avere certificati intermedi firmati dal certificato radice. Questi certificati intermedi possono essere utilizzati anche per firmare certificati HTTPS per i siti web.

Il compito di un'autorità di certificazione è emettere un certificato solo dopo aver verificato che la persona che lo richiede è il vero proprietario del sito web. L'idea con questa struttura è che se un hacker crea il proprio certificato per un sito Web, non sarà firmato da una CA di cui si fida il computer e quindi verrà visualizzato un avviso.

Che cosa ha fatto HPKP?

L'intero sistema di certificazione si basa sull'affidabilità delle autorità di certificazione. In origine, tuttavia, non esistevano protezioni contro la compromissione di un'autorità di certificazione da parte di hacker o che diventasse canaglia e scegliesse di emettere certificati in modo errato.

HPKP è stato progettato per essere una protezione contro questa possibilità. Consente ai siti Web di specificare un elenco esclusivo di certificati che possono essere considerati attendibili per il sito Web in un processo chiamato blocco. È stato possibile bloccare il certificato radice o intermedio, consentendo essenzialmente a una singola CA di emettere certificati per il sito web. È stato anche possibile appuntare il certificato del sito stesso, impedendo anche alla CA giusta di emettere un altro certificato valido.

Tecnicamente non è il certificato stesso ad essere bloccato, ma un hash della chiave del certificato. Un hash è una funzione crittografica unidirezionale. Ciò significa che è possibile verificare che il certificato presentato al browser dal sito Web corrisponda a un certificato bloccato, ma non è possibile utilizzare l'hash per creare un certificato valido.

HPKP ha richiesto di aggiungere almeno due chiavi, di cui almeno una di backup e non nella catena di certificati corrente. Questo backup consente di configurare un passaggio graduale a un nuovo certificato che non impedisce agli utenti di connettersi.

Se il certificato HTTPS presentato al browser dal sito Web non corrisponde a uno dei certificati aggiunti, il browser deve rifiutarlo e impedire all'utente di ignorare il messaggio di errore del certificato.

Struttura di HPKP

L'intestazione HPKP ha tre parti obbligatorie e due facoltative. L'intestazione deve essere intitolata "Public-Key-Pins", i successivi due o più certificati devono avere un hash SHA256 codificato base64 bloccato nel formato 'pin-sha256=””'. L'ultima parte obbligatoria è la "max-età", che è un conteggio in secondi per quanto tempo il browser deve applicare le restrizioni.

Suggerimento: SHA256 è l'algoritmo di hashing utilizzato da HPKP. Base64 è un set di caratteri con 64 caratteri: 0-9, az, AZ e i caratteri speciali "+" e "/". Il "=" viene utilizzato per riempire fino agli ultimi due caratteri, se necessario. 

Le impostazioni facoltative sono "includeSubDomains" e "report-uri". "includeSubDomains indica al browser di applicare le protezioni HPKP a qualsiasi sottodominio del sito Web corrente per la durata del timer di "età massima". "report-uri" è una funzionalità che consente di specificare un sito Web in cui è possibile inviare segnalazioni di errori ed è progettata per aiutare a identificare e risolvere i problemi.

Esiste una seconda variante dell'intestazione intitolata "Public-Key-Pins-Report-Only". Tutto è uguale, tuttavia, se viene rilevato un errore non viene intrapresa alcuna azione oltre a restituire un messaggio di errore al browser e al "report-uri" se configurato. La variante solo report è stata progettata per consentire il test completo dell'intestazione prima della distribuzione, in cui gli errori non causerebbero problemi per gli utenti.

Problemi con HPKP

HPKP è stato deprecato per due motivi principali. C'erano due modi in cui l'intestazione poteva causare seri problemi al sito web che la utilizzava, questi erano chiamati HPKP Suicide e Ransom PKP.

HPKP Suicide è un problema in cui i legittimi proprietari del sito Web perdono l'accesso a tutte le chiavi bloccate. Ciò potrebbe accadere attraverso la cancellazione accidentale, l'hacking, i virus, il danneggiamento dei dati o per molti altri motivi. A causa della complessità dell'implementazione corretta di HPKP, e soprattutto del suo aggiornamento durante le rotazioni dei certificati, è relativamente facile commettere un errore di configurazione. Con HPKP, tuttavia, se sbagli qualcosa, a tutti i visitatori recenti del tuo sito Web verrà impedito di accedere al tuo sito Web per la durata del timer "max-età". Il sito Web smashingmagazine.com ha pubblicato un articolo che descrive in dettaglio la sua esperienza con esattamente questo problema, che essenzialmente ha portato il sito offline per la maggior parte dei visitatori per quattro giorni prima che venisse implementata una correzione.

Ransom PKP è un attacco teorico in cui un hacker ottiene l'accesso a un server Web, quindi ruba tutti i certificati e le chiavi affidabili e quindi richiede un riscatto per il loro ritorno. In una configurazione normale, potresti semplicemente generare nuove chiavi e certificati e far tornare il sito Web attivo e funzionante in meno di un'ora. Con HPKP abilitato, tuttavia, tali chiavi vengono bloccate, se non puoi fornire un certificato bloccato agli utenti, non saranno in grado di accedere al sito Web per la durata del timer "max-età". A seconda della configurazione e della presenza di backup, potrebbe essere impossibile risolvere questo problema.

Con entrambi questi problemi, i nuovi utenti sarebbero in grado di accedere al sito Web normalmente, poiché non avrebbero mai visto la vecchia intestazione HPKP che indicava al proprio browser di fidarsi solo dei certificati ora mancanti. Tutti i visitatori recenti, tuttavia, come clienti abituali e lettori, dovrebbero attendere l'intera durata del timer "max-età".

Data la gravità di questi problemi e la complessità della configurazione e della manutenzione, l'utilizzo dell'intestazione HPKP è stato molto basso. Alla fine, i principali browser hanno accettato di abbandonare del tutto il supporto e nel giro di un paio d'anni l'intestazione HPKP è stata universalmente deprecata.



Leave a Comment

Chrome: questo file non può essere scaricato in modo sicuro

Chrome: questo file non può essere scaricato in modo sicuro

Scopri come risolvere l

Opera VPN non funziona? Prova queste soluzioni rapide

Opera VPN non funziona? Prova queste soluzioni rapide

Scopri come risolvere i problemi con Opera VPN, il servizio VPN gratuito incluso nel browser Opera. Seguendo queste soluzioni rapide, puoi ottimizzare la tua esperienza VPN.

Come controllare la cronologia delle attività di accesso a Gmail

Come controllare la cronologia delle attività di accesso a Gmail

Scopri come controllare la cronologia delle attività di accesso a Gmail per garantire la sicurezza del tuo account. Segui questi semplici passaggi e proteggi i tuoi dati.

Come impedire a YouTube di chiedere se si desidera continuare a guardare

Come impedire a YouTube di chiedere se si desidera continuare a guardare

Scopri come evitare che YouTube ti chieda di confermare se stai continuando a guardare, utilizzando estensioni efficaci per Chrome e Firefox.

Correggi YouTube: i nostri sistemi hanno rilevato traffico insolito

Correggi YouTube: i nostri sistemi hanno rilevato traffico insolito

Se YouTube ha rilevato traffico insolito dal mio computer, ciò potrebbe significare che il sistema sospetta che si tratti di traffico automatizzato. Scopri come risolvere questo problema.

Correzione: YouTube Kids non carica i video

Correzione: YouTube Kids non carica i video

Se YouTube Kids non riproduce alcun video, controlla la connessione, esci dal tuo account e svuota la cache. Trova soluzioni efficaci per risolvere questo problema.

Puoi disegnare un raggio su Google Maps?

Puoi disegnare un raggio su Google Maps?

Scopri se puoi disegnare un raggio su Google Maps e quali strumenti alternativi puoi utilizzare per calcolare la distanza intorno a una posizione.

Non riesci ad accedere a YouTube? Usa questi suggerimenti per risolvere il problema

Non riesci ad accedere a YouTube? Usa questi suggerimenti per risolvere il problema

Se non riesci ad accedere a YouTube, controlla se il tuo browser è responsabile di questo problema. Svuota la cache, disabilita le estensioni e segui i nostri suggerimenti per risolvere facilmente il problema.

Zoom: come configurare gli avvisi del lettore dello schermo

Zoom: come configurare gli avvisi del lettore dello schermo

Usare un computer quando sei ipovedente non è particolarmente facile. Scopri come configurare gli avvisi del lettore dello schermo in Zoom per facilitare l

Come proteggere con password i file su Google Drive?

Come proteggere con password i file su Google Drive?

Scopri come proteggere con password i tuoi file su Google Drive con questo metodo semplice e veloce.