
Der Titel sagt alles, aber lassen Sie mich etwas ausführlicher darauf eingehen:
Ich frage mich, wie das Schlüsselbundkennwort meine Schlüssel schützt. Natürlich verschlüsselt es die Containerdatei, sodass niemand sonst darauf zugreifen kann. Aber sie wird auch entschlüsselt, nachdem ich mein Schlüsselbundkennwort eingegeben habe. Während ich also angemeldet bin, könnten die Schlüssel tatsächlich von einer bösartigen App gestohlen werden (zumindest eine App mit Root-Berechtigungen sollte dazu in der Lage sein).
Natürlich ist mir klar, dass die Schlüsseldatei selbst nach der Passworteingabe nicht durch eine entschlüsselte Version ersetzt wird, sondern im Speicher entschlüsselt werden muss.
Die Frage ist: Können bösartige Apps auf Daten in meinem Schlüsselbund zugreifen, während dieser entschlüsselt ist? Wenn ja, brauche ich dann überhaupt ein Passwort für meinen Schlüsselbund, wenn meine Festplatte bereits mit Luks verschlüsselt ist und ich der Einzige bin, der meinen Computer verwendet?
Und wenn ein Passwort sicherer ist, ist es möglich, es nach der Anmeldung mit meinem Kontopasswort (oder so) automatisch entsperren zu lassen?
(Ich verwende keinen Anmeldemanager, sondern starte i3wm automatisch nach der Anmeldung über TTY. Wäre eine automatische Entsperrung auch für dieses Setup möglich?)
Antwort1
Können Schad-Apps auf die Daten in meinem Schlüsselbund zugreifen, während diese entschlüsselt sind?
In der Praxis (derzeit) ja, das können sie. Das aktuelle Design (oder das Fehlen davon) von Benutzersitzungen in Linux macht es für gnome-keyring-daemon schwierig, festzustellen, welches Programm versucht, darauf zuzugreifen; das ist für kompilierte Programme bis zu einem gewissen Grad machbar, aber beispielsweise ist jede in Python geschriebene App nicht von jeder anderen in Python geschriebenen App zu unterscheiden. Obwohl gnome-keyring alsoanfangsverfügen über eine Anwendungs-Whitelist, aktuelle Versionen haben diese nicht mehr.
Dies sollte letztendlich durch App-Container-Projekte wie Snap oder Flatpak verbessert werden.
Wenn ja, brauche ich überhaupt ein Kennwort für meinen Schlüsselbund, wenn meine Festplatte bereits mit LUKs verschlüsselt ist und ich der Einzige bin, der meinen Computer verwendet?
Ich würde sagen, ja.
Wie oben erwähnt, kann jedes Programm einfach eine D-Bus-Nachricht senden und den Gnome-Keyring-Daemon nach einem beliebigen Geheimnis fragen. (In einigen Fällen funktioniert dies sogar als Funktion.)
Es gibt jedoch eine ganze Reihe von Sicherheitslücken, in denen ein anfälliges Programm (z. B. ein Webbrowser) ausgenutzt werden könnte, umstehlen Sie Ihre Dateien, obwohl es immer noch keine Möglichkeit gibt, Befehle auszuführen oder D-Bus-Nachrichten zu senden. Es ist bekannt, dass Malware unverschlüsselte SSH-Schlüssel ( ~/.ssh/id_rsa
) oder Bitcoin Core-Wallets stiehlt.
Wenn die Daten nicht verschlüsselt sind, besteht das ~/.local/share/keyrings/login.keyring
Risiko, dass sie durch Exploits in Webbrowsern usw. gestohlen werden.
(Ich verwende keinen Anmeldemanager, sondern starte i3wm automatisch nach der Anmeldung über TTY. Wäre eine automatische Entsperrung auch für dieses Setup möglich?)
Die automatische Entsperrung des Gnome-Schlüsselbunds erfolgt in allen Fällen über PAM. Ein Modul namens pam_gnome_keyring.so
empfängt Ihr Passwort als Teil des Anmeldevorgangs und startet den ersten Schlüsselbund-Daemon.
Das PAM-Modul sollte überall dort hinzugefügt werden /etc/pam.d
, wo Ihre Linux-Distribution normalerweise allgemeine Module hinzufügt, oder einfach zur login
Datei (die speziell für Konsolen- und Telnet-Anmeldungen gedacht ist).
In der Auth-Gruppe (im Block „Additional“ im Debian-Stil common-auth
, sonst als letztes Modul) wird das Passwort im Speicher abgelegt:
[...]
auth optional pam_gnome_keyring.so only_if=login
In der Sitzungsgruppe (wiederum der Block "Additional" für Debian, sonst das letzte Modul) wird das gespeicherte Passwort verwendet, umGnome-Schlüsselbund-Daemon:
[...]
session optional pam_gnome_keyring.so only_if=login auto_start