2

我已阅读以下文章http://lifehacker.com/5919918/how-your-passwords-are-stored-on-the-internet-and-when-your-password-strength-doesnt-matter

网站可以通过多种方式存储您的密码,其中一些方式比其他方式更安全。下面简要介绍了最流行的方法,以及它们对数据安全的意义。

方法一:纯文本密码 工作原理:网站存储密码的最简单方式是纯文本。这意味着在他们的服务器上的某处,存在一个数据库,其中包含您的用户名和密码以人类可读的形式(也就是说,如果您的密码是 testing123,它作为 testing123 存储在数据库中)。当您在网站上输入您的凭据时,它会根据数据库检查它们是否匹配。从安全角度来看,这是最糟糕的方法,而且大多数信誉良好的网站都不以纯文本形式存储密码。如果有人破解了这个数据库,每个人的密码都会立即被泄露。

我的强密码重要吗?没门。无论您的密码有多长或多强,如果它以纯文本形式存储并且网站被黑客入侵,任何人都可以轻松访问您的密码,无需任何工作。在向朋友或其他容易猜到密码的人隐藏密码方面仍然很重要,但如果网站被黑客入侵,它不会有任何区别。

方法二:基本密码加密 工作原理:为了为您的密码添加比纯文本提供的更多保护,大多数网站在将密码存储在其服务器上之前都会对您的密码进行加密。对于那些不知道的人,加密使用特殊的密钥将您的密码变成随机的文本字符串。如果黑客获得了这个随机的文本字符串,他们将无法登录您的帐户,除非他们也拥有密钥,然后他们可以使用该密钥对其进行解密。

问题是,密钥通常与密码存储在同一台服务器上,因此如果服务器被黑客入侵,黑客不必做太多工作来解密所有密码,这意味着这种方法仍然非常不安全.

我的强密码重要吗?不会。由于使用密钥很容易解密密码数据库,因此您的强密码在这里也不会产生影响。再说一遍:这是网站被黑客入侵的情况;如果你有一个爱管闲事的朋友或家人在浏览你的东西,一个强密码可以帮助他们避免猜测。

方法三:散列密码 工作原理:散列类似于加密,因为它会将您的密码变成一长串字母和数字以使其隐藏。然而,与加密不同的是,散列是一种单行道:如果你有散列,你就不能向后运行算法来获得原始密码。这意味着黑客必须获取哈希值,然后尝试多种不同的密码组合才能查看哪些有效。

但是,这种方法有一个缺点。虽然黑客无法将哈希解码回原始密码,但他们可以尝试许多不同的密码,直到其中一个与他们拥有的哈希匹配。计算机可以非常快地做到这一点,并且借助一种叫做彩虹表的东西——它本质上是一个包含数万亿个不同哈希值及其匹配密码的列表——它们可以查找哈希值以查看它是否已经被发现。尝试在 Google 中输入 e38ad214943daad1d64c102faec29de4afe9da3d。您会很快发现它是“password1”的 SHA-1 哈希。有关彩虹表如何工作的更多信息,请查看这篇文章,通过编码大师 Jeff Atwood 就该主题进行编码。

我的强密码重要吗?在这种情况下,是的。彩虹表由已经过哈希测试的密码组成,这意味着真正弱的密码将很快被破解。然而,它们最大的弱点不是复杂性,而是长度。你最好使用一个很长的密码(比如 XKCD 著名的“正确的马电池订书钉”)而不是一个短而复杂的密码(比如 kj$fsDl#)。

方法四:用 少许盐对密码进行哈希处理 工作原理:对哈希进行哈希处理意味着在对密码进行哈希处理之前,在密码的开头或结尾添加一个随机字符串(称为“salt”)。它为每个密码使用不同的盐,即使盐存储在相同的服务器上,也很难在彩虹表中找到那些加盐的散列,因为每个散列都是长、复杂和唯一的。LinkedIn 以不使用加盐哈希而闻名,这使他们在最近的黑客攻击后受到了很多审查——如果他们使用了盐,他们的用户会更安全。

通过阅读上述文章,我想到了以下问题

1 .即使我没有密码,我仍然可以截获消息摘要......我什至不需要密码......我会简单地发起回复攻击(即截获后发送消息摘要自己进行身份验证它!!)

上述问题的解决方法可以通过以下方式解决 a.服务器向用户生成一个随机字符串(通常称为挑战)并要求他用他的密码对其进行加密..... b.用户输入他的密码,消息摘要密码被创建,随机字符串被这个消息摘要加密 c.这个加密的字符串被发送到服务器。d.server还用用户的消息摘要加密随机字符串,用从用户收到的加密字符串检查它,如果两者匹配,他是有效用户..!

2.我的问题是如果黑客访问数据库,他将访问消息摘要/即使他没有访问数据库,他仍然可以在用户首次注册数据库时拦截通信链接时获取消息摘要.. ....如何防止这种情况?

4

2 回答 2

1

即使我没有密码,我仍然可以截获消息摘要......我什至不需要密码......我会简单地发起回复攻击(即,截获后发送消息摘要本身进行身份验证! !)

这应该是不可能的。

客户端应将真实密码发送到服务器。它应该使用 SSL 加密。

服务器应该散列密码并将其与存储的散列密码进行比较。

以上问题的解决方案……</p>

也就是说,或多或少是 SSL 所做工作的一部分。

我的问题是如果黑客可以访问数据库,他将可以访问消息摘要

这是一个相对无关紧要的问题。密码应存储为具有不同盐的哈希值。原始密码受到保护。

即使他没有访问数据库,他仍然可以在用户首次注册到数据库时,在拦截通信链接的同时获取消息摘要

仅当 SSL 被破坏时。

于 2012-10-25T09:29:30.160 回答
0

用户注册始终通过 SSL 隧道完成,因此通常在遵循最佳实践时,您不必担心中间人类型的攻击。

于 2012-10-25T09:23:15.020 回答