如果我的 Git 托管服务提供商以纯文本形式存储密码,我是否应该担心?

如果我的 Git 托管服务提供商以纯文本形式存储密码,我是否应该担心?

我发现了一个在 Reddit 上发表评论建议免费 Git 主机 ProjectLocker 以纯文本形式存储他们的密码。

我不知道

  • (a)如果这是真的
  • (b)如何验证或
  • (c) 如果它是正确的,我应该有多担心。

这是否意味着某人可以轻而易举地进入我的一个私人代码存储库?

答案1

我在 ProjectLocker 工作,我想对这个帖子做一些澄清。首先,回答 OP 的问题:

a) 此传言不属实。ProjectLocker 不会以明文形式存储密码。

b) 如果无法访问其后端系统,您就无法为 ProjectLocker 或任何其他网站验证这一点。

c) 我会相当担心。但是,如果我发现任何主要的 Subversion 托管或 Git 托管站点都存储明文密码,我会非常惊讶。这真是个坏主意。

顺便说一句,ProjectLocker 上的所有 Git 访问都使用公钥认证,不需要密码。

正如其他人指出的那样,ProjectLocker 确实允许用户找回丢失的密码。我们通过使用双向函数加密存储密码来实现这一点。(如果您在电子商务网站上选中“保存此卡以供日后使用”框,您的信用卡就会以这种方式存储。定期计费的订阅网站(如 Netflix)也是如此。)一般来说,我们将密码视为敏感数据,如信用卡或客户工件(代码等)。关于网站是否应该以可检索格式存储密码存在公平的哲学争论,但我们用户的反馈表明他们更喜欢可检索的密码。

至于 Reddit 上的帖子,我可以说,发帖者从未在 ProjectLocker 工作过,对我们的身份验证系统没有实际了解。发帖者很可能不熟悉双向函数,并且错误地将“可逆”与“纯文本”混淆了。

最后,如果您正在考虑将代码托管给第三方,并且您不信任他们对此类问题的回答,那么您绝对不应该将您的代码存储在那里。如果您不信任您的主机,您根本不应该使用它们,无论他们如何存储您的密码。

答案2

如果这是真的那么这是一个安全风险,因为任何有访问权限(或能够通过某种方式获得访问权限)的人都能够读取您的密码。

你可以随时询问 ProjectLocker Reddit 上的评论是否属实。你是否相信他们的答案取决于你自己。

但我不知道这是不是真的。

答案3

验证这一点的一种方法是假装你忘记了密码。如果主机告诉你当前密码,而不是重置密码并给你一个临时密码,那么你就有证据证明他们以明文形式存储了密码。

编辑:Joshua 的评论是正确的:这并不能确凿地证明他们以纯文本形式存储您的密码,但可以证明他们以可逆格式存储您的密码。

最安全的方式是存储密码的加盐单向哈希值。对您的输入进行哈希处理并将其与存储的哈希值进行比较很简单,但任何人都无法通过逆向工程获得您的密码。这就是为什么大多数网站在您丢失密码时会向您发送一个奇怪的随机密码:他们不再知道您的密码是什么,所以他们必须将其重置为他们知道的密码。

如果 ProjectLocker 确实以可逆格式存储了您的密码,您应该有不同程度的担忧。心怀不满的员工并不是唯一的危险;如果攻击者能够获得数据库转储并确定解码密码的方式(如果他们可以获得数据库转储,他们很可能可以获得源代码),他们就会拥有大量密码。如果您在该网站使用在其他任何地方都没有使用的用户名和密码,他们能做的最糟糕的事情就是弄乱您的 ProjectLocker 帐户。但是,许多人在许多不同的网站上使用相同的用户名和类似的密码;如果您这样做,那么以可逆格式存储密码会让您面临巨大风险。

我认为,如果你在 ProjectLocker 使用的密码与在其他网站使用的密码不同,你不必太担心。但是,你还是应该向他们投诉,因为这样一来,一个小小的安全漏洞就很可能导致他人访问你的帐户。

相关内容