Могут ли вредоносные приложения получать доступ к данным в моем наборе ключей во время их расшифровки?
На практике (в настоящее время) да, они могут. Текущий дизайн (или его отсутствие) пользовательских сеансов в 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" в common-auth
стиле Debian; в качестве последнего модуля в противном случае) он будет хранить пароль в памяти:
[...]
auth optional pam_gnome_keyring.so only_if=login
В группе сессий (опять же, "Дополнительный" блок для Debian, в противном случае последний модуль) он использует сохраненный пароль для запуска gnome-keyring-daemon:
[...]
session optional pam_gnome_keyring.so only_if=login auto_start