【问题标题】:Why facebook does not use public key to encrypt password before sending it to the server?为什么 facebook 在将密码发送到服务器之前不使用公钥加密密码?
【发布时间】:2016-11-10 06:15:28
【问题描述】:

如上图所示,facebook 在请求标头中显示用户密码。

我只是想知道为什么 facebook 不使用公钥隐藏密码。

编辑:

即使加密数据是 HTTPS 的工作,但使用 FIDDLER 之类的应用程序可以破坏 HTTPS。

在将密码发送到服务器之前对其进行加密有什么问题?

【问题讨论】:

  • 这不就是HTTPS吗?
  • 我不知道为什么这些问题会被否定。点。但我实际上想知道 facebook 怎么会如此无知,以至于它不会对可以使用 fiddler 之类的应用程序进行的中间人攻击感到该死。
  • Web 应用程序无法阻止用户对自己进行中间人攻击。第 3 方用户无法使用 fiddler 拦截数据,除非先入侵您的计算机以接受 fiddler 根证书
  • 所以展示你惊人的公钥加密,当我可以访问浏览器时,我无法访问密码。
  • @WizKid 对不起。我是菜鸟,我理解你所说的非常正确,我完全同意。但我发现了一个有助于加密字符串(密码)的 github 项目。在将密码发送到服务器之前加密密码不是更安全吗?我只是问如果我们这样做会不会更安全。 github.com/travist/jsencrypt

标签: javascript facebook rest security public-key-encryption


【解决方案1】:

正如@WizKid 所评论的,密码在从浏览器发送之前使用 HTTPS 加密,但您正在检查它的控制台会在加密之前获取数据。您可以尝试使用 fiddler 之类的工具来查看实际发送的内容

【讨论】:

  • 这正是我的问题。如果 facebook 知道 HTTPS 可以被 fiddler 之类的应用程序破坏,那么为什么不考虑使用公钥加密密码。还是脸书不知道...???
  • 在 fiddler 中,密码是加密的,查看密码的唯一方法是通过在浏览器中接受来自 fiddler 的根证书来“破解”浏览器,这样浏览器就可以接受来自 fiddler 的 pub 密钥来自 facebook 的公钥。 HTTPS 基于使用公钥(至少交换密钥以用于其余通信)
【解决方案2】:

正如@WizKid 评论的那样,您在问题 中建议的加密 正是正是 HTTPS 正在做什么.

HTTPS 使用 已在您的浏览器或设备中预安装签名证书,由受信任的第三方提供-party 证书颁发机构,以验证网站关联服务器的身份。这将防止网站网络钓鱼中间人 (MITM) 攻击。

用户网络服务器之间的通信传输层安全加密 (TLS) 或 安全套接字层 (SSL),因此您交换的数据受到 MITM 攻击的保护。

由于 HTTPS 依赖于信任 签名证书,您可以使用 Fiddler 解密数据,因为 Fiddler 要求您添加自行生成的证书以信任。如果没有您的许可,您的数据将是安全

【讨论】:

    【解决方案3】:

    因为使用 FIDDLER 之类的应用程序无法破坏 HTTPS!

    在将密码发送到服务器之前对其进行加密并没有错,这只是 Facebook 可能不相信会从安全角度添加任何内容的额外工作。

    【讨论】:

      猜你喜欢
      • 2011-05-03
      • 1970-01-01
      • 2014-06-23
      • 2012-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-03
      • 1970-01-01
      相关资源
      最近更新 更多