1 | <!DOCTYPE html |
---|
2 | PUBLIC "-//W3C//DTD HTML 4.01//EN"> |
---|
3 | <html lang="en"> |
---|
4 | <head profile="http://www.w3.org/2006/03/hcard http://dublincore.org/documents/2008/08/04/dc-html/"> |
---|
5 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
---|
6 | <title>Security Requirements for HTTP</title><style type="text/css" title="Xml2Rfc (sans serif)"> |
---|
7 | a { |
---|
8 | text-decoration: none; |
---|
9 | } |
---|
10 | a.smpl { |
---|
11 | color: black; |
---|
12 | } |
---|
13 | a:hover { |
---|
14 | text-decoration: underline; |
---|
15 | } |
---|
16 | a:active { |
---|
17 | text-decoration: underline; |
---|
18 | } |
---|
19 | address { |
---|
20 | margin-top: 1em; |
---|
21 | margin-left: 2em; |
---|
22 | font-style: normal; |
---|
23 | } |
---|
24 | body { |
---|
25 | color: black; |
---|
26 | font-family: verdana, helvetica, arial, sans-serif; |
---|
27 | font-size: 10pt; |
---|
28 | } |
---|
29 | cite { |
---|
30 | font-style: normal; |
---|
31 | } |
---|
32 | dd { |
---|
33 | margin-right: 2em; |
---|
34 | } |
---|
35 | dl { |
---|
36 | margin-left: 2em; |
---|
37 | } |
---|
38 | |
---|
39 | ul.empty { |
---|
40 | list-style-type: none; |
---|
41 | } |
---|
42 | ul.empty li { |
---|
43 | margin-top: .5em; |
---|
44 | } |
---|
45 | dl p { |
---|
46 | margin-left: 0em; |
---|
47 | } |
---|
48 | dt { |
---|
49 | margin-top: .5em; |
---|
50 | } |
---|
51 | h1 { |
---|
52 | font-size: 14pt; |
---|
53 | line-height: 21pt; |
---|
54 | page-break-after: avoid; |
---|
55 | } |
---|
56 | h1.np { |
---|
57 | page-break-before: always; |
---|
58 | } |
---|
59 | h1 a { |
---|
60 | color: #333333; |
---|
61 | } |
---|
62 | h2 { |
---|
63 | font-size: 12pt; |
---|
64 | line-height: 15pt; |
---|
65 | page-break-after: avoid; |
---|
66 | } |
---|
67 | h3, h4, h5, h6 { |
---|
68 | font-size: 10pt; |
---|
69 | page-break-after: avoid; |
---|
70 | } |
---|
71 | h2 a, h3 a, h4 a, h5 a, h6 a { |
---|
72 | color: black; |
---|
73 | } |
---|
74 | img { |
---|
75 | margin-left: 3em; |
---|
76 | } |
---|
77 | li { |
---|
78 | margin-left: 2em; |
---|
79 | margin-right: 2em; |
---|
80 | } |
---|
81 | ol { |
---|
82 | margin-left: 2em; |
---|
83 | margin-right: 2em; |
---|
84 | } |
---|
85 | ol p { |
---|
86 | margin-left: 0em; |
---|
87 | } |
---|
88 | p { |
---|
89 | margin-left: 2em; |
---|
90 | margin-right: 2em; |
---|
91 | } |
---|
92 | pre { |
---|
93 | margin-left: 3em; |
---|
94 | background-color: lightyellow; |
---|
95 | padding: .25em; |
---|
96 | } |
---|
97 | pre.text2 { |
---|
98 | border-style: dotted; |
---|
99 | border-width: 1px; |
---|
100 | background-color: #f0f0f0; |
---|
101 | width: 69em; |
---|
102 | } |
---|
103 | pre.inline { |
---|
104 | background-color: white; |
---|
105 | padding: 0em; |
---|
106 | } |
---|
107 | pre.text { |
---|
108 | border-style: dotted; |
---|
109 | border-width: 1px; |
---|
110 | background-color: #f8f8f8; |
---|
111 | width: 69em; |
---|
112 | } |
---|
113 | pre.drawing { |
---|
114 | border-style: solid; |
---|
115 | border-width: 1px; |
---|
116 | background-color: #f8f8f8; |
---|
117 | padding: 2em; |
---|
118 | } |
---|
119 | table { |
---|
120 | margin-left: 2em; |
---|
121 | } |
---|
122 | table.header { |
---|
123 | border-spacing: 1px; |
---|
124 | width: 95%; |
---|
125 | font-size: 10pt; |
---|
126 | color: white; |
---|
127 | } |
---|
128 | td.top { |
---|
129 | vertical-align: top; |
---|
130 | } |
---|
131 | td.topnowrap { |
---|
132 | vertical-align: top; |
---|
133 | white-space: nowrap; |
---|
134 | } |
---|
135 | table.header td { |
---|
136 | background-color: gray; |
---|
137 | width: 50%; |
---|
138 | } |
---|
139 | td.reference { |
---|
140 | vertical-align: top; |
---|
141 | white-space: nowrap; |
---|
142 | padding-right: 1em; |
---|
143 | } |
---|
144 | thead { |
---|
145 | display:table-header-group; |
---|
146 | } |
---|
147 | ul.toc { |
---|
148 | list-style: none; |
---|
149 | margin-left: 1.5em; |
---|
150 | margin-right: 0em; |
---|
151 | padding-left: 0em; |
---|
152 | } |
---|
153 | li.tocline0 { |
---|
154 | line-height: 150%; |
---|
155 | font-weight: bold; |
---|
156 | font-size: 10pt; |
---|
157 | margin-left: 0em; |
---|
158 | margin-right: 0em; |
---|
159 | } |
---|
160 | li.tocline1 { |
---|
161 | line-height: normal; |
---|
162 | font-weight: normal; |
---|
163 | font-size: 9pt; |
---|
164 | margin-left: 0em; |
---|
165 | margin-right: 0em; |
---|
166 | } |
---|
167 | li.tocline2 { |
---|
168 | font-size: 0pt; |
---|
169 | } |
---|
170 | ul p { |
---|
171 | margin-left: 0em; |
---|
172 | } |
---|
173 | |
---|
174 | .comment { |
---|
175 | background-color: yellow; |
---|
176 | } |
---|
177 | .center { |
---|
178 | text-align: center; |
---|
179 | } |
---|
180 | .error { |
---|
181 | color: red; |
---|
182 | font-style: italic; |
---|
183 | font-weight: bold; |
---|
184 | } |
---|
185 | .figure { |
---|
186 | font-weight: bold; |
---|
187 | text-align: center; |
---|
188 | font-size: 9pt; |
---|
189 | } |
---|
190 | .filename { |
---|
191 | color: #333333; |
---|
192 | font-weight: bold; |
---|
193 | font-size: 12pt; |
---|
194 | line-height: 21pt; |
---|
195 | text-align: center; |
---|
196 | } |
---|
197 | .fn { |
---|
198 | font-weight: bold; |
---|
199 | } |
---|
200 | .hidden { |
---|
201 | display: none; |
---|
202 | } |
---|
203 | .left { |
---|
204 | text-align: left; |
---|
205 | } |
---|
206 | .right { |
---|
207 | text-align: right; |
---|
208 | } |
---|
209 | .title { |
---|
210 | color: #990000; |
---|
211 | font-size: 18pt; |
---|
212 | line-height: 18pt; |
---|
213 | font-weight: bold; |
---|
214 | text-align: center; |
---|
215 | margin-top: 36pt; |
---|
216 | } |
---|
217 | .vcardline { |
---|
218 | display: block; |
---|
219 | } |
---|
220 | .warning { |
---|
221 | font-size: 14pt; |
---|
222 | background-color: yellow; |
---|
223 | } |
---|
224 | |
---|
225 | |
---|
226 | @media print { |
---|
227 | .noprint { |
---|
228 | display: none; |
---|
229 | } |
---|
230 | |
---|
231 | a { |
---|
232 | color: black; |
---|
233 | text-decoration: none; |
---|
234 | } |
---|
235 | |
---|
236 | table.header { |
---|
237 | width: 90%; |
---|
238 | } |
---|
239 | |
---|
240 | td.header { |
---|
241 | width: 50%; |
---|
242 | color: black; |
---|
243 | background-color: white; |
---|
244 | vertical-align: top; |
---|
245 | font-size: 12pt; |
---|
246 | } |
---|
247 | |
---|
248 | ul.toc a::after { |
---|
249 | content: leader('.') target-counter(attr(href), page); |
---|
250 | } |
---|
251 | |
---|
252 | a.iref { |
---|
253 | content: target-counter(attr(href), page); |
---|
254 | } |
---|
255 | |
---|
256 | .print2col { |
---|
257 | column-count: 2; |
---|
258 | -moz-column-count: 2; |
---|
259 | column-fill: auto; |
---|
260 | } |
---|
261 | } |
---|
262 | |
---|
263 | @page { |
---|
264 | @top-left { |
---|
265 | content: "Internet-Draft"; |
---|
266 | } |
---|
267 | @top-right { |
---|
268 | content: "March 2010"; |
---|
269 | } |
---|
270 | @top-center { |
---|
271 | content: "Security Requirements for HTTP"; |
---|
272 | } |
---|
273 | @bottom-left { |
---|
274 | content: "Hodges & Leiba"; |
---|
275 | } |
---|
276 | @bottom-center { |
---|
277 | content: "Informational"; |
---|
278 | } |
---|
279 | @bottom-right { |
---|
280 | content: "[Page " counter(page) "]"; |
---|
281 | } |
---|
282 | } |
---|
283 | |
---|
284 | @page:first { |
---|
285 | @top-left { |
---|
286 | content: normal; |
---|
287 | } |
---|
288 | @top-right { |
---|
289 | content: normal; |
---|
290 | } |
---|
291 | @top-center { |
---|
292 | content: normal; |
---|
293 | } |
---|
294 | } |
---|
295 | </style><link rel="Author" href="#rfc.authors"> |
---|
296 | <link rel="Copyright" href="#rfc.copyrightnotice"> |
---|
297 | <link rel="Chapter" title="1 Introduction" href="#rfc.section.1"> |
---|
298 | <link rel="Chapter" title="2 Existing HTTP Security Mechanisms" href="#rfc.section.2"> |
---|
299 | <link rel="Chapter" title="3 Revisions To HTTP" href="#rfc.section.3"> |
---|
300 | <link rel="Chapter" title="4 IANA Considerations" href="#rfc.section.4"> |
---|
301 | <link rel="Chapter" title="5 Security Considerations" href="#rfc.section.5"> |
---|
302 | <link rel="Chapter" href="#rfc.section.6" title="6 References"> |
---|
303 | <link rel="Appendix" title="A Acknowledgements" href="#rfc.section.A"> |
---|
304 | <link rel="Appendix" title="B Document History" href="#rfc.section.B"> |
---|
305 | <meta name="generator" content="http://greenbytes.de/tech/webdav/rfc2629.xslt, Revision 1.510, 2010-02-20 17:14:25, XSLT vendor: SAXON 8.9 from Saxonica http://www.saxonica.com/"> |
---|
306 | <link rel="schema.dct" href="http://purl.org/dc/terms/"> |
---|
307 | <meta name="dct.creator" content="Hodges, J."> |
---|
308 | <meta name="dct.creator" content="Leiba, B."> |
---|
309 | <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-security-properties-05"> |
---|
310 | <meta name="dct.issued" scheme="ISO8601" content="2010-03-11"> |
---|
311 | <meta name="dct.abstract" content="Recent IESG practice dictates that IETF protocols must specify mandatory-to-implement (MTI) security mechanisms, so that all conformant implementations share a common baseline. This document examines all widely deployed HTTP security technologies, and analyzes the trade-offs of each."> |
---|
312 | <meta name="description" content="Recent IESG practice dictates that IETF protocols must specify mandatory-to-implement (MTI) security mechanisms, so that all conformant implementations share a common baseline. This document examines all widely deployed HTTP security technologies, and analyzes the trade-offs of each."> |
---|
313 | </head> |
---|
314 | <body> |
---|
315 | <table class="header"> |
---|
316 | <tbody> |
---|
317 | <tr> |
---|
318 | <td class="left">Network Working Group</td> |
---|
319 | <td class="right">J. Hodges</td> |
---|
320 | </tr> |
---|
321 | <tr> |
---|
322 | <td class="left">Internet-Draft</td> |
---|
323 | <td class="right">PayPal</td> |
---|
324 | </tr> |
---|
325 | <tr> |
---|
326 | <td class="left">Intended status: Informational</td> |
---|
327 | <td class="right">B. Leiba</td> |
---|
328 | </tr> |
---|
329 | <tr> |
---|
330 | <td class="left">Expires: September 12, 2010</td> |
---|
331 | <td class="right">Huawei Technologies</td> |
---|
332 | </tr> |
---|
333 | <tr> |
---|
334 | <td class="left"></td> |
---|
335 | <td class="right">March 11, 2010</td> |
---|
336 | </tr> |
---|
337 | </tbody> |
---|
338 | </table> |
---|
339 | <p class="title">Security Requirements for HTTP<br><span class="filename">draft-ietf-httpbis-security-properties-05</span></p> |
---|
340 | <h1 id="rfc.abstract"><a href="#rfc.abstract">Abstract</a></h1> |
---|
341 | <p>Recent IESG practice dictates that IETF protocols must specify mandatory-to-implement (MTI) security mechanisms, so that all |
---|
342 | conformant implementations share a common baseline. This document examines all widely deployed HTTP security technologies, |
---|
343 | and analyzes the trade-offs of each. |
---|
344 | </p> |
---|
345 | <h1><a id="rfc.status" href="#rfc.status">Status of this Memo</a></h1> |
---|
346 | <p>This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79.</p> |
---|
347 | <p>Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note |
---|
348 | that other groups may also distribute working documents as Internet-Drafts. |
---|
349 | </p> |
---|
350 | <p>Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other |
---|
351 | documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as “work |
---|
352 | in progress”. |
---|
353 | </p> |
---|
354 | <p>The list of current Internet-Drafts can be accessed at <a href="http://www.ietf.org/ietf/1id-abstracts.txt">http://www.ietf.org/ietf/1id-abstracts.txt</a>. |
---|
355 | </p> |
---|
356 | <p>The list of Internet-Draft Shadow Directories can be accessed at <a href="http://www.ietf.org/shadow.html">http://www.ietf.org/shadow.html</a>. |
---|
357 | </p> |
---|
358 | <p>This Internet-Draft will expire in September 12, 2010.</p> |
---|
359 | <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1> |
---|
360 | <p>Copyright © 2010 IETF Trust and the persons identified as the document authors. All rights reserved.</p> |
---|
361 | <p>This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (<a href="http://trustee.ietf.org/license-info">http://trustee.ietf.org/license-info</a>) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights |
---|
362 | and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License |
---|
363 | text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the BSD License. |
---|
364 | </p> |
---|
365 | <p>This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November |
---|
366 | 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to |
---|
367 | allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) |
---|
368 | controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative |
---|
369 | works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate |
---|
370 | it into languages other than English. |
---|
371 | </p> |
---|
372 | <hr class="noprint"> |
---|
373 | <h1 id="rfc.section.1" class="np"><a href="#rfc.section.1">1.</a> Introduction |
---|
374 | </h1> |
---|
375 | <p id="rfc.section.1.p.1">Recent IESG practice dictates that IETF protocols be required to specify mandatory-to-implement (MTI) security mechanisms. |
---|
376 | "The IETF Standards Process" <a href="#RFC2026"><cite title="The Internet Standards Process -- Revision 3">[RFC2026]</cite></a> does not require that protocols specify mandatory security mechanisms. "Strong Security Requirements for IETF Standard Protocols" <a href="#RFC3365"><cite title="Strong Security Requirements for Internet Engineering Task Force Standard Protocols">[RFC3365]</cite></a> requires that all IETF protocols provide a mechanism for implementers to provide strong security. RFC 3365 does not define |
---|
377 | the term "strong security". |
---|
378 | </p> |
---|
379 | <p id="rfc.section.1.p.2">"Security Mechanisms for the Internet" <a href="#RFC3631"><cite title="Security Mechanisms for the Internet">[RFC3631]</cite></a> is not an IETF procedural RFC, but it is perhaps most relevant. Section 2.2 states: |
---|
380 | </p> |
---|
381 | <div id="rfc.figure.u.1"></div> <pre> |
---|
382 | We have evolved in the IETF the notion of "mandatory to implement" |
---|
383 | mechanisms. This philosophy evolves from our primary desire to |
---|
384 | ensure interoperability between different implementations of a |
---|
385 | protocol. If a protocol offers many options for how to perform a |
---|
386 | particular task, but fails to provide for at least one that all |
---|
387 | must implement, it may be possible that multiple, non-interoperable |
---|
388 | implementations may result. This is the consequence of the |
---|
389 | selection of non-overlapping mechanisms being deployed in the |
---|
390 | different implementations. |
---|
391 | </pre> <p id="rfc.section.1.p.4">This document examines the effects of applying security constraints to Web applications, documents the properties that result |
---|
392 | from each method, and will make Best Current Practice recommendations for HTTP security in a later document version. At the |
---|
393 | moment, it is mostly a laundry list of security technologies and tradeoffs. |
---|
394 | </p> |
---|
395 | <p id="rfc.section.1.p.5">[[ OVERALL ISSUE: It isn't entirely clear to the present editors what the purpose of this document is. On one hand it could |
---|
396 | be a compendium of peer-entity authentication mechanisms (as it is presently) and make MTI recommendations thereof, or it |
---|
397 | could be a place for various security considerations (either coalesced here from the other httpbis specs, or reserved for |
---|
398 | the more gnarly cross-spec composite ones), or both. This needs to be clarified. ]] |
---|
399 | </p> |
---|
400 | <hr class="noprint"> |
---|
401 | <h1 id="rfc.section.2" class="np"><a href="#rfc.section.2">2.</a> Existing HTTP Security Mechanisms |
---|
402 | </h1> |
---|
403 | <p id="rfc.section.2.p.1">For HTTP, the IETF generally defines "security mechanisms" as some combination of access authentication and/or a secure transport.</p> |
---|
404 | <p id="rfc.section.2.p.2">[[ There is a suggestion that this section be split into "browser-like" and "automation-like" subsections. See: </p> |
---|
405 | <ul class="empty"> |
---|
406 | <li>http://lists.w3.org/Archives/Public/ietf-http-wg/2008JanMar/0180.html</li> |
---|
407 | <li>http://lists.w3.org/Archives/Public/ietf-http-wg/2008JanMar/0183.html</li> |
---|
408 | </ul> |
---|
409 | <p> ]]</p> |
---|
410 | <p id="rfc.section.2.p.3">[[ NTLM (shudder) was brought up in the WG a few times in the discussion of the -00 draft. Should we add a section on it? |
---|
411 | See.. |
---|
412 | </p> |
---|
413 | <ul class="empty"> |
---|
414 | <li>http://lists.w3.org/Archives/Public/ietf-http-wg/2008JanMar/0132.html</li> |
---|
415 | <li>http://lists.w3.org/Archives/Public/ietf-http-wg/2008JanMar/0135.html</li> |
---|
416 | </ul> |
---|
417 | <p> ]]</p> |
---|
418 | <h2 id="rfc.section.2.1"><a href="#rfc.section.2.1">2.1</a> Forms And Cookies |
---|
419 | </h2> |
---|
420 | <p id="rfc.section.2.1.p.1">[[ JH: I am not convinced that this subsection properly belongs in this overall section in that "HTTP+HTML Form based authentication" |
---|
421 | <http://en.wikipedia.org/wiki/HTTP%2BHTML_Form_based_authentication> is not properly a part of HTTP itself. Rather, it is |
---|
422 | a piece of applications layered on top of HTTP. Use of cookies for state management (e.g. session maintanence) can be considered |
---|
423 | such, however (although there is no overall specification for HTTP user agents stipulating that they must implement cookies |
---|
424 | (nominally <a href="#RFC2109"><cite title="HTTP State Management Mechanism">[RFC2109]</cite></a>)). Perhaps this section should be should be retitled "HTTP Authentication". |
---|
425 | </p> |
---|
426 | <p id="rfc.section.2.1.p.2">Note: The httpstate WG was recently chartered to develop a successor to <a href="#RFC2109"><cite title="HTTP State Management Mechanism">[RFC2109]</cite></a>. See.. |
---|
427 | </p> |
---|
428 | <ul class="empty"> |
---|
429 | <li>http://www.ietf.org/dyn/wg/charter/httpstate-charter.html</li> |
---|
430 | </ul> |
---|
431 | <p id="rfc.section.2.1.p.3">]]</p> |
---|
432 | <p id="rfc.section.2.1.p.4">Almost all HTTP authentication that involves a human using a web browser is accomplished through HTML forms, with session |
---|
433 | identifiers stored in cookies. For cookies, most implementations rely on the "Netscape specification", which is described |
---|
434 | loosely in section 10 of "HTTP State Management Mechanism" <a href="#RFC2109"><cite title="HTTP State Management Mechanism">[RFC2109]</cite></a>. The protocol in RFC 2109 is relatively widely implemented, but most clients don't advertise support for it. RFC 2109 was |
---|
435 | later updated <a href="#RFC2965"><cite title="HTTP State Management Mechanism">[RFC2965]</cite></a>, but the newer version is not widely implemented. |
---|
436 | </p> |
---|
437 | <p id="rfc.section.2.1.p.5">Forms and cookies have many properties that make them an excellent solution for some implementers. However, many of those |
---|
438 | properties introduce serious security trade-offs. |
---|
439 | </p> |
---|
440 | <p id="rfc.section.2.1.p.6">HTML forms provide a large degree of control over presentation, which is an imperative for many websites. However, this increases |
---|
441 | user reliance on the appearance of the interface. Many users do not understand the construction of URIs <a href="#RFC3986"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, or their presentation in common clients <a href="#PhishingHOWTO"><cite title="Phishing Tips and Techniques">[PhishingHOWTO]</cite></a>. As a result, forms are extremely vulnerable to spoofing. |
---|
442 | </p> |
---|
443 | <p id="rfc.section.2.1.p.7">HTML forms provide acceptable internationalization if used carefully, at the cost of being transmitted as normal HTTP content |
---|
444 | in all cases (credentials are not differentiated in the protocol). |
---|
445 | </p> |
---|
446 | <p id="rfc.section.2.1.p.8">Many Web browsers have an auto-complete feature that stores a user's information and pre-populates fields in forms. This is |
---|
447 | considered to be a convenience mechanism, and convenience mechanisms often have negative security properties. The security |
---|
448 | concerns with auto-completion are particularly poignant for web browsers that reside on computers with multiple users. HTML |
---|
449 | forms provide a facility for sites to indicate that a field, such as a password, should never be pre-populated. However, it |
---|
450 | is clear that some form creators do not use this facility when they should. |
---|
451 | </p> |
---|
452 | <p id="rfc.section.2.1.p.9">The cookies that result from a successful form submission make it unnecessary to validate credentials with each HTTP request; |
---|
453 | this makes cookies an excellent property for scalability. Cookies are susceptible to a large variety of XSS (cross-site scripting) |
---|
454 | attacks, and measures to prevent such attacks will never be as stringent as necessary for authentication credentials because |
---|
455 | cookies are used for many purposes. Cookies are also susceptible to a wide variety of attacks from malicious intermediaries |
---|
456 | and observers. The possible attacks depend on the contents of the cookie data. There is no standard format for most of the |
---|
457 | data. |
---|
458 | </p> |
---|
459 | <p id="rfc.section.2.1.p.10">HTML forms and cookies provide flexible ways of ending a session from the client.</p> |
---|
460 | <p id="rfc.section.2.1.p.11">HTML forms require an HTML rendering engine for which many protocols have no use.</p> |
---|
461 | <h2 id="rfc.section.2.2"><a href="#rfc.section.2.2">2.2</a> HTTP Access Authentication |
---|
462 | </h2> |
---|
463 | <p id="rfc.section.2.2.p.1">HTTP 1.1 provides a simple authentication framework, "HTTP Authentication: Basic and Digest Access Authentication" <a href="#RFC2617"><cite title="HTTP Authentication: Basic and Digest Access Authentication">[RFC2617]</cite></a>, which defines two optional mechanisms. Both of these mechanisms are extremely rarely used in comparison to forms and cookies, |
---|
464 | but some degree of support for one or both is available in many implementations. Neither scheme provides presentation control, |
---|
465 | logout capabilities, or interoperable internationalization. |
---|
466 | </p> |
---|
467 | <h3 id="rfc.section.2.2.1"><a href="#rfc.section.2.2.1">2.2.1</a> Basic Authentication |
---|
468 | </h3> |
---|
469 | <p id="rfc.section.2.2.1.p.1">Basic Authentication (normally called just "Basic") transmits usernames and passwords in the clear. It is very easy to implement, |
---|
470 | but not at all secure unless used over a secure transport. |
---|
471 | </p> |
---|
472 | <p id="rfc.section.2.2.1.p.2">Basic has very poor scalability properties because credentials must be revalidated with every request, and because secure |
---|
473 | transports negate many of HTTP's caching mechanisms. Some implementations use cookies in combination with Basic credentials, |
---|
474 | but there is no standard method of doing so. |
---|
475 | </p> |
---|
476 | <p id="rfc.section.2.2.1.p.3">Since Basic credentials are clear text, they are reusable by any party. This makes them compatible with any authentication |
---|
477 | database, at the cost of making the user vulnerable to mismanaged or malicious servers, even over a secure channel. |
---|
478 | </p> |
---|
479 | <p id="rfc.section.2.2.1.p.4">Basic is not interoperable when used with credentials that contain characters outside of the ISO 8859-1 repertoire.</p> |
---|
480 | <h3 id="rfc.section.2.2.2"><a href="#rfc.section.2.2.2">2.2.2</a> Digest Authentication |
---|
481 | </h3> |
---|
482 | <p id="rfc.section.2.2.2.p.1">In Digest Authentication, the client transmits the results of hashing user credentials with properties of the request and |
---|
483 | values from the server challenge. Digest is susceptible to man-in-the-middle attacks when not used over a secure transport. |
---|
484 | </p> |
---|
485 | <p id="rfc.section.2.2.2.p.2">Digest has some properties that are preferable to Basic and Cookies. Credentials are not immediately reusable by parties that |
---|
486 | observe or receive them, and session data can be transmitted alongside credentials with each request, allowing servers to |
---|
487 | validate credentials only when absolutely necessary. Authentication data session keys are distinct from other protocol traffic. |
---|
488 | </p> |
---|
489 | <p id="rfc.section.2.2.2.p.3">Digest includes many modes of operation, but only the simplest modes enjoy any degree of interoperability. For example, most |
---|
490 | implementations do not implement the mode that provides full message integrity. Perhaps one reason is that implementation |
---|
491 | experience has shown that in some cases, especially those involving large requests or responses such as streams, the message |
---|
492 | integrity mode is impractical because it requires servers to analyze the full request before determining whether the client |
---|
493 | knows the shared secret or whether message-body integrity has been violated and hence whether the request can be processed. |
---|
494 | </p> |
---|
495 | <p id="rfc.section.2.2.2.p.4">Digest is extremely susceptible to offline dictionary attacks, making it practical for attackers to perform a namespace walk |
---|
496 | consisting of a few million passwords for most users. |
---|
497 | </p> |
---|
498 | <p id="rfc.section.2.2.2.p.5">Many of the most widely-deployed HTTP/1.1 clients are not compliant when GET requests include a query string <a href="#Apache_Digest"><cite title="Apache HTTP Server - mod_auth_digest">[Apache_Digest]</cite></a>. |
---|
499 | </p> |
---|
500 | <p id="rfc.section.2.2.2.p.6">Digest either requires that authentication databases be expressly designed to accommodate it, or requires access to cleartext |
---|
501 | passwords. As a result, many authentication databases that chose to do the former are incompatible, including the most common |
---|
502 | method of storing passwords for use with Forms and Cookies. |
---|
503 | </p> |
---|
504 | <p id="rfc.section.2.2.2.p.7">Many Digest capabilities included to prevent replay attacks expose the server to Denial of Service attacks.</p> |
---|
505 | <p id="rfc.section.2.2.2.p.8">Digest is not interoperable when used with credentials that contain characters outside of the ISO 8859-1 repertoire.</p> |
---|
506 | <h3 id="rfc.section.2.2.3"><a href="#rfc.section.2.2.3">2.2.3</a> Authentication Using Certificates in TLS |
---|
507 | </h3> |
---|
508 | <p id="rfc.section.2.2.3.p.1">Running HTTP over TLS provides authentication of the HTTP server to the client. HTTP over TLS can also provides authentication |
---|
509 | of the client to the server using certificates. Although forms are a much more common way to authenticate users to HTTP servers, |
---|
510 | TLS client certificates are widely used in some environments. The public key infrastructure (PKI) used to validate certificates |
---|
511 | in TLS can be rooted in public trust anchors or can be based on local trust anchors. |
---|
512 | </p> |
---|
513 | <h3 id="rfc.section.2.2.4"><a href="#rfc.section.2.2.4">2.2.4</a> Other Access Authentication Schemes |
---|
514 | </h3> |
---|
515 | <p id="rfc.section.2.2.4.p.1">There are many niche schemes that make use of the HTTP Authentication framework, but very few are well documented. Some are |
---|
516 | bound to transport layer connections. |
---|
517 | </p> |
---|
518 | <h4 id="rfc.section.2.2.4.1"><a href="#rfc.section.2.2.4.1">2.2.4.1</a> Negotiate (GSS-API) Authentication |
---|
519 | </h4> |
---|
520 | <p id="rfc.section.2.2.4.1.p.1">Microsoft has designed an HTTP authentication mechanism that utilizes SPNEGO <a href="#RFC4178"><cite title="The Simple and Protected Generic Security Service Application Program Interface (GSS-API) Negotiation Mechanism">[RFC4178]</cite></a> GSSAPI <a href="#RFC4559"><cite title="SPNEGO-based Kerberos and NTLM HTTP Authentication in Microsoft Windows">[RFC4559]</cite></a>. In Microsoft's implementation, SPNEGO allows selection between Kerberos and NTLM (Microsoft NT Lan Manager protocols). |
---|
521 | </p> |
---|
522 | <p id="rfc.section.2.2.4.1.p.2">In Kerberos, clients and servers rely on a trusted third-party authentication service which maintains its own authentication |
---|
523 | database. Kerberos is typically used with shared secret key cryptography, but extensions for use of other authentication mechnanisms |
---|
524 | such as PKIX certificates and two-factor tokens are also common. Kerberos was designed to work under the assumption that packets |
---|
525 | traveling along the network can be read, modified, and inserted at will. |
---|
526 | </p> |
---|
527 | <p id="rfc.section.2.2.4.1.p.3">Unlike Digest, Negotiate authentication can take multiple round trips (client sending authentication data in Authorization, |
---|
528 | server sending authentication data in WWW-Authenticate) to complete. |
---|
529 | </p> |
---|
530 | <p id="rfc.section.2.2.4.1.p.4">Kerberos authentication is generally more secure than Digest. However the requirement for having a separate network authentication |
---|
531 | service might be a barrier to deployment. |
---|
532 | </p> |
---|
533 | <h4 id="rfc.section.2.2.4.2"><a href="#rfc.section.2.2.4.2">2.2.4.2</a> OAuth |
---|
534 | </h4> |
---|
535 | <p id="rfc.section.2.2.4.2.p.1">[[ See.. </p> |
---|
536 | <ul class="empty"> |
---|
537 | <li>http://www.ietf.org/id/draft-hammer-http-token-auth-01.txt</li> |
---|
538 | <li>http://www.ietf.org/id/draft-hammer-oauth-10.txt</li> |
---|
539 | </ul> |
---|
540 | <p> ]]</p> |
---|
541 | <h2 id="rfc.section.2.3"><a href="#rfc.section.2.3">2.3</a> Centrally-Issued Tickets |
---|
542 | </h2> |
---|
543 | <p id="rfc.section.2.3.p.1">Many large Internet services rely on authentication schemes that center on clients consulting a single service for a time-limited |
---|
544 | ticket that is validated with undocumented heuristics. Centralized ticket issuing has the advantage that users may employ |
---|
545 | one set of credentials for many services, and clients don't send credentials to many servers. This approach is often no more |
---|
546 | than a sophisticated application of forms and cookies. |
---|
547 | </p> |
---|
548 | <p id="rfc.section.2.3.p.2">All of the schemes in wide use are proprietary and non-standard, and usually are undocumented. There are many standardization |
---|
549 | efforts in progress, as usual. |
---|
550 | </p> |
---|
551 | <h2 id="rfc.section.2.4"><a href="#rfc.section.2.4">2.4</a> Web Services |
---|
552 | </h2> |
---|
553 | <p id="rfc.section.2.4.p.1">Many security properties mentioned in this document have been recast in XML-based protocols, using HTTP as a substitute for |
---|
554 | TCP. Like the amalgam of HTTP technologies mentioned above, the XML-based protocols are defined by an ever-changing combination |
---|
555 | of standard and vendor-produced specifications, some of which may be obsoleted at any time <a href="#WS-Pagecount"><cite title="WS-Pagecount">[WS-Pagecount]</cite></a> without any documented change control procedures. These protocols usually don't have much in common with the Architecture |
---|
556 | of the World Wide Web. It's not clear why the term "Web" is used to group them, but they are obviously out of scope for HTTP-based |
---|
557 | application protocols. |
---|
558 | </p> |
---|
559 | <p id="rfc.section.2.4.p.2">[[ This section could really use a good definition of "Web Services" to differentiate it from REST. See.. </p> |
---|
560 | <ul class="empty"> |
---|
561 | <li>http://lists.w3.org/Archives/Public/ietf-http-wg/2008JanMar/0536.html</li> |
---|
562 | </ul> |
---|
563 | <p> ]]</p> |
---|
564 | <h2 id="rfc.section.2.5"><a href="#rfc.section.2.5">2.5</a> Transport Layer Security |
---|
565 | </h2> |
---|
566 | <p id="rfc.section.2.5.p.1">In addition to using TLS for client and/or server authentication, it is also very commonly used to protect the confidentiality |
---|
567 | and integrity of the HTTP session. For instance, both HTTP Basic authentication and Cookies are often protected against snooping |
---|
568 | by TLS. |
---|
569 | </p> |
---|
570 | <p id="rfc.section.2.5.p.2">It should be noted that, in that case, TLS does not protect against a breach of the credential store at the server or against |
---|
571 | a keylogger or phishing interface at the client. TLS does not change the fact that Basic Authentication passwords are reusable |
---|
572 | and does not address that weakness. |
---|
573 | </p> |
---|
574 | <hr class="noprint"> |
---|
575 | <h1 id="rfc.section.3" class="np"><a href="#rfc.section.3">3.</a> Revisions To HTTP |
---|
576 | </h1> |
---|
577 | <p id="rfc.section.3.p.1">Is is possible that HTTP will be revised in the future. "HTTP/1.1" <a href="#RFC2616"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a> and "Use and Interpretation of HTTP Version Numbers" <a href="#RFC2145"><cite title="Use and Interpretation of HTTP Version Numbers">[RFC2145]</cite></a> define conformance requirements in relation to version numbers. In HTTP 1.1, all authentication mechanisms are optional, and |
---|
578 | no single transport substrate is specified. Any HTTP revision that adds a mandatory security mechanism or transport substrate |
---|
579 | will have to increment the HTTP version number appropriately. All widely used schemes are non-standard and/or proprietary. |
---|
580 | </p> |
---|
581 | <hr class="noprint"> |
---|
582 | <h1 id="rfc.section.4" class="np"><a href="#rfc.section.4">4.</a> IANA Considerations |
---|
583 | </h1> |
---|
584 | <p id="rfc.section.4.p.1">This document has no actions for IANA.</p> |
---|
585 | <hr class="noprint"> |
---|
586 | <h1 id="rfc.section.5" class="np"><a href="#rfc.section.5">5.</a> Security Considerations |
---|
587 | </h1> |
---|
588 | <p id="rfc.section.5.p.1">This entire document is about security considerations.</p> |
---|
589 | <hr class="noprint"> |
---|
590 | <h1 id="rfc.references" class="np"><a id="rfc.section.6" href="#rfc.section.6">6.</a> References |
---|
591 | </h1> |
---|
592 | <h2 class="np" id="rfc.references.1"><a href="#rfc.section.6.1" id="rfc.section.6.1">6.1</a> Normative References |
---|
593 | </h2> |
---|
594 | <table> |
---|
595 | <tr> |
---|
596 | <td class="reference"><b id="RFC2026">[RFC2026]</b></td> |
---|
597 | <td class="top"><a href="mailto:sob@harvard.edu" title="Harvard University">Bradner, S.</a>, “<a href="http://tools.ietf.org/html/rfc2026">The Internet Standards Process -- Revision 3</a>”, BCP 9, RFC 2026, October 1996. |
---|
598 | </td> |
---|
599 | </tr> |
---|
600 | <tr> |
---|
601 | <td class="reference"><b id="RFC2145">[RFC2145]</b></td> |
---|
602 | <td class="top"><a href="mailto:mogul@wrl.dec.com" title="Western Research Laboratory">Mogul, J.C.</a>, <a href="mailto:fielding@ics.uci.edu" title="Department of Information and Computer Science">Fielding, R.T.</a>, <a href="mailto:jg@w3.org" title="MIT Laboratory for Computer Science">Gettys, J.</a>, and <a href="mailto:frystyk@w3.org" title="W3 Consortium">H.F. Nielsen</a>, “<a href="http://tools.ietf.org/html/rfc2145">Use and Interpretation of HTTP Version Numbers</a>”, RFC 2145, May 1997. |
---|
603 | </td> |
---|
604 | </tr> |
---|
605 | <tr> |
---|
606 | <td class="reference"><b id="RFC2616">[RFC2616]</b></td> |
---|
607 | <td class="top"><a href="mailto:fielding@ics.uci.edu" title="Department of Information and Computer Science">Fielding, R.</a>, <a href="mailto:jg@w3.org" title="World Wide Web Consortium">Gettys, J.</a>, <a href="mailto:mogul@wrl.dec.com" title="Compaq Computer Corporation">Mogul, J.</a>, <a href="mailto:frystyk@w3.org" title="World Wide Web Consortium">Frystyk, H.</a>, <a href="mailto:masinter@parc.xerox.com" title="Xerox Corporation">Masinter, L.</a>, <a href="mailto:paulle@microsoft.com" title="Microsoft Corporation">Leach, P.</a>, and <a href="mailto:timbl@w3.org" title="World Wide Web Consortium">T. Berners-Lee</a>, “<a href="http://tools.ietf.org/html/rfc2616">Hypertext Transfer Protocol -- HTTP/1.1</a>”, RFC 2616, June 1999. |
---|
608 | </td> |
---|
609 | </tr> |
---|
610 | <tr> |
---|
611 | <td class="reference"><b id="RFC2617">[RFC2617]</b></td> |
---|
612 | <td class="top"><a href="mailto:john@math.nwu.edu" title="Northwestern University, Department of Mathematics">Franks, J.</a>, <a href="mailto:pbaker@verisign.com" title="Verisign Inc.">Hallam-Baker, P.M.</a>, <a href="mailto:jeff@AbiSource.com" title="AbiSource, Inc.">Hostetler, J.L.</a>, <a href="mailto:lawrence@agranat.com" title="Agranat Systems, Inc.">Lawrence, S.D.</a>, <a href="mailto:paulle@microsoft.com" title="Microsoft Corporation">Leach, P.J.</a>, Luotonen, A., and <a href="mailto:stewart@OpenMarket.com" title="Open Market, Inc.">L. Stewart</a>, “<a href="http://tools.ietf.org/html/rfc2617">HTTP Authentication: Basic and Digest Access Authentication</a>”, RFC 2617, June 1999. |
---|
613 | </td> |
---|
614 | </tr> |
---|
615 | <tr> |
---|
616 | <td class="reference"><b id="RFC2965">[RFC2965]</b></td> |
---|
617 | <td class="top"><a href="mailto:dmk@bell-labs.com" title="Bell Laboratories, Lucent Technologies">Kristol, D. M.</a> and <a href="mailto:lou@montulli.org" title="Epinions.com, Inc.">L. Montulli</a>, “<a href="http://tools.ietf.org/html/rfc2965">HTTP State Management Mechanism</a>”, RFC 2965, October 2000. |
---|
618 | </td> |
---|
619 | </tr> |
---|
620 | <tr> |
---|
621 | <td class="reference"><b id="RFC3365">[RFC3365]</b></td> |
---|
622 | <td class="top">Schiller, J., “<a href="http://tools.ietf.org/html/rfc3365">Strong Security Requirements for Internet Engineering Task Force Standard Protocols</a>”, BCP 61, RFC 3365, August 2002. |
---|
623 | </td> |
---|
624 | </tr> |
---|
625 | <tr> |
---|
626 | <td class="reference"><b id="RFC3631">[RFC3631]</b></td> |
---|
627 | <td class="top">Bellovin, S., Schiller, J., and C. Kaufman, “<a href="http://tools.ietf.org/html/rfc3631">Security Mechanisms for the Internet</a>”, RFC 3631, December 2003. |
---|
628 | </td> |
---|
629 | </tr> |
---|
630 | <tr> |
---|
631 | <td class="reference"><b id="RFC3986">[RFC3986]</b></td> |
---|
632 | <td class="top"><a href="mailto:timbl@w3.org" title="World Wide Web Consortium">Berners-Lee, T.</a>, <a href="mailto:fielding@gbiv.com" title="Day Software">Fielding, R.</a>, and <a href="mailto:LMM@acm.org" title="Adobe Systems Incorporated">L. Masinter</a>, “<a href="http://tools.ietf.org/html/rfc3986">Uniform Resource Identifier (URI): Generic Syntax</a>”, STD 66, RFC 3986, January 2005. |
---|
633 | </td> |
---|
634 | </tr> |
---|
635 | <tr> |
---|
636 | <td class="reference"><b id="RFC4178">[RFC4178]</b></td> |
---|
637 | <td class="top">Zhu, L., Leach, P., Jaganathan, K., and W. Ingersoll, “<a href="http://tools.ietf.org/html/rfc4178">The Simple and Protected Generic Security Service Application Program Interface (GSS-API) Negotiation Mechanism</a>”, RFC 4178, October 2005. |
---|
638 | </td> |
---|
639 | </tr> |
---|
640 | <tr> |
---|
641 | <td class="reference"><b id="RFC4559">[RFC4559]</b></td> |
---|
642 | <td class="top">Jaganathan, K., Zhu, L., and J. Brezak, “<a href="http://tools.ietf.org/html/rfc4559">SPNEGO-based Kerberos and NTLM HTTP Authentication in Microsoft Windows</a>”, RFC 4559, June 2006. |
---|
643 | </td> |
---|
644 | </tr> |
---|
645 | <tr> |
---|
646 | <td class="reference"><b id="Apache_Digest">[Apache_Digest]</b></td> |
---|
647 | <td class="top">Apache Software Foundation, , “<a href="http://httpd.apache.org/docs/1.3/mod/mod_auth_digest.html">Apache HTTP Server - mod_auth_digest</a>”, <<a href="http://httpd.apache.org/docs/1.3/mod/mod_auth_digest.html">http://httpd.apache.org/docs/1.3/mod/mod_auth_digest.html</a>>. |
---|
648 | </td> |
---|
649 | </tr> |
---|
650 | <tr> |
---|
651 | <td class="reference"><b id="PhishingHOWTO">[PhishingHOWTO]</b></td> |
---|
652 | <td class="top">Gutmann, P., “<a href="http://www.cs.auckland.ac.nz/~pgut001/pubs/phishing.pdf">Phishing Tips and Techniques</a>”, February 2008, <<a href="http://www.cs.auckland.ac.nz/~pgut001/pubs/phishing.pdf">http://www.cs.auckland.ac.nz/~pgut001/pubs/phishing.pdf</a>>. |
---|
653 | </td> |
---|
654 | </tr> |
---|
655 | <tr> |
---|
656 | <td class="reference"><b id="WS-Pagecount">[WS-Pagecount]</b></td> |
---|
657 | <td class="top">Bray, T., “<a href="http://www.tbray.org/ongoing/When/200x/2004/09/21/WS-Research">WS-Pagecount</a>”, September 2004, <<a href="http://www.tbray.org/ongoing/When/200x/2004/09/21/WS-Research">http://www.tbray.org/ongoing/When/200x/2004/09/21/WS-Research</a>>. |
---|
658 | </td> |
---|
659 | </tr> |
---|
660 | </table> |
---|
661 | <h2 id="rfc.references.2"><a href="#rfc.section.6.2" id="rfc.section.6.2">6.2</a> Informative References |
---|
662 | </h2> |
---|
663 | <table> |
---|
664 | <tr> |
---|
665 | <td class="reference"><b id="RFC2109">[RFC2109]</b></td> |
---|
666 | <td class="top"><a href="mailto:dmk@bell-labs.com" title="Bell Laboratories, Lucent Technologies">Kristol, D.M.</a> and <a href="mailto:montulli@netscape.com" title="Netscape Communications Corp.">L. Montulli</a>, “<a href="http://tools.ietf.org/html/rfc2109">HTTP State Management Mechanism</a>”, RFC 2109, February 1997. |
---|
667 | </td> |
---|
668 | </tr> |
---|
669 | </table> |
---|
670 | <hr class="noprint"> |
---|
671 | <div class="avoidbreak"> |
---|
672 | <h1 id="rfc.authors" class="np"><a href="#rfc.authors">Authors' Addresses</a></h1> |
---|
673 | <address class="vcard"><span class="vcardline"><span class="fn">Jeff Hodges</span><span class="n hidden"><span class="family-name">Hodges</span><span class="given-name">Jeff</span></span></span><span class="org vcardline">PayPal</span><span class="vcardline">EMail: <a href="mailto:Jeff.Hodges@PayPal.com"><span class="email">Jeff.Hodges@PayPal.com</span></a></span></address> |
---|
674 | <address class="vcard"><span class="vcardline"><span class="fn">Barry Leiba</span><span class="n hidden"><span class="family-name">Leiba</span><span class="given-name">Barry</span></span></span><span class="org vcardline">Huawei Technologies</span><span class="vcardline tel">Phone: <a href="tel:+16468270648"><span class="value">+1 646 827 0648</span></a></span><span class="vcardline">EMail: <a href="mailto:barryleiba@computer.org"><span class="email">barryleiba@computer.org</span></a></span><span class="vcardline">URI: <a href="http://internetmessagingtechnology.org/" class="url">http://internetmessagingtechnology.org/</a></span></address> |
---|
675 | </div> |
---|
676 | <hr class="noprint"> |
---|
677 | <h1 id="rfc.section.A" class="np"><a href="#rfc.section.A">A.</a> Acknowledgements |
---|
678 | </h1> |
---|
679 | <p id="rfc.section.A.p.1">Much of the material in this document was written by Rob Sayre, who first promoted the topic. Many others on the HTTPbis Working |
---|
680 | Group have contributed to this document in the discussion. |
---|
681 | </p> |
---|
682 | <hr class="noprint"> |
---|
683 | <h1 id="rfc.section.B" class="np"><a href="#rfc.section.B">B.</a> Document History |
---|
684 | </h1> |
---|
685 | <p id="rfc.section.B.p.1">[This entire section is to be removed when published as an RFC.]</p> |
---|
686 | <h2 id="rfc.section.B.1"><a href="#rfc.section.B.1">B.1</a> Changes between draft-sayre-http-security-variance-00 and draft-ietf-httpbis-security-properties-00 |
---|
687 | </h2> |
---|
688 | <p id="rfc.section.B.1.p.1">Changed the authors to Paul Hoffman and Alexey Melnikov, with permission of Rob Sayre.</p> |
---|
689 | <p id="rfc.section.B.1.p.2">Made lots of minor editorial changes.</p> |
---|
690 | <p id="rfc.section.B.1.p.3">Removed what was section 2 (Requirements Notation), the reference to RFC 2119, and any use of 2119ish all-caps words.</p> |
---|
691 | <p id="rfc.section.B.1.p.4">In 3.2.1 and 3.2.2, changed "Latin-1 range" to "ISO 8859-1 repertoire" to match the definition of "TEXT" in RFC 2616.</p> |
---|
692 | <p id="rfc.section.B.1.p.5">Added minor text to the Security Considerations section.</p> |
---|
693 | <p id="rfc.section.B.1.p.6">Added URLs to the two non-RFC references.</p> |
---|
694 | <h2 id="rfc.section.B.2"><a href="#rfc.section.B.2">B.2</a> Changes between -00 and -01 |
---|
695 | </h2> |
---|
696 | <p id="rfc.section.B.2.p.1">Fixed some editorial nits reported by Iain Calder.</p> |
---|
697 | <p id="rfc.section.B.2.p.2">Added the suggestions about splitting for browsers and automation, and about adding NTLM, to be beginning of 2.</p> |
---|
698 | <p id="rfc.section.B.2.p.3">In 2.1, added "that involves a human using a web browser" in the first sentence.</p> |
---|
699 | <p id="rfc.section.B.2.p.4">In 2.1, changed "session key" to "session identifier".</p> |
---|
700 | <p id="rfc.section.B.2.p.5">In 2.2.2, changed </p> |
---|
701 | <div id="rfc.figure.u.2"></div><pre> |
---|
702 | Digest includes many modes of operation, but only the simplest modes |
---|
703 | enjoy any degree of interoperability. For example, most |
---|
704 | implementations do not implement the mode that provides full message |
---|
705 | integrity. Additionally, implementation experience has shown that |
---|
706 | the message integrity mode is impractical because it requires servers |
---|
707 | to analyze the full request before determining whether the client |
---|
708 | knows the shared secret. |
---|
709 | </pre><p> to </p> |
---|
710 | <div id="rfc.figure.u.3"></div><pre> |
---|
711 | Digest includes many modes of operation, but only the simplest |
---|
712 | modes enjoy any degree of interoperability. For example, most |
---|
713 | implementations do not implement the mode that provides full message |
---|
714 | integrity. Perhaps one reason is that implementation experience has |
---|
715 | shown that in some cases, especially those involving large requests |
---|
716 | or responses such as streams, the message integrity mode is |
---|
717 | impractical because it requires servers to analyze the full request |
---|
718 | before determining whether the client knows the shared secret or |
---|
719 | whether message-body integrity has been violated and hence whether |
---|
720 | the request can be processed. |
---|
721 | </pre><p id="rfc.section.B.2.p.6">In 2.4, asked for a definition of "Web Services".</p> |
---|
722 | <p id="rfc.section.B.2.p.7">In A, added the WG.</p> |
---|
723 | <h2 id="rfc.section.B.3"><a href="#rfc.section.B.3">B.3</a> Changes between -01 and -02 |
---|
724 | </h2> |
---|
725 | <p id="rfc.section.B.3.p.1">In section 2.1, added more to the paragraph on auto-completion of HTML forms.</p> |
---|
726 | <p id="rfc.section.B.3.p.2">Added the section on TLS for authentication.</p> |
---|
727 | <p id="rfc.section.B.3.p.3">Filled in section 2.5.</p> |
---|
728 | <h2 id="rfc.section.B.4"><a href="#rfc.section.B.4">B.4</a> Changes between -02 and -03 |
---|
729 | </h2> |
---|
730 | <p id="rfc.section.B.4.p.1">Changed IPR licensing from "full3978" to "pre5378Trust200902".</p> |
---|
731 | <h2 id="rfc.section.B.5"><a href="#rfc.section.B.5">B.5</a> Changes between -03 and -04 |
---|
732 | </h2> |
---|
733 | <p id="rfc.section.B.5.p.1">Changed authors to be Jeff Hodges (JH) and Barry Leiba (BL) with permission of Paul Hoffman, Alexey Melnikov, and Mark Nottingham |
---|
734 | (httpbis chair). |
---|
735 | </p> |
---|
736 | <p id="rfc.section.B.5.p.2">Added "OVERALL ISSUE" to introduction.</p> |
---|
737 | <p id="rfc.section.B.5.p.3">Added links to email messages on mailing list(s) where various suggestions for this document were brought up. I.e. added various |
---|
738 | links to those comments herein delimited by "[[...]]" braces. |
---|
739 | </p> |
---|
740 | <p id="rfc.section.B.5.p.4">Noted JH's belief that "HTTP+HTML Form based authentication" aka "Forms And Cookies" doesn't properly belong in the section |
---|
741 | where it presently resides. Added link to httpstate WG. |
---|
742 | </p> |
---|
743 | <p id="rfc.section.B.5.p.5">Added references to OAuth. Section needs to be filled-in as yet.</p> |
---|
744 | <p id="rfc.section.B.5.p.6">Moved ref to RFC2109 to new "Informative References" section, and added a placeholder "IANA Considerations" section in order |
---|
745 | to satisfy IDnits checking. |
---|
746 | </p> |
---|
747 | <h2 id="rfc.section.B.6"><a href="#rfc.section.B.6">B.6</a> Changes between -04 and -05 |
---|
748 | </h2> |
---|
749 | <p id="rfc.section.B.6.p.1">Fixed incorrect <date> year from 2009 to 2010. mea culpa.</p> |
---|
750 | </body> |
---|
751 | </html> |
---|