Ben jij wel wie je zegt dat je bent?

Aan SSL-certificaten, in de volksmond beter bekend als ‘de beveiligde verbinding’, zijn al vele artikelen gewijd op het internet. Toch lijkt er nog steeds onduidelijkheid te bestaan over wat je er nu precies mee beveiligd. En dat is dus niet je website! Maar wat dan wel?

 

Introductie

De meeste mensen kennen het begrip SSL-certificaat van de beveiligde verbinding tussen een webbrowser en een website. Maar dat is niet de enige toepassing waar het SSL-certificaat voor wordt gebruikt. Andere varianten van het SSL-certificaat kunnen bijvoorbeeld gebruikt worden om digitale handtekeningen mee te zetten of om mee in te loggen.

Er is een nuance die ik wil aanbrengen. Een SSL-certificaat gebruik je om een SSL-verbinding op te zetten. Echter, de mate van identiteit van een certificaat is iets anders en geen noodzaak voor het opzetten van een dergelijke beveiligde verbinding zelf. “Hoe bedoel je?”, zul je nu denken. Een SSL-certificaat geeft details over de eigenaar van de website. Een beveiligde SSL-verbinding daarentegen zorgt voor een versleutelde data-uitwisseling tussen twee systemen op het internet. Die ‘systemen’ zijn bijvoorbeeld browsers, websites of servers.

Schema - Hoe werkt een SSL verbinding

Dankzij die versleuteling kunnen derden niet ‘meelezen’ en zien waar de data-uitwisseling over gaat. Dat laatste, die versleuteling van data, is een puur wiskundige aangelegenheid. Dat lukt ook prima zonder de aanschaf van een SSL-certificaat. Het is echter wel zo dat als jouw systeem praat met een ander systeem op het internet, de ‘overkant’ een bepaalde mate van identificeerbaarheid moet hebben, afhankelijk van de situatie of toepassing. Daarover later meer.

 

Versleutelen eenvoudig gemaakt

Nog even over het versleutelen. SSL-verbindingen zijn gebaseerd op een cryptologische wiskundige fundering die behoorlijk complex is. Er is echter een simpele manier om te onthouden hoe de versleuteling werkt. Een vereenvoudigde voorstelling van de SSL-verbinding is de ‘boekmethode’. Het werkt als volgt. Jij spreekt met iemand af welk boek je als encodeersleutel gebruikt zonder dat iemand anders dat weet. Neem even als voorbeeld het bericht:

Waar spreken we morgen af?’

Vervolgens ga je op basis van de volgende ‘spelregel’ je bericht versleutelen. Sla het boek open en zoek op het woord ‘waar’. Stel dat dit staat op pagina 15, regel 8, woord 3. Dan ziet de versleutelde variant van het eerste woord er uit als: 15-8-3. De versleutelde variant van bovenstaand bericht gaat er dan als volgt uitzien:

15-8-3  9-14-12 2-7-28  28-13-2  13-26-11

Met behulp van het boek en de combinatie van pagina, regel en woord, is dit bericht uitstekend terug te vertalen, ofwel te decoderen. Maar als je niet weet hoe de code is opgebouwd of niet weet welk boek als encodeersleutel is gebruikt, kun je hier geen touw aan vastknopen.

NB: Vergeet even Google Books, machine learning, (taal)patroon herkenning en brute force computing, want dat is out of scope hier. Een boekmethode is, door zijn relatieve mathematische eenvoud, door hackers en cryptologen redelijk vlot te kraken. Maar niet door je collega of docent in de klas 😉.

Het voorgaande voorbeeld illustreert wat er binnen een beveiligde verbinding op basis van SSL-certificaten gebeurt. Alleen wordt de geheim overeengekomen boekafspraak ter plekke wiskundig bepaald en is de daadwerkelijke versleuteling veel zwaarder en moeilijker te kraken.

 

Zwaarte van identiteit

OK, hoe zit het nu met die identiteit en wat maakt dat uit als de verbinding toch wel veilig is? We weten inmiddels dat we zonder dat we de andere partij kennen het verkeer prima geheim kunnen houden. Waarom is het dan toch belangrijk te weten wie die ander is?

Een voorbeeld waar iedereen zich wel in zal herkennen. Je doet online bankzaken en je weet niet zeker of je wel echt op de site van je bank zit. Communiceert je browser echt met jouw bank, of met iemand die zich voordoet als jouw bank? In zo’n geval is het dus heel belangrijk dat je de identiteit kunt checken. Deze identiteit ligt vast in het certificaat; zo weet je dat je daadwerkelijk praat met de partij die ze zeggen dat ze zijn.

Deze identiteit kun je controleren door op het slotje voor het webadres te klikken. Alle gangbare browsers, zoals Firefox, Internet Explorer, Safari en Google Chrome, tonen je dan de inhoud van het certificaat. Hoe het zit met de zwaarte van de controles licht ik later toe. Hoe zwaar de informatie in het certificaat weegt, hangt af van het type dat men gebruikt. Dit kan zijn anoniem, domein en uitgebreide controles.

CAP5 SSL certificaat voorbeeldenAnoniem en geen validatie – Uitgebreide KvK validatie en bedrijfsgegevens – Domein validatie.

Echter is zo’n SSL-certificaat niet altijd is belangrijk. Bij CAP5 wisselen wij vaak informatie uit met afgeschermde systemen. Het verkeer loopt weliswaar over het publieke internet, maar door die SSL afscherming kan niemand dit lezen. Omdat dit onze eigen systemen zijn is de identiteit van de overzijde al vastgesteld en hoeft dat niet nog eens met een certificaat aangegeven te worden. Deze certificaten importeren wij handmatig in de browser en dat werkt uitstekend en is net zo veilig.

CAP5 Self Signed SSL certificaat voor intern gebruik

De uitgever (Issuer) is hier ook de Certificate Authority van CAP5

Dit zijn certificaten die binnen CAP5 uitgegeven worden en niet wereldwijd bekend zijn. Zo is de zogenaamde root ‘CA’ van CAP5 niet opgegeven als bekend bij Mozilla, Microsoft, Google en andere internetbrowserproducenten. Jouw browser zal deze certificaten dan ook niet zomaar vertrouwen zonder dat je ze zelf importeert.

We hadden al vastgesteld dat dataversleuteling losstaat van de identiteit die in SSL-certificaten wordt aangegeven. Dus ondanks dat de identiteit minder waarde heeft in het certificaat is de versleuteling prima veilig en daardoor in het voorgaande voorbeeld effectief en uitstekend bruikbaar.

 

Welk type certificaat gebruiken

Om het praktisch te houden beperk ik de uitleg weer tot het gebruik van SSL-certificaten bij websites. Dus: welk certificaat kan je nu het beste inzetten op je website of webshop? Qua beveiliging – de versleuteling dus – zagen we al dat het eigenlijk niet zoveel uitmaakt. Maar de identiteit is wel van belang. Nu is het zo dat in de praktijk websitebezoekers lang niet altijd de inhoud controleren van een certificaat. Want zeg nou zelf, doe jij het wel?

Tip: Ik heb mezelf aangeleerd om bij websites van bijvoorbeeld de bank, PayPal, online wachtwoord tools of andere websites waar belangrijke data verwerkt worden, altijd even naar de url te kijken. Ook voer ik steekproefsgewijs een controle van het certificaat uit.

Het spectrum van SSL-certificaten voor websites loopt voor wat betreft de identiteit van anoniem, via domeineigendom tot uitgebreide registratiecontroles bij de uitgebreide Kamer van Koophandel.

 

Anonieme certificaten

Er zijn tegenwoordig anonieme certificaten op de markt, uitgebracht door Lets Encrypt. Zij brengen certificaten uit die, behoudens kosten voor implementatie en bewaking voor degene die ze inzet, kosteloos afgenomen kunnen worden.

Deze naamloze certificaten zijn anoniem, maar worden wel vertrouwd door alle grote ‘browsermerken’. Een dergelijk certificaat is voor de meeste lichtgewicht websites dan ook voldoende. Google is met zo’n certificaat in ieder geval tevreden en geeft je dan ook geen strafpunten op de vindbaarheid van je website.

Met lichtgewicht websites doel ik overigens op websites waar niet meer dan wat persoonsgegevens over de lijn gaan in een contactformulier.

Hoewel dit certificaat veilig is, zou ik bij elke website die iets meer data verzameld dan via het eenvoudige contactformulier, aanraden betere certificaten te gebruiken. Denk hierbij bijvoorbeeld aan sites waarop je je kunt inschrijven voor cursussen, waar je festivaltickets kunt bestellen of bedrijfsregistraties voor evenementen. Overal waar mogelijk meer dan een naam en e-mailadres over de lijn gaat, raad ik aan een beter certificaat te kiezen.

Meer dan naam en email betekend al snel adres en of betaal gegevens, en hackers kunnen immers ook die anonieme certificaten aanvragen. Voorts laat jou browser bij een website opgezet door hackers ook gewoon dat mooie groene slotje zien.

 

Domein validatie

Besluit je te gaan voor een beter certificaat, dan ben je er nog niet. Want welke kies je dan? Er zijn certificaten verkrijgbaar waarbij je aan moet tonen eigenaar van het domeinnaam te zijn. Maar er zijn ook certificaten die je alleen kunt krijgen als je aan kunt tonen een geldige registratie bij de Kamer van Koophandel te bezitten.

Heeft een site een certificaat met domeinvalidatie, weet je in ieder geval zeker dat de domeinnaam is gecontroleerd. Dit zie je op het certificaat terug als “domain control validated”, en dit verhoogt de betrouwbaarheid in enige mate. Je weet dan zeker dat degene aan wie het certificaat is uitgegeven de eigenaar is van het domein, dan wel de controle heeft over het domein.

Natuurlijk is deze domeinvalidatie geen 100% waterdichte garantie dat je met een betrouwbare partij te maken hebt. Maar het is wel een extra controle van de identiteit. Daarentegen: wie weet dat en hoeveel bezoekers controleren dat daadwerkelijk?

Zo blijft de verantwoordelijkheid voor wat je naar welke website stuurt, nog steeds bij de websitebezoeker liggen. En als website-eigenaar is je verantwoordelijkheid zo transparant mogelijk met die data om te gaan, conform de Algemene verordening gegevensbescherming (AVG) die in mei 2018 van kracht is geworden.

 

Extended validation

De enige manier om zichtbaar veiliger te zijn is het SSL-certificaat inzetten met uitgebreide validatie. Dan zie je naast het slotje namelijk ook je bedrijfsnaam weergegeven. Dat is goed zichtbaar en geeft je de zekerheid dat er een bij de Kamer van Koophandel geregistreerd bedrijf achter de website zit. Dit certificaat is wel meteen een stuk duurder.

SSL EV Certificaat adresbalk voorbeeld

Hoe hackbaar ben je?

Nog even terug naar het certificaat met domeinvalidatie. In theorie kunnen hackers een domeinnaam natuurlijk ook kapen of er een registeren die lijkt op wat je gewend bent. Ze bouwen dan een website na, in de hoop dat jij in al je onschuld je creditcardgegevens of andere informatie invult.

Apple phising website

Ter illustratie, de url in bovenstaande afbeelding kwam ik recent op terecht tijdens onderzoek naar een phishing-email die ik, zogenaamd namens Apple, ontving. De website is aldus zonder goed opletten niet van echt te onderscheiden. Kijk echter maar eens naar de domeinnaam in de adresbalk.

Een websitedomein als www.blokker.nl is, mits gevalideerd, bekend en daarmee redelijk betrouwbaar. Een hacker kan in plaats daarvan wel bijvoorbeeld www.blokker.nl.abc.nl registreren. En zoals het voorbeeld van Apple laat zien moet je toch echt goed kijken. In de drukte van alledag zie je niet altijd dat het hier om phishing gaat. Dus als je niet oplet, kan de theorie nog zo mooi zijn, maar heeft al die bescherming feitelijk niet zo heel veel zin.

 

Extended validation – vervolg

Maar dan is daar een EV-certificaat. Het enige wat hackers namelijk echt niet zomaar kunnen nabootsen is de identiteit die geborgd is in een SSL-certificaat met Extended Validation. Wil je als hacker daarmee aan de haal, dan moet je ofwel een bedrijfsregistratie vervalsen of veranderen bij de Kamer van Koophandel, ofwel toegang hebben (gehad) hebben tot de computer van de eigenaar van het certificaat en zorgen dat het nagemaakte en handmatig geïmporteerde certificaat daarmee door de browser herkend wordt. Maar als je zover bent, heb je een probleem van een andere orde, namelijk een gehackte computer.

Voor een EV-certificaat wordt uitgegeven, wordt naast de domeineigendomcontrole ook de inschrijving bij de Kamer van Koophandel gecontroleerd. Ter verificatie van de bedrijfsidentiteit wordt het telefoonnummer gebeld dat geregistreerd staat bij de Kamer van Koophandel en gevraagd naar de in de registratie vermelde persoon. In Nederland, en zover controleerbaar in de gehele EU, is een KvK-nummer ofwel een registratie bij een Chamber of Commerce, ook zelf te controleren. Maar hoe verder je van de westerse wereld vandaan raakt, hoe meer je aan je eigen inzicht bent overgeleverd omdat politiek en corruptie dichter bij elkaar komen en voornoemde controles steeds minder betrouwbaar worden. Ik wil daar allerminst mee zeggen dat ik, buiten nieuws en actualiteiten om, veel kan zeggen over online betrouwbaarheid van niet-westerse landen. Maar als je je creditcardgegevens wilt delen, lijkt het me raadzaam alle twijfel te vermijden.

 

Conclusie

Wat moet je nu doen? Gebruik altijd een beveiligde verbinding. Dat is goed voor je vindbaarheid op Google, je voldoet hiermee aan de privacywet en men kan je wachtwoorden niet onderscheppen.

Met betrekking tot de aantoonbaarheid van eigendom dan wel identiteit kan je de volgende richtlijn aanhouden. Of je nu websitebezoeker bent of website-eigenaar, in beide gevallen geldt: hoe zwaarder de privacygevoeligheid van de data die je verstuurt of ontvangt, hoe belangrijker de vastgestelde identiteit in een ssl-certificaat wordt. Hoewel voor wat betreft beveiliging een ondergrens door de wet gedicteerd wordt, kun je natuurlijk altijd zelf besluiten hoe sjiek en gedegen jij met de veiligheid van je website om wilt gaan.

 

Afterthought

In de praktijk zal bijna niemand, behalve tech geeks en vakidioten, vaak de inhoud van een SSL-certificaat bekijken. Daarmee komt het er dus eigenlijk op neer dat tussen anonieme en EV-certificaten niet veel nuttigs zit. De verwachting is dan ook dat op termijn de keuze in SSL-certificaten beperkt wordt tussen de anonieme versie en de Extended Validation-certificaten.

Heb je hier een ander beeld bij? Ik ben benieuwd naar je feedback, dus laat gerust een bericht achter onder dit artikel.

Be safe!

Ontvang blog notificaties!

Op de hoogte blijven van het laatste nieuws? Meld je aan voor blog updates!

We hebben je e-mailadres ontvangen. Jij ontvangt als eerste onze blogposts! :-)