Extraer la contraseña guardada de TortoiseSVN

¿Hay alguna forma de extraer las credenciales guardadas por TortoiseSVN?

Respuesta corta: puede usar TortoiseSVN Password Decrypter para mostrar fácilmente sus credenciales 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 previa ellos son:

  • svn.simple contiene credenciales para autenticación básica (nombre de usuario / contraseña)
  • svn.ssl.server contiene certificados de servidor SSL
  • svn.username contiene credenciales para 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 repository para el que haya guardado las credenciales.

Las contraseñas en estos archivos están encriptadas por la API de protección de datos de Windows . La herramienta anterior utiliza un código de ejemplo 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 se estaba ejecutando cuando marcó la checkbox “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 tal vez mediante el uso de la fuerza bruta / una herramienta de terceros ). Tener una nueva cuenta de Windows con el mismo nombre de usuario / contraseña (o probablemente incluso con SID) no es suficiente.

Según la información a continuación, parece que podrías descifrarlos localmente de alguna manera …

ACTUALIZACIÓN: respuesta definitiva de la comunidad TortiseSVN

Cuando se envían cifrados por el cable, 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 Windows Crypto, que usa una clave vinculada a su cuenta de Windows.

El servidor no puede descifrar la copia localmente encriptada porque las claves son locales para su cuenta.

Entonces, cuando te conectas (digamos a través de HTTPS), tu cliente obtiene las credenciales descifradas a través de la API de Windows apropiada, y luego las incluye en la transmisión HTTPS. HTTPS encripta toda la comunicación entre el cliente y el servidor utilizando certificados SSL, no solo las credenciales.

    Intereting Posts