This is (currently) NOT the tool to use!

Aktualisiert am 08.04.2015!

Im aktuellen Linux-Magazin gibts einen Test von MyPasswords, einem in Java geschriebenen Passwort-Manager. Das Tool erhält 4 von 5 Sternen. Bei einem anderen Test schreiben die Autoren gar: this is the tool to use. Nun, da ich selbst einen Passwort-Manager geschrieben habe, interessiert mich ganz besonders, wie sie aus dem Master-Passwort den AES-Key ableiten. Ich setze hier auf scrypt. Und auf was setzen die MyPasswords-Macher? Auf das hier:

  public static String getKey(String password) throws NoSuchAlgorithmException
  {
    for (int i = 0; i < 1000; ++i)
    {
      password = SHA256(password);
    }
    return password.substring(0, 16);
  }

WTF!!! Warum? Mit aktueller Grafikhardware kann jeder Depp Millionen von Hashwerten in der Sekunde berechnen! Hier ein entsprechender Kommentar von 2012 auf Stackoverflow:

Remember that a GPU can hash 50x – 100x faster than a CPU. Its harder to program, but more efficient. See www.bitcointalk.com for numbers. I know I do 622 million SHA-256’s per sec on a Radeon HD5830.

Von der Software kann ich aktuell nur abraten. Hoffentlich hat da niemand seine Passwörter in die Wolke exportiert.

PS: Ich hab mal eine Problembeschreibung bei GitHub eingestellt.

PPS: War neugierig und hab mir mal die Verschlüsselung angeschaut. Wenn ich das richtig sehe, dann wird hier AES im ECB-Modus (!) betrieben. Anfrage läuft bereits.

Aktualisierung, 08.04.2015:

Ich hab mich ein zweites Mal ans Linux-Magazin gewendet. Aber lest selbst:

Hallo nochmal,
 
ich habe mir nach Hinweis des Autors mal die Sourcen der Version 2.95 angesehen. Hier ist es jedoch noch schlimmer:
 
AES-Key = (erste 8 Byte des Passworts) | (erste 8 Byte des Passworts)
 
(siehe Methode Utils::createEncryptionKey())
 
Aber das ist noch nicht alles. Der Passwort-Hash (SHA256) wird in der Datenbank gespeichert. Hiermit wird die Login-Funktionalität realisiert. Das betrifft übrigens auch die Version 3.0, welche bei GitHub verfügbar ist.
 
Das Programm ist aus meiner Sicht eine kryptographische Katastrophe!
 
Viele Grüße,
Karsten Heinze