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: