Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Passwords 在传输之前散列密码?(网络)_Passwords - Fatal编程技术网

Passwords 在传输之前散列密码?(网络)

Passwords 在传输之前散列密码?(网络),passwords,Passwords,我读了这篇关于密码安全的文章,它提到有一些网站“在传输之前对密码进行散列” 现在,假设这不是使用SSL连接(HTTPS),a。这真的安全吗。如果是这样,你会如何在一个安全的庄园里做到这一点 编辑1:(基于前几个答案的一些想法) c。如果您在传输之前对密码进行了哈希运算,那么如果您只在用户凭据数据库中存储密码的附加哈希版本,您将如何使用该密码 d。只需检查一下,如果您使用的是HTTPS安全连接,是否有必要这样做?只有当服务器发送不可重用的salt(当然,如果您使用安全哈希)时,这才是安全的 否则,

我读了这篇关于密码安全的文章,它提到有一些网站“在传输之前对密码进行散列”

现在,假设这不是使用SSL连接(HTTPS),a。这真的安全吗。如果是这样,你会如何在一个安全的庄园里做到这一点

编辑1:(基于前几个答案的一些想法)

c。如果您在传输之前对密码进行了哈希运算,那么如果您只在用户凭据数据库中存储密码的附加哈希版本,您将如何使用该密码


d。只需检查一下,如果您使用的是HTTPS安全连接,是否有必要这样做?

只有当服务器发送不可重用的salt(当然,如果您使用安全哈希)时,这才是安全的

否则,攻击者只需嗅探用户哈希,然后重播该哈希以用户身份登录


请注意,登录容易受到中间人攻击。

我不认为它是安全的,但总比没有好。如果您让服务器在用户每次登录时选择哈希盐,则可以防止重播。但是,在登录时,没有什么可以保护用户免受中间人攻击。 当用户登录时,您必须将生成的盐存储在服务器上的某个位置。如果这是一个问题,您可以用另一个(固定的)salt散列salt,将结果用作校验和,并将两者作为隐藏字段添加到您的登录表单中


周围有一些人应该能做到这一点。如果可以,请不要使用MD5。

您可以通过使用salted数据库哈希生成用于对称加密的密钥来保护此方案免受中间人攻击

它的工作原理如下:

  • 服务器在数据库HD和salt SD中查找密码散列
  • 服务器选择一个随机的salt SR
  • 服务器通过使用SR散列数据库散列来生成密钥K
  • 服务器将SD和SR发送到客户端

  • 客户端通过将用户密码与SD散列计算HD
  • 客户端通过将HD与SP散列来计算K
  • 客户端使用K加密所有服务器通信
此方案根据用户密码创建一个随机会话密钥K。

中间的人在不知道用户密码(或必须保密的HD)的情况下无法获得K,因此不能模拟服务器。如果黑客可以简单地将散列重新发布到服务器上,那么它不会比明文密码更安全。@Paolo:至少攻击者不能在其他网站上使用该密码。那么这是否是一个可行的实现(假设启用了javascript):当用户提交时,使用请求的唯一id进行ajax调用,服务器根据id使用不可重复使用的salt进行响应,客户端浏览器使用SHA-1(或更好的)对salt和密码进行哈希,然后将其传输到服务器,服务器会检查密码、ajax id、用户名?无所谓,这不起作用,我只是阅读了Thorarin的帖子和评论,意识到双重哈希将是一个问题。如果您在数据库中安全地存储为salt散列,除非您使用某种可解密的哈希,否则无法将其与ajax salt/hash一起使用。PS:可解密的哈希称为加密。+1--但如果您关心安全性,这并不比什么都不做要好。@tvanfosson:一个问题是,您最终不得不以纯文本形式存储密码,或者使用某种双重哈希。后者使事情变得相当复杂,但好处有限。我更担心的是,马洛里会根据她递给鲍勃的盐(或者,因为她很聪明,用不同的盐制作出一张彩虹桌)最终会对鲍勃的真实密码进行三角定位,以便她将来可以使用它与爱丽丝交谈。@tvanfosson:这是一个问题,是的。每一个新的散列都使得有人更有可能找到原始密码。如果他们足够努力:)如果您使用的是HTTPS,请发送键入的密码。仍然存在潜在的漏洞,但比不使用SSL要少得多,而且我想不出SSL有什么漏洞是这个方案没有的。