Verstuur data veilig met digitale certificaten

Mail verzenden, draadloos internetten, bestanden versturen en informatie uitwisselen via je webbrowser… allemaal acties die privacygevoelige data kunnen bevatten. Om er zeker van te zijn dat deze niet onderschept worden, vertelt PCM je in dit artikel over digitale certificaten.

Voor communicatie als e-mail en bestandsoverdracht via FTP zou je privacygevoelige gegevens eventueel eerst lokaal kunnen versleutelen, maar los van de vraag hoe je de (decryptie)sleutel op een veilige manier bij de bedoelde ontvanger krijgt, werkt dat niet bepaald praktisch. En wat doe je dan met de informatie die je op allerlei websites, zoals van sociale media, invult?

Digitale certificaten – ook wel digitale ID’s genoemd – bieden een oplossing voor dergelijke problemen en ze worden dan ook volop ingezet in allerlei vormen van communicatie: e-mail, FTP, HTTP en bij VPN, uitvoerbare programmacode en dataopslag. 

Tekst: Toon van Daele

Hoe werken digitale certificaten?

© PXimport

Kort door de bocht is een digitaal certificaat weinig meer dan een document dat een instantie (zoals een persoon of bedrijf) koppelt aan een specifieke publieke sleutel. Om dat te begrijpen moet je eerst iets weten over symmetrische en asymmetrische encryptie. Symmetrische encryptie werkt met een simpele rotatie.

Hierbij wordt elke letter van de boodschap vervangen door een vooraf afgesproken verschuiving of rotatie. Bij een rotatie van 5 bijvoorbeeld wordt de letter A vervangen door de letter F, de letter B door de G, de letter Z door de E, …; telkens vijf letters verder in het alfabet dus. 

Echt veilig kun je zo’n versleuteling niet noemen: het volstaat de encryptiesleutel te kennen om de boodschap te kunnen decrypteren. Anders gezegd: de decryptiesleutel [Dn(x)=(x-5) mod 26] kan makkelijk worden afgeleid uit de encryptiesleutel [En(x)=(x+5) mod 26].

Asymmetrische encryptie

Een veiligere oplossing is daarom wat men noemt asymmetrische encryptie, waarbij de ene sleutel niet (zomaar) uit de andere sleutel kan worden afgeleid. Complexe wiskundige algoritmen, mede op basis van priemgetallen, liggen daaraan ten grondslag. In elk geval zorgt deze eigenschap ervoor dat je één van beide sleutels zonder veiligheidsrisico openbaar mag maken. Die sleutel noemen we dan ook de publieke sleutel. 

De andere, de private of persoonlijke sleutel houd je angstvallig geheim. Een erkende certificeringsinstantie oftewel certificatie-autoriteit (CA), zoals GlobalSign, Thawte en VeriSign, hoort dan garanties te bieden dat zo’n publieke sleutel werkelijk hoort bij de instantie die het eigenaarschap claimt.

Misbruik van certificaten via man-in-the-middle

Het doel van digitale certificaten, zoals de SSL-certificaten voor webservers, is om het webverkeer veiliger te laten verlopen (want versleuteld). In beginsel juichen we het gebruik van zulke certificaten alleen maar toe. Toch betekent dit niet dat je nu altijd compleet veilig bent. 

© PXimport

Hackers zijn er namelijk al vaker in geslaagd in te breken bij certificatie-autoriteiten waarna ze de bijhorende private sleutels konden buitmaken. Die kunnen ze vervolgens gebruiken om zelf certificaten voor domeinen uit te geven of om malafide programmacode mee te ondertekenen. Verder zijn er ook CA’s die hun zaakjes niet helemaal op orde hebben en bijvoorbeeld te laks zijn in hun controles, of een te zwakke versleuteling gebruiken. 

Een man-in-the-middle-aanval (MITM) kan het systeem tot slot ook ondermijnen. Dat kan bijvoorbeeld met behulp van malware die zich naar je browser toe voordoet als een beveiligde webserver, en omgekeerd, weliswaar nadat de malware een vals rootcertificaat heeft geïnstalleerd. 

Man-in-the-middle-check met Fiddler

Installeer Fiddler en start die op. Surf vervolgens naar (bijvoorbeeld) https://www.google.com en houd het Fiddler-venster in de gaten: je krijgt hier alleen Tunnel to www.google.com:443 te zien. Dat gaan we dus veranderen: open het menu Options en kies Telerik Fiddler Options. Open het tabblad HTTPS en plaats een vinkje bij Decrypt HTTPS traffic. Op de vraag of je het rootcertificaat dat Fiddler nu genereert door Windows wil laten vertrouwen antwoord je met ja. Wanneer je nu naar een HTTPS-site surft, zie je wél het bijhorende webverkeer, onversleuteld!

Eén van de belangrijkste toepassingen voor digitale certificaten is browserverkeer. Browsers kunnen namelijk met behulp van het encryptie-protocol TLS (Transport Layer Security) de communicatie tussen webserver en client beveiligen. TLS zorgt ervoor dat een website via HTTPS op poort 443 (in plaats van het onversleutelde HTTP via poort 80) bereikbaar wordt. 

In je browser herken je zo’n connectie dan aan het hangslotje in het adresveld. Wil je je eigen website met HTTPS beveiligen, dan heb je een digitaal certificaat nodig. Dat wordt in dit geval een SSL-certificaat genoemd; Secure Sockets Layer, zeg maar de voorloper van TLS. Voor zo’n SSL-certificaat kun je bij tal van commerciële aanbieders terecht, met prijzen vanaf circa 10 euro per jaar. 

Wanneer je zo’n certificaat aanvraagt voor je eigen domein, dan moet je bij zo’n certificatie-autoriteit uiteraard wel kunnen aantonen dat jij de rechtmatige bezitter van dat domein bent. Afhankelijk van het gekozen type SSL-certificaat moet je daarvoor verschillende validatieniveaus doorlopen.

Gratis SSL-certificaat aanvragen

Er zijn ook CA’s die gratis SSL-certificaten verstrekken, waaronder StartSSL en Let’s Encrypt. Die tweede is er gekomen op initiatief van verschillende grote internetspelers, waaronder Cisco, Facebook en Mozilla. 

Op dit moment maakt immers nog een heel kleine minderheid van de webservers gebruik van HTTPS, en als dat gebruikt wordt, dan vaak voor slechts een deel van de site, zoals inlogpagina’s of winkelwagentjes. Via Let’s Encrypt hoopt men het gebruik van HTTPS sneller van de grond te krijgen. Ook langs andere wegen wordt geprobeerd HTTPS vlugger door te voeren. Zo zouden HTTPS-sites een betere beoordeling door zoekmachine Google, al is nog totaal onduidelijk hoe meetbaar dat is.

© PXimport

Let’s Encrypt is niet alleen gratis, ook het hele proces van het aanvragen tot het installeren en configureren van een digitaal certificaat is sterk vereenvoudigd. Het aanvragen van zo’n certificaat gaat geheel zonder menselijke tussenkomst aan de kant van de certificatie-autoriteit.

Allereerst installeer je een client die via het speciale ACME-protocol (Automated Certificate Management Environment) bij de servers van Let’s Encrypt een nieuw certificaat aanvraagt. Je kunt uit verschillende clients kiezen. De server stuurt daarop een opdracht door die moet bewijzen dat jij inderdaad de eigenaar van het betreffende domein bent. Dat kan een DNS-record zijn dat je voor je domein moet aanmaken of een bestand dat je via een url binnen je domein bereikbaar moet maken. 

Wanneer dat is geverifieerd, kun je het certificaat ophalen en verder installeren, configureren en (standaard om de drie maanden) vernieuwen. Met name voor Apache2 verloopt ook de configuratie nagenoeg geheel geautomatiseerd.

Types SSL-certificaten

De gratis certificaten die je via Let’s Encrypt kunt krijgen zijn van het DV-type, DV staat voor Domain Validation (ook wel DomainSSL-certificaat genoemd). Het is de eenvoudigste en goedkoopste manier om aan een certificaat te komen. Immers, de administratieve rompslomp blijft beperkt tot een snelle controle van het eigenaarschap van het domein waarvoor een certificaat wordt aangevraagd. 

Bij een EV-certificaat (Extended Validation) zal de CA de identiteit van de aanvrager uitvoeriger controleren en ook grondiger nagaan of hij inderdaad beheerder van het betreffende domein is. Wat betreft de eigenlijke encryptie zijn er echter geen verschillen tussen beide types. Zo’n EV-certificaat wordt vooral aangevraagd door (plichtsbewuste) eigenaren van webwinkels. 

De meeste browsers honoreren zo’n EV-certificaat met een extra groen balkje voor de adresregel: vergelijk bijvoorbeeld www.bol.com (EV) met www.kabeltje.com (DV). Klik je bijvoorbeeld in Chrome op het groene balkje van bol.com en kies je vervolgens Details / View Certificate, dan verneem je dat het inderdaad om een EV-certificaat gaat.

© PXimport

Welke rootcertificaat zijn geïnstalleerd?

In theorie kan iedereen een certificatie-autoriteit opzetten en (ook aan derden) certificaten verstrekken. De vraag is in hoeverre zo’n onbekende CA wel bonafide is en browsers tonen dan ook terecht een foutmelding over beveiligingsproblemen wanneer een eindgebruiker een verbinding met zo’n HTTPS-site wil opzetten. 

SSL-certificaten worden namelijk verleend via een rootcertificaat van een CA en dit certificaat moet op de computer van de eindgebruiker geïnstalleerd zijn wil de browser de certificatie-autoriteit erkennen en het afgeleverde certificaat vertrouwen. De rootcertificaten van de bekendste CA’s zijn daarom standaard voorgeïnstalleerd in je besturingssysteem en/of browser.

Rootcertificaten in Windows, Firefox, Chrome

In Windows kun je via het commando certmgr.msc nagaan welke rootcertificaten zijn geïnstalleerd. In Chrome doe je dat via Instellingen / Geavanceerde instellingen weergeven / Certificaten beheren, en in Firefox via Opties / Geavanceerd / Certificaten / Certificaten bekijken. En voor wie wil experimenteren: via www.tiny.cc/browsertrust lees je hoe je in verschillende browsers en platformen rootcertificaten kunt verwijderen of laten wantrouwen. 

Wil je op een snelle en eenvoudige manier nagaan hoe je browser reageert op een dubieus SSL-certificaat, zet dan de systeemklok van je computer even een paar tientallen jaren terug in de tijd. Surf vervolgens naar een site als Facebook, die via HSTS (HTTP Strict Transport Security) uitsluitend HTTPS-verbindingen accepteert. 

© PXimport

Afhankelijk van je browser krijg je nu andere reacties te zien: Internet Explorer en Edge gaan vrolijk verder, Firefox heeft het over een foute configuratie aan de kant van Facebook en weigert een connectie. Chrome is iets slimmer en merkt dat de systeemtijd incorrect is waardoor de geldigheidsdatum van het certificaat niet meer klopt.

Er zijn verschillende manieren om een e-mailcertificaat te verkrijgen. Om te beginnen kun je daarvoor bij zowat alle certificatie-autoriteiten aankloppen. In de meeste gevallen is dat niet gratis, maar bij GlobalSign kun je een proefcertificaat aanvragen dat dertig dagen geldig blijft (www.globalsign.com/en/personalsign/trial). Dit PersonalSign Digital ID kun je dan gebruiken om te e-mailen, maar ook om Microsoft Office-documenten mee te ondertekenen. Bij Comodo blijft zo’n gratis certificaat zelfs (minstens) een jaar geldig. 

Er zijn ook andere oplossingen, zoals Gpg4win waarmee je je mailverkeer versleutelt op basis van een stevige end-to-end-encryptie met OpenPGP 2048 bit. Hierbij dien je dan wel zelf je digitale certificaat te creëren, bijvoorbeeld met behulp van de meegeleverde certificaatsbeheerder Kleopatra. De ontvanger van zo’n versleuteld bericht voegt dan jouw certificaat toe aan de lijst met vertrouwde certificaten (ook dat kan vanuit Kleopatra, via Import Certificates en Certify Certificate).

Comodo-mailcertificaat aanvragen

© PXimport

We leggen kort uit hoe je aan de slag gaat met een gratis digitaal certificaat van Comodo. Bij aanmelding dien je een e-mailadres op te geven. Houd er rekening mee dat het e-mailadres dat je hier invult meteen het e-mailadres is dat je wilt gebruiken voor het versturen van versleutelde en ondertekende berichten. Dit is tegelijk ook de enige ‘garantie’ die Comodo met dit gratis certificaat biedt: het wordt alleen maar gekoppeld aan dit adres, andere controles zijn dus niet ingebouwd.

Je dient tevens een Revocation Password in te vullen: dat is nodig als je je certificaat ooit wilt intrekken. Volg de stappen om uiteindelijk een bevestigingsmail te ontvangen. Volg de instructies en als het goed is, verschijnt even later de melding ‘Successful’: het digitale certificaat met je private sleutel is geïnstalleerd.

Certificaat backuppen

Je doet er goed aan dit certificaat mét je private sleutel zo snel mogelijk te back-uppen. Dat kan in Windows via het commando certmgr.msc. Hier open je de categorie Persoonlijk / Certificaten. Klik het geselecteerde COMODO-certificaat met de rechtermuisknop aan en kies Alle taken / Exporteren.

© PXimport

Druk op Volgende, selecteer de optie Ja, de persoonlijke sleutel exporteren, druk nogmaals op Volgende, laat de optie Personal Information Exchange – PKCS nr. 12 (.PFX) geselecteerd en klik op Volgende. Geef een wachtwoord op en bewaar het bestand op een veilige locatie. Loopt er naderhand iets fout dan kun je dat langs dezelfde weg ook weer importeren.

E-mails ondertekenen en versleutelen

Alles is nu klaar om je e-mails te ondertekenen en ook te versleutelen. We doen dat aan de hand van Microsoft Outlook (2016), maar het kan ook met de meeste andere e-mailclients. 

Start Outlook op, open het menu Bestand en kies Opties. Ga naar de categorie Vertrouwenscentrum en klik op Instellingen voor het Vertrouwenscentrum. Vervolgens open je de categorie E-mailbeveiliging en druk je op de knop Instellingen. Bij Handtekeningcertificaat klik je op Kiezen en bevestig je dat je het COMODO-certificaat wilt gebruiken. Idem dito voor het Versleutelingscertificaat (als dat niet automatisch is gebeurd). Geef een naam aan je beveiligingsinstellingen en rond af met OK (3x).

Om een mail digitaal te ondertekenen, klik je op de knop Nieuwe mail en open je op het lint het tabblad Opties. In het deel getiteld Machtiging tref je onder meer de optie Ondertekenen aan. Selecteer deze optie en verstuur een testbericht naar jezelf. Bij het ontvangen bericht staat een rood zegelicoontje: klikt de ontvanger dit aan dan krijgt hij meer informatie en weet hij dat er onderweg niet met het bericht werd geknoeid en dat het van jouw e-mailadres afkomstig is.

© PXimport

Het is ook mogelijk berichten te versleutelen. Daarvoor heb je wel de publieke sleutel van de beoogde ontvanger nodig. Dat hoeft niet lastig te zijn, mits je van die persoon al eens een ondertekende mail ontvangen hebt: immers, dat bericht bevat dan automatisch ook zijn digitale certificaat met zijn publieke sleutel. Wel moet je die persoon (inclusief een kopie van dat certificaat) in je contactpersonen opnemen. 

Klik hiervoor met de rechtermuisknop op de naam van de persoon in het Van-veld en kies Toevoegen aan Outlook-contactpersonen. Vul de gewenste gegevens in en bewaar de contactpersoon. Nu hoef je maar een bericht naar die persoon op te stellen en via het Opties-menu de knop Versleutelen in te drukken. Let wel, dat lukt alleen als zowel de verzender (jij dus) als de ontvanger over een digitaal certificaat beschikken.

© PXimport

Digitale handtekening Office

Heb je ook zelf een gratis COMODO-certificaat aangevraagd, dan heb je wellicht gelezen dat je het ook kunt gebruiken om Office-documenten te ondertekenen. We tonen hoe je dat doet (in Word 2016). Open een (reeds opgeslagen) document. 

Ga naar het menu Bestand en kies Info / Document beveiligen / Een digitale handtekening toevoegen. Kies het gewenste Toezeggingstype (bijvoorbeeld: heeft dit document gemaakt en goedgekeurd), vul eventueel ook de andere informatie in en druk op de knop Wijzigen om aan te geven dat je het COMODO-certificaat wilt gebruiken. Bevestig met Ondertekenen en OK

In het Info-menu verschijnt nu het item Handtekeningen weergeven: langs deze weg kan altijd nog informatie over het certificaat worden opgevraagd. Wanneer iemand het document in het geniep aanpast, dan zal de digitale handtekening niet langer geldig blijken.

© PXimport

Certificaten voor VPN, FTP & EFS

Er zijn nog heel wat andere toepassingen die met digitale certificaten op basis van asymmetrische encryptie werken. Er is bijvoorbeeld VPN, met het robuuste OpenVPN-protocol. In het artikel rond pfSense hebben we uitgelegd hoe je hiervoor zelf een CA creëerde en een digitaal certificaat genereerde.

Maak je regelmatig gebruik van het FTP-protocol om bestanden uit te wisselen, dan moet je er misschien eens aan denken het veiligere FTPS-protocol te gebruiken. Dat kan bijvoorbeeld met de gratis FileZilla FTP Server, waar je de functie FTP over TLS support (FTPS) kunt activeren en de bijhorende certificaatbestanden kunt creëren.

Ook goed om weten: de wat duurdere Windows-edities (meestal de Pro-versies en zakelijke versies) bevatten een ingebouwd versleutelingsmechanisme voor data (EFS, Encrypting File System). Data versleutelen is niet moeilijker dan het eigenschappenvenster van een map te openen, de knop Geavanceerd in te drukken op het tabblad Algemeen en een vinkje te plaatsen bij Inhoud versleutelen om gegevens te beveiligen

Dat verloopt dus allemaal vrij transparant naar de (legitieme) gebruiker toe, maar onderliggend creëert Windows hiervoor wel degelijk ook een digitaal certificaat. Dat vind je terug via certmgr.msc, in de categorie Persoonlijk / Certificaten.

Deel dit artikel
Voeg toe aan favorieten