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