Hoe werkt SSL: Verdediging tegen Man in the Middle-attacks


SSL-certificaten staan voor veiligheid op het internet, maar u kunt er meer mee dan u denkt. In deze nieuwe serie nemen we een kijkje achter de schermen van SSL en laten we zien hoe u uw SSL-certificaat nog beter voor u kunt laten werken.

Vorige week hebben we uitgebreid gesproken over Cipher suites. Deze algoritme-combinaties bepalen hoe versleuteld verkeer tussen de server en de gebruiker wordt opgebouwd. Maar voor elke beveiligingsmethode zijn er minstens tien manieren om die beveiliging te doorbreken, en Cipher suites zijn hierin absoluut geen uitzondering. Een hacker die zich een weg naar binnen weet te banen en het verkeer kan afluisteren of zelfs kan manipuleren, voert een zogenaamde Man in the Middle-attack uit.

Man in the Middle-attacks komen al sinds mensenheugenis voor. Iemand die een brief onderschept, leest, en daarna weer doorstuurt naar de daadwerkelijke ontvanger doet in feite namelijk niets anders dan iemand die hetzelfde doet met een e-mail. Maar dat de techniek al zo oud is als de weg naar Rome, betekent natuurlijk niet dat men daar niks tegen kan doen. Twee technieken die helpen beschermen tegen Man in the Middle-attacks zijn Perfect Forward Secrecy en HTTP Strict Transport Security.

Perfect Forward Secrecy
Perfect Forward Secrecy oftewel PFS is een methode die ervoor zorgt dat bij elk versleuteld bericht een nieuwe session key gebruikt wordt, die niet terug te leiden is naar de voorgaande keys. Zo kan worden voorkomen dat iemand die zich tussen de twee communicerende partijen dringt, zelfs als hij een key weet te bemachtigen, niet automatisch voorgaande of opvolgende berichten ook kan ontsleutelen.

PFS borduurt voort op het Diffie-Hellman Key Exchange protocol. Dit werkt als volgt:

Simon en Harry willen versleuteld met elkaar communiceren. Ze kiezen hiervoor eerst een startsleutel, in dit geval de kleur blauw, die niet per se geheim gehouden hoeft te worden. Deze kleur moet bij elke nieuwe sessie wel vervangen worden door een nieuwe kleur. Vervolgens kiezen Simon en Harry elk een eigen geheime sleutel, voor Simon de kleur geel en voor Harry de kleur rood. Deze keys zijn private keys en houden ze strikt geheim. Om deze geheimhouding te helpen, vermengen ze hun geheime kleur met de startkleur blauw. Hieruit komen de gehashte sleutels groen en paars. De resulterende versleutelde geheimen kunnen publiek uitgewisseld worden zonder dat ze gevaar lopen dat er achterhaald wordt wat hun geheime kleuren waren; het proces om de gehashte kleuren terug te draaien naar de juiste basiskleuren zou een hacker té veel tijd en geld kosten. De groene en paarse kleur worden vervolgens gemengd met de geheime kleuren van Simon en Harry, waardoor ze dezelfde, bruine, waarde krijgen: hun geheime, gemeenschappelijke key, de session key. Deze session key kunnen ze gebruiken om berichten te versleutelen.

Voor een buitenstaander is het zeer moeilijk, zo niet onmogelijk, om die geheime waarde te achterhalen zonder over alle waarden te beschikken. Ten slotte zijn er allerlei kleurencombinaties mogelijk die tot dezelfde waarde leiden.

Uiteraard gebruikt het daadwerkelijke algoritme wiskundige vergelijkingen in plaats van kleuren. Deze vergelijkingen zijn zo opgebouwd dat ze zelfs met de modernste computers van deze tijd niet of nauwelijks terug te berekenen zijn. Daarnaast is deze berekening voor elke afzonderlijke sessie weer anders en werkt het algoritme dus elke keer weer met andere parameters. Zo is verkeer tussen dezelfde server en gebruiker dus veilig, zelfs als de private key van de server wordt gekraakt: de volgende keer gebruikt het verkeer toch een andere key. Uiteraard is dit protocol alleen zo veilig als de veiligheid van de private keys van de gebruikers.

Perfect Forward Secrecy is zelf heel gemakkelijk toe te passen door te kiezen voor een Cipher suite die gebruik maakt van het Diffie-Hellman key exchange protocol. Tegenwoordig is het originele Diffie-Hellman protocol veelal vervangen door het nog moeilijker te kraken Elliptic Curve Diffie-Hellman protocol, in een Cipher suite notatie te herkennen aan het deel ‘_ECDHE_’. Elke toepassing van dit protocol gebruikt al automatisch Perfect Forward Secrecy.

cipher-suites-768x618

HTTP Strict Transport Security
HTTP Strict Transport Security, oftewel HSTS, is een response header die toestaat dat browsers gedwongen worden voor alle opvolgende requests die ze naar een server sturen, HTTPS te gebruiken. Dit betekent dat een bezoek naar http://www.networking4all.com automatisch wordt doorgestuurd naar https://www.networking4all.com, zonder dat er eerst een request wordt gestuurd voor de HTTP-pagina. Dit voorkomt ook dat er tijdens een Man in the Middle-attack een downgrade attack kan worden toegepast die het verkeer over een onbeveiligde verbinding zou dwingen in plaats van de versleutelde HTTPS-verbinding.

HSTS
HSTS werkt zo, dat niet alleen direct verkeer naar de website in kwestie automatisch wordt omgezet naar een HTTPS-verbinding, maar ook links die op een externe pagina staan en die linken naar de HTTP-pagina worden automatisch naar de HTTPS-pagina gestuurd. Daarnaast voorkomt het gedwongen gebruik van HTTPS ook dat via cookies de sessie key kan worden gekaapt.

Het instellen van HSTS is een kwestie van het toevoegen van één response header aan de config:

Strict-Transport-Security: max-age= 31536000;

De server stelt zo vast dat HSTS voor één jaar, of 31.536.000 seconden, het gebruik van HTTPS verplicht stelt.

HSTS biedt dus een enorm veilige verbinding met uw server. Het nadeel van HSTS is wel dat de header pas in gebruik wordt gesteld ná het eerste contact. Gaat uw eerste contact met een server dus over een HTTP-verbinding dan wordt die niet automatisch omgezet naar een HTTPS-verbinding en loopt u mogelijk gevaar op een Man in the Middle-attack. De mogelijkheid voor een hacker om zich tussen dit verkeer te wurmen, is echter zo klein dat het bijna verwaarloosbaar is. Een ander nadeel is dat het alle verkeer verplicht via HTTPS laat verlopen. Mocht er dus een probleem zijn met uw certificaat, is er voor een bezoeker van uw website geen mogelijkheid om het certificaat te omzeilen. Maar ook in dit geval is de kans op problemen hierbij verwaarloosbaar. HSTS is een hele simpele maar zinnige manier om ervoor te zorgen dat uw verkeer hoe dan ook altijd over een beveiligde verbinding verloopt.

Conclusie
Cipher suites helpen u met het kiezen van de best mogelijke verdediging voor het verkeer tussen uw server en uw gebruikers. Door te kiezen voor Ciphers die gebruik maken van het Diffie-Hellman key exchange protocol maakt u automatisch al gebruik van Perfect Forward Secrecy, zodat mocht er onverhoopt een sessie key worden afgevangen, uw eerdere en verdere verkeer niet in gevaar komt. Door daarnaast er ook voor te zorgen dat uw verkeer altijd via HTTPS verloopt door de inzet van HTTP Strict Transport Security, voorkomt u ook dat er via die weg een Man in the Middle-attack kan worden uitgevoerd. Zo is uw verkeer altijd beveiligd.

Volgende week kijken we naar een andere veiligheidsinstelling: OCSP en OCSP stapling.

Geschreven door Stefanie Weber (Networking4all)

Dit ingezonden artikel is geschreven door Stefanie Weber van Networking4all.

Lees ook de onderstaande artikelen van Networking4all

Stuur ook uw blog, achtergrond artikel of andere bijdrage in!

Indien u zelf een interessante bijdrage, zoals een blog, how-to of achtergrond heeft, dan plaatsen wij die graag en dat kost u niks. Neem contact op met de ISPam.nl redactie via [email protected] of kijk op deze pagina voor meer informatie over het leveren van een bijdrage aan ISPam.nl.

Maikel, 2 augustus 2016 9:00 am

s/SSL/TLS

Het kan zich verdedigen tegen Man in the Middle attacks, maar dat hoeft niet. Grotere websites gebruiken namelijk load balancers die functioneren als SSL offloaders. Daarna kan het verkeer namelijk verdeeld worden over verschillende backends. Dat is allemaal prima als dat allemaal in hetzelfde netwerk blijft hangen. Google is zo namelijk ge-owned door de NSA.

De grootste Man in The Middle die actief TLS promoot is Cloudflare. Een mooi artikel is hier recent nog over geschreven:http://cryto.net/~joepie91/blog/2016/07/14/cloudflare-we-have-a-problem/

Als je threat model trouwens een overheid is, dan is het sowieso al een hopeloze zaak. Dit vanwege het gebroken web of trust model.

TL;DR TLS Kan je beschermen tegen Man in the Middle, maar dat hoeft niet.

Sebastian, 5 augustus 2016 9:34 pm

Het is natuurlijk altijd een keuze om diensten zoals de Man in The Middle as a Service van CloudFlare af te nemen.

Het hangt helemaal van de use case af if je dat zou willen. Mijn voorkeur heeft het niet, hou liever het verkeer zelf ik de hand.

Laatste reacties

Bedankt voor het succes van ISPam.nl
Koen Stegeman, Editor-in-Chief & founder Hostingjournalist.com: Jammer Arnout, maar je hebt een mooie bijdrage aan de hosting industrie geleverd, en dat jaren lang....

Bedankt voor het succes van ISPam.nl
Dillard Blom: Jammer dat een 'instituut' verdwijnt, en daarmee een bron van informatie over actuele zaken (en opin...

Bedankt voor het succes van ISPam.nl
L.: Uit automatisme kijk ik toch nog steeds elke dag naar ispam.nl, toch de hoop dat er nog een berichtj...

Bedankt voor het succes van ISPam.nl
Toni Donkers: Arnout bedankt! ik ga het missen dat is een feit!

Bedankt voor het succes van ISPam.nl
Marcel Stegeman: Ik zie het nu pas. Inderdaad jammer maar ik kijk nu al uit naar het volgende project.