Extrahieren Sie das von TortoiseSVN gespeicherte Passwort

122

Gibt es eine Möglichkeit, von TortoiseSVN gespeicherte Anmeldeinformationen zu extrahieren?

Jus12
quelle

Antworten:

226

Kurze Antwort: Mit TortoiseSVN Password Decrypter können Sie Ihre zwischengespeicherten Anmeldeinformationen, einschließlich Kennwörter, einfach anzeigen.

Lange Antwort: So funktioniert das Tool.

Die Anmeldeinformationen werden in Unterverzeichnissen von gespeichert %APPDATA%\Subversion\auth\. Nach dieser vorherigen Antwort sind sie:

  • svn.simple enthält Anmeldeinformationen für die Basisauthentifizierung (Benutzername / Passwort)
  • svn.ssl.server enthält SSL-Serverzertifikate
  • svn.username enthält Anmeldeinformationen für die Authentifizierung nur mit Benutzernamen (kein Kennwort erforderlich)

Das erste Verzeichnis ist das von Interesse. Es scheint Dateien mit Namen zu enthalten, die wie GUIDs aussehen. eine für jedes Repository, für das Sie Anmeldeinformationen gespeichert haben.

Die Kennwörter in diesen Dateien werden von der Windows-Datenschutz-API verschlüsselt . Das obige Tool verwendet Beispielcode von Obviex, um eine Schnittstelle zu dieser API herzustellen und eine Entschlüsselung durchzuführen.

Damit dies funktioniert, müssen Sie Zugriff auf dasselbe Windows-Benutzerkonto haben, unter dem Sie ausgeführt wurden, als Sie das Kontrollkästchen "Authentifizierung speichern" aktiviert haben. Dies liegt daran, dass die Windows-Datenschutz-API einen Verschlüsselungsschlüssel verwendet, der an Ihr Windows-Konto gebunden ist. Wenn Sie dieses Konto verlieren (oder, glaube ich, wenn ein Administrator Ihr Passwort zurücksetzt), können Sie die Passwörter nicht mehr entschlüsseln (außer möglicherweise mit Brute Force / einem Tool eines Drittanbieters ). Ein neues Windows-Konto mit demselben Benutzernamen / Passwort (oder wahrscheinlich sogar SIDs) ist nicht ausreichend.

rkagerer
quelle
8

Basierend auf den folgenden Informationen klingt es so, als könnten Sie sie auf irgendeine Weise lokal entschlüsseln ...

UPDATE: Definitive Antwort von der TortiseSVN-Community

Wenn sie verschlüsselt über das Kabel gesendet werden, werden sie zum Zeitpunkt der Verbindung mit einem Handshake und / oder einem vereinbarten Schlüssel verschlüsselt.

Wenn sie lokal gespeichert / gelesen werden, werden sie über die Windows Crypto-API verschlüsselt / entschlüsselt, die einen Schlüssel verwendet, der an Ihr Windows-Konto gebunden ist.

Die lokal verschlüsselte Kopie kann vom Server nicht entschlüsselt werden, da die Schlüssel lokal für Ihr Konto sind.

Wenn Sie also eine Verbindung herstellen (z. B. über HTTPS), erhält Ihr Client die Anmeldeinformationen über die entsprechende Windows-API entschlüsselt und nimmt sie dann in die HTTPS-Übertragung auf. HTTPS verschlüsselt die gesamte Kommunikation zwischen Client und Server mithilfe von SSL-Zertifikaten, nicht nur anhand der Anmeldeinformationen.

Aaron McIver
quelle
Sind Sie sicher, dass das Passwort auf Client-Seite nicht entschlüsselt wird?
Jus12
Ziemlich sicher ... ohne eine explizite Frage an die TortiseSVN-Leute zu stellen, hier ist, was ich gefunden habe ... tortoisesvn.net/docs/release/TortoiseSVN_de/… Außerdem, wenn es clientseitig entschlüsselt wurde, dann im Klartext an weitergeleitet der Server würde es den Zweck zunichte machen. Ich denke, Sie könnten es über SSH senden.
Aaron McIver
aber dann könnte effektiv jeder den Chiffretext an den Server senden und tortoiseSVN bietet keine zusätzliche Sicherheit durch Verschlüsselung.
Jus12
Richtig, weshalb sie bekannt machen, dass die Authentifizierungsdaten beim Herunterfahren oder zumindest in regelmäßigen Abständen von Ihrem PC gelöscht werden, wenn dies ein Problem darstellt. Wenn der Computer, auf dem sich die Authentifizierungsdaten befinden, kompromittiert wurde, handelt es sich nicht wirklich um ein TotoriseSVN-Problem an sich.
Aaron McIver
Danke für die Arbeit. Ich hatte gehofft, dass es dafür bereits ein Werkzeug gibt.
Jus12