Welche Mechanismen verwendet ssh-agent, um entsperrte private Schlüssel sicher im Speicher zu halten?
Frage
Ich arbeite an einem Bibliothek um einen schnellen Zugriff auf KeePassX datenbankdateien einfacher für Power-User.Im Moment ist die Anwendung so kurzlebig im Speicher, dass die Sicherheit rund um die unverschlüsselte KeePass-Datenbank kein großes Problem darstellt.
Ich möchte jedoch die Möglichkeit hinzufügen, die Datenbank für einen bestimmten Zeitraum im Hintergrund entsperrt zu halten, ähnlich wie dies bei der KeePassX-Benutzeroberfläche der Fall ist.Dies würde eine sofortige Abfrage von Passwörtern ermöglichen, ohne nach dem Master-Passwort gefragt zu werden.Dies bedeutet, dass es eine Art Daemon-Prozess geben würde, der die Datenbank im Speicher hält und mit einem Client kommuniziert.
Es scheint, dass die Auswirkungen auf die Sicherheit ähnlich sind wie bei ssh-agent
, und ich frage mich, ob irgendjemand in diesen Teilen damit vertraut ist, wie dieses Projekt die langfristige sichere Speicherung sensibler Daten (nämlich entsperrte private SSH-Schlüssel) angeht.
Lösung
Vielleicht hilft das: Mensch:mlock(2)
Beachten Sie, dass UNIX-Domain-Sockets etwas sicherer sind als Internet-Domain-Sockets, da sie nur vom lokalen Host aus erreicht werden können und der Zugriff darauf kann weiter auf bestimmte Benutzer und Gruppen beschränkt werden (mit chown
und chgrp
und natürlich, chmod
).