
Por padrão, o Subversion permite que os usuários salvem suas senhas em texto simples no formato ~/.subversion/auth/svn.simple
. Estou investigando opções paraarmazenando senhas criptografadas no svn, mas pelo menos e o mais rápido possível, quero desabilitar completamente a capacidade de armazenar senhas para todos os nossos usuários. Estamos executando o Subversion 1.6.17.
Posso desabilitar isso no diretório inicial de um usuário por meio do arquivo de configuração.
~/.subversion/servers:
[global]
# Password / passphrase caching parameters:
store-passwords = no
store-plaintext-passwords = no
No entanto, o usuário poderia alterar o arquivo de configuração se quisesse. Não existe um arquivo de configuração svn para todo o sistema? Algumas opções que vi:
Opção 1
No 1.8-dev, o script de configuração do Subversion aceita uma opção --disable-plaintext-password-storage para ignorar a lógica que armazena senhas de texto simples e senhas de certificados de cliente.
Prefiro não atualizar para uma versão de desenvolvimento.
opção 2
/etc/subversion/config
AFAIK, este arquivo de configuração só é usado quando um usuário ainda não possui um arquivo de configuração em seu diretório inicial.
Opção 3
Adicione um cron job para excluir o cache de autenticação do usuário no ~/.subversion/auth/svn.simple
. Portanto, mesmo que eles alterem seu arquivo de configuração svn, nosso cron eliminaria todas as senhas armazenadas. No entanto, mesmo executá-lo a cada minuto não garante que nosso sistema de backup não capturaria o(s) arquivo(s) contendo senhas em texto simples.
Ideias?
Responder1
Você não pode.
Faça o que fizer, seus usuários podem ignorá-lo e armazenar suas senhas em um arquivo de texto simples de qualquer maneira. Se você desabilitar o recurso no binário do cliente, eles baixarão ou compilarão um cliente diferente. Como regra geral, se você configurar medidas de segurança desagradáveis (como ter que digitar uma senha para cada operação svn), seus usuários irão contorná-las de uma forma que piorará a segurança. (Por exemplo, escrever um script wrapper que contenha sua senha. Que eles deixarão legível para todos.) Portanto, não faça isso.
Para reiterar: você não pode, apenas com medidas técnicas, impedir que os usuários armazenem suas senhas em um arquivo. Você pode proibi-lo, mas se isso dificultar a vida deles, eles farão isso de qualquer maneira.
Se você estiver preocupado com roubo de laptop ou backup, criptografe o diretório inicial dos usuários. Isso protegerá as senhas e também os dados. Se todo o diretório inicial estiver criptografado, a senha de criptografia geralmente é a mesma que a senha de login, por motivos de usabilidade. Certifique-se de ter uma política de backup de senha (por exemplo, um envelope lacrado), pois a perda de uma senha criptografada é irrecuperável.
Se você estiver preocupado com a reutilização de senhas, imponha uma senha aleatória (portanto, exclusiva), que eles digitarão de uma vez por todas em seu cliente. Tenha um processo simples para alterar senhas comprometidas, é claro.
Responder2
Aliás, antes mesmo de criptografar qualquer coisa, eu cuidaria das permissões de arquivo: apenas verifiquei minha própria configuração por curiosidade e descobri que isso é legível por todo o mundo. Para um arquivo contendo uma senha clara, parece-me uma falha de segurança.