Sind Session-IDs in PHP unsicher?
Kommentare

„Seeding ist Unsicher“: Das soll eine Präsentation der internationalen IT-Sicherheitsfirma Positive Technologies beweisen, in der festgehalten wurde, wie der Seeding-Algoritmus einer beliebigen PHP-Seite

„Seeding ist Unsicher“: Das soll eine Präsentation der internationalen IT-Sicherheitsfirma Positive Technologies beweisen, in der festgehalten wurde, wie der Seeding-Algoritmus einer beliebigen PHP-Seite gehackt wurde. Anschließend ließen sich beliebige Session-IDs vorhersagen und Admin-Passwörter zurücksetzen. Und das dauerte nur acht Minuten, da Amazons GPU-Server-Farm als Rechenknecht eingespannt wurde.

In Reddit meldete sich einer der Autoren zu Wort:

Author of the slides here. Yes, your idea in updated message is correct. What we do:

  1. make a web-server spawn new freshly seeded processes
    make a target request in a fresh process to reset admin password

  2. get PHPSESSID from the reposnse
  3. bruteforce it to get pid, LCG seeds s1 and s2
  4. use the info to recreate the webapp’s steps to generate admin password reset token

In a word, this is NOT a webapp’s fault but of PHP, because:

  1. seeding is not secure

  2. documentation has no notice on mt_rand() insecurity regarding cryptographic purposes, so that developers continue to use it in their webapps.
  3. lack of adequate measures to generate secure random numbers except for openssl_random_pseudo_bytes() which is not a universal solution.

Als Ratschlag sagt er, dass man bei jeder Token-Erstellung einen sicher abgelegten Private Key einsetzen sollte. Die Generators sollten außerdem neu geseedet werden, nachdem eine Zufallszahl erhalten wurde. Damit werde garantiert, dass keine weiteren Keep-Alive-Anfragen denselben Status teilen. Überdies empfiehlt er einen alternativen Zufallszahlen-Generator.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -