Usando o login da chave privada ssh para descriptografar automaticamente os sistemas de arquivos criptografados sem solicitação de senha

3

Para citar uma postagem anterior:

"Ok, então, embora seja possível usar a autenticação SSH Public Key para efetuar login no sistema sem inserir uma senha (mesmo se o diretório inicial estiver criptografado), não é possível montar automaticamente o diretório inicial criptografado."

Esse é o problema. Embora eu aprecie que a senha seja usada para desbloquear a frase secreta, isso significa que você precisa de uma senha mesmo quando organizou o login automático para não precisar de uma senha. Uma solução melhor seria usar a autenticação remota da chave privada para desbloquear uma segunda cópia da passphrase de decriptografia e, com base nesse desbloqueio, permitir que o sistema de arquivos seja descriptografado. Dessa forma, eu não preciso de uma senha, mas somente quando um usuário autenticado autorizado e (de chave pública) faz o login, os arquivos podem ser lidos.

"Para resolver isso, você precisará adicionar uma linha ao final de seu $ HOME / .profile desmontado:

ecryptfs-mount-private Isso garantirá que depois de efetuar login usando a autenticação SSH Public Key, você será solicitado a fornecer sua senha e montar seus dados criptografados. Se já estiver montado, esse comando deve ser silenciosamente bem-sucedido. "

Só que exige que a senha seja digitada. O que deve acontecer é que, se o seu ssh tiver sucesso, você deverá ter acesso ao sistema de arquivos descriptografado. Então, minha pergunta é, existe uma solução para isso ainda? Ou falta um, alguém que é responsável por esse mecanismo específico consertá-lo para funcionar dessa maneira?

    
por Fred Cohen 22.04.2012 / 05:24

1 resposta

2

Isso não é possível sem estender o protocolo SSH ou implementar outro protocolo personalizado.

Em primeiro lugar, a chave privada do SSH nunca é disponibilizada para o sistema no qual você está efetuando login. Em vez disso, seu sistema assina um desafio com a chave privada e envia o desafio assinado de volta ao sistema remoto. Como o sistema remoto tem a chave pública no registro, ele pode verificar a assinatura e ter certeza de que você possui a chave privada.

Se você usar um agente SSH, será possível conceder ao host remoto acesso limitado às suas chaves privadas, encaminhando a conexão do agente (um ato que tem algum risco: se o host remoto tiver sido comprometido, eles poderiam usar o conexão do agente encaminhado para invadir outros sistemas aos quais você tem acesso). Mas, novamente, isso não ajuda, pois, em vez de revelar a chave privada, o agente SSH oferece uma interface para assinar os dados fornecidos pelo cliente.

Havia uma opção no rascunho da Internet do Protocolo de Agente de Autenticação do Shell Seguro abandonado para permite que os clientes peçam ao agente para descriptografar alguns dados fornecidos, mas isso não é implementado pelas implementações OpenSSH ou Gnome Keyring do protocolo. E mesmo se fosse, isso envolveria o sistema remoto revelando a frase secreta do eCryptFS para um sistema remoto, que possui suas próprias considerações de segurança.

Como você pode ver, não é um problema particularmente simples, e seria difícil simplesmente entrar no lado dos utilitários existentes.

Se você ficou feliz em armazenar a frase secreta do sistema remoto localmente, talvez seja possível escrever um script que a decriptografaria e canalizaria para ssh remotehost ecryptfs-add-passphrase - ou similar, o que deve permitir a montagem do diretório criptografado.

    
por James Henstridge 23.04.2012 / 07:01

Tags