Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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

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?

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

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.

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. :)

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

  • 4 Wochen später...

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.