OlafvdSpek schreef op 18 oktober 2003 @ 11:29:
Als de server-tijd gesynced is met NTP heb je ongeveer een miljoen mogelijke waardes, dat is 19-bit. Dat is een stuk minder dan de 95-bit die mijn functie zou genereren als mt_rand wel random was. De vraag is nu of 19-bit wel of niet via brute force te kraken is.
Had je het nou al es geprobeerd met mt_srand van te voren roepen?
En idd, de tijdsgebaseerde functies zijn in principe te voorspellen, maar wel vrij lastig.
Je moet je natuurlijk afvragen of men ook al die moeite _wil_ doen... Want ben jij werkelijk zo belangrijk dat men alle mogelijke moeite zal doen om de boel te kraken?
Dan hoop ik dat je nog wel wat meer beveiliging hebt dan domweg een random string ter authenticatie

128 idd.
Er zijn twee zwakheden idd:
- Je kan in theorie door 64 (willekeurige) posities in een tekst om te klappen (dus met "64 bits" afwijking) de boel al met een heel grote kans kraken (dus dat uit een (nauwelijks, bijvoorbeeld wat herschreven zinnen) andere tekst dezelfde hash rolt). Uiteraard is 2^64 combinaties proberen nog redelijk kostbaar
- Hoe meer entries, hoe meer kans op een duplicaat (de birthday paradox idd), aangezien je te maken hebt met een groeiende kans dat de nieuw gegenereerde waarde gelijk is aan een van de al aanwezige.
Te berekenen met: 1 - (364/365 * 363/365 * ...) voor verjaardagen oftewel 1 - (N - 1 / N * N - 2 / N * ... * N - (n-1) / N) in het algemene geval.
De kans dat er bij 1.000.000 random gekozen md5-strings tussen een of meer duplicaten zijn is, als het goed is (ongeveer)
0.0000000000000000000000000014693664691599208571015357095276180984797551546566503282918486524703584894
Maar dat is dus niet de kans dat iemand een specifieke string kan kraken ofzo, dat is dat er in een lijst van 1000000 entries een dubbele zit.
[
Voor 47% gewijzigd door
ACM op 18-10-2003 12:31
]