Zodra we op een website iets willen doen wat in de privésfeer ligt, gebruiken we SSL. SSL staat voor Secure Socket Layer en is de standaard om een veilige verbinding te krijgen met een website die niet af te luisteren is en ons ook zekerheid geeft dat we inderdaad op de authentieke website terecht gekomen zijn en niet een mooi nagemaakte kopie die onze gevoelige informatie probeert af te troggelen.
Iedere beveiliger en de gemiddelde ICT-er weten wel wat SSL is en hoe hij het bijbehorende certificaat kan controleren. Er zijn zelfs gewone gebruikers die weten dat ze op het slotje moeten dubbelklikken en verifiëren dat het certificaat dat hun getoond wordt geldig is en uitgegeven is aan het domein waar ze een SSL-sessie mee geopend hebben.
Onbekender is het mechanisme van authenticode, waarmee Windows de updates elektronisch tekent om aan te geven dat het om authentieke updates gaat. Ook Java code en Active-X controls worden op deze manier voorzien van een elektronische handtekening. Deze technieken worden vaak gebruikt om websites meer dynamische functionaliteit te geven.
In beide gevallen is een cruciale schakel in de beveiligingsketen een hashwaarde die met een geheime asymmetrische encryptiesleutel getekend wordt. Vrijwel niemand kijkt naar het hashalgoritme dat hierbij gebruikt wordt. Stel nu dat dat hashalgoritme niet meer te vertrouwen is. Dan is de elektronische handtekening ook niet meer te vertrouwen.
“Maar de veelgebruikte cryptografische algoritmen zijn toch te vertrouwen?” hoor ik u al denken. Dit is echter niet meer zo. Jaren geleden zijn we er al achter gekomen dat het symmetrische encryptiealgoritme DES eenvoudig te breken was door de korte sleutellengte. Een paar jaar geleden werd bekend dat het MD5 hashalgoritme niet zo sterk meer was als altijd was gedacht. Inmiddels heeft deze erosie zich voortgezet en is het duidelijk dat elektronische handtekeningen gebaseerd op een MD5 hash gewoonweg niet meer te vertrouwen zijn. Tenzij u gelooft in het kunnen voorspellen van verkiezingsuitslagen door de PS3 spelcomputer, zoals dat op www.win.tue.nl/hashclash/Nostradamus wordt bewezen, daarbij gebruik makend van een elektronische handtekening over een MD5 hashwaarde.
Ook authenticode kan omzeild worden, door een gekozen goed programma te laten ondertekenen en later te vervangen door een kwaadwillend programma wat (verrassing!) op dezelfde MD5 hashwaarde uitkomt. Ook hier is een mooi scenario geschetst als bewijs, zie www.win.tue.nl/hashclash/SoftIntCodeSign.
Wanneer is de laatste keer dat u gekeken heeft welk hash algoritme gebruikt was in het SSL-certificaat van bijvoorbeeld uw bank? Heeft u wel ooit naar het hashalgoritme van uw software updates gekeken? Hoe kijkt u überhaupt die informatie na?
En de grote vraag is: Hoe lang moeten we wachten op een kwaadaardige toepassing van deze wetenschap over de zwakte van MD5? Phishers zijn berucht om hun vindingrijkheid en groeiende ‘professionaliteit’.
We dienen met onmiddellijke ingang over te gaan tot controle van het hashalgoritme voor we belangrijke informatie aan een SSL-sessie toevertrouwen. Maar dat lost lang niet alles op. We dienen ook zo snel mogelijk een mechanisme te krijgen in onze besturingssystemen waarmee we minstens gewaarschuwd worden bij toepassing van bepaalde cryptografische algoritmen, net zoals we worden geattendeerd op verlopen certificaten.