Apagando suas senhas do Subclipse – Riopro Blog
Apagando suas senhas do Subclipse
4 de setembro de 2007 otavio 4 Comments
Se você usa o SVN no Eclipse, suas senhas podem estar mais comprometidas do que você pensa. Isso acontece essencialmente com quem usa o Eclipse com as preferências de SVN Interface marcada para JavaSVN (para verificar as suas configurações, vá em Window | Preferences | Team | SVN ).
Como minha experiência com isso foi basicamente no Linux, é disso que vou tratar, apesar de saber que isso tende a ocorrer também no MacOS. Explico o porque mais para frente.
Usualmente, o cliente de linha de comando SVN armazena suas configurações em uma pasta .subversion/auth da home do usuário (e os clientes do Windows armazenam em %APPDATA%\Subversion\auth, conforme o FAQ do Subclipse). E mais, dependendo da configuração do servidor SVN, a mesma pode ser armazenada em texto puro.
O mesmo armazenamento se dá quando usamos o JavaHL. Porque o JavaHL é um pacote Java que chama o cliente de linha de comando SVN através da interface JNI. Por mais que possamos questionar a segurança do armazenamento dessas senhas no HD do micro, pelo menos no Linux, a pasta se encontra bem segura pois só é acessível pelo usuário (o padrão da pasta é 700 e, portanto, não é acessível nem pelo grupo do usuário).
O problema é que o JavaHL necessita ser sempre compilado para o kernel da máquina (isso tanto no Linux quanto no MacOS, visto que a API da MS é mais constante e pesada por manter a compatibilidade para trás). Por isso, os programadores que usam o Eclipse fora do Windows frequentemente optam pelo JavaSVN, que é o porte em Java do cliente SVN (e que agora passou a ser chamado de SVNKit).
A grande diferença é que o JavaSVN armazena as chaves dentro de uma subpasta do Eclipse. Isso leva a dois problemas:
O acesso à pasta é tão menos restrito quanto for o acesso ao Eclipse. Ou seja, se o seu Eclipse for somente leitura, todos terão acesso ao seu arquivo de senhas (que mesmo estando criptografado, pode ser copiado para outro diretório);
Se você compactar a sua pasta do Eclipse e mandar para alguém, suas senhas vão junto, o que é no mínimo problemático.
Para evitar o envio/acesso das senhas, a única saída é apagar o arquivo $PASTA_DO_ECLIPSE/configuration/org.eclipse.core.runtime/.keyring. É importante fechar o Eclipse antes de apagar esse arquivo, porque ao fechar ele armazena os valores em memória no arquivo. Um simples:
$ echo "" > ./configuration/org.eclipse.core.runtime/.keyring
Outra forma, que extrai do comentário do Mark Phippard no primeiro link abaixo, é levantar o Eclipse passando os parâmetros -configure para mudar o diretório de armazenamento das suas configurações, ou o -keyring para mudar o local de armazenamento do arquivo keyring. você pode criar um lançador para o Eclipse que passe o parâmetro keyring com a seguinte linha de comando:
$ $ECLIPSE_HOME/eclipse -keyring $HOME/.keyring
Onde $ECLIPSE_HOME é uma variável do diretório do Eclipse (não é necessário criar essa variável, foi só para deixar genérica a solução). O lançador é suficiente para resolver os problemas. Para ler mais sobre o assunto, consulte os links abaixo.
http://nlp.cs.byu.edu/~rah67/wordpress/?p=4
http://svn.haxx.se/subusers/archive-2006-11/0301.shtml
http://svnbook.red-bean.com/nightly/en/svn.serverconfig.netmodel.html#svn.serverconfig.netmodel.credcache
Publicado em Dicas, Java, Linux, Software Livre, Ubuntu
← O Vista ainda deixa muito a desejar
O Ubuntu 7.04 num Asus Z53E →
4 opiniões sobre "Apagando suas senhas do Subclipse"
Pingback: Riopro Blog - » Uma Task Ant para guardar a revisão do Subversion
9 de Março de 2009 às 3:52 pm
Tente apagar o arquivo f990ee0ec2917a4b1aec7726ceeae16f que fica dentro de um diretorio c:\Document… se\Dados de aplicativos\Subversion\auth\svn.simple
9 de Março de 2009 às 4:49 pm
Isso seria para o caso de você usar o svn via console. O caso descrito se refere aos valores de login e senha armazenados pelo Eclipse.