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

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

2 ответов


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

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

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

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

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

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

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


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

обновление: окончательный ответ от сообщества TortiseSVN

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

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

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

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