为什么没有采用 RFC 7616 (HTTP Digest Auth)

信息安全 验证 网页浏览器 http
2021-08-23 09:47:02

RFC 2617 的后续版本增加了对 SHA-256 而不是 MD5 的支持,并使 qop 字段成为强制性的,从而使整个身份验证更加安全。

但是,没有主流浏览器/客户端(Edge、FF、Chrome、Opera、curl)支持它。

这对我来说有点奇怪,因为通常浏览器供应商在提高安全标准方面非常活跃。

为什么是这样?我在这里错过了什么吗?

2个回答

大多数站点不使用任何 HTTP 身份验证机制,即基本身份验证或基于 MD5 的摘要身份验证,因为这些机制在它们提供的功能上非常有限。使用这些身份验证机制甚至不可能注销。

但即使是少数使用 HTTP 身份验证的站点通常也更喜欢基本身份验证而不是 HTTPS 而不是摘要身份验证,因为最后一个要求密码以纯文本或等效形式存储在服务器上,从安全角度来看,这当然是不好的。

因此,摘要认证相对于其他认证形式的唯一优势是与未加密的连接一起使用。在所有其他情况下,它比其他已建立的身份验证方式更糟糕。但是,今天无论如何都认为通过不安全的连接进行任何类型的登录都是不好的。因此,没有必要在不解决其基本问题(即密码的必要纯文本(或纯文本等效)存储)的情况下稍微改进已经很差的认证机制。

除此之外 MD5 的弱点(如对碰撞攻击和原像攻击的抵抗力差)并不会真正影响其在 Digest 身份验证中的使用,即当与适当的随机服务器定义的 nonce 一起使用时,它仍然适用于此用例。

这是一个很棒的发现,我不知道带有 SHA 散列的 HTTP Digest

HTTP Digest 很棒,因为:

  • 设置很简单 [ 1 ]
  • 哈希方法已正式记录
  • 您永远不需要存储用户的密码,只需存储“H(A1)”[ 3 ]。
  • 因此你不能把它搞砸

HTTPS+Basic auth 不是很好:

  • 正确的设置既困难又昂贵 [ 2 ]
  • 新手进入壁垒,他们最终不得不依赖 SSL 提供商
  • 集中式,可以启用流氓 CA 无法检测到的窥探
  • 提供虚假的安全感
  • 没有关于如何安全存储凭据的一般指导

潜在的原因是他们希望巩固对网络的控制,因为 SSL 证书的颁发是集中的。

如果您想要最好的安全性,请同时使用 HTTPS 和 HTTP Digest。并且鼓励供应商实施最新的 RFC。