Hallo zusammen,
aktuell setze ich mich ein bisschen mit der Verschlüsselung auseinander und habe mich bspw. mal in das Whitepaper von 1Password (Password Manager) und weiteren Tools eingelesen. Ich würde gerne eine kleine Anwendung schreiben die sowas ähnliches kann, nur zu Testzwecken um das ganze besser zu verstehen. Mein Ansatz wäre folgender:
Master Password - kennt nur der User, ist weder auf dem System noch sonst irgendwo gespeichert, muss manuell eingetippt werden
Security Key - ein 26-stelliger randomly-generated Key, der im Windows Credential Manager / macOS Keychain hinterlegt ist, nur auf dem System des Nutzers
Nutzer gibt Master Password ein, Security-Key wird generiert (bei erstem Start) / abgerufen. Der Security Key (auch wenn dieser indirekt bekannt ist, da auf System des Nutzers) wird mit dem Master-Password kombiniert und gehasht (SHA-512) und dann als Key beim verschlüsseln / entschlüsseln der Datenbank verwendet (AES-256-CBC).
Jetzt stellen sich hier vier Fragen:
1. Ist es schlimm wenn der IV-Vector bekannt ist? Der soll random generiert werden, allerdings muss dieser ja irgendwo hinterlegt werden damit dieser immer abrufbar ist.
2. Sehe ich das richtig, dass wenn eine Komponente (Master Password oder Security Key) fehlt, kein Zugriff möglich ist? Ergo Master Password vergessen -> Daten futsch, Key gelöscht und nichtmehr bekannt -> Daten futsch?
3. Dementsprechend, Angreifer muss Master Password UND Key kennen, um Zugriff zu erlangen? Hat er den Key, muss er das Master Password erraten, hat er das Master Password, muss er an den Key gelangen. Richtig verstanden?
4. Allgemeine Meinung zu meinem Ansatz?
Danke schonmal!
Grüße
Jan
aktuell setze ich mich ein bisschen mit der Verschlüsselung auseinander und habe mich bspw. mal in das Whitepaper von 1Password (Password Manager) und weiteren Tools eingelesen. Ich würde gerne eine kleine Anwendung schreiben die sowas ähnliches kann, nur zu Testzwecken um das ganze besser zu verstehen. Mein Ansatz wäre folgender:
Master Password - kennt nur der User, ist weder auf dem System noch sonst irgendwo gespeichert, muss manuell eingetippt werden
Security Key - ein 26-stelliger randomly-generated Key, der im Windows Credential Manager / macOS Keychain hinterlegt ist, nur auf dem System des Nutzers
Nutzer gibt Master Password ein, Security-Key wird generiert (bei erstem Start) / abgerufen. Der Security Key (auch wenn dieser indirekt bekannt ist, da auf System des Nutzers) wird mit dem Master-Password kombiniert und gehasht (SHA-512) und dann als Key beim verschlüsseln / entschlüsseln der Datenbank verwendet (AES-256-CBC).
Jetzt stellen sich hier vier Fragen:
1. Ist es schlimm wenn der IV-Vector bekannt ist? Der soll random generiert werden, allerdings muss dieser ja irgendwo hinterlegt werden damit dieser immer abrufbar ist.
2. Sehe ich das richtig, dass wenn eine Komponente (Master Password oder Security Key) fehlt, kein Zugriff möglich ist? Ergo Master Password vergessen -> Daten futsch, Key gelöscht und nichtmehr bekannt -> Daten futsch?
3. Dementsprechend, Angreifer muss Master Password UND Key kennen, um Zugriff zu erlangen? Hat er den Key, muss er das Master Password erraten, hat er das Master Password, muss er an den Key gelangen. Richtig verstanden?
4. Allgemeine Meinung zu meinem Ansatz?
Danke schonmal!
Grüße
Jan
Software being "Done" is like lawn being "Mowed". (Jim Benson)
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „KidRick“ ()