SHA-1 toe aan vervanging?

De vraag “moeten we SHA-1 niet vervangen door iets beters?” heb ik de laatste tijd al op verschillende plaatsen voorbij horen komen. Voor een van mijn klanten heb ik zelfs een kort memo geschreven met mijn visie op deze vraag. Ik denk dat het niet nodig is om per direct van SHA-1 af te stappen. In de meeste gevallen kunnen we met SHA-1 nog prima vooruit, tenzij er nieuwe kwetsbaarheden ontstaan. Dan zal opnieuw moeten worden bekeken of het risico is toegenomen.

SHA-1 is een zogenaamd one-way hashalgoritme en wordt gebruikt voor het berekenen van een verkorte versie (een soort “samenvatting”) van een tekenreeks (een bestand, een stuk tekst, etc) die met een hoge mate van waarschijnlijk uniek is. Deze “samenvatting” (de hashwaarde) kent in het geval van SHA-1 een vaste lengte van 160 bits.

Een one-way hashalgoritme (zoals SHA-1) wordt gekarakteriseerd door twee eigenschappen. Allereerst het one-way principe wat betekent dat je op basis van een tekenreeks een hashwaarde kunt genereren, maar dat het niet mogelijk is om op basis van de hashwaarde de oorspronkelijke tekenreeks terug te halen. Daarnaast is een one-way hashalgoritme collision-free. Dit betekent dat er geen twee tekenreeksen zijn die dezelfde hashwaarde opleveren.

Op dit moment kent SHA-1 een aantal kwetsbaarheden. De meeste recente en ‘zorgwekkende’ kwetsbaarheid werd ontdekt door een aantal Australische onderzoekers. Ergens halverwege 2009 werd bekend dat de Australiërs met 252 (2 tot de macht 52) pogingen een collision konden vinden. De tweede karaktereigenschap van SHA-1 kan dus niet meer worden gegarandeerd.

Feitelijk kan ik natuurlijk niet zomaar stellen dat momenteel het risico van het gebruik van SHA-1 laag is; dat is namelijk afhankelijk van de context en de gestelde eisen aan informatiebeveiliging. Desondanks heb ik sterk het gevoel dat er in het merendeel van de gevallen niets tot weinig is om je zorgen over te maken. Dit komt met name doordat de ‘gevonden tekenreeks’ (na 252 pogingen) niet beïnvloedbaar is. Dit betekent dat een kwaadwillend persoon de uitkomst van een collision attack niet kan sturen. Er kan alleen een willekeurige tekenreeks worden gevonden, waarbij de kans erg klein is dat deze ook daadwerkelijk een betekenis heeft die gelijk is aan die van de oorspronkelijke tekenreeks. Daarnaast wordt SHA-1 vaak gebruikt in combinatie met encryptie (bijvoorbeeld RSA) waardoor het risico verder zal afnemen.

Dit betekent echter niet dat je niks kunt doen. Sterker nog, mijn collega’s Christ Reniers en Jacques Cazemier stellen in hun artikel ‘cryptografie beperkt houdbaar‘ dat je er in ieder geval voor moet zorgen dat je de overstap kunt maken wanneer de situatie, rond bijvoorbeeld SHA-1, verergert. Christ en Jacques zijn van mening dat je hier het volgende voor moet doen:

  1. Hou in het systeemontwerp rekening met het feit dat de cryptografische functionaliteit vervangen/bijgewerkt moet kunnen worden. Maak nu dus geen keuzes die een overstap op een later tijdstip zullen bemoeilijken. Zorg dat er migratiescenario’s zijn uitgewerkt en klaarliggen.
  2. Maak een roadmap voor het vervangen van gebruikte sleutels.
  3. Maak een roadmap voor het vervangen van de cryptografische functies in het systeem.
  4. Zorg voor een calamiteiten-/crisisplan voor het geval de gebruikte crypografie plotseling onbruikbaar wordt.

Wat mij betreft een prima advies waaruit onder andere blijkt dat een goede voorbereiding absoluut noodzakelijk is om nu en in de toekomst de veiligheid van informatiesystemen te kunnen blijven garanderen. Pas dit advies toe en SHA-1 komt vanzelf een keer aan de beurt!

0 antwoorden

Plaats een Reactie

Meepraten?
Draag gerust bij!

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.