2010-10-07 25 views

Antwort

211

Kurze Antwort: Sie können TortoiseSVN Password Decrypter auf einfache Weise Ihre zwischengespeicherten Anmeldeinformationen angezeigt werden, einschließlich der Kennwörter.

Lange Antwort: So funktioniert das Tool.

Die Anmeldeinformationen werden in Unterverzeichnissen von %APPDATA%\Subversion\auth\ gespeichert. Eingestellt von this previous answer sie sind:

  • svn.simple Anmeldeinformationen enthält, die für die Standardauthentifizierung (Benutzername/Passwort)
  • svn.ssl.server enthält SSL-Serverzertifikate
  • svn.username enthält Anmeldeinformationen für Benutzer-only Authentifizierung (kein Passwort 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 durch die Windows Data Protection API verschlüsselt. Das obige Tool verwendet Beispielcode von Obviex, um mit dieser API zu interagieren und die Entschlüsselung durchzuführen.

Damit dies funktioniert, müssen Sie Zugriff auf dasselbe Windows-Benutzerkonto haben, unter dem Sie auch gearbeitet haben, als Sie das Kontrollkästchen "Authentifizierung speichern" aktiviert haben. Dies liegt daran, dass die Windows Data Protection-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 vielleicht mit Brute-Force/a third party tool). Ein neues Windows-Konto mit demselben Benutzernamen/Passwort (oder wahrscheinlich sogar SIDs) ist nicht ausreichend.

8

Basierend auf den Informationen darunter klingt wie Sie möglich, sie in irgendeiner Weise lokal entschlüsseln könnte ...

UPDATE: definitive Antwort von TortiseSVN Community

Wenn sie über die geschickt sind Draht verschlüsselt, sie sind verschlüsselt mit einem Handshake und/oder vereinbarten Schlüssel bei der Zeitpunkt der Verbindung.

Wenn sie gespeichert/gelesen lokal, sie sind verschlüsselt/über die API Windows-Crypto entschlüsselt, die einen Schlüssel zu Ihrem Windows-Konto gebunden verwendet. Die lokal verschlüsselte Kopie kann nicht vom Server entschlüsselt werden, da die Schlüssel für Ihr Konto lokal sind.

Also, wenn Sie eine Verbindung herstellen (lassen Sie uns über HTTPS sagen), Ihr Kunde erhält die Anmeldeinformationen über die API entsprechenden Windows entschlüsselt, enthält dann sie in der HTTPS-Übertragung. HTTPS verschlüsselt die ganze Kommunikation zwischen Client & Server mit SSL Zertifikate, nicht nur die Anmeldeinformationen.

+0

Sind Sie sicher, dass das Passwort nicht vom Client entschlüsselt wird? – Jus12

+0

Ziemlich sicher ... ohne eine explizite Frage an die TortiseSVN Leute, hier ist was ich gefunden habe ... http: //tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug.html#tsvn-dug-general- auth Zusätzlich, wenn es Client-Seite entschlüsselt wurde, dann im Klartext auf den Server geschoben, würde es den Zweck zu besiegen. Ich schätze, du könntest es per SSH schicken. –

+0

aber dann könnte effektiv jeder den Chiffretext an den Server senden und tortoiseSVN bietet keine zusätzliche Sicherheit durch Verschlüsselung. – Jus12