updates: ANSI C; autoconf; TCP; --with-system-{et,ss}
[krb5.git] / README
1 these were the
2                    Kerberos Version 5, Release 1.2
3
4                             Release Notes
5 which are be updated for the next release by
6                         The MIT Kerberos Team
7
8 Unpacking the Source Distribution
9 ---------------------------------
10
11 The source distribution of Kerberos 5 comes in three gzipped tarfiles,
12 krb5-1.2.src.tar.gz, krb5-1.2.doc.tar.gz, and krb5-1.2.crypto.tar.gz.
13 The krb5-1.2.doc.tar.gz contains the doc/ directory and this README
14 file.  The krb5-1.2.src.tar.gz contains the src/ directory and this
15 README file, except for the crypto library sources, which are in
16 krb5-1.2.crypto.tar.gz.
17
18 Instruction on how to extract the entire distribution follow.  These
19 directions assume that you want to extract into a directory called
20 DIST.
21
22 If you have the GNU tar program and gzip installed, you can simply do:
23
24         mkdir DIST
25         cd DIST
26         gtar zxpf krb5-1.2.src.tar.gz
27         gtar zxpf krb5-1.2.crypto.tar.gz
28         gtar zxpf krb5-1.2.doc.tar.gz
29
30 If you don't have GNU tar, you will need to get the FSF gzip
31 distribution and use gzcat:
32
33         mkdir DIST
34         cd DIST
35         gzcat krb5-1.2.src.tar.gz | tar xpf -
36         gzcat krb5-1.2.crypto.tar.gz | tar xpf -
37         gzcat krb5-1.2.doc.tar.gz | tar xpf -
38
39 Both of these methods will extract the sources into DIST/krb5-1.2/src
40 and the documentation into DIST/krb5-1.2/doc.
41
42 Building and Installing Kerberos 5
43 ----------------------------------
44
45 The first file you should look at is doc/install-guide.ps; it contains
46 the notes for building and installing Kerberos 5.  The info file
47 krb5-install.info has the same information in info file format.  You
48 can view this using the GNU emacs info-mode, or by using the
49 standalone info file viewer from the Free Software Foundation.  This
50 is also available as an HTML file, install.html.
51
52 Other good files to look at are admin-guide.ps and user-guide.ps,
53 which contain the system administrator's guide, and the user's guide,
54 respectively.  They are also available as info files
55 kerberos-admin.info and krb5-user.info, respectively.  These files are
56 also available as HTML files.
57
58 If you are attempting to build under Windows, please see the
59 src/windows/README file.
60
61 Reporting Bugs
62 --------------
63
64 Please report any problems/bugs/comments using the krb5-send-pr
65 program.  The krb5-send-pr program will be installed in the sbin
66 directory once you have successfully compiled and installed Kerberos
67 V5 (or if you have installed one of our binary distributions).
68
69 If you are not able to use krb5-send-pr because you haven't been able
70 compile and install Kerberos V5 on any platform, you may send mail to
71 krb5-bugs@mit.edu.
72
73 Notes, Major Changes, and Known Bugs for 1.3
74 ------------------------------------
75
76 * We now install the compile_et program, so other packages can use the
77   installed com_err library with their own error tables.
78
79 * The header files we install now assume ANSI/ISO C ('89, not '99).
80   We have stopped testing on SunOS 4, even with gcc.  Some of our code
81   now has C89-based assumptions, like free(NULL) being well defined,
82   that will probably frustrate any attempts to run this code under SunOS
83   4 or other pre-C89 systems.
84
85 * Some new code, bug fixes, and cleanup for IPv6 support.  [[TODO:
86   Insert list of (non-)supporting programs and libraries here.]]
87
88 * We have upgraded to autoconf 2.52 (or later), and the syntax for
89   specifying certain configuration options have changed.  For example,
90   autoconf 2.52 configure scripts let you specify command-line options
91   like "configure CC=/some/path/foo-cc", so we have removed some of
92   our old options like --with-cc in favor of this approach.
93
94 * The client libraries can now use TCP to connect to the KDC.  This
95   may be necessary when talking to Microsoft KDCs (domain controllers),
96   if they issue you tickets with lots of PAC data.
97
98 * If you have versions of the com_err or ss packages installed
99   locally, you can use the --with-system-et and --with-system-ss
100   configure options to use them rather than using the versions
101   supplied here.  Note that the interfaces are assumed to be similar
102   to those we supply; in particular, some older, divergent versions of
103   the com_err library may not work with the krb5 sources.  The
104   CPPFLAGS, LDFLAGS, and SS_LIB variables can be used to help the
105   compiler and linker find the installed packages.
106
107 Notes, Major Changes, and Known Bugs for 1.2, delete before shipping 1.3
108 ------------------------------------
109
110 * Triple DES support, for session keys as well as user or service
111   keys, should be nearly complete in this release.  Much of the work
112   that has been needed is generic multiple-cryptosystem support, so
113   the addition of another cryptosystem should be much easier.
114
115   * GSSAPI support for 3DES has been added.  An Internet Draft is
116     being worked on that will describe how this works; it is not
117     currently standardized.  Some backwards-compatibility issues in
118     this area mean that enabling 3DES support must be done with
119     caution; service keys that are used for GSSAPI must not be updated
120     to 3DES until the services themselves are upgraded to support 3DES
121     under GSSAPI.
122
123 * DNS support for locating KDCs is enabled by default.  DNS support
124   for looking up the realm of a host is compiled in but disabled by
125   default (due to some concerns with DNS spoofing).
126
127   We recommend that you publish your KDC information through DNS even
128   if you intend to rely on config files at your own site; otherwise,
129   sites that wish to communicate with you will have to keep their
130   config files updated with your information.  One of the goals of
131   this code is to reduce the client-side configuration maintenance
132   requirements as much as is possible, without compromising security.
133
134   See the administrator's guide for information on setting up DNS
135   information for your realm.
136
137   One important effect of this for developers is that on many systems,
138   "-lresolv" must be added to the compiler command line when linking
139   Kerberos programs.
140
141   Configure-time options are available to control the inclusion of the
142   DNS code and the setting of the defaults.  Entries in krb5.conf will
143   also modify the behavior if the code has been compiled in.
144
145 * Numerous buffer-overrun problems have been found and fixed.  Many of
146   these were in locations we don't expect can be exploited in any
147   useful way (for example, overrunning a buffer of MAXPATHLEN bytes if
148   a compiled-in pathname is too long, in a program that has no special
149   privileges).  It may be possible to exploit a few of these to
150   compromise system security.
151
152 * Partial support for IPv6 addresses has been added.  It can be
153   enabled or disabled at configure time with --enable-ipv6 or
154   --disable-ipv6; by default, the configure script will search for
155   certain types and macros, and enable the IPv6 code if they're found.
156   The IPv6 support at this time mostly consists of including the
157   addresses in credentials.
158
159 * A protocol change has been made to the "rcmd" suite (rlogin, rsh,
160   rcp) to address several security problems described in Kris
161   Hildrum's paper presented at NDSS 2000.  New command-line options
162   have been added to control the selection of protocol, since the
163   revised protocol is not compatible with the old one.
164
165 * A security problem in login.krb5 has been fixed.  This problem was
166   only present if the krb4 compatibility code was not compiled in.
167
168 * A security problem with ftpd has been fixed.  An error in the in the
169   yacc grammar permitted potential root access.
170
171 * The client programs kinit, klist and kdestroy have been changed to
172   incorporate krb4 support.  New command-line options control whether
173   krb4 behavior, krb5 behavior, or both are used.
174
175 * Patches from Frank Cusack for much better hardware preauth support
176   have been incorporated.
177
178 * Patches from Matt Crawford extend the kadmin ACL syntax so that
179   restrictions can be imposed on what certain administrators may do to
180   certain accounts.
181
182 * A KDC on a host with multiple network addresses will now respond to
183   a client from the address that the client used to contact it.  The
184   means used to implement this will however cause the KDC not to
185   listen on network addresses configured after the KDC has started.
186
187 Minor changes
188 -------------
189
190 * New software using com_err should use the {add,remove}_error_table
191   interface rather than init_XXX_error_table; in fact, the latter
192   function in the generate C files will now call add_error_table
193   instead of messing with unprotected global variables.
194
195   Karl Ramm has offered to look into reconciling the various
196   extensions and changes that have been made in different versions of
197   the MIT library, and the API used in the Heimdal equivalent.  No
198   timeline is set for this work.
199
200 * Some source files (including some header files we install) now have
201   annotations for use with the LCLint package from the University of
202   Virginia.  LCLint, as of version 2.5q, is not capable of handling
203   much of the Kerberos code in its current form, at least not without
204   significantly restructuring the Kerberos code, but it has been used
205   in limited cases and has uncovered some bugs.  We may try adding
206   more annotations in the future.
207
208 Minor changes for 1.2, delete this section before shipping 1.3
209 -------------
210
211 * The shell code for searching for the Tcl package at configure time
212   has been modified.  If a tclConfig.sh can be found, the information
213   it contains is used, otherwise the old searching method is tried.
214   Let us know if this new scheme causes any problems.
215
216 * Shared library builds may work on HPUX, Rhapsody/MacOS X, and newer
217   Alpha systems now.
218
219 * The Windows build will now include kvno and gss-sample.
220
221 * The routine krb5_secure_config_files has been disabled.  A new
222   routine, krb5_init_secure_context, has been added in its place.
223
224 * The routine decode_krb5_ticket is now being exported as
225   krb5_decode_ticket.  Any programs that used the old name (which
226   should be few) should be changed to use the new name; we will
227   probably eliminate the old name in the future.
228
229 * The CCAPI-based credentials cache code has been changed to store the
230   local-clock time of issue and expiration rather than the KDC-clock
231   times.
232
233 * On systems with large numbers of IP addresses, "kinit" should do a
234   better job of acquiring those addresses to put in the user's
235   credentials.
236
237 * Several memory leaks in error cases in the gssrpc code have been
238   fixed.
239
240 * A bug with login clobbering some internal static storage on AIX has
241   been fixed.
242
243 * Per-library initialization and cleanup functions have been added,
244   for use in configurations that dynamically load and unload these
245   libraries.
246
247 * Many compile-time warnings have been fixed.
248
249 * The GSS sample programs have been updated to exercise more of the
250   API.
251
252 * The telnet server should produce a more meaningful error message if
253   authentication is required but not provided.
254
255 * Changes have been made to ksu to make it more difficult to use it to
256   leak information the user does not have access to.
257
258 * The sample config file information for the CYGNUS.COM realm has been
259   updated, and the GNU.ORG realm has been added.
260
261 * A configure-time option has been added to enable a replay cache in
262   the KDC.  We recommend its use when hardware preauthentication is
263   being used.  It is enabled by default, and can be disabled if
264   desired with the configure-time option --disable-kdc-replay-cache.
265
266 * Some new routines have been added to the library and krb5.h.
267
268 * A new routine has been added to the prompter interface to allow the
269   application to determine which of the strings prompted for is the
270   user's password, in case it is needed for other purposes.
271
272 * The remote kadmin interface has been enhanced to support the
273   specification of key/salt types for a principal.
274
275 * New keytab entries' key values can now be specified manually with a
276   new command in the ktutil program.
277
278 * A longstanding bug where certain krb4 exchanges using the
279   compatibility library between systems with different byte orders
280   would fail half the time has been fixed.
281
282 * A source file under the GPL has been replaced with an equivalent
283   under the BSD license.  The file, strftime.c, was part of one of the
284   OpenVision admin system applications, and was only used on systems
285   that don't have strftime() in their C libraries.
286
287 * Many bug reports are still outstanding in our database.  We are
288   continuing to work on this backlog.
289
290
291 Copyright Notice and Legal Administrivia
292 ----------------------------------------
293
294 Copyright (C) 1985-2000 by the Massachusetts Institute of Technology.
295
296 All rights reserved.
297
298 Export of this software from the United States of America may require
299 a specific license from the United States Government.  It is the
300 responsibility of any person or organization contemplating export to
301 obtain such a license before exporting.
302
303 WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
304 distribute this software and its documentation for any purpose and
305 without fee is hereby granted, provided that the above copyright
306 notice appear in all copies and that both that copyright notice and
307 this permission notice appear in supporting documentation, and that
308 the name of M.I.T. not be used in advertising or publicity pertaining
309 to distribution of the software without specific, written prior
310 permission.  Furthermore if you modify this software you must label
311 your software as modified software and not distribute it in such a
312 fashion that it might be confused with the original MIT software.
313 M.I.T. makes no representations about the suitability of this software
314 for any purpose.  It is provided "as is" without express or implied
315 warranty.
316
317 THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
318 IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
319 WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
320
321 Individual source code files are copyright MIT, Cygnus Support,
322 OpenVision, Oracle, Sun Soft, FundsXpress, and others.
323
324 Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira,
325 and Zephyr are trademarks of the Massachusetts Institute of Technology
326 (MIT).  No commercial use of these trademarks may be made without
327 prior written permission of MIT.
328
329 "Commercial use" means use of a name in a product or other for-profit
330 manner.  It does NOT prevent a commercial firm from referring to the
331 MIT trademarks in order to convey information (although in doing so,
332 recognition of their trademark status should be given).
333
334 ----
335
336 The following copyright and permission notice applies to the
337 OpenVision Kerberos Administration system located in kadmin/create,
338 kadmin/dbutil, kadmin/passwd, kadmin/server, lib/kadm5, and portions
339 of lib/rpc:
340
341    Copyright, OpenVision Technologies, Inc., 1996, All Rights Reserved
342
343    WARNING: Retrieving the OpenVision Kerberos Administration system 
344    source code, as described below, indicates your acceptance of the 
345    following terms.  If you do not agree to the following terms, do not 
346    retrieve the OpenVision Kerberos administration system.
347
348    You may freely use and distribute the Source Code and Object Code
349    compiled from it, with or without modification, but this Source
350    Code is provided to you "AS IS" EXCLUSIVE OF ANY WARRANTY,
351    INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY OR
352    FITNESS FOR A PARTICULAR PURPOSE, OR ANY OTHER WARRANTY, WHETHER
353    EXPRESS OR IMPLIED.  IN NO EVENT WILL OPENVISION HAVE ANY LIABILITY
354    FOR ANY LOST PROFITS, LOSS OF DATA OR COSTS OF PROCUREMENT OF 
355    SUBSTITUTE GOODS OR SERVICES, OR FOR ANY SPECIAL, INDIRECT, OR
356    CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, INCLUDING, 
357    WITHOUT LIMITATION, THOSE RESULTING FROM THE USE OF THE SOURCE 
358    CODE, OR THE FAILURE OF THE SOURCE CODE TO PERFORM, OR FOR ANY 
359    OTHER REASON.
360
361    OpenVision retains all copyrights in the donated Source Code. OpenVision
362    also retains copyright to derivative works of the Source Code, whether
363    created by OpenVision or by a third party. The OpenVision copyright 
364    notice must be preserved if derivative works are made based on the 
365    donated Source Code.
366
367    OpenVision Technologies, Inc. has donated this Kerberos 
368    Administration system to MIT for inclusion in the standard 
369    Kerberos 5 distribution.  This donation underscores our 
370    commitment to continuing Kerberos technology development 
371    and our gratitude for the valuable work which has been 
372    performed by MIT and the Kerberos community.
373
374 ----
375
376     Portions contributed by Matt Crawford <crawdad@fnal.gov> were
377     work performed at Fermi National Accelerator Laboratory, which is
378     operated by Universities Research Association, Inc., under
379     contract DE-AC02-76CHO3000 with the U.S. Department of Energy.
380
381 ---- The implementation of the Yarrow pseudo-random number generator
382 in src/lib/crypto/yarrow has the following copyright:
383
384 Copyright 2000 by Zero-Knowledge Systems, Inc.
385
386 Permission to use, copy, modify, distribute, and sell this software
387 and its documentation for any purpose is hereby granted without fee,
388 provided that the above copyright notice appear in all copies and that
389 both that copyright notice and this permission notice appear in
390 supporting documentation, and that the name of Zero-Knowledge Systems,
391 Inc. not be used in advertising or publicity pertaining to
392 distribution of the software without specific, written prior
393 permission.  Zero-Knowledge Systems, Inc. makes no representations
394 about the suitability of this software for any purpose.  It is
395 provided "as is" without express or implied warranty.
396
397 ZERO-KNOWLEDGE SYSTEMS, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO
398 THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
399 FITNESS, IN NO EVENT SHALL ZERO-KNOWLEDGE SYSTEMS, INC. BE LIABLE FOR
400 ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
401 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
402 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT
403 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
404
405
406
407 Acknowledgements
408 ----------------
409
410 Appreciation Time!!!!  There are far too many people to try to thank
411 them all; many people have contributed to the development of Kerberos
412 V5.  This is only a partial listing....
413
414 Thanks to Paul Vixie and the Internet Software Consortium for funding
415 the work of Barry Jaspan.  This funding was invaluable for the OV
416 administration server integration, as well as the 1.0 release
417 preparation process.
418
419 Thanks to John Linn, Scott Foote, and all of the folks at OpenVision
420 Technologies, Inc., who donated their administration server for use in
421 the MIT release of Kerberos.
422
423 Thanks to Jeff Bigler, Mark Eichin, Marc Horowitz, Nancy Gilman, Ken
424 Raeburn, and all of the folks at Cygnus Support, who provided
425 innumerable bug fixes and portability enhancements to the Kerberos V5
426 tree.  Thanks especially to Jeff Bigler, for the new user and system
427 administrator's documentation.
428
429 Thanks to Doug Engert from ANL for providing many bug fixes, as well
430 as testing to ensure DCE interoperability.
431
432 Thanks to Ken Hornstein at NRL for providing many bug fixes and
433 suggestions.
434
435 Thanks to Matt Crawford at FNAL for bugfixes and enhancements.
436
437 Thanks to Sean Mullan and Bill Sommerfeld from Hewlett Packard for
438 their many suggestions and bug fixes.
439
440 Thanks to Nalin Dahyabhai of RedHat and Chris Evans for locating and
441 providing patches for numerous buffer overruns.
442
443 Thanks to Christopher Thompson and Marcus Watts for discovering the
444 ftpd security bug.
445
446 Thanks to the members of the Kerberos V5 development team at MIT, both
447 past and present: Danilo Almeida, Jay Berkenbilt, Richard Basch, John
448 Carr, Don Davis, Alexandra Ellwood, Nancy Gilman, Matt Hancher, Sam
449 Hartman, Paul Hill, Marc Horowitz, Eva Jacobus, Miroslav Jurisic,
450 Barry Jaspan, Geoffrey King, John Kohl, Peter Litwack, Scott McGuire,
451 Kevin Mitchell, Cliff Neuman, Paul Park, Ezra Peisach, Chris
452 Provenzano, Ken Raeburn, Jon Rochlis, Jeff Schiller, Brad Thompson,
453 Harry Tsai, Ted Ts'o, Marshall Vale, Tom Yu.