Hallo zusammen,
ich habe in letzter Zeit schon öfter darüber nachgedacht, mir ein eigenes kleines System zur Verwaltung von Passwörtern zu basteln. Bevor ich das aber tue und dabei etwas furchtbar dummes anstelle, würde ich gerne eure Meinung dazu hören.
Gleich vorweg: Es geht hier um keine professionelle Anwendung, sondern um etwas für den Eigenbedarf. Dass es für so etwas schon fertige Softwarelösungen gibt ist mir bewusst, allerdings würde ich das gerne SELF machen …
Überhaupt angeregt, über so etwas nachzudenken, hat mich das Problem, dass ich mir (und da geht es mir vermutlich ähnlich wie den meisten Menschen) beim besten Willen nicht für jeden Online-Account ein möglichst kryptisches und mindestens 8 Zeichen langes Passwort merken kann. Andererseits wird ja auch immer wieder vor der Nutzung des selben Passworts für verschiedene Dienste gewarnt. Daher meine Idee:
Ich wähle ein „Master-Passwort“ und habe eine Tabelle mit einem Eintrag für jeden Account. Jeder Account hat einen eindeutigen Bezeichner, z.B. für Ebay „ebay“, ansonsten stehen in der Tabelle nur allgemeine Informationen wie eine Beschreibung des Accounts. Das Passwort für Ebay wird dann mit MD5 (oder auch mit einer moderneren Hash-Funktion) aus der Zeichenkette „Master-Passwort“+„ebay“ erzeugt.
Also, um es zu verdeutlichen: das Master-Passwort ist nirgends gespeichert, die jeweiligen Account-Passworte ebenso wenig. Vielmehr wird bei der Eingabe eines beliebigen Master-Passworts immer ein Passwort (also ein Hash aus Master-Passwort und Accountname) ausgegeben – nur, ob es sich um das richtige handelt, hängt eben ab vom korrekten Master-Passwort (ich hoffe, dies ist verständlich).
Einen besonderen Vorteil sehe ich darin, dass ich durch die Verwendung eines neuen Master-Passworts für jeden Account ein neues Passwort erhalte und so quasi ohne jeglichen Verwaltungsaufwand sämtliche Passwörter ändern kann (natürlich muss ich sie aber bei den entsprechenden Online-Diensten ändern). Eine ähnliche, noch einfachere Methode zum Passwortwechsel wäre, das Passwort-Hash aus HASHFUNKTION(Master-Passwort+Zähler+Accountname) zu generieren. So müsste ich nur den Zähler erhöhen und müsste nichtmal das Master-Passwort ändern.
Nun zu meinen Fragen:
Haltet ihr die Idee für vollkommen blödsinnig?
Muss ich etwas beachten, wenn ich statt des ganzen Hashs nur einen Teilstring daraus als Passwort verwenden möchte (z.B. die ersten 8 Zeichen)?
Wäre es eurer Meinung nach wesentlich sicherer, nicht den (als Klartext in einer Datenbank gespeicherten) Account-Bezeichner als Teil des Inputs der Hash-Funktion zu verwenden, sondern sich den Bezeichner stattdessen auch zu merken? (Und ja, in diesem Fall bestünde die Funktionalität meiner „Anwendung“ eigentlich nur im Ausgeben des Hashs.)
Ist es in diesem Anwendungsfall überhaupt relevant, was für einen Hash-Algorithmus ich nutze und ob ich meine Daten mehrere Runden durch den Hash-Algorithmus schicke?
Ich würde mich sehr über einige Gedanken und Anregungen zu diesem Thema freuen.
Schönen Abend und einen guten Start ins Wochenende,
Claudius