Random-Funktionen reproduzieren?

Irgendjemand_1

Erfahrenes Mitglied
Hi.
Ich hab gerade wiedermal einen Zufalls-Link per Mail bekommen, welcher natürlich rein zufällig generiert wurde.
Aber da stellt sich mir auch die Frage: Kann nicht jemand anders zB ein neues Passwort für meinen Account anfordern, sich den Zeitpunkt merken und dann selbst (bevor ich die Mail überhaupt bemerken würde) den Link durch das Reproduzieren der Random-Funktion herleiten und ihn benutzen?
Er hat dann immer noch nicht das Passwort, welches in meiner Mail steht - Aber das wird eben auch zufällig generiert, dürfte also auch kein Problem darstellen.
Dann könnte jemand zumindest kurzzeitig (bis ich über meine Mail wieder ein neues Passwort anfordere) meinen Account benutzen.
Nehmen wir mal eine ganz einfache Funktion zum erstellen einer zufälligen Zeichenkette (Pseudocode):
Code:
function Zufallszeichenkette(length) {
    string Zeichen= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ÄÖÜäöü
    while (i <= length) {
        random_string = random_string + random(Zeichen)
    }
    return random_string
}
So, soweit ich weiß, ist die Funktion random() in so ziemlich jeder Programmiersprache vorhanden und ist abhängig von der Zeit, oder?
Zumindest ist sie immer reproduzierbar, sofern man nicht irgendwelche äußeren physikalischen Einflüsse in die Funktion reinbringt, und das ist afaik nicht der Fall, oder?
Um nochmal darauf zurückzukommen, ob man so einen Account klauen könnte: Man weiß ja eigentlich nur, in welcher Sekunde die Anfrage bearbeitet wird, dh in welcher Sekunde ungefähr das Passwort erstellt wurde, aber die random-Funktion wird wahrscheinlich eher mit millisekunden (oder noch kleineren Einheiten?) arbeiten, aber selbst dann hat man ja theoretisch nach spätestens 1000 Versuchen den Account geknackt, oder?
Also meine Frage nochmal kurz und knapp: Kann man, sofern man den Algorythmus zur zufälligen Zeichenketten-Berechnung kennt, ohne allzu großen Aufwand die Zeichenkette reproduzieren? Oder bin ich da total auf dem Holzweg und das alles funktioniert total anders?

mfg
 
Vorweg: Algorithmus

Selbst wenn der Zufall der Zufallsfunktion von der Zeit abhägt, so weißt du noch immer nicht, aus welchem Pool die Zeichen geholt werden.
Wenn du allerdings den Algorithmus kennst, so wird die Frage interessanter. Allerdings gehe ich nicht davon aus, dass die Zufallsfunktionen nur von der Zeit abhängen. Ich denke in gute Zufallsfunktionen gehen mehrere Faktoren ein.
Aber gehen wir davon aus, dass sie von der Zeit abhängen, also:
Seien a,b Zeitpunkte mit a=b und f eine Zufallsfunktion. Dann gilt f(a) = f(b)

Dann muss beim Ausführen des Scripts die Laufzeit 1:1 übereinstimmen, da sonst die Zeitpunkte der Zufallsfunktionen unterschiedlich sind (ich gehe hier von sehr sehr sehr kleinen Zeitfaktoren für die Zufallsfunktion aus).

Jedenfalls würde ich sagen, dass es, selbst wenn du den Algorithmus kennst und die Zufallsfunktionen nur von dem Faktor Zeit abhängen, nicht ohne großen Aufwand möglich ist, dass Passwort zu reproduzieren.
Aber ich lasse mich gerne belehren.
 
Wahrscheinlich hängt es nicht nur von der Zeit ab, war ja auch nur eine Idee, dass es so sein _könnte_
Vielleicht sollte uns mal jemand erklären, wie die meisten Randomfunktionen aufgebaut sind.

Seien a,b Zeitpunkte mit a=b und f eine Zufallsfunktion. Dann gilt f(a) = f(b)
Ja, das war die Idee, dann wäre eben die einzige Schwierigkeit, die Bedingung a=b zu erfüllen, wenn man jetzt aber den Zeitpunkt ziemlich eng einschränken kann (man selbst sendet ja die Anfrage auf ein neues Passwort o.Ä), kann man je nachdem, wie klein die Zeiteinheiten sind, von denen die Random-Funktion abhängt, mehr oder weniger schnell den Schlüssel herausbekommen.
Wenn man dann genug Zeit hat, um durchzuprobieren, ob ein Schlüssel passt (man kann ja nicht alle weiß-ich-wie-viele Schlüssel auf einmal probieren, da macht der Server nicht mit), könnte es klappen.
Bei OpenSource Anwendungen wäre es auch gar nicht so abwegig, dass man den Algorithmus kennt ;)

Achja, eine kleine Anmerkung: Ich hab nicht vor, das ganze in irgendeiner Form auszunutzen, wenn es denn möglich ist. Das ist reine Interesse am Thema ;)
Wobei ich eh davon ausgehe, dass, wie mein Vorposter geschrieben hat, nicht einfach nur die Zeit der einzige Faktor ist.
 
die neue methode von web sites ist es sowieso, einen link zu schicken, der wird dann angeklickt, man ist mit seinem benutzernamen auf der webseite und kann im profil sein passwort neu einstellen

jetzt ist natürlich die frage wie leicht man diesen link wieder reproduzieren kann ;)
 
Zurück