1 | <?xml version="1.0" encoding="UTF-8"?> |
---|
2 | <!DOCTYPE rfc [ |
---|
3 | <!ENTITY rfc2026 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2026.xml"> |
---|
4 | <!ENTITY rfc2109 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2109.xml"> |
---|
5 | <!ENTITY rfc2145 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2145.xml"> |
---|
6 | <!ENTITY rfc2616 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2616.xml"> |
---|
7 | <!ENTITY rfc2617 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2617.xml"> |
---|
8 | <!ENTITY rfc2965 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2965.xml"> |
---|
9 | <!ENTITY rfc3365 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3365.xml"> |
---|
10 | <!ENTITY rfc3631 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3631.xml"> |
---|
11 | <!ENTITY rfc3986 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3986.xml"> |
---|
12 | <!ENTITY rfc4178 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4178.xml"> |
---|
13 | <!ENTITY rfc4559 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4559.xml"> |
---|
14 | ]> |
---|
15 | |
---|
16 | <rfc category="info" ipr="full3978" |
---|
17 | docName="draft-ietf-httpbis-security-properties-02"> |
---|
18 | |
---|
19 | <?xml-stylesheet type='text/xsl' href='rfc2629xslt/rfc2629.xslt' ?> |
---|
20 | |
---|
21 | <?rfc toc="yes" ?> |
---|
22 | <?rfc symrefs="yes" ?> |
---|
23 | <?rfc sortrefs="yes"?> |
---|
24 | <?rfc strict="yes" ?> |
---|
25 | <?rfc compact="yes" ?> |
---|
26 | <?rfc subcompact="no" ?> |
---|
27 | <?rfc linkmailto='no'?> |
---|
28 | <?rfc comments="yes"?> |
---|
29 | <?rfc inline="yes"?> |
---|
30 | |
---|
31 | <front> |
---|
32 | <title>Security Requirements for HTTP</title> |
---|
33 | <author initials='P.' surname="Hoffman" fullname='Paul Hoffman'> |
---|
34 | <organization>VPN Consortium</organization> |
---|
35 | <address><email>paul.hoffman@vpnc.org</email> </address> |
---|
36 | </author> |
---|
37 | <author initials='A.' surname="Melnikov" fullname='Alexey Melnikov'> |
---|
38 | <organization>Isode Ltd.</organization> |
---|
39 | <address><email>alexey.melnikov@isode.com</email> </address> |
---|
40 | </author> |
---|
41 | <date year="2008" month='July'/> |
---|
42 | <abstract> |
---|
43 | <t>Recent IESG practice dictates that IETF protocols must specify |
---|
44 | mandatory-to-implement security mechanisms, so that |
---|
45 | all conformant implementations share a common baseline. This |
---|
46 | document examines all widely deployed HTTP security |
---|
47 | technologies, and analyzes the trade-offs of |
---|
48 | each.</t> |
---|
49 | </abstract> |
---|
50 | </front> |
---|
51 | |
---|
52 | <middle> |
---|
53 | |
---|
54 | <section title="Introduction"> |
---|
55 | |
---|
56 | <t>Recent IESG practice dictates that IETF protocols are required to |
---|
57 | specify mandatory to implement security mechanisms. "The IETF |
---|
58 | Standards Process" <xref target="RFC2026"/> does not require that |
---|
59 | protocols specify mandatory security mechanisms. "Strong Security |
---|
60 | Requirements for IETF Standard Protocols" <xref target="RFC3365"/> |
---|
61 | requires that all IETF protocols provide a mechanism for implementers |
---|
62 | to provide strong security. RFC 3365 does not define the term "strong |
---|
63 | security".</t> |
---|
64 | |
---|
65 | <t>"Security Mechanisms for the Internet" <xref target="RFC3631"/> is |
---|
66 | not an IETF procedural RFC, but it is perhaps most relevant. Section |
---|
67 | 2.2 states:</t> |
---|
68 | |
---|
69 | <figure><artwork> |
---|
70 | We have evolved in the IETF the notion of "mandatory to implement" |
---|
71 | mechanisms. This philosophy evolves from our primary desire to |
---|
72 | ensure interoperability between different implementations of a |
---|
73 | protocol. If a protocol offers many options for how to perform a |
---|
74 | particular task, but fails to provide for at least one that all |
---|
75 | must implement, it may be possible that multiple, non-interoperable |
---|
76 | implementations may result. This is the consequence of the |
---|
77 | selection of non-overlapping mechanisms being deployed in the |
---|
78 | different implementations. |
---|
79 | </artwork></figure> |
---|
80 | |
---|
81 | <t>This document examines the effects of applying security constraints |
---|
82 | to Web applications, documents the properties that result from each |
---|
83 | method, and will make Best Current Practice recommendations for HTTP |
---|
84 | security in a later document version. At the moment, it is mostly a |
---|
85 | laundry list of security technologies and tradeoffs.</t> |
---|
86 | |
---|
87 | </section> |
---|
88 | |
---|
89 | <section title="Existing HTTP Security Mechanisms"> |
---|
90 | |
---|
91 | <t>For HTTP, the IETF generally defines "security mechanisms" as some |
---|
92 | combination of access authentication and/or a secure transport.</t> |
---|
93 | |
---|
94 | <t>[[ There is a suggestion that this section be split into |
---|
95 | "browser-like" and "automation-like" subsections. ]]</t> |
---|
96 | |
---|
97 | <t>[[ NTLM (shudder) was brought up in the WG a few times in |
---|
98 | the discussion of the -00 draft. Should we add a section on it? ]]</t> |
---|
99 | |
---|
100 | <section title="Forms And Cookies"> |
---|
101 | |
---|
102 | <t>Almost all HTTP authentication that involves a human |
---|
103 | using a web browser is accomplished through HTML forms, |
---|
104 | with session identifiers stored in cookies. For cookies, most implementations |
---|
105 | rely on the "Netscape specification", which is described loosely in |
---|
106 | section 10 of "HTTP State Management Mechanism" <xref |
---|
107 | target="RFC2109"/>. The protocol in RFC 2109 is relatively widely |
---|
108 | implemented, but most clients don't advertise support for it. RFC 2109 |
---|
109 | was later updated <xref target="RFC2965"/>, but the newer version is |
---|
110 | not widely implemented.</t> |
---|
111 | |
---|
112 | <t>Forms and cookies have many properties that make them an |
---|
113 | excellent solution for some implementers. However, many of those |
---|
114 | properties introduce serious security trade-offs.</t> |
---|
115 | |
---|
116 | <t>HTML forms provide a large degree of control over presentation, |
---|
117 | which is an imperative for many websites. However, this increases user |
---|
118 | reliance on the appearance of the interface. Many users do not |
---|
119 | understand the construction of URIs <xref target="RFC3986"/>, or their |
---|
120 | presentation in common clients <xref target="PhishingHOWTO"/>. |
---|
121 | As a result, |
---|
122 | forms are extremely vulnerable to spoofing.</t> |
---|
123 | |
---|
124 | <t>HTML forms provide acceptable internationalization if used |
---|
125 | carefully, at the cost of being transmitted as normal HTTP content in |
---|
126 | all cases (credentials are not differentiated in the protocol).</t> |
---|
127 | |
---|
128 | <t>Many Web browsers have an auto-complete feature that stores a |
---|
129 | user's information and pre-populates fields in forms. This is |
---|
130 | considered to be a convenience mechanism, and convenience mechanisms |
---|
131 | often have negative security properties. The security concerns with |
---|
132 | auto-completion are particularly poignant for web browsers that reside |
---|
133 | on computers with multiple users. HTML forms provide a facility for |
---|
134 | sites to indicate that a field, such as a password, should never be |
---|
135 | pre-populated. However, it is clear that some form creators do not use |
---|
136 | this facility when they should.</t> |
---|
137 | |
---|
138 | <t>The cookies that result from a successful form submission make it |
---|
139 | unnecessary to validate credentials with each HTTP request; this makes |
---|
140 | cookies an excellent property for scalability. Cookies are susceptible |
---|
141 | to a large variety of XSS (cross-site scripting) attacks, and measures |
---|
142 | to prevent such attacks will never be as stringent as necessary for |
---|
143 | authentication credentials because cookies are used for many purposes. |
---|
144 | Cookies are also susceptible to a wide variety of attacks from |
---|
145 | malicious intermediaries and observers. The possible attacks depend on |
---|
146 | the contents of the cookie data. There is no standard format for most |
---|
147 | of the data.</t> |
---|
148 | |
---|
149 | <t>HTML forms and cookies provide flexible ways of ending a session |
---|
150 | from the client.</t> |
---|
151 | |
---|
152 | <t>HTML forms require an HTML rendering engine for which many protocols |
---|
153 | have no use.</t> |
---|
154 | |
---|
155 | </section> |
---|
156 | |
---|
157 | <section title="HTTP Access Authentication"> |
---|
158 | |
---|
159 | <t>HTTP 1.1 provides a simple authentication framework, "HTTP |
---|
160 | Authentication: Basic and Digest Access Authentication" <xref |
---|
161 | target="RFC2617"/>, which defines two optional mechanisms. Both of these |
---|
162 | mechanisms are extremely rarely used in comparison to forms and |
---|
163 | cookies, but some degree of support for one or both is available in |
---|
164 | many implementations. Neither scheme provides presentation control, |
---|
165 | logout capabilities, or interoperable internationalization.</t> |
---|
166 | |
---|
167 | <section title="Basic Authentication"> |
---|
168 | |
---|
169 | <t>Basic Authentication (normally called just "Basic") transmits |
---|
170 | usernames and passwords in the clear. It is very easy to implement, |
---|
171 | but not at all secure unless used over a secure transport.</t> |
---|
172 | |
---|
173 | <t>Basic has very poor scalability properties because credentials must |
---|
174 | be revalidated with every request, and because secure transports |
---|
175 | negate many of HTTP's caching mechanisms. Some implementations use |
---|
176 | cookies in combination with Basic credentials, but there is no |
---|
177 | standard method of doing so.</t> |
---|
178 | |
---|
179 | <t>Since Basic credentials are clear text, they are reusable by any |
---|
180 | party. This makes them compatible with any authentication database, at |
---|
181 | the cost of making the user vulnerable to mismanaged or malicious |
---|
182 | servers, even over a secure channel.</t> |
---|
183 | |
---|
184 | <t>Basic is not interoperable when used with credentials that contain |
---|
185 | characters outside of the ISO 8859-1 repertoire.</t> |
---|
186 | |
---|
187 | </section> |
---|
188 | |
---|
189 | <section title="Digest Authentication"> |
---|
190 | |
---|
191 | <t>In Digest Authentication, the client transmits the results of |
---|
192 | hashing user credentials with properties of the request and values |
---|
193 | from the server challenge. Digest is susceptible to man-in-the-middle |
---|
194 | attacks when not used over a secure transport.</t> |
---|
195 | |
---|
196 | <t>Digest has some properties that are preferable to Basic and |
---|
197 | Cookies. Credentials are not immediately reusable by parties that |
---|
198 | observe or receive them, and session data can be transmitted along |
---|
199 | side credentials with each request, allowing servers to validate |
---|
200 | credentials only when absolutely necessary. Authentication data |
---|
201 | session keys are distinct from other protocol traffic.</t> |
---|
202 | |
---|
203 | <t>Digest includes many modes of operation, but only the simplest |
---|
204 | modes enjoy any degree of interoperability. For example, most |
---|
205 | implementations do not implement the mode that provides full message |
---|
206 | integrity. Perhaps one reason is that implementation experience has |
---|
207 | shown that in some cases, especially those involving large requests or |
---|
208 | responses such as streams, the message integrity mode is impractical |
---|
209 | because it requires servers to analyze the full request before |
---|
210 | determining whether the client knows the shared secret or whether |
---|
211 | message-body integrity has been violated and hence whether the request |
---|
212 | can be processed.</t> |
---|
213 | |
---|
214 | <t>Digest is extremely susceptible to offline dictionary attacks, |
---|
215 | making it practical for attackers to perform a namespace walk |
---|
216 | consisting of a few million passwords for most users.</t> |
---|
217 | |
---|
218 | <t>Many of the most widely-deployed HTTP/1.1 clients are not compliant |
---|
219 | when GET requests include a query string <xref target="Apache_Digest"/>.</t> |
---|
220 | |
---|
221 | <t>Digest either requires that authentication databases be expressly designed |
---|
222 | to accommodate it, or requires access to cleartext passwords. |
---|
223 | As a result, many authentication databases that chose to do the former are |
---|
224 | incompatible, including the most common method of storing passwords |
---|
225 | for use with Forms and Cookies.</t> |
---|
226 | |
---|
227 | <t>Many Digest capabilities included to prevent replay attacks expose |
---|
228 | the server to Denial of Service attacks.</t> |
---|
229 | |
---|
230 | <t>Digest is not interoperable when used with credentials that contain |
---|
231 | characters outside of the ISO 8859-1 repertoire.</t> |
---|
232 | |
---|
233 | </section> |
---|
234 | |
---|
235 | <section title="Authentication Using Certificates in TLS"> |
---|
236 | |
---|
237 | <t>Running HTTP over TLS provides authentication of the HTTP server to |
---|
238 | the client. HTTP over TLS can also provides authentication of the |
---|
239 | client to the server using certificates. Although forms are a much |
---|
240 | more common way to authenticate users to HTTP servers, TLS client |
---|
241 | certificates are widely used in some environments. The |
---|
242 | public key infrastructure (PKI) used |
---|
243 | to validate certificates in TLS can be rooted in public trust anchors |
---|
244 | or can be based on local trust anchors.</t> |
---|
245 | |
---|
246 | </section> |
---|
247 | |
---|
248 | <section title="Other Access Authentication Schemes"> |
---|
249 | |
---|
250 | <t>There are many niche schemes that make use of the HTTP |
---|
251 | Authentication framework, but very few are well documented. Some are |
---|
252 | bound to transport layer connections.</t> |
---|
253 | |
---|
254 | <section title="Negotiate (GSS-API) Authentication"> |
---|
255 | |
---|
256 | <t>Microsoft has designed an HTTP authentication mechanism that utilizes |
---|
257 | SPNEGO <xref target="RFC4178"/> GSSAPI <xref target='RFC4559'/>. In Microsoft's |
---|
258 | implementation, SPNEGO allows selection between Kerberos and NTLM (Microsoft NT |
---|
259 | Lan Manager protocols).</t> |
---|
260 | |
---|
261 | <t>In Kerberos, clients and servers rely on a trusted third-party authentication service |
---|
262 | which maintains its own authentication database. Kerberos is typically used with shared |
---|
263 | secret key cryptography, but extensions for use of other authentication mechnanisms such |
---|
264 | as PKIX certificates and two-factor tokens are also common. |
---|
265 | Kerberos was designed to work under the assumption that packets traveling along |
---|
266 | the network can be read, modified, and inserted at will.</t> |
---|
267 | |
---|
268 | <t>Unlike Digest, Negotiate authentication can take multiple round trips (client sending |
---|
269 | authentication data in Authorization, server sending authentication data in WWW-Authenticate) |
---|
270 | to complete. |
---|
271 | </t> |
---|
272 | |
---|
273 | <t>Kerberos authentication is generally more secure than Digest. However the requirement |
---|
274 | for having a separate network authentication service might be a barrier to deployment.</t> |
---|
275 | |
---|
276 | <!-- |
---|
277 | Kerberos didn't support Unicode till relatively recently. I am not sure if this |
---|
278 | is an issue with Microsoft's implementation. |
---|
279 | --> |
---|
280 | |
---|
281 | </section> |
---|
282 | |
---|
283 | </section> |
---|
284 | |
---|
285 | </section> |
---|
286 | |
---|
287 | <section title="Centrally-Issued Tickets"> |
---|
288 | |
---|
289 | <t>Many large Internet services rely on authentication schemes that |
---|
290 | center on clients consulting a single service for a time-limited |
---|
291 | ticket that is validated with undocumented heuristics. Centralized |
---|
292 | ticket issuing has the advantage that users may employ one set of |
---|
293 | credentials for many services, and clients don't send credentials to |
---|
294 | many servers. This approach is often no more than a sophisticated |
---|
295 | application of forms and cookies.</t> |
---|
296 | |
---|
297 | <t>All of the schemes in wide use are proprietary and non-standard, |
---|
298 | and usually are undocumented. There are many standardization efforts |
---|
299 | in progress, as usual.</t> |
---|
300 | |
---|
301 | </section> |
---|
302 | |
---|
303 | <section title='Web Services'> |
---|
304 | |
---|
305 | <t>Many security properties mentioned in this document have been recast in |
---|
306 | XML-based protocols, using HTTP as a substitute for TCP. Like the |
---|
307 | amalgam of HTTP technologies mentioned above, the XML-based protocols |
---|
308 | are defined by an ever-changing combination of standard and |
---|
309 | vendor-produced specifications, some of which may be obsoleted at any |
---|
310 | time <xref target="WS-Pagecount"/> without any documented change control |
---|
311 | procedures. These protocols usually don't have much in common with the |
---|
312 | Architecture of the World Wide Web. It's not clear why the term "Web" is |
---|
313 | used to group them, but they are obviously out of scope for HTTP-based |
---|
314 | application protocols.</t> |
---|
315 | |
---|
316 | <t>[[ This section could really use a good definition of |
---|
317 | "Web Services" to differentiate it from REST. ]]</t> |
---|
318 | |
---|
319 | </section> |
---|
320 | |
---|
321 | <section title="Transport Layer Security"> |
---|
322 | |
---|
323 | <t>In addition to using TLS for client and/or server authentication, it is also |
---|
324 | very commonly used to protect the confidentiality and integrity of the |
---|
325 | HTTP session. For instance, both HTTP Basic authentication and Cookies |
---|
326 | are often protected against snooping by TLS.</t> |
---|
327 | |
---|
328 | <t>It should be noted that, in that case, TLS does not protect against a |
---|
329 | breach of the credential store at the server or against a keylogger or |
---|
330 | phishing interface at the client. TLS does not change the fact that |
---|
331 | Basic Authentication passwords are reusable and does not address that |
---|
332 | weakness.</t> |
---|
333 | |
---|
334 | </section> |
---|
335 | |
---|
336 | </section> |
---|
337 | |
---|
338 | <section title="Revisions To HTTP"> |
---|
339 | |
---|
340 | <t>Is is possible that HTTP will be revised in the future. "HTTP/1.1" |
---|
341 | <xref target="RFC2616"/> and "Use and Interpretation of HTTP Version |
---|
342 | Numbers" <xref target="RFC2145"/> define conformance requirements in |
---|
343 | relation to version numbers. In HTTP 1.1, all authentication |
---|
344 | mechanisms are optional, and no single transport substrate is |
---|
345 | specified. Any HTTP revision that adds a mandatory security mechanism |
---|
346 | or transport substrate will have to increment the HTTP version number |
---|
347 | appropriately. All widely used schemes are non-standard and/or |
---|
348 | proprietary.</t> |
---|
349 | |
---|
350 | </section> |
---|
351 | |
---|
352 | <section title="Security Considerations"> |
---|
353 | |
---|
354 | <t>This entire document is about security considerations.</t> |
---|
355 | |
---|
356 | </section> |
---|
357 | |
---|
358 | </middle> |
---|
359 | |
---|
360 | <back> |
---|
361 | |
---|
362 | <references title='Normative References'> |
---|
363 | |
---|
364 | &rfc2026; |
---|
365 | &rfc2109; |
---|
366 | &rfc2145; |
---|
367 | &rfc2616; |
---|
368 | &rfc2617; |
---|
369 | &rfc2965; |
---|
370 | &rfc3365; |
---|
371 | &rfc3631; |
---|
372 | &rfc3986; |
---|
373 | &rfc4178; |
---|
374 | &rfc4559; |
---|
375 | |
---|
376 | <reference anchor='Apache_Digest' |
---|
377 | target='http://httpd.apache.org/docs/1.3/mod/mod_auth_digest.html'> |
---|
378 | <front> |
---|
379 | <title>Apache HTTP Server - mod_auth_digest</title> |
---|
380 | <author surname="Apache Software Foundation"> |
---|
381 | <organization /> |
---|
382 | </author> |
---|
383 | <date year='' month='' /> |
---|
384 | </front> |
---|
385 | </reference> |
---|
386 | |
---|
387 | <reference anchor='PhishingHOWTO' |
---|
388 | target='http://www.cs.auckland.ac.nz/~pgut001/pubs/phishing.pdf'> |
---|
389 | <front> |
---|
390 | <title>Phishing Tips and Techniques</title> |
---|
391 | <author initials="P." surname="Gutmann" fullname="Peter Gutmann"> |
---|
392 | <organization /></author> |
---|
393 | <date year='2008' month='February' /> |
---|
394 | </front> |
---|
395 | </reference> |
---|
396 | |
---|
397 | <reference anchor='WS-Pagecount' |
---|
398 | target='http://www.tbray.org/ongoing/When/200x/2004/09/21/WS-Research'> |
---|
399 | <front> |
---|
400 | <title>WS-Pagecount</title> |
---|
401 | <author initials="T." surname="Bray" fullname="Tim Bray"> |
---|
402 | <organization /> |
---|
403 | </author> |
---|
404 | <date year='2004' month='September' /> |
---|
405 | </front> |
---|
406 | </reference> |
---|
407 | |
---|
408 | </references> |
---|
409 | |
---|
410 | <section title='Acknowledgements'> |
---|
411 | |
---|
412 | <t>Much of the material in this document was written by Rob Sayre, |
---|
413 | who first promoted the topic. Many others on the HTTPbis Working |
---|
414 | Group have contributed to this document in the discussion.</t> |
---|
415 | |
---|
416 | </section> |
---|
417 | |
---|
418 | <section title='Document History'> |
---|
419 | |
---|
420 | <t>[This entire section is to be removed when published as an RFC.]</t> |
---|
421 | |
---|
422 | <section title='Changes between draft-sayre-http-security-variance-00 and |
---|
423 | draft-ietf-httpbis-security-properties-00'> |
---|
424 | |
---|
425 | <t>Changed the authors to Paul Hoffman and Alexey Melnikov, with permission |
---|
426 | of Rob Sayre.</t> |
---|
427 | |
---|
428 | <t>Made lots of minor editorial changes.</t> |
---|
429 | |
---|
430 | <t>Removed what was section 2 (Requirements Notation), the reference |
---|
431 | to RFC 2119, and any use of 2119ish all-caps words.</t> |
---|
432 | |
---|
433 | <t>In 3.2.1 and 3.2.2, changed "Latin-1 range" to "ISO 8859-1 |
---|
434 | repertoire" to match the definition of "TEXT" in RFC 2616.</t> |
---|
435 | |
---|
436 | <t>Added minor text to the Security Considerations section.</t> |
---|
437 | |
---|
438 | <t>Added URLs to the two non-RFC references.</t> |
---|
439 | |
---|
440 | </section> |
---|
441 | |
---|
442 | |
---|
443 | <section title='Changes between -00 and -01'> |
---|
444 | |
---|
445 | <t>Fixed some editorial nits reported by Iain Calder.</t> |
---|
446 | |
---|
447 | <t>Added the suggestions about splitting for browsers and |
---|
448 | automation, and about adding NTLM, to be beginning of 2.</t> |
---|
449 | |
---|
450 | <t>In 2.1, added "that involves a human |
---|
451 | using a web browser" in the first sentence.</t> |
---|
452 | |
---|
453 | <t>In 2.1, changed "session key" to "session identifier".</t> |
---|
454 | |
---|
455 | <t>In 2.2.2, changed |
---|
456 | <figure><artwork><![CDATA[ |
---|
457 | Digest includes many modes of operation, but only the simplest modes |
---|
458 | enjoy any degree of interoperability. For example, most |
---|
459 | implementations do not implement the mode that provides full message |
---|
460 | integrity. Additionally, implementation experience has shown that |
---|
461 | the message integrity mode is impractical because it requires servers |
---|
462 | to analyze the full request before determining whether the client |
---|
463 | knows the shared secret. |
---|
464 | ]]></artwork></figure> |
---|
465 | to |
---|
466 | <figure><artwork><![CDATA[ |
---|
467 | Digest includes many modes of operation, but only the simplest |
---|
468 | modes enjoy any degree of interoperability. For example, most |
---|
469 | implementations do not implement the mode that provides full message |
---|
470 | integrity. Perhaps one reason is that implementation experience has |
---|
471 | shown that in some cases, especially those involving large requests |
---|
472 | or responses such as streams, the message integrity mode is |
---|
473 | impractical because it requires servers to analyze the full request |
---|
474 | before determining whether the client knows the shared secret or |
---|
475 | whether message-body integrity has been violated and hence whether |
---|
476 | the request can be processed. |
---|
477 | ]]></artwork></figure> |
---|
478 | </t> |
---|
479 | |
---|
480 | <t>In 2.4, asked for a definition of "Web Services".</t> |
---|
481 | |
---|
482 | <t>In A, added the WG.</t> |
---|
483 | |
---|
484 | </section> |
---|
485 | |
---|
486 | |
---|
487 | <section title='Changes between -01 and -02'> |
---|
488 | |
---|
489 | <t>In section 2.1, added more to the paragraph on auto-completion of |
---|
490 | HTML forms.</t> |
---|
491 | |
---|
492 | <t>Added the section on TLS for authentication.</t> |
---|
493 | |
---|
494 | <t>Filled in section 2.5.</t> |
---|
495 | |
---|
496 | </section> |
---|
497 | |
---|
498 | |
---|
499 | </section> |
---|
500 | |
---|
501 | </back> |
---|
502 | |
---|
503 | </rfc> |
---|