/[suikacvs]/webroot/www/2004/id/draft-trommler-http-ext-groups-00.txt
Suika

Contents of /webroot/www/2004/id/draft-trommler-http-ext-groups-00.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download)
Tue Jun 15 08:37:16 2004 UTC (19 years, 11 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/plain
New

1
2
3 Internet-Draft A. Hutchison, M. Kaiserswerth, P. Trommler
4 <draft-trommler-http-ext-groups-00.txt> IBM Zurich Research
5 March 20, 1996 (Expires September 20, 1996)
6
7
8
9
10 An Extension of the HTTP Authentication Scheme To Support Server Groups
11
12
13 1. Status of this Memo
14
15 This document is an Internet-Draft. Internet-Drafts are working
16 documents of the Internet Engineering Task Force (IETF), its areas,
17 and its working groups. Note that other groups may also distribute
18 working documents as Internet-Drafts.
19
20 Internet-Drafts are draft documents valid for a maximum of six months
21 and may be updated, replaced, or obsoleted by other documents at
22 any time. It is inappropriate to use Internet- Drafts as reference
23 material or to cite them other than as ``work in progress.''
24
25 To learn the current status of any Internet-Draft, please check the
26 ``1id-abstracts.txt'' listing contained in the Internet- Drafts
27 Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
28 munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
29 ftp.isi.edu (US West Coast).
30
31 Distribution of this document is unlimited. Please send comments to
32 the authors (see last page for e-mail addresses).
33
34
35 2. Abstract
36
37 This document motivates and describes an extension to HTTP which
38 allows protection spaces to be extended across multiple servers
39 residing in possibly different domains. These servers form groups
40 that allow browsers to obtain authentication information from a user
41 just once while accessing information on any one server cooperating
42 in such a group.
43
44 To achieve this behavior, the HTTP WWW-Authenticate header
45 information must be extended. This approach is independent of the
46 authentication scheme, but is most scalable in conjunction with a
47
48
49
50
51
52
53
54 Hutchison, Kaiserswerth, Trommler Expires September 20, 1996 [Page i]
55
56 Internet-Draft HTTP Secure Server Groups March 20, 1996
57
58
59 trusted third party authentication scheme, such as the proposed
60 Mediated Digest Authentication.
61
62
63 3. Acknowledgments
64
65 Thanks to Guenther Karjoth and Markus Buehler who helped identify the
66 need for this proposal.
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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 Hutchison, Kaiserswerth, Trommler Expires September 20, 1996 [Page ii]
108
109 Internet-Draft HTTP Secure Server Groups March 20, 1996
110
111
112
113
114 Contents
115
116
117
118 1. Status of this Memo i
119
120 2. Abstract i
121
122 3. Acknowledgments ii
123
124 4. Introduction 1
125
126 5. HTTP Authentication and Protection Space Model 1
127
128 6. The Server Group Model And Assumptions 2
129
130 7. Secure Authentication To A Group Of WWW Servers 3
131
132 8. Group Names and HTTP Modification 3
133 8.1. WWW-Authenticate Response-Header . . . . . . . . . . . . 4
134 8.2. Authorization Request-Header . . . . . . . . . . . . . . 5
135
136 9. Example Usage 5
137 9.1. Basic Authentication . . . . . . . . . . . . . . . . . . 5
138 9.2. Digest Authentication . . . . . . . . . . . . . . . . . . 6
139 9.3. Mediated Digest Authentication . . . . . . . . . . . . . 6
140
141 10. Implementation Issues 7
142 10.1. Server . . . . . . . . . . . . . . . . . . . . . . . . . 7
143 10.2. User Agent . . . . . . . . . . . . . . . . . . . . . . . 7
144
145 11. Conclusion 8
146
147 12. Authors' Address 9
148
149
150
151
152
153
154
155
156
157
158
159
160 Hutchison, Kaiserswerth, Trommler Expires September 20, 1996 [Page iii]
161
162 Internet-Draft HTTP Secure Server Groups March 20, 1996
163
164
165 4. Introduction
166
167 In this paper we propose an addition to the HTTP authentication
168 information which allows users to provide their authentication
169 information once for an entire set of servers belonging to the
170 same logical group. The concept is that even if servers reside in
171 different Internet domains, this enhancement allows them to share
172 information among authorized members in a seamless manner.
173
174 Although the proposed extension is not restricted to any particular
175 authentication technique, we base our work on the Mediated Digest
176 Authentication [4] Internet-Draft proposal, whereby authentication
177 information is protected and, in the context of cooperating servers,
178 group management is facilitated.
179
180
181 5. HTTP Authentication and Protection Space Model
182
183 Authentication of HTTP V1.0 [1] uses a simple challenge-response
184 mechanism, which works as follows: a server which requires
185 clients to authenticate themselves replies to a client's HTTP
186 method invocation with an Unauthorized (401) error code, and an
187 authentication challenge that contains an indication of the required
188 authentication method. The client may then resubmit its request, but
189 must include authentication information with it to be allowed access
190 to the server's resources. The authentication challenge is always
191 tied to a server-defined protection space.
192
193 The protection space is defined through a combination of the server's
194 root Uniform Resource Locator (URL) and a server-specified realm.
195 For all practical purposes, the root URL is the server's name in
196 either DNS or dotted IP address notation. The realm is a name
197 the server administrator chooses and can be used to partition the
198 server's file system into different protection spaces.
199
200 In a typical implementation, encountering an Unauthorized
201 (401) response causes a client browser to prompt the user for
202 authentication credentials before the request is resubmitted with
203 this information. For future accesses to the same protection space,
204 the browser may then cache the user credentials and automatically
205 include them in its accesses without further prompting the user.
206
207 HTTP V1.0 [1] specifies only a basic authentication mechanism (BA),
208 where the browser includes the user identification and password as
209 a base-64 encoded string in an authentication field in the request
210
211
212
213 Hutchison, Kaiserswerth, Trommler Expires September 20, 1996 [Page 1]
214
215 Internet-Draft HTTP Secure Server Groups March 20, 1996
216
217
218 header. This scheme is described in the draft as "a non-secure
219 method of filtering unauthorized access to resources on an HTTP
220 server". As this authentication information travels in the clear
221 over an essentially insecure network, it is susceptible to capture by
222 an observer who could then masquerade as the original user.
223
224 To address the security concerns of the basic HTTP authentication
225 method, two proposals were made in 1995. Both ensure that the
226 authentication information never travels in the clear. These schemes
227 can also prevent replay of HTTP requests by requiring that part of
228 the request information changes on subsequent accesses by a same
229 user to a given server protection space. This is achieved via the
230 inclusion of nonces.
231
232 Digest Authentication (DA) [2] operates in a similar fashion
233 to BA, but transfers the user-id and password from browser to
234 server in a hashed form. A server provided nonce can be used
235 to establish response freshness and detect replays. Mediated
236 Digest Authentication (MDA) [4] is based on DA, but introduces
237 trusted third-parties who act as mediators in proving identity and
238 establishing a session key. Introduction of a client nonce enables
239 the browser to distinguish the server reply as the valid response
240 associated with its request. A server employing MDA supplies
241 a list of trusted third-parties, with which the server shares a
242 cryptographic key, to a requesting client. If the client is able
243 to identify a third-party in this list with which it also shares a
244 cryptographic key, then this party can be contacted to enable mutual
245 authentication to occur.
246
247
248 6. The Server Group Model And Assumptions
249
250 In this proposal we define a group of servers as a set of physically
251 distinct servers wishing to collaborate to provide information to a
252 closed user group. This closed user group is trusted by each server.
253
254 A server group can be recognized as existing amongst the involved
255 servers where, from a security point of view, access to one 'group
256 member' ensures access to other group members. In practical terms
257 this means that a company or organization can distribute information
258 over several (geographically- and/or domain-separated) servers to
259 form a server group.
260
261 In the case of BA or DA, this requires that the (same) user-id and
262 password are stored at each server and kept consistent among these.
263
264
265
266 Hutchison, Kaiserswerth, Trommler Expires September 20, 1996 [Page 2]
267
268 Internet-Draft HTTP Secure Server Groups March 20, 1996
269
270
271 For reasons of consistency and distribution, use of the MDA scheme,
272 which employs trusted third party based authentication, is very
273 attractive. By 'signing-on' to any one of these group servers, a
274 user can access any other server of that server group without having
275 to repeat the sign-on procedure.
276
277
278 7. Secure Authentication To A Group Of WWW Servers
279
280 To achieve the server group model described, single server
281 authentication requires extension to allow seamless retrieval of
282 documents from any server belonging to a group. Secure access to
283 servers in the group is seamless in that user-id and password are
284 explicitly supplied by the user only once (exploiting the normal
285 caching of authentication information in the browser), for the first
286 group server encountered.
287
288 As described in section 5, HTTP authentication information is always
289 relative to a server's protection space, which is based on the
290 combination of the canonical root URL of that server and a server
291 defined realm. As a root URL always gives the server's Internet
292 address, the protection space is uniquely tied to that server
293 and cannot be extended to other servers that are only known under
294 different Internet addresses.
295
296 To extend the HTTP protection space beyond a single WWW server, the
297 definition of the protection space must be made relative to a unique
298 group name rather than a (root) URL, and the browser must be notified
299 that the protection space information pertains to a group of servers
300 rather than a single server. In subsequent sections we describe how
301 this can be achieved.
302
303
304 8. Group Names and HTTP Modification
305
306 We considered several different solutions for defining unique group
307 names for the global WWW. X.500-like distinguished group names were
308 one candidate, but we decided that (for the time being) the overhead
309 associated with maintaining such a naming scheme would be excessive.
310 We rather elected to use the DNS name of a distinguished server in
311 the server group as a unique base for the group name. This server
312 name combined with a freely chosen group name, and the realm of the
313 original HTTP specification, then defines a protection space that can
314 span multiple servers belonging to the same server group.
315
316
317
318
319 Hutchison, Kaiserswerth, Trommler Expires September 20, 1996 [Page 3]
320
321 Internet-Draft HTTP Secure Server Groups March 20, 1996
322
323
324 The required modifications to HTTP are described in the next two
325 subsections.
326
327
328 8.1. WWW-Authenticate Response-Header
329
330 The WWW-Authenticate response header is prescribed for Unauthorized
331 (401) server response messages. The field value is defined
332 as consisting of at least one challenge that indicates the
333 authentication scheme(s) and parameters applicable to the
334 Request-URI.
335
336 The challenge-response authentication mechanism of HTTP is described
337 in [1] as:
338
339 auth-scheme = token
340
341 auth-param = token "=" quoted-string
342
343 where 'token' is a case-insensitive identification of the
344 authentication scheme, or the attribute for which an associated value
345 is given, respectively.
346
347 The 401 (unauthorized) response is structured as follows:
348
349 challenge = auth-scheme 1*SP realm *("," auth-param)
350
351
352 realm = "realm" "=" realm-value
353 realm-value = quoted-string
354
355
356 The HTTP V1.0 draft limits the 'realm' to a specific server where
357 'the realm value, in combination with the canonical root URL of
358 the server being accessed, defines the protection space'. In this
359 way a set of 'protection spaces' is achieved. It is explicitly
360 stated, though, that a single protection space cannot extend outside
361 the scope of its server unless the authentication scheme specifies
362 otherwise.
363
364 Our proposal is to add an optional 'servgrp' field which can be
365 used independently of authentication scheme to achieve cross-server
366 protection spaces when desired. This results in a challenge field
367 consisting of:
368
369
370
371
372 Hutchison, Kaiserswerth, Trommler Expires September 20, 1996 [Page 4]
373
374 Internet-Draft HTTP Secure Server Groups March 20, 1996
375
376
377 challenge = auth-scheme 1*SP realm *("," auth-param) ["," servgrp]
378
379 servgrp = "servgrp" "=" servgrp-value
380
381 servgrp-value = quoted-string
382
383 The content of the servgrp-value should be made unique in accordance
384 with the naming proposals in section 8 of this document.
385
386
387 8.2. Authorization Request-Header
388
389 The Authorization request-header field is included by a user agent
390 wishing to authenticate itself with a server. The field value
391 is described in [1] as consisting of credentials containing the
392 authentication information of the user agent for the realm of the
393 resource being requested. The specification of a realm by a server
394 indicates that the same credentials should be valid for all other
395 requests within the nominated protection space.
396
397
398 9. Example Usage
399
400 In this section we illustrate the usage of the servgrp field with the
401 Basic[1], Digest[2] and Mediated[4] authentication schemes.
402
403 We have arbitrarily chosen to use the server "hundshorn.zurich.ibm.com"
404 as the unique group identifier, and illustrate three authentication
405 schemes with a group:
406
407 hundshorn.zurich.ibm.com:med_image_group
408
409
410 9.1. Basic Authentication
411
412 The following message shows the WWW-Authenticate header containing
413 server group information:
414
415 WWW-Authenticate: Basic realm="x-rays",
416 servgrp="hundshorn.zurich.ibm.com:med_image_group"
417
418 The browser constructs an unaltered BA Authorization response with
419 base-64 encoded user-id and password:
420
421 Authorization: Basic YWh1OmFodQ==
422
423
424
425 Hutchison, Kaiserswerth, Trommler Expires September 20, 1996 [Page 5]
426
427 Internet-Draft HTTP Secure Server Groups March 20, 1996
428
429
430 9.2. Digest Authentication
431
432 Extension of the digest authentication scheme results in a similar
433 extension of the WWW-Authenticate header with the addition of the
434 server group information:
435
436 WWW-Authenticate: Digest realm="x-rays", nonce="824385109",
437 opaque="ef609f5de336fc7f0e0f5e22da9c921c",
438 servgrp="hundshorn.zurich.ibm.com:med_image_group"
439
440 In this scheme the browser also returns an unaltered DA Authorization
441 response. In this case the browser returns a digest of the user-id
442 and password, so that an observer could not directly retrieve these
443 fields as in the BA case:
444
445 Authorization: Digest username="ahu", realm="x-rays",
446 nonce="824385109", uri="digest/",
447 response="b9686783c8e29f91417a557bd13f65b7",
448 opaque="ef609f5de336fc7f0e0f5e22da9c921c"
449
450
451 9.3. Mediated Digest Authentication
452
453 Extension of the MDA scheme can also be seen to present additional
454 server group information with the WWW-Authenticate header fields.
455 The MDA proposal also adds Trusted-Party messages to the server's
456 reply. A mutually trusted party is contacted by the browser
457 to perform authentication. The information in the server-mac
458 field is passed by the browser to the selected authentication
459 server (trusted-party), and in this way the client is also able to
460 authenticate the server. This is not possible in BA or DA:
461
462 WWW-Authenticate: Mediated realm="x-rays", nonce="824384997",
463 opaque="017a975b3e5972507e7e098dc23e2031",
464 servgrp="hundshorn.zurich.ibm.com:med_image_group"
465
466 Trusted-Party: uri="mdap://gletscherhorn.zurich.ibm.com:1995",
467 server-name="hundshorn.zurich.ibm.com",
468 server-mac="fb400c1e1dc023e49441cd5092fdd566"
469
470 Trusted-Party: uri="mdap://galmihorn.zurich.ibm.com:1995",
471 server-name="hundshorn.zurich.ibm.com",
472 server-mac="e0dde363778ee29540b4410ab009daac"
473
474
475
476
477
478 Hutchison, Kaiserswerth, Trommler Expires September 20, 1996 [Page 6]
479
480 Internet-Draft HTTP Secure Server Groups March 20, 1996
481
482
483 Trusted-Party: uri="mdap://hundshorn.zurich.ibm.com:1995",
484 server-name="hundshorn.zurich.ibm.com",
485 server-mac="0205a4ea82fa6b596025038326759298"
486
487 After receiving a (positive) response from the contacted
488 trusted-party, the browser returns Authorization and Session-key
489 headers to the server:
490
491 Authorization: Mediated username="ahu", realm="x-rays",
492 nonce="824384997",
493 uri="mediated/", response="12f1950f5ca91f4febb7c6c05d0ec284",
494 opaque="017a975b3e5972507e7e098dc23e2031"
495
496 Session-key: uri="mdap://hundshorn.zurich.ibm.com:1995",
497 server-name="hundshorn.zurich.ibm.com",
498 server-key="ce6b7e04611d687ebdae5bdb59514593",
499 server-mac="0dcda62dc189d186302b81f97c275827"
500
501 The Internet Draft on MDA [4] requires a WWW server to cache session
502 keys established by the authentication server. In this way state is
503 introduced into the server which is supposed to be stateless. We
504 therefore decided to cache the session key data received from the
505 authentication server in the user agent. The user agent then resends
506 this information each time a particular server is accessed again.
507 Alternatively the approach of [3] could be deployed by adding the
508 session key to the State-Info header (in encrypted form).
509
510
511 10. Implementation Issues
512
513 In this section we briefly describe the issues which have to be
514 addressed in supporting the HTTP Modification described in section 8.
515
516
517 10.1. Server
518
519 On the server side it is necessary to enhance the access control
520 files with a directive for naming the server group to which documents
521 belong.
522
523
524 10.2. User Agent
525
526 On the user agent side it is necessary to take the group organization
527 into consideration when caching authentication information. The
528
529
530
531 Hutchison, Kaiserswerth, Trommler Expires September 20, 1996 [Page 7]
532
533 Internet-Draft HTTP Secure Server Groups March 20, 1996
534
535
536 current organization which HTTP implies (via the uni-server 'realm')
537 is that servers are divided into local protection spaces. In the
538 proposed multi-server 'server group' protection space, cache lookup
539 should first consider group membership before attempting realm
540 matching.
541
542
543 11. Conclusion
544
545 This document has presented a mechanism by which the existing HTTP
546 single-server protection space can be extennded to provide protection
547 across multiple servers. The extension enables seamless cooperation
548 amongst servers, and secure authentication if it is used with a
549 method such as MDA.
550
551 The nature of this proposal is such that the enhancements can be
552 implemented to coexist with the authentication mechanism of HTTP
553 V1.0, or the various proposed authentication enhancements. The
554 proposal allows upward compatibility, in that non group-enabled
555 browsers simply ignore the additional information.
556
557 We also advocate incorporation of secure group enablement as a
558 permanent feature in the revised version of HTTP, V1.1.
559
560 An AIX patch for NCSA's httpd version 1.5a and Mosaic for XWindow
561 version 2.7b2 is available via anonymous ftp from ftp.zurich.ibm.com
562 in directory /pub/trp/server-groups. An implementation of the
563 authentication server can also be found at this location.
564
565
566 References
567
568 [1] T. Berners-Lee and R. T. Fielding and H. Frystyk Nielsen
569 HyperText Transfer Protocol (HTTP) Internet Draft, Work in
570 Progress February 1996
571
572 [2] J. Hostetler and others A Proposed Extension to HTTP: Digest
573 Access Authentication Internet Draft, Work in Progress December
574 1995
575
576 [3] D. M. Kristol and L. Montulli Proposed HTTP State Management
577 Mechanism Internet Draft, Work in Progress February 1996
578
579 [4] D. Raggett Mediated Digest Authentication Internet Draft, Work
580 in Progress March 1995 (expired)
581
582
583
584 Hutchison, Kaiserswerth, Trommler Expires September 20, 1996 [Page 8]
585
586 Internet-Draft HTTP Secure Server Groups March 20, 1996
587
588
589 12. Authors' Address
590
591 Andrew Hutchison, Matthias Kaiserswerth, Peter Trommler
592 IBM Zurich Research Laboratory
593 Saeumerstrasse 4
594 CH-8803, Rueschlikon
595 Switzerland
596 {ahu,kai,trp}@zurich.ibm.com
597
598 Any correspondence should please be directed to trp@zurich.ibm.com.
599 (Phone: +41 1 724 8373 Fax: +41 1 710 3608)
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637 Hutchison, Kaiserswerth, Trommler Expires September 20, 1996 [Page 9]

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24