source: draft-ietf-httpbis-security-properties/00/draft-ietf-httpbis-security-properties-00.txt @ 176

Last change on this file since 176 was 176, checked in by paul.hoffman@…, 13 years ago

First check-in

File size: 19.5 KB
Line 
1
2
3
4Network Working Group                                         P. Hoffman
5Internet-Draft                                            VPN Consortium
6Intended status: Informational                               A. Melnikov
7Expires: July 26, 2008                                        Isode Ltd.
8                                                        January 23, 2008
9
10
11                     Security Requirements for HTTP
12             draft-ietf-httpbis-security-properties-00.txt
13
14Status of this Memo
15
16   By submitting this Internet-Draft, each author represents that any
17   applicable patent or other IPR claims of which he or she is aware
18   have been or will be disclosed, and any of which he or she becomes
19   aware will be disclosed, in accordance with Section 6 of BCP 79.
20
21   Internet-Drafts are working documents of the Internet Engineering
22   Task Force (IETF), its areas, and its working groups.  Note that
23   other groups may also distribute working documents as Internet-
24   Drafts.
25
26   Internet-Drafts are draft documents valid for a maximum of six months
27   and may be updated, replaced, or obsoleted by other documents at any
28   time.  It is inappropriate to use Internet-Drafts as reference
29   material or to cite them other than as "work in progress."
30
31   The list of current Internet-Drafts can be accessed at
32   http://www.ietf.org/ietf/1id-abstracts.txt.
33
34   The list of Internet-Draft Shadow Directories can be accessed at
35   http://www.ietf.org/shadow.html.
36
37   This Internet-Draft will expire on July 26, 2008.
38
39Copyright Notice
40
41   Copyright (C) The IETF Trust (2008).
42
43Abstract
44
45   Recent IESG practice dictates that IETF protocols must specify
46   mandatory-to-implement security mechanisms, so that all conformant
47   implementations share a common baseline.  This document examines all
48   widely deployed HTTP security technologies, and analyzes the trade-
49   offs of each.
50
51
52
53
54
55Hoffman & Melnikov        Expires July 26, 2008                 [Page 1]
56
57Internet-Draft       Security Requirements for HTTP         January 2008
58
59
60Table of Contents
61
62   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
63   2.  Existing HTTP Security Mechanisms  . . . . . . . . . . . . . .  3
64     2.1.  Forms And Cookies  . . . . . . . . . . . . . . . . . . . .  3
65     2.2.  HTTP Access Authentication . . . . . . . . . . . . . . . .  4
66       2.2.1.  Basic Authentication . . . . . . . . . . . . . . . . .  4
67       2.2.2.  Digest Authentication  . . . . . . . . . . . . . . . .  5
68       2.2.3.  Other Access Authentication Schemes  . . . . . . . . .  6
69     2.3.  Centrally-Issued Tickets . . . . . . . . . . . . . . . . .  6
70     2.4.  Web Services . . . . . . . . . . . . . . . . . . . . . . .  6
71     2.5.  Transport Layer Security . . . . . . . . . . . . . . . . .  6
72   3.  Revisions To HTTP  . . . . . . . . . . . . . . . . . . . . . .  7
73   4.  Security Considerations  . . . . . . . . . . . . . . . . . . .  7
74   5.  Normative References . . . . . . . . . . . . . . . . . . . . .  7
75   Appendix A.  Acknowledgements  . . . . . . . . . . . . . . . . . .  8
76   Appendix B.  Document History  . . . . . . . . . . . . . . . . . .  8
77     B.1.  Changes between draft-sayre-http-security-variance-00
78           and draft-ietf-http-security-properties-00 . . . . . . . .  8
79   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . .  9
80   Intellectual Property and Copyright Statements . . . . . . . . . . 10
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111Hoffman & Melnikov        Expires July 26, 2008                 [Page 2]
112
113Internet-Draft       Security Requirements for HTTP         January 2008
114
115
1161.  Introduction
117
118   Recent IESG practice dictates that IETF protocols are required to
119   specify mandatory to implement security mechanisms.  "The IETF
120   Standards Process" [RFC2026] does not require that protocols specify
121   mandatory security mechanisms.  "Strong Security Requirements for
122   IETF Standard Protocols" [RFC3365] requires that all IETF protocols
123   provide a mechanism for implementors to provide strong security.  RFC
124   3365 does not define the term "strong security".
125
126   "Security Mechanisms for the Internet" [RFC3631] is not an IETF
127   procedural RFC, but it is perhaps most relevant.  Section 2.2 states:
128
129     We have evolved in the IETF the notion of "mandatory to implement"
130     mechanisms.  This philosophy evolves from our primary desire to
131     ensure interoperability between different implementations of a
132     protocol.  If a protocol offers many options for how to perform a
133     particular task, but fails to provide for at least one that all
134     must implement, it may be possible that multiple, non-interoperable
135     implementations may result.  This is the consequence of the
136     selection of non-overlapping mechanisms being deployed in the
137     different implementations.
138
139   This document examines the effects of applying security constraints
140   to Web applications, documents the properties that result from each
141   method, and will make Best Current Practice recommendations for HTTP
142   security in a later document version.  At the moment, it is mostly a
143   laundry list of security technologies and tradeoffs.
144
145
1462.  Existing HTTP Security Mechanisms
147
148   For HTTP, the IETF generally defines "security mechanisms" as some
149   combination of access authentication and/or a secure transport.
150
1512.1.  Forms And Cookies
152
153   Almost all HTTP authentication is accomplished through HTML forms,
154   with session keys stored in cookies.  For cookies, most
155   implementations rely on the "Netscape specification", which is
156   described loosely in section 10 of "HTTP State Management Mechanism"
157   [RFC2109].  The protocol in RFC 2109 is relatively widely
158   implemented, but most clients don't advertise support for it.  RFC
159   2109 was later updated [RFC2965], but the newer version is not widely
160   implemented.
161
162   Forms and cookies have number of properties that make them an
163   excellent solution for some implementors.  However, many of those
164
165
166
167Hoffman & Melnikov        Expires July 26, 2008                 [Page 3]
168
169Internet-Draft       Security Requirements for HTTP         January 2008
170
171
172   properties introduce serious security trade-offs.
173
174   HTML forms provide a large degree of control over presentation, which
175   is an imperative for many websites.  However, this increases user
176   reliance on the appearance of the interface.  Many users do not
177   understand the construction of URIs [RFC3986], or their presentation
178   in common clients [[ CITATION NEEDED ]].  As a result, forms are
179   extremely vulnerable to spoofing.
180
181   HTML forms provide acceptable internationalization if used carefully,
182   at the cost of being transmitted as normal HTTP content in all cases
183   (credentials are not differentiated in the protocol).
184
185   HTML forms provide a facility for sites to indicate that a password
186   should never be pre-populated. [[ More needed here on autocomplete ]]
187
188   The cookies that result from a successful form submission make it
189   unessecary to validate credentials with each HTTP request; this makes
190   cookies an excellent property for scalability.  Cookies are
191   susceptible to a large variety of XSS (cross-site scripting) attacks,
192   and measures to prevent such attacks will never be as stringent as
193   necessary for authentication credentials because cookies are used for
194   many purposes.  Cookies are also susceptible to a wide variety of
195   attacks from malicious intermediaries and observers.  The possible
196   attacks depend on the contents of the cookie data.  There is no
197   standard format for most of the data.
198
199   HTML forms and cookies provide flexible ways of ending a session from
200   the client.
201
202   HTML forms require an HTML rendering engine, which many protocols
203   have no use for.
204
2052.2.  HTTP Access Authentication
206
207   HTTP 1.1 provides a simple authentication framework, and "HTTP
208   Authentication: Basic and Digest Access Authentication" [RFC2617]
209   defines two optional mechanisms.  Both of these mechanisms are
210   extremely rarely used in comparison to forms and cookies, but some
211   degree of support for one or both is available in many
212   implementations.  Neither scheme provides presentation control,
213   logout capabilities, or interoperable internationalization.
214
2152.2.1.  Basic Authentication
216
217   Basic Authentication (normally called just "Basic") transmits
218   usernames and passwords in the clear.  It is very easy to implement,
219   but not at all secure unless used over a secure transport.
220
221
222
223Hoffman & Melnikov        Expires July 26, 2008                 [Page 4]
224
225Internet-Draft       Security Requirements for HTTP         January 2008
226
227
228   Basic has very poor scalability properties because credentials must
229   be revalidated with every request, and because secure transports
230   negate many of HTTP's caching mechanisms.  Some implementations use
231   cookies in combination with Basic credentials, but there is no
232   standard method of doing so.
233
234   Since Basic credentials are clear text, they are reusable by any
235   party.  This makes them compatible with any authentication database,
236   at the cost of making the user vulnerable to mismanaged or malicious
237   servers, even over a secure channel.
238
239   Basic is not interoperable when used with credentials that contain
240   characters outside of the ISO 8859-1 repertoire.
241
2422.2.2.  Digest Authentication
243
244   In Digest Authentication, the client transmits the results of hashing
245   user credentials with properties of the request and values from the
246   server challenge.  Digest is susceptible to man-in-the-middle attacks
247   when not used over a secure transport.
248
249   Digest has some properties that are preferable to Basic and Cookies.
250   Credentials are not immediately reusable by parties that observe or
251   receive them, and session data can be transmitted along side
252   credentials with each request, allowing servers to validate
253   credentials only when absolutely necessary.  Authentication data
254   session keys are distinct from other protocol traffic.
255
256   Digest includes many modes of operation, but only the simplest modes
257   enjoy any degree of interoperability.  For example, most
258   implementations do not implement the mode that provides full message
259   integrity.  Additionally, implementation experience has shown that
260   the message integrity mode is impractical because it requires servers
261   to analyze the full request before determining whether the client
262   knows the shared secret.
263
264   Digest is extremely susceptible to offline dictionary attacks, making
265   it practical for attackers to perform a namespace walk consisting of
266   a few million passwords [[ CITATION NEEDED ]].
267
268   Many of the most widely-deployed HTTP/1.1 clients are not compliant
269   when GET requests include a query string [Apache_Digest].
270
271   Digest either requires that authentication databases be expressly
272   designed to accomodate it, or requires access to cleartext passwords.
273   As a result, many authentication databases that chose to do the
274   former are incompatible, including the most common method of storing
275   passwords for use with Forms and Cookies.
276
277
278
279Hoffman & Melnikov        Expires July 26, 2008                 [Page 5]
280
281Internet-Draft       Security Requirements for HTTP         January 2008
282
283
284   Many Digest capabilities included to prevent replay attacks expose
285   the server to Denial of Service attacks.
286
287   Digest is not interoperable when used with credentials that contain
288   characters outside of the ISO 8859-1 repertoire.
289
2902.2.3.  Other Access Authentication Schemes
291
292   There are many niche schemes that make use of the HTTP Authentication
293   framework, but very few are well documented.  Some are bound to
294   transport layer connections.
295
2962.2.3.1.  Negotiate (GSS-API) Authentication
297
298   [[ A discussion about "SPNEGO-based Kerberos and NTLM HTTP
299   Authentication in Microsoft Windows" [RFC4559] goes here.]]
300
3012.3.  Centrally-Issued Tickets
302
303   Many large Internet services rely on authentication schemes that
304   center on clients consulting a single service for a time-limited
305   ticket that is validated with undocumented heuristics.  Centralized
306   ticket issuing has the advantage that users may employ one set of
307   credentials for many services, and clients don't send credentials to
308   many servers.  This approach is often no more than a sophisticated
309   application of forms and cookies.
310
311   All of the schemes in wide use are proprietary and non-standard, and
312   usually are undocumented.  There are many standardization efforts in
313   progress, as usual.
314
3152.4.  Web Services
316
317   Many security properties mentioned in this document have been recast
318   in XML-based protocols, using HTTP as a substitute for TCP.  Like the
319   amalgam of HTTP technologies mentioned above, the XML-based protocols
320   are defined by an ever-changing combination of standard and vendor-
321   produced specifications, some of which may be obsoleted at any time
322   [WS-Pagecount] without any documented change control procedures.
323   These protocols usually don't have much in common with the
324   Architecture of the World Wide Web. It's not clear why term "Web" is
325   used to group them, but they are obviously out of scope for HTTP-
326   based application protocols.
327
3282.5.  Transport Layer Security
329
330   [[ A discussion of HTTP over TLS needs to be added here. ]]
331
332
333
334
335Hoffman & Melnikov        Expires July 26, 2008                 [Page 6]
336
337Internet-Draft       Security Requirements for HTTP         January 2008
338
339
340   [[ Discussion of connection confidentiality should be separate from
341   the discussion of access authentication based on mutual
342   authentication with certificates in TLS. ]]
343
344
3453.  Revisions To HTTP
346
347   Is is possible that HTTP will be revised in the future.  "HTTP/1.1"
348   [RFC2616] and "Use and Interpretation of HTTP Version Numbers"
349   [RFC2145] define conformance requirements in relation to version
350   numbers.  In HTTP 1.1, all authentication mechanisms are optional,
351   and no single transport substrate is specified.  Any HTTP revision
352   that adds a mandatory security mechanism or transport substrate will
353   have to increment the HTTP version number appropriately.  All widely
354   used schemes are non-standard and/or proprietary.
355
356
3574.  Security Considerations
358
359   This entire document is about security considerations.
360
361
3625.  Normative References
363
364   [Apache_Digest]
365              Apache Software Foundation, "Apache HTTP Server -
366              mod_auth_digest", <http://httpd.apache.org/docs/1.3/mod/
367              mod_auth_digest.html>.
368
369   [RFC2026]  Bradner, S., "The Internet Standards Process -- Revision
370              3", BCP 9, RFC 2026, October 1996.
371
372   [RFC2109]  Kristol, D. and L. Montulli, "HTTP State Management
373              Mechanism", RFC 2109, February 1997.
374
375   [RFC2145]  Mogul, J., Fielding, R., Gettys, J., and H. Nielsen, "Use
376              and Interpretation of HTTP Version Numbers", RFC 2145,
377              May 1997.
378
379   [RFC2616]  Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
380              Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
381              Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
382
383   [RFC2617]  Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S.,
384              Leach, P., Luotonen, A., and L. Stewart, "HTTP
385              Authentication: Basic and Digest Access Authentication",
386              RFC 2617, June 1999.
387
388
389
390
391Hoffman & Melnikov        Expires July 26, 2008                 [Page 7]
392
393Internet-Draft       Security Requirements for HTTP         January 2008
394
395
396   [RFC2965]  Kristol, D. and L. Montulli, "HTTP State Management
397              Mechanism", RFC 2965, October 2000.
398
399   [RFC3365]  Schiller, J., "Strong Security Requirements for Internet
400              Engineering Task Force Standard Protocols", BCP 61,
401              RFC 3365, August 2002.
402
403   [RFC3631]  Bellovin, S., Schiller, J., and C. Kaufman, "Security
404              Mechanisms for the Internet", RFC 3631, December 2003.
405
406   [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
407              Resource Identifier (URI): Generic Syntax", STD 66,
408              RFC 3986, January 2005.
409
410   [RFC4559]  Jaganathan, K., Zhu, L., and J. Brezak, "SPNEGO-based
411              Kerberos and NTLM HTTP Authentication in Microsoft
412              Windows", RFC 4559, June 2006.
413
414   [WS-Pagecount]
415              Bray, T., "WS-Pagecount", September 2004, <http://
416              www.tbray.org/ongoing/When/200x/2004/09/21/WS-Research>.
417
418
419Appendix A.  Acknowledgements
420
421   Much of the material in this document was written by Rob Sayre, who
422   first promoted the topic.
423
424
425Appendix B.  Document History
426
427   [This entire section is to be removed when published as an RFC.]
428
429B.1.  Changes between draft-sayre-http-security-variance-00 and
430      draft-ietf-http-security-properties-00
431
432   Changed the authors to Paul Hoffman and Alexey Melnikov, with
433   permission of Rob Sayre.
434
435   Made lots of minor editorial changes.
436
437   Removed what was section 2 (Requirements Notation), the reference to
438   RFC 2119, and any use of 2119ish all-caps words.
439
440   In 3.2.1 and 3.2.2, changed "Latin-1 range" to "ISO 8859-1
441   repertoire" to match the defintion of "TEXT" in RFC 2616.
442
443   Added minor text to the Security Considerations section.
444
445
446
447Hoffman & Melnikov        Expires July 26, 2008                 [Page 8]
448
449Internet-Draft       Security Requirements for HTTP         January 2008
450
451
452   Added URLs to the two non-RFC references.
453
454
455Authors' Addresses
456
457   Paul Hoffman
458   VPN Consortium
459
460   Email: paul.hoffman@vpnc.org
461
462
463   Alexey Melnikov
464   Isode Ltd.
465
466   Email: alexey.melnikov@isode.com
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503Hoffman & Melnikov        Expires July 26, 2008                 [Page 9]
504
505Internet-Draft       Security Requirements for HTTP         January 2008
506
507
508Full Copyright Statement
509
510   Copyright (C) The IETF Trust (2008).
511
512   This document is subject to the rights, licenses and restrictions
513   contained in BCP 78, and except as set forth therein, the authors
514   retain all their rights.
515
516   This document and the information contained herein are provided on an
517   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
518   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
519   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
520   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
521   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
522   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
523
524
525Intellectual Property
526
527   The IETF takes no position regarding the validity or scope of any
528   Intellectual Property Rights or other rights that might be claimed to
529   pertain to the implementation or use of the technology described in
530   this document or the extent to which any license under such rights
531   might or might not be available; nor does it represent that it has
532   made any independent effort to identify any such rights.  Information
533   on the procedures with respect to rights in RFC documents can be
534   found in BCP 78 and BCP 79.
535
536   Copies of IPR disclosures made to the IETF Secretariat and any
537   assurances of licenses to be made available, or the result of an
538   attempt made to obtain a general license or permission for the use of
539   such proprietary rights by implementers or users of this
540   specification can be obtained from the IETF on-line IPR repository at
541   http://www.ietf.org/ipr.
542
543   The IETF invites any interested party to bring to its attention any
544   copyrights, patents or patent applications, or other proprietary
545   rights that may cover technology that may be required to implement
546   this standard.  Please address the information to the IETF at
547   ietf-ipr@ietf.org.
548
549
550Acknowledgment
551
552   Funding for the RFC Editor function is provided by the IETF
553   Administrative Support Activity (IASA).
554
555
556
557
558
559Hoffman & Melnikov        Expires July 26, 2008                [Page 10]
560
Note: See TracBrowser for help on using the repository browser.