Могут ли вредоносные приложения получать доступ к данным в моем наборе ключей во время их расшифровки?
На практике (в настоящее время) да, они могут. Текущий дизайн (или его отсутствие) пользовательских сеансов в Linux затрудняет gnome-keyring-daemon определить, какая программа пытается получить к нему доступ; в некоторой степени это выполнимо для скомпилированных программ, но, например, любое приложение, написанное на Python, неотличимо от любого другого приложения, написанного на Python. Таким образом, хотя gnome-keyring сначала имел белый список приложений, текущие версии больше не имеют.
В конечном итоге это должно быть улучшено с помощью проектов-контейнеров приложений, таких как Snap или Flatpak.
Если да, нужен ли мне даже пароль для моей связки ключей, если мой диск уже зашифрован, и я единственный, кто использует мой компьютер?
Я бы сказал, да.
Как упоминалось выше, любая программа может просто отправить сообщение D-Bus и запросить у gnome-keyring-daemon любой секрет. (В некоторых случаях это даже работает как функция.)
Однако было довольно много дыр в безопасности, в которых уязвимая программа (например, веб-браузер) могла бы использоваться для кражи ваших файлов, хотя все еще не имела возможности запускать команды или отправлять сообщения D-Bus. Известно, что вредоносные программы крадут незашифрованные ключи SSH ( ~/.ssh/id_rsa
) или кошельки Bitcoin Core.
Таким же образом, если он не зашифрован, вы ~/.local/share/keyrings/login.keyring
рискуете быть украденным из-за уязвимостей веб-браузера и тому подобного.
(Я не использую менеджер входа в систему, я автоматически запускаю i3wm после входа в систему через TTY, поэтому будет ли возможна автоматическая разблокировка для этой настройки?)
Автоматическая разблокировка gnome-keyring во всех случаях осуществляется через PAM. Модуль с именем pam_gnome_keyring.so
получает ваш пароль как часть процесса входа в систему и запускает начальный демон keyring.
Модуль PAM следует добавлять туда /etc/pam.d
, где ваш дистрибутив Linux обычно добавляет общие модули, или просто в login
файл (который специально предназначен для входа в консоль и telnet).
В группе auth (в блоке «Additional» в стиле Debian common-auth
; как и в последнем модуле) он будет хранить пароль в памяти:
[...] auth optional pam_gnome_keyring.so only_if=login
В группе сеансов (опять же, блок «Дополнительно» для Debian, в противном случае последний модуль) он использует сохраненный пароль для запуска gnome-keyring-daemon :
[...] session optional pam_gnome_keyring.so only_if=login auto_start