Verwijderd schreef op 17 mei 2004 @ 23:27:
Het grappige van MD5 is dat het een ad-hocalgoritme is en de werkwijze is te vergelijken met die van symmetrische encryptiealgoritmen. Door het gebrek aan structuur is er over de veiligheid van de functies weinig te bewijzen.
Zelfde geldt trouwens voor SHA (hash 160 bits).
De veiligheid is niet te bewijzen en iedereen gebruikt het... Of heb ik mijn boek over cryptografie verkeerd gelezen?
't Is inderdaad een foute keuze om md5 of sha1 als "wachtwoord encryptie" te gebruiken, simpelweg omdat het daar niet voor bedoeld is. Maar anderzijds is het wel een van de makkelijkere oplossingen om het een "beetje lastiger" opgeslagen te houden
Het bewijzen van veiligheid van een functie is sowieso onmogelijk volgens mij, want een functie is alleen maar een functie. Het enige wat je kan proberen te bewijzen is dat het eindresultaat niet als invoer van een andere functie bruikbaar is om op de originele invoer terecht te komen. Doordat een hash-functie allerlei gegevens weglaat is dat trouwens al bijna inherent aan het algoritme zelf

curry684 schreef op 18 mei 2004 @ 00:32:
Lekker boeiend, daarom trek je ook nooit een hash van alleen het password maar van een custom combinatie van username en password naar eigen keuze (concat met of zonder random tussenvullingen e.d.). Als je dat niet doet hebben 2 gebruikers met hetzelfde password dezelfde hash, wat een securityleak is, en is een dictionary of andere brute force attack inderdaad mogelijk.
Als je weet wat er ge"codeerd" is, dan is een brute force attack mogelijk, sterker nog, doordat je weet welk algoritme gebruikt heb je dat niet eens nodig. Of je nou gaat zoeken naar een moeilijk password of naar "iets"+moeilijk password, das precies hetzelfde.
Het zal alleen wat langer duren om te achterhalen, maar een beetje handige hacker zal zijn eigen password proberen te kraken en ontdekken dat er bijvoorbeeld username+password staat, ipv slechts password.
Ik denk dat je 'm te vroeg hebt dichtgeslagen... je kent de concepten en de theorieen, nu nog de praktische toepassing

Ik denk het niet. Sha1 en md5 (en alle andere hashes) zijn bedoeld voor integriteitscontrole, dus voor het bepalen of de inhoud van een bericht (of een file of whatever) veranderd is of niet. Niet om als versleuteling van het een of ander te gebruiken.
Dat het daar toevallig ook redelijk voor te gebruiken is, is aardig, maar niet het originele doel van de ontwikkelaars van hashing algoritmen. Eigenlijk zou men beter de (unix) crypt-functies en aanverwanten kunnen gebruiken.
Een van de simpelste extraatjes die (md5)crypt standaard gebruikt is het gebruiken van een zgn salt, die random gekozen wordt per password en dus al voor je doet wat jij hier boven over een concattenatie zegt