L'HPKP non diventa inutile dopo che è scaduta l'età massima?

3

L'idea di base di HPKP era quella di proteggere i tuoi utenti dagli attacchi MITM se una CA intermedia emetteva accidentalmente un certificato fraudolento per il tuo dominio all'autore dell'attacco.

Perni o chiavi o hash sul certificato e imposta un periodo massimo . Il problema è la max età stessa. Il tuo browser memorizza un criterio HPKP a condizione che l'età massima non sia scaduta. Una volta scaduta l'età massima, l'attaccante può utilizzare il suo certificato fraudolento per apparire come server web legittimo del tuo sito.

Github e Mozilla utilizzano HPKP. Non è ovvio che un attaccante attenda fino alla scadenza della sua età massima e poi esegua l'attacco?

    
posta defalt 17.11.2016 - 14:03
fonte

1 risposta

6

Doesn't HPKP become useless after the max age has expired?

Sì, dopo che è stato raggiunto il timeout, il pin non è più efficace. Ma l'aspettativa è che alla fine visiterai nuovamente la pagina prima che il tuo pin scada, aggiornando di nuovo il timeout e aggiornando i pin. Può essere pericoloso non lasciare mai scadere uno spillo perché potresti bloccare per sempre gli utenti precedenti se accidentalmente ti lasciano pin la chiave sbagliata solo una volta.

Isn't it obvious that an attacker will wait until their max age is expired and then perform the attack?

Un tale aggressore deve essere molto paziente e fare alcune supposizioni. La vittima potrebbe non visitare il sito regolarmente poiché ciò prolungherebbe il timeout di ciascuna visita. Inoltre, l'attacco deve essere ancora fattibile dopo tale orario. Due mesi possono essere lunghi perché una violazione della CA non venga rilevata.

In definitiva è un compromesso che RFC 7469 ("Estensione Pinning chiave pubblica per HTTP") spiega nella sezione su Considerazioni sulla sicurezza :

4.1. Maximum max-age

[...] There is a security trade-off in that low maximum values provide a narrow window of protection for users who visit the Known Pinned Host only infrequently, while high maximum values might result in a UA's inability to successfully perform Pin Validation for a Known Pinned Host if the UA's noted Pins and the host's true Pins diverge.

(UA = User Agent, ovvero il tuo browser)

La RFC raccomanda una scadenza intorno ai 60 giorni (che è esattamente il tempo che Github usa):

There is probably no ideal upper limit to the max-age directive that would satisfy all use cases. However, a value on the order of 60 days (5,184,000 seconds) may be considered a balance between the two competing security concerns.

    
risposta data 17.11.2016 - 14:35
fonte

Leggi altre domande sui tag