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