Come vedere quando un dominio HSTS sta per scadere?

5

Abbiamo un cliente che afferma che il suo sito (che ospitiamo) è in HSTS, ma non possiamo confermarlo. Gli ho detto di aprire quella pagina di Chrome chrome://net-internals/#hsts e di eseguire una query per il suo dominio, e in effetti ottiene un record con un dynamic_sts_observed di 1466233582 che è il 2016-06-18 alle 07:06:22 UTC. In questo momento, il cliente si è trasferito da noi ed è probabile che abbia già avuto l'HSTS.

Suppongo che non ci sia un vero motivo per chiarire che "per il web", ma almeno, c'è un modo per vedere quando l'HSTS dovrebbe scadere?

Posso solo sperare che non sia nell'anno 2021 ...

    
posta Adrian Föder 23.06.2016 - 15:25
fonte

3 risposte

6

HSTS i dati sono conservati da ciascun browser.

Quando viene effettuata una richiesta a un dominio che implementa HSTS, le intestazioni di risposta conterranno un'intestazione Strict-Transport-Security che rileva l'età massima del record e facoltativamente altri valori relativi a HSTS.

L'età massima dà effettivamente inizio al momento in cui viene ricevuta la risposta.

Questo è illustrato, sebbene non esplicitamente enunciato, dalla RFC 6797 sezione 11.2 (non normativa ), che afferma:

The "constant value into the future" approach can be accomplished by constantly sending the same max-age value to UAs.

e

The "fixed point in time" approach can be accomplished by sending max-age values that represent the remaining time until the desired expiry time. This would require the HSTS Host to send a newly calculated max-age value in each HTTP response.

Quindi, se un dominio ha utilizzato HSTS in passato, in una situazione in cui la HSTS max-age non è stata modificata in precedenza, il primo momento in cui nessun client può contare sui vecchi dati HSTS è il tempo del ultima richiesta che ha restituito i dati HSTS, più il tempo indicato in tali dati HSTS in quel momento. Se l'età massima dell'HSTS è stata abbassata, questi periodi di tempo formano finestre scorrevoli; ciò che finisce per ultimo è il primo momento in cui nessun cliente può contare sui vecchi dati HSTS. Questa è una conseguenza di uno dei requisiti della sezione 8.1.1 (normativa):

A Known HSTS Host is "expired" if its cache entry has an expiry date in the past. The UA MUST evict all expired Known HSTS Hosts from its cache if, at any time, an expired Known HSTS Host exists in the cache.

In ogni richiesta, se la risposta viene ricevuta su un trasporto sicuro e include dati HSTS, allora come indicato nella sezione 8.1, il client UA deve aggiornare il proprio elenco di host HSTS noti (normativo):

If /.../ the UA MUST [either]: /.../

  • Update the UA's cached information for the Known HSTS Host if either or both of the max-age and includeSubDomains header field value tokens are conveying information different than that already maintained by the UA.

    The max-age value is essentially a "time to live" value relative to the reception time of the STS header field.

Di conseguenza, attivare HSTS è di fatto una promessa di continuare a offrire HTTPS valido per non meno della durata del parametro HSTS di età massima, contando dal momento della risposta.

Come ulteriore conseguenza, non esiste una data e un'ora di "scadenza" fisse per i dati HSTS a meno che il server usi l'approccio "punto fisso nel tempo" descritto non-normatively nella RFC.

    
risposta data 23.06.2016 - 18:50
fonte
2

HSTS viene impostato mediante l'utilizzo di un HEADER, ovvero Strict-Transport-Security: max-age=31536000 dove l'età massima definisce per quanto tempo il il browser ricorderà l'impostazione HSTS, dall'ultima volta che ha visto per la prima volta questo HEADER. (almeno così capisco). Quando Max-Age è attivo, il browser rifare l'HSTS solo se l'intestazione è di nuovo presente nella richiesta.

La pratica comune è di mettere il Max-Age a 1 anno (in secondi). È considerata una buona pratica per qualsiasi pagina web TLS includere questa intestazione con un valore Max-age lungo, in modo che i client sappiano che il sito dovrebbe essere TLS e lo ricorderanno persino, quindi gli attacchi MitM hanno meno vettori di attacco aperti.

Modifica:  Poiché l'elenco dei siti Web HTST è una specifica del browser, dove è impostato, quando il set e come scoprire la scadenza è specifico del browser. ed è senza ulteriori dettagli fuori portata a causa di informazioni mancanti (ad es. cosa broser). elencarli tutti sarebbe un po 'prolisso e versione sepcifica in molti casi.

    
risposta data 23.06.2016 - 15:51
fonte
0

Se stai cercando la data / ora di scadenza di HSTS o HPKP per un sito web su un'istanza di Chrome specifica, ho avuto lo stesso bisogno qualche mese fa e ho trovato Pin Patrol estensione per essere utile per questo. ( Il codice sorgente è qui ; è LGPL-2.1.)

(Nell'interesse della completa divulgazione, non ho alcuna affiliazione con gli autori di Pin Patrol.)

    
risposta data 05.09.2017 - 05:47
fonte

Leggi altre domande sui tag