Veröffentlicht 26. März 20241 j Hallo, ich programmiere mir gerade ein eigenes, kleines Tool für Passwörter und Vertragsunterlagen in Java und speichere den Text AES Verschlüsselt in einer lokalen HSQL-Datenbank (wird jeweils beim ersten Ausführen angelegt). Einige Mitazubis haben schon Interesse an dem Programm verlauten lassen. Meine Frage ist nun, wie ich recovery Codes erzeugen kann, damit ein Nutzer, der sein Passwort vergisst, die Chance hat, sein Passwort zu ändern und wieder Zugriff auf seine Daten hat. Ähnlich der Recovery-Codes, die alle fast alle Anbieter bei einer 2-FA-Authentifizierung erzeugen, sollte jemand sein Authentifikationsgerät verlieren. Meine erste Idee wäre gewesen, das Passwort+Saltwert in AES-verschlüsseltem Klartext zu speichern, wobei der Schlüssel dann der recovery Code ist, sodass der Nutzer dann wieder Zugriff auf seine Daten hat. Ich bin mir allerdings nicht sicher, in wie weit das "Sicher" ist (AES selbst gilt ja als sicher) oder, ob es da bessere/sicherere/schönere Alternativen gibt. Liebe Grüße Bearbeitet 26. März 20241 j von Barandorias
26. März 20241 j vor 14 Stunden schrieb Barandorias: ob es da bessere/sicherere/schönere Alternativen gibt. Und wenn Du es doch als nette Spielerei probierst, weil jemand den heiligen Schlüssel vergessen könnte, wird dieser vermutlich als nächstes auch noch den Recovery-Schlüssel verlieren. Bearbeitet 26. März 20241 j von Dr. Octagon
26. März 20241 j vor 2 Minuten schrieb Dr. Octagon: Verschlüsselung mit Recovery... darauf muss man auch erstmal kommen. Und wenn Du es doch als nette Spielerei probierst, weil jemand den heiligen Schlüssel vergessen könnte, wird dieser vermutlich als nächstes auch noch den Recovery-Schlüssel verlieren. Ist nicht ganz abwegig. Siehe Bitlocker. Da wird der 48-stellige recovery key im besten Fall ins active directory gesichert. Da wird aber nicht nur mit symmetrischer Kryptographie gearbeitet. Ich finde es OK so eine Software spaßeshalber zu schreiben. Eine andere ist es, diese produktiv dann einzusetzen. Was macht deine Software anders als getestete Passwortmanager wie keepass oder bitwarden?
26. März 20241 j vor 18 Minuten schrieb Alexej_a7x: wie keepass Zumindest bei KeepassXC wird es kein Recovery bei Schlüsselverlust geben... und ich kann die Gründe immer wieder voll nachvollziehen, auch wenn es vielelicht irgendwann auch mal mich schmerzen würde. Sicherheit tut weh... als Admin wirst Du es immer wieder erleben, dass PWs von irgendwem vergessen wurden. Bei den meisten bleibt es dann aber bei einem Mal - man sollte also darauf keine Rücksicht nehmen müssen. Ich glaube, sonst gäbe es heute keine sichere Verschlüsselung. Oder: Was wäre, wenn Bitcoin auf die Passwortverlierer Rücksicht genommen hätte, weil es manchmal sogar um hunderte Millionen Verlorenes geht? Es wäre folgendes passiert: Die "Hacker" hätten jetzt alle Bitcoins... und sie wären nichts mehr wert.
26. März 20241 j vor 8 Minuten schrieb Dr. Octagon: Zumindest bei KeepassXC wird es kein Recovery bei Schlüsselverlust geben... und ich kann die Gründe immer wieder voll nachvollziehen, auch wenn es vielelicht irgendwann auch mal mich schmerzen würde. Eigentlich habe ich extra zwei Absätze gemacht um das gedanklich zu trennen. Nicht mehr, nicht weniger. Bei Bitlocker gibt es die Möglichkeit einer Recovery. Vorrausgesetzt: man nutzt einen Protector wie TPM+Pin. Mit TPM allein ist es witzlos. Weil Menschen andauernd Passwörter vergessen. Deswegen kann man den Gedankengang nachvollziehen. Mir ging es mehr darum; Kryptographie ist schwierig sicher zu implementieren. Ein Bruce Schneier ist nicht jeder.
26. März 20241 j vor 52 Minuten schrieb Alexej_a7x: Mir ging es mehr darum; Kryptographie ist schwierig sicher zu implementieren. Falls wir aneindander vorbeireden: Darum ging es mir eigentlich auch... und um dabei gleich auch den ersten Fehler anzumerken, namentlich "Hintertür / Recovery". Nicht mehr, nicht weniger, sondern irgendwas dazwischen.
27. März 20241 j Autor vor 9 Stunden schrieb Alexej_a7x: Was macht deine Software anders als getestete Passwortmanager wie keepass oder bitwarden? Allem vorran wollte ich mein Wissen in Richtung Kryptographie erweitern um zu verstehen, wie genau das alles funktioniert. Darum hatte ich in meiner Freizeit angefangen, das zu programmieren. Was dabei erst als kleines Projekt gedacht war, ist jetzt zu einer richtigen kleinen Spielerei mit einer Menge Funktionalitäten geworden. Bei den ganzen fertigen Programmen fehlen mir persönlich teilweise Sachen (bsp. das Hinterlegen von Vertragsinformationen in Tabellenform, um schnell irgendwas heraussuchen zu können), die Möglichkeit Tabllen mit den Headern anzulegen, wie ich sie brauche, etc. Das Programm ist so aufgebaut, dass sich die Frames beliebig anpassen lassen, u.a. der Spalten und deren Beschriftungen der Tabellen, da die Frames aus Datenbankdaten zusammengebaut werden. Möglichkeiten die Farbgebung aller Elemente zu individualisieren inkl., ein Hoch auf FlatFlaf und deren Einstellungsmöglichkeiten zur Runtime. 😁 vor 9 Stunden schrieb Dr. Octagon: Sicherheit tut weh... als Admin wirst Du es immer wieder erleben, dass PWs von irgendwem vergessen wurden. Bei den meisten bleibt es dann aber bei einem Mal - man sollte also darauf keine Rücksicht nehmen müssen. Okay, also ist die Idee eher "Suppe". Dann lasse ich das bleiben und vertraue darauf, dass die Leute sich ihre Passwörter merken....Oder das Passwort für den Passwort-Manager in einem anderen Passwort-Manager speichern. 😇 vor 8 Stunden schrieb Dr. Octagon: und um dabei gleich auch den ersten Fehler anzumerken, namentlich "Hintertür / Recovery". Genau solchen Input habe ich mir bei der Frage gewünscht. Ich glaube zwar nicht, dass mein Programm groß gegen Hacker wird kämpfen müssen, aber wenn ich es umsetze, dann richtig.
20. April 20241 j Leitest du den AES-Schlüssel über eine Hashfunktion ab? Ich würde glaube ich einfach direkt HASH(passwort + salt) als Recovery-Key verwenden. Wenn du möchtest, dass der AES-Schlüssel und Recovery-Key ungleich ist, kannst du auch HASH(HASH(passwort + salt)) als Schlüssel und HASH(passwort + salt) als Recovery Key verwenden Oder sogar HASH(HASH(passwort) + salt) als Schlüssel und HASH(passwort) als Recovery Key Oder zwei salts... Hat alles seine Vor- und Nachteile. Müsste ich wohl selbst etwas länger drüber nachdenken, was ich bevorzuge. Wichtig ist nur eine sichere Passworthashfunktion zu verwenden. Argon2, BCrypt, PBKDF2. Nicht SHA256 etc., das sind message digests. Bearbeitet 20. April 20241 j von Shannon
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.