1 INTERNET-DRAFT Ari Medvinsky
2 draft-ietf-cat-kerberos-pk-tapp-03.txt Keen.com, Inc.
3 Expires January 14, 2001 Matthew Hur
4 Informational CyberSafe Corporation
10 Public Key Utilizing Tickets for Application Servers (PKTAPP)
13 0. Status Of this Memo
15 This document is an Internet-Draft and is in full conformance with
16 all provisions of Section 10 of RFC 2026. Internet-Drafts are
17 working documents of the Internet Engineering Task Force (IETF),
18 its areas, and its working groups. Note that other groups may also
19 distribute working documents as Internet-Drafts.
21 Internet-Drafts are draft documents valid for a maximum of six
22 months and may be updated, replaced, or obsoleted by other
23 documents at any time. It is inappropriate to use Internet-Drafts
24 as reference material or to cite them other than as "work in
27 The list of current Internet-Drafts can be accessed at
28 http://www.ietf.org/ietf/1id-abstracts.txt
30 The list of Internet-Draft Shadow Directories can be accessed at
31 http://www.ietf.org/shadow.html.
33 To learn the current status of any Internet-Draft, please check
34 the "1id-abstracts.txt" listing contained in the Internet-Drafts
35 Shadow Directories on ftp.ietf.org (US East Coast),
36 nic.nordu.net (Europe), ftp.isi.edu (US West Coast), or
37 munnari.oz.au (Pacific Rim).
39 The distribution of this memo is unlimited. It is filed as
40 draft-ietf-cat-kerberos-pk-init-10.txt, and expires April 30,
41 2000. Please send comments to the authors.
45 Public key based Kerberos for Distributed Authentication[1], (PKDA)
46 proposed by Sirbu & Chuang, describes PK based authentication that
47 eliminates the use of a centralized key distribution center while
48 retaining the advantages of Kerberos tickets. This draft describes how,
49 without any modification, the PKINIT specification[2] may be used to
50 implement the ideas introduced in PKDA. The benefit is that only a
51 single PK Kerberos extension is needed to address the goals of PKINIT &
58 With the proliferation of public key cryptography, a number of public
59 key extensions to Kerberos have been proposed to provide
60 interoperability with the PK infrastructure and to improve the Kerberos
61 authentication system [4]. Among these are PKINIT[2] (under development
62 in the CAT working group) and more recently PKDA [1] proposed by Sirbu &
63 Chuang of CMU. One of the principal goals of PKINIT is to provide for
64 interoperability between a PK infrastructure and Kerberos. Using
65 PKINIT, a user can authenticate to the KDC via a public key certificate.
66 A ticket granting ticket (TGT), returned by the KDC, enables a PK user
67 to obtain tickets and authenticate to kerberized services. The PKDA
68 proposal goes a step further. It supports direct client to server
69 authentication, eliminating the need for an online key distribution
70 center. In this draft, we describe how, without any modification, the
71 PKINIT protocol may be applied to achieve the goals of PKDA. For direct
72 client to server authentication, the client will use PKINIT to
73 authenticate to the end server (instead of a central KDC), which then,
74 will issue a ticket for itself. The benefit of this proposal, is that a
75 single PK extension to Kerberos can addresses the goals of PKINIT and
81 The PKDA proposal provides direct client to server authentication, thus
82 eliminating the need for an online key distribution center. A client
83 and server take part in an initial PK based authentication exchange,
84 with an added caveat that the server acts as a Kerberos ticket granting
85 service and issues a traditional Kerberos ticket for itself. In
86 subsequent communication, the client makes use of the Kerberos ticket,
87 thus eliminating the need for public key operations on the server. This
88 approach has an advantage over SSL in that the server does not need to
89 save state (cache session keys). Furthermore, an additional benefit, is
90 that Kerberos tickets can facilitate delegation (see Neuman[3]).
92 Below is a brief overview of the PKDA protocol. For a more detailed
95 SCERT_REQ: Client to Server
96 The client requests a certificate from the server. If the serverÆs
97 certificate is cached locally, SCERT_REQ and SCERT_REP are omitted.
99 SCERT_REP: Server to Client
100 The server returns its certificate to the client.
102 PKTGS_REQ: Client to Server
103 The client sends a request for a service ticket to the server. To
104 authenticate the request, the client signs, among other fields, a time
105 stamp and a newly generated symmetric key . The time stamp is used to
106 foil replay attacks; the symmetric key is used by the server to secure
107 the PKTGS_REP message.
108 The client provides a certificate in the request (the certificate
109 enables the server to verify the validity of the clientÆs signature) and
110 seals it along with the signed information using the serverÆs public
114 PKTGS_REP: Server to Client
115 The server returns a service ticket (which it issued for itself) along
116 with the session key for the ticket. The session key is protected by
117 the client-generated key from the PKTGS_REQ message.
119 AP_REQ: Client to Server
120 After the above exchange, the client can proceed in a normal fashion,
121 using the conventional Kerberos ticket in an AP_REQ message.
126 One of the principal goals of PKINIT is to provide for interoperability
127 between a public key infrastructure and Kerberos. Using a public key
128 certificate, a client can authenticate to the KDC and receive a TGT
129 which enables the client to obtain service tickets to kerberized
130 services.. In PKINIT, the AS-REQ and AS-REP messages remain the same;
131 new preauthentication data types are used to conduct the PK exchange.
132 Client and server certificates are exchanged via the preauthentication
133 data. Thus, the exchange of certificates , PK authentication, and
134 delivery of a TGT can occur in two messages.
136 Below is a brief overview of the PKINIT protocol. For a more detailed
139 PreAuthentication data of AS-REQ: Client to Server
140 The client sends a list of trusted certifiers, a signed PK
141 authenticator, and its certificate. The PK authenticator, based on the
142 Kerberos authenticator, contains the name of the KDC, a timestamp, and a
145 PreAuthentication data of AS-REP: Server to Client
146 The server responds with its certificate and the key used for decrypting
147 the encrypted part of the AS-REQ. This key is encrypted with the
150 AP_REQ: Client to Server
151 After the above exchange, the client can proceed in a normal fashion,
152 using the conventional Kerberos ticket in an AP_REQ message.
155 5. Application of PKINIT to achieve equivalence to PKDA
157 While PKINIT is normally used to retrieve a ticket granting ticket
158 (TGT), it may also be used to request an end service ticket. When used
159 in this fashion, PKINIT is functionally equivalent to PKDA. We
160 introduce the concept of a local ticket granting server (LTGS) to
161 illustrate how PKINIT may be used for issuing end service tickets based
162 on public key authentication. It is important to note that the LTGS may
163 be built into an application server, or it may be a stand-alone server
164 used for issuing tickets within a well-defined realm, such as a single
165 machine. We will discuss both of these options.
170 The LTGS processes the Kerberos AS-REQ and AS-REP messages with PKINIT
171 preauthentication data. When a client submits an AS-REQ to the LTGS, it
172 specifies an application server, in order to receive an end service
173 ticket instead of a TGT.
176 5.1.1. The LTGS as a standalone server
178 The LTGS may run as a separate process that serves applications which
179 reside on the same machine. This serves to consolidate administrative
180 functions and provide an easier migration path for a heterogeneous
181 environment consisting of both public key and Kerberos. The LTGS would
182 use one well-known port (port #88 - same as the KDC) for all message
183 traffic and would share a symmetric with each service. After the client
184 receives a service ticket, it then contacts the application server
185 directly. This approach is similar to the one suggested by Sirbu , et
188 5.1.1.1. Ticket Policy for PKTAPP Clients
190 It is desirable for the LTGS to have access to a PKTAPP client ticket
191 policy. This policy will contain information for each client, such as
192 the maximum lifetime of a ticket, whether or not a ticket can be
193 forwardable, etc. PKTAPP clients, however, use the PKINIT protocol for
194 authentication and are not required to be registered as Kerberos
197 As one possible solution, each public key Certification Authority could
198 be registered in a secure database, along with the ticket policy
199 information for all PKTAPP clients that are certified by this
200 Certification Authority.
202 5.1.1.2. LTGS as a Kerberos Principal
204 Since the LTGS serves only PKTAPP clients and returns only end service
205 tickets for other services, it does not require a Kerberos service key
206 or a Kerberos principal identity. It is therefore not necessary for the
207 LTGS to even be registered as a Kerberos principal.
209 The LTGS still requires public key credentials for the PKINIT exchange,
210 and it may be desired to have some global restrictions on the Kerberos
211 tickets that it can issue. It is recommended (but not required) that
212 this information be associated with a Kerberos principal entry for the
216 5.1.1.3. Kerberos Principal Database
218 Since the LTGS issues tickets for Kerberos services, it will require
219 access to a Kerberos principal database containing entries for at least
220 the end services. Each entry must contain a service key and may also
221 contain restrictions on the service tickets that are issued to clients.
222 It is recommended that (for ease of administration) this principal
223 database be centrally administered and distributed (replicated) to all
224 hosts where an LTGS may be running.
226 In the case that there are other clients that do not support PKINIT
227 protocol, but still need access to the same Kerberos services, this
228 principal database will also require entries for Kerberos clients and
231 5.1.2. The LTGS as part of an application server
233 The LTGS may be combined with an application server. This accomplishes
234 direct client to application server authentication; however, it requires
235 that applications be modified to process AS-REQ and AS-REP messages.
236 The LTGS would communicate over the port assigned to the application
237 server or over the well known Kerberos port for that particular
240 5.1.2.2. Ticket Policy for PKTAPP Clients
242 Application servers normally do not have access to a distributed
243 principal database. Therefore, they will have to find another means of
244 keeping track of the ticket policy information for PKTAPP clients. It is
245 recommended that this ticket policy be kept in a directory service (such
248 It is critical, however, that both read and write access to this ticket
249 policy is restricted with strong authentication and encryption to only
250 the correct application server. An unauthorized party should not have
251 the authority to modify the ticket policy. Disclosing the ticket policy
252 to a 3rd party may aid an adversary in determining the best way to
253 compromise the network.
255 It is just as critical for the application server to authenticate the
256 directory service. Otherwise an adversary could use a man-in-the-middle
257 attack to substitute a false ticket policy with a false directory
260 5.1.2.3. LTGS Credentials
262 Each LTGS (combined with an application service) will require public key
263 credentials in order to use the PKINIT protocol. These credentials can
264 be stored in a single file that is both encrypted with a password-
265 derived symmetric key and also secured by an operating system. This
266 symmetric key may be stashed somewhere on the machine for convenience,
267 although such practice potentially weakens the overall system security
268 and is strongly discouraged.
270 For added security, it is recommended that the LTGS private keys are
271 stored inside a temper-resistant hardware module that requires a pin
275 5.1.2.4. Compatibility With Standard Kerberos
277 Even though an application server is combined with the LTGS, for
278 backward compatibility it should still accept service tickets that have
279 been issued by the KDC. This will allow Kerberos clients that do not
280 support PKTAPP to authenticate to the same application server (with the
283 5.1.3. Cross-Realm Authentication
285 According to the PKINIT draft, the client's realm is the X.500 name of
286 the Certification Authority that issued the client certificate. A
287 Kerberos application service will be in a standard Kerberos realm, which
288 implies that the LTGS will need to issue cross-realm end service
289 tickets. This is the only case, where cross-realm end service tickets
290 are issued. In a standard Kerberos model, a client first acquires a
291 cross-realm TGT, and then gets an end service ticket from the KDC that
292 is in the same realm as the application service.
294 6. Protocol differences between PKINIT and PKDA
296 Both PKINIT and PKDA will accomplish the same goal of issuing end
297 service tickets, based on initial public key authentication. A PKINIT-
298 based implementation and a PKDA implementation would be functionally
299 equivalent. The primary differences are that 1)PKDA requires the client
300 to create the symmetric key while PKINIT requires the server to create
301 the key and 2)PKINIT accomplishes in two messages what PKDA accomplishes
306 The PKINIT protocol can be used, without modification to facilitate
307 client to server authentication without the use of a central KDC. The
308 approach described in this draft (and originally proposed in PKDA[1])
309 is essentially a public key authentication protocol that retains the
310 advantages of Kerberos tickets.
312 Given that PKINIT has progressed through the CAT working group of the
313 IETF, with plans for non-commercial distribution (via MITÆs v5 Kerberos)
314 as well as commercial support, it is worthwhile to provide PKDA
315 functionality, under the PKINIT umbrella.
317 8. Security Considerations
319 PKTAPP is based on the PKINIT protocol and all security considerations
320 already listed in [2] apply here.
322 When the LTGS is implemented as part of each application server, the
323 secure storage of its public key credentials and of its ticket policy
324 are both a concern. The respective security considerations are already
325 covered in sections 5.1.2.3 and 5.1.2.2 of this document.
330 [1] M. Sirbu, J. Chuang. Distributed Authentication in Kerberos Using
331 Public Key Cryptography. Symposium On Network and Distributed System
334 [2] B. Tung, C. Neuman, M. Hur, A. Medvinsky, S. Medvinsky, J. Wray,
335 J. Trostle. Public Key Cryptography for Initial Authentication in
336 Kerberos. Internet Draft, October 1999.
337 (ftp://ietf.org/internet-drafts/draft-ietf-cat-kerberos-pk-init-10.txt)
339 [3] C. Neuman, Proxy-Based Authorization and Accounting for
340 Distributed Systems. In Proceedings of the 13th International
341 Conference on Distributed Computing Systems, May 1993.
343 [4] J. Kohl, C. Neuman. The Kerberos Network Authentication Service
344 (V5). Request for Comments 1510.
348 This draft expires April 24, 2000.
356 Phone +1 650 289 3134
360 CyberSafe Corporation
361 1605 NW Sammamish Road
362 Issaquah, WA 98027-5378
363 Phone: +1 425 391 6000
364 E-mail: matt.hur@cybersafe.com
370 Phone: +1 858 404 2367
371 E-mail: smedvinsky@gi.com
374 USC Information Sciences Institute
375 4676 Admiralty Way Suite 1001
376 Marina del Rey CA 90292-6695
377 Phone: +1 310 822 1511