passwordcard.org 的安全性如何?

信息安全 密码管理
2021-08-13 03:44:27

passwordcard.org 的安全性如何?假设用户遵循推荐的预防措施:

  • 不要用手指阅读,否则污迹会告诉小偷你的密码在哪里。
  • 将 PasswordCard 随身携带,不要将其放在计算机附近。
  • 打印此页面后清除浏览器缓存和历史记录。
3个回答

我对这项服务有很多担忧:

  1. 卡的前提是有缺陷的。虽然这简单地写下密码要好,但也好不到哪里如果攻击者知道该卡,则有 8 x 29 个起始位置以及您选择的密码长度和方向。这个选择可能是 8 并且很可能是向上、向右、向下或向下(4 种可能性)。使用您的卡或密码的攻击者可能会在 928 次尝试中获得您的密码。如果您考虑长度超过 8 且方向向左,则将该数字乘以可能的长度和/或方向的数量。8 行 x 29 列 x 8 个可能的长度 x 8 个可能的方向仍然只给出 14848。除了简单地写下您的密码之外,该卡提供的额外保护很少。
  2. 您的卡由一个秘密号码定义。如果有人知道这个秘密号码,他们可以通过访问该网站并输入该号码来重新生成整个卡片。这个数字在有问题的网站上到处泄露。

    • 该站点不默认使用 SSL,即使该站点可以使用 SSL 连接。卡下方有一个选项列表,其中之一是“安全连接”。旁边是一个小箭头。该箭头是指向该站点 SSL 版本的链接。如果您不使用 SSL,您的密码将在网络流量中可见。FAQ 中还有一个指向 SSL 版本的链接。
    • 图像被拉入带有包含密码的 URL 的页面。
    • 某些页面(例如这个页面)会导致图像被链接,http://www.passwordcard.org/generatecard.do?number=4cdf1e93c5229716&cookie=-n0uofpzgp7x7&allowCaching=true从而导致图像被发回,并带有Expires:允许其缓存一年的标头。尽管他们有“打印此页面后清除浏览器缓存和历史记录”的预防措施。这不会阻止中间第三方(例如您的 ISP)缓存。这与规定只有移动站点上的图像可缓存的常见问题解答相矛盾。
    • 密码被放在一个 cookie 中:有效期很number:ce9916b2fb16f213

      Set-Cookie: number=ce9916b2fb16f213; Domain=.passwordcard.org; Expires=Thu, 08-May-2081 13:00:58 GMT; Path=/
      
    • 缓存的图像和 cookie 最终都在您的硬盘驱动器上,这意味着即使您删除它们,它们也可以恢复,除非您使用安全删除过程。
    • 该站点从其他几个来源(包括addthis.comfacebook.net. 常见问题解答与我在网站上看到的内容大部分但并不完全一致。请注意,域也可能不同,例如google-analytics.comgoogle.comm.addthisedge.comssl.gstatic.com
    • 这个页面上,谷歌分析 javascript 特别导致了这个请求被发送:

      http://www.google-analytics.com / _ utm.gif?utmwv = 5.4.1&UTMS = 30&utmn = 482475756&utmhn = www.passwordcard.org&utmcs = UTF-8&utmsr = 1920×1080&utmvp = 700x626&utmsc = 24位&utmul = EN-US&utmje = 0&utmfl = 11.6%20r602&utmdt =您%20PasswordCard&utmhid = 257017121&utmr = 0&UTMP =%2Fen%2Fpanel%3F 号%3D1cc09968cc0f6c31&utmht = 1366451569430&utmac = UA-9164771-1&utmcc = _utma%3D18293158.224629233.1366447288.1366447288.1366447288.1%3B%2B__utmz%3D18293158.1366447288.1。 1.utmcsr%3Dsecurity.stackexchange.com%7Cutmccn%3D(referral)%7Cutmcmd%3Dreferral%7Cutmcct%3D%2Fquestions%2F34602%2Fhow-secure-is-passwordcard-org%3B&utmu=DB~

    • 密码写在卡本身上。仅凭这个数字比整个卡容易冲浪。
  3. 生成密码的代码在网站上可用并且确实使用java.security.SecureRandom,这很好。不幸的是,我对 Java 不够熟悉,不知道是否nextLong()会以同样的方式自动为 PRNG 播种nextBytes()如果 CSPRNG 的种子是可预测的,那么秘密数字就会变得可预测。

  4. 为了生成用于密码的字符串,使用密码java.util.Random作为种子。用于与安全相关任何事情的 PRNGjava.util.Random都存在严重 问题以至于非安全相关的游戏开发者会不小心注意到它们这段代码的具体问题是,它可能会在密码中引入模式,使密码更易于预测,甚至不知道密钥。

最后,您对 PasswordCard 的使用应取决于您的风险承受能力。上述所有可能性都不太可能发生在一个随机的人身上。如果您是一家在中国五年战略规划中对某个行业具有重要价值的公司的 CEO 或系统管理员,那么攻击者主动试图获取您的信息的可能性比我们谈论的高-学生的 Reddit 帐户。

您可以通过下载 Java 源代码并在自己的机器上生成密码卡来缓解上述大部分泄漏问题

您可以通过修改代码以在实例化 SecureRandom 对象后直接调用nextBytes()来确定播种

您可以通过修改代码以使用java.security.SecureRandom密码字符串的第二个实例而不是java.util.Random.

回答问题而不是评论 Ladadadada 的答案,因为我似乎没有足够的声誉直接发表评论(即使我在 stackoverflow 上这样做;这不是共享的吗?)。如有违反礼节,请见谅!

我是passwordcard.org 的作者。谢谢拉达达达,您的透彻分析!这是迄今为止我见过的最彻底的。你的观点是正确的,我同意你的结论。密码卡绝不是铁板钉钉的安全,它只是比许多人目前的做法更安全。

我将解决您提到的一些要点,例如更新常见问题解答,并减少不必要的缓存启用和 cookie 设置。只是为了具体解释一点:该网站不默认使用 SSL 的原因是 Google Adsense 不能通过 SSL 工作,我需要广告收入来支付托管费用。我承认,这不是最好的理由。

如果有人对我或 passwordcard.org 有任何疑问,请告诉我。(可能不在这里。公开向某人提出具体问题的公认方式是什么?)

它与写下的任何其他密码一样安全,除了它们生成的这些密码非常强大。

如果你遵循他们的最佳实践,你会没事的......但这是一个很大的IF你一定会把它留在身边。你一定会马虎。

一旦你变得草率,有人发现它......尝试工作表上的所有密码是微不足道的......

编辑:老实说。我不明白为什么人们不只记住几个密码。在您的手机知道所有电话号码之前,您曾经记住了多少个该死的电话号码?我赌了很多。使用额外的大脑驱动空间来保存一些密码。