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