Inleiding tot HSTS
HSTS staat voor HTTP Strict-Transport-Security, wat een webbeveiligingsbeleidsmechanisme is. HSTS werd voor het eerst opgenomen in de ThoughtWorks Technology Radar in 2015, en in het nieuwste nummer van de Technology Radar in 2016 ging het direct van de "Proef"-fase naar de "Adopteer"-fase, wat betekent dat ThoughtWorks sterk pleit voor de actieve adoptie van deze beveiligingsmaatregel door de industrie, en ThoughtWorks heeft deze toegepast op zijn eigen projecten. De kern van HSTS is een HTTP-responsheader. Het is het dat de browser laat weten dat de huidige domeinnaam alleen via HTTPS toegankelijk is voor de volgende periode, en als de browser ontdekt dat de huidige verbinding niet veilig is, zal hij de volgende toegangsverzoeken van de gebruiker krachtig weigeren.
Een website met een HSTS-beleid zorgt ervoor dat de browser altijd verbonden is met de HTTPS-versleutelde versie van de website, waardoor gebruikers het handmatig versleutelde adres in de URL-adresbalk hoeven in te voeren en het risico op sessiekaping afneemt.
HTTPS (SSL en TLS) zorgt ervoor dat gebruikers en websites veilig communiceren, waardoor het voor aanvallers moeilijk wordt om te onderscheppen, te wijzigen en zich voor te doen. Wanneer een gebruikerVoer handmatig een domeinnaam of http:// link in, van de websiteHet eerste verzoek is onversleuteld, gebruikmakend van gewone HTTP. De meest beveiligde websites sturen direct een doorleiding terug die de gebruiker naar een https-verbinding verwijst, echter,Een man-in-the-middle-aanvaller kan aanvallen om het eerste HTTP-verzoek te onderscheppen en zo het volgende antwoord van de gebruiker te controleren。
HSTS-principes
HSTS beheert voornamelijk browseroperaties door responsheaders van de server te verzenden: Wanneer een client een verzoek doet via HTTPS, bevat de server het veld Strict-Transport-Security in de HTTP-responsheader die hij teruggeeft. Nadat de browser deze informatie heeft ontvangen,Elke aanvraag aan de site binnen een bepaalde periode wordt gestart in HTTPSzonder door de server die via HTTP wordt geïnitieerd naar HTTPS te worden doorgestuurd.
HSTS responsheaderformaat
Parameterbeschrijving:
max-age (in seconden): Gebruikt om de browser te vertellen dat de website binnen een bepaalde tijd via het HTTPS-protocol moet worden benaderd. Dat wil zeggen, voor het HTTP-adres van deze website moet de browser dit lokaal vervangen door HTTPS voordat het verzoek wordt verzonden. includeSubDomains (optioneel): Als deze parameter wordt gespecificeerd, geeft het aan dat alle subdomeinen van de site ook via het HTTPS-protocol toegankelijk moeten zijn. preload: Een lijst van domeinnamen die HTTPS gebruiken en die in de browser is ingebouwd.
HSTS Preload List
Hoewel HSTS een goede oplossing is voor HTTPS-degradatie-aanvallen, geldt HSTS voor HSTSHet eerste HTTP-verzoek voordat het van kracht wordt, nog steedsHet is niet te vermijdenGekaapt。 Om dit probleem op te lossen hebben browserfabrikanten de HSTS Preload List-oplossing voorgesteld. (weggelaten)
IIS-configuratie
Bezoek vóór de configuratie de onderstaande website:
Om dit te implementeren in IIS7+, voeg je simpelweg de CustomHeader-eis voor HSTS toe in web.config, die als volgt is geconfigureerd:
Na de wijziging bezoekt u opnieuw de website, zoals hieronder getoond:
Nginx-configuratie
Als de website nginx reverse proxy gebruikt, kun je nginx ook direct configureren om dit te implementeren, als volgt:
Chrome View-regels
Om de huidige HSTS-regels te zien, gebruik Google Chrome Chrome om te typenchrome://net-internals/#hstsStap in de auto, zoals te zien is in de onderstaande figuur:
referentie
HTTP Strikte Transportbeveiliging:De hyperlink-login is zichtbaar.
(Einde)
|