Извлечь сохраненный пароль TortoiseSVN

Есть ли способ извлечь учетные данные, сохраненные TortoiseSVN?

Ответ 1

Короткий ответ: вы можете использовать TortoiseSVN Password Decrypter, чтобы легко отображать ваши кэшированные учетные данные, включая пароли.

Длинный ответ: вот как работает инструмент.

Учетные данные сохраняются в подкаталогах %APPDATA%\Subversion\auth\. Перечисленный из этого предыдущего ответа:

  • svn.simple содержит учетные данные для базовой аутентификации (имя пользователя/пароль)
  • svn.ssl.server содержит сертификаты сервера SSL
  • svn.username содержит учетные данные для аутентификации только для имени пользователя (не требуется пароль)

Первый каталог представляет интерес. Он содержит файлы с именами, которые выглядят как GUID; по одному для каждого репозитория, для которого вы сохранили учетные данные.

Пароли в этих файлах зашифровываются API защиты данных Windows. В приведенном выше инструменте используется пример кода из Obviex для взаимодействия с этим API и выполнения расшифровки.

Чтобы он работал, у вас должен быть доступ к той же учетной записи пользователя Windows, в которой вы были запущены, когда вы установили флажок "Сохранить аутентификацию". Это связано с тем, что API защиты данных Windows использует ключ шифрования, привязанный к вашей учетной записи Windows. Если вы потеряете эту учетную запись (или, я полагаю, если администратор сбрасывает ваш пароль), вы больше не сможете расшифровывать пароли (за исключением, возможно, использования грубой силы /a сторонний инструмент). Недостаточно иметь новую учетную запись Windows с тем же именем пользователя/паролем (или, возможно, даже с SID).

Ответ 2

Основываясь на информации ниже, это звучит так, будто вы можете их расшифровать локально каким-то образом...

ОБНОВЛЕНИЕ: Окончательный ответ сообщества TortiseSVN

Когда они отправляются по проводу зашифрованы, они шифруются с использованием рукопожатие и/или согласованный ключ в время соединения.

Когда они хранятся/читаются локально, они шифруются/дешифруются через API Windows Crypto, который использует ключ привязан к вашей учетной записи Windows.

Локально-зашифрованная копия не может быть расшифровывается сервером, поскольку ключи являются локальными для вашей учетной записи.

Итак, когда вы подключаетесь (скажем, через HTTPS), ваш клиент получает учетные данные, дешифрованные через соответствующий API Windows, затем включает их в передаче HTTPS. HTTPS шифрует все сообщение между клиентом и сервером с использованием SSL сертификатов, а не только Учетные данные.