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

Fix: Le App Non Pinnate Continuano a Riapparire in Windows 11

Fix: Le App Non Pinnate Continuano a Riapparire in Windows 11

Se le app e i programmi non pinnati continuano a riapparire nella barra delle applicazioni, puoi modificare il file Layout XML e rimuovere le righe personalizzate.

Come effettuare un Soft & Hard Reset su iPod Shuffle

Come effettuare un Soft & Hard Reset su iPod Shuffle

In questo tutorial ti mostriamo come eseguire un soft o hard reset sull

Come Gestire le Tue Sottoscrizioni di Google Play su Android

Come Gestire le Tue Sottoscrizioni di Google Play su Android

Ci sono così tante fantastiche app su Google Play che non puoi fare a meno di iscriverti. Dopo un po

Come utilizzare Samsung Pay con il Galaxy Z Fold 5

Come utilizzare Samsung Pay con il Galaxy Z Fold 5

Cercare nella propria tasca o portafoglio il giusto documento di pagamento può essere un vero disagio. Negli ultimi anni, diverse aziende hanno sviluppato e lanciato soluzioni di pagamento contactless.

Come Eliminare la Cronologia dei Download Android

Come Eliminare la Cronologia dei Download Android

Eliminare la cronologia dei download di Android aiuta a liberare spazio di archiviazione, tra le altre cose. Ecco i passaggi da seguire.

Come Eliminare Foto e Video da Facebook

Come Eliminare Foto e Video da Facebook

Questa guida ti mostra come eliminare foto e video da Facebook utilizzando un PC, un dispositivo Android o iOS.

Come Ripristinare Galaxy Tab S9

Come Ripristinare Galaxy Tab S9

Abbiamo trascorso del tempo con il Galaxy Tab S9 Ultra, e si tratta del tablet perfetto da abbinare al tuo PC Windows o al Galaxy S23.

Come disattivare i messaggi di testo di gruppo su Android 11

Come disattivare i messaggi di testo di gruppo su Android 11

Disattiva i messaggi di testo di gruppo su Android 11 per mantenere sotto controllo le notifiche per l

Firefox: Cancella la Cronologia degli URL nella Barra degli Indirizzi

Firefox: Cancella la Cronologia degli URL nella Barra degli Indirizzi

Cancella la cronologia degli URL nella barra degli indirizzi di Firefox e mantieni le tue sessioni private seguendo questi rapidi e facili passi.

Come Riconoscere e Segnalare Truffatori su Facebook

Come Riconoscere e Segnalare Truffatori su Facebook

Per segnalare un truffatore su Facebook, clicca su Altre opzioni e seleziona Trova supporto o segnala profilo. Compila poi il modulo di segnalazione.