[af29d6a] | 1 | ** Version 0.11.0 (UNRELEASED) |
---|
| 2 | |
---|
| 3 | - Change default for GnuTLSOCSPCheckNonce to "off", and send OCSP |
---|
| 4 | nonces only if it has been enabled. The reason for this change is |
---|
| 5 | that in practice most public CAs do not support OCSP nonces, which |
---|
| 6 | is permitted by both RFC 6960 and the CA/Browser Forum baseline |
---|
| 7 | requirements (as of version 1.6.9). In this situation enforcing |
---|
| 8 | correct nonces by default makes the automatic OCSP stapling support |
---|
| 9 | mostly useless. |
---|
| 10 | |
---|
| 11 | - Add a test for correct nonce handling with "GnuTLSOCSPCheckNonce |
---|
| 12 | on", thanks to Krista Karppinen for that and a rewrite of the OCSP |
---|
| 13 | responder script in Python! |
---|
| 14 | |
---|
| 15 | - Support session resumption using session tickets for proxy |
---|
| 16 | connections (TLS 1.3 connections only). |
---|
| 17 | |
---|
[9a26df9] | 18 | - Disable session tickets by default. The GnuTLS built-in key rotation |
---|
| 19 | for session tickets never actually changes the primary key, just |
---|
| 20 | derives keys from it, so it does not provide forward secrecy in case |
---|
| 21 | an attacker learns the primary key (by gaining access to server |
---|
| 22 | RAM). A reload of the server is enough to generate a new key, so |
---|
| 23 | consider enabling session tickets and reloading the server every few |
---|
| 24 | hours, at least until a forward-secret rotation can be implemented. |
---|
| 25 | |
---|
[af29d6a] | 26 | - Add ./configure option to disable building PDF documentation |
---|
| 27 | |
---|
[9a26df9] | 28 | - Deprecate SRP and disable it by default. |
---|
| 29 | |
---|
[6e41fcb] | 30 | ** Version 0.10.0 (2020-02-03) |
---|
[f042405] | 31 | |
---|
[6e41fcb] | 32 | - Added support for stapling multiple OCSP responses (TLS 1.3 |
---|
[f042405] | 33 | only). mod_gnutls will staple for as many consecutive certificates |
---|
| 34 | in the certificate chain as possible. |
---|
| 35 | |
---|
[6e41fcb] | 36 | - Added support for TLS 1.3 post-handshake authentication, used if TLS |
---|
[f042405] | 37 | client authentication is required only for some resources on the |
---|
[6e41fcb] | 38 | server. Rehandshake (for older TLS versions) is not supported, the |
---|
| 39 | existing but broken code has been removed. |
---|
[f042405] | 40 | |
---|
[cc748329] | 41 | - The test infrastructure has been mostly rewritten in Python, note |
---|
[6e41fcb] | 42 | the new dependencies (Python 3, Pyyaml). Tests can run multiple TLS |
---|
| 43 | connections and HTTP(S) requests as well as custom hooks now, see |
---|
| 44 | test/README.md for details. |
---|
[f042405] | 45 | |
---|
[cc748329] | 46 | - Server certificates are checked for the must-staple TLS feature |
---|
[38bf158] | 47 | extension, stapling must be enabled if it is present. |
---|
[f042405] | 48 | |
---|
[cc748329] | 49 | - Compatibility fix for GnuTLS 3.6.11 in the test suite: Handle |
---|
[6e41fcb] | 50 | peer certificate type in TLS session information strings. |
---|
| 51 | |
---|
| 52 | - The test system will automatically detect if it needs to load |
---|
| 53 | critical modules (e.g. mod_logio) that are built-in with the Debian |
---|
| 54 | packages. This makes the tests work on Fedora without modifications, |
---|
| 55 | and likely on similar distributions too. |
---|
[38bf158] | 56 | |
---|
| 57 | - Tests can optionally run with Valgrind for the primary HTTPD |
---|
| 58 | instance by running ./configure with --enable-valgrind-test, see |
---|
| 59 | test/README.md for details. |
---|
[cc748329] | 60 | |
---|
[4b1687d] | 61 | - Known issue: When using MSVA client certificate validation the |
---|
| 62 | Valgrind tests indicate memory leaks from libcurl, which is used by |
---|
| 63 | libmsv to send requests to the MSVA. For details see the bug report: |
---|
| 64 | https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=950359 |
---|
| 65 | |
---|
[d4c9331] | 66 | ** Version 0.9.1 (2019-11-29) |
---|
| 67 | - Fix possible segfault (NULL pointer dereference) on failed TLS |
---|
| 68 | handshake. Calling ssl_var_lookup() after a failed handshake could |
---|
| 69 | lead to GnuTLS session information functions being called on a NULL |
---|
| 70 | session pointer, leading to segfault. |
---|
| 71 | - Remove URLs from expected error responses in the test suite. Apache |
---|
| 72 | HTTPD removed request URLs from canned error messages to prevent |
---|
| 73 | misleading text/links being displayed via crafted links |
---|
| 74 | (CVE-2019-10092). Adjust the expected error responses in our tests |
---|
| 75 | so they can pass again. |
---|
| 76 | - Test suite: Ignore "Content-Length" header of responses. Thanks to |
---|
| 77 | Krista Karppinen! |
---|
| 78 | - Add a section about module dependencies on socache to the handbook |
---|
| 79 | - Restructure the manpage build and move it to section 5 (config |
---|
| 80 | files) |
---|
| 81 | - Test suite: Restructure certificate directories |
---|
| 82 | |
---|
[510764a] | 83 | ** Version 0.9.0 (2019-01-23) |
---|
[96e2ea8] | 84 | - Security fix: Refuse to send or receive any data over a failed TLS |
---|
[510764a] | 85 | connection (commit 72b669eae8c45dda1850e8e5b30a97c918357b51). The |
---|
| 86 | previous behavior could lead to requests on reverse proxy TLS |
---|
| 87 | connections being sent in plain text, and might have allowed faking |
---|
| 88 | requests in plain text. |
---|
[96e2ea8] | 89 | - Security fix: Reject HTTP requests if they try to access virtual |
---|
| 90 | hosts that do not match their TLS connections (commit |
---|
| 91 | de3fad3c12f53cdbf082ad675e4b10f521a02811). Additionally check if SNI |
---|
[510764a] | 92 | and Host header match. Thanks to Krista Karppinen for contributing |
---|
| 93 | tests! |
---|
[96e2ea8] | 94 | - OCSP stapling is now enabled by default, if possible. OCSP responses |
---|
| 95 | are updated regularly and stored in a cache separate from the |
---|
| 96 | session cache. The OCSP cache uses mod_socache_shmcb by default |
---|
| 97 | (if the module is loaded, no other configuration required). |
---|
| 98 | - Session tickets are now enabled by default if using GnuTLS 3.6.4 or |
---|
| 99 | newer. GnuTLS 3.6.4 introduced automatic rotation for the used key, |
---|
| 100 | and TLS 1.3 takes care of other reasons not to use tickets while |
---|
| 101 | requiring them for session resumption. Note that there is currently |
---|
| 102 | no mechanism to synchronize ticket keys across a cluster of servers. |
---|
| 103 | - The internal cache implementation has been replaced with |
---|
| 104 | mod_socache. Users may need to update their GnuTLSCache settings and |
---|
| 105 | load the appropriate socache modules. |
---|
[0bed0a0] | 106 | - ALPN (required for HTTP/2) now works correctly with different |
---|
| 107 | "Protocols" directives between virtual hosts if building with GnuTLS |
---|
| 108 | 3.6.3 or newer. Older versions require identical "Protocols" |
---|
| 109 | directives for overlapping virtual hosts. Thanks to Vincent Tamet |
---|
| 110 | for the bug report! |
---|
[a900948] | 111 | - ALPN is now supported for proxy connections, making HTTP/2 proxy |
---|
| 112 | connections using mod_proxy_http2 possible. |
---|
[96e2ea8] | 113 | - GnuTLSPriorities is optional now and defaults to "NORMAL" if |
---|
| 114 | missing. The same applies to GnuTLSProxyPriorities (if TLS proxy is |
---|
| 115 | enabled). |
---|
| 116 | - The manual is now built as a manual page, too, if pandoc is |
---|
| 117 | available. |
---|
| 118 | - OpenPGP support has been removed. |
---|
[39a27cf] | 119 | - Don't require pem2openpgp for tests when building without MSVA |
---|
| 120 | support. |
---|
[96e2ea8] | 121 | |
---|
[e00a037] | 122 | ** Version 0.8.4 (2018-04-13) |
---|
[3c123cd] | 123 | - Support Apache HTTPD 2.4.33 API for proxy TLS connections |
---|
| 124 | - Support TLS for HTTP/2 connections with mod_http2 |
---|
| 125 | - Fix configuration of OCSP stapling callback |
---|
| 126 | |
---|
[2a912c3] | 127 | ** Version 0.8.3 (2017-10-20) |
---|
[2ae1c3c] | 128 | - Use GnuTLS' default DH parameters by default |
---|
| 129 | - Handle long Server Name Indication data and gracefully ignore |
---|
| 130 | unknown SNI types |
---|
[2a912c3] | 131 | - Send SNI for proxy connections |
---|
[2ae1c3c] | 132 | - Deprecate OpenPGP support like GnuTLS did (will be removed |
---|
| 133 | completely in a future release) |
---|
[2a912c3] | 134 | - Do not announce session ticket support for proxy connections |
---|
| 135 | - Minor documentation updates (SSL_CLIENT_I_DN, reference for SNI) |
---|
| 136 | - Test suite: Simplify handling of proxy backend servers and OCSP |
---|
| 137 | responders |
---|
[2ae1c3c] | 138 | - Test suite: stability/compatibility fixes |
---|
| 139 | |
---|
[0202d6b] | 140 | ** Version 0.8.2 (2017-01-08) |
---|
| 141 | - Test suite: Ensure CRLF line ends in HTTP headers |
---|
| 142 | - Test suite, gen_ocsp_index.c: Handle serial as fixed order byte array |
---|
| 143 | |
---|
[154db29] | 144 | ** Version 0.8.1 (2016-12-20) |
---|
| 145 | - Bugfix: Use APR_SIZE_T_FMT for portable apr_size_t formatting |
---|
| 146 | |
---|
[677754f] | 147 | ** Version 0.8.0 (2016-12-11) |
---|
[4bc17ae] | 148 | - New: Support for OCSP stapling |
---|
| 149 | - Bugfix: Access to DBM cache is locked using global mutex |
---|
| 150 | "gnutls-cache" |
---|
| 151 | - Bugfix: GnuTLSSessionTickets is now disabled by default as described |
---|
| 152 | in the handbook |
---|
| 153 | - Fixed memory leak while checking proxy backend certificate |
---|
| 154 | - Fixed memory leaks in post_config |
---|
| 155 | - Safely delete session ticket key (requires GnuTLS >= 3.4) |
---|
| 156 | - Improved error handling in post_config hook |
---|
| 157 | - Various handbook updates |
---|
[677754f] | 158 | - Internal API documentation can be generated using Doxygen |
---|
[4bc17ae] | 159 | - Unused code has been removed (conditionals for GnuTLS 2.x and Apache |
---|
| 160 | versions before 2.2, internal Lua bytecode structure last used in |
---|
| 161 | 2011). |
---|
| 162 | - Test suite: Fixed locking for access to the PGP keyring of the test |
---|
| 163 | certificate authority |
---|
| 164 | - mod_gnutls can be built using Clang (unsupported) |
---|
[460c048] | 165 | |
---|
[086cea9] | 166 | ** Version 0.7.5 (2016-05-28) |
---|
| 167 | - Sunil Mohan Adapa reported retry loops during session shutdown in |
---|
| 168 | cleanup_gnutls_session() due to gnutls_bye() incorrectly returning |
---|
| 169 | GNUTLS_E_INTERRUPTED or GNUTLS_E_AGAIN. Setting the GnuTLS session |
---|
| 170 | errno in mgs_transport_write() fixes the problem. |
---|
| 171 | - Import Daniel Kahn Gillmor's patches for GnuPG v2 support from the |
---|
| 172 | Debian package. |
---|
| 173 | - Build system improvements that allow VPATH builds and get "make |
---|
| 174 | distcheck" to work |
---|
| 175 | |
---|
[c6cfe6e] | 176 | ** Version 0.7.4 (2016-04-13) |
---|
| 177 | - Support SoftHSM 2 for PKCS #11 testing |
---|
| 178 | - Increase verbosity of test logs |
---|
| 179 | |
---|
[f0923c4] | 180 | ** Version 0.7.3 (2016-01-12) |
---|
| 181 | - Update test suite for compatibility with GnuTLS 3.4, which has |
---|
| 182 | stricter key usage checks and priorities than 3.3. |
---|
| 183 | - Write non-HTML output to mod_status reports if AP_STATUS_SHORT is |
---|
| 184 | set (mod_status sets it for requests with the "auto" parameter, e.g. |
---|
| 185 | https://localhost/server-status?auto). |
---|
| 186 | - Register "ssl_is_https" function so the special mod_rewrite variable |
---|
| 187 | %{HTTPS} works correctly with mod_gnutls. The new test case for this |
---|
| 188 | requires Wget or curl. Fixes Debian bug #514005. |
---|
| 189 | - Test suite servers listen on IPv4 *and* IPv6 loopback addresses by |
---|
| 190 | default (other addresses configurable), which should fix failures |
---|
| 191 | due to localhost randomly resolving to either on some distributions. |
---|
| 192 | - Isolate tests using network namespaces, if possible. This avoids |
---|
| 193 | port conflicts with other test cases (so they can run in parallel) |
---|
| 194 | and host services. |
---|
| 195 | - Support for local Apache drop-in config files in the test suite |
---|
| 196 | (e.g. to load additional modules needed on Fedora). |
---|
| 197 | - Try to use markdown to build HTML documentation if pandoc is not |
---|
| 198 | available. |
---|
| 199 | - Disable use of flock if it is unavailable or does not support |
---|
| 200 | timeouts (the latter caused the build to fail on Debian Hurd). |
---|
| 201 | - New test: Disable TLS 1.0 (regression test for Debian bug #754960). |
---|
| 202 | |
---|
[07cc51f] | 203 | ** Version 0.7.2 (2015-11-21) |
---|
| 204 | - Bugfix: Non-blocking reads in the input filter could lead to a busy |
---|
| 205 | wait in the gnutls_io_input_read function, causing high load on |
---|
| 206 | Keep-Alive connections waiting for data, until either more data |
---|
| 207 | could be received or the connection was closed. The fix is to pass |
---|
| 208 | EAGAIN/EINTR results up to the input filter so they can be handled |
---|
| 209 | properly. |
---|
| 210 | - Close TLS session if the input filter receives EOF (mostly relevant |
---|
| 211 | for proper termination of proxy connections). |
---|
| 212 | - Remove dependency on APR Memcache, which is replaced by the newer |
---|
| 213 | version included in the APR Utility Library (libaprutil). |
---|
| 214 | - Remove dependency on bc. It was used for floating point arithmetic |
---|
| 215 | in the test suite, the calculations have been changed to use |
---|
| 216 | integers and pure bash code. |
---|
| 217 | |
---|
[71cac80] | 218 | ** Version 0.7.1 (2015-10-18) |
---|
| 219 | - Improved handling of PKCS #11 modules: mod_gnutls now loads either |
---|
| 220 | modules specified using GnuTLSP11Module, or the system defaults, but |
---|
| 221 | not both. Thanks to Nikos Mavrogiannopoulos for the report and |
---|
| 222 | initial patch! |
---|
| 223 | - Initialize variables to safe defaults during client certificate |
---|
| 224 | verification. Certain error code paths did not set them, but they |
---|
| 225 | should never be hit due to config validation. This adds another line |
---|
| 226 | of defense. |
---|
| 227 | - Enable C99 support via autoconf |
---|
| 228 | - Test suite improvements. Most importantly, automake now handles |
---|
| 229 | environment setup without any external make calls. Rules to build |
---|
| 230 | the certificates are included from the old test makefile. Note that |
---|
| 231 | the dependency on GNU make is not new (the test makefile always used |
---|
| 232 | GNU make syntax), it just wasn't listed explicitly. |
---|
| 233 | |
---|
[ff46fc2] | 234 | ** Version 0.7 (2015-07-12) |
---|
[90d8480] | 235 | - Security fix for TLS client authentication (CVE-2015-2091) |
---|
[94a7c7a] | 236 | - Bug fixes that enable support for reverse proxy operation |
---|
[90d8480] | 237 | - Various test suite improvements. Tests are configured through autoconf, |
---|
| 238 | so the test suite now works for builds without Monkeysphere support. |
---|
| 239 | - Add support for TLS connections to back end servers when operating as a |
---|
| 240 | reverse proxy (X.509 authentication only at the moment). |
---|
| 241 | - PKCS #11 support for server keys and certificates |
---|
[94a7c7a] | 242 | - Use strict compiler arguments by default (-Wall -Werror -Wextra) |
---|
| 243 | - Allow limiting the size of certificates exported as SSL_SERVER_CERT |
---|
| 244 | and SSL_CLIENT_CERT through the GnuTLSExportCertificates directive |
---|
[90d8480] | 245 | |
---|
[460c048] | 246 | ** Version 0.6 (2014-02-17) |
---|
| 247 | - Generating DH Params instead of using static ones. |
---|
| 248 | - Now considering ServerAlias Directives. |
---|
| 249 | - Major Legacy Code Cleanup. |
---|
| 250 | - html and pdf and manual documentation generated from markdown sources |
---|
| 251 | - support monkeysphere validation agent (MSVA) client-certificate verification |
---|
| 252 | - wider test suite |
---|
| 253 | - GnuTLSExportCertificates off by default |
---|
[9ee7549] | 254 | |
---|
| 255 | ** Version 0.5.10 (2011-07-12) |
---|
[460c048] | 256 | - Patched a bug responsible for excessive memory consumption by mod_gnutls. |
---|
| 257 | - Support for proxying from SSL to plain HTTP was added (ie. proxy termination). |
---|
[9ee7549] | 258 | |
---|
| 259 | ** Version 0.5.9 (2010-09-24) |
---|
| 260 | - GnuTLSCache none is now an allowed option. |
---|
| 261 | - Corrected behavior in Keep-Alive connections (do not |
---|
| 262 | terminate the connection prematurely) |
---|
| 263 | - The GnuTLSCache variable now can be given the specific |
---|
| 264 | option "gdbm" instead of "dbm". "dbm" will use the berkeley |
---|
| 265 | db type of libapr while gdbm will force gdbm to be used. |
---|
| 266 | sdbm is no longer being used due to serious limitations. |
---|
| 267 | |
---|
| 268 | ** Version 0.5.8 (2010-08-18) |
---|
| 269 | - Session tickets are enabled by default. |
---|
| 270 | - Fixes some segmentation faults noticed in some |
---|
| 271 | configurations. |
---|
| 272 | |
---|
| 273 | ** Version 0.5.7 (2010-07-01) |
---|
| 274 | - Force usage of SDBM. For some reason the default in |
---|
| 275 | my system had issues after reaching a limit of entries. |
---|
| 276 | SDBM seems stable so force it. |
---|
| 277 | - Optimizations in session caching. |
---|
| 278 | - Added support for session tickets. This allows a |
---|
| 279 | server to avoid using a session cache and still support |
---|
| 280 | session resumption. This is at the cost of transporting |
---|
| 281 | session data during handshake. New option |
---|
| 282 | GnuTLSSessionTickets [on|off] |
---|
| 283 | - Depend on gnutls 2.10.0 to force support for safe |
---|
| 284 | renegotiation. |
---|
| 285 | |
---|
| 286 | ** Version 0.5.6 (2010-03-24) |
---|
| 287 | - Corrected issue with firefox and long POST data (by |
---|
| 288 | handling EINTR and EAGAIN errors in read). |
---|
| 289 | - Added support for chained client certificates |
---|
| 290 | - Corrected more issues related to double frees |
---|
| 291 | http://issues.outoforder.cc/view.php?id=102 |
---|
| 292 | |
---|
| 293 | ** Version 0.5.5 (2009-06-13) |
---|
| 294 | - Removed limits on CA certificate loading. Reported by |
---|
| 295 | Sander Marechal and Jack Bates. |
---|
| 296 | - Do not allow sending empty TLS packets even when instructed to. |
---|
| 297 | This had the side effect of clients closing connection. |
---|
| 298 | |
---|
| 299 | ** Version 0.5.4 (2009-01-04) |
---|
| 300 | - mod_gnutls.h: modified definition to extern to avoid compilation |
---|
| 301 | errors in darwin. |
---|
| 302 | - Added patch to fix issue with mod_proxy. Investigation and patch by Alain |
---|
| 303 | Knaff. |
---|
| 304 | - libgnutls detection uses pkg-config. |
---|
| 305 | |
---|
| 306 | ** Version 0.5.3 (2008-10-16) |
---|
| 307 | - Corrected bug to allow having an OpenPGP-only web site. |
---|
| 308 | - Increased Max handshake tries due to interrupted system calls. |
---|
| 309 | |
---|
| 310 | ** Version 0.5.2 (2008-06-29) |
---|
| 311 | - Depend on gnutls 2.4 which has openpgp support in main library. |
---|
| 312 | |
---|
| 313 | ** Version 0.5.1 (2008-03-05) |
---|
| 314 | - Added --disable-srp configure option |
---|
| 315 | - Better check for memcache (patch by Guillaume Rousse) |
---|
| 316 | - Corrected possible memory leak in DBM support for resuming sessions. |
---|
| 317 | |
---|
| 318 | ** Version 0.5.0-alpha (2008-01-24) |
---|
| 319 | - Added support for OpenPGP keys. The new directives are: |
---|
| 320 | GnuTLSPGPKeyringFile, GnuTLSPGPCertificateFile, GnuTLSPGPKeyFile |
---|
| 321 | |
---|
| 322 | ** Version 0.4.2 (2007-12-10) |
---|
| 323 | - Added support for sending a certificate chain. |
---|
| 324 | - Corrected bug which did not allow the TLS session cache to be used. |
---|
| 325 | - Do not allow resuming sessions on different servers. |
---|
| 326 | |
---|
| 327 | ** Version 0.4.1 (2007-12-03) |
---|
| 328 | - Added support for subject alternative names in certificates. |
---|
| 329 | Only one per certificate is supported. |
---|
[90d8480] | 330 | - New enviroment variables: SSL_CLIENT_M_VERSION, SSL_CLIENT_S_SAN%, |
---|
[9ee7549] | 331 | SSL_CLIENT_S_TYPE, SSL_SERVER_M_VERSION, SSL_SERVER_S_SAN%, SSL_SERVER_S_TYPE |
---|
| 332 | - The compatibility mode can now be enabled explicitely with the |
---|
| 333 | %COMPAT keyword at the GnuTLSPriorities string. It is no longer the default. |
---|
| 334 | - Check for GnuTLSPriorities directive. This corrects a segfault. Thanks |
---|
| 335 | to David Hrbáč. |
---|
| 336 | - Better handling of GnuTLSDHFile and GnuTLSRSAFile. |
---|
| 337 | - No longer default paths for RSA and DH parameter files. |
---|