2010-10-07 17 views

Odpowiedz

211

Krótka odpowiedź: Możesz używać TortoiseSVN Password Decrypter łatwo wyświetlać buforowanych poświadczeń, w tym haseł.

Długa odpowiedź: Oto, jak działa to narzędzie.

Dane uwierzytelniające są zapisywane w podkatalogach %APPDATA%\Subversion\auth\. Wystawione od this previous answer one:

  • svn.simple zawiera poświadczenia uwierzytelniania podstawowego (login/hasło)
  • svn.ssl.server zawiera certyfikaty serwera SSL
  • svn.username zawiera poświadczenia uwierzytelniania nazwę użytkownika tylko (hasło nie jest to konieczne)

Pierwszy katalog jest interesujący. Wygląda na to, że zawiera pliki o nazwach wyglądających jak identyfikatory GUID; po jednym dla każdego repozytorium, dla którego zostały zapisane poświadczenia.

Hasła w tych plikach są szyfrowane przez Windows Data Protection API. Powyższe narzędzie wykorzystuje przykładowy kod z Obviex do interfejsu z tym interfejsem API i do deszyfrowania.

Aby to zadziałało, musisz zaznaczyć pole wyboru "Zapisz uwierzytelnienie", aby mieć dostęp do tego samego konta użytkownika systemu Windows, którego używasz. Wynika to z faktu, że interfejs API ochrony danych systemu Windows używa klucza szyfrowania powiązanego z kontem systemu Windows.Jeśli zgubisz to konto (lub, jak sądzę, jeśli administrator zresetuje twoje hasło), nie będziesz już mógł odszyfrować haseł (z wyjątkiem , być może za pomocą brute force/a third party tool). Posiadanie nowego konta Windows z tą samą nazwą użytkownika/hasłem (lub prawdopodobnie nawet identyfikatorem SID) nie jest wystarczające.

8

podstawie informacji poniżej brzmi jak można odszyfrować je lokalnie możliwe w jakiś sposób ...

UPDATE: ostateczną odpowiedź od TortiseSVN społeczności

kiedy są przesyłane przez druty zaszyfrowane, są zaszyfrowane za pomocą uzgodnienia i/lub uzgodnionego klucza pod numerem czasu połączenia.

gdy są przechowywane/odczytu lokalnie, są szyfrowane/odszyfrowane przez Crypto API systemu Windows, który używa klucza przywiązane do konta Windows.

Zaszyfrowana lokalnie kopia nie może być odszyfrowana przez serwer, ponieważ klucze są lokalne dla twojego konta.

Więc po podłączeniu (powiedzmy poprzez HTTPS), klient dostaje poświadczenia odszyfrowane przez odpowiedniego API systemu Windows, a następnie obejmuje im w przekazywaniu HTTPS. HTTPS szyfruje całą całą komunikację między klientem a serwerem & przy użyciu certyfikatów SSL , a nie tylko poświadczeń .

+0

czy jesteś pewien, że hasło nie zostało odszyfrowane po stronie klienta? – Jus12

+0

Całkiem pewne ... bez wysyłania jednoznacznego pytania do osób z TortiseSVN, oto co znalazłem ... http: //tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug.html#tsvn-dug-general- auth Ponadto, jeśli była to strona odszyfrowana po stronie klienta, a następnie przesłana do serwera w postaci zwykłego tekstu, to pokonałaby ona cel. Sądzę, że możesz przesłać go przez SSH. –

+0

, ale w efekcie każdy mógł wysłać szyfrowany tekst na serwer, a tortoiseSVN nie zapewnia żadnych dodatkowych zabezpieczeń za pomocą szyfrowania. – Jus12