2013-05-20 // Login absichern mit Hashing und Zwei-Faktor-Authentifizierung
Ein normaler Login besteht in der Regel aus einer HTML-Form und einem Server-Skript zur Validierung. Ist die Verbindung nicht zusätzlich über HTTPS abgesichert, kann ein Angreifer durch das Abhören des Netzwerkverkehrs die Zugangsdaten erlangen. Selbst wenn die Verbindung gesichert ist, gibt es andere (nicht technische) Möglichkeiten für einen Angreifer, z.B. die Eingabe der Zugangsdaten zu beobachten.
Einen HTTP Login absichern:
- Sichere Übertragung des Kennworts (per „Salted-Hash“)
- Zusätzliche Authentifizierung über ein Token (Smartphone App)
Grundgerüst
Um einen einfachen Login zu realisieren benötigt man eine HTML-Form mit Text- und Kennwortfeldern, sowie ein Server-Skript (in diesem Beispiel PHP) für die Validierung der Benutzerdaten:
- login.html
<html> <head> <title>Login</title> </head> <body> <form action="login.php" method="POST"> Benutzername: <input type="TEXT" name="username"><br> Kennwort: <input type="PASSWORD"name="password"><br> <input type="SUBMIT" name="Login" value="Login"> </form> </body> </html>
- login.php
<?php if ($_POST["username"] == "foo" && $_POST["password"] == "bar") { echo "Login ok"; else { echo "Login fehlgeschlagen"; }