1unitedpower: Ein Loginscript

Beitrag lesen

Das genügt nicht. Ist unsicher..

Ich spiele in diesem Fall nur sehr ungern die Rolle des Kritikers, insbeondere in Ermangelung anzubietender Alternativen. Ich habe fernen überhaupt keinen Zweifel daran, dass die Intention des Autors durchweg positiv ist und viel Mühe und Arbeit in den Wiki-Artikel geflossen ist. Das macht mir die folgenden Worte umso schwieriger. Der Artikel ist nun leider von diversen technischen und didaktischen Problemen übersäht, dadurch sehe ich die Computersicherheit unserer Leserschaft gefährdet. Bei diesem heiklen Thema möchte ich deshalb keine falsche Zurückhaltung üben.

Zum einen denke ich, dass der verlinkte Artikel seiner didaktischen Aufgabe nicht gerecht wird. Unsere Leserschaft und Zielgruppe sind lernende Anfänger. Dieser Personengruppe bleibt mangels Erfahrung und Fachkenntniss nicht viel mehr übrig als den Autoren einen Vertrauensvorschuss zu gewähren. Ein Artikel über Computersicherheit sollte deshalb hauptsächlich für die Komplexität und potenzielle Gefahren dieses Themas sensibilisieren. Der Artikel macht das nicht, er stumpft sogar dagegen ab: Beispielsweise empfiehlt der Artikel bei veralteten PHP-Versionen, die crypt-Funktion mit einer eigenen Implementation nachzurüsten. Dabei ist bekannt, dass PHP-Versionen kleiner als 5.4 selber keine Security-Patches mehr erhalten. Darauf aufbauend ist es defakto unmöglich ein sicheres Authentifizierungssystem zu entwickeln.

Weiterhin ist der Artikel in dem Bereich Anwendung und Praxis angesiedelt. Das beschriebene Loginsystem weicht allerdings vollkommen von der Architektur professioneller Systeme ab. Das ist deshalb schlecht, weil es den Leser nicht auf den Umgang mit solchen Systemen vorbereitet und dadurch zum Selbermachen animiert - und gerade in puncto Sicherheit ist das in 99,99% aller Fälle die schlechtere Alternative.

Zum anderen birgt der Artikel auch technische Fehler und Gefahren. So benutzt der bereits angesprochene Polyfill die PHP-Funktion rand. Diese Funktion berechnet allerdings nur Pseudozufallszahlen und ist für kryptographische Zwecke daher vollkommen ungeeignet. Das PHP-Manual warnt deswegen ausdrücklich vor Einsätzen dieser Art. Mathematisch betrachtet ist die daraus resultierende Hashfunktion genauso sicher zu bewerten wie eine Hashfunktion ganz ohne Salt. Der sicherheitsrelevante Beitrag ist maximal durch security-by-obscurity gegeben, dessen Nutzen auch stark angezweifelt wird.

Ferner fehlt es dem Code an jeglicher Strukturierung und Modularität. Bei deraritgen Sicherheitssystemen will man die Korrektheit und Zuverlässigkeit auf gar keinen Fall dem Zufall überlassen. Es ist deshalb in besonders hohem Maße wichtig den Quellcode so zu strukturieren, dass er in vorhersehbarer Art und Weise agiert. Meistens geht man sogar einen Schritt weiter und verifiziert die (partielle) Korrektheit mittels formaler Methoden. Mit so sündhaften Konstrukten wie das Einstreuen von die()-Anweisungen, das Mischen von Programmlogik mit Ausgabe und der Synthese von einander abhängigen Speicherzuständen ist das nicht durchführbar.

Mir fällt es schwer das zu sagen, aber der Artikel sollte unbedingt aus dem Wiki entfernt werden. Auch wenn das bedeutet, dass dadurch eine Lücke ensteht. Mindestens jedoch sollte eine riesieges Wanrschild darüber prangern.

0 58

Ein Loginscript

Malcolm Beck`s
  • datenbank
  • php
  1. -2
    pl
    1. 0
      Orlok
      • perl
      • zu diesem forum
  2. 0
    Jörg Reinholz
    1. 0
      Jörg Reinholz
      1. 0
        Malcolm Beck`s
        1. 0
          Jörg Reinholz
          1. 0
            woodfighter
            1. 0
              Auge
              • datenbank
              • menschelei
              • php
              1. 0
                Christian Kruse
                1. 0
                  Jörg Reinholz
          2. 0
            Malcolm Beck`s
            1. 2
              Auge
              • php
              • sicherheit
              1. 0
                Malcolm Beck`s
                1. 2
                  Jörg Reinholz
                  1. 0

                    Ein Loginscript - so weit, so gut

                    Malcolm Beck`s
                    1. 0
                      Matthias Apsel
                      1. 0
                        Malcolm Beck`s
                        1. 1
                          Auge
                          • internet-anbindung
                          • sicherheit
                          1. 0
                            woodfighter
                            • internet-anbindung
                            1. 0
                              Auge
                              1. 0
                                woodfighter
                                1. 0
                                  Auge
                      2. 0
                        woodfighter
                        1. 0
                          Jörg Reinholz
                        2. 0
                          Matthias Apsel
                          1. 0
                            woodfighter
                            • internet-anbindung
                    2. 1
                      Jörg Reinholz
                      • php
                      • programmiertechnik
                      • programmiertechnik
                      1. 0

                        Ein Loginscript - so weit geklärt

                        Malcolm Beck`s
                    3. 1
                      Jörg Reinholz
                      1. 0
                        Malcolm Beck`s
            2. 1
              woodfighter
    2. 0
      Malcolm Beck`s
      1. 0
        woodfighter
      2. 1
        Jörg Reinholz
    3. 3
      1unitedpower
  3. 2
    Felix Riesterer
    1. 4
      Christian Kruse
      1. 0
        Malcolm Beck`s
        1. 1
          Christian Kruse
          1. 0
            Malcolm Beck`s
            1. 0
              Christian Kruse
              1. 0
                Malcolm Beck`s
            2. 2
              woodfighter
              1. 0
                woodfighter
                • sicherheit
            3. 1
              Tabellenkalk
              1. 0
                Auge
                • datenbank
                • menschelei
                • php
              2. 0
                Jörg Reinholz
      2. 0
        Felix Riesterer
        1. 0
          Christian Kruse
      3. -2
        pl
        1. 0
          woodfighter
    2. 0
      Malcolm Beck`s
      1. 3
        Christian Kruse
        1. 0
          Malcolm Beck`s
          1. 0
            Christian Kruse
            1. 0
              Malcolm Beck`s
              1. 0
                Christian Kruse