Vraag:
HSTS-status van domeinen controleren
Marek Puchalski
2014-10-03 14:22:47 UTC
view on stackexchange narkive permalink

De Google Chrome-browser biedt een snelle manier om de HSTS-status (HTTP Strict Transport Security) van een domein te controleren via de pagina chrome: // net-internals / # hsts (sectie Query-domein ).

Het zoekresultaat ziet er bijv. uit als volgt:

  Gevonden: domain: owasp.orgstatic_upgrade_mode: UNKNOWNstatic_sts_include_subdomains: static_pkp_include_subdomains: static_sts_observed: static_pkp_observed: static_spki_hashes: dynamic_upgrade_mode: STRICTdynamic_sts_include_subdomains: falsedynamic_pkp_include_subdomains: falsedynamic_sts_observed: 1409173001.03746dynamic_pkp_observed: 1409173001.03746dynamic_spki_hashes:  

Wat betekenen deze regels? Is de HSTS-modus ingeschakeld of niet? Wat is het verschil tussen de vermeldingen dynamic_ en static_ van het resultaat?

Drie antwoorden:
Arran Schlosberg
2015-09-01 12:02:34 UTC
view on stackexchange narkive permalink

Als een van de static_upgrade_mode: of de dynamic_upgrade_mode: regels zijn ingesteld op STRICT , dan is HSTS ingeschakeld.

Dynamisch

Dynamisch betekent dat de browser is geïnstrueerd om HSTS in te schakelen door middel van een HTTP-antwoordheader (aangeboden via TLS), vergelijkbaar met het volgende:

Strict-Transport-Security: max-age = 157680000; includeSubDomains;

Dit is kwetsbaar voor een aanval waarbij de allereerste keer dat de browser het domein opvraagt ​​met http: // (niet https: // ) een tegenstander de communicatie onderschept.

Statisch

Om deze zwakte te overwinnen hebben we de statische -modus die hardcodering mogelijk maakt HSTS neemt rechtstreeks op in de bron van de browser. De header is gewijzigd om de bedoeling van de beheerder aan te geven:

Strict-Transport-Security: max-age = 157680000; includeSubDomains; preload

Let op de opname van preload aan het einde. Het domein wordt vervolgens ter beoordeling ingediend. Als het wordt goedgekeurd, wordt het toegevoegd aan de Chromium-lijst die ook is opgenomen in de Firefox-, Safari- en IE 11 + Edge-lijsten.

P4cK3tHuNt3R
2014-10-03 17:02:10 UTC
view on stackexchange narkive permalink

Wanneer u een zoekopdracht uitvoert naar chrome: // net-internals / # hsts , worden alleen de opgeslagen HSTS-sites doorzocht die u met chrome hebt bezocht. deel static_ en dynamic_ toont de methoden om STS voor de communicatie in te schakelen.

Het resultaat laat zien dat er geen statische methoden zijn gedefinieerd, alleen dynamische methoden zijn er. pop en sts in het resultaat staan ​​respectievelijk voor public-key-pinning en strikte transportbeveiliging . Dus dynamic_pkp_observed en dynamic_sts_obeserved is de tijd voor STS die is ingeschakeld voor de doamin. De STS is toegestaan ​​op dat domein, maar niet voor subdomeinen.

Het zou beter zijn om "curl" te gebruiken om de steken te controleren.
Bijvoorbeeld:
curl -siL "owasp.org" | grep "Strict" (-L om door te verwijzen naar https)

Als het domein is geconfigureerd om STS te gebruiken, ziet u in de serverreactie de header Strict-Transport-Security: max-age = waarde
Daarom grijp ik naar Strict .

Bedankt voor het antwoord tot nu toe. Ik voel me op de een of andere manier nog steeds dom (alsof iedereen het onderwerp zou begrijpen behalve ik), maar ik zal toch de vragen stellen: wat is het verschil tussen dynamisch en statisch? Wat betekenen de upgrademodi (ONBEKEND, STRIKT, OPPORTUNISTISCH) opnieuw? Ik heb geprobeerd met curl te spelen in mijn cygwin. Ik kon het HSTS-headerattribuut nooit zien in een domein dat ik heb geprobeerd (google, gmail, owasp, ...). Wat doe ik verkeerd? BTW. Zijn er goede boeken over dit onderwerp?
Statisch betekent dat de server altijd via hsts communiceert, de client hoeft uw browser niet te configureren om hsts voor die pagina te gebruiken. Aan de andere kant betekent dynamisch dat de gebruiker die pagina via hsts opvraagt. Statisch onbekend betekent dat de server zelf geen ondersteuning biedt voor hsts. Strikt betekent dat de server hsts gebruikt voor alle communicatie.
Dus waarom zie ik * niet * de `Strict-Transport-Security: max-age = value` wanneer ik die curl hierboven uitvoer?Als HSTS kritiek is, dan zou ik verwachten dat OWASP het implementeert, toch?In plaats daarvan lijk ik te kijken naar een Apache / Nginx 301-omleiding naar het HTTPS-domein.Is de header `Strict-Transport-Security` niet langer hoe het werkt 2 jaar na dit antwoord?
Moet curl -si "h t t p s: //owasp.org" | zijngrep "Strict", omdat de header alleen op https wordt verzonden. Het verzoek naar http moet een omleiding naar https bevatten. curl -siL owasp.org | grep "Strict" zal werken, omdat L curl deze omleiding laat volgen.
elig
2018-10-22 02:08:29 UTC
view on stackexchange narkive permalink

statisch betekent browser (in dit geval Chrome) vooraf geladen HSTS-sites
dynamisch betekent sites die 'onderweg' zijn opgepikt "of handmatig

pkp staat voor Public Key Pinning, dat is sinds Chrome 69 verouderd
spki_hashes staat voor SubjectPublicKeyInfo-hashes

_include_subdomains betekent of subdomeinen in het verzoek
_observed is de UNIX-tijd waarop de browser het verzoek voor het eerst observeerde
_expiry is de UNIX-tijd waarop de browser het verzoek vergeet



Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...