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