relnotes.txt
上传用户:lyxiangda
上传日期:2007-01-12
资源大小:3042k
文件大小:10k
- HCL Users,
- HCL 1.5.7 has been released. It fixes a very small list of bugs that
- were found since HCL 1.5.6 was released, and contains no new features or
- public API changes. The list of bugs fixed in HCL 1.5.7 is below.
- The release notes for HCL 1.5.6 are appended to these notes.
- ALL SERVERS should abandon HCL 1.5.6 and switch to HCL 1.5.7 ASAP.
- The reasons for this strong recommendation should be self apparent after
- reading the list of bugs fixed.
- We recommend that all sources that include HCL headers be recompiled
- with the new HCL 1.5.7 headers. This is only a precaution.
- Security Library 1.57
- Build Date: 19980902
- ****************************************************************
- **
- ** NOTE: THIS RELEASE IS NOT BINARY COMPATIBLE WITH 1.55
- ** AND ANY APPLICATION CODE WILL HAVE TO BE RECOMPILED
- **
- ****************************************************************
- ****************************************************************
- **
- ** Directory organization of this release
- **
- ****************************************************************
- This release consists of the following:
- - a JAR file, xpheader.jar, that contains all of the public header files.
- - <platform> directories: where <platform> is of the form
- <os-name><os-version>[_<compiler>][_<implementation strategy>]_<DBG/OPT>.OBJ
- For example,
- IRIX6.2_DBG.OBJ (debug build)
- SunOS5.5.1_OPT.OBJ (optimized build)
- SunOS5.5.1_gcc_DBG.OBJ (built using the non-native compiler gcc)
- OSF1V4.0_PTH_DBG.OBJ (PTH means the implementation uses pthreads.)
- AIX4.1_PTH_USER_DBG.OBJ (PTH_USER means the implementation is
- a combination of user-level threads and pthreads.)
- Under each <platform> directory, is the file, mdbinary.jar. This is a
- JAR file containing the compiled libraries.
- ************************************************************
- **
- ** Platforms supported
- **
- ************************************************************
- The following platforms are supported:
- - Solaris on sparc: 2.5.1, 2.6 (built with cc)
- - IRIX: 6.2, 6.3 (built with cc)
- - HP-UX: B.10.10, B10.20, B11.00 (built with cc)
- - OSF1: V4.0D (built with cc)
- - AIX: 4.2 (built with compiler xlC_r).
- - Linux: 2.1.108
- - WINNT: 4.0 (Visual C++ 4.2 built with and without debug runtime)
- ************************************************************
- **
- ** How to build the libraries yourself
- **
- ************************************************************
- This release of HCL depends on NSPR version 19980529A and
- DBM version DBM_1_53.
- To build the libraries yourself, execute the following instructions.
- On UNIX machines:
- cvs co -r HCL_157 ns/security
- cvs co -r HCL_157 ns/coreconf
- cd ns/coreconf
- source ./.cshrc
- gmake [BUILD_OPT=1]
- cd ..
- cd security
- gmake [BUILD_OPT=1] import
- gmake [BUILD_OPT=1]
- On Windows NT machines:
- cvs co -r HCL_157 ns/security
- cvs co -r HCL_157 ns/coreconf
- cd ns/security
- gmake [BUILD_OPT=1] import
- gmake [BUILD_OPT=1]
- For IRIX builds using -n32 flag with pthreads:
- cvs co -r HCL_157 ns/security
- cvs co -r HCL_157 ns/coreconf
- cd ns/coreconf
- source ./.cshrc
- gmake USE_N32=1 USE_PTHREADS=1 [BUILD_OPT=1]
- cd ..
- cd security
- gmake USE_N32=1 USE_PTHREADS=1 [BUILD_OPT=1] import
- gmake USE_N32=1 USE_PTHREADS=1 [BUILD_OPT=1]
-
- ************************************************************
- **
- ** Web site, mailing lists, questions, bug reports
- **
- ************************************************************
- You can find information about the Security Libraries at the Hardcore Web
- site: http://warp/projects/hardcore/
- If you have any questions regarding SSL or the HCL libraries, please refer to the
- following documents:
- http://twain.mcom.com/developer/security/nss/ssl/index.htm
- http://twain.mcom.com/developer/security/nss/index.htm
- There is a mailing list for HCL issues:
- - hcl: the developers of HCL.
- Please use BugSplat on scopus (http://scopus/bugsplat) to report
- bugs. Choose product "Security Library", version "1.5".
- Here's how/where to get HCL 1.5.7:
- bits are available at
- /m/dist/security/19980902 a.k.a. /m/dist/security/HCL_1_57
- \heliumdistsecurity19980902 or \heliumdistsecurityHCL_1_57
- Here is the list of bugs fixed in HCL 1.5.7:
- a) Thread safety-related crash in cert lib.
- b) Thread safety-related problems in NSPR's PL_Arena code.
- Worked around by surrounding all HCL's PL_Arena calls with a lock/unlock.
- Applications that make their own calls to NSPR's PL_Arena functions or
- that use other non-HCL libraries that use PL_Arenas may continue to have
- thread-safety issues with PL_Arenas.
- c) Fixed a regression in PKCS#11 in HCL 1.5.6 that caused a crash the
- first time a server received a bleichenbacker attack ("million question")
- message.
- See the HCL 1.5.6 release notes below for the list of known bugs in 1.5.7.
- Here is a list of the bugs fixed in HCL 1.5.6:
- 312467 SSL3 uses global pointers for step-down keys, leaks keys
- 314392 CERT_DestroyCertificate locking code causes nested locking
- 314571 Memory leak in SSL
- 314574 HCL Leaks in PKCS #11.
- 314576 Memory leak in pseudo-prime test in libcrypto
- 314585 SSL's PR_AcceptRead returns non-aligned PRNetAddr
- 314592 pkcs5 leaks two memory blocks for each RSA private key op
- 314596 random number generator causes Unitialized Memory Reads
- ------------------------------------------------------------------------
- HCL 1.5.6 Readme (release notes)
- ------------------------------------------------------------------------
- This file summarizes enhancements, fixed and known bugs in HCL 1.5.6.
- For detailed instructions on setting up your environment to run the
- sample code in the samples directory, see Chapter 2, "Getting Started
- with SSL" (doc/ssl/gtstd.htm) of the SSL Reference (doc/ssl/index.htm).
- ENHANCEMENTS SINCE NSS 1.5.4
- 1. SSL returns much more detailed error messages; for details, see
- doc/ssl/sslerr.htm
- SSL BUGS FIXED SINCE HCL 1.5.4
- 1. The "million question" bug in SSL has been fixed.
- 2. A potential problem (on Unix only) with SSL_InitSessionIDCache has
- been fixed. The application chooses the directory into which the SSL
- library places the server session cache. If the application doesn't
- specify a directory explicitly, the code defaults to using the system
- default "temporary" directory, which is generally world-writable. The
- problem that was fixed occured only when the application chose to put
- the session cache files into a directory writable by untrusted users.
- If the application put the cache files in a directory that has
- appropriate limits on access, there was no problem. But if the
- application put the cache files into a directory that was world
- writable, it was possible for a rogue program to try to substitute a
- file it already had open for the server's cache file, and it would
- succeed some of the time. When it succeeded, it had access to the
- content of the session ID cache, which enabled it to do various bad
- things, such as masquerade as one of the remote clients whose session
- was in the cache.
- The above problem with the Unix version of SSL_InitSessionIDCachehas
- been fixed, and rogue programs cannot succeed in substituting their own
- files for the server's files any more.
- 3. Client no longer rejects SSL ServerKeyExchange when server's
- certificate key size is 512 bits.
- 4. Server no longer crashes in SSL after required client authentication
- fails.
- 5. A problem that was causing crashes when multiple threads
- simultaneously requested client authentication on their respective
- server sockets has been fixed.
- 6. The following functions now work with SSL sockets:
- PR_Write
- PR_TransmitFile
- PR_AcceptRead
- 7. SSL now accepts client hellos that are too long.
-
- 8. A problem that produced bad results when multiple threads
- simultaneously used the random number generator has been fixed.
- KNOWN BUGS IN HCL 1.5.6:
- 1. A crash may occur when multiple processes attempt to share a server
- session ID cache. Because of this bug, an application that handshakes
- as a server is limited to conducting all SSL calls in a single process.
- 2. Removing a token does not invalidate the client-side session cache.
- 3. While a handshake is in progress on an SSL socket, it is not safe
- for two threads to attempt simultaneous read and write calls (PR_Recv
- and PR_Send) on that socket. Workaround: ensure that only one thread
- uses an SSL socket at a time.
- We expect the above 3 bugs will be fixed in a forthcoming release.
- SSL v2 issues in HCL 1.5.x:
- 1. SSL_RedoHandshake only works on SSL3 connections, not SSL2. The
- SSL2 protocol does not permit additional handshakes on the connection
- after the first one is done. Ergo, if a client certificate is to be
- requested in an SSL2 connection, it must be requested on the initial
- handshake.
- 2. HCL's SSL2 ignores the setting of the SSL_REQUIRE_CERTIFICATE
- enable. When SSL_REQUEST_CERTIFICATE is enabled, SSL2 behaves as if
- SSL_REQUIRE_CERTIFICATE is also enabled, regardless of the actual
- setting of the SSL_REQUIRE_CERTIFICATE enable.
- 3. HCL's SSL2 server code doesn't call the bad cert handler callback
- when the authCert callback returns an error. The ssl2 client code DOES
- use the badcerthandler callback, but the ssl2 server code does not.
- This means that if the server's authCert callback returns SECFailure,
- rejecting the client cert received on an SSL2 connection, the
- badCerthandler cannot override it.
- 4. HCL's SSL2 server code never caches the client cert. Consequently,
- if an SSL2 server is configured to request the client cert, it must ask
- the client for the client cert on every connection, not just on the
- first connection in the "session". The SSL2 client must provide the
- cert in every SSL2 connection that requests it. If the user has set the
- "ask me every time" option for his certs, he will get prompted a LOT.
- Item 1 above is not a bug. That's the way ssl2 is defined. Items 2-4
- are limitations of our implementation. TomW says client auth in ssl2
- was never officially supported (although it is mostly implemented).
- Recommended workaround for SSL2 issues:
- a) Don't expect client auth to work for SSL2 users.
- b) Don't request client auth in the initial handshake. Request it in a
- subsequent handshake (e.g. set SSL_REQUEST_CERTIFICATE and call
- SSL_RedoHandshake() on SSL3 connections. This will completely avoid
- client auth problems with SSL2.
- For some time now, we've been suggesting that servers request client
- auth on a second handshake, not the first handshake in the connection.
- If they do that, then they will never get client certs from ssl2
- clients. That is a good thing.