
O título diz tudo, mas deixe-me expandir um pouco mais:
Estou me perguntando como a senha do chaveiro está protegendo minhas chaves. Claro, ele criptografa o arquivo contêiner, para que ninguém mais possa acessá-lo. Mas também é descriptografado depois que eu forneço minha senha do chaveiro. Então, na verdade, enquanto eu estiver logado, as chaves podem ser roubadas por algum aplicativo malicioso (pelo menos um aplicativo com permissões de root deve conseguir).
Claro, eu sei, o arquivo de chave em si não é substituído por uma versão descriptografada após inserir a senha, mas deve ser descriptografado na memória.
A questão é: aplicativos maliciosos podem acessar dados em meu chaveiro enquanto ele é descriptografado? Em caso afirmativo, preciso mesmo de uma senha para meu chaveiro quando meu disco já estiver criptografado e eu for o único usando meu computador?
E, se uma senha for mais segura, é possível desbloqueá-la automaticamente, usando a senha da minha conta (ou algo assim) após fazer o login?
(Não estou usando um gerenciador de login, estou iniciando automaticamente o i3wm após fazer login via TTY, então o desbloqueio automático também seria possível para esta configuração?)
Responder1
Aplicativos maliciosos podem acessar dados no meu chaveiro enquanto ele é descriptografado?
Na prática (atualmente), sim, podem. O design atual (ou a falta dele) das sessões de usuário no Linux torna difícil para o gnome-keyring-daemon determinar qual programa está tentando acessá-lo; isso é possível até certo ponto para programas compilados, mas por exemplo, qualquer aplicativo escrito em Python é indistinguível de qualquer outro aplicativo escrito em Python. Então, embora o gnome-keyring tenha feitoinicialmentetêm uma lista de permissões de aplicativos, as versões atuais não têm mais.
Eventualmente, isso deve ser melhorado por projetos de contêineres de aplicativos, como Snap ou Flatpak.
Em caso afirmativo, preciso mesmo de uma senha para meu chaveiro quando meu disco já estiver criptografado e eu for o único usando meu computador?
Eu diria que sim.
Como mencionado acima, qualquer programa pode simplesmente enviar uma mensagem D-Bus e pedir qualquer segredo ao gnome-keyring-daemon. (Em alguns casos, até funciona como um recurso.)
No entanto, tem havido algumas falhas de segurança nas quais um programa vulnerável (por exemplo, um navegador da Web) pode ser usado pararoubar seus arquivos, embora ainda não tenha possibilidade de executar comandos ou enviar mensagens D-Bus. Sabe-se que o malware rouba chaves SSH não criptografadas ( ~/.ssh/id_rsa
) ou carteiras Bitcoin Core das pessoas.
Da mesma forma, se não estiver criptografado, você corre ~/.local/share/keyrings/login.keyring
o risco de ser roubado por meio de explorações de navegador da web e coisas assim.
(Não estou usando um gerenciador de login, estou iniciando automaticamente o i3wm após fazer login via TTY, então o desbloqueio automático também seria possível para esta configuração?)
O desbloqueio automático do chaveiro gnome é feito em todos os casos através do PAM. Um módulo chamado pam_gnome_keyring.so
recebe sua senha como parte do processo de login e inicia o daemon de chaveiro inicial.
O módulo PAM deve ser adicionado ao /etc/pam.d
, onde quer que sua distribuição Linux normalmente adicione módulos comuns, ou apenas ao login
arquivo (que é especificamente para logins de console e telnet).
No grupo auth (no bloco "Additional" no estilo Debian common-auth
; como o último módulo caso contrário) ele armazenará a senha na memória:
[...]
auth optional pam_gnome_keyring.so only_if=login
No grupo de sessão (novamente, bloco "Adicional" para Debian, último módulo caso contrário) ele usa a senha armazenada para iniciargnome-keyring-daemon:
[...]
session optional pam_gnome_keyring.so only_if=login auto_start