Cyberboswachters
Deze cursus werd gemaakt met hulp van AI-assistentie. Sommige afbeeldingen zijn door AI gegenereerd.
Per eindpunt een aparte sleutel.
Aantal sleutels: \(n \times \frac{(n - 1)}{2}\)
15
sleutels voor 6 gebruikers
45
voor 10 gebruikers
4950
voor 100 gebruikers

Op de schaal van het Internet wordt sleutelmanagement onmogelijk.
Er is een andere oplossing nodig: asymmetrische encryptie.
Iedereen mag hem gebruiken om berichten naar de eigenaar te encrypteren.
Enkel de eigenaar kan ermee decrypteren.
Moet altijd geheim blijven (cfr. Kerckhoffs).
Enorme impact op beveiligde communicatie via het Internet.
Publieke crypto: Bob gebruikt de publieke sleutel van Alice om haar een beveiligd bericht te sturen.
Tip
De publieke sleutel = een openstaande kist.
Iedereen kan er een boodschap in leggen en op slot klikken (encrypteren).
Enkel de eigenaar heeft de private sleutel om de kist te openen (decrypteren).

Versleutelen met de publieke sleutel van de ontvanger.
Bv. RSA.
Over een onveilig kanaal een symmetrische sleutel afspreken.
Bv. Diffie-Hellman.
Tekenen met je private sleutel.
Bewijs van identiteit.
Het ondertekenen van een document met behulp van je private sleutel.
Enkel de eigenaar heeft de private sleutel: een geldige handtekening bewijst zijn identiteit (authenticatie) en toont dat het bericht niet werd aangepast (integriteit).
Symmetrische crypto is sneller, maar hoe spreek je die sleutel veilig af?
Bij grote groepen loopt het sleutelbeheer vast. Diffie-Hellman laat twee partijen een gedeeld geheim (shared secret) afspreken over een onveilig kanaal.
Deze waarden zijn geen sleutelpaar zoals bij RSA: ze worden na de uitwisseling weggegooid.
Publiek afgesproken: basis \(g = 7\) priemgetal \(p = 11\)
| Stap | Alice | Bob |
|---|---|---|
| 1 | Kiest geheim getal A = 3 | Kiest geheim getal B = 6 |
| 2 | Berekent \(7^A\%11 = 343\%11 = 2\) (= X) | Berekent \(7^B\%11 = 117649\%11 = 4\) (= Y) |
| 3 | Stuurt X=2 naar Bob | Stuurt Y=4 naar Alice |
| 4 | Berekent \(Y^A\%11 = 4^3\%11 = 9\) | Berekent \(X^B\%11 = 2^6\%11 = 9\) |
9
het shared secret: enkel Alice en Bob kennen dit getal
Dankzij de eigenschappen van de modulo-operator.
X en Y kunnen het resultaat zijn van gigantische berekeningen: een stroper heeft veel rekenwerk nodig om alle mogelijkheden te testen.
In de praktijk kiezen Alice en Bob véél grotere getallen dan 3 en 6.
Mengen is makkelijk, ontmengen praktisch onmogelijk. Digitaal speelt de modulo-berekening die rol.
1977
ontwikkeld door Rivest, Shamir en Adleman
1536-4096
bits sleutellengte
Relatief traag: vaak enkel gebruikt voor de sleuteluitwisseling, daarna schakel je over op een sneller symmetrisch cipher.
Gebaseerd op de modulo-operator, net als Diffie-Hellman.
Algemeen: \((e \times d)\%((p-1) \times (q-1)) = 1\)
\(N=187\) en \(e=7\) (openbaar)
\(d=23\) (geheim!)
Alice wil het ASCII-karakter X (waarde 88) naar Bob sturen.
Alice gebruikt de publieke sleutel: \(C = data^e\%N\)
\[C = 88^7\%187 = 11\]
Bob gebruikt zijn private sleutel: \(P = C^d\%N\)
\[P = 11^{23}\%187 = 88\]
= ASCII van X: het bericht is correct ontvangen!
\[123 \times 127 = 15621\]
Makkelijk.
\[15621 = \; ? \times ?\]
Computationeel veel moeilijker.
Wie je private sleutel heeft, kan je coins stelen.
Cryptocoins gebruiken dezelfde public crypto-concepten: je private sleutel is het bewijs dat de coins van jou zijn. Geef hem NOOIT aan derden.
Modernere asymmetrische crypto, gebaseerd op elliptische krommen. Veel kleinere sleutels voor hetzelfde beveiligingsniveau:
256 bits
ECC is even sterk als 3072 bits RSA
384 bits
ECC is even sterk als 7680 bits RSA
Kleiner = sneller, minder data, minder energie.
Ideaal voor mobiel IoT
Diffie-Hellman sleuteluitwisseling via elliptische krommen.
Digitale handtekeningen, o.a. gebruikt door Bitcoin.
Moderne TLS gebruikt vrijwel altijd ECC voor de sleuteluitwisseling.
Net als RSA is ook ECC kwetsbaar voor quantumcomputers.
Daarom werkt men aan post-quantum cryptografie. NIST publiceerde in 2024 de eerste standaarden.
Een hashfunctie zet data om naar een code met vaste lengte, ongeacht de grootte van de input.
1 bit wijzigen → totaal andere hash identieke input → identieke hash
128 bits
Verouderd, veel collisions.
256 bits
Veilig.
512 bits
Nieuwste standaard.
Een digitale hash is een ideaal middel om boodschappen digitaal te ondertekenen (integrity).
Hoe weet je dat een bericht echt van de afzender komt?
Met een digital signature: de hash van het bericht, geëncrypteerd met de private sleutel van de afzender. De ontvanger verifieert met de bijhorende publieke sleutel.
Boodschappen ondertekenen met je private sleutel.
Gegeven sleutelpaar: publiek: \(e=5\), \(n=91\) privaat: \(d=29\)
Hash van de boodschap: \(m=35\)
\[s = m^d\%n = 35^{29}\%91 = 42\]
Verstuur: boodschap 35 + handtekening 42
Ontvanger gebruikt de publieke sleutel \(e,n\):
\[42^e\%n = 42^5\%91 = 35\]
Hash komt overeen: het bericht is authentiek!
Publieke sleutels zijn… publiek. Hoe weet je dat een publieke sleutel echt bij persoon X hoort?
Een aanvaller kan:
Eve misbruikt het impliciete vertrouwen dat zit ingebouwd in het digitale handtekening proces.
We hebben een manier nodig om de identiteit van de eigenaar van een publieke sleutel te verifiëren.
Een digitaal document dat een identiteit bindt aan een publieke sleutel.
Ondertekend door een trusted third party: vertrouw je die derde partij, dan vertrouw je het certificaat. Beschreven in de X.509-standaard.

Bobs publieke sleutel en info over Bob en de CA.
Een hash van die inhoud, versleuteld met de private sleutel van de CA.
Het hele systeem van CA’s, RA’s, … voor het uitgeven, beheren en bewijzen van certificaten heet een Public Key Infrastructure (PKI).
Zelf de hash berekenen → vergelijken met de handtekening, ontsleuteld met de publieke sleutel van de CA.
Vertrouw je de root CA? Dan vertrouw je de hele keten. En vice versa!

HTTPS en certificaten werken in tandem: encryptie én identiteitsverificatie.
2017
pas dan biedt meer dan de helft van de websites HTTPS aan
Het ergste scenario: de private sleutel van een CA wordt gestolen.

Aanvallers maken dan certificaten op naam van de CA. Alle certificaten van die CA (en sub-CA’s!) worden ongeldig.
Nederlandse CA gehackt. Valse certificaten voor o.a. google.com, ingezet om Iraanse Gmail-gebruikers te bespioneren.
Browsers verwijderen DigiNotar als vertrouwde root CA. Alle DigiNotar-certificaten worden ongeldig, ook die van DigiD en de Nederlandse overheid.
DigiNotar gaat binnen enkele weken failliet.
Het certificaat van België.
Root CA’s hebben een self-signed certificate:
Verleend aan = Verleend door
Vertrouw je de root CA niet? Dan is de hele keten niet te vertrouwen.

Bewijst de identiteit van een webserver.
Bewijst je eigen identiteit, bv. bij e-mail.
Bewijst de echtheid van software.
Controleert automatisch het certificaat van applicaties.
Geen certificaat? Dan krijg je een waarschuwing.
Geen certificaat ≠ automatisch onveilig. Certificaten kosten geld en niet elke ontwikkelaar kan dat betalen.
Bekijk welke certificaten lokaal geïnstalleerd zijn en welke vertrouwd worden.
Start de tool met certlm.msc.

Geen centrale autoriteit: gebruikers ondertekenen elkaars publieke sleutels.
Een gedecentraliseerd alternatief voor PKI, bekend van PGP/GPG.
Alice verifieert Bobs sleutel persoonlijk en ondertekent die met haar private sleutel: “Ik bevestig dat deze sleutel van Bob is.”

WoT bleek moeilijk schaalbaar: key signing parties, vertrouwenspaden zoeken, … Daarom domineert PKI op het Internet.
Certificaten vormen het hart van een veilige manier van surfen.
HTTPS = HTTP + een beveiligde encryptietunnel.
443
de poort voor HTTPS
80
de klassieke poort voor HTTP
De erg belangrijke TLS tunnel tijdens het surfen met HTTPS.
Veilige sleuteluitwisseling, maar traag.
Snelle data-encryptie.
TLS/HTTPS combineert de sterktes van beide soorten crypto.
Meer weten? Bekijk de briljante visualisatie op tls.ulfheim.net
Enkel de server heeft een certificaat.
Ook de client authenticeert met een certificaat. De server weet zeker wie de client is.
Typisch gebruikt in: bankomgevingen e-government bedrijfs-VPN’s backend-servers

HTTPS maakt je verbinding een pak veiliger, maar voor je ISP en de website zijn er ook nadelen.
Alles is geëncrypteerd: je ISP kan niet meer cachen.
De website moet meer trafiek verwerken, want er is geen tussenliggende cache.
End-to-end encryptie (E2EE): enkel zender en ontvanger kunnen de data lezen.
iMessage, FaceTime en iCloud Keychain behouden wel E2EE.
Een backdoor die enkel voor “de goeden” werkt, bestaat niet.
Een achterpoortje verzwakt de beveiliging voor alle gebruikers. Dat is in strijd met Kerckhoffs principe.
EU-voorstel: de Child Sexual Abuse Regulation.
Verplicht scannen van alle chatberichten, ook E2E-versleutelde.
Technisch is dit een backdoor of client-side scanning (spyware).
Na jarenlange controverse werd het verplicht scannen van E2EE in 2025 afgezwakt.
Je kan niet tegelijk echte E2E-encryptie garanderen én berichten laten meelezen.
mitmproxy: Linux-tool voor een MITM-aanval op HTTPS.
Een man-in-the-middle aanval met TLS.
De aanvaller kan geen geldige certificaten genereren.
De browser geeft dan een waarschuwing.

Bescherm je private sleutel, verifieer certificaten en negeer nooit browserwaarschuwingen.