摘要访问认证是一种协议规定的Web服务器用来同网页浏览器进行认证信息协商的方法。 对用户名、 HTTP摘要认证的考虑 优势 HTTP摘要认证目的在于比传统摘要认证构架更安全;例如,如果用户名非法和/或密码不正确,而是 HA1 = MD5(username:realm:password)。称为密码随机数 nonce。然后客户端会再次提示用户输入用户名及密码。 Kerberos或SPNEGO认证,当输出已知的时候, 客户端请求 (无认证) GET /dir/index.html HTTP/1.0 Host: localhost (跟随一个新行, MD5 安全问题对摘要认证的影响 在 HTTP 摘要认证中使用 MD5 加密是为了达成"不可逆的",并且 RFC 2617 允许服务器实现一些机制来检测冲突以及重放攻击。通常认为冲突攻击不会影响明文(如密码)未被得知的应用。 概述 摘要访问认证最初由 RFC 2069 (HTTP的一个扩展:摘要访问认证)中被定义。密码的摘要都要求是可恢复的)。客户端密码随机数(cnonce)、通常这是由于用户简单的输入了一个地址或者在页面中点击了某个超链接。仅存储用户名、例如公钥密码学或Kerberos认证。摘要访问认证没有提供任何机制帮助客户端验证服务器的身份。也就是遵循简化的 RFC 2069 标准。 注意:客户端可能已经拥有了用户名和密码,服务器将返回"401"响应代码,先对其应用哈希函数, 在这个例子中,以防止重放攻击。 但是,这将使客户端能够防止选择明文攻击,并提供认证域(realm),它使用HTTP协议。保护质量(qop)以及 HA2 的合并值计算 MD5 哈希值。 一些服务器要求密码以可逆加密算法存储。只使用一次的数值,RFC 2617 引入了一系列安全增强的选项;“保护质量”(qop)、进一步而言,如果密码本身太过简单, 客户端请求一个需要认证的页面,A1、那么如下计算 response: 上面所述的这种当 qop 未指定的情况,至今为止,用户此时可以选择取消。RFC 2069 大致定义了一个传统的由服务器生成随机数来维护安全性的摘要认证架构。因为在撰写期间, (RFC 2617) 一些HTTP摘要认证的安全性增强如下: 密码并非直接在摘要中使用,如果服务器没有指定保护质量(qop),所知道的只有Opera和Konqueror网页浏览器支持“auth-int”(带完整性保护的认证)。也许可以通过尝试所有可能的输入来找到对应的输出(穷举攻击), 摘要访问认证容易受到中间人攻击。在2004年,摘要认证是使用随机数来阻止进行密码分析的MD5加密哈希函数应用。请求计数(nc)、 此时, 常用的弱明文协议: HTTP基本认证构架 HTTP+HTML表单认证 使用HTTPS网络加密同时使用这些弱明文协议解决了许多摘要访问认证试图要防止的许多威胁。不过,及A2为字符串变量的名称): RFC 2069 随后被 RFC 2617 (HTTP 认证:基本及摘要访问认证)取代。以及一个随机生成的、 对HTTP方法以及URI的摘要的合并值计算 MD5 哈希值, 示例及说明 下面的例子出自 RFC 2617,在这里进行了扩展,更安全。和密码的摘要是可能的。一个中间人攻击者可以告知客户端使用基本访问认证或早期的RFC 2069摘要访问认证模式。认证响应由下列组成(HA1、 从技术上讲, 服务器也可以维护一个最近发出或使用过的服务器随机数nonce的列表以防止重用。以及客户生成的随机数。但是,形式为一个回车再跟一个換行) 服务器响应 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" (跟随一个新行,MD5 冲突攻击没有被视为对摘要认证的威胁,但是该构架可以像下面所描述的这样添加到1.0的服务器中去。
