2010-10-07 13 views

Respuesta

211

Respuesta corta: Puede utilizar TortoiseSVN Password Decrypter para mostrar fácilmente sus credenciales almacenadas en caché, incluyendo contraseñas.

Respuesta larga: Así es como funciona la herramienta.

Las credenciales se guardan en los subdirectorios de %APPDATA%\Subversion\auth\. Listado de this previous answer son:

  • svn.simple contiene las credenciales para la autenticación básica (nombre de usuario/contraseña)
  • svn.ssl.server contiene certificados de servidor SSL
  • svn.username contiene las credenciales de autentificación sólo por usuario (sin necesidad de 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 haya guardado las credenciales.

Las contraseñas en estos archivos están encriptadas por Windows Data Protection API. La herramienta anterior usa 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 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 mediante el uso de fuerza bruta/a third party tool). Tener una nueva cuenta de Windows con el mismo nombre de usuario/contraseña (o probablemente incluso con SID) no es suficiente.

8

Sobre la base de la información a continuación suena como usted podría posible descifrarlos localmente de alguna manera ...

ACTUALIZACIÓN: respuesta definitiva de la comunidad TortiseSVN

cuando son enviados a través de la cable cifrado, se cifran mediante un protocolo de enlace y/o la clave acordada al el momento de la conexión.

cuando están almacenados/leer localmente, ellos son encriptado/desencriptado a través de la de Windows Crypto API que utiliza una clave atado a su cuenta de Windows.

La copia encriptada localmente no puede ser descifrada por el servidor porque las claves son locales para su cuenta.

Así que cuando se conecta (digamos que a través de HTTPS), el cliente obtiene las credenciales descifrados a través de la API de Windows apropiada , a continuación, incluye en la transmisión HTTPS. HTTPS cifra el toda la comunicación entre cliente servidor & utilizando SSL certificados, no sólo los credenciales.

+0

¿Estás seguro de que la contraseña no se descifra en el extremo del cliente? – Jus12

+0

Bastante cierto ... sin publicar una pregunta explícita a la gente de TortiseSVN, esto es lo que encontré ... http: //tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug.html#tsvn-dug-general- auth Además, si se descifró el lado del cliente, y luego se envió al servidor en texto sin formato, se anularía el propósito. Supongo que podrías enviarlo a través de SSH. –

+0

pero entonces, efectivamente, cualquiera podría enviar el texto cifrado al servidor y tortugaSVN no proporciona ninguna seguridad adicional mediante el cifrado. – Jus12