¿Hay alguna forma de extraer credenciales guardadas por TortoiseSVN?
fuente
¿Hay alguna forma de extraer credenciales guardadas por TortoiseSVN?
Respuesta corta: puede usar TortoiseSVN Password Decrypter para mostrar fácilmente sus credenciales almacenadas en caché, incluidas las contraseñas.
Respuesta larga: así es como funciona la herramienta.
Las credenciales se guardan en subdirectorios de %APPDATA%\Subversion\auth\
. Enumerados de esta respuesta anterior son:
svn.simple
contiene credenciales para autenticación básica (nombre de usuario / contraseña)svn.ssl.server
contiene certificados de servidor SSLsvn.username
contiene credenciales para la autenticación de solo nombre de usuario (no se necesita contraseña)El primer directorio es el de interés. Parece contener archivos con nombres que parecen GUID; uno para cada repositorio para el que ha guardado credenciales.
Las contraseñas en estos archivos están encriptadas por la API de protección de datos de Windows . La herramienta anterior usa código de muestra de Obviex para interactuar con esta API y realizar el descifrado.
Para que funcione, debe tener acceso a la misma cuenta de usuario de Windows con la que estaba ejecutando cuando marcó la casilla de verificación "Guardar autenticación". Esto se debe a que la API de protección de datos de Windows usa una clave de cifrado vinculada a su cuenta de Windows. Si pierde esta cuenta (o, creo, si un administrador restablece su contraseña), ya no podrá descifrar las contraseñas (excepto quizás utilizando la fuerza bruta / una herramienta de terceros ). Tener una nueva cuenta de Windows con el mismo nombre de usuario / contraseña (o probablemente incluso SID) no es suficiente.
Según la información a continuación, parece que podría descifrarlos localmente de alguna manera ...
ACTUALIZACIÓN: respuesta definitiva de la comunidad TortiseSVN
Cuando se envían por cable cifrado, se cifran mediante un protocolo de enlace y / o una clave acordada en el momento de la conexión.
Cuando se almacenan / leen localmente, se cifran / descifran a través de la API de cifrado de Windows que utiliza una clave vinculada a su cuenta de Windows.
El servidor no puede descifrar la copia cifrada localmente porque las claves son locales de su cuenta.
Entonces, cuando se conecta (digamos a través de HTTPS), su cliente obtiene las credenciales descifradas a través de la API de Windows adecuada, luego las incluye en la transmisión HTTPS. HTTPS cifra toda la comunicación entre el cliente y el servidor utilizando certificados SSL, no solo las credenciales.