1 Kerberos Version 5, Release 1.3
6 Unpacking the Source Distribution
7 ---------------------------------
9 The source distribution of Kerberos 5 comes in a gzipped tarfile,
10 krb5-1.3.tar.gz. Instructions on how to extract the entire
13 If you have the GNU tar program and gzip installed, you can simply do:
15 gtar zxpf krb5-1.3.tar.gz
17 If you don't have GNU tar, you will need to get the FSF gzip
18 distribution and use gzcat:
20 gzcat krb5-1.3.tar.gz | tar xpf -
22 Both of these methods will extract the sources into krb5-1.3/src and
23 the documentation into krb5-1.3/doc.
25 Building and Installing Kerberos 5
26 ----------------------------------
28 The first file you should look at is doc/install-guide.ps; it contains
29 the notes for building and installing Kerberos 5. The info file
30 krb5-install.info has the same information in info file format. You
31 can view this using the GNU emacs info-mode, or by using the
32 standalone info file viewer from the Free Software Foundation. This
33 is also available as an HTML file, install.html.
35 Other good files to look at are admin-guide.ps and user-guide.ps,
36 which contain the system administrator's guide, and the user's guide,
37 respectively. They are also available as info files
38 kerberos-admin.info and krb5-user.info, respectively. These files are
39 also available as HTML files.
41 If you are attempting to build under Windows, please see the
42 src/windows/README file.
47 Please report any problems/bugs/comments using the krb5-send-pr
48 program. The krb5-send-pr program will be installed in the sbin
49 directory once you have successfully compiled and installed Kerberos
50 V5 (or if you have installed one of our binary distributions).
52 If you are not able to use krb5-send-pr because you haven't been able
53 compile and install Kerberos V5 on any platform, you may send mail to
56 You may view bug reports by visiting
58 http://krbdev.mit.edu/rt/
60 and logging in as "guest" with password "guest".
62 Notes, Major Changes, and Known Bugs for 1.3
63 --------------------------------------------
65 * We now install the compile_et program, so other packages can use the
66 installed com_err library with their own error tables. (If you use
67 our com_err code, that is; see below.)
69 * The header files we install now assume ANSI/ISO C ('89, not '99).
70 We have stopped testing on SunOS 4, even with gcc. Some of our code
71 now has C89-based assumptions, like free(NULL) being well defined,
72 that will probably frustrate any attempts to run this code under SunOS
73 4 or other pre-C89 systems.
75 * Some new code, bug fixes, and cleanup for IPv6 support. [[TODO:
76 Insert list of (non-)supporting programs and libraries here.]]
78 * We have upgraded to autoconf 2.52 (or later), and the syntax for
79 specifying certain configuration options have changed. For example,
80 autoconf 2.52 configure scripts let you specify command-line options
81 like "configure CC=/some/path/foo-cc", so we have removed some of
82 our old options like --with-cc in favor of this approach.
84 * The client libraries can now use TCP to connect to the KDC. This
85 may be necessary when talking to Microsoft KDCs (domain controllers),
86 if they issue you tickets with lots of PAC data.
88 * If you have versions of the com_err, ss, or Berkeley DB packages
89 installed locally, you can use the --with-system-et,
90 --with-system-ss, and --with-system-db configure options to use them
91 rather than using the versions supplied here. Note that the
92 interfaces are assumed to be similar to those we supply; in
93 particular, some older, divergent versions of the com_err library
94 may not work with the krb5 sources. Many configure-time variables
95 can be used to help the compiler and linker find the installed
96 packages; see the build documentation for details.
98 Major changes listed by ticket ID
99 ---------------------------------
101 * [492] PRNG breakage on 64-bit platforms no longer an issue due to
102 new PRNG implementation.
104 * [523] Client library is now compatible with the RC4-based
105 cryptosystem used by Windows 2000.
107 * [709] krb4 long lifetime support has been implemented.
109 * [880] krb5_gss_register_acceptor_identity() implemented (is called
110 gsskrb5_register_acceptor_identity() by Heimdal).
112 * [1156, 1209] It is now possible to use the system com_err to build
115 * [1174] TCP support added to client library.
117 * [1175] TCP support added to the KDC, but is disabled by default.
119 * [1176] autoconf-2.5x is now required by the build system.
121 * [1184] It is now possible to use the system Berkeley/Sleepycat DB
122 library to build this release.
124 * [1189, 1251] The KfM krb4 library source base has been merged.
126 * [1377, 1442, 1443] The Microsoft set-password protocol has been
127 implemented. Thanks to Paul Nelson.
129 * [1385, 1395, 1410] The krb4 protocol vulnerabilities
130 [MITKRB5-SA-2003-004] have been worked around. Note that this will
131 disable krb4 cross-realm functionality, as well as krb4 triple-DES
132 functionality. Please see doc/krb4-xrealm.txt for details of the
135 * [1393] The xdrmem integer overflows [MITKRB5-SA-2003-003] have
138 * [1397] The krb5_principal buffer bounds problems
139 [MITKRB5-SA-2003-005] have been fixed. Thanks to Nalin Dahyabhai.
141 * [1415] Subsession key negotiation has been fixed to allow for
142 server-selected subsession keys in the future.
144 * [1418, 1429, 1446, 1484, 1486, 1487] The AES cryptosystem has been
145 implemented. It is not usable for GSSAPI, though.
147 Minor changes listed by ticket ID
148 ---------------------------------
150 * [90] default_principal_flags documented.
152 * [175] Docs refer to appropriate example domains/IPs now.
154 * [433] --includedir honored now.
156 * [479] unused argument in try_krb4() in login.c deleted.
158 * [608] login.krb5 handles SIGHUP more sanely now and thus avoids
159 getting the session into a weird state w.r.t. job control.
161 * [620] krb4 encrypted rcp should work a little better now. Thanks to
164 * [673] Weird echoing of admin password in kadmin client worked around
165 by not using buffered stdio calls to read passwords.
167 * [677] The build system has been reworked to allow the user to set
168 CFLAGS, LDFLAGS, CPPFLAGS, etc. reasonably.
170 * [680] Related to [673], rewrite krb5_prompter_posix() to no longer
171 use longjmp(), thus avoiding some bugs relating to non-restoration
172 of terminal settings.
174 * [697] login.krb5 no longer zeroes out the terminal window size.
176 * [710] decomp_ticket() in libkrb4 now looks up the local realm name
177 more correctly. Thanks to Booker Bense.
179 * [771] .rconf files are excluded from the release now.
181 * [772] LOG_AUTHPRIV syslog facility is now usable for logging on
182 systems that support it.
184 * [844] krshd now syslogs using the LOG_AUTH facility.
186 * [850] Berekely DB build is better integrated into the krb5 library
189 * [866] lib/krb5/os/localaddr.c and kdc/network.c use a common source
190 for local address enumeration now.
192 * [919] kdc/network.c problems relating to SIOCGIFCONF have been
195 * [922] An overflow in the string-to-time conversion routines has been
198 * [935] des-cbc-md4 now included in default enctypes.
200 * [953] des3 no longer failing on Windows due to SHA1 implementation
203 * [970] A minor inconsistency in ccache.tex has been fixed.
205 * [971] option parsing bugs rendered irrelevant by removal of unused
208 * [986] Related to [677], problems with the ordering of LDFLAGS
209 initialization rendered irrelevant by use of native autoconf
212 * [992] Related to [677], quirks with --with-cc no longer relevant as
213 AC_PROG_CC is used instead now.
215 * [999] kdc_default_options now honored in gss context initialization.
217 * [1006] Client library, as well as KDC, now perform reasonable
218 sorting of ETYPE-INFO preauthentication data.
220 * [1055] NULL pointer dereferences in code calling
221 krb5_change_password() have been fixed.
223 * [1063] Initial credentials acquisition failures related to client
224 host having a large number of local network interfaces should be
227 * [1064] krb5_auth_con_genaddrs() no longer inappropriately returns -1
230 * [1065, 1225] krb5_get_init_creds_password() should properly warn about
233 * [1066] printf() argument mismatches in rpc unit tests fixed.
235 * [1087] ftpd no longer requires channel bindings, allowing easier use
236 of ftp from behind a NAT.
238 * [1102] gssapi_generic.h should now work with C++.
240 * [1164] krb5_auth_con_gen_addrs() now properly returns errno instead
241 of -1 if getpeername() fails.
243 * [1178, 1228, 1244, 1246, 1249] Test suite has been stabilized
246 * [1188] As part of the modernization of our usage of autoconf,
247 AC_CONFIG_FILES is now used instead of passing a list of files to
250 * [1194] configure will no longer recurse out of the top of the source
251 tree when attempting to locate the top of the source tree.
253 * [1195] Example krb5.conf file modified to include all enctypes
254 supported by the release.
256 * [1211] The ASN.1 code no longer passes (harmless) uninitialized
259 * [1212] libkadm5 now allows for persistent exclusive database locks.
261 * [1217] krb5_read_password() and des_read_password() are now
262 implemented via krb5_prompter_posix().
264 * [1224] For SAM challenges, omitted optional strings are no longer
265 encoded as zero-length strings.
267 * [1226] Client-side support for SAM hardware-based preauth
270 * [1232] If the master KDC cannot be resolved, but a slave is
271 reachable, the client library now returns the real error from the
272 slave rather than the resolution failure from the master. Thanks to
275 * [1234] Assigned numbers for SAM preauth have been corrected.
276 sam-pk-for-sad implementation has been aligned.
278 * [1237] Profile-sharing optimizations from KfM have been merged.
280 * [1240] Windows calling conventions for krb5int_c_combine_keys() have
283 * [1242] Build system incompatibilities with Debian's chimeric
284 autoconf installation have been worked around.
286 * [1256] Incorrect sizes passed to memset() in combine_keys()
287 operations have been corrected.
289 * [1260] Client credential lookup now gets new service tickets in
290 preference to attempting to use expired ticketes. Thanks to Ben
293 * [1284] kshd accepts connections by IPv6 now.
295 * [1292] kvno manpage title fixed.
297 * [1293] Source files no longer explicitly attempt to declare errno.
299 * [1304] kadmind4 no longer leaves sa_flags uninitialized.
301 * [1305] Expired tickets now cause KfM to pop up a password dialog.
303 * [1309] krb5_send_tgs() no longer leaks the storage associated with
306 * [1310] kadm5_get_either() no longer leaks regexp library memory.
308 * [1311] Output from krb5-config no longer contains spurious uses of
311 * [1324] The KDC no longer logs an inappropriate "no matching key"
312 error when an encrypted timestamp preauth password is incorrect.
314 * [1342] gawk is no longer required for building kerbsrc.zip for the
317 * [1346] gss_krb5_ccache_name() no longer attempts to return a pointer
320 * [1352] GSS_C_PROT_READY_FLAG is no longer asserted inappropriately
321 during GSSAPI context establishment.
323 * [1356] krb5_gss_accept_sec_context() no longer attempts to validate
324 a null credential if one is passed in.
326 * [1362] The "-a user" option to telnetd now does the right thing.
327 Thanks to Nathan Neulinger.
329 * [1363] ksu no longer inappropriately syslogs to stderr.
331 * [1357] krb__get_srvtab_name() no longer leaks memory.
333 * [1373] Handling of SAM preauth no longer attempts to stuff a size_t
334 into an unsigned int.
336 * [1387] BIND versions later than 8 now supported.
338 * [1392] The getaddrinfo() wrapper should work better on AIX.
340 * [1400] If DO_TIME is not set in the auth_context, and no replay
341 cache is available, no replay cache will be used.
343 * [1406] libdb is no longer installed. If you installed
344 krb5-1.3-alpha1, you should ensure that no spurious libdb is left in
347 * [1412] ETYPE_INFO handling no longer goes into an infinite loop.
349 * [1414] libtelnet is now built using the same library build framework
350 as the rest of the tree.
352 * [1417] A minor memory leak in krb5_read_password() has been fixed.
354 * [1419] A memory leak in asn1_decode_kdc_req_body() has been fixed.
356 * [1435] inet_ntop() is now emulated when needed.
358 * [1439] krb5_free_pwd_sequences() now correctly frees the entire
359 sequence of elements.
361 * [1440] errno is no longer explicitly declared.
363 * [1454] The etype-info2 preauth type is now supported.
365 * [1459] (KfM/KLL internal) config file resolution can now be
366 prevented from accessing the user's homedir.
368 * [1463] Preauth handling in the KDC has been reorganized.
370 * [1470] Double-free in client-side preauth code fixed.
372 * [1473] Ticket forwarding when the TGS and the end service have
373 different enctypes should work somewhat better now.
375 * [1474] ASN.1 testsuite memory management has been cleaned up a
376 little to allow for memory leak checking.
378 * [1476] Documentation updated to reflect default krb4 mode.
380 * [1482] RFC-1964 OIDs now provided using the suggested symbolic
383 --[ DELETE BEFORE RELEASE ---changes to unreleased code, etc.--- ]--
385 * [1054] KRB-CRED messages for RC4 are encrypted now.
387 * [1177] krb5-1-2-2-branch merged onto trunk.
389 * [1193] Punted comment about reworking key storage architecture.
391 * [1208] install-headers target implemented.
393 * [1223] asn1_decode_oid, asn1_encode_oid implemented
395 * [1276] Generated dependencies handle --without-krb4 properly now.
397 * [1384, 1413] Use of autoconf-2.52 in util/reconf will now cause a
400 * [1388] DNS support is turned on in KfM.
402 * [1391] Fix kadmind startup failure with krb4 vuln patch.
404 * [1409] get_ad_tkt() now prompts for password if there are no tickets
407 * [1447] vts_long() and vts_short() work now.
409 * [1462] KfM adds exports of set_pw calls.
411 * [1477] compile_et output not used in err_txt.c.
413 Copyright Notice and Legal Administrivia
414 ----------------------------------------
416 Copyright (C) 1985-2003 by the Massachusetts Institute of Technology.
420 Export of this software from the United States of America may require
421 a specific license from the United States Government. It is the
422 responsibility of any person or organization contemplating export to
423 obtain such a license before exporting.
425 WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
426 distribute this software and its documentation for any purpose and
427 without fee is hereby granted, provided that the above copyright
428 notice appear in all copies and that both that copyright notice and
429 this permission notice appear in supporting documentation, and that
430 the name of M.I.T. not be used in advertising or publicity pertaining
431 to distribution of the software without specific, written prior
432 permission. Furthermore if you modify this software you must label
433 your software as modified software and not distribute it in such a
434 fashion that it might be confused with the original MIT software.
435 M.I.T. makes no representations about the suitability of this software
436 for any purpose. It is provided "as is" without express or implied
439 THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
440 IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
441 WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
443 Individual source code files are copyright MIT, Cygnus Support,
444 OpenVision, Oracle, Sun Soft, FundsXpress, and others.
446 Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira,
447 and Zephyr are trademarks of the Massachusetts Institute of Technology
448 (MIT). No commercial use of these trademarks may be made without
449 prior written permission of MIT.
451 "Commercial use" means use of a name in a product or other for-profit
452 manner. It does NOT prevent a commercial firm from referring to the
453 MIT trademarks in order to convey information (although in doing so,
454 recognition of their trademark status should be given).
458 The following copyright and permission notice applies to the
459 OpenVision Kerberos Administration system located in kadmin/create,
460 kadmin/dbutil, kadmin/passwd, kadmin/server, lib/kadm5, and portions
463 Copyright, OpenVision Technologies, Inc., 1996, All Rights Reserved
465 WARNING: Retrieving the OpenVision Kerberos Administration system
466 source code, as described below, indicates your acceptance of the
467 following terms. If you do not agree to the following terms, do not
468 retrieve the OpenVision Kerberos administration system.
470 You may freely use and distribute the Source Code and Object Code
471 compiled from it, with or without modification, but this Source
472 Code is provided to you "AS IS" EXCLUSIVE OF ANY WARRANTY,
473 INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY OR
474 FITNESS FOR A PARTICULAR PURPOSE, OR ANY OTHER WARRANTY, WHETHER
475 EXPRESS OR IMPLIED. IN NO EVENT WILL OPENVISION HAVE ANY LIABILITY
476 FOR ANY LOST PROFITS, LOSS OF DATA OR COSTS OF PROCUREMENT OF
477 SUBSTITUTE GOODS OR SERVICES, OR FOR ANY SPECIAL, INDIRECT, OR
478 CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, INCLUDING,
479 WITHOUT LIMITATION, THOSE RESULTING FROM THE USE OF THE SOURCE
480 CODE, OR THE FAILURE OF THE SOURCE CODE TO PERFORM, OR FOR ANY
483 OpenVision retains all copyrights in the donated Source Code. OpenVision
484 also retains copyright to derivative works of the Source Code, whether
485 created by OpenVision or by a third party. The OpenVision copyright
486 notice must be preserved if derivative works are made based on the
489 OpenVision Technologies, Inc. has donated this Kerberos
490 Administration system to MIT for inclusion in the standard
491 Kerberos 5 distribution. This donation underscores our
492 commitment to continuing Kerberos technology development
493 and our gratitude for the valuable work which has been
494 performed by MIT and the Kerberos community.
498 Portions contributed by Matt Crawford <crawdad@fnal.gov> were
499 work performed at Fermi National Accelerator Laboratory, which is
500 operated by Universities Research Association, Inc., under
501 contract DE-AC02-76CHO3000 with the U.S. Department of Energy.
503 ---- The implementation of the Yarrow pseudo-random number generator
504 in src/lib/crypto/yarrow has the following copyright:
506 Copyright 2000 by Zero-Knowledge Systems, Inc.
508 Permission to use, copy, modify, distribute, and sell this software
509 and its documentation for any purpose is hereby granted without fee,
510 provided that the above copyright notice appear in all copies and that
511 both that copyright notice and this permission notice appear in
512 supporting documentation, and that the name of Zero-Knowledge Systems,
513 Inc. not be used in advertising or publicity pertaining to
514 distribution of the software without specific, written prior
515 permission. Zero-Knowledge Systems, Inc. makes no representations
516 about the suitability of this software for any purpose. It is
517 provided "as is" without express or implied warranty.
519 ZERO-KNOWLEDGE SYSTEMS, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO
520 THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
521 FITNESS, IN NO EVENT SHALL ZERO-KNOWLEDGE SYSTEMS, INC. BE LIABLE FOR
522 ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
523 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
524 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT
525 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
527 ---- The implementation of the AES encryption algorithm in
528 src/lib/crypto/aes has the following copyright:
530 Copyright (c) 2001, Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK.
535 The free distribution and use of this software in both source and binary
536 form is allowed (with or without changes) provided that:
538 1. distributions of this source code include the above copyright
539 notice, this list of conditions and the following disclaimer;
541 2. distributions in binary form include the above copyright
542 notice, this list of conditions and the following disclaimer
543 in the documentation and/or other associated materials;
545 3. the copyright holder's name is not used to endorse products
546 built using this software without specific written permission.
550 This software is provided 'as is' with no explcit or implied warranties
551 in respect of any properties, including, but not limited to, correctness
552 and fitness for purpose.
559 Appreciation Time!!!! There are far too many people to try to thank
560 them all; many people have contributed to the development of Kerberos
561 V5. This is only a partial listing....
563 Thanks to Paul Vixie and the Internet Software Consortium for funding
564 the work of Barry Jaspan. This funding was invaluable for the OV
565 administration server integration, as well as the 1.0 release
568 Thanks to John Linn, Scott Foote, and all of the folks at OpenVision
569 Technologies, Inc., who donated their administration server for use in
570 the MIT release of Kerberos.
572 Thanks to Jeff Bigler, Mark Eichin, Marc Horowitz, Nancy Gilman, Ken
573 Raeburn, and all of the folks at Cygnus Support, who provided
574 innumerable bug fixes and portability enhancements to the Kerberos V5
575 tree. Thanks especially to Jeff Bigler, for the new user and system
576 administrator's documentation.
578 Thanks to Doug Engert from ANL for providing many bug fixes, as well
579 as testing to ensure DCE interoperability.
581 Thanks to Ken Hornstein at NRL for providing many bug fixes and
582 suggestions, and for working on SAM preauthentication.
584 Thanks to Matt Crawford at FNAL for bugfixes and enhancements.
586 Thanks to Sean Mullan and Bill Sommerfeld from Hewlett Packard for
587 their many suggestions and bug fixes.
589 Thanks to Nalin Dahyabhai of RedHat and Chris Evans for locating and
590 providing patches for numerous buffer overruns.
592 Thanks to Christopher Thompson and Marcus Watts for discovering the
595 Thanks to Paul Nelson of Thursby Software Systems for implementing the
596 Microsoft set password protocol.
598 Thanks to the members of the Kerberos V5 development team at MIT, both
599 past and present: Danilo Almeida, Jay Berkenbilt, Richard Basch, Mitch
600 Berger, John Carr, Don Davis, Alexandra Ellwood, Nancy Gilman, Matt
601 Hancher, Sam Hartman, Paul Hill, Marc Horowitz, Eva Jacobus, Miroslav
602 Jurisic, Barry Jaspan, Geoffrey King, John Kohl, Peter Litwack, Scott
603 McGuire, Kevin Mitchell, Cliff Neuman, Paul Park, Ezra Peisach, Chris
604 Provenzano, Ken Raeburn, Jon Rochlis, Jeff Schiller, Jen Selby, Brad
605 Thompson, Harry Tsai, Ted Ts'o, Marshall Vale, Tom Yu.