ROAN Internetbureau Gorzow Wielkopolski LOGO - Websites SEO Hosting
Papier

HSTS wat het is en hoe je het moet aanpakken

HSTS (HTTP Strict Transport Security) is een norm die wordt beschreven in RFC 6797 die de mogelijkheid introduceert om “Strict-Transport-Security” in de header te specificeren, die, wanneer geïnterpreteerd door de browser, ervoor zal zorgen dat alle verzoeken naar een bepaald domein worden omgeleid naar HTTPS, en als dit niet mogelijk is (geen ondersteuning voor HTTPs), moet de browser een fout weergeven en een dergelijk verzoek blokkeren, waarbij de gebruiker wordt geïnformeerd over de fout en een mogelijke poging tot het lanceren van een MITM-aanval. De browser onthoudt de HSTS-instellingen alleen over een versleutelde verbinding, de header in een niet-versleutelde verbinding wordt genegeerd. Als zodanig is er geen manier om Strict Security uit te schakelen over een onversleutelde verbinding, dus je moet voorzichtig zijn met het maken van deze instellingen, zie hsts traps hieronder. Het is ook belangrijk te onthouden dat alle nieuwe gebruikers die voor het eerst op onze site komen, geen STS-record voor ons domein hebben en dan kwetsbaar zijn voor aanvallen. Deze beperking kan echter worden omzeild door een verzoek om vooraf te laden, dat zal worden beschreven.

Waarom en wanneer HSTS gebruiken

HSTS moet in de eerste plaats worden gebruikt door domeinen die volledige gegevensversleuteling gebruiken; bijvoorbeeld websites van banken en financiële instellingen of online winkels, waar we niet willen dat onze gegevens in verkeerde handen vallen of dat onze klant die op het vliegveld een WI-FI-verbinding gebruikt, het slachtoffer wordt van MITM (man-in-the-middle attack), waarbij DNS-vergiftiging plaatsvindt en een nietsvermoedend persoon op een website terechtkomt die identiek is aan de onze, probeert in te loggen en iemand anders het wachtwoord overneemt. Als iemand niet naar de adresbalk kijkt, waar geen hangslotje te zien is – zal hij niet weten dat de gegeven website gewoon een typische phishing is (valse originele website die wordt gebruikt om wachtwoorden of andere gegevens af te persen). Hier komt HSTS om de hoek kijken: als je een website ‘example.co.uk’ wilt bezoeken die HSTS-informatie bevat, wordt de omleiding naar het onversleutelde protocol automatisch geweigerd en krijgt de gebruiker een waarschuwing, waardoor het probleem dat de gebruiker niet in de adresbalk kijkt om er zeker van te zijn dat daar een hangslotje zit, wordt geëlimineerd.

Wanneer HSTS NIET gebruiken en waarom?

Gebruik HSTS niet als uw domein ook niet-versleutelde elementen bevat, zoals afbeeldingen, en alleen versleuteling gebruikt bij het inloggen of aankopen doen. Aangezien dit de belasting van de server kan verhogen door het toegenomen volume van gecodeerd verkeer. Er zij echter op gewezen dat sites die slechts gedeeltelijk geëncrypteerd zijn, hun gebruikers blootstellen aan het risico van aanvallen.

Dit kan ook een probleem zijn als u geen betrouwbare bron van certificaten hebt, bijvoorbeeld als u nu een certificaat hebt gekocht maar niet van plan bent het te verlengen omdat het te duur is. Dit kan worden omzeild door een gratis certificaat te gebruiken op de StartSSL-website.

Hoe integreer ik HSTS?

HSTS wordt ingeschakeld door de clientbrowser een header met de juiste inhoud te sturen, bijv:
Strict-Transport-Security: max-age=31536000; includeSubDomains
Strikt-Transport-Veiligheid: – Vertelt de browser dat we Strict Transport Security, of HSTS, gebruiken,
max-age=31536000 – in dit geval jaar, waarde in seconden, d.w.z. hoe lang de browser ons domein als HSTS moet behandelen en eraan moet denken SSL/TLS te gebruiken om er verbinding mee te maken,
includeSubDomains – betekent dat ook de subdomeinen moeten worden versleuteld; hier moet je voorzichtig zijn als je een typisch subdomein hebt voor een blog waarop wordpress is geïnstalleerd. Het slaat geen geldige gegevens op en gebruikt daarom geen encryptie, dus als ons certificaat dit domein niet ondersteunt, moeten we deze richtlijn niet toevoegen en eindigen met max-age only. Want als iemand onze website example.pl bezoekt, van waaruit hij naar onze blog blog.example.pl gaat, zal hij vanwege het feit dat we subdomeinen hebben, gedwongen worden om een versleutelde verbinding te gebruiken en ons certificaat is alleen geldig op example.pl. Op dat moment kan de persoon geen toegang meer krijgen tot blog.przyklad.co.uk.
In het kort: voeg het volgende toe in het .htaccess bestand van onze site:
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"

Om de HSTS-gegevens voor het volgende jaar op onze site op te slaan en subdomeinen op te nemen, is – in het geval van de Apache-server – een ingeschakelde header-module nodig die op onze server wordt ondersteund.
Tot slot moeten we een 301 redirect instellen naar de https versie zoals aanbevolen door Google, voor het geval een link verkeerd wijst of iemand het verkeerde adres heeft ingevoerd toen hij de eerste keer inlogde en nog geen STS entry had. Dit kan worden gedaan met een eenvoudige vermelding:

Deze manoeuvre zal alle bezoekers van de onbeveiligde link naar de beveiligde link verplaatsen. Dit vereist ondersteuning voor de herschrijfmodule in de apache-server.
Daarna testen we de instellingen:
curl -s -D- | grep "Strict-Transport-Security:"
Indien het commando een STS header teruggeeft, hebben we de server juist geconfigureerd.

HSTS valkuilen en wat te vermijden

Merk op dat HSTS in de client browser registreert dat onze site over HTTPS moet lopen en als dat niet het geval is, wordt verondersteld een fout weer te geven en zal het niet toestaan dat een uitzondering wordt toegevoegd. Een bijkomend probleem kan zich voordoen wanneer het certificaat verloopt en wij het niet vernieuwen of gewoon willen annuleren; dit kan de toegang van de klant tot onze website beperken, vooral wanneer hij bijvoorbeeld een maand geleden op onze website was en wij de STS-header hebben gedeactiveerd (waarbij max-age=0 pas een week geleden is ingesteld) Zo iemand zal geen toegang tot onze website kunnen krijgen. Als wij van plan zijn het certificaat te annuleren of als wij een gratis certificaat gebruiken en dit wordt gecompromitteerd, zullen wij een nieuw certificaat moeten maken, waarschijnlijk een betaald certificaat, om geen oude klanten te verliezen die gewoon geen toegang meer hebben tot onze website. U moet er ook zeker van zijn dat u een geldig certificaat hebt en dat uw server SSL-verbindingen tot zes maanden vooruit zal ondersteunen.
Het is ook belangrijk te onthouden dat de gebruiker alleen beschermd is wanneer hij of zij voor het eerst toegang krijgt tot onze site, aangezien de browser alleen dan in staat is de header te downloaden, met als uitzondering wanneer onze site een preload-item heeft.

HSTS Voorbelasting

Dit houdt in dat er een preload-tag aan de HSTS-header wordt toegevoegd en dat de pagina vervolgens wordt voorgelegd aan de relevante browserontwikkelaars, bijvoorbeeld voor chrome en firefox kunt u de hsts preload die zal verbinden met onze server zal de headers controleren en als de header een preload entry heeft en includeSubDomains dat is bijvoorbeeld: Strict-Transport-Security: max-age=31536000; includeSubDomains; preload dan zal onze site worden toegevoegd aan de lijst van voorgeladen sites. Dit zorgt ervoor dat elke browser ter wereld die deze lijst gebruikt, weet dat de verbinding met onze site uitsluitend via HTTPS moet verlopen, en dat hierop geen uitzondering kan worden gemaakt in geval van een fout, zoals een certificaat. Een voorbeeld van een controle zou zijn om te proberen verbinding te maken met het domein . Moet deze pagina een HSTS-fout weergeven en niet toestaan dat een uitzondering wordt toegevoegd. In het geval van IE versie 11 geeft de browser alleen een waarschuwing over een ongeldig certificaat, maar staat u toe een uitzondering toe te voegen, wat betekent dat hij HSTS nog niet ondersteunt, wat naar verwachting zal veranderen met de release van een nieuwe versie die al Microsoft Edge heet.

Ik krijg een HSTS foutmelding hoe kan ik dat omzeilen?

Dat moet je niet doen. Gewoonlijk betekent de HSTS-fout dat iemand zich probeert voor te doen als de website die u wilt bezoeken. Als u er echter zeker van bent dat dit een fout is die wordt veroorzaakt door bijvoorbeeld een verkeerde instelling op uw testsite of iets dergelijks, dan kunt u de HSTS-vermelding verwijderen door:

In Firefox:

Sluit alle tabbladen van dit domein, en zoek in de geschiedenis (ctrl + h) naar dit domein, klik met de rechtermuisknop en geef verwijderen alle site.

Typ in de adresbalk: “about:permissions” en daar geven we het adres van de site in en in de rechterbovenhoek geven we “forget page”. Start de browser opnieuw op en ga naar de website zonder hsts.

In Chroom:

Typ in de adresbalk “chrome://net-internals/#hsts” en typ vervolgens het domein dat je wilt verwijderen in het cirkelveld: “Delete domain”. En we proberen opnieuw toegang te krijgen tot de site.

Door gebruik te maken van de website, zonder uw browserinstellingen te wijzigen, stemt u in met het privacybeleid en de opslag van cookies die een efficiënte werking van onze website mogelijk maken.