Gibt es eine Möglichkeit, von TortoiseSVN gespeicherte Anmeldeinformationen zu extrahieren?
quelle
Gibt es eine Möglichkeit, von TortoiseSVN gespeicherte Anmeldeinformationen zu extrahieren?
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-Serverzertifikatesvn.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.
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.