1/3e overheidssites voldoet niet aan HTTPS eisen, ontbreekt volledig op 56 adressen

Vanaf 1 Juli 2023 is het toepassen van HTTPS verplicht voor de overheid. Dat betekent dat communicatie met alle websites en webapplicaties versleuteld moet gebeuren. Hierdoor worden bezoekers van deze applicaties beschermd tegen een aantal bekende kwetsbaarheden zoals afluisteren van het internetverkeer.

Trends en onduidelijkheden

Met de verplichting van HTTPS op websites en web-applicaties komt er nog geen einde aan onversleutelde gegevensuitwisseling. Dat heeft twee redenen.

Ten eerste is het volgens de aanwijzing nog steeds toegestaan om onversleutelde HTTP diensten aan te bieden (punt 2b), zolang een bezoek wordt geupgrade naar HTTPS.

Deze uitzondering heeft een beperkte houdbaarheid. Dit komt doordat 93.34% van de gebruikte browsers in Nederland standaard als eerste proberen te verbinden met HTTPS. Dat zijn chrome, safari, samsung en edge. Dat gebeurd sinds medio 2021. Twee minder populaire browsers, Firefox en Opera (5.32% marktaandeel), bieden het als optie: dat gebruikt dus niemand. Firefox doet dit dan wel weer standaard bij Safe Browsing. Maar: mocht er niet gereageerd worden op HTTPS, dan wordt nog teruggevallen op HTTP. Daarover straks meer.

Direct met HTTPS verbinden is dus de standaard, en dat is goed nieuws. Punt 2b is er dus voor de achterblijvers. Die groep wordt gelukkig met de dag kleiner. Dat komt omdat versleuteling tijdsafhankelijk is: wat vandaag veilig is, is dat morgen niet meer. Zo kan je met een computer uit 2011 geen bankzaken meer regelen. Hierdoor staat er een borging rondom veilige communcatie: browsers en computers moeten bij de tijd zijn.

Het doorsturen van gebruikers gaat hierdoor een stille en natuurlijke dood sterven, waardoor de onversleutelde alternatieven niet meer nodig zijn en punt 2b kan worden geschrapt. Maar dat is niet zo voor organisaties! Die kunnen nog steeds onversleuteld HTTP toepassen. Althans…

En dit is het tweede punt: interpretatie. Als je de aanwijzing scherp leest valt onversleutelde dienstverlening zoals ftp en e-mail buiten de boot. Hierdoor is het nog mogelijk om onversleuteld e-mail te verwerken of bestanden onversleuteld uit te wisselen. Men kan zelfs kiezen om HTTPS aan te zetten, maar toch te blijven werken via HTTP. Dan lijkt in eerste oogopslag alles in orde, maar dat is het niet. Dat is niet meetbaar.

Is er eigenlijk wel een goed argument om niet versleuteld te werken? In alle jaren Basisbeveiliging zijn wij zijn pas 1 legitieme casus tegengekomen. Ironisch genoeg is die uitzondering onderdeel van het HTTPS-versleutelingssysteem. Daarom hanteren we een uitzondering voor het ontbreken van HTTPS op subdomeinen als “pki”, “ocsp” en “crl” (en varianten).

In conclusie: De stap om HTTPS (deels) te verplichten is er een in de goede richting. Het is ook logisch om niet ineens alles te verplichten wat op de Pas toe of Leg uit lijst staat, maar dit stapje voor stapje te doen.

Deze eerste verplichting beschermt internetters en zorgt ervoor dat mensen met de tijd mee gaan wat betreft veilige browsers en computers. Voor organisaties lijkt er nog veel ruimte om onversleutelde diensten te blijven gebruiken.

Altijd via HTTPS? Helaas nog niet altijd…

Veel sites voldoen dus niet, waaronder ook hoofdsites van ministeries zoals Economische Zaken of Landbouw, Natuur en Voedselkwaliteit. Hoe komt dat? Dat komt omdat browser terugvallen naar onversleutelde sites, en daar moet tegen worden beschermd. Deze bescherming wordt deels geboden met een instelling genaamd HSTS (punt 2c). Deze instelling ontbreekt op die sites nog.

Maar sommige sites zoals securityheaders.com zeggen dat het wel in orde is. Wat is het verschil? Dit komt omdat deze test-tool standaardaard kijkt naar de site waarnaar iemand doorgestuurd wordt. Wanneer je doorsturen niet toestaat, dan scoort te site onvoldoende. Als je het wel toestaat dan wordt de site rijksoverheid.nl gemeten, en niet minezk.nl. Dus wat is nou juist?

Het antwoord is dat HSTS ook bij doorsturen nodig is. Dat staat ook bij de veelgestelde vragen op de site van de digitale overheid.

Wat HSTS oplost is dat het eerste bezoek (en dat is het onveilige bezoek) pas opnieuw wordt gedaan als de site een jaar niet bezocht is. Zonder HSTS bij doorsturen krijgt een aanvaller de kans om bij ieder bezoek aan deze website de inhoud te manipuleren, dus niet alleen het eerste bezoek.

Bij het bezoeken van de site van het ministerie worden namelijk eigenlijk drie verzoeken gestuurd. Die zie je hieronder in de tabel. Het eerste verzoek is dus onversleuteld en kwetsbaar, de verzoeken daarna niet meer. Bij bezoek 2 ontbreekt de HSTS instelling in het antwoord, en daarom is het niet goed.

VerzoekOntvangen antwoord
1: door gebruiker
http://minezk.nl
“Ik stuur je door naar de veilige https variant”:
HTTP/1.0 302 Moved Temporarily
Location: https://minezk.nl/
Connection: Keep-Alive
Content-Length: 0
2: automatisch doorgestuurd
https://minezk.nl
“Ik stuur je door naar een andere website”:
HTTP/1.0 302 Moved Temporarily
Location: https://www.rijksoverheid.nl/ministeries/ministerie-van-economische-zaken-en-klimaat
Connection: Keep-Alive
Content-Length: 0
3: automatisch doorgestuurd
https://rijksoverheid.nl
“Hier is de website”:
HTTP/1.1 200
Server: nginx
Date: Mon, 03 Jul 2023 07:02:10 GMT
Content-Type: text/html;charset=UTF-8
[…]
Strict-Transport-Security: max-age=31622400; includeSubDomains
Deze trace is na te bootsen met “wget -q -S -O – http://minezk.nl:80 2>&1”

De beperking van HSTS is dat je eerst de site moet bezoeken over een versleutelde verbinding voordat de instelling geldig is. Als je de site dus voor de eerste keer bezoekt is er dus nog altijd een risico!

Een lapmiddel hiervoor is HSTS preloading. Dit is een lijst van websites die wordt ingebakken in moderne browsers: alle sites op de lijst kan je alleen via HTTPS bezoeken. De standaard-lijst is nu 13 megabyte groot en bevat op het eerste oog geen Nederlandse rijks-sites.

Preloading is op dit moment een van de twee aanpakken die in alle scenario’s iets afdwingt. Je ziet dat de Amerikaanse overheid een aantal van hun sites verplicht op deze lijst zet. Dat is nodig totdat browsers uitsluitend via HTTPS communiceren en niet terugvallen naar de onversleutelde site. Deze “safe default” instelling laat nog wel even opzich wachten.

De andere aanpak is het uitschakelen van de onversleutelde verbinding. Daarvoor is het nog te vroeg. Browsers van voor 2021 zijn nog veel in gebruik, waardoor er bij eindgebruikers verwarring ontstaat over het niet kunnen bereiken van een website.

De Cijfers

Onjuiste toepassing van HTTPS op hoofddomeinen

Wanneer HTTPS wordt toegepast moet dat ook aan een aantal eisen (2a) voldoen. Deze eisen worden gepubliceerd door het NCSC, hier.

Op dit moment zijn er nog erg veel overheidssites die nog niet aan deze eisen voldoen. Het gebrek hieraan is dermate groot dat meer dan 33% van alle hoofdsites van overheden niet voldoen. Het is vandaag (29 juni) nog bijna gebruikelijk dat men niet voldoet. Wij gebruiken hiervoor de metingen van internet.nl, die de eisen van het NCSC implementeert.

Enkele voorbeelden van sites die niet voldoen:

  1. minez.nl / minezk.nl (HSTS)
  2. openbaarministerie.nl (HSTS)
  3. uwv.nl (HSTS + Redirect)
  4. minlnv.nl (HSTS)
  5. kb.nl (Redirect, Cipher Order, Key Exchange Parameters)
  6. tno.nl (Redirect)

De landelijke overheid, gemeenten en provinicies houden zich nog niet aan de wet. Om dit in perspectief te zetten, de zorg doet het dramatisch veel slechter en voor hen geldt deze wet niet.

OverheidslaagVolgens aanwijzingWijkt afTotaal
Landelijke overheid850515 (38%)1365
Gemeenten296118 (29%)414
Provincies85 (39%)13
TOTAAL1154638 (35.60%)1792
Bonus: Ziekenhuizen/GGD162836 (83.76%)998

Per ministerie zijn er ook duidelijke verschillen te zien in de kwaliteit van toepassing van HTTPS. De getallen wijken heel iets af met de “centrale overheidskaart” omdat deze niet 100% overlappen en er soms een domein op meerdere kaarten staan.

De getallen per ministerie:

MinisterieVolgens AanwijzingAfwijkend
Infrastructuur en Waterstaat99166 (62.64%)
Landbouw, Natuur en Voedselkwaliteit7468 (47.89%)
Onderwijs Cultuur en Wetenschap6148 (44.04%)
Justitie11178 (41.27%)
Economische Zaken9565 (40.63%)
Financiën2810 (26.32%)
Binnenlandse Zaken14944 (22.80%)
Volksgezondheid Welzijn en Sport18752 (21.76%)
Buitenlandse Zaken4912 (19.67%)
Sociale Zaken en Werkgelegenheid478 (14.55%)
Algemene Zaken183 (14.29%)
Defensie101 (9.09%)
TOTAAL928555 (37.42%)
Het gaat hier om 1483 domeinen. Dit verschilt net iets met het websiteregister rijksoverheid waar 1363 unieke domeinen in staan. Dit komt zowel door dubbelingen (sommige sites op meer ministeries) maar ook dat we misschien net een site meer of minder hebben. Ook daar zie je dezelfde resultaten wbt toepassing van HTTPS volgens de internet.nl metingen.

Ontbrekende versleuteling op 56 adressen

Er zijn 56 adressen waarop HTTPS volledig ontbreekt. Dit is een niet significant aandeel van alle overheidssites. In de meeste gevallen gaat het dan ook nog om testpagina’s, placeholders, vergeten projecten of andere weinig spannende doeleinden. Er zijn maar twee sites die echt informatief zijn: geluidregisterspoor en een afspraken site.

We hebben de uitzondering op ‘pki’/’ocsp’/’crl’ subdomeinen niet meegenomen. Dat zijn er vele tientallen.

Hier is de lijst met 56 adressen:

afspraak.gemeentesluis.nl, afspraakmaken.wijchen.nl, autodiscover-redirect.vng.nl, autodiscover.saip.nl, autodiscover.sn-forward.nl, beheerenonderhoud.heerlen.nl, bicsdrupalacc.bics.nl, brinkman.kb.nl, bva-acc.rws.nl, chat.rijkscloud.nl, corsa.veldhoven.nl, diensten.westmaasenwaal.nl, ftp.acc.fmpbsn.nl, ftp.bereiknu.nl, ftp.blauwegolfverbindend.nl, ftp.gipinfo.nl, ftp.lopik.nl, ftp.mobilityhappiness.nl, ftp.nunietzwanger.nl, ftp.svbabc.nl, gbatmv.rvo.nl, geluidregisterspoor.nl, irods.orfeus-eu.org, lyncdiscover.houten.nl, mail.aanmelder.nl, mail.bofeb.nl, mail.ibki.nl, mail.veldhoven.nl, meet.houten.nl, merkportaal.dnb.nl, netuit.kb.nl, nta7516.gemeentebest.nl, plannen.asten.nl, pm-bounces.ndw.nu, pm-bounces.venlo.nl, portal117.rijkscloud.nl, preproductie.heeze-leende.nl, research.kb.nl, rijkspascp.extranet.dictu.nl, ro.brunssum.nl, ruimtelijkeplannen.venlo.nl, signing.login-acc.rvr.org, signing.login.rvr.org, sites-u.rdw.nl, solidariteit.laarbeek.nl, stadspas.weert.nl, stijlgids.cibg.nl, styleguide.cibg.nl, svbabc.nl, web-ux01.hex.tno.nl, wion.weert.nl, wortel176.provincie-utrecht.nl, www.acc.fmpbsn.nl, www.geluidregisterspoor.nl, www.svbabc.nl, www.vroonermeer-noord.alkmaar.nl

Tot slot

Omdat HTTPS een nieuw soort verplichting is, is het nog niet helemaal duidelijk hoe dit wordt gehandhaafd. Onze verwachting is dat het snel duidelijk wordt hoe en wat.

Binnenkort is op basisbeveiliging.nl te zien welke (hoofd-)domeinen voldoen aan de TLS richtlijnen van het NCSC. Bij deze meting wordt onder andere verwacht dat er een doorverwijzing van http naar HTTPS wordt gebruikt, dat HTTPS aanwezig is op hetzelfde adres als waar HTTP en dat HSTS is ingericht.

Als je zelf al wil meten dan kan dat op internet.nl.

Bijlagen

Dit artikel is gebaseerd op de metingen van 29 juni. Er is een hermeting gebeurd op 2 juli. Het verschil is te klein om het artikel erop aan te passen.

Toepassing van de eisen bij de landelijke overheid. Oranje is onvoldoende, groen is goed en bij grijs is er nog geen meetwaarde.

Zo ziet er er bij gemeenten uit. Bij oranje wordt e.e.a. niet goed gedaan. Bij groen is het goed en bij grijs is er nog geen meetwaarde.