Extrair a senha salva do TortoiseSVN

122

Existe alguma maneira de extrair credenciais salvas pelo TortoiseSVN?

Jus12
fonte

Respostas:

226

Resposta curta: Você pode usar o Decodificador de senha do TortoiseSVN para exibir facilmente suas credenciais em cache, incluindo senhas.

Resposta longa: veja como a ferramenta funciona.

As credenciais são salvas em subdiretórios de %APPDATA%\Subversion\auth\. Listados nesta resposta anterior, eles são:

  • svn.simple contém credenciais para autenticação básica (nome de usuário / senha)
  • svn.ssl.server contém certificados de servidor SSL
  • svn.username contém credenciais para autenticação somente por nome de usuário (nenhuma senha é necessária)

O primeiro diretório é o de seu interesse. Parece conter arquivos com nomes que se parecem com GUIDs; um para cada repositório para o qual você salvou credenciais.

As senhas nesses arquivos são criptografadas pela API do Windows Data Protection . A ferramenta acima usa o código de exemplo do Obviex para fazer interface com esta API e executar a descriptografia.

Para que funcione, você deve ter acesso à mesma conta de usuário do Windows em que estava executando quando marcou a caixa de seleção "Salvar autenticação". Isso ocorre porque a API de proteção de dados do Windows usa uma chave de criptografia vinculada à sua conta do Windows. Se você perder esta conta (ou, acredito, se um administrador redefinir sua senha), não será mais possível descriptografar as senhas (exceto talvez usando a força bruta / uma ferramenta de terceiros ). Ter uma nova conta do Windows com o mesmo nome de usuário / senha (ou provavelmente até SIDs) não é suficiente.

rkagerer
fonte
8

Com base nas informações abaixo, parece que você pode descriptografá-las localmente de alguma forma ...

UPDATE: Resposta definitiva da comunidade TortiseSVN

Quando são enviados por cabo criptografados, são criptografados usando um aperto de mão e / ou chave acordada no momento da conexão.

Quando são armazenados / lidos localmente, são criptografados / descriptografados por meio da API de criptografia do Windows, que usa uma chave vinculada à sua conta do Windows.

A cópia criptografada localmente não pode ser descriptografada pelo servidor porque as chaves são locais na sua conta.

Portanto, quando você se conecta (digamos via HTTPS), seu cliente obtém as credenciais descriptografadas por meio da API apropriada do Windows e as inclui na transmissão HTTPS. O HTTPS criptografa toda a comunicação entre cliente e servidor usando certificados SSL, não apenas as credenciais.

Aaron McIver
fonte
Tem certeza de que a senha não é descriptografada no final do cliente?
precisa saber é o seguinte
Com certeza ... sem postar uma pergunta explícita para o pessoal do TortiseSVN, eis o que eu encontrei ... tortoisesvn.net/docs/release/TortoiseSVN_en/… Além disso, se foi descriptografado no lado do cliente, foi empurrado em texto simples para o servidor derrotaria o objetivo. Eu acho que você poderia enviá-lo via SSH.
Aaron McIver
mas, efetivamente, qualquer pessoa poderia enviar o texto cifrado para o servidor e o tortoiseSVN não fornece nenhuma segurança adicional por criptografia.
Jus12
É verdade que é por isso que eles sabem excluir os dados de autenticação do seu PC no desligamento ou, pelo menos, periodicamente, se isso for uma preocupação. Se a máquina que contém os dados de autenticação foi comprometida, isso não é realmente um problema do TotoriseSVN.
Aaron McIver
Obrigado pelo trabalho. Eu esperava que já houvesse uma ferramenta para isso.
Jus12