[279] | 1 | <!DOCTYPE html |
---|
| 2 | PUBLIC "-//W3C//DTD HTML 4.01//EN"> |
---|
| 3 | <html lang="en"> |
---|
[787] | 4 | <head profile="http://www.w3.org/2006/03/hcard http://dublincore.org/documents/2008/08/04/dc-html/"> |
---|
[279] | 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 | |
---|
[787] | 39 | ul.empty { |
---|
| 40 | list-style-type: none; |
---|
| 41 | } |
---|
| 42 | ul.empty li { |
---|
[279] | 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 | } |
---|
[549] | 67 | h3, h4, h5, h6 { |
---|
[279] | 68 | font-size: 10pt; |
---|
| 69 | page-break-after: avoid; |
---|
| 70 | } |
---|
[549] | 71 | h2 a, h3 a, h4 a, h5 a, h6 a { |
---|
[279] | 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 { |
---|
[787] | 123 | border-spacing: 1px; |
---|
[279] | 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 | } |
---|
[787] | 135 | table.header td { |
---|
[279] | 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 { |
---|
[787] | 265 | content: "Internet-Draft"; |
---|
[279] | 266 | } |
---|
| 267 | @top-right { |
---|
[789] | 268 | content: "March 2010"; |
---|
[279] | 269 | } |
---|
| 270 | @top-center { |
---|
| 271 | content: "Security Requirements for HTTP"; |
---|
| 272 | } |
---|
| 273 | @bottom-left { |
---|
[787] | 274 | content: "Hodges & Leiba"; |
---|
[279] | 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"> |
---|
[787] | 296 | <link rel="Copyright" href="#rfc.copyrightnotice"> |
---|
[279] | 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"> |
---|
[787] | 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"> |
---|
[279] | 303 | <link rel="Appendix" title="A Acknowledgements" href="#rfc.section.A"> |
---|
| 304 | <link rel="Appendix" title="B Document History" href="#rfc.section.B"> |
---|
[787] | 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."> |
---|
[790] | 309 | <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-security-properties-05"> |
---|
[789] | 310 | <meta name="dct.issued" scheme="ISO8601" content="2010-03-11"> |
---|
[787] | 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."> |
---|
[279] | 313 | </head> |
---|
| 314 | <body> |
---|
[787] | 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> |
---|
[789] | 330 | <td class="left">Expires: September 12, 2010</td> |
---|
[787] | 331 | <td class="right">Huawei Technologies</td> |
---|
| 332 | </tr> |
---|
| 333 | <tr> |
---|
| 334 | <td class="left"></td> |
---|
[789] | 335 | <td class="right">March 11, 2010</td> |
---|
[787] | 336 | </tr> |
---|
| 337 | </tbody> |
---|
[279] | 338 | </table> |
---|
[790] | 339 | <p class="title">Security Requirements for HTTP<br><span class="filename">draft-ietf-httpbis-security-properties-05</span></p> |
---|
[789] | 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> |
---|
[279] | 345 | <h1><a id="rfc.status" href="#rfc.status">Status of this Memo</a></h1> |
---|
[789] | 346 | <p>This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79.</p> |
---|
[279] | 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> |
---|
[787] | 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>. |
---|
[279] | 355 | </p> |
---|
[787] | 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>. |
---|
[279] | 357 | </p> |
---|
[789] | 358 | <p>This Internet-Draft will expire in September 12, 2010.</p> |
---|
[549] | 359 | <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1> |
---|
[789] | 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. |
---|
[549] | 364 | </p> |
---|
[789] | 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> |
---|
[279] | 372 | <hr class="noprint"> |
---|
| 373 | <h1 id="rfc.section.1" class="np"><a href="#rfc.section.1">1.</a> Introduction |
---|
| 374 | </h1> |
---|
[787] | 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 |
---|
[279] | 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> |
---|
[787] | 381 | <div id="rfc.figure.u.1"></div> <pre> |
---|
[279] | 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. |
---|
[787] | 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 |
---|
[279] | 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> |
---|
[787] | 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> |
---|
[279] | 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> |
---|
[787] | 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> |
---|
[279] | 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? |
---|
[787] | 411 | See.. |
---|
[279] | 412 | </p> |
---|
[787] | 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> |
---|
[279] | 418 | <h2 id="rfc.section.2.1"><a href="#rfc.section.2.1">2.1</a> Forms And Cookies |
---|
| 419 | </h2> |
---|
[787] | 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 |
---|
[279] | 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> |
---|
[787] | 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 |
---|
[279] | 438 | properties introduce serious security trade-offs. |
---|
| 439 | </p> |
---|
[787] | 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 |
---|
[279] | 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> |
---|
[787] | 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 |
---|
[279] | 444 | in all cases (credentials are not differentiated in the protocol). |
---|
| 445 | </p> |
---|
[787] | 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 |
---|
[279] | 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> |
---|
[787] | 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; |
---|
[279] | 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> |
---|
[787] | 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> |
---|
[279] | 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 |
---|
[787] | 486 | observe or receive them, and session data can be transmitted alongside credentials with each request, allowing servers to |
---|
[279] | 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> |
---|
[787] | 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> |
---|
[279] | 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> |
---|
[787] | 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> |
---|
[279] | 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"> |
---|
[787] | 582 | <h1 id="rfc.section.4" class="np"><a href="#rfc.section.4">4.</a> IANA Considerations |
---|
[279] | 583 | </h1> |
---|
[787] | 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 |
---|
[279] | 587 | </h1> |
---|
[787] | 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> |
---|
[279] | 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> |
---|
[787] | 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> |
---|
[279] | 670 | <hr class="noprint"> |
---|
[787] | 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> |
---|
[279] | 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> |
---|
[787] | 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 |
---|
[279] | 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> |
---|
[787] | 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> |
---|
[789] | 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> |
---|
[279] | 750 | </body> |
---|
| 751 | </html> |
---|