added RFC-conforming ikev2/sha2 scenarios
[strongswan.git] / NEWS
1 strongswan-4.3.6
2 ----------------
3
4 - The IKEv1 and IKEV2 daemons now check certificate path length constraints.
5
6 - More detailed IKEv2 EAP payload information in debug output
7
8 - IKEv2 EAP-SIM and EAP-AKA share joint libsimaka library
9
10 - Added required userland changes for proper SHA256 and SHA384/512 in ESP that
11   will be introduced with Linux 2.6.33. The "sha256"/"sha2_256" keyword now
12   configures the kernel with 128 bit truncation, not the non-standard 96
13   bit truncation used by previous releases. To use the old 96 bit truncation
14   scheme, the new "sha256_96" proposal keyword has been introduced.
15
16 - Fixed IPComp in tunnel mode, stripping out the duplicated outer header. This
17   change makes IPcomp tunnel mode connections incompatible with previous
18   releases; disable compression on such tunnels.
19
20 strongswan-4.3.5
21 ----------------
22
23 - The IKEv1 pluto daemon can now use SQL-based address pools to deal out
24   virtual IP addresses as a Mode Config server. The pool capability has been
25   migrated from charon's sql plugin to a new attr-sql plugin which is loaded
26   by libstrongswan and which can be used by both daemons either with a SQLite
27   or MySQL database and the corresponding plugin.
28
29 - Plugin names have been streamlined: EAP plugins now have a dash after eap
30   (e.g. eap-sim), as it is used with the --enable-eap-sim ./configure option.
31   Plugin configuration sections in strongswan.conf now use the same name as the
32   plugin itself (i.e. with a dash). Make sure to update "load" directives and
33   the affected plugin sections in existing strongswan.conf files.
34
35 - The private/public key parsing and encoding has been split up into
36   separate pkcs1, pgp, pem and dnskey plugins. The public key implementation
37   plugins gmp, gcrypt and openssl can all make use of them.
38
39 - The EAP-AKA plugin can use different backends for USIM/quintuplet
40   calculations, very similar to the EAP-SIM plugin. The existing 3GPP2 software
41   implementation has been migrated to a separate plugin.
42
43 - The IKEv2 daemon charon gained basic PGP support. It can use locally installed
44   peer certificates and can issue signatures based on RSA private keys.
45
46 - The new 'ipsec pki' tool provides a set of commands to maintain a public
47   key infrastructure. It currently supports operations to create RSA and ECDSA
48   private/public keys, calculate fingerprints and issue or verify certificates.
49
50 - Charon uses a monotonic time source for statistics and job queueing, behaving
51   correctly if the system time changes (e.g. when using NTP).
52
53 - In addition to time based rekeying, charon supports IPsec SA lifetimes based
54   on processed volume or number of packets. They new ipsec.conf paramaters
55   'lifetime' (an alias to 'keylife'), 'lifebytes' and 'lifepackets' handle
56   SA timeouts, while the parameters 'margintime' (an alias to rekeymargin),
57   'marginbytes' and 'marginpackets' trigger the rekeying before a SA expires.
58   The existing parameter 'rekeyfuzz' affects all margins.
59
60 - If no CA/Gateway certificate is specified in the NetworkManager plugin,
61   charon uses a set of trusted root certificates preinstalled by distributions.
62   The directory containing CA certificates can be specified using the
63   --with-nm-ca-dir=path configure option.
64
65 - Fixed the encoding of the Email relative distinguished name in left|rightid
66   statements.
67
68 - Fixed the broken parsing of PKCS#7 wrapped certificates by the pluto daemon.
69
70 - Fixed smartcard-based authentication in the pluto daemon which was broken by
71   the ECDSA support introduced with the 4.3.2 release.
72
73 - A patch contributed by Heiko Hund fixes mixed IPv6 in IPv4 and vice versa
74   tunnels established with the IKEv1 pluto daemon.
75
76 - The pluto daemon now uses the libstrongswan x509 plugin for certificates and
77   CRls and the struct id type was replaced by identification_t used by charon
78   and the libstrongswan library.
79
80
81 strongswan-4.3.4
82 ----------------
83
84 - IKEv2 charon daemon ported to FreeBSD and Mac OS X. Installation details can
85   be found on wiki.strongswan.org.
86
87 - ipsec statusall shows the number of bytes transmitted and received over
88   ESP connections configured by the IKEv2 charon daemon.
89
90 - The IKEv2 charon daemon supports include files in ipsec.secrets.
91
92
93 strongswan-4.3.3
94 ----------------
95
96 - The configuration option --enable-integrity-test plus the strongswan.conf
97   option libstrongswan.integrity_test = yes activate integrity tests
98   of the IKE daemons charon and pluto, libstrongswan and all loaded
99   plugins. Thus dynamic library misconfigurations and non-malicious file
100   manipulations can be reliably detected.
101
102 - The new default setting libstrongswan.ecp_x_coordinate_only=yes allows
103   IKEv1 interoperability with MS Windows using the ECP DH groups 19 and 20.
104
105 - The IKEv1 pluto daemon now supports the AES-CCM and AES-GCM ESP
106   authenticated encryption algorithms.
107
108 - The IKEv1 pluto daemon now supports V4 OpenPGP keys.
109
110 - The RDN parser vulnerability discovered by Orange Labs research team
111   was not completely fixed in version 4.3.2. Some more modifications
112   had to be applied to the asn1_length() function to make it robust.
113
114
115 strongswan-4.3.2
116 ----------------
117
118 - The new gcrypt plugin provides symmetric cipher, hasher, RNG, Diffie-Hellman
119   and RSA crypto primitives using the LGPL licensed GNU gcrypt library.
120
121 - libstrongswan features an integrated crypto selftest framework for registered
122   algorithms. The test-vector plugin provides a first set of test vectors and
123   allows pluto and charon to rely on tested crypto algorithms.
124
125 - pluto can now use all libstrongswan plugins with the exception of x509 and xcbc.
126   Thanks to the openssl plugin, the ECP Diffie-Hellman groups 19, 20, 21, 25, and
127   26 as well as ECDSA-256, ECDSA-384, and ECDSA-521 authentication can be used
128   with IKEv1.
129
130 - Applying their fuzzing tool, the Orange Labs vulnerability research team found
131   another two DoS vulnerabilities, one in the rather old ASN.1 parser of Relative
132   Distinguished Names (RDNs) and a second one in the conversion of ASN.1 UTCTIME
133   and GENERALIZEDTIME strings to a time_t value.
134
135
136 strongswan-4.3.1
137 ----------------
138
139 - The nm plugin now passes DNS/NBNS server information to NetworkManager,
140   allowing a gateway administrator to set DNS/NBNS configuration on clients
141   dynamically.
142
143 - The nm plugin also accepts CA certificates for gateway authentication. If
144   a CA certificate is configured, strongSwan uses the entered gateway address
145   as its idenitity, requiring the gateways certificate to contain the same as
146   subjectAltName. This allows a gateway administrator to deploy the same
147   certificates to Windows 7 and NetworkManager clients.
148
149 - The command ipsec purgeike deletes IKEv2 SAs that don't have a CHILD SA.
150   The command ipsec down <conn>{n} deletes CHILD SA instance n of connection
151   <conn> whereas ipsec down <conn>{*} deletes all CHILD SA instances.
152   The command ipsec down <conn>[n] deletes IKE SA instance n of connection
153   <conn> plus dependent CHILD SAs whereas ipsec down <conn>[*] deletes all
154   IKE SA instances of connection <conn>.
155
156 - Fixed a regression introduced in 4.3.0 where EAP authentication calculated
157   the AUTH payload incorrectly. Further, the EAP-MSCHAPv2 MSK key derivation
158   has been updated to be compatible with the Windows 7 Release Candidate.
159
160 - Refactored installation of triggering policies. Routed policies are handled
161   outside of IKE_SAs to keep them installed in any case. A tunnel gets
162   established only once, even if initiation is delayed due network outages.
163
164 - Improved the handling of multiple acquire signals triggered by the kernel.
165
166 - Fixed two DoS vulnerabilities in the charon daemon that were discovered by
167   fuzzing techniques: 1) Sending a malformed IKE_SA_INIT request leaved an
168   incomplete state which caused a null pointer dereference if a subsequent
169   CREATE_CHILD_SA request was sent. 2) Sending an IKE_AUTH request with either
170   a missing TSi or TSr payload caused a null pointer derefence because the
171   checks for TSi and TSr were interchanged. The IKEv2 fuzzer used was
172   developped by the Orange Labs vulnerability research team. The tool was
173   initially written by Gabriel Campana and is now maintained by Laurent Butti.
174
175 - Added support for AES counter mode in ESP in IKEv2 using the proposal
176   keywords aes128ctr, aes192ctr and aes256ctr.
177
178 - Further progress in refactoring pluto: Use of the curl and ldap plugins
179   for fetching crls and OCSP. Use of the random plugin to get keying material
180   from /dev/random or /dev/urandom. Use of the openssl plugin as an alternative
181   to the aes, des, sha1, sha2, and md5 plugins. The blowfish, twofish, and
182   serpent encryption plugins are now optional and are not enabled by default.
183
184
185 strongswan-4.3.0
186 ----------------
187
188 - Support for the IKEv2 Multiple Authentication Exchanges extension (RFC4739).
189   Initiators and responders can use several authentication rounds (e.g. RSA
190   followed by EAP) to authenticate. The new ipsec.conf leftauth/rightauth and
191   leftauth2/rightauth2 parameters define own authentication rounds or setup
192   constraints for the remote peer. See the ipsec.conf man page for more detials.
193
194 - If glibc printf hooks (register_printf_function) are not available,
195   strongSwan can use the vstr string library to run on non-glibc systems.
196
197 - The IKEv2 charon daemon can now configure the ESP CAMELLIA-CBC cipher
198   (esp=camellia128|192|256).
199
200 - Refactored the pluto and scepclient code to use basic functions (memory
201   allocation, leak detective, chunk handling, printf_hooks, strongswan.conf
202   attributes, ASN.1 parser, etc.) from the libstrongswan library.
203
204 - Up to two DNS and WINS servers to be sent via IKEv1 ModeConfig can be
205   configured in the pluto section of strongswan.conf.
206
207
208 strongswan-4.2.14
209 -----------------
210
211 - The new server-side EAP RADIUS plugin (--enable-eap-radius)
212   relays EAP messages to and from a RADIUS server. Succesfully
213   tested with with a freeradius server using EAP-MD5 and EAP-SIM.
214
215 - A vulnerability in the Dead Peer Detection (RFC 3706) code was found by
216   Gerd v. Egidy <gerd.von.egidy@intra2net.com> of Intra2net AG affecting
217   all Openswan and strongSwan releases. A malicious (or expired ISAKMP)
218   R_U_THERE or R_U_THERE_ACK Dead Peer Detection packet can cause the
219   pluto IKE daemon to crash and restart. No authentication or encryption
220   is required to trigger this bug. One spoofed UDP packet can cause the
221   pluto IKE daemon to restart and be unresponsive for a few seconds while
222   restarting. This DPD null state vulnerability has been officially
223   registered as CVE-2009-0790 and is fixed by this release.
224
225 - ASN.1 to time_t conversion caused a time wrap-around for
226   dates after Jan 18 03:14:07 UTC 2038 on 32-bit platforms.
227   As a workaround such dates are set to the maximum representable
228   time, i.e. Jan 19 03:14:07 UTC 2038.
229
230 - Distinguished Names containing wildcards (*) are not sent in the
231   IDr payload anymore.
232
233
234 strongswan-4.2.13
235 -----------------
236
237 - Fixed a use-after-free bug in the DPD timeout section of the
238   IKEv1 pluto daemon which sporadically caused a segfault.
239
240 - Fixed a crash in the IKEv2 charon daemon occuring with
241   mixed RAM-based and SQL-based virtual IP address pools.
242
243 - Fixed ASN.1 parsing of algorithmIdentifier objects where the
244   parameters field is optional.
245
246 - Ported nm plugin to NetworkManager 7.1.
247
248
249 strongswan-4.2.12
250 -----------------
251
252 - Support of the EAP-MSCHAPv2 protocol enabled by the option
253   --enable-eap-mschapv2. Requires the MD4 hash algorithm enabled
254   either by --enable-md4 or --enable-openssl.
255
256 - Assignment of up to two DNS and up to two WINS servers to peers via
257   the IKEv2 Configuration Payload (CP). The IPv4 or IPv6 nameserver
258   addresses are defined in strongswan.conf.
259
260 - The strongSwan applet for the Gnome NetworkManager is now built and
261   distributed as a separate tarball under the name NetworkManager-strongswan.
262
263
264 strongswan-4.2.11
265 -----------------
266
267 - Fixed ESP NULL encryption broken by the refactoring of keymat.c.
268   Also introduced proper initialization and disposal of keying material.
269
270 - Fixed the missing listing of connection definitions in ipsec statusall
271   broken by an unfortunate local variable overload.
272
273
274 strongswan-4.2.10
275 -----------------
276
277 - Several performance improvements to handle thousands of tunnels with almost
278   linear upscaling. All relevant data structures have been replaced by faster
279   counterparts with better lookup times.
280
281 - Better parallelization to run charon on multiple cores. Due to improved
282   ressource locking and other optimizations the daemon can take full
283   advantage of 16 or even more cores.
284
285 - The load-tester plugin can use a NULL Diffie-Hellman group and simulate
286   unique identities and certificates by signing peer certificates using a CA
287   on the fly.
288
289 - The redesigned stroke in-memory IP pool handles leases. The "ipsec leases"
290   command queries assigned leases.
291
292 - Added support for smartcards in charon by using the ENGINE API provided by
293   OpenSSL, based on patches by Michael Ro├čberg.
294
295 - The Padlock plugin supports the hardware RNG found on VIA CPUs to provide a
296   reliable source of randomness.
297
298 strongswan-4.2.9
299 ----------------
300
301 - Flexible configuration of logging subsystem allowing to log to multiple
302   syslog facilities or to files using fine-grained log levels for each target.
303
304 - Load testing plugin to do stress testing of the IKEv2 daemon against self
305   or another host. Found and fixed issues during tests in the multi-threaded
306   use of the OpenSSL plugin.
307
308 - Added profiling code to synchronization primitives to find bottlenecks if
309   running on multiple cores. Found and fixed an issue where parts of the
310   Diffie-Hellman calculation acquired an exclusive lock. This greatly improves
311   parallelization to multiple cores.
312
313 - updown script invocation has been separated into a plugin of its own to
314   further slim down the daemon core.
315
316 - Separated IKE_SA/CHILD_SA key derivation process into a closed system,
317   allowing future implementations to use a secured environment in e.g. kernel
318   memory or hardware.
319
320 - The kernel interface of charon has been modularized. XFRM NETLINK (default)
321   and PFKEY (--enable-kernel-pfkey) interface plugins for the native IPsec
322   stack of the Linux 2.6 kernel as well as a PFKEY interface for the KLIPS
323   IPsec stack (--enable-kernel-klips) are provided.
324
325 - Basic Mobile IPv6 support has been introduced, securing Binding Update
326   messages as well as tunneled traffic between Mobile Node and Home Agent.
327   The installpolicy=no option allows peaceful cooperation with a dominant
328   mip6d daemon and the new type=transport_proxy implements the special MIPv6
329   IPsec transport proxy mode where the IKEv2 daemon uses the Care-of-Address
330   but the IPsec SA is set up for the Home Adress.
331
332 - Implemented migration of Mobile IPv6 connections using the KMADDRESS
333   field contained in XFRM_MSG_MIGRATE messages sent by the mip6d daemon
334   via the Linux 2.6.28 (or appropriately patched) kernel.
335
336
337 strongswan-4.2.8
338 ----------------
339
340 - IKEv2 charon daemon supports authentication based on raw public keys
341   stored in the SQL database backend. The ipsec listpubkeys command
342   lists the available raw public keys via the stroke interface.
343
344 - Several MOBIKE improvements: Detect changes in NAT mappings in DPD exchanges,
345   handle events if kernel detects NAT mapping changes in UDP-encapsulated
346   ESP packets (requires kernel patch), reuse old addesses in MOBIKE updates as
347   long as possible and other fixes.
348
349 - Fixed a bug in addr_in_subnet() which caused insertion of wrong source
350   routes for destination subnets having netwmasks not being a multiple of 8 bits.
351   Thanks go to Wolfgang Steudel, TU Ilmenau for reporting this bug.
352
353
354 strongswan-4.2.7
355 ----------------
356
357 - Fixed a Denial-of-Service vulnerability where an IKE_SA_INIT message with
358   a KE payload containing zeroes only can cause a crash of the IKEv2 charon
359   daemon due to a NULL pointer returned by the mpz_export() function of the
360   GNU Multiprecision Library (GMP). Thanks go to Mu Dynamics Research Labs
361   for making us aware of this problem.
362
363 - The new agent plugin provides a private key implementation on top of an
364   ssh-agent.
365
366 - The NetworkManager plugin has been extended to support certificate client
367   authentication using RSA keys loaded from a file or using ssh-agent.
368
369 - Daemon capability dropping has been ported to libcap and must be enabled
370   explicitly --with-capabilities=libcap. Future version will support the
371   newer libcap2 library.
372
373 - ipsec listalgs lists the IKEv2 cryptografic algorithms registered with the
374   charon keying daemon.
375
376
377 strongswan-4.2.6
378 ----------------
379
380 - A NetworkManager plugin allows GUI-based configuration of road-warrior
381   clients in a simple way. It features X509 based gateway authentication
382   and EAP client authentication, tunnel setup/teardown and storing passwords
383   in the Gnome Keyring.
384
385 - A new EAP-GTC plugin implements draft-sheffer-ikev2-gtc-00.txt and allows
386   username/password authentication against any PAM service on the gateway.
387   The new EAP method interacts nicely with the NetworkManager plugin and allows
388   client authentication against e.g. LDAP.
389
390 - Improved support for the EAP-Identity method. The new ipsec.conf eap_identity
391   parameter defines an additional identity to pass to the server in EAP
392   authentication.
393
394 - The "ipsec statusall" command now lists CA restrictions, EAP
395   authentication types and EAP identities.
396
397 - Fixed two multithreading deadlocks occurring when starting up
398   several hundred tunnels concurrently.
399
400 - Fixed the --enable-integrity-test configure option which
401   computes a SHA-1 checksum over the libstrongswan library.
402
403
404 strongswan-4.2.5
405 ----------------
406
407 - Consistent logging of IKE and CHILD SAs at the audit (AUD) level.
408
409 - Improved the performance of the SQL-based virtual IP address pool
410   by introducing an additional addresses table. The leases table
411   storing only history information has become optional and can be
412   disabled by setting charon.plugins.sql.lease_history = no in
413   strongswan.conf.
414
415 - The XFRM_STATE_AF_UNSPEC flag added to xfrm.h allows IPv4-over-IPv6
416   and IPv6-over-IPv4 tunnels with the 2.6.26 and later Linux kernels.
417
418 - management of different virtual IP pools for different
419   network interfaces have become possible.
420
421 - fixed a bug which prevented the assignment of more than 256
422   virtual IP addresses from a pool managed by an sql database.
423
424 - fixed a bug which did not delete own IPCOMP SAs in the kernel.
425
426
427 strongswan-4.2.4
428 ----------------
429
430 - Added statistics functions to ipsec pool --status and ipsec pool --leases
431   and input validation checks to various ipsec pool commands.
432
433 - ipsec statusall now lists all loaded charon plugins and displays
434   the negotiated IKEv2 cipher suite proposals.
435
436 - The openssl plugin supports the elliptic curve Diffie-Hellman groups
437   19, 20, 21, 25, and 26.
438
439 - The openssl plugin supports ECDSA authentication using elliptic curve
440   X.509 certificates.
441
442 - Fixed a bug in stroke which caused multiple charon threads to close
443   the file descriptors during packet transfers over the stroke socket.
444
445 - ESP sequence numbers are now migrated in IPsec SA updates handled by
446   MOBIKE. Works only with Linux kernels >= 2.6.17.
447
448
449 strongswan-4.2.3
450 ----------------
451
452 - Fixed the strongswan.conf path configuration problem that occurred when
453   --sysconfig was not set explicitly in ./configure.
454
455 - Fixed a number of minor bugs that where discovered during the 4th
456   IKEv2 interoperability workshop in San Antonio, TX.
457
458
459 strongswan-4.2.2
460 ----------------
461
462 - Plugins for libstrongswan and charon can optionally be loaded according
463   to a configuration in strongswan.conf. Most components provide a
464   "load = " option followed by a space separated list of plugins to load.
465   This allows e.g. the fallback from a hardware crypto accelerator to
466   to software-based crypto plugins.
467
468 - Charons SQL plugin has been extended by a virtual IP address pool.
469   Configurations with a rightsourceip=%poolname setting query a SQLite or
470   MySQL database for leases. The "ipsec pool" command helps in administrating
471   the pool database. See ipsec pool --help for the available options
472
473 - The Authenticated Encryption Algorithms AES-CCM-8/12/16 and AES-GCM-8/12/16
474   for ESP are now supported starting with the Linux 2.6.25 kernel. The
475   syntax is e.g. esp=aes128ccm12 or esp=aes256gcm16.
476
477
478 strongswan-4.2.1
479 ----------------
480
481 - Support for "Hash and URL" encoded certificate payloads has been implemented
482   in the IKEv2 daemon charon. Using the "certuribase" option of a CA section
483   allows to assign a base URL to all certificates issued by the specified CA.
484   The final URL is then built by concatenating that base and the hex encoded
485   SHA1 hash of the DER encoded certificate. Note that this feature is disabled
486   by default and must be enabled using the option "charon.hash_and_url".
487
488 - The IKEv2 daemon charon now supports the "uniqueids" option to close multiple
489   IKE_SAs with the same peer. The option value "keep" prefers existing
490   connection setups over new ones, where the value "replace" replaces existing
491   connections.
492
493 - The crypto factory in libstrongswan additionaly supports random number
494   generators, plugins may provide other sources of randomness. The default
495   plugin reads raw random data from /dev/(u)random.
496
497 - Extended the credential framework by a caching option to allow plugins
498   persistent caching of fetched credentials. The "cachecrl" option has been
499   re-implemented.
500
501 - The new trustchain verification introduced in 4.2.0 has been parallelized.
502   Threads fetching CRL or OCSP information no longer block other threads.
503
504 - A new IKEv2 configuration attribute framework has been introduced allowing
505   plugins to provide virtual IP addresses, and in the future, other
506   configuration attribute services (e.g. DNS/WINS servers).
507
508 - The stroke plugin has been extended to provide virtual IP addresses from
509   a pool defined in ipsec.conf. The "rightsourceip" parameter now accepts
510   address pools in CIDR notation (e.g. 10.1.1.0/24). The parameter also accepts
511   the value "%poolname", where "poolname" identifies a pool provided by a
512   separate plugin.
513
514 - Fixed compilation on uClibc and a couple of other minor bugs.
515
516 - Set DPD defaults in ipsec starter to dpd_delay=30s and dpd_timeout=150s.
517
518 - The IKEv1 pluto daemon now supports the ESP encryption algorithm CAMELLIA
519   with key lengths of 128, 192, and 256 bits, as well as the authentication
520   algorithm AES_XCBC_MAC. Configuration example: esp=camellia192-aesxcbc.
521
522
523 strongswan-4.2.0
524 ----------------
525
526 - libstrongswan has been modularized to attach crypto algorithms,
527   credential implementations (keys, certificates) and fetchers dynamically
528   through plugins. Existing code has been ported to plugins:
529     - RSA/Diffie-Hellman implementation using the GNU Multi Precision library
530     - X509 certificate system supporting CRLs, OCSP and attribute certificates
531     - Multiple plugins providing crypto algorithms in software
532     - CURL and OpenLDAP fetcher
533
534 - libstrongswan gained a relational database API which uses pluggable database
535   providers. Plugins for MySQL and SQLite are available.
536
537 - The IKEv2 keying daemon charon is more extensible. Generic plugins may provide
538   connection configuration, credentials and EAP methods or control the daemon.
539   Existing code has been ported to plugins:
540     - EAP-AKA, EAP-SIM, EAP-MD5 and EAP-Identity
541     - stroke configuration, credential and control (compatible to pluto)
542     - XML bases management protocol to control and query the daemon
543   The following new plugins are available:
544     - An experimental SQL configuration, credential and logging plugin on
545       top of either MySQL or SQLite
546     - A unit testing plugin to run tests at daemon startup
547
548 - The authentication and credential framework in charon has been heavily
549   refactored to support modular credential providers, proper
550   CERTREQ/CERT payload exchanges and extensible authorization rules.
551
552 - The framework of strongSwan Manager has envolved to the web application
553   framework libfast (FastCGI Application Server w/ Templates) and is usable
554   by other applications.
555
556
557 strongswan-4.1.11
558 -----------------
559
560 - IKE rekeying in NAT situations did not inherit the NAT conditions
561   to the rekeyed IKE_SA so that the UDP encapsulation was lost with
562   the next CHILD_SA rekeying.
563
564 - Wrong type definition of the next_payload variable in id_payload.c
565   caused an INVALID_SYNTAX error on PowerPC platforms.
566
567 - Implemented IKEv2 EAP-SIM server and client test modules that use
568   triplets stored in a file. For details on the configuration see
569   the scenario 'ikev2/rw-eap-sim-rsa'.
570
571
572 strongswan-4.1.10
573 -----------------
574
575 - Fixed error in the ordering of the certinfo_t records in the ocsp cache that
576   caused multiple entries of the same serial number to be created.
577
578 - Implementation of a simple EAP-MD5 module which provides CHAP
579   authentication. This may be interesting in conjunction with certificate
580   based server authentication, as weak passwords can't be brute forced
581   (in contradiction to traditional IKEv2 PSK).
582
583 - A complete software based implementation of EAP-AKA, using algorithms
584   specified in 3GPP2 (S.S0055). This implementation does not use an USIM,
585   but reads the secrets from ipsec.secrets. Make sure to read eap_aka.h
586   before using it.
587
588 - Support for vendor specific EAP methods using Expanded EAP types. The
589   interface to EAP modules has been slightly changed, so make sure to
590   check the changes if you're already rolling your own modules.
591
592
593 strongswan-4.1.9
594 ----------------
595
596 - The default _updown script now dynamically inserts and removes ip6tables
597   firewall rules if leftfirewall=yes is set in IPv6 connections. New IPv6
598   net-net and roadwarrior (PSK/RSA) scenarios for both IKEv1 and IKEV2 were
599   added.
600
601 - Implemented RFC4478 repeated authentication to force EAP/Virtual-IP clients
602   to reestablish an IKE_SA within a given timeframe.
603
604 - strongSwan Manager supports configuration listing, initiation and termination
605   of IKE and CHILD_SAs.
606
607 - Fixes and improvements to multithreading code.
608
609 - IKEv2 plugins have been renamed to libcharon-* to avoid naming conflicts.
610   Make sure to remove the old plugins in $libexecdir/ipsec, otherwise they get
611   loaded twice.
612
613
614 strongswan-4.1.8
615 ----------------
616
617 - Removed recursive pthread mutexes since uClibc doesn't support them.
618
619
620 strongswan-4.1.7
621 ----------------
622
623 - In NAT traversal situations and multiple queued Quick Modes,
624   those pending connections inserted by auto=start after the
625   port floating from 500 to 4500 were erronously deleted.
626
627 - Added a "forceencaps" connection parameter to enforce UDP encapsulation
628   to surmount restrictive firewalls. NAT detection payloads are faked to
629   simulate a NAT situation and trick the other peer into NAT mode (IKEv2 only).
630
631 - Preview of strongSwan Manager, a web based configuration and monitoring
632   application. It uses a new XML control interface to query the IKEv2 daemon
633   (see http://trac.strongswan.org/wiki/Manager).
634
635 - Experimental SQLite configuration backend which will provide the configuration
636   interface for strongSwan Manager in future releases.
637
638 - Further improvements to MOBIKE support.
639
640
641 strongswan-4.1.6
642 ----------------
643
644 - Since some third party IKEv2 implementations run into
645   problems with strongSwan announcing MOBIKE capability per
646   default, MOBIKE can be disabled on a per-connection-basis
647   using the mobike=no option. Whereas mobike=no disables the
648   sending of the MOBIKE_SUPPORTED notification and the floating
649   to UDP port 4500 with the IKE_AUTH request even if no NAT
650   situation has been detected, strongSwan will still support
651   MOBIKE acting as a responder.
652
653 - the default ipsec routing table plus its corresponding priority
654   used for inserting source routes has been changed from 100 to 220.
655   It can be configured using the --with-ipsec-routing-table and
656   --with-ipsec-routing-table-prio options.
657
658 - the --enable-integrity-test configure option tests the
659   integrity of the libstrongswan crypto code during the charon
660   startup.
661
662 - the --disable-xauth-vid configure option disables the sending
663   of the XAUTH vendor ID. This can be used as a workaround when
664   interoperating with some Windows VPN clients that get into
665   trouble upon reception of an XAUTH VID without eXtended
666   AUTHentication having been configured.
667
668 - ipsec stroke now supports the rereadsecrets, rereadaacerts,
669   rereadacerts, and listacerts options.
670
671
672 strongswan-4.1.5
673 ----------------
674
675 - If a DNS lookup failure occurs when resolving right=%<FQDN>
676   or right=<FQDN> combined with rightallowany=yes then the
677   connection is not updated by ipsec starter thus preventing
678   the disruption of an active IPsec connection. Only if the DNS
679   lookup successfully returns with a changed IP address the
680   corresponding connection definition is updated.
681
682 - Routes installed by the keying daemons are now in a separate
683   routing table with the ID 100 to avoid conflicts with the main
684   table. Route lookup for IKEv2 traffic is done in userspace to ignore
685   routes installed for IPsec, as IKE traffic shouldn't get encapsulated.
686
687
688 strongswan-4.1.4
689 ----------------
690
691 - The pluto IKEv1 daemon now exhibits the same behaviour as its
692   IKEv2 companion charon by inserting an explicit route via the
693   _updown script only if a sourceip exists. This is admissible
694   since routing through the IPsec tunnel is handled automatically
695   by NETKEY's IPsec policies. As a consequence the left|rightnexthop
696   parameter is not required any more.
697
698 - The new IKEv1 parameter right|leftallowany parameters helps to handle
699   the case where both peers possess dynamic IP addresses that are
700   usually resolved using DynDNS or a similar service. The configuration
701
702     right=peer.foo.bar
703     rightallowany=yes
704
705   can be used by the initiator to start up a connection to a peer
706   by resolving peer.foo.bar into the currently allocated IP address.
707   Thanks to the rightallowany flag the connection behaves later on
708   as
709
710    right=%any
711
712   so that the peer can rekey the connection as an initiator when his
713   IP address changes. An alternative notation is
714
715     right=%peer.foo.bar
716
717   which will implicitly set rightallowany=yes.
718
719 - ipsec starter now fails more gracefully in the presence of parsing
720   errors. Flawed ca and conn section are discarded and pluto is started
721   if non-fatal errors only were encountered. If right=%peer.foo.bar
722   cannot be resolved by DNS then right=%any will be used so that passive
723   connections as a responder are still possible.
724
725 - The new pkcs11initargs parameter that can be placed in the
726   setup config section of /etc/ipsec.conf allows the definition
727   of an argument string that is used with the PKCS#11 C_Initialize()
728   function. This non-standard feature is required by the NSS softoken
729   library. This patch was contributed by Robert Varga.
730
731 - Fixed a bug in ipsec starter introduced by strongswan-2.8.5
732   which caused a segmentation fault in the presence of unknown
733   or misspelt keywords in ipsec.conf. This bug fix was contributed
734   by Robert Varga.
735
736 - Partial support for MOBIKE in IKEv2. The initiator acts on interface/
737   address configuration changes and updates IKE and IPsec SAs dynamically.
738
739
740 strongswan-4.1.3
741 ----------------
742
743 - IKEv2 peer configuration selection now can be based on a given
744   certification authority using the rightca= statement.
745
746 - IKEv2 authentication based on RSA signatures now can handle multiple
747   certificates issued for a given peer ID. This allows a smooth transition
748   in the case of a peer certificate renewal.
749
750 - IKEv2: Support for requesting a specific virtual IP using leftsourceip on the
751   client and returning requested virtual IPs using rightsourceip=%config
752   on the server. If the server does not support configuration payloads, the
753   client enforces its leftsourceip parameter.
754
755 - The ./configure options --with-uid/--with-gid allow pluto and charon
756   to drop their privileges to a minimum and change to an other UID/GID. This
757   improves the systems security, as a possible intruder may only get the
758   CAP_NET_ADMIN capability.
759
760 - Further modularization of charon: Pluggable control interface and
761   configuration backend modules provide extensibility. The control interface
762   for stroke is included, and further interfaces using DBUS (NetworkManager)
763   or XML are on the way. A backend for storing configurations in the daemon
764   is provided and more advanced backends (using e.g. a database) are trivial
765   to implement.
766
767  - Fixed a compilation failure in libfreeswan occuring with Linux kernel
768    headers > 2.6.17.
769
770
771 strongswan-4.1.2
772 ----------------
773
774 - Support for an additional Diffie-Hellman exchange when creating/rekeying
775   a CHILD_SA in IKEv2 (PFS). PFS is enabled when the proposal contains a
776   DH group (e.g. "esp=aes128-sha1-modp1536"). Further, DH group negotiation
777   is implemented properly for rekeying.
778
779 - Support for the AES-XCBC-96 MAC algorithm for IPsec SAs when using IKEv2
780   (requires linux >= 2.6.20). It is enabled using e.g. "esp=aes256-aesxcbc".
781
782 - Working IPv4-in-IPv6 and IPv6-in-IPv4 tunnels for linux >= 2.6.21.
783
784 - Added support for EAP modules which do not establish an MSK.
785
786 - Removed the dependencies from the /usr/include/linux/ headers by
787   including xfrm.h, ipsec.h, and pfkeyv2.h in the distribution.
788
789 - crlNumber is now listed by ipsec listcrls
790
791 - The xauth_modules.verify_secret() function now passes the
792   connection name.
793
794
795 strongswan-4.1.1
796 ----------------
797
798 - Server side cookie support. If to may IKE_SAs are in CONNECTING state,
799   cookies are enabled and protect against DoS attacks with faked source
800   addresses. Number of IKE_SAs in CONNECTING state is also limited per
801   peer address to avoid resource exhaustion. IKE_SA_INIT messages are
802   compared to properly detect retransmissions and incoming retransmits are
803   detected even if the IKE_SA is blocked (e.g. doing OCSP fetches).
804
805 - The IKEv2 daemon charon now supports dynamic http- and ldap-based CRL
806   fetching enabled by crlcheckinterval > 0 and caching fetched CRLs
807   enabled by cachecrls=yes.
808
809 - Added the configuration options --enable-nat-transport which enables
810   the potentially insecure NAT traversal for IPsec transport mode and
811   --disable-vendor-id which disables the sending of the strongSwan
812   vendor ID.
813
814 - Fixed a long-standing bug in the pluto IKEv1 daemon which caused
815   a segmentation fault if a malformed payload was detected in the
816   IKE MR2 message and pluto tried to send an encrypted notification
817   message.
818
819 - Added the NATT_IETF_02_N Vendor ID in order to support IKEv1 connections
820   with Windows 2003 Server which uses a wrong VID hash.
821
822
823 strongswan-4.1.0
824 ----------------
825
826 - Support of SHA2_384 hash function for protecting IKEv1
827   negotiations and support of SHA2 signatures in X.509 certificates.
828
829 - Fixed a serious bug in the computation of the SHA2-512 HMAC
830   function. Introduced automatic self-test of all IKEv1 hash
831   and hmac functions during pluto startup. Failure of a self-test
832   currently issues a warning only but does not exit pluto [yet].
833
834 - Support for SHA2-256/384/512 PRF and HMAC functions in IKEv2.
835
836 - Full support of CA information sections. ipsec listcainfos
837   now shows all collected crlDistributionPoints and OCSP
838   accessLocations.
839
840 - Support of the Online Certificate Status Protocol (OCSP) for IKEv2.
841   This feature requires the HTTP fetching capabilities of the libcurl
842   library which must be enabled by setting the --enable-http configure
843   option.
844
845 - Refactored core of the IKEv2 message processing code, allowing better
846   code reuse and separation.
847
848 - Virtual IP support in IKEv2 using INTERNAL_IP4/6_ADDRESS configuration
849   payload. Additionally, the INTERNAL_IP4/6_DNS attribute is interpreted
850   by the requestor and installed in a resolv.conf file.
851
852 - The IKEv2 daemon charon installs a route for each IPsec policy to use
853   the correct source address even if an application does not explicitly
854   specify it.
855
856 - Integrated the EAP framework into charon which loads pluggable EAP library
857   modules. The ipsec.conf parameter authby=eap initiates EAP authentication
858   on the client side, while the "eap" parameter on the server side defines
859   the EAP method to use for client authentication.
860   A generic client side EAP-Identity module and an EAP-SIM authentication
861   module using a third party card reader implementation are included.
862
863 - Added client side support for cookies.
864
865 - Integrated the fixes done at the IKEv2 interoperability bakeoff, including
866   strict payload order, correct INVALID_KE_PAYLOAD rejection and other minor
867   fixes to enhance interoperability with other implementations.
868
869
870 strongswan-4.0.7
871 ----------------
872
873 - strongSwan now interoperates with the NCP Secure Entry Client,
874   the Shrew Soft VPN Client, and the Cisco VPN client, doing both
875   XAUTH and Mode Config.
876
877 - UNITY attributes are now recognized and UNITY_BANNER is set
878   to a default string.
879
880
881 strongswan-4.0.6
882 ----------------
883
884 - IKEv1: Support for extended authentication (XAUTH) in combination
885   with ISAKMP Main Mode RSA or PSK authentication. Both client and
886   server side were implemented. Handling of user credentials can
887   be done by a run-time loadable XAUTH module. By default user
888   credentials are stored in ipsec.secrets.
889
890 - IKEv2: Support for reauthentication when rekeying
891
892 - IKEv2: Support for transport mode
893
894 - fixed a lot of bugs related to byte order
895
896 - various other bugfixes
897
898
899 strongswan-4.0.5
900 ----------------
901
902 - IKEv1: Implementation of ModeConfig push mode via the new connection
903   keyword modeconfig=push allows interoperability with Cisco VPN gateways.
904
905 - IKEv1: The command ipsec statusall now shows "DPD active" for all
906   ISAKMP SAs that are under active Dead Peer Detection control.
907
908 - IKEv2: Charon's logging and debugging framework has been completely rewritten.
909   Instead of logger, special printf() functions are used to directly
910   print objects like hosts (%H) identifications (%D), certificates (%Q),
911   etc. The number of debugging levels have been reduced to:
912
913     0 (audit), 1 (control), 2 (controlmore),  3 (raw), 4 (private)
914
915   The debugging levels can either be specified statically in ipsec.conf as
916
917     config setup
918            charondebug="lib 1, cfg 3, net 2"
919
920   or changed at runtime via stroke as
921
922     ipsec stroke loglevel cfg 2
923
924
925 strongswan-4.0.4
926 ----------------
927
928 - Implemented full support for IPv6-in-IPv6 tunnels.
929
930 - Added configuration options for dead peer detection in IKEv2. dpd_action
931   types "clear", "hold" and "restart" are supported. The dpd_timeout
932   value is not used, as the normal retransmission policy applies to
933   detect dead peers. The dpd_delay parameter enables sending of empty
934   informational message to detect dead peers in case of inactivity.
935
936 - Added support for preshared keys in IKEv2. PSK keys configured in
937   ipsec.secrets are loaded. The authby parameter specifies the authentication
938   method to authentificate ourself, the other peer may use PSK or RSA.
939
940 - Changed retransmission policy to respect the keyingtries parameter.
941
942 - Added private key decryption. PEM keys encrypted with AES-128/192/256
943   or 3DES are supported.
944
945 - Implemented DES/3DES algorithms in libstrongswan. 3DES can be used to
946   encrypt IKE traffic.
947
948 - Implemented SHA-256/384/512 in libstrongswan, allows usage of certificates
949   signed with such a hash algorithm.
950
951 - Added initial support for updown scripts. The actions up-host/client and
952   down-host/client are executed. The leftfirewall=yes parameter
953   uses the default updown script to insert dynamic firewall rules, a custom
954   updown script may be specified with the leftupdown parameter.
955
956
957 strongswan-4.0.3
958 ----------------
959
960 - Added support for the auto=route ipsec.conf parameter and the
961   ipsec route/unroute commands for IKEv2. This allows to set up IKE_SAs and
962   CHILD_SAs dynamically on demand when traffic is detected by the
963   kernel.
964
965 - Added support for rekeying IKE_SAs in IKEv2 using the ikelifetime parameter.
966   As specified in IKEv2, no reauthentication is done (unlike in IKEv1), only
967   new keys are generated using perfect forward secrecy. An optional flag
968   which enforces reauthentication will be implemented later.
969
970 - "sha" and "sha1" are now treated as synonyms in the ike= and esp=
971   algorithm configuration statements.
972
973
974 strongswan-4.0.2
975 ----------------
976
977 - Full X.509 certificate trust chain verification has been implemented.
978   End entity certificates can be exchanged via CERT payloads. The current
979   default is leftsendcert=always, since CERTREQ payloads are not supported
980   yet. Optional CRLs must be imported locally into /etc/ipsec.d/crls.
981
982 - Added support for leftprotoport/rightprotoport parameters in IKEv2. IKEv2
983   would offer more possibilities for traffic selection, but the Linux kernel
984   currently does not support it. That's why we stick with these simple
985   ipsec.conf rules for now.
986
987 - Added Dead Peer Detection (DPD) which checks liveliness of remote peer if no
988   IKE or ESP traffic is received. DPD is currently hardcoded (dpdaction=clear,
989   dpddelay=60s).
990
991 - Initial NAT traversal support in IKEv2. Charon includes NAT detection
992   notify payloads to detect NAT routers between the peers. It switches
993   to port 4500, uses UDP encapsulated ESP packets, handles peer address
994   changes gracefully and sends keep alive message periodically.
995
996 - Reimplemented IKE_SA state machine for charon, which allows simultaneous
997   rekeying, more shared code, cleaner design, proper retransmission
998   and a more extensible code base.
999
1000 - The mixed PSK/RSA roadwarrior detection capability introduced by the
1001   strongswan-2.7.0 release necessitated the pre-parsing of the IKE proposal
1002   payloads by the responder right before any defined IKE Main Mode state had
1003   been established. Although any form of bad proposal syntax was being correctly
1004   detected by the payload parser, the subsequent error handler didn't check
1005   the state pointer before logging current state information, causing an
1006   immediate crash of the pluto keying daemon due to a NULL pointer.
1007
1008
1009 strongswan-4.0.1
1010 ----------------
1011
1012 - Added algorithm selection to charon: New default algorithms for
1013   ike=aes128-sha-modp2048, as both daemons support it. The default
1014   for IPsec SAs is now esp=aes128-sha,3des-md5. charon handles
1015   the ike/esp parameter the same way as pluto. As this syntax does
1016   not allow specification of a pseudo random function, the same
1017   algorithm as for integrity is used (currently sha/md5). Supported
1018   algorithms for IKE:
1019     Encryption: aes128, aes192, aes256
1020     Integrity/PRF: md5, sha (using hmac)
1021     DH-Groups: modp768, 1024, 1536, 2048, 4096, 8192
1022   and for ESP:
1023     Encryption: aes128, aes192, aes256, 3des, blowfish128,
1024                 blowfish192, blowfish256
1025     Integrity: md5, sha1
1026   More IKE encryption algorithms will come after porting libcrypto into
1027   libstrongswan.
1028
1029 - initial support for rekeying CHILD_SAs using IKEv2. Currently no
1030   perfect forward secrecy is used. The rekeying parameters rekey,
1031   rekeymargin, rekeyfuzz and keylife from ipsec.conf are now supported
1032   when using IKEv2. WARNING: charon currently is unable to handle
1033   simultaneous rekeying. To avoid such a situation, use a large
1034   rekeyfuzz, or even better, set rekey=no on one peer.
1035
1036 - support for host2host, net2net, host2net (roadwarrior) tunnels
1037   using predefined RSA certificates (see uml scenarios for
1038   configuration examples).
1039
1040 - new build environment featuring autotools. Features such
1041   as HTTP, LDAP and smartcard support may be enabled using
1042   the ./configure script. Changing install directories
1043   is possible, too. See ./configure --help for more details.
1044
1045 - better integration of charon with ipsec starter, which allows
1046   (almost) transparent operation with both daemons. charon
1047   handles ipsec commands up, down, status, statusall, listall,
1048   listcerts and allows proper load, reload and delete of connections
1049   via ipsec starter.
1050
1051
1052 strongswan-4.0.0
1053 ----------------
1054
1055 - initial support of the IKEv2 protocol. Connections in
1056   ipsec.conf designated by keyexchange=ikev2 are negotiated
1057   by the new IKEv2 charon keying daemon whereas those marked
1058   by keyexchange=ikev1 or the default keyexchange=ike are
1059   handled thy the IKEv1 pluto keying daemon. Currently only
1060   a limited subset of functions are available with IKEv2
1061   (Default AES encryption, authentication based on locally
1062   imported X.509 certificates, unencrypted private RSA keys
1063   in PKCS#1 file format, limited functionality of the ipsec
1064   status command).
1065
1066
1067 strongswan-2.7.0
1068 ----------------
1069
1070 - the dynamic iptables rules from the _updown_x509 template
1071   for KLIPS and the _updown_policy template for NETKEY have
1072   been merged into the default _updown script. The existing
1073   left|rightfirewall keyword causes the automatic insertion
1074   and deletion of ACCEPT rules for tunneled traffic upon
1075   the successful setup and teardown of an IPsec SA, respectively.
1076   left|rightfirwall can be used with KLIPS under any Linux 2.4
1077   kernel or with NETKEY under a Linux kernel version >= 2.6.16
1078   in conjuction with iptables >= 1.3.5. For NETKEY under a Linux
1079   kernel version < 2.6.16 which does not support IPsec policy
1080   matching yet, please continue to use a copy of the _updown_espmark
1081   template loaded via the left|rightupdown keyword.
1082
1083 - a new left|righthostaccess keyword has been introduced which
1084   can be used in conjunction with left|rightfirewall and the
1085   default _updown script. By default leftfirewall=yes inserts
1086   a bi-directional iptables FORWARD rule for a local client network
1087   with a netmask different from 255.255.255.255 (single host).
1088   This does not allow to access the VPN gateway host via its
1089   internal network interface which is part of the client subnet
1090   because an iptables INPUT and OUTPUT rule would be required.
1091   lefthostaccess=yes will cause this additional ACCEPT rules to
1092   be inserted.
1093
1094 - mixed PSK|RSA roadwarriors are now supported. The ISAKMP proposal
1095   payload is preparsed in order to find out whether the roadwarrior
1096   requests PSK or RSA so that a matching connection candidate can
1097   be found.
1098
1099
1100 strongswan-2.6.4
1101 ----------------
1102
1103 - the new _updown_policy template allows ipsec policy based
1104   iptables firewall rules. Required are iptables version
1105   >= 1.3.5 and linux kernel >= 2.6.16. This script obsoletes
1106   the _updown_espmark template, so that no INPUT mangle rules
1107   are required any more.
1108
1109 - added support of DPD restart mode
1110
1111 - ipsec starter now allows the use of wildcards in include
1112   statements as e.g. in "include /etc/my_ipsec/*.conf".
1113   Patch courtesy of Matthias Haas.
1114
1115 - the Netscape OID 'employeeNumber' is now recognized and can be
1116   used as a Relative Distinguished Name in certificates.
1117
1118
1119 strongswan-2.6.3
1120 ----------------
1121
1122 - /etc/init.d/ipsec or /etc/rc.d/ipsec is now a copy of the ipsec
1123   command and not of ipsec setup any more.
1124
1125 - ipsec starter now supports AH authentication in conjunction with
1126   ESP encryption. AH authentication is configured in ipsec.conf
1127   via the auth=ah parameter.
1128
1129 - The command ipsec scencrypt|scdecrypt <args> is now an alias for
1130   ipsec whack --scencrypt|scdecrypt <args>.
1131
1132 - get_sa_info() now determines for the native netkey IPsec stack
1133   the exact time of the last use of an active eroute. This information
1134   is used by the Dead Peer Detection algorithm and is also displayed by
1135   the ipsec status command.
1136
1137
1138 strongswan-2.6.2
1139 ----------------
1140
1141 - running under the native Linux 2.6 IPsec stack, the function
1142   get_sa_info() is called by ipsec auto --status to display the current
1143   number of transmitted bytes per IPsec SA.
1144
1145 - get_sa_info() is also used  by the Dead Peer Detection process to detect
1146   recent ESP activity. If ESP traffic was received from the peer within
1147   the last dpd_delay interval then no R_Y_THERE notification must be sent.
1148
1149 - strongSwan now supports the Relative Distinguished Name "unstructuredName"
1150   in ID_DER_ASN1_DN identities. The following notations are possible:
1151
1152     rightid="unstructuredName=John Doe"
1153     rightid="UN=John Doe"
1154
1155 - fixed a long-standing bug which caused PSK-based roadwarrior connections
1156   to segfault in the function id.c:same_id() called by keys.c:get_secret()
1157   if an FQDN, USER_FQDN, or Key ID was defined, as in the following example.
1158
1159   conn rw
1160        right=%any
1161        rightid=@foo.bar
1162        authby=secret
1163
1164 - the ipsec command now supports most ipsec auto commands (e.g. ipsec listall).
1165
1166 - ipsec starter didn't set host_addr and client.addr ports in whack msg.
1167
1168 - in order to guarantee backwards-compatibility with the script-based
1169   auto function (e.g. auto --replace), the ipsec starter scripts stores
1170   the defaultroute information in the temporary file /var/run/ipsec.info.
1171
1172 - The compile-time option USE_XAUTH_VID enables the sending of the XAUTH
1173   Vendor ID which is expected by Cisco PIX 7 boxes that act as IKE Mode Config
1174   servers.
1175
1176 - the ipsec starter now also recognizes the parameters authby=never and
1177   type=passthrough|pass|drop|reject.
1178
1179
1180 strongswan-2.6.1
1181 ----------------
1182
1183 - ipsec starter now supports the also parameter which allows
1184   a modular structure of the connection definitions. Thus
1185   "ipsec start" is now ready to replace "ipsec setup".
1186
1187
1188 strongswan-2.6.0
1189 ----------------
1190
1191 - Mathieu Lafon's popular ipsec starter tool has been added to the
1192   strongSwan distribution. Many thanks go to Stephan Scholz from astaro
1193   for his integration work. ipsec starter is a C program which is going
1194   to replace the various shell and awk starter scripts (setup, _plutoload,
1195   _plutostart, _realsetup, _startklips, _confread, and auto). Since
1196   ipsec.conf is now parsed only once, the starting of multiple tunnels is
1197   accelerated tremedously.
1198
1199 - Added support of %defaultroute to the ipsec starter. If the IP address
1200   changes, a HUP signal to the ipsec starter will automatically
1201   reload pluto's connections.
1202
1203 - moved most compile time configurations from pluto/Makefile to
1204   Makefile.inc by defining the options USE_LIBCURL, USE_LDAP,
1205   USE_SMARTCARD, and USE_NAT_TRAVERSAL_TRANSPORT_MODE.
1206
1207 - removed the ipsec verify and ipsec newhostkey commands
1208
1209 - fixed some 64-bit issues in formatted print statements
1210
1211 - The scepclient functionality implementing the Simple Certificate
1212   Enrollment Protocol (SCEP) is nearly complete but hasn't been
1213   documented yet.
1214
1215
1216 strongswan-2.5.7
1217 ----------------
1218
1219 - CA certicates are now automatically loaded from a smartcard
1220   or USB crypto token and appear in the ipsec auto --listcacerts
1221   listing.
1222
1223
1224 strongswan-2.5.6
1225 ----------------
1226
1227 - when using "ipsec whack --scencrypt <data>" with  a PKCS#11
1228   library that does not support the C_Encrypt() Cryptoki
1229   function (e.g. OpenSC), the RSA encryption is done in
1230   software using the public key fetched from the smartcard.
1231
1232 - The scepclient function now allows to define the
1233   validity of a self-signed certificate using the --days,
1234   --startdate, and --enddate options. The default validity
1235   has been changed from one year to five years.
1236
1237
1238 strongswan-2.5.5
1239 ----------------
1240
1241 - the config setup parameter pkcs11proxy=yes opens pluto's PKCS#11
1242   interface to other applications for RSA encryption and decryption
1243   via the whack interface. Notation:
1244
1245   ipsec whack --scencrypt <data>
1246              [--inbase  16|hex|64|base64|256|text|ascii]
1247              [--outbase 16|hex|64|base64|256|text|ascii]
1248              [--keyid <keyid>]
1249
1250   ipsec whack --scdecrypt <data>
1251              [--inbase  16|hex|64|base64|256|text|ascii]
1252              [--outbase 16|hex|64|base64|256|text|ascii]
1253              [--keyid <keyid>]
1254
1255   The default setting for inbase and outbase is hex.
1256
1257   The new proxy interface can be used for securing symmetric
1258   encryption keys required by the cryptoloop or dm-crypt
1259   disk encryption schemes, especially in the case when
1260   pkcs11keepstate=yes causes pluto to lock the pkcs11 slot
1261   permanently.
1262
1263 - if the file /etc/ipsec.secrets is lacking during the startup of
1264   pluto then the root-readable file /etc/ipsec.d/private/myKey.der
1265   containing a 2048 bit RSA private key and a matching self-signed
1266   certificate stored in the file /etc/ipsec.d/certs/selfCert.der
1267   is automatically generated by calling the function
1268
1269   ipsec scepclient --out pkcs1 --out cert-self
1270
1271   scepclient was written by Jan Hutter and Martin Willi, students
1272   at the University of Applied Sciences in Rapperswil, Switzerland.
1273
1274
1275 strongswan-2.5.4
1276 ----------------
1277
1278 - the current extension of the PKCS#7 framework introduced
1279   a parsing error in PKCS#7 wrapped X.509 certificates that are
1280   e.g. transmitted by Windows XP when multi-level CAs are used.
1281   the parsing syntax has been fixed.
1282
1283 - added a patch by Gerald Richter which tolerates multiple occurrences
1284   of the ipsec0 interface when using KLIPS.
1285
1286
1287 strongswan-2.5.3
1288 ----------------
1289
1290 - with gawk-3.1.4 the word "default2 has become a protected
1291   keyword for use in switch statements and cannot be used any
1292   more in the strongSwan scripts. This problem has been
1293   solved by renaming "default" to "defaults" and "setdefault"
1294   in the scripts _confread and auto, respectively.
1295
1296 - introduced the parameter leftsendcert with the values
1297
1298   always|yes (the default, always send a cert)
1299   ifasked    (send the cert only upon a cert request)
1300   never|no   (never send a cert, used for raw RSA keys and
1301               self-signed certs)
1302
1303 - fixed the initialization of the ESP key length to a default of
1304   128 bits in the case that the peer does not send a key length
1305    attribute for AES encryption.
1306
1307 - applied Herbert Xu's uniqueIDs patch
1308
1309 - applied Herbert Xu's CLOEXEC patches
1310
1311
1312 strongswan-2.5.2
1313 ----------------
1314
1315 - CRLs can now be cached also in the case when the issuer's
1316   certificate does not contain a subjectKeyIdentifier field.
1317   In that case the subjectKeyIdentifier is computed by pluto as the
1318   160 bit SHA-1 hash of the issuer's public key in compliance
1319   with section 4.2.1.2 of RFC 3280.
1320
1321 - Fixed a bug introduced by strongswan-2.5.1 which eliminated
1322   not only multiple Quick Modes of a given connection but also
1323   multiple connections between two security gateways.
1324
1325
1326 strongswan-2.5.1
1327 ----------------
1328
1329 - Under the native IPsec of the Linux 2.6 kernel, a %trap eroute
1330   installed either by setting auto=route in ipsec.conf or by
1331   a connection put into hold, generates an XFRM_AQUIRE event
1332   for each packet that wants to use the not-yet exisiting
1333   tunnel. Up to now each XFRM_AQUIRE event led to an entry in
1334   the Quick Mode queue, causing multiple IPsec SA to be
1335   established in rapid succession. Starting with strongswan-2.5.1
1336   only a single IPsec SA is established per host-pair connection.
1337
1338 - Right after loading the PKCS#11 module, all smartcard slots are
1339   searched for certificates. The result can be viewed using
1340   the command
1341
1342     ipsec auto --listcards
1343
1344   The certificate objects found in the slots are numbered
1345   starting with #1, #2, etc. This position number can be used to address
1346   certificates (leftcert=%smartcard) and keys (: PIN %smartcard)
1347   in ipsec.conf and ipsec.secrets, respectively:
1348
1349     %smartcard      (selects object #1)
1350     %smartcard#1    (selects object #1)
1351     %smartcard#3    (selects object #3)
1352
1353   As an alternative the existing retrieval scheme can be used:
1354
1355     %smartcard:45   (selects object with id=45)
1356     %smartcard0     (selects first object in slot 0)
1357     %smartcard4:45  (selects object in slot 4 with id=45)
1358
1359 - Depending on the settings of CKA_SIGN and CKA_DECRYPT
1360   private key flags either C_Sign() or C_Decrypt() is used
1361   to generate a signature.
1362
1363 - The output buffer length parameter siglen in C_Sign()
1364   is now initialized to the actual size of the output
1365   buffer prior to the function call. This fixes the
1366   CKR_BUFFER_TOO_SMALL error that could occur when using
1367   the OpenSC PKCS#11 module.
1368
1369 - Changed the initialization of the PKCS#11 CK_MECHANISM in
1370   C_SignInit() to mech  = { CKM_RSA_PKCS, NULL_PTR, 0 }.
1371
1372 - Refactored the RSA public/private key code and transferred it
1373   from keys.c to the new pkcs1.c file as a preparatory step
1374   towards the release of the SCEP client.
1375
1376
1377 strongswan-2.5.0
1378 ----------------
1379
1380 - The loading of a PKCS#11 smartcard library module during
1381   runtime does not require OpenSC library functions any more
1382   because the corresponding code has been integrated into
1383   smartcard.c. Also the RSAREF pkcs11 header files have been
1384   included in a newly created pluto/rsaref directory so that
1385   no external include path has to be defined any longer.
1386
1387 - A long-awaited feature has been implemented at last:
1388   The local caching of CRLs fetched via HTTP or LDAP, activated
1389   by the parameter cachecrls=yes in the config setup section
1390   of ipsec.conf. The dynamically fetched CRLs are stored under
1391   a unique file name containing the issuer's subjectKeyID
1392   in /etc/ipsec.d/crls.
1393
1394 - Applied a one-line patch courtesy of Michael Richardson
1395   from the Openswan project which fixes the kernel-oops
1396   in KLIPS when an snmp daemon is running on the same box.
1397
1398
1399 strongswan-2.4.4
1400 ----------------
1401
1402 - Eliminated null length CRL distribution point strings.
1403
1404 - Fixed a trust path evaluation bug introduced with 2.4.3
1405
1406
1407 strongswan-2.4.3
1408 ----------------
1409
1410 - Improved the joint OCSP / CRL revocation policy.
1411   OCSP responses have precedence over CRL entries.
1412
1413 - Introduced support of CRLv2 reason codes.
1414
1415 - Fixed a bug with key-pad equipped readers which caused
1416   pluto to prompt for the pin via the console when the first
1417   occasion to enter the pin via the key-pad was missed.
1418
1419 - When pluto is built with LDAP_V3 enabled, the library
1420   liblber required by newer versions of openldap is now
1421   included.
1422
1423
1424 strongswan-2.4.2
1425 ----------------
1426
1427 - Added the _updown_espmark template which requires all
1428   incoming ESP traffic to be marked with a default mark
1429   value of 50.
1430
1431 - Introduced the pkcs11keepstate parameter in the config setup
1432   section of ipsec.conf. With pkcs11keepstate=yes the PKCS#11
1433   session and login states are kept as long as possible during
1434   the lifetime of pluto. This means that a PIN entry via a key
1435   pad has to be done only once.
1436
1437 - Introduced the pkcs11module parameter in the config setup
1438   section of ipsec.conf which specifies the PKCS#11 module
1439   to be used with smart cards. Example:
1440
1441     pkcs11module=/usr/lib/pkcs11/opensc-pkcs11.lo
1442
1443 - Added support of smartcard readers equipped with a PIN pad.
1444
1445 - Added patch by Jay Pfeifer which detects when netkey
1446   modules have been statically built into the Linux 2.6 kernel.
1447
1448 - Added two patches by Herbert Xu. The first uses ip xfrm
1449   instead of setkey to flush the IPsec policy database. The
1450   second sets the optional flag in inbound IPComp SAs only.
1451
1452 - Applied Ulrich Weber's patch which fixes an interoperability
1453   problem between native IPsec and KLIPS systems caused by
1454   setting the replay window to 32 instead of 0 for ipcomp.
1455
1456
1457 strongswan-2.4.1
1458 ----------------
1459
1460 - Fixed a bug which caused an unwanted Mode Config request
1461   to be initiated in the case where "right" was used to denote
1462   the local side in ipsec.conf and "left" the remote side,
1463   contrary to the recommendation that "right" be remote and
1464   "left" be"local".
1465
1466
1467 strongswan-2.4.0a
1468 -----------------
1469
1470 - updated Vendor ID to strongSwan-2.4.0
1471
1472 - updated copyright statement to include David Buechi and
1473   Michael Meier
1474
1475
1476 strongswan-2.4.0
1477 ----------------
1478
1479 - strongSwan now communicates with attached smartcards and
1480   USB crypto tokens via the standardized PKCS #11 interface.
1481   By default the OpenSC library from www.opensc.org is used
1482   but any other PKCS#11 library could be dynamically linked.
1483   strongSwan's PKCS#11 API was implemented by David Buechi
1484   and Michael Meier, both graduates of the Zurich University
1485   of Applied Sciences in Winterthur, Switzerland.
1486
1487 - When a %trap eroute is triggered by an outgoing IP packet
1488   then the native IPsec stack of the Linux 2.6 kernel [often/
1489   always?] returns an XFRM_ACQUIRE message with an undefined
1490   protocol family field and the connection setup fails.
1491   As a workaround IPv4 (AF_INET) is now assumed.
1492
1493 - the results of the UML test scenarios are now enhanced
1494   with block diagrams of the virtual network topology used
1495   in a particular test.
1496
1497
1498 strongswan-2.3.2
1499 ----------------
1500
1501 - fixed IV used to decrypt informational messages.
1502   This bug was introduced with Mode Config functionality.
1503
1504 - fixed NCP Vendor ID.
1505
1506 - undid one of Ulrich Weber's maximum udp size patches
1507   because it caused a segmentation fault with NAT-ed
1508   Delete SA messages.
1509
1510 - added UML scenarios wildcards and attr-cert which
1511   demonstrate the implementation of IPsec policies based
1512   on wildcard parameters contained in Distinguished Names and
1513   on X.509 attribute certificates, respectively.
1514
1515
1516 strongswan-2.3.1
1517 ----------------
1518
1519 - Added basic Mode Config functionality
1520
1521 - Added Mathieu Lafon's patch which upgrades the status of
1522   the NAT-Traversal implementation to RFC 3947.
1523
1524 - The _startklips script now also loads the xfrm4_tunnel
1525   module.
1526
1527 - Added Ulrich Weber's netlink replay window size and
1528   maximum udp size patches.
1529
1530 - UML testing now uses the Linux 2.6.10 UML kernel by default.
1531
1532
1533 strongswan-2.3.0
1534 ----------------
1535
1536 - Eric Marchionni and Patrik Rayo, both recent graduates from
1537   the Zuercher Hochschule Winterthur in Switzerland, created a
1538   User-Mode-Linux test setup for strongSwan. For more details
1539   please read the INSTALL and README documents in the testing
1540   subdirectory.
1541
1542 - Full support of group attributes based on X.509 attribute
1543   certificates. Attribute certificates can be generated
1544   using the openac facility. For more details see
1545
1546   man ipsec_openac.
1547
1548   The group attributes can be used in connection definitions
1549   in order to give IPsec access to specific user groups.
1550   This is done with the new parameter left|rightgroups as in
1551
1552   rightgroups="Research, Sales"
1553
1554   giving access to users possessing the group attributes
1555   Research or Sales, only.
1556
1557 - In Quick Mode clients with subnet mask /32 are now
1558   coded as IP_V4_ADDRESS or IP_V6_ADDRESS. This should
1559   fix rekeying problems with the SafeNet/SoftRemote and NCP
1560   Secure Entry Clients.
1561
1562 - Changed the defaults of the ikelifetime and keylife parameters
1563   to 3h and 1h, respectively. The maximum allowable values are
1564   now both set to 24 h.
1565
1566 - Suppressed notification wars between two IPsec peers that
1567   could e.g. be triggered by incorrect ISAKMP encryption.
1568
1569 - Public RSA keys can now have identical IDs if either the
1570   issuing CA or the serial number is different. The serial
1571   number of a certificate is now shown by the command
1572
1573   ipsec auto --listpubkeys
1574
1575
1576 strongswan-2.2.2
1577 ----------------
1578
1579 - Added Tuomo Soini's sourceip feature which allows a strongSwan
1580   roadwarrior to use a fixed Virtual IP (see README section 2.6)
1581   and reduces the well-known four tunnel case on VPN gateways to
1582   a single tunnel definition (see README section 2.4).
1583
1584 - Fixed a bug occuring with NAT-Traversal enabled when the responder
1585   suddenly turns initiator and the initiator cannot find a matching
1586   connection because of the floated IKE port 4500.
1587
1588 - Removed misleading ipsec verify command from barf.
1589
1590 - Running under the native IP stack, ipsec --version now shows
1591   the Linux kernel version (courtesy to the Openswan project).
1592
1593
1594 strongswan-2.2.1
1595 ----------------
1596
1597 - Introduced the ipsec auto --listalgs monitoring command which lists
1598   all currently registered IKE and ESP algorithms.
1599
1600 - Fixed a bug in the ESP algorithm selection occuring when the strict flag
1601   is set and the first proposed transform does not match.
1602
1603 - Fixed another deadlock in the use of the lock_certs_and_keys() mutex,
1604   occuring when a smartcard is present.
1605
1606 - Prevented that a superseded Phase1 state can trigger a DPD_TIMEOUT event.
1607
1608 - Fixed the printing of the notification names (null)
1609
1610 - Applied another of Herbert Xu's Netlink patches.
1611
1612
1613 strongswan-2.2.0
1614 ----------------
1615
1616 - Support of Dead Peer Detection. The connection parameter
1617
1618     dpdaction=clear|hold
1619
1620   activates DPD for the given connection.
1621
1622 - The default Opportunistic Encryption (OE) policy groups are not
1623   automatically included anymore. Those wishing to activate OE can include
1624   the policy group with the following statement in ipsec.conf:
1625
1626     include /etc/ipsec.d/examples/oe.conf
1627
1628   The default for [right|left]rsasigkey is now set to %cert.
1629
1630 - strongSwan now has a Vendor ID of its own which can be activated
1631   using the compile option VENDORID
1632
1633 - Applied Herbert Xu's patch which sets the compression algorithm correctly.
1634
1635 - Applied Herbert Xu's patch fixing an ESPINUDP problem
1636
1637 - Applied Herbert Xu's patch setting source/destination port numbers.
1638
1639 - Reapplied one of Herbert Xu's NAT-Traversal patches which got
1640   lost during the migration from SuperFreeS/WAN.
1641
1642 - Fixed a deadlock in the use of the lock_certs_and_keys() mutex.
1643
1644 - Fixed the unsharing of alg parameters when instantiating group
1645   connection.
1646
1647
1648 strongswan-2.1.5
1649 ----------------
1650
1651 - Thomas Walpuski made me aware of a potential DoS attack via
1652   a PKCS#7-wrapped certificate bundle which could overwrite valid CA
1653   certificates in Pluto's authority certificate store. This vulnerability
1654   was fixed by establishing trust in CA candidate certificates up to a
1655   trusted root CA prior to insertion into Pluto's chained list.
1656
1657 - replaced the --assign option by the -v option in the auto awk script
1658   in order to make it run with mawk under debian/woody.
1659
1660
1661 strongswan-2.1.4
1662 ----------------
1663
1664 - Split of the status information between ipsec auto  --status (concise)
1665   and ipsec auto --statusall (verbose). Both commands can be used with
1666   an optional connection selector:
1667
1668     ipsec auto --status[all] <connection_name>
1669
1670 - Added the description of X.509 related features to the ipsec_auto(8)
1671   man page.
1672
1673 - Hardened the ASN.1 parser in debug mode, especially the printing
1674   of malformed distinguished names.
1675
1676 - The size of an RSA public key received in a certificate is now restricted to
1677
1678     512 bits <= modulus length <= 8192 bits.
1679
1680 - Fixed the debug mode enumeration.
1681
1682
1683 strongswan-2.1.3
1684 ----------------
1685
1686 - Fixed another PKCS#7 vulnerability which could lead to an
1687   endless loop while following the X.509 trust chain.
1688
1689
1690 strongswan-2.1.2
1691 ----------------
1692
1693 - Fixed the PKCS#7 vulnerability discovered by Thomas Walpuski
1694   that accepted end certificates having identical issuer and subject
1695   distinguished names in a multi-tier X.509 trust chain.
1696
1697
1698 strongswan-2.1.1
1699 ----------------
1700
1701 - Removed all remaining references to ipsec_netlink.h in KLIPS.
1702
1703
1704 strongswan-2.1.0
1705 ----------------
1706
1707 - The new "ca" section allows to define the following parameters:
1708
1709   ca kool
1710      cacert=koolCA.pem                   # cacert of kool CA
1711      ocspuri=http://ocsp.kool.net:8001   # ocsp server
1712      ldapserver=ldap.kool.net            # default ldap server
1713      crluri=http://www.kool.net/kool.crl # crl distribution point
1714      crluri2="ldap:///O=Kool, C= .."     # crl distribution point #2
1715      auto=add                            # add, ignore
1716
1717   The ca definitions can be monitored via the command
1718
1719      ipsec auto --listcainfos
1720
1721 - Fixed cosmetic corruption of /proc filesystem by integrating
1722   D. Hugh Redelmeier's freeswan-2.06 kernel fixes.
1723
1724
1725 strongswan-2.0.2
1726 ----------------
1727
1728 - Added support for the 818043 NAT-Traversal update of Microsoft's
1729   Windows 2000/XP IPsec client which sends an ID_FQDN during Quick Mode.
1730
1731 - A symbolic link to libcrypto is now added in the kernel sources
1732   during kernel compilation
1733
1734 - Fixed a couple of 64 bit issues (mostly casts to int).
1735   Thanks to Ken Bantoft who checked my sources on a 64 bit platform.
1736
1737 - Replaced s[n]printf() statements in the kernel by ipsec_snprintf().
1738   Credits go to D. Hugh Redelmeier, Michael Richardson, and Sam Sgro
1739   of the FreeS/WAN team who solved this problem with the 2.4.25 kernel.
1740
1741
1742 strongswan-2.0.1
1743 ----------------
1744
1745 - an empty ASN.1 SEQUENCE OF or SET OF object (e.g. a subjectAltName
1746   certificate extension which contains no generalName item)  can cause
1747   a pluto crash. This bug has been fixed. Additionally the ASN.1 parser has
1748   been hardened to make it more robust against malformed ASN.1 objects.
1749
1750 - applied Herbert Xu's NAT-T patches which fixes NAT-T under the native
1751   Linux 2.6 IPsec stack.
1752
1753
1754 strongswan-2.0.0
1755 ----------------
1756
1757 - based on freeswan-2.04, x509-1.5.3, nat-0.6c, alg-0.8.1rc12