Sicherheit von Passwörtern in Java Anwendungen

Es geht um die Sicherheit, dass das Passwort für dritte nicht einfach einsehbar ist. Aber reicht es das Passwort nicht als Klartext sondern verschlüsselt in der Datenbank abzuspeichern? Nein, den mit Hilfe von Raibow Tabllen kann der Angreifer möglicherweise das richtige Passwort des Hashes erfahren. Um dies zu verhindern gibt es verschiedene Gegenmaßnahmen:

  • Salt Werte verwenden beim erstellen der verschlüsselten Passwörter
  • Passwörter Encrypten bevor sie gespeichert werden
  • Honeyword Passwörter erstellen

Das Passwort Security Modul http://lightszentip.github.io/password-security/ ermöglicht alle drei Maßnahmen. Bei Honeyword geht es darum falsche Passwörter zu generieren um den Angreifer die Wahl zu geben, welches Passwort er für das richtige hält und z.B. nach einem Angriff zu merken wenn die geklauten Passwörter verwendet werden in dem sie mit dem fake Passwörtern übereinstimmen. Bei Passwort Security muss man z.B. beim initialisieren der Klasse bestimmte Parameter mitgeben, welche von der Installation in der das Modul verwendet wird abhängen können. Damit benötigt der Angreifer nicht nur das Passwort sondern auch die Parameter um es zu encrypten und die richtige Verschlüsselung zu kennen. Wenn diese Parameter z.B. aus den System variablen des Rechners kommen und der Angreifer darauf keinen Zugriff hatte, bringen ihm die geklauten Passwörter wenig. Dadurch sind die Passwörter der Benutzer sicherer falls ein Angriff mit Erfolg statt finden sollte.