Извлечь TortoiseSVN сохраненный пароль - PullRequest
120 голосов
/ 07 октября 2010

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

Ответы [ 2 ]

221 голосов
/ 25 января 2011

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

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

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

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

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

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

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

8 голосов
/ 07 октября 2010

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

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

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

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

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

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

...