HTTP Public Key Pinning (HPKP) è uno standard che consente a un sito Web HTTPS di specificare quali certificati si fida e indica al browser di non consentire alcuna connessione a quel sito che è protetto da qualsiasi altro certificato.
Può essere usato per facilitare un attacco denial-of-service persistente su un sito web? Supponiamo che un utente malintenzionato comprometta un sito Web come cnn.com (per esempio). Sembra che l'avversario possa configurare il server web per abilitare HSTS e HPKP, con una politica di blocco che specifica un certificato controllato dal attaccante. L'attacco potrebbe essere scoperto e gli amministratori legittimi riprenderanno il controllo, ma tutti coloro che visitano cnn.com nel frattempo riceveranno una politica HSTS e HPKP e il loro browser la memorizzerà nella cache. Di conseguenza, il browser non consentirà alcuna connessione HTTP a cnn.com (a causa del criterio HSTS) e consentirà solo le connessioni HTTPS se il server utilizza il certificato aggiunto e la chiave pubblica. Tuttavia, poiché l'autore dell'attacco ha specificato il certificato, potrebbe utilizzare una chiave privata controllata dall'hacker e non nota a cnn.com. Di conseguenza, dopo che l'utente malintenzionato è stato avviato, cnn.com non ha modo di terminare una sessione SSL utilizzando la chiave privata scelta dall'attentatore. Quindi, tutte le future connessioni da quei browser a cnn.com falliranno.
Lo standard HPKP suggerisce che i browser devono impostare un'età massima per queste norme, ma anche suggerimenti imposta l'età massima a 60 giorni. Quindi, se sto capendo correttamente questo, significa che se un utente malintenzionato compromette temporaneamente un sito Web, l'utente malintenzionato può garantire che il sito Web sarà assolutamente irraggiungibile per i prossimi 60 giorni per tutti gli utenti che visitano il sito Web durante il breve periodo in cui il sito Web è compromesso. In sostanza, qualsiasi utente che visita il sito Web in un momento in cui è controllato dall'attaccante viene "avvelenato" per i successivi 60 giorni e il sito Web appare semplicemente irraggiungibile.
Poiché le violazioni del sito Web non sono inaudite, sembra che sarebbe un risultato piuttosto grave. Questo è un tipo piuttosto inusuale di attacco denial-of-service: consente il vandalismo irreversibile di un sito che non c'è nulla in cui gli amministratori del sito web possano fare qualcosa, tranne aspettare. Sembra anche che questo attacco possa essere sfruttato contro qualsiasi sito Web, anche uno che attualmente non usa HPKP, HSTS o persino HTTPS.
L'ho capito correttamente? Ci sono delle attenuazioni che un sito Web può intraprendere per impedire a se stesso di comportarsi in questo modo? C'è un argomento secondo cui HPKP non introduce alcun nuovo rischio DoS più grave di quello che esisteva già prima di HPKP? Questo tipo di attacco DoS persistente è mai stato osservato in natura?
Ho letto RFC 7469, lo standard che descrive HPKP, e non sembra avere alcuna mitigazione. Sembra che l'attacco che ho descritto si qualifichi come un'istanza di 'ostile pinning' , ma lo standard non lo fa Sembra che menzioni qualsiasi mitigazione utile per il blocco ostile (a parte l'età massima).