| | | | |
| | |
| Neuer Benutzer Registriert seit: 30.09.2009
Beiträge: 6
PHP-Kenntnisse: Anfänger ![]() | Hallo, wie sieht es denn hier mit der Sicherheit aus? und was ist im Allgemeinen bei login-Systemen mit Sessions zu beachten? - md5-Verschlüsselung von Passwörtern heißt ja nicht gleich, dass es sicher ist! Gruß und Danke, hallophp |
| |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer | Zuerst solltest du gedanklich voneinander trennen: Verschlüsselung und Hash. Nicht jede Datenverfälschung ist automatisch eine Verschlüsselung. Ein Hash ist eine Datenverfälschung aber führt zu doppeldeutigen Ergebnissen. Sprich: Wenn dein Hash aus "meinPasswort" den Text "a1a2a4" ergibt, jedoch der Hash aus "meinNeuesPasswort" ebenfalls "a1a2a4" ergibt, hast du ein gewaltiges Problem. Genau sowas macht ein Login-Script unsicher und anfällig gegenüber Rainbow-Tables. Solche Rainbow-Tables sind quasi Passwort-Listen, die einfach per Ausprobieren in dein Loginformular gesteckt werden. Die Rainbow-Tables interessieren sich nicht dafür, das richtige Passwort auszuspähen, sondern einfach irgendeines, das von deinem Script zufällig als das richtige abgesehen wird. Und daher müssen die auch nur einen Bruchteil der theoretisch denkbaren Passwörter ausprobieren. Alleine aus dem Blickwinkel ist das von dir verlinkte Login-Script bereits als sehr unsicher zu bezeichnen. Es ist gut für ein Lern-Beispiel, bei dem die Sicherheit unwichtig ist, lässt sich jedoch mit einfachsten Mitteln knacken.
__________________ www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih |
| |
| | |
| Erfahrener Benutzer | Du vergisst da eines: In obigem Beispiel gab es keinerlei Salz, Nikosch. Klar, je nachdem, ob du das Salzt und wie extrem, ob du doppeltes Hashing nutzt u.ä., kannst du das soweit treiben, dass jede derzeit denkbare Rainbow-Table unbrauchbar wird. Dann hast du jedoch ein zweites Problem: Wenn du ein Open-Source-Produkt verwendest, kannst du einen Angreifer durchaus in die Lage versetzen, das Salz zu errechnen, wenn er einen eigenen Account hat und durch Ausprobieren Hash-Kollisionen findet. Es gibt bzgl. Sicherheit ein gewaltiges Kommunikationsproblem: Sicherheit bezieht sich auf Angriffsmethoden und auf Anforderungen. Zu sagen, dass etwas sicher ist, impliziert, dass man dabei Angriffsmethoden im Hinterkopf hat und eine Anforderung an die Höhe der Sicherheit. Natürlich würde kaum jemand je versuchen, das Salz wie oben beschrieben zurückzurechnen, auch wenn es durchaus denkbar wäre. Zum einen braucht man dazu Zeit und Rechnerpower und zum zweiten gibt es andere deutlich effektivere Angriffsmethoden. So gesehen ist das Salten entsprechend sicher. Aber es gibt einfach umzusetzende Varianten, die noch sicherer sind, beispielsweise ein Salz, was zusätzlich in der Datenbank hinterlegt wird und sich pro User unterscheidet. Beispielsweise die Microsekunden bei der Registrierung. Hashmethoden haben beispielsweise gegenüber 2-Weg-Verschlüsselungen einen entscheidenden Vorteil: Fällt die Datenbank einmal in falsche Hände, lässt sich das tatsächliche Passwort nicht mehr zurückrechnen. Heutzutage verwenden viele User auf hunderten Webseiten den gleichen Benutzernamen und das gleiche Passwort. Einfach aus Notwendigkeit, sich nicht hunderte Passwörter zu merken. Schafft man als Angreifer, eine unsichere Webseite zu knacken, um so aus einer Datenbank tausende Passwörter auszulesen, die dort im Klartext gespeichert sind, hat man bereits Geld verdient. Solche Benutzername-Passwort Kombinationen kann man durch Ausprobieren auf anderen Webseiten schnell versilbern.
__________________ www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih |
| |
| | |||||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
Zitat:
Zitat:
Zitat:
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- | ||||
| |
| | |
| Erfahrener Benutzer | Ich brauch nichts zu merken, ich weiß doch bereits von Anfang an worauf du hinaus willst. Nur drehen wir uns im Kreis: Meine Aussagen sind keinesfalls Quatsch, wenn man den richtigen Bezug herstellt. Deine Aussagen sind aber auch kein Qutsch, wenn man den richtigen Bezug herstellt. Der Unterschied ist, dass wir zwei beiden andere Maßstäbe anlegen, deswegen ist meine Aussage in deinen Augen Qutasch Nichts anderes ist gemeint mit meinem obigen Absatz über das "Kommunikationsproblem". Wir zwei wissen beide, was sicherer ist und was nicht. Und wir zwei beide wissen, dass es im Prinzip kein perfekt gesichert gibt, sondern dass es immer nur eine Frage eines Wettrüstens ist. Bei der Antwort auf die Frage "Ist XYZ sicher?" muss man immer mit kommunizieren, welche Attacken man im Sinn hat und welche Anforderungen. Eine Antwort "Ja" darf es bei dieser Frage niemals geben, denn es gibt immer nur die Antwort "Ja, weil derzeit keine Attacken bekannt sind oder der Aufwand für Rechenleistung etc. zu hoch, um das zu knacken." oder die Antwort "Ja, weil der Aufwand so hoch ist, dass es unattraktiv wird für einen professionellen Hacker."
__________________ www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih |
| |
| | ||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Ich wollte Dich auch nicht anmachen Mit Zitat:
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- | |
| |
| | |
| Erfahrener Benutzer | Ich habe mich auch nicht angemacht gefühlt gewesen tun Aber eine Aussage von dir ist schlichtweg falsch. Ein MD5 kannst du niemals zu einem Ursprungspasswort zurückrechnen. Ich hoffe du hast das so auch nicht gemeint, denn dann hättest du ein gravierendes Verständnisproblem, was MD5 tut. Du kommst bestenfalls zufällig mal auf das ursprüngliche Passwort. Das, was du kannst, ist ein Alias zu errechnen, wenn du die Datenbank hast. Sprich: Du kannst problemlos ohne weiteren Zugriff auf die Webseite Account-Passwort Paare ermitteln. Dieses Paar funktioniert jedoch (Salt vorausgesetzt) niemals auf einer anderen Webseite, sofern nicht zufällig die Salts dort übereinstimmen, wovon ich mal ausgehe. Meine Argumentation: Du kannst versuchen, Passwörter zu erraten. Dabei kannst du die Rainbow-Tables als Wörterbücher mißbrauchen, indem du gezielt Passwörter verwendest, die deinen Algorithmus (bei Open Source bekannt) erfüllen und die der Reihe nach MD5s durchgehen. Bei MD5-Hashes, die einfach durch "statisches" Salz angereichert werden, nimmst du eins oder gleich eine ganze Reihe von bekannten User-Passwort-Paaren und nimmst diese als Grundlage um den Algorithmus zu ermitteln. Du redest davon, eine bereits gehackte Datenbank (beispielsweise per SQL-Injection ist der MD5 des Admins ausgelesen worden) zu nutzen, um via Rainbow-Tables ein funktionierendes Passwort zu ermitteln. Das sind zwei völlig verschiedene Angriffsvarianten und zwei völlig verschiedene Schuhe. Klar, sofern Passwörter einfach sind, führt eine Rainbow-Table zufällig zum Ursprungspasswort (Passwort "hund" wird sicher auch in einigen Rainbow-Tables verwendet). Aber die Rainbow-Tables decken nicht nur diese Art des Wörterbuchs ab. Sie lassen sich für mehrere Formen der Hackerangriffe mißbrauchen. Oder anders ausgedrückt: Du hast eine bestimmte Unterart der Rainbow-Tables im Sinn. Zu der Familie gehören aber auch Tabellen, die auf kryptischen Passwörtern basieren und im Sinn haben, jeden denkbaren Hashcode über algorithmen auf ein funktionierendes Passwort zu mappen.
__________________ www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih |
| |
| | ||
| Neuer Benutzer Registriert seit: 30.09.2009
Beiträge: 6
PHP-Kenntnisse: Anfänger ![]() | d.h. heißt also ich ersetzte die $_REQUEST-Anweisungen mit mysql_real_escape_string? - oder muss ich dafür das gesamte Login-System verändern? Zitat:
ansonsten gibt es nichts auszusetzen? - das wäre mir auch lieber, da ich das Login-System schon integriert habe. Gruß und Danke (für die Diskussion ),hallophp | |
| |
| | |||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | @hallo: Bitte benutze die Forensuche und/oder Google zu den Themen $_REQUEST und real_escape. Und nein, das sind zwei getrennte Probleme. Zitat:
Zitat:
Aber lass uns hier aufhören, wir wissen beide, wovon wir reden
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- | ||
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Sicherheit bei PHP Login Script | taurus | PHP Tipps 2009 | 9 | 27.09.2009 01:46 |
| Sicherheit bei login | SteiniKeule | PHP Tipps 2009 | 19 | 03.08.2009 22:02 |
| [Erledigt] Login System mit Registrierung | xstefxanx | PHP Tipps 2009 | 9 | 31.03.2009 16:33 |
| login system, logout timer | superfutzi | PHP Tipps 2008 | 14 | 28.12.2008 12:30 |
| Mysql LoginScriptzu MySqli LoginScript | lithium | PHP Tipps 2008 | 27 | 17.11.2008 19:48 |
| Login System | matii | PHP Tipps 2008 | 6 | 16.04.2008 11:35 |
| Brauche Ratschläge bzg. Klassenaufbau und Sicherheit | NONNNNN | PHP-Fortgeschrittene | 13 | 25.03.2008 15:05 |
| Login System Probleme ! | 7Style | PHP Tipps 2008 | 2 | 07.01.2008 13:55 |
| Problem mit meinem Login System | DJ Nuno | PHP Tipps 2008 | 9 | 16.10.2007 16:44 |
| Sicherheit - GET-Links (Login, Bestellungen, usw.) | bluebird | PHP Tipps 2006 | 7 | 21.06.2006 19:24 |
| Sicheres Login System? | PHP Tipps 2006 | 11 | 14.03.2006 15:05 | |
| Login System für die eigene HP? | Datenbanken | 1 | 05.10.2005 19:48 | |
| sicherheit meines login | PHP Tipps 2004 | 4 | 27.07.2004 17:53 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php login system sicherheit, php login system salt, php datenbank login system, php login system sicher verschlüsselt, trivialpasswörter liste, java loginsystem, md5 hash salzen, java loginscript hashwert auslesen, login-system mit salt, php registrierung login script, php trivialpasswort, registrierungssicherheit einrichten, java login salt, sichere login sytem php, loginsystem salt in datenbank, angriff registrierungssicherheit einrichten, java trivialpasswörter erkennen, java trivialpasswörter, login system php sicherheitslücken, php sicheres login system |