在前端加密用户密码有什么意义?

What is the point of encrypting user passwords on the frontend?

我正在使用 API,它要求用户密码在发送到服务器之前用服务器的 public 密钥加密。如果整个请求,包括username/password/etc。是通过HTTPS发送的,密码加密不是多余的吗?

根据服务器架构,这种加密可能会有帮助。例如,TL​​S (HTTPS) 连接可能会在网络外围终止(解密),以简化负载平衡或扫描流中的恶意数据包。单独加密密码甚至可以保护边缘服务器的密码,因此能够破坏其中之一的攻击者仍然无法访问密码。

就我个人而言,我会在发送密码之前拉伸(即 PBDKF2)密码。这确保服务器根本看不到原始密码。但即使在该配置中,当 TLS 流被提前解密时,额外的哈希加密层也可能有用。