JensDiemer

die Informationen hier sind nicht mehr ganz aktuell!
Aktuellere gibt es hier: http://www.pylucid.org/permalink/42/secure-login-without-https

Links

Ablaufplan

Auth.Verfahren - User erstellen:

1. Client:

  • User füllt Formular mit Name und Passwort aus.
  • per JS: bilden aus ersten vier Zeichen eine MD5 Summe
  • MD5 Summe + rechlichen Zeichen des Passworts zum Server schicken

2. Server:

  • restliche Zeichen des Passworts mit geschickter MD5 Summe verschlüsseln
  • verschlüßeltes Passwort und sonstige Userdaten in DB eintragen

Auth.Verfahren - Client Login:

1. Client:

  • schickt login-Anfrage

2. Server:

  • setzt SessionID per Cookie
  • generiert Random-Zahl
  • speichert Random-Zahl mit SessionID in DB
  • schickt LogIn-Form mit Random-Zahl zum Client

3. Client:

  • eingetipptes Passwort wird aufgeteilt ersten vier Zeichen | rechtlichen zeichen
  • erstellung der MD5 Summen:
    • MD5( ersten vier Zeichen)
    • MD5( rechlichen Zeichen + die Random-Zahl vom Server )
  • sendern des Usernamens (Klartext) + beide MD5-Summen

4. Server:

  • mit der ersten MD5 Summe wird das Passwort aus der DB entschlüsselt
  • Random-Zahl per SessionID aus der DB holen
  • mit dem entschlüsselten Klartext-Passwort und der Random-Zahl wird eine MD5 Summe gebildet
  • vergleichen der zweiten MD5 summe vom Client und der gebilteten

Aktueller Source-Code

Der Source-Code ist direkt aus PyLucid. Er so für sich, nicht ohne weiteres benutzbar :( Wenn ich Zeit hab, verallgemeinere ich das evtl. Es fehlt auch die passende HTML-Login-Seite!