Netflix 如何知道我的密码?

Rav*_*mer 8 firefox passwords netflix

每当我在 Firefox 中访问 Netflix 主页时,我都会自动登录。

但是,当我打开 Firefox 的已保存密码列表时,我注意到 Netflix 不在 Firefox 为 ( Options -> Security -> Saved Passwords)

如果 Firefox 没有存储密码,Netflix 如何知道密码,以及它存储在哪里?

Vin*_*yak 31

回答您的第一个问题,Netflix 不知道您的密码

Netflix 和其他所有有能力的网站所做的是使用单向散列方案(MD5SHA-1SHA-2等)对您的密码进行散列。

这实际上是创建一个唯一的固定长度的十六进制指纹,用于标识作为密码的文本字符串。例如,以下是使用 MD5 散列后my-secure-password 的样子:

MD5 哈希

他们将此散列存储在其内部数据库中,每次您登录 Netflix 时,您在登录过程中提供的密码都会使用相同的方案再次散列,并与存储在其数据库中的散列密码副本进行匹配。

如果它们匹配,他们就知道您输入了正确的密码并且您被授予访问权限。如果他们不这样做,则您未通过身份验证。这就是为什么当您单击忘记密码链接的某些变体时,他们不会向您发送旧密码,而是要求您选择一个新密码。这是因为他们也不知道您的密码是什么。

那么如果 Firefox 没有存储 Netflix 的密码,你是如何登录的?

答案是会话 cookie。当您登录 Netflix 时(可能是不久前),您可能已经选择记住您的会话。
记住账号?

如果您这样做了,Firefox 会在您的计算机上存储一小部分信息,用于在您访问 Netflix 时唯一标识您。这些所谓的“cookies”通常会持续一小段时间,直到会话处于活动状态然后过期。然而,有些可能会持续数周或更长时间。删除该 cookie,Netflix 将不会记住您。

Netflix 饼干

关于你的第二个问题,如果 Firefox 没有“记住”密码,它就不会存储在任何地方。存储的是cookie。火狐将它们存储在它的配置文件夹的文件中cookies.sqlite这是一个的SQLite数据库文件。

最后,如果您选择通过 Facebook 帐户登录,则不需要密码,因此 Firefox 不会存储密码。

使用 Facebook 登录

但是,仍会创建一个 cookie 来识别您的会话。

  • MD5 **是**单向,因为它是一个散列函数。说它不是意味着您可以通过加密过程以某种方式从 MD5 哈希中获取原始数据。你不能。您提到的工具可以“反转”散列,只是因为它们投入了大量的计算机能力来暴力破解各种密码组合以获得原始密码字符串。这并不意味着 MD5 是可逆的。散列与加密不同,在加密中,如果您拥有密钥,则可以解密数据。同样使用散列,无论输入多长,输出始终是固定长度的。 (23认同)
  • @Derek 朕会功夫 MD5 在密码学上被“破坏”了,但这是关于**冲突**,而不是前映像(这对密码很重要)。MD5 对密码也不利,但这是因为它**快**,因此您可以在短时间内暴力破解多个密码(对于更先进的哈希函数(如 SHA)也是如此) -2 和 SHA-3)。请参阅 http://crypto.stackexchange.com/a/28/58。 (16认同)
  • 我必须只为 MD5 示例投反对票,但其余的答案可能会很好。这不是您想在 2014 年(即将是 2015 年)阅读的内容。使用原始 MD5(即使加盐)来存储密码从来都不是一个好主意,大多数人在过去 10 年中都意识到了这一点。-1 (9认同)
  • @Thomas 很抱歉你有这种感觉,但我的回答从来不应该是选择最佳散列方案的指南。SuperUser 不是 StackOverflow,不管喜欢与否,MD5 仍然是一个加密散列函数,所以我看不出用 MD5 的例子解释什么是散列有什么问题。 (8认同)
  • @kasperd “事实上,直到今天,对那些使用良好密码的用户来说,使用带盐的单次 MD5 调用仍然是安全的。” 不。请不要传播错误信息。一次调用 MD5 是完全不够的。 (7认同)
  • 你们正在使用术语“单向”的两种不同定义。有 [数学定义](http://mathworld.wolfram.com/Many-to-One.html),意思是“不单射”,然后是 [计算机科学定义](http://en.wikipedia .org/wiki/One-way_function),意思是“加密安全”。在讨论加密散列函数时,我们总是使用第二个定义,因此“MD5 不再是单向的”这一说法是正确的。 (4认同)
  • @TerryChia 这是我密码的盐渍哈希。知道它的力量后,我一点也不担心盐渍哈希公开为“$1$6kXWoBde$ycaVUKClUGuqnugceZVn...”。事实上,我非常有信心,我什至会向您展示相同密码的未加盐 MD5。`888adeb452573003f3ea87f2b9f817ca`。我可以向你保证,没有人会弄清楚那个密码是什么。MD5 足以作为我使用的强度的密码。弱密码不是那么多,但我不选择弱密码。 (3认同)
  • MD5 不再是真正的“单向”。像 Google 这样的工具和其他几个预先计算所有组合的大型数据库可以轻松地让您恢复原始字符串。如今,密码检查实际上是一个非常复杂的过程。 (2认同)
  • 所以,如果我要生成一个非常大的数据集的 MD5 哈希(比如,一个 15 KB 的纯文本文件 - 这只是文本,所以你可以把它看作一个非常长的密码)我仍然会得到一个 32 字节长的散列。我认为世界上没有任何计算机能够“反转”该散列以重新创建原始纯文本文件。 (2认同)

use*_*686 10

Netflix - 与大多数其他网站一样 -在正常浏览期间不关心您的密码。相反,当您登录时,Netflix 会让浏览器存储一个带有登录会话 ID 的“cookie”。浏览器每次请求新页面时都会将其返回。(同样,Firefox 中的密码存储在正常浏览期间不使用,仅用于自动填充登录页面中的密码字段。)

会话 cookie 通常是随机生成的,与您的登录名或密码没有任何关系 - 只有 Netflix 本身可以将其链接到您的帐户。

要查看它们,请右键单击页面,选择“查看页面信息”,然后在“安全”下单击“查看 Cookie”。


Cor*_*ius 5

Netflix 没有任何问题。就像您可以登录的几乎所有网站一样,它会在您的 PC 上存储一个 cookie,其中存储代表您密码的加密数据。

您没有在 Google、Facebook、Yahoo、Windows Live 以及您可能想到的任何帐户上看到相同的行为吗?

某些网络服务可能会使用仅在短时间内或仅在当前会话中有效的 cookie(例如 Yahoo 和 Facebook,除非您选择在此计算机上记住我选项)。但显然 Netflix 使用的 cookie 有效期更长,除非您删除浏览器历史记录,否则它会让您保持登录状态——尤其是 cookie。

现在,您可能会问浏览器中的密码存储有什么用。这很简单。如果您从 Netflix(或其他任何地方)注销,cookie 将被删除。如果您想重新登录,则必须同时输入帐户用户名和密码。如果您在浏览器中保存了密码,当您输入用户名时,它会自动完成该字段。

  • 澄清 - cookie 不包含任何代表密码的数据。相反,它们包含随机数据,用于标识与您的帐户关联的 *会话*。会话存储在服务器上。 (10认同)