Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Onderzoekers verbeteren SHA-1-aanval

In februari van dit jaar hadden Chinese onderzoekers ontdekt dat SHA-1 niet meer volledig betrouwbaar is, aangezien ze een methode hadden ontdekt waarmee in 269 bruteforcepogingen een collision kon worden berekend voor een SHA-1-hash. Onderzoekers hebben de gebruikte methode hiervoor verbeterd en ontdekt dat een collision reeds in 263 berekeningen kan worden geproduceerd.

SHA-1De onderzoekers die dit hebben ontdekt zijn Xiaoyun Wang, die ook een van de onderzoekers was die al eerder fouten in SHA-0 en SHA-1 had ontdekt, Andrew Yao en Frances Yao. Dankzij de nieuwe verbeterde methode om een collision te produceren is het nog 'eenvoudiger' geworden om bijvoorbeeld digitale certificaten te vervalsen. SHA-1 is een hashing-algoritme, wat in theorie betekent dat een 'hash' van bepaalde data niet kan worden gebruikt om de brondata te genereren. Dergelijke algoritmes worden bijvoorbeeld gebruikt voor het maken van checksums van bestanden om deze te controleren op echtheid en het elektronisch ondertekenen van digitale bestanden, zoals e-mails en certificaten.

De onderzoekers proberen methoden te vinden om zogenaamde collisions te ontdekken. Een collision houdt in dat dezelfde hash wordt gegenereerd, terwijl de brondata verschillend is. Hashes worden onder andere gebruikt om bijvoorbeeld e-mails digitaal te ondertekenen. Wanneer de inhoud van de e-mail wordt gewijzigd, is de hash van de gewijzigde e-mail totaal anders. Dankzij het onderzoek van het team van Wang is het theoretisch mogelijk een e-mail zodanig te wijzigen dat de resulterende hash identiek is aan de originele e-mail.

Als gevolg van de zwakheden die in SHA-1 zijn ontdekt, heeft het National Institute of Standards and Technology in de Verenigde Staten de overheid van de VS geadviseerd om SHA-1 niet meer te gebruiken en te vervangen door betere varianten zoals SHA-256 en SHA-512.

Door

Nieuwsposter

30 Linkedin Google+

Bron: The Register

Reacties (30)

Wijzig sortering
Een tijdje geleden werd er ook zoiets over md5 verteld, en werd er aangeraden sha-1 te gebruiken.
De 2 meest gebruikte hashing algoritmes zijn nu dus 'onbruikbaar' geworden. Ik denk dat het heel lang gaat duren voordat men (volledig) overgestapt is op de betere varianten. Het zit namelijk nogal diep verweven in software.

Tegen die tijd zijn de huidige hashing manieren die nu worden aangeraden denk ik ook alweer verouderd.
Ik denk dat je niet helemaal het idee van hashing algoritmes snapt, hashing algoritmes worden gebruikt voor de verificatie van zaken, zeker niet als encryptie, want daarvoor is het absoluut niet geschikt, je kunt dan wel een boodschap versturen maar niet meer decoderen, lekker zinvol allemaal.

Het volgende is dat hashing vooral gebruikt word om te verifiŽren of data niet beschadigd is. Een andere mogelijkheid die ik zelf ook gebruik en vele systemen met mij is de mogelijkheid om er op een mooie manier wachtwoorden me te vergelijken. Zou hoef je in een database geen wachtwoorden meer op te slaan maar kun je de hash uitrekenen. Dat leverd een veiligheid.

Stel, er zit een fout in een php applicatie (bijvoorbeeld je kunt ergens in een zoekschermpje stiekem SQL in voren) dat krijg je met je hashing techniek de wachtwoorden van de accounts te zien als hashes, maar aangezien de vergelijking hash vaak op de server word uitgerekend, kun je nog steeds niet inloggen ook al zou je de hash weten.

Hashing is ook geen echte encryptie, in de zin van een geheimschrift, het is namelijk niet terug te rekenen.
ik neem aan dat dat wel begrepen wordt

maar "bruikbaar" is...
ik download een ISO van Linux (Knoppix4.0.1) met een hash "A"
ik ben een slimme jongen en ik kan hashen namaken, met DPC, 10000 pc's die dat op n maand doen ofzoiets (zie post hoger ;) ).
ik krijg data van 4.293Gb groot die dezelfde Hash 'A' leveren, maar dat enkel met .BMP bestanden... redelijk makkelijk in te zien dat het niet de Linux-ISO is die ik eigenlijk moest hebben
ik bedoel maar, je moet
1 hash berekenen op het "foute" bestand
2 het bestand moet nog redelijk als het origineel uitzien of het is nogal onzinnig
Hoezo is SHA-1 nu onbruikbaar?

Het duurt nu iets minder lang on een collision te berekenen, maar de hoeveelheid tijd die het vergt is nog steeds veel en veels te groot.

En als je een collision vindt dan is er een kans van ongeveer 0 dat deze daadwerkelijk bruikbaar is.
En toch vind ik dat het niet zo'n kwaad kan. Een collition is immers een hoop random data. Je kan niet zomaar een documentje aanpassen, wat getalletjes aanpassen en het toch dezelfde hash geven. Daar heb je veeel meer voor nodig zoals random extra data in het origineel en in het vervalste copy...
Je maakt een denkfout, als je een collision kan uitrekenen, hoef je juist niet het origineel aan te passen. Dat moet ook niet want je wil puur een collision welke dezelfde hash heeft als het origineel (anders gezegd: als men de hash vertrouwt, moet je die intact laten).

Als je een colision tussen 2 totaal random strings ontdekt, zonder te weten waarom en zonder dat je efficiŽnt het resultaat kan herproduceren, heb je er inderdaad weinig aan. Maar met 2^63 ipv 2^80 pogingen een collision vinden mag toch redelijk serieus genomen worden. Zeker als je een methode hebt om met weinig toegevoegde random troep aan data een verder normaal document kan produceren, iets waar deze nieuwspost over ging: nieuws: Mogelijkheid ontdekt om hashing te omzeilen . Gelukkig is een fout als deze (nog) niet ontdekt bij SHA-1.
Voor reguliere checks van downloads van particulieren ,heb je wel gelijk. Maar als een slimme hacker 1x een collision heeft ontdekt voor een met SHA-1 beveiligd certificaat, kan dat heel veel schade aanrichten (en hij zou zelfs rijk kunnen worden ;) )
Dit wil eigenlijk zeggen, dat er hashes zijn die 2 betekenissen hebben. Dat is mooi, morgen ga ik onder de naam van Microsoft een nieuwe pc kopen! :7
Maar waarom zou je zowiezo nog sha-1 gebruiken, sha 512 is een stuk moeilijker te bruteforcen immers 128^62 pogingen voor dat je alle combenaties gehad hebt.
Dat is niets nieuws, je hebt vanaf dag 1 kunnen bewijzen dat een specifieke hash voor een *oneindig* aantal verschillende bestanden geldig is.Het probleem is alleen
1) het vinden van zo'n 'collision' (wat nu dus weer enkele ordes sneller kan)
2) het vinden van een betekenisvolle collision, wat nog steeds volstrekt unfeasible is.
Omdat veel overheidsinstellingen en legeronderdelen e.d. nog met behoorlijk oude software werken, spul dat niet zomaar even aangepast kan worden. Voor nieuwe software gaat jouw opmerking wel op, maar oude software is het toch echt niet zo makkelijk voor...
Interessant. Voor mensen die zich afvragen wat SHA-0 en SHA-1 en de SHA-2xx varianten precies doen en hoe ze werken: Op een pagina van Wikipedia wordt dat uit de doeken gedaan.
Er zijn 2 belangrijke functies van een hash.
De eerste is zorgen dat als je een bericht verstuurd het bericht onveranderd aankomt. Hashes als SHA en MD5 zijn zo ontworpen dat een kleine aanpassing een groot verschil geeft in de hash. Dus als jij denkt een mailtje aan te kunnen passen 50 naar 100 euro om te doen alsof iemand dat geboden heeft op jouw produkt dan gaat je dat niet lukken.
Het aantal string dat voldoet aan een bepaalde hash is oneindig groot (simpel in te zien, het aantal string is oneindig groot, de mogelijke waarden voor een hash zijn eindig, oneindig / eindig dus oneindig). Dus je vindt een string die een collision maakt, dan heb je dus nog niks want de kans dat je er wat mee kunt is miniem.

Een andere toepassing van hashes is het versleutelen van passwords en hier is wel gevaar te vinden. Maar dat ik geen gevaar wat er niet al was. Stel ik onderschep de hash van een password ingevuld op een site, dan kan ik een string vinden met dezelfde hash en die dus als password gebruiken. Ik kan echter ook een HTTP request faken waarin ik de hash gebruik in plaats van het password.
Goed, omdat tegen te gaan zou je het password aan een challenge kunnen plakken die je serverside genereert. Als iemand de hash pakt en een collision uitrekent heeft hij noppes want wederom is de kan dat hij het password met challenge vind vrijwel 0.

Daarmee doe ik dit dus af met de term storm in een glas water. Hashes zijn gewoon superveilig, ze zijn zo gemaakt dat de kans op een collision miniem is. Met een hash is het dan ook nooit mogelijk de originele string te berekenen, das ook logisch want dat zou betekenen dat je een DVD-ISO zou kunnen representeren met een hash van 32 tekens....
2^63 = 10 ^ 18.9

ongeveer gelijk aan een 1 met 19 0'en erachter:
9 223 372 037 000 000 000

ik zou zeggen, redelijk kleine kans :)
en een HASH bestaat dat niet uit letters+cijfers?
dat zijn dan 36 teken-mogelijkheden per karakter...

volgens mij kan je enkel dromen van het echt VINDEN van een Hash :z
Ja en wat als een computer 9223372036854775808 brute-force pogingen er in 1 uur doorheen haalt? Dat het er veel zijn hoeft niet te betekenen dat het lang duurt.
na 9 223 372 036 854 775 808 pogingen heb je hem

ooit geprobeerd een brute-force te doen op een pw ?
probeer eens 11 tekens, je pc is dood eer hij het heeft gevonden!

in de praktijk is het aantal pogingen nog te groot om het echt als "risico" te bestempelen lijkt me

trouwens... 9223372036854775808/uur = 2 562 047 788 015 215,5/seconde mss toch wat snel
;)
al zou een pc op 4ghz 1 instructie per hertz uit kunnen voeren kom ik nog steeds uit op 73 jaar... zulke dingen gelden ook voor het zoeken van priemgetallen, moleculen 'vouwen' op zoek naar medicijnen, het kraken van rc5, etc
allemaal DPC projecten
waarom zou dat hiermee niet kunnen? :) als je 73 pc's hebt duurt het theoretisch nog maar maximaal 1 jaar
met 1000 pcs (DPC projecten zitten meestal aan iets meer dan 1000 users :+ ) zit je net onder een maand.. dan wordt het opeens wel gevaarlijk
En voor ons klinkt dit naar iets onbeduidends maar neem dan bv. de amerikaanse defensei in gedachte met hun supercomputers, russische criminelen met zombie netwerken en andere vage groeperingen over de gehele wereld met meer dan 1 computer tot hun beschikking, dan is zoiets inderdaad snel te doen.
Tevens mogen wij ons ook wel zorgen maken, ik zie Brein en consorten er best toe in staat om in de nabije toekomst netwerken die afhankelijk van hashes zijn te bestoken met hun acties
Maar aan de andere kant is een beetje BotNet groter dan 1000 nodes: http://www.honeynet.org/papers/bots/

Als het er b.v. 100.000 zouden zijn (wat mijns inziens aanneemelijker is), en 100 instructies zit je wellicht weer op een maand?
Reactie op dataghost:
Je dacht toch niet dat het controleren van de hash met 1 instructie gedaan is? :?
theoretisch 1 jaar.. maar ik denk niet dat je met een 4ghz processor 4 miljard pogingen per seconde kan uitvoeren.. Dat ligt minstens een factor 100 lager...
psst.. het is
9223372036854775808


:P
ga voor de lol maar eens kijken hoeveel 2^83 is :)
Laatst ben ik nog met iemand in discussie geweest over een andere veelgebruikte methode: RSA.

Lees ook eens Wikipedia: RSA

Best wel interessant als je weet waar het over gaat en de verschillen met SHA weet.
Zoals heel groot in de titel van die pagina staat is dat een encryptie methode en geen hashing methode. Dat valt absoluut niet te vergelijken met hashen.
SHA:

The Secure Hash Algorithm (SHA), developed by NIST, along with the NSA, for use with the Digital Signature Standard (DSS) is specified within the Secure Hash Standard (SHS) [National Institute of Standards and Technology (NIST). FIPS Publication 180: Secure Hash Standard (SHS). May 1993.]. SHA-1 [National Institute of Standards and Technology (NIST). Announcement of Weakness in the Secure Hash Standard. May 1994.] was a revision to SHA that was published in 1994. The revision corrected an unpublished flaw in SHA.

http://www.w3.org/PICS/DSig/SHA1_1_0.html
RSA is een TOTAAL andere techniek dan SHA,

RSA is een to-way encryptie, gebaseerd op het feit dat het erg eenvoudig is om p * q te berekenen maar heel erg zwaar om e te ontbinden in p en q (p en q zijn priemgetallen, grote priemgetallen). (en natuurlijk nog een mooie module deling :))

SHA, is een hashing techniek (dus one-way) die eigenlijk 'informatie' weggeooit.

RSA is niet echt gebruikt als hashing methode (het kan wel). OpenSSH maakt (als ik mij niet vergis) van RSA ook gebruik

Op dit item kan niet meer gereageerd worden.


Apple iPhone X Google Pixel 2 XL LG W7 Samsung Galaxy S9 Google Pixel 2 Far Cry 5 Microsoft Xbox One X Apple iPhone 8

© 1998 - 2017 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Hardware.Info de Persgroep Online Services B.V. Hosting door True

*