提取TortoiseSVN保存的密码


Answers:


226

简短答案:您可以使用TortoiseSVN密码解密器轻松显示您的缓存凭证,包括密码。

长答案:这是该工具的工作方式。

凭据保存在的子目录中%APPDATA%\Subversion\auth\。从上一个答案中列出的是:

  • svn.simple 包含用于基本身份验证的凭据(用户名/密码)
  • svn.ssl.server 包含SSL服务器证书
  • svn.username 包含仅用户名身份验证的凭据(无需密码)

第一个目录是您感兴趣的目录。它似乎包含名称类似于GUID的文件。每个已保存凭据的存储库一个。

这些文件中的密码由Windows Data Protection API加密。上面的工具使用Obviex的示例代码与此API进行接口并执行解密。

为了使它起作用,您必须具有在选中“保存身份验证”复选框时正在运行的Windows用户帐户的访问权限。这是因为Windows数据保护API使用了与Windows帐户绑定的加密密钥。如果你失去了这个帐户(或者,我相信,如果管理员重置您的密码),那么你将不再能够(除了解密密码可能通过使用蛮力/ A 第三方工具)。使用相同的用户名/密码(甚至可能是SID)拥有一个新的Windows帐户还不够。


8

根据以下信息,听起来您可以以某种方式在本地对其进行解密...

更新:来自TortiseSVN社区的明确答案

通过加密的有线方式发送它们时,在连接时使用握手和/或商定的密钥对它们进行加密。

当它们在本地存储/读取时,它们会通过Windows Crypto API加密/解密,该API使用与您的Windows帐户绑定的密钥。

服务器无法解密本地加密的副本,因为密钥是您帐户的本地密钥。

因此,当您连接时(例如通过HTTPS),客户端将通过相应的Windows API解密凭据,然后将其包含在HTTPS传输中。HTTPS 使用SSL证书(不仅是凭据)来加密客户端与服务器之间的整个通信。


您确定密码没有在客户端解密吗?
2010年

可以肯定的是...没有向TortiseSVN员工发布任何明确的问题,这就是我所发现的... tortoisesvn.net/docs/release/TortoiseSVN_en / ... 另外,如果它是在客户端解密的,则以纯文本格式推送到服务器将无法达到目的。我想您可以通过SSH发送它。
亚伦·麦克弗

但实际上,任何人都可以将密文发送到服务器,并且tortoiseSVN不会通过加密提供任何其他安全性。
2010年

的确如此,这就是为什么他们让您知道在关机时或如果有问题的话至少定期地从您的PC删除身份验证数据。如果保存身份验证数据的计算机已受到威胁,那么这实际上并不是TotoriseSVN问题。
亚伦·麦克弗

谢谢你的工作 我希望已经有用于此的工具。
2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.