Wyodrębnij zapisane hasło TortoiseSVN

122

Czy jest jakiś sposób, aby wyodrębnić dane uwierzytelniające zapisane przez TortoiseSVN?

Jus12
źródło

Odpowiedzi:

226

Krótka odpowiedź: Możesz użyć narzędzia TortoiseSVN Password Decrypter, aby łatwo wyświetlić swoje dane uwierzytelniające z pamięci podręcznej, w tym hasła.

Długa odpowiedź: tak działa to narzędzie.

Poświadczenia są zapisywane w podkatalogach %APPDATA%\Subversion\auth\. Wymienione z tej poprzedniej odpowiedzi są to:

  • svn.simple zawiera dane uwierzytelniające do podstawowego uwierzytelnienia (nazwa użytkownika / hasło)
  • svn.ssl.server zawiera certyfikaty serwera SSL
  • svn.username zawiera dane uwierzytelniające do uwierzytelniania tylko nazwy użytkownika (hasło nie jest potrzebne)

Pierwszy katalog jest tym, który nas interesuje. Wygląda na to, że zawiera pliki o nazwach, które wyglądają jak identyfikatory GUID; po jednym dla każdego repozytorium, dla którego zapisałeś poświadczenia.

Hasła w tych plikach są szyfrowane przez interfejs API ochrony danych systemu Windows . Powyższe narzędzie wykorzystuje przykładowy kod z Obviex do połączenia się z tym interfejsem API i wykonania deszyfrowania.

Aby to działało, musisz mieć dostęp do tego samego konta użytkownika Windows, na którym byłeś uruchomiony, gdy zaznaczyłeś pole wyboru „Zapisz uwierzytelnianie”. Dzieje się tak, ponieważ interfejs API ochrony danych systemu Windows używa klucza szyfrowania, który jest powiązany z kontem systemu Windows. Jeśli stracisz to konto (lub, jak sądzę, jeśli administrator zresetuje twoje hasło), nie będziesz już w stanie odszyfrować haseł (z wyjątkiem być może za pomocą brutalnej siły / narzędzia innej firmy ). Posiadanie nowego konta Windows z tą samą nazwą użytkownika / hasłem (lub prawdopodobnie nawet identyfikatorem SID) nie jest wystarczające.

rkagerer
źródło
8

Na podstawie poniższych informacji wygląda na to, że możesz je odszyfrować lokalnie w jakiś sposób ...

AKTUALIZACJA: Ostateczna odpowiedź od społeczności TortiseSVN

Kiedy są przesyłane przez sieć zaszyfrowaną, są szyfrowane przy użyciu uzgadniania i / lub klucza uzgodnionego w momencie połączenia.

Gdy są przechowywane / odczytywane lokalnie, są szyfrowane / odszyfrowywane za pośrednictwem interfejsu Windows Crypto API, który używa klucza powiązanego z kontem Windows.

Kopia zaszyfrowana lokalnie nie może zostać odszyfrowana przez serwer, ponieważ klucze są lokalne dla Twojego konta.

Więc kiedy się łączysz (powiedzmy przez HTTPS), twój klient otrzymuje dane uwierzytelniające odszyfrowane przez odpowiedni Windows API, a następnie dołącza je do transmisji HTTPS. HTTPS szyfruje całą komunikację między klientem a serwerem za pomocą certyfikatów SSL, a nie tylko poświadczeń.

Aaron McIver
źródło
czy jesteś pewien, że hasło nie jest odszyfrowane po stronie klienta?
Jus12
Całkiem pewne ... bez wysyłania wyraźnego pytania do ludzi z TortiseSVN, oto co znalazłem ... tortoisesvn.net/docs/release/TortoiseSVN_en/ ... Ponadto, jeśli został odszyfrowany po stronie klienta, a następnie przesłany w postaci zwykłego tekstu do serwer pokrzyżowałby cel. Myślę, że możesz wysłać to przez SSH.
Aaron McIver
ale wtedy skutecznie każdy mógłby wysłać zaszyfrowany tekst na serwer, a tortoiseSVN nie zapewnia żadnego dodatkowego zabezpieczenia przez szyfrowanie.
Jus12
To prawda, dlatego informują o usuwaniu danych uwierzytelniania z komputera przy wyłączaniu lub przynajmniej okresowo, jeśli jest to problem. Jeśli komputer przechowujący dane uwierzytelniające został naruszony, nie jest to tak naprawdę problem TotoriseSVN per se.
Aaron McIver
Dzięki za pracę. Miałem nadzieję, że jest już do tego narzędzie.
Jus12