version bump to 4.2.0
[strongswan.git] / NEWS
1 strongswan-4.2.0
2 ----------------
3
4 -
5
6
7 strongswan-4.1.10
8 -----------------
9
10 - Fixed error in the ordering of the certinfo_t records in the ocsp cache that
11   caused multiple entries of the same serial number to be created. 
12
13 - Implementation of a simple EAP-MD5 module which provides CHAP
14   authentication. This may be interesting in conjunction with certificate
15   based server authentication, as weak passwords can't be brute forced
16   (in contradiction to traditional IKEv2 PSK).
17
18 - A complete software based implementation of EAP-AKA, using algorithms
19   specified in 3GPP2 (S.S0055). This implementation does not use an USIM,
20   but reads the secrets from ipsec.secrets. Make sure to read eap_aka.h
21   before using it.
22
23 - Support for vendor specific EAP methods using Expanded EAP types. The
24   interface to EAP modules has been slightly changed, so make sure to 
25   check the changes if you're already rolling your own modules.
26
27
28 strongswan-4.1.9
29 ----------------
30
31 - The default _updown script now dynamically inserts and removes ip6tables
32   firewall rules if leftfirewall=yes is set in IPv6 connections. New IPv6
33   net-net and roadwarrior (PSK/RSA) scenarios for both IKEv1 and IKEV2 were
34   added.
35
36 - Implemented RFC4478 repeated authentication to force EAP/Virtual-IP clients
37   to reestablish an IKE_SA within a given timeframe.
38
39 - strongSwan Manager supports configuration listing, initiation and termination
40   of IKE and CHILD_SAs.
41
42 - Fixes and improvements to multithreading code.
43
44 - IKEv2 plugins have been renamed to libcharon-* to avoid naming conflicts.
45   Make sure to remove the old plugins in $libexecdir/ipsec, otherwise they get 
46   loaded twice.
47
48
49 strongswan-4.1.8
50 ----------------
51
52 - Removed recursive pthread mutexes since uClibc doesn't support them.
53
54
55 strongswan-4.1.7
56 ----------------
57
58 - In NAT traversal situations and multiple queued Quick Modes,
59   those pending connections inserted by auto=start after the
60   port floating from 500 to 4500 were erronously deleted.
61
62 - Added a "forceencaps" connection parameter to enforce UDP encapsulation
63   to surmount restrictive firewalls. NAT detection payloads are faked to
64   simulate a NAT situation and trick the other peer into NAT mode (IKEv2 only).
65
66 - Preview of strongSwan Manager, a web based configuration and monitoring
67   application. It uses a new XML control interface to query the IKEv2 daemon
68   (see http://trac.strongswan.org/wiki/Manager).
69
70 - Experimental SQLite configuration backend which will provide the configuration
71   interface for strongSwan Manager in future releases.
72
73 - Further improvements to MOBIKE support.
74
75
76 strongswan-4.1.6
77 ----------------
78
79 - Since some third party IKEv2 implementations run into
80   problems with strongSwan announcing MOBIKE capability per
81   default, MOBIKE can be disabled on a per-connection-basis
82   using the mobike=no option. Whereas mobike=no disables the
83   sending of the MOBIKE_SUPPORTED notification and the floating
84   to UDP port 4500 with the IKE_AUTH request even if no NAT
85   situation has been detected, strongSwan will still support
86   MOBIKE acting as a responder.
87
88 - the default ipsec routing table plus its corresponding priority
89   used for inserting source routes has been changed from 100 to 220.
90   It can be configured using the --with-ipsec-routing-table and
91   --with-ipsec-routing-table-prio options. 
92   
93 - the --enable-integrity-test configure option tests the
94   integrity of the libstrongswan crypto code during the charon
95   startup.
96   
97 - the --disable-xauth-vid configure option disables the sending
98   of the XAUTH vendor ID. This can be used as a workaround when
99   interoperating with some Windows VPN clients that get into
100   trouble upon reception of an XAUTH VID without eXtended
101   AUTHentication having been configured.
102   
103 - ipsec stroke now supports the rereadsecrets, rereadaacerts,
104   rereadacerts, and listacerts options.
105
106
107 strongswan-4.1.5
108 ----------------
109
110 - If a DNS lookup failure occurs when resolving right=%<FQDN>
111   or right=<FQDN> combined with rightallowany=yes then the
112   connection is not updated by ipsec starter thus preventing
113   the disruption of an active IPsec connection. Only if the DNS
114   lookup successfully returns with a changed IP address the
115   corresponding connection definition is updated.
116
117 - Routes installed by the keying daemons are now in a separate
118   routing table with the ID 100 to avoid conflicts with the main
119   table. Route lookup for IKEv2 traffic is done in userspace to ignore
120   routes installed for IPsec, as IKE traffic shouldn't get encapsulated.
121
122
123 strongswan-4.1.4
124 ----------------
125
126 - The pluto IKEv1 daemon now exhibits the same behaviour as its
127   IKEv2 companion charon by inserting an explicit route via the
128   _updown script only if a sourceip exists. This is admissible
129   since routing through the IPsec tunnel is handled automatically
130   by NETKEY's IPsec policies. As a consequence the left|rightnexthop
131   parameter is not required any more.
132
133 - The new IKEv1 parameter right|leftallowany parameters helps to handle
134   the case where both peers possess dynamic IP addresses that are
135   usually resolved using DynDNS or a similar service. The configuration
136
137     right=peer.foo.bar
138     rightallowany=yes
139
140   can be used by the initiator to start up a connection to a peer
141   by resolving peer.foo.bar into the currently allocated IP address.
142   Thanks to the rightallowany flag the connection behaves later on
143   as
144
145    right=%any
146
147   so that the peer can rekey the connection as an initiator when his
148   IP address changes. An alternative notation is
149
150     right=%peer.foo.bar
151
152   which will implicitly set rightallowany=yes.
153
154 - ipsec starter now fails more gracefully in the presence of parsing
155   errors. Flawed ca and conn section are discarded and pluto is started
156   if non-fatal errors only were encountered. If right=%peer.foo.bar
157   cannot be resolved by DNS then right=%any will be used so that passive
158   connections as a responder are still possible.
159
160 - The new pkcs11initargs parameter that can be placed in the
161   setup config section of /etc/ipsec.conf allows the definition
162   of an argument string that is used with the PKCS#11 C_Initialize()
163   function. This non-standard feature is required by the NSS softoken
164   library. This patch was contributed by Robert Varga.
165         
166 - Fixed a bug in ipsec starter introduced by strongswan-2.8.5
167   which caused a segmentation fault in the presence of unknown
168   or misspelt keywords in ipsec.conf. This bug fix was contributed
169   by Robert Varga.
170
171 - Partial support for MOBIKE in IKEv2. The initiator acts on interface/
172   address configuration changes and updates IKE and IPsec SAs dynamically.
173
174
175 strongswan-4.1.3
176 ----------------
177
178 - IKEv2 peer configuration selection now can be based on a given 
179   certification authority using the rightca= statement.
180
181 - IKEv2 authentication based on RSA signatures now can handle multiple
182   certificates issued for a given peer ID. This allows a smooth transition
183   in the case of a peer certificate renewal.
184
185 - IKEv2: Support for requesting a specific virtual IP using leftsourceip on the
186   client and returning requested virtual IPs using rightsourceip=%config
187   on the server. If the server does not support configuration payloads, the
188   client enforces its leftsourceip parameter.
189
190 - The ./configure options --with-uid/--with-gid allow pluto and charon
191   to drop their privileges to a minimum and change to an other UID/GID. This
192   improves the systems security, as a possible intruder may only get the
193   CAP_NET_ADMIN capability.
194
195 - Further modularization of charon: Pluggable control interface and 
196   configuration backend modules provide extensibility. The control interface
197   for stroke is included, and further interfaces using DBUS (NetworkManager)
198   or XML are on the way. A backend for storing configurations in the daemon
199   is provided and more advanced backends (using e.g. a database) are trivial 
200   to implement.
201
202  - Fixed a compilation failure in libfreeswan occuring with Linux kernel
203    headers > 2.6.17.
204
205
206 strongswan-4.1.2
207 ----------------
208
209 - Support for an additional Diffie-Hellman exchange when creating/rekeying
210   a CHILD_SA in IKEv2 (PFS). PFS is enabled when the proposal contains a
211   DH group (e.g. "esp=aes128-sha1-modp1536"). Further, DH group negotiation
212   is implemented properly for rekeying.
213
214 - Support for the AES-XCBC-96 MAC algorithm for IPsec SAs when using IKEv2
215   (requires linux >= 2.6.20). It is enabled using e.g. "esp=aes256-aesxcbc".
216
217 - Working IPv4-in-IPv6 and IPv6-in-IPv4 tunnels for linux >= 2.6.21.
218
219 - Added support for EAP modules which do not establish an MSK.
220
221 - Removed the dependencies from the /usr/include/linux/ headers by
222   including xfrm.h, ipsec.h, and pfkeyv2.h in the distribution.
223   
224 - crlNumber is now listed by ipsec listcrls
225
226 - The xauth_modules.verify_secret() function now passes the
227   connection name.
228
229
230 strongswan-4.1.1
231 ----------------
232
233 - Server side cookie support. If to may IKE_SAs are in CONNECTING state,
234   cookies are enabled and protect against DoS attacks with faked source
235   addresses. Number of IKE_SAs in CONNECTING state is also limited per
236   peer address to avoid resource exhaustion. IKE_SA_INIT messages are
237   compared to properly detect retransmissions and incoming retransmits are
238   detected even if the IKE_SA is blocked (e.g. doing OCSP fetches).
239
240 - The IKEv2 daemon charon now supports dynamic http- and ldap-based CRL
241   fetching enabled by crlcheckinterval > 0 and caching fetched CRLs
242   enabled by cachecrls=yes.
243
244 - Added the configuration options --enable-nat-transport which enables
245   the potentially insecure NAT traversal for IPsec transport mode and
246   --disable-vendor-id which disables the sending of the strongSwan
247   vendor ID.
248
249 - Fixed a long-standing bug in the pluto IKEv1 daemon which caused
250   a segmentation fault if a malformed payload was detected in the
251   IKE MR2 message and pluto tried to send an encrypted notification
252   message.
253
254 - Added the NATT_IETF_02_N Vendor ID in order to support IKEv1 connections
255   with Windows 2003 Server which uses a wrong VID hash.
256
257
258 strongswan-4.1.0
259 ----------------
260
261 - Support of SHA2_384 hash function for protecting IKEv1
262   negotiations and support of SHA2 signatures in X.509 certificates.
263
264 - Fixed a serious bug in the computation of the SHA2-512 HMAC
265   function. Introduced automatic self-test of all IKEv1 hash
266   and hmac functions during pluto startup. Failure of a self-test
267   currently issues a warning only but does not exit pluto [yet].
268
269 - Support for SHA2-256/384/512 PRF and HMAC functions in IKEv2.
270
271 - Full support of CA information sections. ipsec listcainfos
272   now shows all collected crlDistributionPoints and OCSP 
273   accessLocations.
274
275 - Support of the Online Certificate Status Protocol (OCSP) for IKEv2.
276   This feature requires the HTTP fetching capabilities of the libcurl
277   library which must be enabled by setting the --enable-http configure
278   option.
279
280 - Refactored core of the IKEv2 message processing code, allowing better
281   code reuse and separation.
282
283 - Virtual IP support in IKEv2 using INTERNAL_IP4/6_ADDRESS configuration
284   payload. Additionally, the INTERNAL_IP4/6_DNS attribute is interpreted
285   by the requestor and installed in a resolv.conf file.
286
287 - The IKEv2 daemon charon installs a route for each IPsec policy to use
288   the correct source address even if an application does not explicitly
289   specify it.
290
291 - Integrated the EAP framework into charon which loads pluggable EAP library
292   modules. The ipsec.conf parameter authby=eap initiates EAP authentication
293   on the client side, while the "eap" parameter on the server side defines
294   the EAP method to use for client authentication.
295   A generic client side EAP-Identity module and an EAP-SIM authentication
296   module using a third party card reader implementation are included.
297
298 - Added client side support for cookies.
299
300 - Integrated the fixes done at the IKEv2 interoperability bakeoff, including
301   strict payload order, correct INVALID_KE_PAYLOAD rejection and other minor
302   fixes to enhance interoperability with other implementations.
303
304
305 strongswan-4.0.7
306 ----------------
307
308 - strongSwan now interoperates with the NCP Secure Entry Client,
309   the Shrew Soft VPN Client, and the Cisco VPN client, doing both
310   XAUTH and Mode Config.
311
312 - UNITY attributes are now recognized and UNITY_BANNER is set
313   to a default string.
314
315
316 strongswan-4.0.6
317 ----------------
318
319 - IKEv1: Support for extended authentication (XAUTH) in combination
320   with ISAKMP Main Mode RSA or PSK authentication. Both client and
321   server side were implemented. Handling of user credentials can
322   be done by a run-time loadable XAUTH module. By default user
323   credentials are stored in ipsec.secrets. 
324           
325 - IKEv2: Support for reauthentication when rekeying
326
327 - IKEv2: Support for transport mode
328
329 - fixed a lot of bugs related to byte order
330
331 - various other bugfixes
332
333
334 strongswan-4.0.5
335 ----------------
336
337 - IKEv1: Implementation of ModeConfig push mode via the new connection
338   keyword modeconfig=push allows interoperability with Cisco VPN gateways.
339
340 - IKEv1: The command ipsec statusall now shows "DPD active" for all
341   ISAKMP SAs that are under active Dead Peer Detection control.
342
343 - IKEv2: Charon's logging and debugging framework has been completely rewritten.
344   Instead of logger, special printf() functions are used to directly
345   print objects like hosts (%H) identifications (%D), certificates (%Q),
346   etc. The number of debugging levels have been reduced to:
347
348     0 (audit), 1 (control), 2 (controlmore),  3 (raw), 4 (private)
349
350   The debugging levels can either be specified statically in ipsec.conf as
351
352     config setup
353            charondebug="lib 1, cfg 3, net 2"
354
355   or changed at runtime via stroke as
356
357     ipsec stroke loglevel cfg 2
358
359
360 strongswan-4.0.4
361 ----------------
362
363 - Implemented full support for IPv6-in-IPv6 tunnels.
364
365 - Added configuration options for dead peer detection in IKEv2. dpd_action
366   types "clear", "hold" and "restart" are supported. The dpd_timeout
367   value is not used, as the normal retransmission policy applies to
368   detect dead peers. The dpd_delay parameter enables sending of empty
369   informational message to detect dead peers in case of inactivity.
370
371 - Added support for preshared keys in IKEv2. PSK keys configured in
372   ipsec.secrets are loaded. The authby parameter specifies the authentication
373   method to authentificate ourself, the other peer may use PSK or RSA.
374
375 - Changed retransmission policy to respect the keyingtries parameter.
376
377 - Added private key decryption. PEM keys encrypted with AES-128/192/256
378   or 3DES are supported.
379
380 - Implemented DES/3DES algorithms in libstrongswan. 3DES can be used to
381   encrypt IKE traffic.
382
383 - Implemented SHA-256/384/512 in libstrongswan, allows usage of certificates
384   signed with such a hash algorithm.
385
386 - Added initial support for updown scripts. The actions up-host/client and
387   down-host/client are executed. The leftfirewall=yes parameter
388   uses the default updown script to insert dynamic firewall rules, a custom
389   updown script may be specified with the leftupdown parameter.
390
391
392 strongswan-4.0.3
393 ----------------
394
395 - Added support for the auto=route ipsec.conf parameter and the
396   ipsec route/unroute commands for IKEv2. This allows to set up IKE_SAs and 
397   CHILD_SAs dynamically on demand when traffic is detected by the 
398   kernel.
399
400 - Added support for rekeying IKE_SAs in IKEv2 using the ikelifetime parameter.
401   As specified in IKEv2, no reauthentication is done (unlike in IKEv1), only
402   new keys are generated using perfect forward secrecy. An optional flag
403   which enforces reauthentication will be implemented later.
404
405 - "sha" and "sha1" are now treated as synonyms in the ike= and esp=
406   algorithm configuration statements.
407
408
409 strongswan-4.0.2
410 ----------------
411
412 - Full X.509 certificate trust chain verification has been implemented.
413   End entity certificates can be exchanged via CERT payloads. The current
414   default is leftsendcert=always, since CERTREQ payloads are not supported
415   yet. Optional CRLs must be imported locally into /etc/ipsec.d/crls.
416
417 - Added support for leftprotoport/rightprotoport parameters in IKEv2. IKEv2 
418   would offer more possibilities for traffic selection, but the Linux kernel
419   currently does not support it. That's why we stick with these simple 
420   ipsec.conf rules for now.
421
422 - Added Dead Peer Detection (DPD) which checks liveliness of remote peer if no
423   IKE or ESP traffic is received. DPD is currently hardcoded (dpdaction=clear,
424   dpddelay=60s).
425
426 - Initial NAT traversal support in IKEv2. Charon includes NAT detection
427   notify payloads to detect NAT routers between the peers. It switches
428   to port 4500, uses UDP encapsulated ESP packets, handles peer address
429   changes gracefully and sends keep alive message periodically.
430
431 - Reimplemented IKE_SA state machine for charon, which allows simultaneous 
432   rekeying, more shared code, cleaner design, proper retransmission 
433   and a more extensible code base.
434
435 - The mixed PSK/RSA roadwarrior detection capability introduced by the
436   strongswan-2.7.0 release necessitated the pre-parsing of the IKE proposal
437   payloads by the responder right before any defined IKE Main Mode state had
438   been established. Although any form of bad proposal syntax was being correctly
439   detected by the payload parser, the subsequent error handler didn't check
440   the state pointer before logging current state information, causing an
441   immediate crash of the pluto keying daemon due to a NULL pointer.
442
443
444 strongswan-4.0.1
445 ----------------
446
447 - Added algorithm selection to charon: New default algorithms for 
448   ike=aes128-sha-modp2048, as both daemons support it. The default
449   for IPsec SAs is now esp=aes128-sha,3des-md5. charon handles
450   the ike/esp parameter the same way as pluto. As this syntax does
451   not allow specification of a pseudo random function, the same 
452   algorithm as for integrity is used (currently sha/md5). Supported
453   algorithms for IKE:
454     Encryption: aes128, aes192, aes256
455     Integrity/PRF: md5, sha (using hmac)
456     DH-Groups: modp768, 1024, 1536, 2048, 4096, 8192
457   and for ESP:
458     Encryption: aes128, aes192, aes256, 3des, blowfish128, 
459                 blowfish192, blowfish256
460     Integrity: md5, sha1
461   More IKE encryption algorithms will come after porting libcrypto into
462   libstrongswan. 
463
464 - initial support for rekeying CHILD_SAs using IKEv2. Currently no
465   perfect forward secrecy is used. The rekeying parameters rekey,
466   rekeymargin, rekeyfuzz and keylife from ipsec.conf are now supported
467   when using IKEv2. WARNING: charon currently is unable to handle
468   simultaneous rekeying. To avoid such a situation, use a large
469   rekeyfuzz, or even better, set rekey=no on one peer.
470
471 - support for host2host, net2net, host2net (roadwarrior) tunnels
472   using predefined RSA certificates (see uml scenarios for
473   configuration examples).
474
475 - new build environment featuring autotools. Features such
476   as HTTP, LDAP and smartcard support may be enabled using
477   the ./configure script. Changing install directories 
478   is possible, too. See ./configure --help for more details.
479
480 - better integration of charon with ipsec starter, which allows
481   (almost) transparent operation with both daemons. charon
482   handles ipsec commands up, down, status, statusall, listall,
483   listcerts and allows proper load, reload and delete of connections
484   via ipsec starter.
485
486
487 strongswan-4.0.0
488 ----------------
489
490 - initial support of the IKEv2 protocol. Connections in
491   ipsec.conf designated by keyexchange=ikev2 are negotiated 
492   by the new IKEv2 charon keying daemon whereas those marked
493   by keyexchange=ikev1 or the default keyexchange=ike are
494   handled thy the IKEv1 pluto keying daemon. Currently only
495   a limited subset of functions are available with IKEv2
496   (Default AES encryption, authentication based on locally
497   imported X.509 certificates, unencrypted private RSA keys
498   in PKCS#1 file format, limited functionality of the ipsec
499   status command).
500
501
502 strongswan-2.7.0
503 ----------------
504
505 - the dynamic iptables rules from the _updown_x509 template
506   for KLIPS and the _updown_policy template for NETKEY have
507   been merged into the default _updown script. The existing
508   left|rightfirewall keyword causes the automatic insertion
509   and deletion of ACCEPT rules for tunneled traffic upon
510   the successful setup and teardown of an IPsec SA, respectively.
511   left|rightfirwall can be used with KLIPS under any Linux 2.4
512   kernel or with NETKEY under a Linux kernel version >= 2.6.16
513   in conjuction with iptables >= 1.3.5. For NETKEY under a Linux
514   kernel version < 2.6.16 which does not support IPsec policy
515   matching yet, please continue to use a copy of the _updown_espmark
516   template loaded via the left|rightupdown keyword.
517
518 - a new left|righthostaccess keyword has been introduced which
519   can be used in conjunction with left|rightfirewall and the
520   default _updown script. By default leftfirewall=yes inserts
521   a bi-directional iptables FORWARD rule for a local client network
522   with a netmask different from 255.255.255.255 (single host).
523   This does not allow to access the VPN gateway host via its
524   internal network interface which is part of the client subnet
525   because an iptables INPUT and OUTPUT rule would be required.
526   lefthostaccess=yes will cause this additional ACCEPT rules to
527   be inserted. 
528
529 - mixed PSK|RSA roadwarriors are now supported. The ISAKMP proposal
530   payload is preparsed in order to find out whether the roadwarrior
531   requests PSK or RSA so that a matching connection candidate can
532   be found.
533
534
535 strongswan-2.6.4
536 ----------------
537
538 - the new _updown_policy template allows ipsec policy based
539   iptables firewall rules. Required are iptables version
540   >= 1.3.5 and linux kernel >= 2.6.16. This script obsoletes
541   the _updown_espmark template, so that no INPUT mangle rules 
542   are required any more.
543
544 - added support of DPD restart mode
545
546 - ipsec starter now allows the use of wildcards in include
547   statements as e.g. in "include /etc/my_ipsec/*.conf".
548   Patch courtesy of Matthias Haas.
549
550 - the Netscape OID 'employeeNumber' is now recognized and can be
551   used as a Relative Distinguished Name in certificates.
552
553
554 strongswan-2.6.3
555 ----------------
556
557 - /etc/init.d/ipsec or /etc/rc.d/ipsec is now a copy of the ipsec 
558   command and not of ipsec setup any more.
559
560 - ipsec starter now supports AH authentication in conjunction with
561   ESP encryption. AH authentication is configured in ipsec.conf
562   via the auth=ah parameter.
563   
564 - The command ipsec scencrypt|scdecrypt <args> is now an alias for
565   ipsec whack --scencrypt|scdecrypt <args>.
566
567 - get_sa_info() now determines for the native netkey IPsec stack
568   the exact time of the last use of an active eroute. This information
569   is used by the Dead Peer Detection algorithm and is also displayed by
570   the ipsec status command.
571   
572
573 strongswan-2.6.2
574 ----------------
575
576 - running under the native Linux 2.6 IPsec stack, the function
577   get_sa_info() is called by ipsec auto --status to display the current
578   number of transmitted bytes per IPsec SA.
579
580 - get_sa_info() is also used  by the Dead Peer Detection process to detect
581   recent ESP activity. If ESP traffic was received from the peer within
582   the last dpd_delay interval then no R_Y_THERE notification must be sent.
583
584 - strongSwan now supports the Relative Distinguished Name "unstructuredName"
585   in ID_DER_ASN1_DN identities. The following notations are possible:
586
587     rightid="unstructuredName=John Doe"
588     rightid="UN=John Doe"
589
590 - fixed a long-standing bug which caused PSK-based roadwarrior connections
591   to segfault in the function id.c:same_id() called by keys.c:get_secret()
592   if an FQDN, USER_FQDN, or Key ID was defined, as in the following example.
593
594   conn rw
595        right=%any
596        rightid=@foo.bar
597        authby=secret
598
599 - the ipsec command now supports most ipsec auto commands (e.g. ipsec listall).
600
601 - ipsec starter didn't set host_addr and client.addr ports in whack msg.
602
603 - in order to guarantee backwards-compatibility with the script-based
604   auto function (e.g. auto --replace), the ipsec starter scripts stores
605   the defaultroute information in the temporary file /var/run/ipsec.info.
606
607 - The compile-time option USE_XAUTH_VID enables the sending of the XAUTH
608   Vendor ID which is expected by Cisco PIX 7 boxes that act as IKE Mode Config
609   servers.
610
611 - the ipsec starter now also recognizes the parameters authby=never and
612   type=passthrough|pass|drop|reject.
613
614
615 strongswan-2.6.1
616 ----------------
617
618 - ipsec starter now supports the also parameter which allows
619   a modular structure of the connection definitions. Thus
620   "ipsec start" is now ready to replace "ipsec setup".
621
622
623 strongswan-2.6.0
624 ----------------
625
626 - Mathieu Lafon's popular ipsec starter tool has been added to the
627   strongSwan distribution. Many thanks go to Stephan Scholz from astaro
628   for his integration work. ipsec starter is a C program which is going
629   to replace the various shell and awk starter scripts (setup, _plutoload,
630   _plutostart, _realsetup, _startklips, _confread, and auto). Since
631   ipsec.conf is now parsed only once, the starting of multiple tunnels is
632   accelerated tremedously.
633
634 - Added support of %defaultroute to the ipsec starter. If the IP address
635   changes, a HUP signal to the ipsec starter will automatically 
636   reload pluto's connections.
637
638 - moved most compile time configurations from pluto/Makefile to
639   Makefile.inc by defining the options USE_LIBCURL, USE_LDAP,
640   USE_SMARTCARD, and USE_NAT_TRAVERSAL_TRANSPORT_MODE.
641
642 - removed the ipsec verify and ipsec newhostkey commands
643
644 - fixed some 64-bit issues in formatted print statements
645
646 - The scepclient functionality implementing the Simple Certificate
647   Enrollment Protocol (SCEP) is nearly complete but hasn't been
648   documented yet.
649
650
651 strongswan-2.5.7
652 ----------------
653
654 - CA certicates are now automatically loaded from a smartcard
655   or USB crypto token and appear in the ipsec auto --listcacerts
656   listing.
657
658
659 strongswan-2.5.6
660 ----------------
661
662 - when using "ipsec whack --scencrypt <data>" with  a PKCS#11
663   library that does not support the C_Encrypt() Cryptoki
664   function (e.g. OpenSC), the RSA encryption is done in
665   software using the public key fetched from the smartcard.
666
667 - The scepclient function now allows to define the 
668   validity of a self-signed certificate using the --days,
669   --startdate, and --enddate options. The default validity
670   has been changed from one year to five years.
671
672
673 strongswan-2.5.5
674 ----------------
675
676 - the config setup parameter pkcs11proxy=yes opens pluto's PKCS#11
677   interface to other applications for RSA encryption and decryption
678   via the whack interface. Notation:
679
680   ipsec whack --scencrypt <data>
681              [--inbase  16|hex|64|base64|256|text|ascii]
682              [--outbase 16|hex|64|base64|256|text|ascii]
683              [--keyid <keyid>]
684
685   ipsec whack --scdecrypt <data>
686              [--inbase  16|hex|64|base64|256|text|ascii]
687              [--outbase 16|hex|64|base64|256|text|ascii]
688              [--keyid <keyid>]
689
690   The default setting for inbase and outbase is hex. 
691
692   The new proxy interface can be used for securing symmetric
693   encryption keys required by the cryptoloop or dm-crypt
694   disk encryption schemes, especially in the case when
695   pkcs11keepstate=yes causes pluto to lock the pkcs11 slot
696   permanently.
697
698 - if the file /etc/ipsec.secrets is lacking during the startup of
699   pluto then the root-readable file /etc/ipsec.d/private/myKey.der
700   containing a 2048 bit RSA private key and a matching self-signed
701   certificate stored in the file /etc/ipsec.d/certs/selfCert.der
702   is automatically generated by calling the function
703
704   ipsec scepclient --out pkcs1 --out cert-self
705
706   scepclient was written by Jan Hutter and Martin Willi, students
707   at the University of Applied Sciences in Rapperswil, Switzerland.
708
709
710 strongswan-2.5.4
711 ----------------
712
713 - the current extension of the PKCS#7 framework introduced
714   a parsing error in PKCS#7 wrapped X.509 certificates that are
715   e.g. transmitted by Windows XP when multi-level CAs are used.
716   the parsing syntax has been fixed.
717
718 - added a patch by Gerald Richter which tolerates multiple occurrences
719   of the ipsec0 interface when using KLIPS.
720
721
722 strongswan-2.5.3
723 ----------------
724
725 - with gawk-3.1.4 the word "default2 has become a protected
726   keyword for use in switch statements and cannot be used any
727   more in the strongSwan scripts. This problem has been
728   solved by renaming "default" to "defaults" and "setdefault"
729   in the scripts _confread and auto, respectively.
730
731 - introduced the parameter leftsendcert with the values
732
733   always|yes (the default, always send a cert)
734   ifasked    (send the cert only upon a cert request)
735   never|no   (never send a cert, used for raw RSA keys and
736               self-signed certs) 
737
738 - fixed the initialization of the ESP key length to a default of
739   128 bits in the case that the peer does not send a key length
740    attribute for AES encryption.
741
742 - applied Herbert Xu's uniqueIDs patch
743
744 - applied Herbert Xu's CLOEXEC patches
745
746
747 strongswan-2.5.2
748 ----------------
749
750 - CRLs can now be cached also in the case when the issuer's
751   certificate does not contain a subjectKeyIdentifier field.
752   In that case the subjectKeyIdentifier is computed by pluto as the
753   160 bit SHA-1 hash of the issuer's public key in compliance
754   with section 4.2.1.2 of RFC 3280.
755
756 - Fixed a bug introduced by strongswan-2.5.1 which eliminated
757   not only multiple Quick Modes of a given connection but also
758   multiple connections between two security gateways.
759
760
761 strongswan-2.5.1
762 ----------------
763
764 - Under the native IPsec of the Linux 2.6 kernel, a %trap eroute
765   installed either by setting auto=route in ipsec.conf or by
766   a connection put into hold, generates an XFRM_AQUIRE event
767   for each packet that wants to use the not-yet exisiting
768   tunnel. Up to now each XFRM_AQUIRE event led to an entry in
769   the Quick Mode queue, causing multiple IPsec SA to be
770   established in rapid succession. Starting with strongswan-2.5.1
771   only a single IPsec SA is established per host-pair connection.
772
773 - Right after loading the PKCS#11 module, all smartcard slots are
774   searched for certificates. The result can be viewed using
775   the command
776
777     ipsec auto --listcards
778
779   The certificate objects found in the slots are numbered
780   starting with #1, #2, etc. This position number can be used to address
781   certificates (leftcert=%smartcard) and keys (: PIN %smartcard)
782   in ipsec.conf and ipsec.secrets, respectively:
783
784     %smartcard      (selects object #1)
785     %smartcard#1    (selects object #1)
786     %smartcard#3    (selects object #3)
787
788   As an alternative the existing retrieval scheme can be used:
789
790     %smartcard:45   (selects object with id=45)
791     %smartcard0     (selects first object in slot 0)
792     %smartcard4:45  (selects object in slot 4 with id=45)
793
794 - Depending on the settings of CKA_SIGN and CKA_DECRYPT
795   private key flags either C_Sign() or C_Decrypt() is used
796   to generate a signature.
797
798 - The output buffer length parameter siglen in C_Sign()
799   is now initialized to the actual size of the output
800   buffer prior to the function call. This fixes the
801   CKR_BUFFER_TOO_SMALL error that could occur when using
802   the OpenSC PKCS#11 module.
803
804 - Changed the initialization of the PKCS#11 CK_MECHANISM in
805   C_SignInit() to mech  = { CKM_RSA_PKCS, NULL_PTR, 0 }.
806
807 - Refactored the RSA public/private key code and transferred it
808   from keys.c to the new pkcs1.c file as a preparatory step
809   towards the release of the SCEP client.
810
811
812 strongswan-2.5.0
813 ----------------
814
815 - The loading of a PKCS#11 smartcard library module during
816   runtime does not require OpenSC library functions any more
817   because the corresponding code has been integrated into
818   smartcard.c. Also the RSAREF pkcs11 header files have been
819   included in a newly created pluto/rsaref directory so that
820   no external include path has to be defined any longer.
821
822 - A long-awaited feature has been implemented at last:
823   The local caching of CRLs fetched via HTTP or LDAP, activated
824   by the parameter cachecrls=yes in the config setup section
825   of ipsec.conf. The dynamically fetched CRLs are stored under
826   a unique file name containing the issuer's subjectKeyID
827   in /etc/ipsec.d/crls.
828   
829 - Applied a one-line patch courtesy of Michael Richardson
830   from the Openswan project which fixes the kernel-oops
831   in KLIPS when an snmp daemon is running on the same box.
832
833
834 strongswan-2.4.4
835 ----------------
836
837 - Eliminated null length CRL distribution point strings.
838
839 - Fixed a trust path evaluation bug introduced with 2.4.3
840
841
842 strongswan-2.4.3
843 ----------------
844
845 - Improved the joint OCSP / CRL revocation policy.
846   OCSP responses have precedence over CRL entries.
847
848 - Introduced support of CRLv2 reason codes.
849
850 - Fixed a bug with key-pad equipped readers which caused
851   pluto to prompt for the pin via the console when the first
852   occasion to enter the pin via the key-pad was missed.
853
854 - When pluto is built with LDAP_V3 enabled, the library
855   liblber required by newer versions of openldap is now
856   included.
857
858
859 strongswan-2.4.2
860 ----------------
861
862 - Added the _updown_espmark template which requires all
863   incoming ESP traffic to be marked with a default mark
864   value of 50.
865   
866 - Introduced the pkcs11keepstate parameter in the config setup
867   section of ipsec.conf. With pkcs11keepstate=yes the PKCS#11
868   session and login states are kept as long as possible during 
869   the lifetime of pluto. This means that a PIN entry via a key
870   pad has to be done only once.
871
872 - Introduced the pkcs11module parameter in the config setup
873   section of ipsec.conf which specifies the PKCS#11 module
874   to be used with smart cards. Example:
875   
876     pkcs11module=/usr/lib/pkcs11/opensc-pkcs11.lo
877   
878 - Added support of smartcard readers equipped with a PIN pad.
879
880 - Added patch by Jay Pfeifer which detects when netkey
881   modules have been statically built into the Linux 2.6 kernel.
882
883 - Added two patches by Herbert Xu. The first uses ip xfrm
884   instead of setkey to flush the IPsec policy database. The
885   second sets the optional flag in inbound IPComp SAs only.
886     
887 - Applied Ulrich Weber's patch which fixes an interoperability
888   problem between native IPsec and KLIPS systems caused by
889   setting the replay window to 32 instead of 0 for ipcomp.
890
891
892 strongswan-2.4.1
893 ----------------
894
895 - Fixed a bug which caused an unwanted Mode Config request
896   to be initiated in the case where "right" was used to denote
897   the local side in ipsec.conf and "left" the remote side,
898   contrary to the recommendation that "right" be remote and
899   "left" be"local".
900
901
902 strongswan-2.4.0a
903 -----------------
904
905 - updated Vendor ID to strongSwan-2.4.0
906
907 - updated copyright statement to include David Buechi and
908   Michael Meier
909   
910   
911 strongswan-2.4.0
912 ----------------
913
914 - strongSwan now communicates with attached smartcards and
915   USB crypto tokens via the standardized PKCS #11 interface.
916   By default the OpenSC library from www.opensc.org is used
917   but any other PKCS#11 library could be dynamically linked.
918   strongSwan's PKCS#11 API was implemented by David Buechi
919   and Michael Meier, both graduates of the Zurich University
920   of Applied Sciences in Winterthur, Switzerland.
921
922 - When a %trap eroute is triggered by an outgoing IP packet
923   then the native IPsec stack of the Linux 2.6 kernel [often/
924   always?] returns an XFRM_ACQUIRE message with an undefined
925   protocol family field and the connection setup fails.
926   As a workaround IPv4 (AF_INET) is now assumed.
927   
928 - the results of the UML test scenarios are now enhanced 
929   with block diagrams of the virtual network topology used
930   in a particular test. 
931
932
933 strongswan-2.3.2
934 ----------------
935
936 - fixed IV used to decrypt informational messages.
937   This bug was introduced with Mode Config functionality.
938  
939 - fixed NCP Vendor ID.
940
941 - undid one of Ulrich Weber's maximum udp size patches
942   because it caused a segmentation fault with NAT-ed
943   Delete SA messages.
944   
945 - added UML scenarios wildcards and attr-cert which
946   demonstrate the implementation of IPsec policies based
947   on wildcard parameters contained in Distinguished Names and
948   on X.509 attribute certificates, respectively.
949
950
951 strongswan-2.3.1
952 ----------------
953
954 - Added basic Mode Config functionality
955
956 - Added Mathieu Lafon's patch which upgrades the status of
957   the NAT-Traversal implementation to RFC 3947.
958  
959 - The _startklips script now also loads the xfrm4_tunnel
960   module.
961   
962 - Added Ulrich Weber's netlink replay window size and
963   maximum udp size patches.
964
965 - UML testing now uses the Linux 2.6.10 UML kernel by default.
966    
967
968 strongswan-2.3.0
969 ----------------
970
971 - Eric Marchionni and Patrik Rayo, both recent graduates from
972   the Zuercher Hochschule Winterthur in Switzerland, created a
973   User-Mode-Linux test setup for strongSwan. For more details
974   please read the INSTALL and README documents in the testing
975   subdirectory.
976
977 - Full support of group attributes based on X.509 attribute
978   certificates. Attribute certificates can be generated 
979   using the openac facility. For more details see
980    
981   man ipsec_openac.
982  
983   The group attributes can be used in connection definitions
984   in order to give IPsec access to specific user groups.
985   This is done with the new parameter left|rightgroups as in
986   
987   rightgroups="Research, Sales"
988
989   giving access to users possessing the group attributes
990   Research or Sales, only.
991
992 - In Quick Mode clients with subnet mask /32 are now
993   coded as IP_V4_ADDRESS or IP_V6_ADDRESS. This should 
994   fix rekeying problems with the SafeNet/SoftRemote and NCP
995   Secure Entry Clients.
996
997 - Changed the defaults of the ikelifetime and keylife parameters
998   to 3h and 1h, respectively. The maximum allowable values are
999   now both set to 24 h.
1000
1001 - Suppressed notification wars between two IPsec peers that
1002   could e.g. be triggered by incorrect ISAKMP encryption.
1003
1004 - Public RSA keys can now have identical IDs if either the
1005   issuing CA or the serial number is different. The serial
1006   number of a certificate is now shown by the command
1007   
1008   ipsec auto --listpubkeys
1009
1010
1011 strongswan-2.2.2
1012 ----------------
1013
1014 - Added Tuomo Soini's sourceip feature which allows a strongSwan
1015   roadwarrior to use a fixed Virtual IP (see README section 2.6)
1016   and reduces the well-known four tunnel case on VPN gateways to
1017   a single tunnel definition (see README section 2.4).
1018
1019 - Fixed a bug occuring with NAT-Traversal enabled when the responder
1020   suddenly turns initiator and the initiator cannot find a matching
1021   connection because of the floated IKE port 4500.
1022   
1023 - Removed misleading ipsec verify command from barf.
1024
1025 - Running under the native IP stack, ipsec --version now shows
1026   the Linux kernel version (courtesy to the Openswan project).
1027
1028
1029 strongswan-2.2.1
1030 ----------------
1031
1032 - Introduced the ipsec auto --listalgs monitoring command which lists
1033   all currently registered IKE and ESP algorithms.
1034
1035 - Fixed a bug in the ESP algorithm selection occuring when the strict flag
1036   is set and the first proposed transform does not match.
1037   
1038 - Fixed another deadlock in the use of the lock_certs_and_keys() mutex,
1039   occuring when a smartcard is present.
1040
1041 - Prevented that a superseded Phase1 state can trigger a DPD_TIMEOUT event.
1042   
1043 - Fixed the printing of the notification names (null)
1044
1045 - Applied another of Herbert Xu's Netlink patches.
1046
1047
1048 strongswan-2.2.0
1049 ----------------
1050
1051 - Support of Dead Peer Detection. The connection parameter
1052
1053     dpdaction=clear|hold
1054      
1055   activates DPD for the given connection.
1056
1057 - The default Opportunistic Encryption (OE) policy groups are not
1058   automatically included anymore. Those wishing to activate OE can include
1059   the policy group with the following statement in ipsec.conf:
1060   
1061     include /etc/ipsec.d/examples/oe.conf
1062   
1063   The default for [right|left]rsasigkey is now set to %cert.
1064
1065 - strongSwan now has a Vendor ID of its own which can be activated
1066   using the compile option VENDORID
1067
1068 - Applied Herbert Xu's patch which sets the compression algorithm correctly.
1069
1070 - Applied Herbert Xu's patch fixing an ESPINUDP problem
1071
1072 - Applied Herbert Xu's patch setting source/destination port numbers.
1073
1074 - Reapplied one of Herbert Xu's NAT-Traversal patches which got
1075   lost during the migration from SuperFreeS/WAN.
1076   
1077 - Fixed a deadlock in the use of the lock_certs_and_keys() mutex.
1078
1079 - Fixed the unsharing of alg parameters when instantiating group
1080   connection.
1081   
1082
1083 strongswan-2.1.5
1084 ----------------
1085
1086 - Thomas Walpuski made me aware of a potential DoS attack via
1087   a PKCS#7-wrapped certificate bundle which could overwrite valid CA
1088   certificates in Pluto's authority certificate store. This vulnerability
1089   was fixed by establishing trust in CA candidate certificates up to a
1090   trusted root CA prior to insertion into Pluto's chained list.
1091
1092 - replaced the --assign option by the -v option in the auto awk script
1093   in order to make it run with mawk under debian/woody.
1094
1095
1096 strongswan-2.1.4
1097 ----------------
1098
1099 - Split of the status information between ipsec auto  --status (concise)
1100   and ipsec auto --statusall (verbose). Both commands can be used with
1101   an optional connection selector:
1102
1103     ipsec auto --status[all] <connection_name>
1104
1105 - Added the description of X.509 related features to the ipsec_auto(8)
1106   man page.
1107
1108 - Hardened the ASN.1 parser in debug mode, especially the printing
1109   of malformed distinguished names.
1110
1111 - The size of an RSA public key received in a certificate is now restricted to
1112
1113     512 bits <= modulus length <= 8192 bits.
1114
1115 - Fixed the debug mode enumeration.
1116
1117
1118 strongswan-2.1.3
1119 ----------------
1120
1121 - Fixed another PKCS#7 vulnerability which could lead to an
1122   endless loop while following the X.509 trust chain.
1123   
1124
1125 strongswan-2.1.2
1126 ----------------
1127
1128 - Fixed the PKCS#7 vulnerability discovered by Thomas Walpuski
1129   that accepted end certificates having identical issuer and subject
1130   distinguished names in a multi-tier X.509 trust chain.
1131   
1132
1133 strongswan-2.1.1
1134 ----------------
1135
1136 - Removed all remaining references to ipsec_netlink.h in KLIPS.
1137
1138
1139 strongswan-2.1.0
1140 ----------------
1141
1142 - The new "ca" section allows to define the following parameters:
1143
1144   ca kool
1145      cacert=koolCA.pem                   # cacert of kool CA
1146      ocspuri=http://ocsp.kool.net:8001   # ocsp server
1147      ldapserver=ldap.kool.net            # default ldap server
1148      crluri=http://www.kool.net/kool.crl # crl distribution point
1149      crluri2="ldap:///O=Kool, C= .."     # crl distribution point #2
1150      auto=add                            # add, ignore
1151      
1152   The ca definitions can be monitored via the command
1153   
1154      ipsec auto --listcainfos
1155
1156 - Fixed cosmetic corruption of /proc filesystem by integrating
1157   D. Hugh Redelmeier's freeswan-2.06 kernel fixes.
1158
1159
1160 strongswan-2.0.2
1161 ----------------
1162
1163 - Added support for the 818043 NAT-Traversal update of Microsoft's
1164   Windows 2000/XP IPsec client which sends an ID_FQDN during Quick Mode.
1165   
1166 - A symbolic link to libcrypto is now added in the kernel sources 
1167   during kernel compilation
1168   
1169 - Fixed a couple of 64 bit issues (mostly casts to int).
1170   Thanks to Ken Bantoft who checked my sources on a 64 bit platform.
1171
1172 - Replaced s[n]printf() statements in the kernel by ipsec_snprintf().
1173   Credits go to D. Hugh Redelmeier, Michael Richardson, and Sam Sgro
1174   of the FreeS/WAN team who solved this problem with the 2.4.25 kernel.
1175
1176
1177 strongswan-2.0.1
1178 ----------------
1179
1180 - an empty ASN.1 SEQUENCE OF or SET OF object (e.g. a subjectAltName
1181   certificate extension which contains no generalName item)  can cause
1182   a pluto crash. This bug has been fixed. Additionally the ASN.1 parser has
1183   been hardened to make it more robust against malformed ASN.1 objects.
1184
1185 - applied Herbert Xu's NAT-T patches which fixes NAT-T under the native
1186   Linux 2.6 IPsec stack.
1187   
1188   
1189 strongswan-2.0.0
1190 ----------------
1191
1192 - based on freeswan-2.04, x509-1.5.3, nat-0.6c, alg-0.8.1rc12