【问题标题】:Extract TortoiseSVN saved password提取 TortoiseSVN 保存的密码
【发布时间】:2011-04-22 10:32:46
【问题描述】:

有没有办法提取 TortoiseSVN 保存的凭据?

【问题讨论】:

    标签: svn tortoisesvn forgot-password


    【解决方案1】:

    简短回答:您可以使用 TortoiseSVN Password Decrypter 轻松显示缓存的凭据,包括密码。

    长答案:这是该工具的工作原理。

    凭据保存在%APPDATA%\Subversion\auth\ 的子目录中。从this previous answer列出的它们是:

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

    第一个目录是感兴趣的目录。它似乎包含名称看起来像 GUID 的文件;为您保存凭据的每个存储库提供一个。

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

    为了使其工作,您必须有权访问您在选中“保存身份验证”复选框时运行的同一 Windows 用户帐户。这是因为 Windows 数据保护 API 使用与您的 Windows 帐户绑定的加密密钥。如果您丢失了此帐户(或者,我相信,如果管理员重置了您的密码),那么您将无法再解密密码(也许使用暴力破解/third party tool 除外)。拥有一个具有相同用户名/密码(甚至可能是 SID)的新 Windows 帐户是不够的。

    【讨论】:

      【解决方案2】:

      根据下面的信息,听起来您可以以某种方式在本地解密它们......

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

      当它们通过网络发送时 加密,它们使用 握手和/或商定的密钥 连接时间。

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

      本地加密的副本不能 由服务器解密,因为 密钥是您帐户的本地密钥。

      所以当你连接时(比如说通过 HTTPS),您的客户端获取 通过解密的凭据 适当的 Windows API,然后包括 它们在 HTTPS 传输中。 HTTPS 加密整个通信 使用 SSL 的客户端和服务器之间 证书,而不仅仅是 凭据。

      【讨论】:

      • 你确定没有在客户端解密密码?
      • 相当肯定...没有向 TortiseSVN 人员发布明确的问题,这就是我发现的...tortoisesvn.net/docs/release/TortoiseSVN_en/… 此外,如果它是在客户端解密的,然后以纯文本形式推送到服务器会失败的目的。我想你可以通过 SSH 发送它。
      • 但实际上任何人都可以将密文发送到服务器,而 tortoiseSVN 不会通过加密提供任何额外的安全性。
      • 是的,这就是为什么他们会在关机时或至少以定期方式从您的 PC 中删除身份验证数据(如果这是一个问题)的原因。如果持有 auth 数据的机器遭到破坏,那么这本身并不是一个真正的 TotoriseSVN 问题。
      • 感谢您的工作。我希望已经有一个工具。
      猜你喜欢
      • 2015-03-04
      • 2011-02-05
      • 2011-11-04
      • 2020-11-21
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 2019-07-29
      • 2022-01-21
      相关资源
      最近更新 更多