Нужен ли пароль для ключей на однопользовательском компьютере с шифрованием luks?

426
x3ro

Название говорит само за себя, но позвольте мне расширить немного больше:

Мне интересно, как пароль для ключей защищает мои ключи. Конечно, он шифрует файл контейнера, поэтому никто другой не может получить к нему доступ. Но он также расшифровывается после того, как я предоставил свой пароль для ключей. Так что на самом деле, когда я вошел в систему, ключи могут быть украдены каким-либо вредоносным приложением (по крайней мере, приложение с правами root должно быть в состоянии).

Конечно, я знаю, что сам файл ключа не заменяется расшифрованной версией после ввода пароля, но он должен быть расшифрован в памяти.

Вопрос заключается в следующем: могут ли вредоносные приложения получать доступ к данным в моей связке ключей во время их расшифровки? Если да, нужен ли мне даже пароль для моей связки ключей, если мой диск уже зашифрован, и я единственный, кто использует мой компьютер?

И, если пароль будет более безопасным, можно ли его автоматически разблокировать, используя пароль моей учетной записи (или около того) после входа в систему?

(Я не использую менеджер входа в систему, я автоматически запускаю i3wm после входа в систему через TTY, поэтому будет ли возможна автоматическая разблокировка для этой настройки?)

0

1 ответ на вопрос

0
grawity

Могут ли вредоносные приложения получать доступ к данным в моем наборе ключей во время их расшифровки?

На практике (в настоящее время) да, они могут. Текущий дизайн (или его отсутствие) пользовательских сеансов в 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 
Спасибо, отличный ответ! Я наконец нашел время, чтобы поиграть, и это, кажется, работает (по крайней мере, мне не предлагают пароль для ключей после входа в систему). Я нахожусь на Arch Linux, поэтому я следовал инструкциям в [ArchWiki] (https://wiki.archlinux.org/index.php/GNOME/Keyring#Using_the_keyring_outside_GNOME). x3ro 6 лет назад 0
К сожалению, единственное приложение, которое я использую, - это Evolution Mail, и по какой-то причине оно не хранит пароль. Перед моими изменениями всегда запрашивался пароль (после сна или около того), но пароль уже был вставлен (хотя я не видел его в Seahorse). После моих изменений поле пароля остается пустым (и я до сих пор не вижу его в Seahorse). Похоже, что в Evolution есть [ошибка] (https://bugs.launchpad.net/ubuntu/+source/evolution/+bug/1299604) ... Мне придется исследовать это. x3ro 6 лет назад 0

Похожие вопросы