README and patchlevel.h for krb5-1.8.3-beta1
[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.3
86 ----------------------
87
88 * Behavior Change:
89
90     GSS-API context expiration -- the gss_wrap and gss_unwrap
91     functions no longer check for ticket expiration.  Applications
92     wishing to enforce ticket lifetimes should check using the
93     gss_inquire_context function.  The previous behavior of checking
94     for ticket expiration produced results that were not expected by
95     application developers, and could lead to poor user experience.
96
97 * Fix an interoperability issue when the Microsoft HMAC-MD5 checksum
98   type was used with non-RC4 keys.
99
100 * Fix an interoperability issue with ephemeral Diffie-Hellman key
101   exchange in PKINIT that would happen for less than 1% of
102   transactions.
103
104 krb5-1.8.3 changes by ticket ID
105 -------------------------------
106
107 6345    no kdb5_util stash equivalent with LDAP database
108 6738    PKINIT DH exchange occasionally produces mismatch
109 6739    Behavior change: gssapi context expiration
110 6740    kadmin ktadd may display wrong name of default keytab
111 6744    only test t_locate_kdc if known-good DNS name is present
112 6745    Add correct error table when initializing gss-krb5
113 6750    krb5kdc doesn't parse the -P command-line option correctly
114 6751    Allow Microsoft HMAC-MD5 checksum types to use non-RC4 keys
115
116 Major changes in 1.8.2
117 ----------------------
118
119 This is primarily a bugfix release.
120
121 * Fix vulnerabilities:
122   ** CVE-2010-1320 KDC double free caused by ticket renewal
123      (MITKRB5-SA-2010-004)
124   ** CVE-2010-1321 GSS-API lib null pointer deref (MITKRB5-SA-2010-005)
125
126 * Allow numeric IPv6 addresses for configuring KDC locations.
127
128 krb5-1.8.2 changes by ticket ID
129 -------------------------------
130
131 6562    kinit not working if kdc is configured with numerical IPv6 address
132 6696    gss_accept_sec_context doesn't produce error tokens
133 6697    segfault caused by dlerror returning NULL
134 6698    kproplog displays incorrect iprop timestamps on 64-bit platforms
135 6702    CVE-2010-1320 KDC double free caused by ticket renewal
136         (MITKRB5-SA-2010-004)
137 6711    memory leak in process_tgs_req in r23724
138 6718    Make KADM5_FAIL_AUTH_COUNT_INCREMENT more robust with LDAP
139 6722    Error handling bug in krb5_init_creds_init()
140 6725    CVE-2010-1321 GSS-API lib null pointer deref (MITKRB5-SA-2010-005)
141 6726    SPNEGO doesn't interoperate with Windows 2000
142 6730    kdc_tcp_ports not documented in kdc.conf.M
143 6734    FAST negotiation could erroneously succeed
144
145 Major changes in 1.8.1
146 ----------------------
147
148 This is primarily a bugfix release.
149
150 * MITKRB5-SA-2010-002 CVE-2010-0628 denial of service in SPNEGO
151
152 * Support IPv6 in kpasswd client.
153
154 * Fix an authorization data type number assignment that conflicted
155   with an undocumented Microsoft usage.
156
157 krb5-1.8.1 changes by ticket ID
158 -------------------------------
159
160 6661    [RFE] properly support IPv6 in kpasswd
161 6668    Two problems in kadm5_get_principal mask handling
162 6674    memory leak in SPNEGO
163 6676    Ignore improperly encoded signedpath AD elements
164 6678    use of freed memory in gss_import_sec_context error path
165 6680    the "ticket_lifetime" setting isn't documented
166 6681    krb5_get_init_creds_password() can crash with NULL options and
167         expired keys
168 6683    kpasswd doesn't guess the client principal name correctly
169         without a ccache
170 6685    handle NT_SRV_INST in service principal referrals
171 6687    Change KRB5_AUTHDATA_SIGNTICKET from 142 to 512
172 6689    krb5_typed_data not castable to krb5_pa_data on 64-bit MacOSX
173 6690    MITKRB5-SA-2010-002 CVE-2010-0628 denial of service in SPNEGO
174 6693    Fix backwards flag output in krb5_init_creds_step()
175
176 Major changes in 1.8
177 --------------------
178
179 The krb5-1.8 release contains a large number of changes, featuring
180 improvements in the following broad areas:
181
182 * Code quality
183 * Developer experience
184 * Performance
185 * End-user experience
186 * Administrator experience
187 * Protocol evolution
188
189 Code quality:
190
191 * Move toward test-driven development -- new features have test code,
192   or at least written testing procedures.
193
194 * Remove applications to a separate distribution to simplify
195   independent maintenance.
196
197 * Increase conformance to coding style
198
199   + "The great reindent"
200
201   + Selective refactoring
202
203 Developer experience:
204
205 * Crypto modularity -- vendors can more easily substitute their own
206   crypto implementations, which might be hardware-accelerated or
207   validated to FIPS 140, for the builtin crypto implementation that
208   has historically shipped as part of MIT Kerberos.  Currently, only
209   an OpenSSL provider is included, but others are planned for the
210   future.
211
212 * Move toward improved KDB interface
213
214 * Improved API for verifying and interrogating authorization data
215
216 Performance:
217
218 * Investigate and remedy repeatedly-reported performance bottlenecks.
219
220 * Encryption performance -- new crypto API with opaque key structures,
221   to allow for optimizations such as caching of derived keys
222
223 End-user experience:
224
225 * Reduce DNS dependence by implementing an interface that allows
226   client library to track whether a KDC supports service principal
227   referrals.
228
229 Administrator experience:
230
231 * Disable DES by default -- this reduces security exposure from using
232   an increasingly insecure cipher.
233
234 * More versatile crypto configuration, to simplify migration away from
235   DES -- new configuration syntax to allow inclusion and exclusion of
236   specific algorithms relative to a default set.
237
238 * Account lockout for repeated login failures -- mitigates online
239   password guessing attacks, and helps with some enterprise regulatory
240   compliance.
241
242 * Bridge layer to allow Heimdal HDB modules to act as KDB backend
243   modules.  This provides a migration path from a Heimdal to an MIT
244   KDC.
245
246 Protocol evolution:
247
248 * FAST enhancements -- preauthentication framework enhancements to
249   allow a client to securely negotiate the use of FAST with a KDC of
250   unknown capabilities.
251
252 * Microsoft Services for User (S4U) compatibility: S4U2Self, also
253   known as "protocol transition", allows for service to ask a KDC for
254   a ticket to themselves on behalf of a client authenticated via a
255   different means; S4U2Proxy allows a service to ask a KDC for a
256   ticket to another service on behalf of a client.
257
258 * Anonymous PKINIT -- allows the use of public-key cryptography to
259   anonymously authenticate to a realm
260
261 * Support doing constrained delegation similar to Microsoft's
262   S4U2Proxy without the use of the Windows PAC.  This functionality
263   uses a protocol compatible with Heimdal.
264
265 krb5-1.8 changes by ticket ID
266 -----------------------------
267
268 5468    delete kadmin v1 support
269 6206    new API for storing extra per-principal data in ccache
270 6434    krb5_cc_resolve() will crash if a null name param is provided
271 6454    Make krb5_mkt_resolve error handling work
272 6510    Restore limited support for static linking
273 6539    Enctype list configuration enhancements
274 6546    KDB should use enctype of stashed master key
275 6547    Modify kadm5 initializers to accept krb5 contexts
276 6563    Implement s4u extensions
277 6564    s4u extensions integration broke test suite...
278 6565    HP-UX IA64 wrong endian
279 6572    Implement GSS naming extensions and authdata verification
280 6576    Implement new APIs to allow improved crypto performance
281 6577    Account lockout for repeated login failures
282 6578    Heimdal DB bridge plugin for KDC back end
283 6580    Constrained delegation without PAC support
284 6582    Memory leak in _kadm5_init_any introduced with ipropd
285 6583    Unbundle applications into separate repository
286 6586    libkrb5 support for non-blocking AS requests
287 6590    allow testing even if name->addr->name mapping doesn't work
288 6591    fix slow behavior on Mac OS X with link-local addresses
289 6592    handle negative enctypes better
290 6593    Remove dependency on /bin/csh in test suite
291 6595    FAST (preauth framework) negotiation
292 6597    Add GSS extensions to store credentials, generate random bits
293 6598    gss_init_sec_context potential segfault
294 6599    memory leak in krb5_rd_req_decrypt_tkt_part
295 6600    gss_inquire_context cannot handle no target name from mechanism
296 6601    gsssspi_set_cred_option cannot handle mech specific option
297 6603    issues with SPNEGO
298 6605    PKINIT client should validate SAN for TGS, not service principal
299 6606    allow testing when offline
300 6607    anonymous PKINIT
301 6616    Fix spelling and hyphen errors in man pages
302 6618    Support optional creation of PID files for krb5kdc and kadmind
303 6620    kdc_supported_enctypes does nothing; eradicate mentions thereof
304 6621    disable weak crypto by default
305 6622    kinit_fast fails if weak enctype is among client principal keys
306 6623    Always treat anonymous as preauth required
307 6624    automated tests for anonymous pkinit
308 6625    yarrow code does not initialize keyblock enctype and uses
309         unitialized value
310 6626    Restore interoperability with 1.6 addprinc -randkey
311 6627    Set enctype in crypto_tests to prevent memory leaks
312 6628    krb5int_dk_string_to_key fails to set enctype
313 6629    krb5int_derive_key results in cache with uninitialized values
314 6630    krb5int_pbkdf2_hmac_sha1 fails to set enctype on keyblock
315 6632    Simplify and fix FAST check for keyed checksum type
316 6634    Use keyed checksum type for DES FAST
317 6640    Make history key exempt from permitted_enctypes
318 6642    Add test program for decryption of overly short buffers
319 6643    Problem with krb5 libcom_err vs. system libcom_err
320 6644    Change basename of libkadm5 libraries to avoid Heimdal conflict
321 6645    Add krb5_allow_weak_crypto API
322 6648    define MIN() in lib/gssapi/krb5/prf.c
323 6649    Get rid of kdb_ext.h and allow out-of-tree KDB plugins
324 6651    Handle migration from pre-1.7 databases with master key
325         kvno != 1 (1.8 pullup)
326 6652    Make decryption of master key list more robust
327 6653    set_default_enctype_var should filter not reject weak enctypes
328 6654    Fix greet_server build
329 6655    Fix cross-realm handling of AD-SIGNEDPATH
330 6656    krb5int_fast_free_state segfaults if state is null
331 6657    enc_padata can include empty sequence
332 6658    Implement gss_set_neg_mechs
333 6659    Additional memory leaks in kdc
334 6660    Minimal support for updating history key
335 6662    MITKRB5-SA-2010-001 CVE-2010-0283 KDC denial of service
336 6663    update mkrel to deal with changed source layout
337 6665    Fix cipher state chaining in OpenSSL back end
338 6669    doc updates for allow_weak_crypto
339
340 Acknowledgements
341 ----------------
342
343 Past and present Sponsors of the MIT Kerberos Consortium:
344
345     Apple
346     Carnegie Mellon University
347     Centrify Corporation
348     Columbia University
349     Cornell University
350     The Department of Defense of the United States of America (DoD)
351     Google
352     Iowa State University
353     MIT
354     Michigan State University
355     Microsoft
356     The National Aeronautics and Space Administration
357         of the United States of America (NASA)
358     Network Appliance (NetApp)
359     Nippon Telephone and Telegraph (NTT)
360     Oracle
361     Pennsylvania State University
362     Red Hat
363     Stanford University
364     TeamF1, Inc.
365     The University of Alaska
366     The University of Michigan
367     The University of Pennsylvania
368
369 Past and present members of the Kerberos Team at MIT:
370
371     Danilo Almeida
372     Jeffrey Altman
373     Justin Anderson
374     Richard Basch
375     Mitch Berger
376     Jay Berkenbilt
377     Andrew Boardman
378     Bill Bryant
379     Steve Buckley
380     Joe Calzaretta
381     John Carr
382     Mark Colan
383     Don Davis
384     Alexandra Ellwood
385     Dan Geer
386     Nancy Gilman
387     Matt Hancher
388     Thomas Hardjono
389     Sam Hartman
390     Paul Hill
391     Marc Horowitz
392     Eva Jacobus
393     Miroslav Jurisic
394     Barry Jaspan
395     Geoffrey King
396     Kevin Koch
397     John Kohl
398     HaoQi Li
399     Peter Litwack
400     Scott McGuire
401     Steve Miller
402     Kevin Mitchell
403     Cliff Neuman
404     Paul Park
405     Ezra Peisach
406     Chris Provenzano
407     Ken Raeburn
408     Jon Rochlis
409     Jeff Schiller
410     Jen Selby
411     Robert Silk
412     Bill Sommerfeld
413     Jennifer Steiner
414     Ralph Swick
415     Brad Thompson
416     Harry Tsai
417     Zhanna Tsitkova
418     Ted Ts'o
419     Marshall Vale
420     Tom Yu
421
422 The following external contributors have provided code, patches, bug
423 reports, suggestions, and valuable resources:
424
425     Brandon Allbery
426     Russell Allbery
427     Brian Almeida
428     Michael B Allen
429     Derek Atkins
430     David Bantz
431     Alex Baule
432     Arlene Berry
433     Jeff Blaine
434     Radoslav Bodo
435     Emmanuel Bouillon
436     Michael Calmer
437     Ravi Channavajhala
438     Srinivas Cheruku
439     Leonardo Chiquitto
440     Howard Chu
441     Andrea Cirulli
442     Christopher D. Clausen
443     Kevin Coffman
444     Simon Cooper
445     Sylvain Cortes
446     Nalin Dahyabhai
447     Roland Dowdeswell
448     Jason Edgecombe
449     Mark Eichin
450     Shawn M. Emery
451     Douglas E. Engert
452     Peter Eriksson
453     Ronni Feldt
454     JC Ferguson
455     William Fiveash
456     Ákos Frohner
457     Marcus Granado
458     Scott Grizzard
459     Steve Grubb
460     Philip Guenther
461     Jakob Haufe
462     Jeff Hodges
463     Love Hörnquist Åstrand
464     Ken Hornstein
465     Henry B. Hotz
466     Luke Howard
467     Jakub Hrozek
468     Shumon Huque
469     Jeffrey Hutzelman
470     Wyllys Ingersoll
471     Holger Isenberg
472     Joel Johnson
473     Mikkel Kruse
474     Volker Lendecke
475     Jan iankko Lieskovsky
476     Ryan Lynch
477     Franklyn Mendez
478     Markus Moeller
479     Paul Moore
480     Zbysek Mraz
481     Edward Murrell
482     Nikos Nikoleris
483     Dmitri Pal
484     Javier Palacios
485     Ezra Peisach
486     W. Michael Petullo
487     Mark Phalan
488     Robert Relyea
489     Martin Rex
490     Jason Rogers
491     Guillaume Rousse
492     Tom Shaw
493     Peter Shoults
494     Simo Sorce
495     Michael Ströder
496     Bjørn Tore Sund
497     Rathor Vipin
498     Jorgen Wahlsten
499     Max (Weijun) Wang
500     John Washington
501     Marcus Watts
502     Simon Wilkinson
503     Nicolas Williams
504     Ross Wilper
505     Xu Qiang
506     Hanz van Zijst
507
508 The above is not an exhaustive list; many others have contributed in
509 various ways to the MIT Kerberos development effort over the years.
510 Other acknowledgments (for bug reports and patches) are in the
511 doc/CHANGES file.