KeePassXC Keyfile Entschlüsselung oder PW Eingaben sicher durchführen

Hi, ich würde gerne KeePassXC nutzen.

Hatte mir folgende Szenarien ausgelegt aber irgendwie ist keins davon „zufriedenstellend“

Methode 1:

KeePass OFFLINE auf extra System welches zusätzlich verschlüsselt ist.
Keyfile Verschlüsselt auf einem Stick.
Bei Bedarf hochfahren, Stick einbinden alles Entschlüsseln und Daten manuel „aptippen“

Umständlich, aber sowohl die Passworter für die Verschlüsselung sowie der „Masterkey“ für das Keyfile ist relativ „sicher“
Im Zweifel kann am anderen Rechner durch Kompromitierung nur das derzeit eingegebene Passwort für z.b. die jeweilige Webseite abgegriffen werden.

Methode 2:

KeePass auf dem jeweiligen Systemen nutzen.
Datenbank via USB Stick verbinden (Verschlüsselt)

Auto-Type oder Addon nutzen…
Somit wären zwar die Einzeleinträge im Falle einer System-Kompromitierung „geschützt“…

ABER niemals der Verschlüsselungskey vom USB Stick und der „Masterkey“ und beides wäre ja zur „Freigabe“ der Datenbank notwendig.
Abgesehen könnte in diesem Fall auch ggf die ganze Datenbank abgegriffen werden… Womit eigentlich nicht mal der eigentlich Zweck erreicht wird (Schutz bei Eingabe der Daten)

Übersehe ich eine andere sicherere Methode?

Gegen welchen realistischen Angriff?

Ich verlasse mich auf die Sicherheit der Software und die Stärke des Masterpassworts.

Selbst wenn ein Angreifer an die Datenbank kommt, ist diese ja verschlüsselt und bräuchte Ewigkeiten um sie zu öffnen. Vorausgesetzt das Master Passwort ist ausreichend stark…

1 „Gefällt mir“

Ich glaube ich wurde leider nicht ganz verstanden:
Ich versuche es nochmal zu erklären :slight_smile:

Bei Methode 1:

Wäre es einem Angreifer in 99,5% nicht möglich an die Datenbank zu kommen, da alles Offline und 3 fach Verschlüsselt ist (OS, USB, Keyfile)
Zustätzlich werde ich das Keyfile mit einem Yubikey Auth versehen.

Hierzu müsste er physisch an meine System + USB Stick kommen…
Dann alle 3 Verschlüsselungen knacken und selbst dann braucht er noch den Yubikey…

Die einzige Schwachstelle dieser Methode ist meiner Meinung nach das System wo jeweils das Passwort für den Account/Programm genutzt wird! Da dieses am Netz ist…
Wenn die Website / Programm 2FA supportet, was IMMER noch nicht alle tun, und erst recht nicht via hardware Key, wäre man selbst in diesem Szenario relativ „sicher“

Bei Methode 2 :

Besteht das Problem das dann zwar das jeweilige „Account Passwort“ sicher übertragen werden kann… Ich aber mit dem Zugrifen auf die Keydatenbank vom selben System aus welches ONLINE ist, die ganze Datenbank sowie alle Verschlüsselungskeys abgreifbar mache z.b. wenn man den Zwischenspeicher im Betrieb ausliest, oder einfach Keyloggt…
Gegen das Keyloggen hilft der Yubikey zusätzlich als „Schutz“ da an Angreifer somit ein Schlüssel fehlt aber wenn er eh schon zugriff auf das System hat könnte er einfach den ganzen Keyfile Inhalt wenn entschlüsselt abgreifen…
Kurz gesagt ist hier die Offenlegung des Keyfiles auf dem selben System ein „Problem“

D.h. der realistische Angriff wäre hier Bedrohungen z.b. durch Zerodays in Software oder OS… oder gar Spyware in Hardware ab „werk“, und das ist schon oft genug vorgekommen…

Man muss also davon ausgehen das selbst das eigene Netzwerk wenn auch gut abgesichiert und segmentiert Kompromitiert sein kann…

D.h. durch mein Threat model, habe ich quasi eine Zero Trust gegenüber Systemen die „Online“ sind…

Hoffe man versteht meinen Gedankenansatz jetzt etwas besser?

Also kurz gesagt am sichersten wäre in dem Fall bis jetzt wohl immer noch Methode 1…
Man wäre nur „angreibar“ wenn eine Seite oder Programm keine Hardware 2FA supportet…

Und hier ist meine Frage an die anderen „paranoiden“ habe ich was übersehen bzw gibt es wege diese Problematiken noch zu umgehen?
Dennoch würde ich auch behaupten das in dem Fall mein Opsec schon wirklich sehr sehr „hoch“ ist…

Falls Du Nuklearwaffenabschusscodes verwaltest und die CIA, der Mossad, MI6 und GRU gleichzeitig hinter Dir her sind, hilft alles nichts wegen:

security

Im normalen Gebrauch ist bei zusätzlichem Einsatz von Soft-Token, Hardware-Token und Alles nochmal extra verschlüsseln, die Wahrscheinlichkeit, daß du Dich selber aus Deiner eigenen Datenbank aussperrst wesentlich höher als daß Du Dich gegen eine realistisch anzunehmende Bedrohung schützst.

Für mich gibt es nur zwei ernsthafte Bedrohungsszenarien, ein schwaches Masterpasswort oder ein kompromittiertes System.

6 „Gefällt mir“

Auto-Type oder Addon nutzen…

Da du sehr viel Wert auf Sicherheit legst, empfehle ich dir Auto-Type

Zustätzlich werde ich das Keyfile mit einem Yubikey Auth versehen

die Idee, dass du das Keyfile mit nem Yubikey Auth versehen kannst, hatte ich gar nicht auf dem Schirm

1 „Gefällt mir“

Hallo. Hier beschreibe ich die Sicherheit, die KeePassXC geben kann, wie es schützt, und Angriffszenarien. https://molotnikov.de/docs/KeePassXC-Review-V1-Molotnikov.pdf

1 „Gefällt mir“

Ja, am „sichersten“ ist Methode 1, wenn man keine Fehler macht, aber du bist sowieso nur über Passwörter ernsthaft angreifbar, wenn keine richtige 2FA unterstützt wird, oder diese auszuhebeln ist.
Dabei spielt es eigentlich nie eine Rolle wodurch diese Passwörter bei deinen zwei genannten Methoden in Lagerung sicherer sind, da man sie regelmäßig verwendet, und somit ständig abgegriffen werden könnten, oder sowieso besser separat von diesen gespeichert werden sollten - und in sicherheitskritischen Fällen kein Alltagssystem & Konzept taugt, und sich die Frage eigentlich nicht wirklich stellt?
Grade in Anbetracht von (aktuell gehaltenen) Read-Only Systemen, welche für hohe Sicherheitsanforderungen viel sinniger sind, da man diese für jede unabhängige/einzelne Tätigkeit neu booten bzw. relativ weitgehend „dekompromittieren“ kann, und dort dann auch nicht alle Passwörter auf einmal braucht oder haben sollte.

Ich weiß ehrlich gesagt nicht, von was für Software du sprichst, wenn du für solche Passwörter und Hardware 2FA erwähnst. Aber bei allem, was kein Webdienst-Client ist, hast du nur 2 Optionen: Symmetrische & asymmetrische Kryptographie - wenn das System kompromittiert ist, ist es egal, wo der Schlüssel für die Funktion herkommt, nur komplette Auslagerung bringt Sicherheit… für das Schlüsselmaterial, den Inhalt brauchst du trotzdem irgendwo. Alles andere ist, afaik & Heutzutage, einfach nur Hirngespinst.

Nein, falls du mit Problematiken die der Handhabung/Sicherheit o.Ä. meinst.
Eine Verbindung zu deinem Offlinesystem macht dieses streng-paranoid genommen zu einem Onlinesystem. Jede Einwegverbindung von diesem muss auf dem kompromittierten System entgegengenommen werden, und ist dann dort auch gleich kompromittiert, gerade wenn der Inhalt (Passwörter) in Klartext ankommt. Passwörter sind einfach zu speichern, und Daten auf einem kompromittierten System einfach zu erhalten.
Normale Passwörter sind in deinen Bedrohungsmodell (Stichwörter „zero“ & „trust“) unmöglich zu sichern.

Online Systeme sind durch dein Bedrohungsmodell alleine schon ausgeschlossen, damit auch die Server auf denen du dich einloggst? Die sind ja länger am Netz und weit mehr potenziellen Angreifern ausgesetzt als dein eigenes Gerät, wenn du es richtig machst!
Ist das System kompromittiert, helfen dir doch keine Zugangskontrollen.
Du findest im Netz ziemlich sicher keine Server, die ausschließlich freie Hardware nutzen (mögliche Hintertüren - kann es aber auch in OSS/OSH geben), keine Softwarefehler besitzen (0days), und zu gleich für dich relevante Dienste anbieten (Leistung tatsächlich freier Hardware, und minimalistische Software).

Online Dienste kannst du mit „Zero Trust“ für Onlinesysteme einfach nicht benutzen, und wenn es unbedingt sein muss, wären diese wohl eher self-hosted, deren Nutzungsdaten auf abgeschotteten Systemen zusätzlich abgesichert (Verschlüsselung), und ausschließlich im LAN, oder (ggf. auch zusätzlich - „defense in depth“) innerhalb eines VPN mit public-keys/geheimen Schlüssel.
Notfalls vielleicht noch Dienste (vielleicht .Onion? EEP-Sites?) mit starken Sicherheitsoptionen, und damit zwingende Unterstützung von 2FA bzw. besser Public-Key-Auth/gar keinen Login, denen du trotz dessen nicht ganz vertrauen kannst - wie deinen eigenen Systemen eben auch?

Den Schlüssel, welchen er über die USB-Schnittstelle abgreifen kann, und demnach keinen Schutz gegen auch nur minder kompetente Angreifer bietet?
(auch nachzulesen im Thread über „Yubikey oder Nitrokey“)


In kurz: welchen Schutz soll es dir bringen, ein statisches Passwort jedes mal manuell einzugeben, und dabei ggf. durch ein kompromittiertes System abfangen zu lassen, anstatt diesem gleich eine ganze Datenbank zu geben?
Schließlich kann jedes dort eingegebene Passwort protokolliert werden und über Zeit eine eigene Datenbank aufgebaut werden - zuerst wird (unerkannt) gesammelt, dann genutzt.

Eine Offline-Datenbank ist nützlich, wenn du weitere Dinge in der Passwortdatenbank speicherst, welche nicht alltäglich genutzt werden, oder diese als gemeinsamen Speicher über X Systeme nutzt (aus Komfortgründen), aber ersteres könntest du auch einfach als separate Datenbank offline speichern.
Einen realistisch-nützlichen Schutz der Passwörter erreichst du trotzdem nicht, sie ändern sich nicht, wie du ja selbst implizierst:

1 „Gefällt mir“