2 INTERNET-DRAFT Brian Tung
3 draft-ietf-cat-kerberos-pk-cross-02.txt Tatyana Ryutov
4 Updates: RFC 1510 Clifford Neuman
5 expires January 31, 1998 Gene Tsudik
14 Public Key Cryptography for Cross-Realm Authentication in Kerberos
17 0. Status Of this Memo
19 This document is an Internet-Draft. Internet-Drafts are working
20 documents of the Internet Engineering Task Force (IETF), its
21 areas, and its working groups. Note that other groups may also
22 distribute working documents as Internet-Drafts.
24 Internet-Drafts are draft documents valid for a maximum of six
25 months and may be updated, replaced, or obsoleted by other
26 documents at any time. It is inappropriate to use Internet-Drafts
27 as reference material or to cite them other than as ``work in
30 To learn the current status of any Internet-Draft, please check
31 the ``1id-abstracts.txt'' listing contained in the Internet-Drafts
32 Shadow Directories on ds.internic.net (US East Coast),
33 nic.nordu.net (Europe), ftp.isi.edu (US West Coast), or
34 munnari.oz.au (Pacific Rim).
36 The distribution of this memo is unlimited. It is filed as
37 draft-ietf-cat-kerberos-pk-cross-01.txt, and expires January 31,
38 1998. Please send comments to the authors.
43 This document defines extensions to the Kerberos protocol
44 specification (RFC 1510, 'The Kerberos Network Authentication
45 Service (V5)', September 1993) to provide a method for using
46 public key cryptography during cross-realm authentication. The
47 methods defined here specify the way in which message exchanges
48 are to be used to transport cross-realm secret keys protected by
49 encryption under public keys certified as belonging to KDCs.
54 The advantages provided by public key cryptography--ease of
55 recoverability in the event of a compromise, the possibility of
56 an autonomous authentication infrastructure, to name a few--have
57 produced a demand for use by Kerberos authentication protocol. A
58 draft describing the use of public key cryptography in the initial
59 authentication exchange in Kerberos has already been submitted.
60 This draft describes its use in cross-realm authentication.
62 The principal advantage provided by public key cryptography in
63 cross-realm authentication lies in the ability to leverage the
64 existing public key infrastructure. It frees the Kerberos realm
65 administrator from having to maintain separate keys for each other
66 realm with which it wishes to exchange authentication information,
67 or to utilize a hierarchical arrangement, which may pose problems
70 Even with the multi-hop cross-realm authentication, there must be
71 some way to locate the path by which separate realms are to be
72 transited. The current method, which makes use of the DNS-like
73 realm names typical to Kerberos, requires trust of the intermediate
76 The methods described in this draft allow a realm to specify, at
77 the time of authentication, which certification paths it will
78 trust. A shared key for cross-realm authentication can be
79 established, for a period of time. Furthermore, these methods are
80 transparent to the client, so that only the KDC's need to be
83 It is not necessary to implement the changes described in the
84 "Public Key Cryptography for Initial Authentication" draft to make
85 use of the changes in this draft. We solicit comments about the
86 interaction between the two protocol changes, but as of this
87 writing, the authors do not perceive any obstacles to using both.
90 3. Protocol Amendments
92 We assume that the user has already obtained a TGT. To perform
93 cross-realm authentication, the user sends a request to the local
94 KDC as per RFC 1510. If the two realms share a secret key, then
95 cross-realm authentication proceeds as usual. Otherwise, the
96 local KDC may attempt to establish a shared key with the remote
97 KDC using public key cryptography, and exchange this key through
98 the cross-realm ticket granting ticket.
100 We will consider the specific channel on which the message
101 exchanges take place in Section 5 below.
104 3.1. Changes to the Cross-Realm Ticket Granting Ticket
106 In order to avoid the need for changes to the "installed base" of
107 Kerberos application clients and servers, the only protocol change
108 is to the way in which cross-realm ticket granting tickets (TGTs)
109 are encrypted; as these tickets are opaque to clients and servers,
110 the only change visible to them will be the increased size of the
113 Cross-realm TGTs are granted by a local KDC to authenticate a user
114 to a remote KDC's ticket granting service. In standard Kerberos,
115 they are encrypted using a shared secret key manually configured
118 In order to incorporate public key cryptography, we define a new
119 encryption type, "ENCTYPE_PK_CROSS". Operationally, this encryption
120 type transforms an OCTET STRING of plaintext (normally an EncTktPart)
121 into the following SEQUENCE:
123 PKCrossOutput ::= SEQUENCE {
124 certificate [0] OCTET STRING OPTIONAL,
125 -- public key certificate
127 encSharedKey [1] EncryptedData,
128 -- of type EncryptionKey
129 -- containing random symmetric key
130 -- encrypted using public key
132 sigSharedKey [2] Signature,
134 -- using signature key
136 pkEncData [3] EncryptedData,
137 -- (normally) of type EncTktPart
138 -- encrypted using encryption key
139 -- found in encSharedKey
142 The lifetime included in the ticket should be no longer than the
143 current time plus the maximum key lifetime allowed by the remote
146 PKCROSS operates as follows: when a client submits a request for
147 cross-realm authentication, the local KDC checks to see if it has
148 a long-term shared key established for that realm. If so, it uses
149 this key as per RFC 1510.
151 If not, it sends a request for information to the remote KDC. The
152 content of this message is immaterial, as it does not need to be
153 processed by the remote KDC; for the sake of consistency, we define
156 RemoteRequest ::= [APPLICATION 41] SEQUENCE {
160 The remote KDC replies with a list of all trusted certifiers and
161 all its (the remote KDC's) certificates. We note that this response
162 is universal and does not depend on which KDC makes the request:
164 RemoteReply ::= [APPLICATION 42] SEQUENCE {
165 trustedCertifiers [0] SEQUENCE OF PrincipalName,
166 certificates [1] SEQUENCE OF Certificate,
167 encTypeToUse [2] SEQUENCE OF INTEGER,
168 -- encryption types usable
169 -- for encrypting pkEncData
170 keyLifetime [3] INTEGER
171 -- allowable lifetime for key
175 Certificate ::= SEQUENCE {
176 CertType [0] INTEGER,
177 -- type of certificate
178 -- 1 = X.509v3 (DER encoding)
179 -- 2 = PGP (per PGP draft)
180 CertData [1] OCTET STRING
181 -- actual certificate
182 -- type determined by CertType
183 } -- from pk-init draft
185 Upon receiving this reply, the local KDC determines whether it has
186 a certificate the remote KDC trusts, and whether the remote KDC has
187 a certificate the local KDC trusts. If so, it issues a ticket
188 encrypted using the ENCTYPE_PK_CROSS encryption type defined above.
193 We observe that using PKCROSS as specified above requires two
194 private key operations: a signature generation by the local KDC and
195 a decryption by the remote KDC. This cost can be reduced in the
196 long term by judicious caching of the encSharedKey and the
199 Let us define a "profile" as the encSharedKey and sigSharedKey, in
200 conjunction with the associated remote realm name and decrypted
201 shared key (the key encrypted in the encSharedKey).
203 To optimize these interactions, each KDC maintains two caches, one
204 for outbound profiles and one for inbound profiles. When generating
205 an outbound TGT for another realm, the local KDC first checks to see
206 if the corresponding entry exists in the outbound profile cache; if
207 so, it uses its contents to form the first three fields of the
208 PKCrossOutput; the shared key is used to encrypt the data for the
209 fourth field. If not, the components are generated fresh and stored
210 in the outbound profile cache.
212 Upon receipt of the TGT, the remote realm checks its inbound profile
213 cache for the corresponding entry. If it exists, then it uses the
214 contents of the entry to decrypt the data encrypted in the pkEncData.
215 If not, then it goes through the full process of verifying and
216 extracting the shared key; if this is successful, then a new entry
217 is created in the inbound profile cache.
219 The inbound profile cache should support multiple entries per realm,
220 in the event that the initiating realm is replicated.
223 4. Finding Realms Supporting PKCROSS
225 If either the local realm or the destination realm does not support
226 PKCROSS, or both do not, the mechanism specified in Section 3 can
227 still be used in obtaining the desired remote TGT.
229 In the reference Kerberos implementations, the default behavior is
230 to traverse a path up and down the realm name hierarchy, if the
231 two realms do not share a key. There is, however, the possibility
232 of using cross links--i.e., keys shared between two realms that
233 are non-contiguous in the realm name hierarchy--to shorten the
234 path, both to minimize delay and the number of intermediate realms
235 that need to be trusted.
237 PKCROSS can be used as a way to provide cross-links even in the
238 absence of shared keys. If the client is aware that one or two
239 intermediate realms support PKCROSS, then a combination of
240 PKCROSS and conventional cross-realm authentication can be used
241 to reach the final destination realm.
243 We solicit discussion on the best methods for clients and KDCs to
244 determine or advertise support for PKCROSS.
247 5. Transport Mechanism Issues
249 We have not specified the port on which KDCs supporting PKCROSS
250 should listen to receive the request for information messages noted
251 above. We solicit discussion on which port should be used. We
252 propose to use the standard Kerberos ports (well-known 88 or 750),
253 but another possibility is to use a completely different port.
255 Because the messages involved may get long (due to the
256 PKCrossOutput), UDP may break too frequently to be a viable choice
257 for transport. Since the revised Kerberos RFC will explicitly
258 mention TCP as a possible mode of transport, we solicit discussion
259 on how to incorporate the use of TCP within PKCROSS.
261 We also solicit discussion on what other approaches can be taken to
262 obtain the information in the RemoteReply (e.g., secure DNS or some
268 This Internet-Draft will expire on January 31, 1998.
271 7. Authors' Addresses
277 USC/Information Sciences Institute
278 4676 Admiralty Way Suite 1001
279 Marina del Rey, CA 90292-6695
280 Phone: +1 310 822 1511
281 E-Mail: {brian, tryutov, bcn, gts}@isi.edu
287 Phone: +1 508 436 4352
288 E-Mail: sommerfeld@apollo.hp.com
292 CyberSafe Corporation
293 1605 NW Sammamish Road Suite 310
294 Issaquah WA 98027-5378
295 Phone: +1 206 391 6000
296 E-mail: {ari.medvinsky, matt.hur}@cybersafe.com