1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
|
Kerberos Working Group M. Swift
Internet Draft University of WA
Document: draft-swift-win2k-krb-user2user-03.txt J. Brezak
Category: Informational Microsoft
P. Moore
Sandia National Labs
October 2001
User to User Kerberos Authentication using GSS-API
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026 [1].
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts. Internet-Drafts are draft documents valid for a maximum of
six months and may be updated, replaced, or obsoleted by other
documents at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
1. Abstract
This draft documents a simple extension to the Kerberos GSS-API
mechanism to support user to user authentication both in the case
where the client application explicitly requests user to user
authentication and when it does not know whether the server supports
user to user authentication.
2. Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
this document are to be interpreted as described in RFC-2119 [2].
3. Introduction
The Kerberos user to user authentication mechanism allows for a
client application to connect to a service that is not in possession
of a long term secret key. Instead, the session ticket from the
KERB-AP-REQ is encrypted using the session key from the service's
ticket granting ticket. According to RFC 1510 [3]:
Swift Category - Informational 1
User to User Kerberos Authentication October 1999
If the ENC-TKT-IN-SKEY option has been specified and an
additional ticket has been included in the request, the KDC
will decrypt the additional ticket using the key for the server
to which the additional ticket was issued and verify that it is
a ticket-granting ticket. If the request succeeds, the session
key from the additional ticket will be used to encrypt the new
ticket that is issued instead of using the key of the server
for which the new ticket will be used (This allows easy
implementation of user-to-user authentication, which uses
ticket-granting ticket session keys in lieu of secret server
keys in situations where such secret keys could be easily
compromised).
RFC2078 [5], in section 5.2, discusses a "Double-TGT K-5" mechanism
and scenario, but not in the detail required in order to implement
the mechanism. The RFC for the Kerberos V5 GSS-API mechanism at the
time this draft was prepared, RFC 1964 [4] does not support user-to-
user authentication.
This draft provides details as to mechanism type, token identifiers,
messages and message types sufficient to document an implementation
of user-to-user authentication in Kerberos GSS-API. It follows the
scenario described in RFC2078.
The approach documented in this draft has been used to support user-
to-user authentication in the Microsoft Windows 2000 SSPI with the
Kerberos V5 protocol, and in a patched Kerberos V5 implementation
being used to support a computing grid at Sandia, Lawrence
Livermore, and Los Alamos National Laboratories.
4. User to User as a New Mechanism
A new mechanism OID may be used to establish a user-to-user session:
{iso(1) member-body(2) United States(840) mit(113554)
infosys(1) gssapi(2) krb5(2) usertouser(3)}
In the case that the client application knows that the server
requires user-to-user authentication, then the initial call to
GSS_Init_Sec_Context will request this mechanism. This new mechanism
is used with a token exchange that extends the conventional Kerberos
GSS-API protocol by adding an additional round trip to request the
TGT from the service. As with all Kerberos GSS-API messages, the
following tokens are encapsulated in the GSS-API framing. The first
token of the exchange will have an innerContextToken with a 2-octet
TOK_ID field containing 04 00 (KERB-TGT-REQUEST) followed by a
Kerberos V5 message as follows:
KERB-TGT-REQUEST ::= SEQUENCE {
pvno[0] INTEGER,
msg-type[1] INTEGER,
server-name[2] PrincipalName OPTIONAL,
realm[3] Realm OPTIONAL
Swift Category - Informational 2
User to User Kerberos Authentication October 1999
}
The TGT request consists of four fields:
pvno and msg-type are as defined in RFC1510 section 5.4.1. msg-
type is KRB_TGT_REQ (16).
server-name : this field optionally contains the name of the
server. If the client application doesn't know the
server name this can be left blank and the server
application will pick the appropriate server
credentials which may be the default credential.
realm : this field optionally contains the realm of the server.
If the client application doesn't know the server realm
this field can be left blank and the server application
will pick the appropriate server credentials which may
be the server's default realm.
The server name and realm are included to allow a server application
to act for multiple principles in different realms and to choose
which credentials to use.
The response to the KERB-TGT-REQUEST message will be a
KERB_TGT_REPLY token which will have an innerContextToken with a 2-
octet TOK_ID field containing 04 01 (KERB-TGT-REPLY) followed by a
Kerberos V5 message as follows:
KERB-TGT-REPLY ::= SEQUENCE {
pvno[0] INTEGER,
msg-type[1] INTEGER,
ticket[2] Ticket
}
The TGT reply contains the following fields:
pvno and msg-type are as defined in RFC1510 section 5.4.1. msg-
type is KRB_TGT_REP (17)
ticket : contains the TGT for the service specified by the
server name and realm passed by the client or the
default service.
If the service does not possess a ticket granting ticket, it should
return the error KRB_AP_ERR_NO_TGT (0x43).
If the server name and realm in the KERB-TGT-REQUEST message do not
match the name of the service, then the service should return the
error KRB_AP_ERR_NOT_US.
Following the exchange of the TGT request messages, the initiator
requests a ticket to the service from the KDC using a KERB-TGS-REQ
with the KDCoption ENC-TKT-IN_SKEY and the second ticket in the
Swift Category - Informational 3
User to User Kerberos Authentication October 1999
additional-tickets of the KDC-REQ-BODY. Upon receipt of the TGS-REP
the rest of the authentication identical to the Kerberos GSS-API
mechanism defined in RFC 1964 [4].
5. User-to-User when applied via KDC policy
Implementations MAY support the ability apply a policy on a user
account such that the KDC will not allow conventional service ticket
requests, and when presented with a KERB_TGS_REQ that does not
contain a second ticket with an ENC_TKT_IN_SKEY KDCoption will
respond with a KRB-ERROR with the msg-type
KDC_ERR_MUST_USE_USER2USER (or KRB5PLACEHOLD_27).
In this case, the client need not explicitly request user-to-user in
order to get a user-to-user connection. Implementations may use this
error code to set a flag and return a GSS_C_CONTINUE_NEEDED so that
the next round uses the mechanism described in section 4.
6. User to User when applied by server policy
In the case that the client application doesn't know that a service
requires user-to-user authentication, and requests and receives a
conventional KRB_AP_REP, the client will send the KRB_AP_REP
request, and the server will respond with a KRB_ERROR token as
described in RFC1964, with a msg-type of
KRB_AP_ERR_USER_TO_USER_REQUIRED (0x45). The server may optionally
pass the TGT in the data field of this error message. In response to
this error, the initiator sets flags and returns a
GSS_C_CONTINUE_NEEDED so that the next round uses the mechanism
described in section 4.
7. Security Considerations
These extensions simply enable an existing Kerberos 5 authentication
protocol so that it may be used from GSSAPI.
There is some risk in a server handing out its ticket-granting-
ticket to any client that requests it, in that it gives an attacker
a piece of encrypted material to decrypt. However, the same material
may be obtained from listening to any legitimate client connection.
It should be noted here that the exchange described in section 6
requires that the KDC provide tickets for user accounts, which will
contain known plaintext encrypted in the usersĘ private key. The
risk associated with this is entirely mitigated where a KDC supports
the KDC_MUST_USE_USER2USER feature, which allows a restriction on
user accounts to ensure that all tickets for that account are
encrypted in the TGT session key, and not the long term key of the
user.
8. References
Swift Category - Informational 4
User to User Kerberos Authentication October 1999
1 Bradner, S., "The Internet Standards Process -- Revision 3", BCP
9, RFC 2026, October 1996.
2 Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997
3 J. Kohl, C. Neuman, "The Kerberos Network Authentication
Service(V5)", RFC 1510.
4 J. Linn, "The Kerberos Version 5 GSS-API Mechanism", RFC 1964
5 J. Linn, "Generic Security Service Application Program Interface,
Version 2", RFC 2078
9. Author's Addresses
Michael Swift
University of Washington
Seattle, Washington
Email: mikesw@cs.washington.edu
John Brezak
Microsoft
One Microsoft Way
Redmond, Washington
Email: jbrezak@microsoft.com
Patrick Moore
Sandia National Laboratories
PO Box 5800 Mail Stop
Albuquerque, New Mexico
Email: pcmoore@sandia.gov
Swift Category - Informational 5
User to User Kerberos Authentication October 1999
Full Copyright Statement
Copyright (C) The Internet Society (1999). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph
are included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."
Swift Category - Informational 6
|