Ich sollte noch eines ergänzen:
Auch wenn /dev/urandom
eine mathematische Funktion nutzt und also spätestens nach Verbrauch der Entropy kryptographisch zweifelhafte Zufallswerte liefert, so ist die Erzeugung der Session-IDs dennoch hinreichend sicher. Grund: Die aus /dev/urandom abgeholten Werte werden gehasht. Da aus dem Hash (jedenfalls wenn man nicht gerade MD5 oder SHA1 benutzt) die ursprünglichen Zufallswerte nicht wieder ausgelesen werden können fehlt es an einem Ansatzpunkt um aus einer gültigen Session-ID eine andere zu berechnen.
Ein Angriff würde zu dem auf Grund des dennoch notwendigen Durchprobierens der immer noch enormen Vielzahl der "wahrscheinlicheren Variationen" zudem den Charakter einer DOS-Attacke haben - also den Server lahmlegen, sich also selbst stoppen.