Zum Inhalt springen

Frage

Geschrieben (bearbeitet)

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 von Barandorias

7 Antworten auf diese Frage

Empfohlene Beiträge

  • 1
Geschrieben (bearbeitet)
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. :P

 

Bearbeitet von Dr. Octagon
  • 1
Geschrieben
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. :P

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?

  • 1
Geschrieben
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. :P

  • 1
Geschrieben
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.

  • 1
Geschrieben
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. :)

  • 0
Geschrieben
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.

  • 0
Geschrieben (bearbeitet)

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 von Shannon

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...