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