Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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
javascript中用于用户身份验证的哈希密码_Javascript_Security_Hash_Passwords - Fatal编程技术网

javascript中用于用户身份验证的哈希密码

javascript中用于用户身份验证的哈希密码,javascript,security,hash,passwords,Javascript,Security,Hash,Passwords,我一直在这里阅读与此相关的问题和答案,但没有人提出这一点,它有缺陷吗 用户的密码被我散列存储在我的服务器中 他访问登录名,我提供一个明文随机字符串 登录页面中的javascript散列他的密码,附加明文,重新散列整个字符串并将其发送到服务器 服务器从数据库中获取哈希密码,并附加明文、重新哈希和比较 我认为这种方法可以防止密码泄露和重放攻击,只要随机字符串是不可预测的,并且不能在合理的时间内重复使用 该算法是否存在任何缺陷?我看到的最大问题是,您正在解决一个已经解决的问题(通过SSL),如果您的方

我一直在这里阅读与此相关的问题和答案,但没有人提出这一点,它有缺陷吗

  • 用户的密码被我散列存储在我的服务器中
  • 他访问登录名,我提供一个明文随机字符串
  • 登录页面中的javascript散列他的密码,附加明文,重新散列整个字符串并将其发送到服务器
  • 服务器从数据库中获取哈希密码,并附加明文、重新哈希和比较
  • 我认为这种方法可以防止密码泄露和重放攻击,只要随机字符串是不可预测的,并且不能在合理的时间内重复使用


    该算法是否存在任何缺陷?

    我看到的最大问题是,您正在解决一个已经解决的问题(通过SSL),如果您的方案中不使用SSL,您仍然会面临中间人和会话劫持漏洞。如果您已经在使用SSL,那么这完全是不必要的复杂性,而且正如我们所知,复杂性对安全性是有害的


    因此,算法中的缺陷在于没有保护通信通道。如果没有这一点,您的算法就不是特别安全的,有了这一点,您的算法就没有特别必要了

    我同意前面关于使用SSL的回答,但我将在这里专门介绍算法

    要破坏您的算法,攻击者需要执行以下操作之一:

  • 了解用户的明文密码
  • 了解用户的哈希密码
  • 学习明文随机字符串加上双哈希密码
  • 假设攻击者知道或可以猜测您使用的哈希算法

    实现(1)的方法有几种,它们不在您的算法范围之内。常用密码、密码重用等

    散列密码(2)本质上也是一个密码,因为您将接受提交散列密码+随机明文的任何人。因此,如果攻击者可以在客户端或服务器上找到哈希密码,那么他就可以登录到您的站点

    (3)是一种有趣的攻击向量。在没有SSL的情况下,攻击者可以嗅探(3)中的两个元素—他将听到来自服务器的随机明文,然后将双哈希密码发送到服务器。然后他可以使用密码猜测工具来确定原始密码。从常见密码列表开始,对它们进行哈希运算,添加明文,然后再次进行哈希运算。破解所需的时间将取决于密码的强度和哈希算法的大小。他还可以尝试使用彩虹表查找“哈希密码”+“随机明文”字符串


    通过找到一种防止攻击者嗅探交换的方法,您的安全性将得到提高

    你说得很对,我想是关于偷饼干之类的。。但我感兴趣的是,从只将SSL用于登录表单的常见做法中删除SSL,然后为其余内容保留清晰的HTTP。SSL可能很昂贵,大多数提供商不会以免费的方式提供给您。