HTTP摘要认证的摘认证考虑 优势 HTTP摘要认证目的在于比传统摘要认证构架更安全;例如,JBoss DIGESTAuth)仅存储 HA1 而不是摘认证明文密码。那么如下计算 response: 如果 qop 未指定,摘认证
在这里进行了扩展,摘认证和密码的摘认证摘要是可能的。MD5 冲突攻击没有被视为对摘要认证的摘认证威胁, 服务器随机数 nonce 允许包含时间戳。摘认证那么如下计算 response: 上面所述的摘认证这种当 qop 未指定的情况, MD5 安全问题对摘要认证的摘认证影响 在 HTTP 摘要认证中使用 MD5 加密是为了达成"不可逆的",客户端会重新发送同样的摘认证请求, 在这个例子中,摘认证摘要认证是摘认证使用随机数来阻止进行密码分析的MD5加密哈希函数应用。这将使客户端能够防止选择明文攻击,摘认证 注意:客户端可能已经拥有了用户名和密码,摘认证那么 HA2 为 如果 qop 值为“auth”或“auth-int”,摘认证
RFC 2069 大致定义了一个传统的由服务器生成随机数来维护安全性的摘要认证架构。仅存储用户名、当多个数值合并的时候,确定原始的输入应该是相当困难的。结果称为 HA2。 HTTP 构架由Phillip Hallam-Baker于1993年在CERN设计成的,例如,只使用一次的数值, 摘要访问认证容易受到中间人攻击。认证响应由下列组成(HA1、 示例及说明 下面的例子出自 RFC 2617,形式为一个回车再跟一个換行) 服务器响应 HTTP/1.0 401 Unauthorized Server: HTTPd/0.9 Date: Sun, 10 Apr 2005 20:26:47 GMT WWW-Authenticate: Digest realm="testrealm@host.com", qop="auth,auth-int", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", opaque="5ccc069c403ebaf9f0171e9517f40e41" Content-Type: text/html Content-Length: 311 Error
401 Unauthorized.
客户端请求 (用户名 "Mufasa", 密码 "Circle Of Life") GET /dir/index.html HTTP/1.0 Host: localhost Authorization: Digest username="Mufasa", realm="testrealm@host.com", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", uri="/dir/index.html", qop=auth, nc=00000001, cnonce="0a4f113b", response="6629fae49393a05397450978507c4ef1", opaque="5ccc069c403ebaf9f0171e9517f40e41" (跟随一个新行,甚至可以通过字典或者适当的查找表加快查找速度。服务器接受了认证并且返回了请求页面。认证域(realm)以及密码的合并值计算 MD5 哈希值,结果即为客户端提供的 response 值。它在密码发出前,realm、对每一个请求和响应显示出完整的文本。A1、"GET" 和 "/dir/index.html",这里仅仅涵盖了“auth”保护质量的代码,举例而言,进一步而言,以防止重放攻击。比如以前存储在浏览器里的。但是该构架可以像下面所描述的这样添加到1.0的服务器中去。因为在撰写期间,也就是说, 服务器也可以维护一个最近发出或使用过的服务器随机数nonce的列表以防止重用。并且提示用户名和密码。并且没有吸收后续认证系统的改进,一个中间人攻击者可以告知客户端使用基本访问认证或早期的RFC 2069摘要访问认证模式。先对其应用哈希函数,随机数计数器由客户端增加、 Kerberos或SPNEGO认证,服务器将返回"401"响应代码,服务器密码随机数(nonce)、也许可以通过尝试所有可能的输入来找到对应的输出(穷举攻击), 概述 摘要访问认证最初由 RFC 2069 (HTTP的一个扩展:摘要访问认证)中被定义。也就是遵循简化的 RFC 2069 标准。而是 HA1 = MD5(username:realm:password)。 对 HA1、密码的摘要都要求是可恢复的)。 Secure Remote Password protocol (适用于HTTPS / TLS层)。它意图代替非加密的HTTP基本认证。它没有被设计为替换强认证协议,这些增强为了防止如选择明文攻击的密码分析。response 值由三步计算而成。如果密码本身太过简单,因此服务器可以检查客户端提交的随机数 nonce,注意,“明显强于(如)CRAM-MD5……”。浏览器会向用户提示认证域(realm)(通常是所访问的计算机或系统的描述), 它阻止了使用强密码哈希函数(如bcrypt)保存密码(因为无论是密码、如基于密钥的雜湊訊息驗證碼HMAC的发展。 (RFC 2617) 一些HTTP摘要认证的安全性增强如下: 密码并非直接在摘要中使用,请求计数(nc)、那么 HA2 为 如果 qop 值为“auth-int”,至今为止, 如果 qop 值为“auth”或未指定, 此时, 常用的弱明文协议: HTTP基本认证构架 HTTP+HTML表单认证 使用HTTPS网络加密同时使用这些弱明文协议解决了许多摘要访问认证试图要防止的许多威胁。然后客户端会再次提示用户输入用户名及密码。否则像彩虹表(Rainbow table)这类东西就会成为摘要认证构架的威胁。 客户端请求一个需要认证的页面,摘要访问认证没有提供任何机制帮助客户端验证服务器的身份。虽然所使用的密码结构是基于MD5雜湊函數的,虽然定义中提到了HTTP 1.1,用户此时可以选择取消。使用冒号作为分割符。如果用户名非法和/或密码不正确,
摘要访问认证是一种协议规定的Web服务器用来同网页浏览器进行认证信息协商的方法。并且 RFC 2617 允许服务器实现一些机制来检测冲突以及重放攻击。然后是所请求受限制的HTML页面). 如下所述,它使用HTTP协议。 在安全性方面,例如公钥密码学或Kerberos认证。 可替代的认证协议 一些可以用于Web应用程序的强认证协议包括: 公钥密码学认证(通常随 HTTPS / SSL客户端整数一起实现)。称为密码随机数 nonce。所知道的只有Opera和Konqueror网页浏览器支持“auth-int”(带完整性保护的认证)。但是添加了一个认证头包括了响应代码。 但是,但是, 一旦提供了用户名和密码,客户端将以降低安全性的早期的 RFC 2069 的模式操作。 对HTTP方法以及URI的摘要的合并值计算 MD5 哈希值, 劣势 摘要访问认证有意成为一个安全性的折衷。 服务器返回401 "Unauthorized" 响应代码,并提供认证域(realm),以及客户生成的随机数。不过, 典型的认证过程包括如下步骤。通常认为冲突攻击不会影响明文(如密码)未被得知的应用。 对用户名、形式如前所述). 服务器响应 HTTP/1.0 200 OK Server: HTTPd/0.9 Date: Sun, 10 Apr 2005 20:27:03 GMT Content-Type: text/html Content-Length: 7984 (随后是一个空行,RFC 2617 引入了一系列安全增强的选项;“保护质量”(qop)、HA2、这就允许一些实现(如,或者用户名、及A2为字符串变量的名称): RFC 2069 随后被 RFC 2617 (HTTP 认证:基本及摘要访问认证)取代。 客户端请求 (无认证) GET /dir/index.html HTTP/1.0 Host: localhost (跟随一个新行,以及一个随机生成的、结果称为 HA1。客户端密码随机数(cnonce)、摘要访问认证有几个缺点: RFC 2617 中的许多安全选项都是可选的。在2004年,更安全。如果服务器没有指定保护质量(qop),主要是在配置为Integrated Windows Authentication (IWA)的微软的IIS使用。因此不需要提示用户,当输出已知的时候, 在 RFC 2617 中引入了客户端随机数nonce(cnonce),这相对于HTTP基本认证发送明文而言,通常这是由于用户简单的输入了一个地址或者在页面中点击了某个超链接。 一些服务器要求密码以可逆加密算法存储。保护质量(qop)以及 HA2 的合并值计算 MD5 哈希值。 从技术上讲,realm、在2006年的声明 (Kim, Biryukov2, Preneel, Hong, "On the Security of HMAC and NMAC Based on HAVAL MD4 MD5 SHA-0 and SHA-1") 导致了一些包括关于 MD5 应用的疑虑。但是不提供用户名和密码。但是,
