We zien het overal, een groen (of geel) hangslotje naast de URL van een door jou bezochte website. Sinds Google HTTPS laat meewegen in de rangschikking van Google-zoekresultaten, is iedereen HTTPS-gek geworden. Leuk en aardig zo’n protocol, maar waar staat het eigenlijk voor en hoe veilig is het?
HTTPS staat voor ‘Hyper Text Transport Protocol Secure’ en is dus de ‘secure’ versie van HTTP, het door vrijwel iedereen gebruikte connectie protocol om de World Wide Web (WWW) te navigeren. Het verschil zit hem hoofdzakelijk in wel of geen beveiliging van de verzonden data. Vooral banken en webshops maken gebruik van HTTPS om account- en betaalgegevens van de klant te beveiligen.
Hoe werkt het nu precies?
Indien een website gebruik maakt van HTTPS, dan gebruikt het “Transport Layer Security“ (TLS) om de transport van de ingevulde of verzonden informatie te versleutelen. TLS wordt gebruikt in een breed scala van toepassingen. Bekende voorbeelden zijn webverkeer (HTTPS), e-mailverkeer (IMAP en SMTP voor STARTTLS) en bepaalde typen virtual private network (VPN). Een dergelijke versleuteling dient ervoor te zorgen dat de informatie veilig is en niet in de handen kan vallen van een hacker.
HTTP(S) en TLS?
Even ter verduidelijking, HTTPS is dus een HTTP-verbinding in een beveiligde TLS (vorige versie heette SSL) tunnel waarin data veilig heen en weer gestuurd kan worden tussen bijv. een website en een server. Geen TLS-tunnel, betekent geen encryptie en dus geen beveiliging. Om gebruik te kunnen maken van TLS, dien je een certificaat aan te vragen bij een ‘certificate authority’ (CA). Zo’n certificaat dient hoofdzakelijk als (digitaal) identificatiemiddel en wordt verstrekt met twee bijbehorende sleutels; een ‘Private Key’ en een ‘Public Key’. De reden waarom het sleutels genoemd worden, is omdat ze ook daadwerkelijk zo functioneren. De ‘Public Key’ wordt gebruikt om de data te versleutelen en de ‘Private Key’ maakt na ontvangst de data weer toegankelijk. Drie belangrijke aspecten dus: identificatie, versleuteling en ontsleuteling.
Waarom heb ik het nodig?
Bezit jij een website waar gebruikers gegevens kunnen verstrekken of accounts kunnen aanmaken, dan kan van jou verlangd worden (door de wet bescherming persoonsgegevens‘, hierna ‘Wbp’) dat je bepaalde technische en organisatorische beveiligingsmaatregelen treft. Welke maatregelen getroffen moeten worden, hangt af van de gevoeligheid van de data die verzonden wordt.
“Art. 13 Wbp – de verantwoordelijke legt passende technische en organisatorische maatregelen ten uitvoer om persoonsgegevens te beveiligen tegen verlies of enige vorm van onrechtmatige verwerking. Deze maatregelen garanderen, rekening houdend met de stand van de techniek en de kosten van de tenuitvoerlegging, een passend beveiligingsniveau gelet op de risico’s die de verwerking en de aard van te beschermen gegevens met zich meebrengen…”
Bestaat er een verplichting om gebruik te maken van TLS? Niet als zodanig, het is eerder een algemene oproep om technische maatregelen te treffen. De organisatie zal in eerste instantie zelf op basis van een risicoanalyse en classificatieschema moeten vaststellen of dit gewenst is. Gezien de toegankelijkheid en het grootschalige aanbod van TLS, zijn er echter weinig (goede) argumenten om het niet te doen.
Beschermt HTTPS jouw privacy?
Ja, het beschermt jouw privacy door middel van encryptie tijdens een transfer van data. Je bent daarmee enigszins beveiligd tegen afluisterpraktijken van de overheid en ‘Man in The Middle’ (MiMT) aanvallen. Het probleem is alleen dat het versleutelen van de data slechts de helft van het verhaal is. De andere helft bestaat uit het ook daadwerkelijk landen op de pagina die je wilt bezoeken. Normaal gesproken controleert een HTTPS-verbinding de identiteit van de server door middel van een certificaat, alleen is dit systeem niet waterdicht. Indien gewenst kunnen kwaadwillende hackers aan een dergelijk certificaat komen (DigiNotar) of er zelf een maken.
HTTPS heeft daarnaast nog een probleem. Als de bezoeker bij zijn eerste bezoek niet zelf HTTPS:// intypt, dan wordt hij in de meeste gevallen (95%) ‘by default’ gewoon naar de HTTP site gestuurd. Wil je het de hacker echt moeilijk maken, dan zal je een HTTP Strict Transport Security functionaliteit moeten toevoegen. Dit betekent simpel gezegd dat de default van je servers op HTTPS gezet wordt en niet op de onbeveiligde HTTP. Op die manier is jouw site en zijn jouw bezoekers beter beschermd tegen ‘connection hijacking’ aanvallen, zoals een ‘Man in The Middle’ aanval.
Wat moeten we doen?
Voor elke nieuwe beveiligingsmaatregel, ontstaan er vrij snel tien manieren om deze te omzeilen. Het is dus van essentieel belang om je beveiligingsmaatregelen altijd up-2-date te houden en regelmatig een risicoanalyse uit te voeren. Een goed voorbeeld is de Panama Papers. De servers van advocatenkantoor Mossack Fonseca draaiden op een nieuwe TLS versie, alleen bleken die tevens ook de verouderde SSL v2 te ondersteunen, welke kwetsbaar bleek voor een DROWN aanval.
Uit een recent Amerikaans onderzoek (8 december 2016) is bovendien gebleken dat 60% van de 1.200 deelnemende advocatenkantoren sindsdien nog steeds geen maatregelen heeft genomen en dus nog steeds kwetsbaar is voor een DROWN aanval. Wij hebben in Europa strengere privacywetgeving dan in Amerika, dus het is maar de vraag of Nederlandse advocatenkantoren weg kunnen komen met zo’n lakse houding.