Update for krb5-1.3-beta1
[krb5.git] / README
1                    Kerberos Version 5, Release 1.3
2
3                             Release Notes
4                         The MIT Kerberos Team
5
6 Unpacking the Source Distribution
7 ---------------------------------
8
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
11 distribution follow.
12
13 If you have the GNU tar program and gzip installed, you can simply do:
14
15         gtar zxpf krb5-1.3.tar.gz
16
17 If you don't have GNU tar, you will need to get the FSF gzip
18 distribution and use gzcat:
19
20         gzcat krb5-1.3.tar.gz | tar xpf -
21
22 Both of these methods will extract the sources into krb5-1.3/src and
23 the documentation into krb5-1.3/doc.
24
25 Building and Installing Kerberos 5
26 ----------------------------------
27
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.
34
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.
40
41 If you are attempting to build under Windows, please see the
42 src/windows/README file.
43
44 Reporting Bugs
45 --------------
46
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).
51
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
54 krb5-bugs@mit.edu.
55
56 You may view bug reports by visiting
57
58 http://krbdev.mit.edu/rt/
59
60 and logging in as "guest" with password "guest".
61
62 Notes, Major Changes, and Known Bugs for 1.3
63 --------------------------------------------
64
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.)
68
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.
74
75 * Some new code, bug fixes, and cleanup for IPv6 support.  [[TODO:
76   Insert list of (non-)supporting programs and libraries here.]]
77
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.
83
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.
87
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.
97
98 Major changes listed by ticket ID
99 ---------------------------------
100
101 * [492] PRNG breakage on 64-bit platforms no longer an issue due to
102   new PRNG implementation.
103
104 * [523] Client library is now compatible with the RC4-based
105   cryptosystem used by Windows 2000.
106
107 * [709] krb4 long lifetime support has been implemented.
108
109 * [880] krb5_gss_register_acceptor_identity() implemented (is called
110   gsskrb5_register_acceptor_identity() by Heimdal).
111
112 * [1156, 1209] It is now possible to use the system com_err to build
113   this release.
114
115 * [1174] TCP support added to client library.
116
117 * [1175] TCP support added to the KDC, but is disabled by default.
118
119 * [1176] autoconf-2.5x is now required by the build system.
120
121 * [1184] It is now possible to use the system Berkeley/Sleepycat DB
122   library to build this release.
123
124 * [1189, 1251] The KfM krb4 library source base has been merged.
125
126 * [1377, 1442, 1443] The Microsoft set-password protocol has been
127   implemented.  Thanks to Paul Nelson.
128
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
133   patch.
134
135 * [1393] The xdrmem integer overflows [MITKRB5-SA-2003-003] have
136   been fixed.
137
138 * [1397] The krb5_principal buffer bounds problems
139   [MITKRB5-SA-2003-005] have been fixed.  Thanks to Nalin Dahyabhai.
140
141 * [1415] Subsession key negotiation has been fixed to allow for
142   server-selected subsession keys in the future.
143
144 * [1418, 1429, 1446, 1484, 1486, 1487] The AES cryptosystem has been
145   implemented.  It is not usable for GSSAPI, though.
146
147 Minor changes listed by ticket ID
148 ---------------------------------
149
150 * [90] default_principal_flags documented.
151
152 * [175] Docs refer to appropriate example domains/IPs now.
153
154 * [433] --includedir honored now.
155
156 * [479] unused argument in try_krb4() in login.c deleted.
157
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.
160
161 * [620] krb4 encrypted rcp should work a little better now.  Thanks to
162   Greg Hudson.
163
164 * [673] Weird echoing of admin password in kadmin client worked around
165   by not using buffered stdio calls to read passwords.
166
167 * [677] The build system has been reworked to allow the user to set
168   CFLAGS, LDFLAGS, CPPFLAGS, etc. reasonably.
169
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.
173
174 * [697] login.krb5 no longer zeroes out the terminal window size.
175
176 * [710] decomp_ticket() in libkrb4 now looks up the local realm name
177   more correctly.  Thanks to Booker Bense.
178
179 * [771] .rconf files are excluded from the release now.
180
181 * [772] LOG_AUTHPRIV syslog facility is now usable for logging on
182   systems that support it.
183
184 * [844] krshd now syslogs using the LOG_AUTH facility.
185
186 * [850] Berekely DB build is better integrated into the krb5 library
187   build process.
188
189 * [866] lib/krb5/os/localaddr.c and kdc/network.c use a common source
190   for local address enumeration now.
191
192 * [919] kdc/network.c problems relating to SIOCGIFCONF have been
193   fixed.
194
195 * [922] An overflow in the string-to-time conversion routines has been
196   fixed.
197
198 * [935] des-cbc-md4 now included in default enctypes.
199
200 * [953] des3 no longer failing on Windows due to SHA1 implementation
201   problems.
202
203 * [970] A minor inconsistency in ccache.tex has been fixed.
204
205 * [971] option parsing bugs rendered irrelevant by removal of unused
206   gss mechanism.
207
208 * [986] Related to [677], problems with the ordering of LDFLAGS
209   initialization rendered irrelevant by use of native autoconf
210   idioms.
211
212 * [992] Related to [677], quirks with --with-cc no longer relevant as
213   AC_PROG_CC is used instead now.
214
215 * [999] kdc_default_options now honored in gss context initialization.
216
217 * [1006] Client library, as well as KDC, now perform reasonable
218   sorting of ETYPE-INFO preauthentication data.
219
220 * [1055] NULL pointer dereferences in code calling
221   krb5_change_password() have been fixed.
222
223 * [1063] Initial credentials acquisition failures related to client
224   host having a large number of local network interfaces should be
225   fixed now.
226
227 * [1064] krb5_auth_con_genaddrs() no longer inappropriately returns -1
228   on some error cases.
229
230 * [1065, 1225] krb5_get_init_creds_password() should properly warn about
231   password expiration.
232
233 * [1066] printf() argument mismatches in rpc unit tests fixed.
234
235 * [1087] ftpd no longer requires channel bindings, allowing easier use
236   of ftp from behind a NAT.
237
238 * [1102] gssapi_generic.h should now work with C++.
239
240 * [1164] krb5_auth_con_gen_addrs() now properly returns errno instead
241   of -1 if getpeername() fails.
242
243 * [1178, 1228, 1244, 1246, 1249] Test suite has been stabilized
244   somewhat.
245
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
248   AC_OUTPUT.
249
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.
252
253 * [1195] Example krb5.conf file modified to include all enctypes
254   supported by the release.
255
256 * [1211] The ASN.1 code no longer passes (harmless) uninitialized
257   values around.
258
259 * [1212] libkadm5 now allows for persistent exclusive database locks.
260
261 * [1217] krb5_read_password() and des_read_password() are now
262   implemented via krb5_prompter_posix().
263
264 * [1224] For SAM challenges, omitted optional strings are no longer
265   encoded as zero-length strings.
266
267 * [1226] Client-side support for SAM hardware-based preauth
268   implemented.
269
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
273   Ben Cox.
274
275 * [1234] Assigned numbers for SAM preauth have been corrected.
276   sam-pk-for-sad implementation has been aligned.
277
278 * [1237] Profile-sharing optimizations from KfM have been merged.
279
280 * [1240] Windows calling conventions for krb5int_c_combine_keys() have
281   been aligned.
282
283 * [1242] Build system incompatibilities with Debian's chimeric
284   autoconf installation have been worked around.
285
286 * [1256] Incorrect sizes passed to memset() in combine_keys()
287   operations have been corrected.
288
289 * [1260] Client credential lookup now gets new service tickets in
290   preference to attempting to use expired ticketes.  Thanks to Ben
291   Cox.
292
293 * [1284] kshd accepts connections by IPv6 now.
294
295 * [1292] kvno manpage title fixed.
296
297 * [1293] Source files no longer explicitly attempt to declare errno.
298
299 * [1304] kadmind4 no longer leaves sa_flags uninitialized.
300
301 * [1305] Expired tickets now cause KfM to pop up a password dialog.
302
303 * [1309] krb5_send_tgs() no longer leaks the storage associated with
304   the TGS-REQ.
305
306 * [1310] kadm5_get_either() no longer leaks regexp library memory.
307
308 * [1311] Output from krb5-config no longer contains spurious uses of
309   $(PURE).
310
311 * [1324] The KDC no longer logs an inappropriate "no matching key"
312   error when an encrypted timestamp preauth password is incorrect.
313
314 * [1342] gawk is no longer required for building kerbsrc.zip for the
315   Windows build.
316
317 * [1346] gss_krb5_ccache_name() no longer attempts to return a pointer
318   to freed memory.
319
320 * [1352] GSS_C_PROT_READY_FLAG is no longer asserted inappropriately
321   during GSSAPI context establishment.
322
323 * [1356] krb5_gss_accept_sec_context() no longer attempts to validate
324   a null credential if one is passed in.
325
326 * [1362] The "-a user" option to telnetd now does the right thing.
327   Thanks to Nathan Neulinger.
328
329 * [1363] ksu no longer inappropriately syslogs to stderr.
330
331 * [1357] krb__get_srvtab_name() no longer leaks memory.
332
333 * [1373] Handling of SAM preauth no longer attempts to stuff a size_t
334   into an unsigned int.
335
336 * [1387] BIND versions later than 8 now supported.
337
338 * [1392] The getaddrinfo() wrapper should work better on AIX.
339
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.
342
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
345   your install tree.
346
347 * [1412] ETYPE_INFO handling no longer goes into an infinite loop.
348
349 * [1414] libtelnet is now built using the same library build framework
350   as the rest of the tree.
351
352 * [1417] A minor memory leak in krb5_read_password() has been fixed.
353
354 * [1419] A memory leak in asn1_decode_kdc_req_body() has been fixed.
355
356 * [1435] inet_ntop() is now emulated when needed.
357
358 * [1439] krb5_free_pwd_sequences() now correctly frees the entire
359   sequence of elements.
360
361 * [1440] errno is no longer explicitly declared.
362
363 * [1454] The etype-info2 preauth type is now supported.
364
365 * [1459] (KfM/KLL internal) config file resolution can now be
366   prevented from accessing the user's homedir.
367
368 * [1463] Preauth handling in the KDC has been reorganized.
369
370 * [1470] Double-free in client-side preauth code fixed.
371
372 * [1473] Ticket forwarding when the TGS and the end service have
373   different enctypes should work somewhat better now.
374
375 * [1474] ASN.1 testsuite memory management has been cleaned up a
376   little to allow for memory leak checking.
377
378 * [1476] Documentation updated to reflect default krb4 mode.
379
380 * [1482] RFC-1964 OIDs now provided using the suggested symbolic
381   names.
382
383 --[ DELETE BEFORE RELEASE ---changes to unreleased code, etc.--- ]--
384
385 * [1054] KRB-CRED messages for RC4 are encrypted now.
386
387 * [1177] krb5-1-2-2-branch merged onto trunk.
388
389 * [1193] Punted comment about reworking key storage architecture.
390
391 * [1208] install-headers target implemented.
392
393 * [1223] asn1_decode_oid, asn1_encode_oid implemented
394
395 * [1276] Generated dependencies handle --without-krb4 properly now.
396
397 * [1384, 1413] Use of autoconf-2.52 in util/reconf will now cause a
398   warning.
399
400 * [1388] DNS support is turned on in KfM.
401
402 * [1391] Fix kadmind startup failure with krb4 vuln patch.
403
404 * [1409] get_ad_tkt() now prompts for password if there are no tickets
405   (in KfM).
406
407 * [1447] vts_long() and vts_short() work now.
408
409 * [1462] KfM adds exports of set_pw calls.
410
411 * [1477] compile_et output not used in err_txt.c.
412
413 Copyright Notice and Legal Administrivia
414 ----------------------------------------
415
416 Copyright (C) 1985-2003 by the Massachusetts Institute of Technology.
417
418 All rights reserved.
419
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.
424
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
437 warranty.
438
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.
442
443 Individual source code files are copyright MIT, Cygnus Support,
444 OpenVision, Oracle, Sun Soft, FundsXpress, and others.
445
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.
450
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).
455
456 ----
457
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
461 of lib/rpc:
462
463    Copyright, OpenVision Technologies, Inc., 1996, All Rights Reserved
464
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.
469
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 
481    OTHER REASON.
482
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 
487    donated Source Code.
488
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.
495
496 ----
497
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.
502
503 ---- The implementation of the Yarrow pseudo-random number generator
504 in src/lib/crypto/yarrow has the following copyright:
505
506 Copyright 2000 by Zero-Knowledge Systems, Inc.
507
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.
518
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.
526
527 ---- The implementation of the AES encryption algorithm in
528 src/lib/crypto/aes has the following copyright:
529
530  Copyright (c) 2001, Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK.
531  All rights reserved.
532
533  LICENSE TERMS
534
535  The free distribution and use of this software in both source and binary 
536  form is allowed (with or without changes) provided that:
537
538    1. distributions of this source code include the above copyright 
539       notice, this list of conditions and the following disclaimer;
540
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;
544
545    3. the copyright holder's name is not used to endorse products 
546       built using this software without specific written permission. 
547
548  DISCLAIMER
549
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.
553
554
555
556 Acknowledgements
557 ----------------
558
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....
562
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
566 preparation process.
567
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.
571
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.
577
578 Thanks to Doug Engert from ANL for providing many bug fixes, as well
579 as testing to ensure DCE interoperability.
580
581 Thanks to Ken Hornstein at NRL for providing many bug fixes and
582 suggestions, and for working on SAM preauthentication.
583
584 Thanks to Matt Crawford at FNAL for bugfixes and enhancements.
585
586 Thanks to Sean Mullan and Bill Sommerfeld from Hewlett Packard for
587 their many suggestions and bug fixes.
588
589 Thanks to Nalin Dahyabhai of RedHat and Chris Evans for locating and
590 providing patches for numerous buffer overruns.
591
592 Thanks to Christopher Thompson and Marcus Watts for discovering the
593 ftpd security bug.
594
595 Thanks to Paul Nelson of Thursby Software Systems for implementing the
596 Microsoft set password protocol.
597
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.