HTTP 基本身份验证通过网络发送未经散列和未加密的凭据,在传输过程中依靠 TLS 来保证机密性。但是,是否应该在后端使用标准 KDF 对密码进行哈希处理,以便在收到时进行比较?
http基本身份验证密码是否应该存储在服务器端散列?
信息安全
密码
哈希
http-基本身份验证
2021-08-30 07:31:06
2个回答
一般来说,密码应该在服务器上存储散列,无论它们是作为表单提交的结果在某些 HTTP POST 正文中传输,还是在基本身份验证中在 HTTP 标头中传输。
是的,应该是。HTTP Basic Auth 的默认后端是htpasswd,它加密密码*:
htpasswd 使用 bcrypt(为 Apache、SHA1 修改的 MD5 版本)或系统的 crypt() 例程对密码进行加密。htpasswd 管理的文件可能包含不同编码类型的密码的混合;某些用户记录可能具有 bcrypt 或 MD5 加密的密码,而同一文件中的其他用户记录可能具有使用 crypt() 加密的密码。
如果您正在设置备用后端,例如数据库,那么您应该提供加盐和散列作为防止密码泄露的强大保护。
*请注意,根据手册,“按照今天的标准,SHA 和 crypt() 格式是不安全的。”
其它你可能感兴趣的问题