HTTP non convertito in HTTPS con HSTS

7

Sto osservando il comportamento di HSTS su entrambi i siti Web HTTP e HTTPS e le relative risorse incorporate HTTP e HTTPS. La mia comprensione è che se un'intestazione di risposta HSTS è stata passata dal server in una risposta HTTPS, o se il nome del sito è presente nell'elenco di precarico HSTS, tutte le risorse di tale richiesta verranno inviate su HTTPS.

Tuttavia, mentre ispeziono alcuni siti tramite Firefox Web Inspector, noto alcune discrepanze. Ad esempio, qui su cnn.com (un sito Web HTTP), alcune delle richieste dei sottodomini di doubleclick.net vanno su HTTP, anche se è presente nell'elenco di precarico HSTS su qui (con include_subdomains: true).

Soloperverificareseildominioradicestavainviandol'intestazioneHSTS,honavigatoallinkad.doubleclick.netnellabarradegliindirizzidovesonostatoindirizzatoalsitoprincipalediDoubleClickhttps://www.doubleclickbygoogle.comQuivieneinviatal'intestazioneHSTS:

Tuttavia,noncisonoeffettisullerichiestedidoubleclicksucnn.comquandoricarico:

Un'altracosainteressanteèchequandoprovoalocalizzareiltagsorgentedellarichiestasulDOMandandoallaschedaInspector,nonesisteuntagdiquestotipoconhttp://ad.doubleclick.net(conalcuniquerystring).L'intestazione"Causa" e "Tipo" nell'ispettore sembrano indicare il suo tipo di tracciatore di un pixel.

Qualcuno ha idea di cosa potrebbe succedere qui?

    
posta QPTR 19.10.2016 - 10:55
fonte

2 risposte

9

Per citare il codice sorgente che hai citato:

354  // Other Google-related domains that must use an acceptable certificate
355  // iff using SSL.
     ...
361  { "name": "doubleclick.net", "include_subdomains": true, "pins": "google" },

Questo significa che il certificato è bloccato iff il sito è pubblicato su https. Ciò non significa che il sito debba essere servito su https. Questo è diverso per altri domini in cui è impostato l'attributo force-https :

264  { "name": "accounts.google.com", "include_subdomains": true, "mode": "force-https", "pins": "google" },

EDIT: basato sul codice sorgente di Chromium (funzione TransportSecurityState::GetStaticDomainState in net/http/transport_security_state.cc ) Proverò a spiegare le informazioni che possono essere visualizzate in chrome://net-internals/#hsts e in che modo si riferisce alle informazioni statiche da net/http/transport_security_state_static.json utilizzando l'esempio doubleclick.net :

static_sts_domain: doubleclick.net
static_upgrade_mode: OPPORTUNISTIC

OPPORTUNISTIC è la modalità predefinita ( STSState::MODE_DEFAULT ). Ciò significa che non impone HTTPS. La modalità predefinita viene utilizzata poiché non è stata specificata alcuna impostazione force-https esplicita nella configurazione.

static_sts_include_subdomains: true

Poiché non impone https, questa impostazione non ha importanza. Ma il valore potrebbe essere causato dalla configurazione di include_subdomains mostrata sopra anche se questa linea di configurazione non include force-https .

static_sts_observed: 1476162000

Questo è il tempo di compilazione dell'elenco HSTS / HPKP statico, vale a dire 2016/09/04 in questo caso.

static_pkp_domain: doubleclick.net
static_pkp_include_subdomains: true
static_pkp_observed: 1476162000
static_spki_hashes: sha256/IPMbDAjLVSGntGO3WP53X/zilCVndez5YJ2+vJvhJsA=,sha256/7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=,sha256/h6801m+z8v3zbgkRHpq6L29Esgfzhj89C1SyUCOQmqU=

Queste sono le informazioni sul pinning. Questi hanno una relazione diretta con le impostazioni mostrate sopra (cioè include_subdomains e quali pin dovrebbero essere usati).

    
risposta data 19.10.2016 - 12:47
fonte
3

Gli HST si applicano solo per il dominio che è stato impostato.

Quello che stai cercando è la direttiva CSP di richieste non aggiornate all'aggiornamento.

Content-Security-Policy: upgrade-insecure-requests

Nell'elenco precarico HSTS, doubleclick.net NON è elencato per HSTS per il blocco delle chiavi.

Maggiori dettagli su link

    
risposta data 19.10.2016 - 12:11
fonte

Leggi altre domande sui tag