HTTPS协议的前端(客户端浏览器)是否需要密码加密?

时间:2015-12-07 03:50:05

标签: javascript ssl encryption https password-encryption

如标题所示,

  

环境:密码已经在数据库中使用哈希,并且使用HTTPS协议进行连接

我的问题很简单,通过HTTPS,我看到一些网站使用SSL,但在提交表单时也在前端(客户端浏览器)中进行密码加密。

  

需要吗?

在我看来,由于网站使用的是SSL。没有必要在前端(客户端浏览器)中加密密码。因为无论前端(客户端浏览器)做什么,黑客也可以通过使用库(客户端浏览器导入javascript哈希算法)来加密和发送令牌。即使把盐加点也少,这只是黑客加密它的额外步骤。

除非盐来自其他方式,不是来自同一来源(来自服务器的页面呈现)。例如:从移动设备,并使用otp作为盐然后可以解决。

否则我不认为加密在前端(客户端浏览器)中很有用。

我是对的吗?或者我错过了一些事情......

1 个答案:

答案 0 :(得分:1)

问题是,网站除了信任HTTPS / SSL连接之外没有其他选择。无论您在客户端(浏览器)进行的加密都将在JavaScript中完成,并且必须首先将此脚本发送到客户端。 ManInTheMiddle可以像你的客户那样做,或者他可以简单地删除整个脚本。

当你和你的同事试图发明一种秘密语言时,你会遇到同样的问题,而坏人正在倾听。如果你还没有分享秘密,这是不可能的。 SSL证书解决了这个问题,因为浏览器内置了根证书列表,这些证书将充当已共享密钥

应用与客户端和服务器部分的情况略有不同。在那里,您可以在应用中安装密钥,并根据此已共享密钥建立安全连接。

所以简短的回答是:是的,只要连接使用HTTPS / SSL加密,就可以发送密码明文。