Existe alguma maneira de extrair credenciais salvas pelo TortoiseSVN?
fonte
Existe alguma maneira de extrair credenciais salvas pelo TortoiseSVN?
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 SSLsvn.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.
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.