README and patchlevel for krb5-1.8.1-beta2
[krb5.git] / README
1                    Kerberos Version 5, Release 1.8
2
3                             Release Notes
4                         The MIT Kerberos Team
5
6 Copyright and Other Notices
7 ---------------------------
8
9 Copyright (C) 1985-2010 by the Massachusetts Institute of Technology
10 and its contributors.  All rights reserved.
11
12 Please see the file named NOTICE for additional notices.
13
14 MIT Kerberos is a project of the MIT Kerberos Consortium.  For more
15 information about the Kerberos Consortium, see http://kerberos.org/
16
17 For more information about the MIT Kerberos software, see
18     http://web.mit.edu/kerberos/
19
20 People interested in participating in the MIT Kerberos development
21 effort should see http://k5wiki.kerberos.org/
22
23 Building and Installing Kerberos 5
24 ----------------------------------
25
26 The first file you should look at is doc/install-guide.ps; it contains
27 the notes for building and installing Kerberos 5.  The info file
28 krb5-install.info has the same information in info file format.  You
29 can view this using the GNU emacs info-mode, or by using the
30 standalone info file viewer from the Free Software Foundation.  This
31 is also available as an HTML file, install.html.
32
33 Other good files to look at are admin-guide.ps and user-guide.ps,
34 which contain the system administrator's guide, and the user's guide,
35 respectively.  They are also available as info files
36 kerberos-admin.info and krb5-user.info, respectively.  These files are
37 also available as HTML files.
38
39 If you are attempting to build under Windows, please see the
40 src/windows/README file.
41
42 Reporting Bugs
43 --------------
44
45 Please report any problems/bugs/comments using the krb5-send-pr
46 program.  The krb5-send-pr program will be installed in the sbin
47 directory once you have successfully compiled and installed Kerberos
48 V5 (or if you have installed one of our binary distributions).
49
50 If you are not able to use krb5-send-pr because you haven't been able
51 compile and install Kerberos V5 on any platform, you may send mail to
52 krb5-bugs@mit.edu.
53
54 Please keep in mind that unencrypted e-mail is not secure. If you need
55 to report a security vulnerability, or send sensitive information,
56 please PGP-encrypt it to krbcore-security@mit.edu.
57
58 You may view bug reports by visiting
59
60     http://krbdev.mit.edu/rt/
61
62 and logging in as "guest" with password "guest".
63
64 DES transition
65 --------------
66
67 The krb5-1.8 release disables single-DES cryptosystems by default.  As
68 a result, you may need to add the libdefaults setting
69 "allow_weak_crypto = true" to communicate with existing Kerberos
70 infrastructures if they do not support stronger ciphers.
71
72 The Data Encryption Standard (DES) is widely recognized as weak.  The
73 krb5-1.7 release contains measures to encourage sites to migrate away
74 from using single-DES cryptosystems.  Among these is a configuration
75 variable that enables "weak" enctypes, which now defaults to "false"
76 beginning with krb5-1.8.  The krb5-1.8 release includes additional
77 measures to ease the transition away from single-DES.  These
78 additional measures include:
79
80 * enctype config enhancements (so you can do "DEFAULT +des", etc.)
81 * new API to allow applications (e.g. AFS) to explicitly reenable weak
82   crypto
83 * easier kadmin history key changes
84
85 Major changes in 1.8.1
86 ----------------------
87
88 This is primarily a bugfix release.
89
90 * MITKRB5-SA-2010-002 CVE-2010-0628 denial of service in SPNEGO
91
92 * Support IPv6 in kpasswd client.
93
94 * Fix an authorization data type number assignment that conflicted
95   with an undocumented Microsoft usage.
96
97 krb5-1.8.1 changes by ticket ID
98 -------------------------------
99
100 6661    [RFE] properly support IPv6 in kpasswd
101 6668    Two problems in kadm5_get_principal mask handling
102 6674    memory leak in SPNEGO
103 6676    Ignore improperly encoded signedpath AD elements
104 6678    use of freed memory in gss_import_sec_context error path
105 6680    the "ticket_lifetime" setting isn't documented
106 6681    krb5_get_init_creds_password() can crash with NULL options and
107         expired keys
108 6683    kpasswd doesn't guess the client principal name correctly
109         without a ccache
110 6685    handle NT_SRV_INST in service principal referrals
111 6687    Change KRB5_AUTHDATA_SIGNTICKET from 142 to 512
112 6689    krb5_typed_data not castable to krb5_pa_data on 64-bit MacOSX
113 6690    MITKRB5-SA-2010-002 CVE-2010-0628 denial of service in SPNEGO
114 6693    Fix backwards flag output in krb5_init_creds_step()
115
116 Major changes in 1.8
117 --------------------
118
119 The krb5-1.8 release contains a large number of changes, featuring
120 improvements in the following broad areas:
121
122 * Code quality
123 * Developer experience
124 * Performance
125 * End-user experience
126 * Administrator experience
127 * Protocol evolution
128
129 Code quality:
130
131 * Move toward test-driven development -- new features have test code,
132   or at least written testing procedures.
133
134 * Remove applications to a separate distribution to simplify
135   independent maintenance.
136
137 * Increase conformance to coding style
138
139   + "The great reindent"
140
141   + Selective refactoring
142
143 Developer experience:
144
145 * Crypto modularity -- vendors can more easily substitute their own
146   crypto implementations, which might be hardware-accelerated or
147   validated to FIPS 140, for the builtin crypto implementation that
148   has historically shipped as part of MIT Kerberos.  Currently, only
149   an OpenSSL provider is included, but others are planned for the
150   future.
151
152 * Move toward improved KDB interface
153
154 * Improved API for verifying and interrogating authorization data
155
156 Performance:
157
158 * Investigate and remedy repeatedly-reported performance bottlenecks.
159
160 * Encryption performance -- new crypto API with opaque key structures,
161   to allow for optimizations such as caching of derived keys
162
163 End-user experience:
164
165 * Reduce DNS dependence by implementing an interface that allows
166   client library to track whether a KDC supports service principal
167   referrals.
168
169 Administrator experience:
170
171 * Disable DES by default -- this reduces security exposure from using
172   an increasingly insecure cipher.
173
174 * More versatile crypto configuration, to simplify migration away from
175   DES -- new configuration syntax to allow inclusion and exclusion of
176   specific algorithms relative to a default set.
177
178 * Account lockout for repeated login failures -- mitigates online
179   password guessing attacks, and helps with some enterprise regulatory
180   compliance.
181
182 * Bridge layer to allow Heimdal HDB modules to act as KDB backend
183   modules.  This provides a migration path from a Heimdal to an MIT
184   KDC.
185
186 Protocol evolution:
187
188 * FAST enhancements -- preauthentication framework enhancements to
189   allow a client to securely negotiate the use of FAST with a KDC of
190   unknown capabilities.
191
192 * Microsoft Services for User (S4U) compatibility: S4U2Self, also
193   known as "protocol transition", allows for service to ask a KDC for
194   a ticket to themselves on behalf of a client authenticated via a
195   different means; S4U2Proxy allows a service to ask a KDC for a
196   ticket to another service on behalf of a client.
197
198 * Anonymous PKINIT -- allows the use of public-key cryptography to
199   anonymously authenticate to a realm
200
201 * Support doing constrained delegation similar to Microsoft's
202   S4U2Proxy without the use of the Windows PAC.  This functionality
203   uses a protocol compatible with Heimdal.
204
205 krb5-1.8 changes by ticket ID
206 -----------------------------
207
208 5468    delete kadmin v1 support
209 6206    new API for storing extra per-principal data in ccache
210 6434    krb5_cc_resolve() will crash if a null name param is provided
211 6454    Make krb5_mkt_resolve error handling work
212 6510    Restore limited support for static linking
213 6539    Enctype list configuration enhancements
214 6546    KDB should use enctype of stashed master key
215 6547    Modify kadm5 initializers to accept krb5 contexts
216 6563    Implement s4u extensions
217 6564    s4u extensions integration broke test suite...
218 6565    HP-UX IA64 wrong endian
219 6572    Implement GSS naming extensions and authdata verification
220 6576    Implement new APIs to allow improved crypto performance
221 6577    Account lockout for repeated login failures
222 6578    Heimdal DB bridge plugin for KDC back end
223 6580    Constrained delegation without PAC support
224 6582    Memory leak in _kadm5_init_any introduced with ipropd
225 6583    Unbundle applications into separate repository
226 6586    libkrb5 support for non-blocking AS requests
227 6590    allow testing even if name->addr->name mapping doesn't work
228 6591    fix slow behavior on Mac OS X with link-local addresses
229 6592    handle negative enctypes better
230 6593    Remove dependency on /bin/csh in test suite
231 6595    FAST (preauth framework) negotiation
232 6597    Add GSS extensions to store credentials, generate random bits
233 6598    gss_init_sec_context potential segfault
234 6599    memory leak in krb5_rd_req_decrypt_tkt_part
235 6600    gss_inquire_context cannot handle no target name from mechanism
236 6601    gsssspi_set_cred_option cannot handle mech specific option
237 6603    issues with SPNEGO
238 6605    PKINIT client should validate SAN for TGS, not service principal
239 6606    allow testing when offline
240 6607    anonymous PKINIT
241 6616    Fix spelling and hyphen errors in man pages
242 6618    Support optional creation of PID files for krb5kdc and kadmind
243 6620    kdc_supported_enctypes does nothing; eradicate mentions thereof
244 6621    disable weak crypto by default
245 6622    kinit_fast fails if weak enctype is among client principal keys
246 6623    Always treat anonymous as preauth required
247 6624    automated tests for anonymous pkinit
248 6625    yarrow code does not initialize keyblock enctype and uses
249         unitialized value
250 6626    Restore interoperability with 1.6 addprinc -randkey
251 6627    Set enctype in crypto_tests to prevent memory leaks
252 6628    krb5int_dk_string_to_key fails to set enctype
253 6629    krb5int_derive_key results in cache with uninitialized values
254 6630    krb5int_pbkdf2_hmac_sha1 fails to set enctype on keyblock
255 6632    Simplify and fix FAST check for keyed checksum type
256 6634    Use keyed checksum type for DES FAST
257 6640    Make history key exempt from permitted_enctypes
258 6642    Add test program for decryption of overly short buffers
259 6643    Problem with krb5 libcom_err vs. system libcom_err
260 6644    Change basename of libkadm5 libraries to avoid Heimdal conflict
261 6645    Add krb5_allow_weak_crypto API
262 6648    define MIN() in lib/gssapi/krb5/prf.c
263 6649    Get rid of kdb_ext.h and allow out-of-tree KDB plugins
264 6651    Handle migration from pre-1.7 databases with master key
265         kvno != 1 (1.8 pullup)
266 6652    Make decryption of master key list more robust
267 6653    set_default_enctype_var should filter not reject weak enctypes
268 6654    Fix greet_server build
269 6655    Fix cross-realm handling of AD-SIGNEDPATH
270 6656    krb5int_fast_free_state segfaults if state is null
271 6657    enc_padata can include empty sequence
272 6658    Implement gss_set_neg_mechs
273 6659    Additional memory leaks in kdc
274 6660    Minimal support for updating history key
275 6662    MITKRB5-SA-2010-001 CVE-2010-0283 KDC denial of service
276 6663    update mkrel to deal with changed source layout
277 6665    Fix cipher state chaining in OpenSSL back end
278 6669    doc updates for allow_weak_crypto
279
280 Acknowledgements
281 ----------------
282
283 Past and present Sponsors of the MIT Kerberos Consortium:
284
285     Apple
286     Carnegie Mellon University
287     Centrify Corporation
288     Columbia University
289     Cornell University
290     The Department of Defense of the United States of America (DoD)
291     Google
292     Iowa State University
293     MIT
294     Michigan State University
295     Microsoft
296     The National Aeronautics and Space Administration
297         of the United States of America (NASA)
298     Nippon Telephone and Telegraph (NTT)
299     Oracle
300     Pennsylvania State University
301     Red Hat
302     Stanford University
303     TeamF1, Inc.
304     The University of Alaska
305     The University of Michigan
306
307 Past and present members of the Kerberos Team at MIT:
308
309     Danilo Almeida
310     Jeffrey Altman
311     Justin Anderson
312     Richard Basch
313     Mitch Berger
314     Jay Berkenbilt
315     Andrew Boardman
316     Bill Bryant
317     Steve Buckley
318     Joe Calzaretta
319     John Carr
320     Mark Colan
321     Don Davis
322     Alexandra Ellwood
323     Dan Geer
324     Nancy Gilman
325     Matt Hancher
326     Thomas Hardjono
327     Sam Hartman
328     Paul Hill
329     Marc Horowitz
330     Eva Jacobus
331     Miroslav Jurisic
332     Barry Jaspan
333     Geoffrey King
334     Kevin Koch
335     John Kohl
336     HaoQi Li
337     Peter Litwack
338     Scott McGuire
339     Steve Miller
340     Kevin Mitchell
341     Cliff Neuman
342     Paul Park
343     Ezra Peisach
344     Chris Provenzano
345     Ken Raeburn
346     Jon Rochlis
347     Jeff Schiller
348     Jen Selby
349     Robert Silk
350     Bill Sommerfeld
351     Jennifer Steiner
352     Ralph Swick
353     Brad Thompson
354     Harry Tsai
355     Zhanna Tsitkova
356     Ted Ts'o
357     Marshall Vale
358     Tom Yu
359
360 The following external contributors have provided code, patches, bug
361 reports, suggestions, and valuable resources:
362
363     Brandon Allbery
364     Russell Allbery
365     Michael B Allen
366     Derek Atkins
367     David Bantz
368     Alex Baule
369     Arlene Berry
370     Jeff Blaine
371     Radoslav Bodo
372     Emmanuel Bouillon
373     Michael Calmer
374     Ravi Channavajhala
375     Srinivas Cheruku
376     Howard Chu
377     Andrea Cirulli
378     Christopher D. Clausen
379     Kevin Coffman
380     Simon Cooper
381     Sylvain Cortes
382     Nalin Dahyabhai
383     Roland Dowdeswell
384     Jason Edgecombe
385     Mark Eichin
386     Shawn M. Emery
387     Douglas E. Engert
388     Peter Eriksson
389     Ronni Feldt
390     JC Ferguson
391     William Fiveash
392     Ákos Frohner
393     Marcus Granado
394     Scott Grizzard
395     Steve Grubb
396     Philip Guenther
397     Jakob Haufe
398     Jeff Hodges
399     Love Hörnquist Åstrand
400     Ken Hornstein
401     Henry B. Hotz
402     Luke Howard
403     Shumon Huque
404     Jeffrey Hutzelman
405     Wyllys Ingersoll
406     Holger Isenberg
407     Mikkel Kruse
408     Volker Lendecke
409     Ryan Lynch
410     Franklyn Mendez
411     Markus Moeller
412     Paul Moore
413     Edward Murrell
414     Nikos Nikoleris
415     Dmitri Pal
416     Javier Palacios
417     Ezra Peisach
418     W. Michael Petullo
419     Mark Phalan
420     Xu Qiang
421     Robert Relyea
422     Martin Rex
423     Guillaume Rousse
424     Tom Shaw
425     Peter Shoults
426     Simo Sorce
427     Michael Ströder
428     Bjørn Tore Sund
429     Rathor Vipin
430     Jorgen Wahlsten
431     Max (Weijun) Wang
432     John Washington
433     Marcus Watts
434     Simon Wilkinson
435     Nicolas Williams
436     Ross Wilper
437     Hanz van Zijst
438
439 The above is not an exhaustive list; many others have contributed in
440 various ways to the MIT Kerberos development effort over the years.
441 Other acknowledgments (for bug reports and patches) are in the
442 doc/CHANGES file.