摘要认证和基本认证有什么区别?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (94)

摘要基本身份验证有什么区别?

提问于
用户回答回答于

摘要式身份验证通过将哈希函数应用于用户名,密码,服务器提供的随机数值,HTTP方法和请求的URI来以加密形式传递凭证。

基本身份验证使用未加密的base64编码。

因此,基本身份验证通常应仅用于提供传输层安全性(例如https)的情况。

用户回答回答于

HTTP基本访问验证

  • 第1步:客户端发出信息请求,以纯文本形式向服务器发送用户名和密码
  • 第2步:服务器响应所需的信息或错误

HTTP Basic不需要通过SSL实现,但如果你不这样做,它根本就不安全。所以我甚至不会考虑没有使用它的想法。

优点:

  • 它的实现非常简单,因此您的客户开发人员可以减少工作量,缩短交付时间,因此开发人员可能更愿意使用您的API
  • 与摘要不同,您可以使用任何您喜欢的加密方法将密码存储在服务器上,例如bcrypt,使密码更安全
  • 只需调用一次服务器即可获取信息,使客户端比更复杂的认证方法稍微快一些

缺点:

  • SSL比基本的HTTP运行速度慢,所以这会导致客户端稍微慢一些
  • 如果您无法控制客户端,并且无法强制服务器使用SSL,则开发人员可能不会使用SSL,从而导致安全风险

综上所述 - 如果您拥有客户端的控制权,或者可以确保他们使用SSL,那么HTTP Basic是一个不错的选择。只有提出一个请求的速度才能抵消SSL的缓慢

HTTP摘要访问验证 HTTP摘要访问验证是一种更复杂的验证形式,其工作方式如下:

  • 第1步:客户端向服务器发送请求
  • 第2步:服务器与一个特殊的代码(称为响应现时即ň只用红棕色一次),代表着另一个字符串,并要求客户端进行身份验证
  • 第3步:客户端以此随机数和用户名,密码和领域(哈希)的加密版本进行响应,
  • 步骤4:如果客户端哈希匹配他们自己的用户名,密码和领域散列,服务器会响应所请求的信息,否则会返回错误

优点:

  • 没有用户名或密码以明文形式发送到服务器,使得非SSL连接比不通过SSL发送的HTTP基本请求更安全。这意味着不需要SSL,这使得每个呼叫的速度稍快

缺点:

  • 对于每个需要的调用,客户端必须调用2,这使得进程稍微比HTTP Basic慢
  • HTTP Digest容易受到中间人攻击,基本上意味着它可能被黑客入侵
  • HTTP Digest禁止使用强密码加密,这意味着存储在服务器上的密码可能会被黑客入侵

总之,HTTP Digest本质上至少容易受到两次攻击,而使用HTTP Basic over SSL的强密码加密的服务器不太可能共享这些漏洞。

如果无法控制客户端,但是他们可以尝试执行不使用SSL的基本身份验证,这比“摘要”安全性要低得多。

扫码关注云+社区