source: draft-ietf-httpbis/latest/p7-auth.xml @ 425

Last change on this file since 425 was 425, checked in by julian.reschke@…, 11 years ago

reference RFC5234 core rules directly, fix line end bug in appendix generation (related to #36)

  • Property svn:eol-style set to native
File size: 37.6 KB
Line 
1<?xml version="1.0" encoding="utf-8"?>
2<?xml-stylesheet type='text/xsl' href='../myxml2rfc.xslt'?>
3<!DOCTYPE rfc [
4  <!ENTITY MAY "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>MAY</bcp14>">
5  <!ENTITY MUST "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>MUST</bcp14>">
6  <!ENTITY MUST-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>MUST NOT</bcp14>">
7  <!ENTITY OPTIONAL "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>OPTIONAL</bcp14>">
8  <!ENTITY RECOMMENDED "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>RECOMMENDED</bcp14>">
9  <!ENTITY REQUIRED "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>REQUIRED</bcp14>">
10  <!ENTITY SHALL "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>SHALL</bcp14>">
11  <!ENTITY SHALL-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>SHALL NOT</bcp14>">
12  <!ENTITY SHOULD "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>SHOULD</bcp14>">
13  <!ENTITY SHOULD-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>SHOULD NOT</bcp14>">
14  <!ENTITY ID-VERSION "latest">
15  <!ENTITY ID-MONTH "November">
16  <!ENTITY ID-YEAR "2008">
17  <!ENTITY notation                     "<xref target='Part1' x:rel='#notation' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
18  <!ENTITY notation-abnf                "<xref target='Part1' x:rel='#notation.abnf' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
19  <!ENTITY basic-rules                  "<xref target='Part1' x:rel='#basic.rules' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
20  <!ENTITY shared-and-non-shared-caches "<xref target='Part6' x:rel='#shared.and.non-shared.caches' xmlns:x='http://purl.org/net/xml2rfc/ext'/>">
21]>
22<?rfc toc="yes" ?>
23<?rfc symrefs="yes" ?>
24<?rfc sortrefs="yes" ?>
25<?rfc compact="yes"?>
26<?rfc subcompact="no" ?>
27<?rfc linkmailto="no" ?>
28<?rfc editing="no" ?>
29<?rfc comments="yes"?>
30<?rfc inline="yes"?>
31<?rfc-ext allow-markup-in-artwork="yes" ?>
32<?rfc-ext include-references-in-index="yes" ?>
33<rfc obsoletes="2616" updates="2617" category="std" x:maturity-level="draft"
34     ipr="full3978" docName="draft-ietf-httpbis-p7-auth-&ID-VERSION;"
35     xmlns:x='http://purl.org/net/xml2rfc/ext'>
36<front>
37
38  <title abbrev="HTTP/1.1, Part 7">HTTP/1.1, part 7: Authentication</title>
39
40  <author initials="R." surname="Fielding" fullname="Roy T. Fielding" role="editor">
41    <organization abbrev="Day Software">Day Software</organization>
42    <address>
43      <postal>
44        <street>23 Corporate Plaza DR, Suite 280</street>
45        <city>Newport Beach</city>
46        <region>CA</region>
47        <code>92660</code>
48        <country>USA</country>
49      </postal>
50      <phone>+1-949-706-5300</phone>
51      <facsimile>+1-949-706-5305</facsimile>
52      <email>fielding@gbiv.com</email>
53      <uri>http://roy.gbiv.com/</uri>
54    </address>
55  </author>
56
57  <author initials="J." surname="Gettys" fullname="Jim Gettys">
58    <organization>One Laptop per Child</organization>
59    <address>
60      <postal>
61        <street>21 Oak Knoll Road</street>
62        <city>Carlisle</city>
63        <region>MA</region>
64        <code>01741</code>
65        <country>USA</country>
66      </postal>
67      <email>jg@laptop.org</email>
68      <uri>http://www.laptop.org/</uri>
69    </address>
70  </author>
71 
72  <author initials="J." surname="Mogul" fullname="Jeffrey C. Mogul">
73    <organization abbrev="HP">Hewlett-Packard Company</organization>
74    <address>
75      <postal>
76        <street>HP Labs, Large Scale Systems Group</street>
77        <street>1501 Page Mill Road, MS 1177</street>
78        <city>Palo Alto</city>
79        <region>CA</region>
80        <code>94304</code>
81        <country>USA</country>
82      </postal>
83      <email>JeffMogul@acm.org</email>
84    </address>
85  </author>
86
87  <author initials="H." surname="Frystyk" fullname="Henrik Frystyk Nielsen">
88    <organization abbrev="Microsoft">Microsoft Corporation</organization>
89    <address>
90      <postal>
91        <street>1 Microsoft Way</street>
92        <city>Redmond</city>
93        <region>WA</region>
94        <code>98052</code>
95        <country>USA</country>
96      </postal>
97      <email>henrikn@microsoft.com</email>
98    </address>
99  </author>
100
101  <author initials="L." surname="Masinter" fullname="Larry Masinter">
102    <organization abbrev="Adobe Systems">Adobe Systems, Incorporated</organization>
103    <address>
104      <postal>
105        <street>345 Park Ave</street>
106        <city>San Jose</city>
107        <region>CA</region>
108        <code>95110</code>
109        <country>USA</country>
110      </postal>
111      <email>LMM@acm.org</email>
112      <uri>http://larry.masinter.net/</uri>
113    </address>
114  </author>
115 
116  <author initials="P." surname="Leach" fullname="Paul J. Leach">
117    <organization abbrev="Microsoft">Microsoft Corporation</organization>
118    <address>
119      <postal>
120        <street>1 Microsoft Way</street>
121        <city>Redmond</city>
122        <region>WA</region>
123        <code>98052</code>
124      </postal>
125      <email>paulle@microsoft.com</email>
126    </address>
127  </author>
128   
129  <author initials="T." surname="Berners-Lee" fullname="Tim Berners-Lee">
130    <organization abbrev="W3C/MIT">World Wide Web Consortium</organization>
131    <address>
132      <postal>
133        <street>MIT Computer Science and Artificial Intelligence Laboratory</street>
134        <street>The Stata Center, Building 32</street>
135        <street>32 Vassar Street</street>
136        <city>Cambridge</city>
137        <region>MA</region>
138        <code>02139</code>
139        <country>USA</country>
140      </postal>
141      <email>timbl@w3.org</email>
142      <uri>http://www.w3.org/People/Berners-Lee/</uri>
143    </address>
144  </author>
145
146  <author initials="Y." surname="Lafon" fullname="Yves Lafon" role="editor">
147    <organization abbrev="W3C">World Wide Web Consortium</organization>
148    <address>
149      <postal>
150        <street>W3C / ERCIM</street>
151        <street>2004, rte des Lucioles</street>
152        <city>Sophia-Antipolis</city>
153        <region>AM</region>
154        <code>06902</code>
155        <country>France</country>
156      </postal>
157      <email>ylafon@w3.org</email>
158      <uri>http://www.raubacapeu.net/people/yves/</uri>
159    </address>
160  </author>
161
162  <author initials="J. F." surname="Reschke" fullname="Julian F. Reschke" role="editor">
163    <organization abbrev="greenbytes">greenbytes GmbH</organization>
164    <address>
165      <postal>
166        <street>Hafenweg 16</street>
167        <city>Muenster</city><region>NW</region><code>48155</code>
168        <country>Germany</country>
169      </postal>
170      <phone>+49 251 2807760</phone>   
171      <facsimile>+49 251 2807761</facsimile>   
172      <email>julian.reschke@greenbytes.de</email>       
173      <uri>http://greenbytes.de/tech/webdav/</uri>     
174    </address>
175  </author>
176
177  <date month="&ID-MONTH;" year="&ID-YEAR;"/>
178
179<abstract>
180<t>
181   The Hypertext Transfer Protocol (HTTP) is an application-level
182   protocol for distributed, collaborative, hypermedia information
183   systems. HTTP has been in use by the World Wide Web global information
184   initiative since 1990. This document is Part 7 of the seven-part specification
185   that defines the protocol referred to as "HTTP/1.1" and, taken together,
186   obsoletes RFC 2616.  Part 7 defines HTTP Authentication.
187</t>
188</abstract>
189
190<note title="Editorial Note (To be removed by RFC Editor)">
191  <t>
192    Discussion of this draft should take place on the HTTPBIS working group
193    mailing list (ietf-http-wg@w3.org). The current issues list is
194    at <eref target="http://tools.ietf.org/wg/httpbis/trac/report/11"/>
195    and related documents (including fancy diffs) can be found at
196    <eref target="http://tools.ietf.org/wg/httpbis/"/>.
197  </t>
198  <t>
199    The changes in this draft are summarized in <xref target="changes.since.05"/>.
200  </t>
201</note>
202</front>
203<middle>
204<section title="Introduction" anchor="introduction">
205<t>
206   This document defines HTTP/1.1 access control and authentication. Right now it
207   includes the extracted relevant sections of
208   <xref target="RFC2616" x:fmt="none">RFC 2616</xref> with only minor changes.
209   The intention is to move the general framework for HTTP authentication here,
210   as currently specified in <xref target="RFC2617"/>, and allow the individual
211   authentication mechanisms to be defined elsewhere.  This introduction will
212   be rewritten when that occurs.
213</t>
214<t>
215   HTTP provides several &OPTIONAL; challenge-response authentication
216   mechanisms which can be used by a server to challenge a client
217   request and by a client to provide authentication information. The
218   general framework for access authentication, and the specification of
219   "basic" and "digest" authentication, are specified in "HTTP
220   Authentication: Basic and Digest Access Authentication" <xref target="RFC2617"/>. This
221   specification adopts the definitions of "challenge" and "credentials"
222   from that specification.
223</t>
224
225<section title="Requirements" anchor="intro.requirements">
226<t>
227   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
228   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
229   document are to be interpreted as described in <xref target="RFC2119"/>.
230</t>
231<t>
232   An implementation is not compliant if it fails to satisfy one or more
233   of the &MUST; or &REQUIRED; level requirements for the protocols it
234   implements. An implementation that satisfies all the &MUST; or &REQUIRED;
235   level and all the &SHOULD; level requirements for its protocols is said
236   to be "unconditionally compliant"; one that satisfies all the &MUST;
237   level requirements but not all the &SHOULD; level requirements for its
238   protocols is said to be "conditionally compliant."
239</t>
240</section>
241
242<section title="Syntax Notation" anchor="notation">
243  <x:anchor-alias value="ALPHA"/>
244  <x:anchor-alias value="CR"/>
245  <x:anchor-alias value="DIGIT"/>
246  <x:anchor-alias value="LF"/>
247  <x:anchor-alias value="OCTET"/>
248  <x:anchor-alias value="VCHAR"/>
249  <x:anchor-alias value="WSP"/>
250<t>
251  This specification uses the ABNF syntax defined in &notation;.
252  The following core rules are included by
253  reference, as defined in <xref target="RFC5234" x:fmt="," x:sec="B.1"/>:
254  ALPHA (letters), CR (carriage return), CRLF (CR LF), CTL (controls),
255  DIGIT (decimal 0-9), DQUOTE (double quote),
256  HEXDIG (hexadecimal 0-9/A-F/a-f), LF (line feed),
257  OCTET (any 8-bit sequence of data), SP (space),
258  VCHAR (any visible USASCII character),
259  and WSP (whitespace).
260</t>
261
262<section title="Core Rules" anchor="core.rules">
263  <x:anchor-alias value="OWS"/>
264<t>
265  The core rules below are defined in &basic-rules;:
266</t>
267<figure><artwork type="abnf2616">
268  <x:ref>OWS</x:ref>         = &lt;OWS, defined in &basic-rules;&gt;
269</artwork></figure>
270</section>
271
272<section title="ABNF Rules defined in other Parts of the Specification" anchor="abnf.dependencies">
273  <x:anchor-alias value="challenge"/>
274  <x:anchor-alias value="credentials"/>
275<t>
276  <x:anchor-alias value="OWS"/>
277  The ABNF rules below are defined in other specifications:
278</t>
279<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="challenge"/><iref primary="true" item="Grammar" subitem="credentials"/>
280  <x:ref>challenge</x:ref>   = &lt;challenge, defined in <xref target="RFC2617" x:fmt="," x:sec="1.2"/>&gt;
281  <x:ref>credentials</x:ref> = &lt;credentials, defined in <xref target="RFC2617" x:fmt="," x:sec="1.2"/>&gt;
282</artwork></figure>
283</section>
284
285</section>
286
287</section>
288
289
290<section title="Status Code Definitions">
291<section title="401 Unauthorized" anchor="status.401">
292  <iref primary="true" item="401 Unauthorized (status code)" x:for-anchor=""/>
293  <iref primary="true" item="Status Codes" subitem="401 Unauthorized" x:for-anchor=""/>
294<t>
295   The request requires user authentication. The response &MUST; include a
296   WWW-Authenticate header field (<xref target="header.www-authenticate"/>) containing a challenge
297   applicable to the requested resource. The client &MAY; repeat the
298   request with a suitable Authorization header field (<xref target="header.authorization"/>). If
299   the request already included Authorization credentials, then the 401
300   response indicates that authorization has been refused for those
301   credentials. If the 401 response contains the same challenge as the
302   prior response, and the user agent has already attempted
303   authentication at least once, then the user &SHOULD; be presented the
304   entity that was given in the response, since that entity might
305   include relevant diagnostic information. HTTP access authentication
306   is explained in "HTTP Authentication: Basic and Digest Access
307   Authentication" <xref target="RFC2617"/>.
308</t>
309</section>
310<section title="407 Proxy Authentication Required" anchor="status.407">
311  <iref primary="true" item="407 Proxy Authentication Required (status code)" x:for-anchor=""/>
312  <iref primary="true" item="Status Codes" subitem="407 Proxy Authentication Required" x:for-anchor=""/>
313<t>
314   This code is similar to 401 (Unauthorized), but indicates that the
315   client must first authenticate itself with the proxy. The proxy &MUST;
316   return a Proxy-Authenticate header field (<xref target="header.proxy-authenticate"/>) containing a
317   challenge applicable to the proxy for the requested resource. The
318   client &MAY; repeat the request with a suitable Proxy-Authorization
319   header field (<xref target="header.proxy-authorization"/>). HTTP access authentication is explained
320   in "HTTP Authentication: Basic and Digest Access Authentication"
321   <xref target="RFC2617"/>.
322</t>
323</section>
324</section>
325
326<section title="Header Field Definitions" anchor="header.fields">
327<t>
328   This section defines the syntax and semantics of HTTP/1.1 header fields
329   related to authentication.
330</t>
331
332<section title="Authorization" anchor="header.authorization">
333  <iref primary="true" item="Authorization header" x:for-anchor=""/>
334  <iref primary="true" item="Headers" subitem="Authorization" x:for-anchor=""/>
335  <x:anchor-alias value="Authorization"/>
336  <x:anchor-alias value="Authorization-v"/>
337<t>
338      A user agent that wishes to authenticate itself with a server--
339      usually, but not necessarily, after receiving a 401 response--does
340      so by including an Authorization request-header field with the
341      request.  The field "Authorization" consists of credentials
342      containing the authentication information of the user agent for
343      the realm of the resource being requested.
344</t>
345<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Authorization"/><iref primary="true" item="Grammar" subitem="Authorization-v"/>
346  <x:ref>Authorization</x:ref>   = "Authorization" ":" <x:ref>OWS</x:ref> <x:ref>Authorization-v</x:ref>
347  <x:ref>Authorization-v</x:ref> = <x:ref>credentials</x:ref>
348</artwork></figure>
349<t>
350      HTTP access authentication is described in "HTTP Authentication:
351      Basic and Digest Access Authentication" <xref target="RFC2617"/>. If a request is
352      authenticated and a realm specified, the same credentials &SHOULD;
353      be valid for all other requests within this realm (assuming that
354      the authentication scheme itself does not require otherwise, such
355      as credentials that vary according to a challenge value or using
356      synchronized clocks).
357</t>
358<t>
359      When a shared cache (see &shared-and-non-shared-caches;) receives a request
360      containing an Authorization field, it &MUST-NOT; return the
361      corresponding response as a reply to any other request, unless one
362      of the following specific exceptions holds:
363</t>
364<t>
365  <list style="numbers">
366      <t>If the response includes the "s-maxage" cache-control
367         directive, the cache &MAY; use that response in replying to a
368         subsequent request. But (if the specified maximum age has
369         passed) a proxy cache &MUST; first revalidate it with the origin
370         server, using the request-headers from the new request to allow
371         the origin server to authenticate the new request. (This is the
372         defined behavior for s-maxage.) If the response includes "s-maxage=0",
373         the proxy &MUST; always revalidate it before re-using
374         it.</t>
375
376      <t>If the response includes the "must-revalidate" cache-control
377         directive, the cache &MAY; use that response in replying to a
378         subsequent request. But if the response is stale, all caches
379         &MUST; first revalidate it with the origin server, using the
380         request-headers from the new request to allow the origin server
381         to authenticate the new request.</t>
382
383      <t>If the response includes the "public" cache-control directive,
384         it &MAY; be returned in reply to any subsequent request.</t>
385  </list>
386</t>
387</section>
388
389<section title="Proxy-Authenticate" anchor="header.proxy-authenticate">
390  <iref primary="true" item="Proxy-Authenticate header" x:for-anchor=""/>
391  <iref primary="true" item="Headers" subitem="Proxy-Authenticate" x:for-anchor=""/>
392  <x:anchor-alias value="Proxy-Authenticate"/>
393  <x:anchor-alias value="Proxy-Authenticate-v"/>
394<t>
395   The response-header field "Proxy-Authenticate" &MUST; be included as part
396   of a 407 (Proxy Authentication Required) response. The field value
397   consists of a challenge that indicates the authentication scheme and
398   parameters applicable to the proxy for this request-target.
399</t>
400<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Proxy-Authenticate"/><iref primary="true" item="Grammar" subitem="Proxy-Authenticate-v"/>
401  <x:ref>Proxy-Authenticate</x:ref>   = "Proxy-Authenticate" ":" <x:ref>OWS</x:ref>
402                         <x:ref>Proxy-Authenticate-v</x:ref>
403  <x:ref>Proxy-Authenticate-v</x:ref> = 1#<x:ref>challenge</x:ref>
404</artwork></figure>
405<t>
406   The HTTP access authentication process is described in "HTTP
407   Authentication: Basic and Digest Access Authentication" <xref target="RFC2617"/>. Unlike
408   WWW-Authenticate, the Proxy-Authenticate header field applies only to
409   the current connection and &SHOULD-NOT;  be passed on to downstream
410   clients. However, an intermediate proxy might need to obtain its own
411   credentials by requesting them from the downstream client, which in
412   some circumstances will appear as if the proxy is forwarding the
413   Proxy-Authenticate header field.
414</t>
415</section>
416
417<section title="Proxy-Authorization" anchor="header.proxy-authorization">
418  <iref primary="true" item="Proxy-Authorization header" x:for-anchor=""/>
419  <iref primary="true" item="Headers" subitem="Proxy-Authorization" x:for-anchor=""/>
420  <x:anchor-alias value="Proxy-Authorization"/>
421  <x:anchor-alias value="Proxy-Authorization-v"/>
422<t>
423   The request-header field "Proxy-Authorization" allows the client to
424   identify itself (or its user) to a proxy which requires
425   authentication. The Proxy-Authorization field value consists of
426   credentials containing the authentication information of the user
427   agent for the proxy and/or realm of the resource being requested.
428</t>
429<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Proxy-Authorization"/><iref primary="true" item="Grammar" subitem="Proxy-Authorization-v"/>
430  <x:ref>Proxy-Authorization</x:ref>   = "Proxy-Authorization" ":" <x:ref>OWS</x:ref>
431                          <x:ref>Proxy-Authorization-v</x:ref>
432  <x:ref>Proxy-Authorization-v</x:ref> = <x:ref>credentials</x:ref>
433</artwork></figure>
434<t>
435   The HTTP access authentication process is described in "HTTP
436   Authentication: Basic and Digest Access Authentication" <xref target="RFC2617"/>. Unlike
437   Authorization, the Proxy-Authorization header field applies only to
438   the next outbound proxy that demanded authentication using the Proxy-Authenticate
439   field. When multiple proxies are used in a chain, the
440   Proxy-Authorization header field is consumed by the first outbound
441   proxy that was expecting to receive credentials. A proxy &MAY; relay
442   the credentials from the client request to the next proxy if that is
443   the mechanism by which the proxies cooperatively authenticate a given
444   request.
445</t>
446</section>
447
448<section title="WWW-Authenticate" anchor="header.www-authenticate">
449  <iref primary="true" item="WWW-Authenticate header" x:for-anchor=""/>
450  <iref primary="true" item="Headers" subitem="WWW-Authenticate" x:for-anchor=""/>
451  <x:anchor-alias value="WWW-Authenticate"/>
452  <x:anchor-alias value="WWW-Authenticate-v"/>
453<t>
454   The WWW-Authenticate response-header field &MUST; be included in 401
455   (Unauthorized) response messages. The field value consists of at
456   least one challenge that indicates the authentication scheme(s) and
457   parameters applicable to the request-target.
458</t>
459<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="WWW-Authenticate"/><iref primary="true" item="Grammar" subitem="WWW-Authenticate-v"/>
460  <x:ref>WWW-Authenticate</x:ref>   = "WWW-Authenticate" ":" <x:ref>OWS</x:ref> <x:ref>WWW-Authenticate-v</x:ref>
461  <x:ref>WWW-Authenticate-v</x:ref> = 1#<x:ref>challenge</x:ref>
462</artwork></figure>
463<t>
464   The HTTP access authentication process is described in "HTTP
465   Authentication: Basic and Digest Access Authentication" <xref target="RFC2617"/>. User
466   agents are advised to take special care in parsing the WWW-Authenticate
467   field value as it might contain more than one challenge,
468   or if more than one WWW-Authenticate header field is provided, the
469   contents of a challenge itself can contain a comma-separated list of
470   authentication parameters.
471</t>
472</section>
473
474</section>
475
476<section title="IANA Considerations" anchor="IANA.considerations">
477<section title="Message Header Registration" anchor="message.header.registration">
478<t>
479   The Message Header Registry located at <eref target="http://www.iana.org/assignments/message-headers/message-header-index.html"/> should be updated
480   with the permanent registrations below (see <xref target="RFC3864"/>):
481</t>
482<!--AUTOGENERATED FROM extract-header-defs.xslt, do not edit manually-->
483<texttable align="left" suppress-title="true" anchor="iana.header.registration.table">
484   <ttcol>Header Field Name</ttcol>
485   <ttcol>Protocol</ttcol>
486   <ttcol>Status</ttcol>
487   <ttcol>Reference</ttcol>
488
489   <c>Authorization</c>
490   <c>http</c>
491   <c>standard</c>
492   <c>
493      <xref target="header.authorization"/>
494   </c>
495   <c>Proxy-Authenticate</c>
496   <c>http</c>
497   <c>standard</c>
498   <c>
499      <xref target="header.proxy-authenticate"/>
500   </c>
501   <c>Proxy-Authorization</c>
502   <c>http</c>
503   <c>standard</c>
504   <c>
505      <xref target="header.proxy-authorization"/>
506   </c>
507   <c>WWW-Authenticate</c>
508   <c>http</c>
509   <c>standard</c>
510   <c>
511      <xref target="header.www-authenticate"/>
512   </c>
513</texttable>
514<!--(END)-->
515<t>
516   The change controller is: "IETF (iesg@ietf.org) - Internet Engineering Task Force".
517</t>
518</section>
519</section>
520
521<section title="Security Considerations" anchor="security.considerations">
522<t>
523   This section is meant to inform application developers, information
524   providers, and users of the security limitations in HTTP/1.1 as
525   described by this document. The discussion does not include
526   definitive solutions to the problems revealed, though it does make
527   some suggestions for reducing security risks.
528</t>
529
530<section title="Authentication Credentials and Idle Clients" anchor="auth.credentials.and.idle.clients">
531<t>
532   Existing HTTP clients and user agents typically retain authentication
533   information indefinitely. HTTP/1.1 does not provide a method for a
534   server to direct clients to discard these cached credentials. This is
535   a significant defect that requires further extensions to HTTP.
536   Circumstances under which credential caching can interfere with the
537   application's security model include but are not limited to:
538  <list style="symbols">
539     <t>Clients which have been idle for an extended period following
540        which the server might wish to cause the client to reprompt the
541        user for credentials.</t>
542
543     <t>Applications which include a session termination indication
544        (such as a `logout' or `commit' button on a page) after which
545        the server side of the application `knows' that there is no
546        further reason for the client to retain the credentials.</t>
547  </list>
548</t>
549<t>
550   This is currently under separate study. There are a number of work-arounds
551   to parts of this problem, and we encourage the use of
552   password protection in screen savers, idle time-outs, and other
553   methods which mitigate the security problems inherent in this
554   problem. In particular, user agents which cache credentials are
555   encouraged to provide a readily accessible mechanism for discarding
556   cached credentials under user control.
557</t>
558</section>
559</section>
560
561<section title="Acknowledgments" anchor="ack">
562<t>
563  <cref>TBD.</cref>
564</t>
565</section>
566</middle>
567
568<back>
569
570<references title="Normative References">
571
572<reference anchor="Part1">
573  <front>
574    <title abbrev="HTTP/1.1">HTTP/1.1, part 1: URIs, Connections, and Message Parsing</title>
575    <author initials="R." surname="Fielding" fullname="Roy T. Fielding" role="editor">
576      <organization abbrev="Day Software">Day Software</organization>
577      <address><email>fielding@gbiv.com</email></address>
578    </author>
579    <author initials="J." surname="Gettys" fullname="Jim Gettys">
580      <organization>One Laptop per Child</organization>
581      <address><email>jg@laptop.org</email></address>
582    </author>
583    <author initials="J." surname="Mogul" fullname="Jeffrey C. Mogul">
584      <organization abbrev="HP">Hewlett-Packard Company</organization>
585      <address><email>JeffMogul@acm.org</email></address>
586    </author>
587    <author initials="H." surname="Frystyk" fullname="Henrik Frystyk Nielsen">
588      <organization abbrev="Microsoft">Microsoft Corporation</organization>
589      <address><email>henrikn@microsoft.com</email></address>
590    </author>
591    <author initials="L." surname="Masinter" fullname="Larry Masinter">
592      <organization abbrev="Adobe Systems">Adobe Systems, Incorporated</organization>
593      <address><email>LMM@acm.org</email></address>
594    </author>
595    <author initials="P." surname="Leach" fullname="Paul J. Leach">
596      <organization abbrev="Microsoft">Microsoft Corporation</organization>
597      <address><email>paulle@microsoft.com</email></address>
598    </author>
599    <author initials="T." surname="Berners-Lee" fullname="Tim Berners-Lee">
600      <organization abbrev="W3C/MIT">World Wide Web Consortium</organization>
601      <address><email>timbl@w3.org</email></address>
602    </author>
603    <author initials="Y." surname="Lafon" fullname="Yves Lafon" role="editor">
604      <organization abbrev="W3C">World Wide Web Consortium</organization>
605      <address><email>ylafon@w3.org</email></address>
606    </author>
607    <author initials="J. F." surname="Reschke" fullname="Julian F. Reschke" role="editor">
608      <organization abbrev="greenbytes">greenbytes GmbH</organization>
609      <address><email>julian.reschke@greenbytes.de</email></address>
610    </author>
611    <date month="&ID-MONTH;" year="&ID-YEAR;"/>
612  </front>
613  <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-p1-messaging-&ID-VERSION;"/>
614  <x:source href="p1-messaging.xml" basename="p1-messaging"/>
615</reference>
616
617<reference anchor="Part6">
618  <front>
619    <title abbrev="HTTP/1.1">HTTP/1.1, part 6: Caching</title>
620    <author initials="R." surname="Fielding" fullname="Roy T. Fielding" role="editor">
621      <organization abbrev="Day Software">Day Software</organization>
622      <address><email>fielding@gbiv.com</email></address>
623    </author>
624    <author initials="J." surname="Gettys" fullname="Jim Gettys">
625      <organization>One Laptop per Child</organization>
626      <address><email>jg@laptop.org</email></address>
627    </author>
628    <author initials="J." surname="Mogul" fullname="Jeffrey C. Mogul">
629      <organization abbrev="HP">Hewlett-Packard Company</organization>
630      <address><email>JeffMogul@acm.org</email></address>
631    </author>
632    <author initials="H." surname="Frystyk" fullname="Henrik Frystyk Nielsen">
633      <organization abbrev="Microsoft">Microsoft Corporation</organization>
634      <address><email>henrikn@microsoft.com</email></address>
635    </author>
636    <author initials="L." surname="Masinter" fullname="Larry Masinter">
637      <organization abbrev="Adobe Systems">Adobe Systems, Incorporated</organization>
638      <address><email>LMM@acm.org</email></address>
639    </author>
640    <author initials="P." surname="Leach" fullname="Paul J. Leach">
641      <organization abbrev="Microsoft">Microsoft Corporation</organization>
642      <address><email>paulle@microsoft.com</email></address>
643    </author>
644    <author initials="T." surname="Berners-Lee" fullname="Tim Berners-Lee">
645      <organization abbrev="W3C/MIT">World Wide Web Consortium</organization>
646      <address><email>timbl@w3.org</email></address>
647    </author>
648    <author initials="Y." surname="Lafon" fullname="Yves Lafon" role="editor">
649      <organization abbrev="W3C">World Wide Web Consortium</organization>
650      <address><email>ylafon@w3.org</email></address>
651    </author>
652    <author initials="J. F." surname="Reschke" fullname="Julian F. Reschke" role="editor">
653      <organization abbrev="greenbytes">greenbytes GmbH</organization>
654      <address><email>julian.reschke@greenbytes.de</email></address>
655    </author>
656    <date month="&ID-MONTH;" year="&ID-YEAR;"/>
657  </front>
658  <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-p6-cache-&ID-VERSION;"/>
659  <x:source href="p6-cache.xml" basename="p6-cache"/>
660</reference>
661
662<reference anchor="RFC2119">
663  <front>
664    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
665    <author initials="S." surname="Bradner" fullname="Scott Bradner">
666      <organization>Harvard University</organization>
667      <address><email>sob@harvard.edu</email></address>
668    </author>
669    <date month="March" year="1997"/>
670  </front>
671  <seriesInfo name="BCP" value="14"/>
672  <seriesInfo name="RFC" value="2119"/>
673</reference>
674
675<reference anchor="RFC2617">
676  <front>
677    <title abbrev="HTTP Authentication">HTTP Authentication: Basic and Digest Access Authentication</title>
678    <author initials="J." surname="Franks" fullname="John Franks">
679      <organization>Northwestern University, Department of Mathematics</organization>
680      <address><email>john@math.nwu.edu</email></address>
681    </author>
682    <author initials="P.M." surname="Hallam-Baker" fullname="Phillip M. Hallam-Baker">
683      <organization>Verisign Inc.</organization>
684      <address><email>pbaker@verisign.com</email></address>
685    </author>
686    <author initials="J.L." surname="Hostetler" fullname="Jeffery L. Hostetler">
687      <organization>AbiSource, Inc.</organization>
688      <address><email>jeff@AbiSource.com</email></address>
689    </author>
690    <author initials="S.D." surname="Lawrence" fullname="Scott D. Lawrence">
691      <organization>Agranat Systems, Inc.</organization>
692      <address><email>lawrence@agranat.com</email></address>
693    </author>
694    <author initials="P.J." surname="Leach" fullname="Paul J. Leach">
695      <organization>Microsoft Corporation</organization>
696      <address><email>paulle@microsoft.com</email></address>
697    </author>
698    <author initials="A." surname="Luotonen" fullname="Ari Luotonen">
699      <organization>Netscape Communications Corporation</organization>
700    </author>
701    <author initials="L." surname="Stewart" fullname="Lawrence C. Stewart">
702      <organization>Open Market, Inc.</organization>
703      <address><email>stewart@OpenMarket.com</email></address>
704    </author>
705    <date month="June" year="1999"/>
706  </front>
707  <seriesInfo name="RFC" value="2617"/>
708</reference>
709
710<reference anchor="RFC5234">
711  <front>
712    <title abbrev="ABNF for Syntax Specifications">Augmented BNF for Syntax Specifications: ABNF</title>
713    <author initials="D." surname="Crocker" fullname="Dave Crocker" role="editor">
714      <organization>Brandenburg InternetWorking</organization>
715      <address>
716      <postal>
717      <street>675 Spruce Dr.</street>
718      <city>Sunnyvale</city>
719      <region>CA</region>
720      <code>94086</code>
721      <country>US</country></postal>
722      <phone>+1.408.246.8253</phone>
723      <email>dcrocker@bbiw.net</email></address> 
724    </author>
725    <author initials="P." surname="Overell" fullname="Paul Overell">
726      <organization>THUS plc.</organization>
727      <address>
728      <postal>
729      <street>1/2 Berkeley Square</street>
730      <street>99 Berkely Street</street>
731      <city>Glasgow</city>
732      <code>G3 7HR</code>
733      <country>UK</country></postal>
734      <email>paul.overell@thus.net</email></address>
735    </author>
736    <date month="January" year="2008"/>
737  </front>
738  <seriesInfo name="STD" value="68"/>
739  <seriesInfo name="RFC" value="5234"/>
740</reference>
741
742</references>
743
744<references title="Informative References">
745
746<reference anchor="RFC2616">
747  <front>
748    <title>Hypertext Transfer Protocol -- HTTP/1.1</title>
749    <author initials="R." surname="Fielding" fullname="R. Fielding">
750      <organization>University of California, Irvine</organization>
751      <address><email>fielding@ics.uci.edu</email></address>
752    </author>
753    <author initials="J." surname="Gettys" fullname="J. Gettys">
754      <organization>W3C</organization>
755      <address><email>jg@w3.org</email></address>
756    </author>
757    <author initials="J." surname="Mogul" fullname="J. Mogul">
758      <organization>Compaq Computer Corporation</organization>
759      <address><email>mogul@wrl.dec.com</email></address>
760    </author>
761    <author initials="H." surname="Frystyk" fullname="H. Frystyk">
762      <organization>MIT Laboratory for Computer Science</organization>
763      <address><email>frystyk@w3.org</email></address>
764    </author>
765    <author initials="L." surname="Masinter" fullname="L. Masinter">
766      <organization>Xerox Corporation</organization>
767      <address><email>masinter@parc.xerox.com</email></address>
768    </author>
769    <author initials="P." surname="Leach" fullname="P. Leach">
770      <organization>Microsoft Corporation</organization>
771      <address><email>paulle@microsoft.com</email></address>
772    </author>
773    <author initials="T." surname="Berners-Lee" fullname="T. Berners-Lee">
774      <organization>W3C</organization>
775      <address><email>timbl@w3.org</email></address>
776    </author>
777    <date month="June" year="1999"/>
778  </front>
779  <seriesInfo name="RFC" value="2616"/>
780</reference>
781
782<reference anchor='RFC3864'>
783  <front>
784    <title>Registration Procedures for Message Header Fields</title>
785    <author initials='G.' surname='Klyne' fullname='G. Klyne'>
786      <organization>Nine by Nine</organization>
787      <address><email>GK-IETF@ninebynine.org</email></address>
788    </author>
789    <author initials='M.' surname='Nottingham' fullname='M. Nottingham'>
790      <organization>BEA Systems</organization>
791      <address><email>mnot@pobox.com</email></address>
792    </author>
793    <author initials='J.' surname='Mogul' fullname='J. Mogul'>
794      <organization>HP Labs</organization>
795      <address><email>JeffMogul@acm.org</email></address>
796    </author>
797    <date year='2004' month='September' />
798  </front>
799  <seriesInfo name='BCP' value='90' />
800  <seriesInfo name='RFC' value='3864' />
801</reference>
802
803</references>
804
805
806<section title="Compatibility with Previous Versions" anchor="compatibility">
807
808<section title="Changes from RFC 2616" anchor="changes.from.rfc.2616">
809</section>
810
811</section>
812
813<section title="Collected ABNF" anchor="collected.abnf">
814   <figure>
815      <artwork type="abnf" name="p7-auth.parsed-abnf">
816Authorization = "Authorization:" OWS Authorization-v
817Authorization-v = credentials
818OWS = &lt;OWS, defined in [Part1], Section 1.2.2&gt;
819Proxy-Authenticate = "Proxy-Authenticate:" OWS Proxy-Authenticate-v
820Proxy-Authenticate-v = *( "," OWS ) challenge *( OWS "," [ OWS
821 challenge ] )
822Proxy-Authorization = "Proxy-Authorization:" OWS
823 Proxy-Authorization-v
824Proxy-Authorization-v = credentials
825WWW-Authenticate = "WWW-Authenticate:" OWS WWW-Authenticate-v
826WWW-Authenticate-v = *( "," OWS ) challenge *( OWS "," [ OWS
827 challenge ] )
828challenge = &lt;challenge, defined in [RFC2617], Section 1.2&gt;
829credentials = &lt;credentials, defined in [RFC2617], Section 1.2&gt;
830; Authorization defined but not used
831; Proxy-Authenticate defined but not used
832; Proxy-Authorization defined but not used
833; WWW-Authenticate defined but not used
834</artwork>
835   </figure>
836</section>
837
838<section title="Change Log (to be removed by RFC Editor before publication)"  anchor="change.log">
839
840<section title="Since RFC2616">
841<t>
842  Extracted relevant partitions from <xref target="RFC2616"/>.
843</t>
844</section>
845
846<section title="Since draft-ietf-httpbis-p7-auth-00">
847<t>
848  Closed issues:
849  <list style="symbols"> 
850    <t>
851      <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/35"/>:
852      "Normative and Informative references"
853    </t>
854  </list>
855</t>
856</section>
857
858<section title="Since draft-ietf-httpbis-p7-auth-01">
859<t>
860  Ongoing work on ABNF conversion (<eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/36"/>):
861  <list style="symbols"> 
862    <t>
863      Explicitly import BNF rules for "challenge" and "credentials" from RFC2617.
864    </t>
865    <t>
866      Add explicit references to BNF syntax and rules imported from other parts of the specification.
867    </t>
868  </list>
869</t>
870</section>
871
872<section title="Since draft-ietf-httpbis-p7-auth-02" anchor="changes.since.02">
873<t>
874  Ongoing work on IANA Message Header Registration (<eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/40"/>):
875  <list style="symbols"> 
876    <t>
877      Reference RFC 3984, and update header registrations for headers defined
878      in this document.
879    </t>
880  </list>
881</t>
882</section>
883
884<section title="Since draft-ietf-httpbis-p7-auth-03" anchor="changes.since.03">
885<t>
886</t>
887</section>
888
889<section title="Since draft-ietf-httpbis-p7-auth-04" anchor="changes.since.04">
890<t>
891  Ongoing work on ABNF conversion (<eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/36"/>):
892  <list style="symbols"> 
893    <t>
894      Use "/" instead of "|" for alternatives.
895    </t>
896    <t>
897      Introduce new ABNF rules for "bad" whitespace ("BWS"), optional
898      whitespace ("OWS") and required whitespace ("RWS").
899    </t>
900    <t>
901      Rewrite ABNFs to spell out whitespace rules, factor out
902      header value format definitions.
903    </t>
904  </list>
905</t>
906</section>
907
908<section title="Since draft-ietf-httpbis-p7-auth-05" anchor="changes.since.05">
909<t>
910  Ongoing work on ABNF conversion (<eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/36"/>):
911  <list style="symbols"> 
912    <t>
913      Add appendix containing collected and expanded ABNF, reorganize ABNF introduction.
914    </t>
915  </list>
916</t>
917</section>
918
919</section>
920
921</back>
922</rfc>
Note: See TracBrowser for help on using the repository browser.