Nogal wat media berichtten de afgelopen dagen over “het grootste veiligheidsprobleem van het Internet ooit” of te wel de bug in OpenSSL die ondertussen door het leven gaat als “Heartbleed“. Waar gaat dit nu over en moeten we ons zorgen maken?
Wanneer je op je computer surft … dan is dat eigenlijk een soort gesprek tussen je computer en een andere computer (vb. webserver waarop een webshop actief is). Wanneer iemand tussen je computer en de server gaat staan kan hij het gesprek afluisteren, in vaktermen spreken we wel eens van een “Man in the Middle Attack”. Ik vertel dit hier erg eenvoudig maar zo een Man in The Middle attack opzetten is niet eenvoudig. In sommige situaties willen we absoluut NIET dat iemand ons afluistert vb. als we een wachtwoord versturen, als we ons VISA kaart nummer versturen, enz …
Om dat afluisteren tegen te gaan kunnen we de communicatie tussen onze computer en de andere computer (vb. de webserver) gaan versleutelen. Dit wordt overigens geconfigureerd vanop de webserver, als eindgebruiker hoef je daar nauwelijks iets voor te doen. Afluisteren heeft geen zin meer, je hoort enkel gecodeerde berichten.
Om gesprekken te versleutelen maken we gebruik van het SSL of TLS protocol. Een protocol is een set van afspraken waaraan we ons houden om in dit geval een gesprek tussen twee partijen te kunnen versleutelen. Voor alle duidelijkheid, met dat protocol is er op vandaag helemaal geen probleem. Maar een protocol is ook maar wat het is, afspraken … Die afspraken moeten netjes uitgevoerd worden door programma’s. Op de markt zijn er een aantal programma’s die zorgen dat we het SSL of TLS protocol kunnen gebruiken. Een van die programma’s is OpenSSL.
Het SSL protocol hier volledig uitleggen zou ons te ver brengen, maar het is belangrijk te weten dat alles draait rond een certificaat op de server. Bij dat certificaat hoort een private sleutel die nooit met niemand uitgewisseld wordt. Wie de private sleutel heeft kan alle gesprekken die ooit werden versleuteld met het certificaat, ontsleutelen. Wie ooit versleutelde gesprekken heeft afgeluisterd, die informatie heeft opgeslagen en nu de private sleutel in handen krijgt kan die gesprekken uit het verleden nu ontcijferen. Het spreekt voor zich dat wanneer de private sleutel in verkeerde handen terecht komt, het certificiaat sowieso NIET MEER mag gebruikt worden in de toekomst. En daar situeert zich vandaag het probleem …
Bij het programmeren van OpenSSL is iets fout gelopen waardoor iedereen belangrijke stukken geheugeninhoud van de server kon opvragen. (Om af te luisteren was dus zelfs geen Man In the Middle aanval nodig!!) Die geheugeninhoud kan twee belangrijke soorten informatie bevatten nl. de communicatie tussen clients en server (NIET versleuteld) + de private sleutel van het certificaat. Maar het wordt nog vervelender … wanneer iemand de fout in de software misbruikt om private sleutels te weten te komen dan valt dat absoluut niet op. Het is achteraf ook niet meer na te gaan of iemand dat gedaan heeft, wie dat gedaan heeft, enz … En we zijn er nog niet … die fout zit al 2 jaar in het programma OpenSSL. Het zou dus kunnen dat er mensen zijn die al twee jaar lang alle communicatie afluisteren waarvan wij dachten dat die versleuteld was.
Wachtwoorden, krediet kaart nummers, … het KAN allemaal in slechte handen terecht gekomen zijn. Bemerk dat ik veelvuldig gebruik maak van de voorwaardelijke wijs. Er kan veel geheime informatie uitgelekt zijn maar we zullen nooit weten hoeveel er uitgelekt is …
En nu?
Aangezien de versleuteling wordt geregeld vanop de webSERVER moeten wij als eindgebruiker niet zo veel doen. De beheerder van de webserver moet de nieuwe versie van OpenSSL installeren en nieuwe certificaten aanvragen.
Maar nu blijft er nog één probleem over. Als onze gesprekken in het verleden zijn afgeluisterd en ontsleuteld door mensen met verkeerde intenties, dan hebben die ons wachtwoord enz … mogelijks in hun bezit. Het komt er dus op aan om je wachtwoord te wijzigen zodat het wachtwoord dat zij van je hebben ongeldig wordt.
Wanneer moet je dat doen? NADAT de website/webserver de nieuwe versie van OpenSSL heeft geïnstalleerd en NADAT ze een nieuw certificaat in gebruik genomen hebben. Wijzig je je wachtwoord VOOR dit in orde is, dan is de kans bestaande dat het verkeer tussen je computer en de website in kwestie nog steeds afgeluisterd wordt.
Grote websites zoals IFTTT hebben hun gebruikers al ingelicht dat ze OpenSSL gepatched hebben en nieuwe certificaten in gebruik hebben genomen. Je kan zelf testen of een website (nog) onderhevig is aan dit probleem dankzij deze website : http://filippo.io/Heartbleed/
Hier en daar heb ik er in mijn uitleg de kantjes afgereden om het eenvoudig en begrijpelijk te kunnen vertellen. Heb je vragen of opmerkingen, aarzel niet mij te contacteren.