Login

 

PHP Session-ID unsicher?

Tuesday, March 30th, 2010 - 07:27 PM

Wie es aussieht kann man sich nicht auf die Session-ID als Identifikator eines angemeldeten Users verlassen. Der Sicherheitsexperte Andreas Bogk warnt, dass man trotz der jüngsten Verbesserungen in PHP die Session-ID erraten kann.

Das Problem ist, dass die Session-ID zufällig durch einen Pseudo-Zufallszahlengenerator wie der Linear Congruential Generator (LCG) generiert wird. Er erzeugt durch komplexe Operationen Zufallszahlen, die keine Rückschlüsse auf die kommenden Zahlen erlauben.

Entscheidend ist der Initialisierungswert des Generators. Wenn man diesen kennt, ist man in der Lage mit den gleichen Operationen alle Pseudozufallszahlen zu berechnen. Es ist daher wichtig den Generator mit nicht vorhersagbaren Zahlen zu initialisieren.

Jedoch wurde bei den "verbesserten" PHP-Versionen 5.3.2 beziehungsweise 5.2.13 laut dem Hacker Samy Kamkar dies nicht vollständig durchdacht. Eine Kommentar-Zeile des PHP-Entwicklers zeigt, dass er kurze Zeit nach der Initialisierung als zusätzliche Zufallsquelle ein zweites Mal die Systemzeit abruft.

/* Add entropy to s2 by calling gettimeofday() again */

Dies legt nahe, dass die Zahl X zu leicht zu erraten ist und sie darauf hin mit
X + 23 kombiniert wird. Bogk formuliert es so: "Da [wird] nicht viel mehr Entropie hinzugefügt" und empfiehlt den PHP-Entwicklern ihre Kryptographie-Kenntnisse aufzufrischen.

Wer die PHP-Erweiterung Suhosin einsetzt ist übrigens nicht betroffen.

Link: www.heise.de/newsticker/meldung/PHP-stuempert-bei-Zufallszahlen-967062.html

«zurück

Notification

www.sos-kinderdorfinternational.org Valid XHTML 1.0 Strict Valid CSS 2.1