Extraire le mot de passe enregistré TortoiseSVN

122

Existe-t-il un moyen d'extraire les informations d'identification enregistrées par TortoiseSVN?

Jus12
la source

Réponses:

226

Réponse courte: Vous pouvez utiliser TortoiseSVN Password Decrypter pour afficher facilement vos informations d'identification mises en cache, y compris les mots de passe.

Réponse longue: voici comment fonctionne l'outil.

Les informations d'identification sont enregistrées dans les sous-répertoires de %APPDATA%\Subversion\auth\. À partir de cette réponse précédente, ils sont:

  • svn.simple contient les informations d'identification pour l'authentification de base (nom d'utilisateur / mot de passe)
  • svn.ssl.server contient des certificats de serveur SSL
  • svn.username contient les informations d'identification pour l'authentification par nom d'utilisateur uniquement (aucun mot de passe nécessaire)

Le premier annuaire est celui qui vous intéresse. Il semble contenir des fichiers dont les noms ressemblent à des GUID; un pour chaque référentiel pour lequel vous avez enregistré les informations d'identification.

Les mots de passe de ces fichiers sont chiffrés par l' API Windows Data Protection . L'outil ci-dessus utilise un exemple de code d' Obviex pour s'interfacer avec cette API et effectuer le décryptage.

Pour que cela fonctionne, vous devez avoir accès au même compte d'utilisateur Windows sous lequel vous exécutiez lorsque vous avez coché la case "Enregistrer l'authentification". Cela est dû au fait que l'API de protection des données Windows utilise une clé de chiffrement liée à votre compte Windows. Si vous perdez ce compte (ou, je crois, si un administrateur réinitialise votre mot de passe), vous ne pourrez plus déchiffrer les mots de passe (sauf peut-être en utilisant la force brute / un outil tiers ). Avoir un nouveau compte Windows avec le même nom d'utilisateur / mot de passe (ou probablement même SID) n'est pas suffisant.

rkagerer
la source
8

Sur la base des informations ci-dessous, il semble que vous puissiez les déchiffrer localement d'une manière ou d'une autre ...

MISE À JOUR: Réponse définitive de la communauté TortiseSVN

Lorsqu'ils sont envoyés sur le fil cryptés, ils sont cryptés à l'aide d'une poignée de main et / ou d'une clé convenue au moment de la connexion.

Lorsqu'ils sont stockés / lus localement, ils sont chiffrés / déchiffrés via l'API Windows Crypto qui utilise une clé liée à votre compte Windows.

La copie chiffrée localement ne peut pas être déchiffrée par le serveur car les clés sont locales à votre compte.

Ainsi, lorsque vous vous connectez (disons via HTTPS), votre client obtient les informations d'identification déchiffrées via l'API Windows appropriée, puis les inclut dans la transmission HTTPS. HTTPS crypte toute la communication entre le client et le serveur à l'aide de certificats SSL, pas seulement les informations d'identification.

Aaron McIver
la source
êtes-vous sûr que le mot de passe n'est pas déchiffré côté client?
Jus12
Assez certain ... sans poser de question explicite aux gens de TortiseSVN, voici ce que j'ai trouvé ... tortoisesvn.net/docs/release/TortoiseSVN_en/ ... De plus s'il a été décrypté côté client, puis poussé en texte brut vers le serveur, il irait à l'encontre de l'objectif. Je suppose que vous pouvez l'envoyer via SSH.
Aaron McIver
mais alors effectivement n'importe qui pourrait envoyer le texte chiffré au serveur et tortoiseSVN n'offre aucune sécurité supplémentaire par chiffrement.
Jus12
C'est vrai, c'est pourquoi ils font savoir de supprimer les données d'authentification de votre PC à l'arrêt ou du moins de manière périodique si cela est un problème. Si la machine contenant les données d'authentification a été compromise, ce n'est pas vraiment un problème de TotoriseSVN en soi.
Aaron McIver
Merci pour le travail. J'espérais qu'il existe déjà un outil pour cela.
Jus12