Version 5.1.0 » History » Version 2
Tobias Brunner, 01.08.2013 11:32
1 | 1 | Tobias Brunner | h1. Version 5.1.0 |
---|---|---|---|
2 | 1 | Tobias Brunner | |
3 | 2 | Tobias Brunner | * Fixed a denial-of-service vulnerability triggered by specific XAuth usernames |
4 | 2 | Tobias Brunner | and EAP identities (since [[5.0.3]]), and PEM files (since [[4.1.11]]). The crash |
5 | 2 | Tobias Brunner | was caused by insufficient error handling in the is_asn1() function. |
6 | 2 | Tobias Brunner | The vulnerability has been registered as "CVE-2013-5018":http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2013-5018. |
7 | 2 | Tobias Brunner | Refer to "our blog":http://www.strongswan.org/blog/2013/08/01/strongswan-denial-of-service-vulnerability-(cve-2013-5018).html for details. |
8 | 2 | Tobias Brunner | |
9 | 2 | Tobias Brunner | * The new [[charon-cmd]] command line IKE client can establish road warrior |
10 | 2 | Tobias Brunner | connections using IKEv1 or IKEv2 with different authentication profiles. |
11 | 2 | Tobias Brunner | It does not depend on any configuration files (no [[ipsec.conf]] nor [[ipsec.secrets]] |
12 | 2 | Tobias Brunner | but may use [[strongswan.conf]] options) and can be configured using a few |
13 | 2 | Tobias Brunner | simple command line options. |
14 | 2 | Tobias Brunner | |
15 | 2 | Tobias Brunner | * The kernel-pfroute networking backend has been greatly improved. It now |
16 | 2 | Tobias Brunner | can install virtual IPs on TUN devices on [[MacOSX|Mac OS X]] and [[FreeBSD]], allowing these |
17 | 2 | Tobias Brunner | systems to act as a client in common road warrior scenarios. |
18 | 2 | Tobias Brunner | |
19 | 2 | Tobias Brunner | * The new _kernel-libipsec_ plugin uses TUN devices and libipsec to provide IPsec |
20 | 2 | Tobias Brunner | processing in userland on Linux, FreeBSD and Mac OS X. |
21 | 2 | Tobias Brunner | |
22 | 2 | Tobias Brunner | * The [[EapRadius|eap-radius]] plugin can now serve as an XAuth backend called _xauth-radius_, |
23 | 2 | Tobias Brunner | directly verifying XAuth credentials using RADIUS User-Name/User-Password |
24 | 2 | Tobias Brunner | attributes. This is more efficient than the existing _xauth-eap_ + _eap-radius_ |
25 | 2 | Tobias Brunner | combination, and allows RADIUS servers without EAP support to act as AAA |
26 | 2 | Tobias Brunner | backend for IKEv1. |
27 | 2 | Tobias Brunner | |
28 | 2 | Tobias Brunner | * The new _osx-attr_ plugin installs configuration attributes (currently DNS |
29 | 2 | Tobias Brunner | servers) via SystemConfiguration on Mac OS X. The _keychain_ plugin provides |
30 | 2 | Tobias Brunner | certificates from the OS X keychain service. |
31 | 2 | Tobias Brunner | |
32 | 2 | Tobias Brunner | * The _sshkey_ plugin parses SSH public keys, which, together with the _--agent_ |
33 | 2 | Tobias Brunner | option for [[charon-cmd]], allows the use of _ssh-agent_ for authentication. |
34 | 2 | Tobias Brunner | To configure SSH keys in [[ipsec.conf]] the _left|rightrsasigkey_ options are |
35 | 2 | Tobias Brunner | replaced with _left|rightsigkey_, which now take public keys in one of three |
36 | 2 | Tobias Brunner | formats: SSH (RFC 4253, _ssh:_ prefix), DNSKEY (RFC 3110, _dns:_ prefix), and |
37 | 2 | Tobias Brunner | PKCS#1 (the default, no prefix). |
38 | 2 | Tobias Brunner | |
39 | 2 | Tobias Brunner | * Extraction of certificates and private keys from PKCS#12 files is now provided |
40 | 2 | Tobias Brunner | by the new _pkcs12_ plugin or the _openssl_ plugin. [[charon-cmd]] (_--p12_) as well |
41 | 2 | Tobias Brunner | as charon (via [[P12Secret|P12 token]] in [[ipsec.secrets]]) can make use of this. |
42 | 2 | Tobias Brunner | |
43 | 2 | Tobias Brunner | * IKEv2 can now negotiate transport mode and IPComp in NAT situations. |
44 | 2 | Tobias Brunner | |
45 | 2 | Tobias Brunner | * IKEv2 exchange initiators now properly close an established IKE or CHILD_SA |
46 | 2 | Tobias Brunner | on error conditions using an additional exchange, keeping state in sync |
47 | 2 | Tobias Brunner | between peers. |
48 | 2 | Tobias Brunner | |
49 | 2 | Tobias Brunner | * Using a SQL database interface a Trusted Network Connect (TNC) Policy Manager |
50 | 2 | Tobias Brunner | can generate specific measurement workitems for an arbitrary number of |
51 | 2 | Tobias Brunner | Integrity Measurement Verifiers (IMVs) based on the history of the VPN user |
52 | 2 | Tobias Brunner | and/or device. |
53 | 2 | Tobias Brunner | |
54 | 2 | Tobias Brunner | The new "strongTNC":https://github.com/strongswan/strongTNC web application provides a frontend to manage such databases. |
55 | 2 | Tobias Brunner | This project was started by Stefan Rohner and Marco Tanner as part of their Bachelor Thesis. |
56 | 2 | Tobias Brunner | |
57 | 2 | Tobias Brunner | * Several core classes in libstrongswan are now tested with unit tests. These |
58 | 2 | Tobias Brunner | can be enabled with _--enable-unit-tests_ and run with @make check@. Coverage |
59 | 2 | Tobias Brunner | reports can be generated with _--enable-coverage_ and @make coverage@ (this |
60 | 2 | Tobias Brunner | disables any optimization, so it should not be enabled when building |
61 | 2 | Tobias Brunner | production releases). |
62 | 2 | Tobias Brunner | |
63 | 2 | Tobias Brunner | * The leak-detective developer tool has been greatly improved. It works much |
64 | 2 | Tobias Brunner | faster/stabler with multiple threads, does not use deprecated malloc hooks |
65 | 2 | Tobias Brunner | anymore and has been ported to OS X. |
66 | 2 | Tobias Brunner | |
67 | 2 | Tobias Brunner | * @chunk_hash()@ is now based on "SipHash-2-4":https://131002.net/siphash/ with a random key. This provides |
68 | 2 | Tobias Brunner | better distribution and prevents hash flooding attacks when used with |
69 | 2 | Tobias Brunner | hashtables. To generate reproducible hashes the @chunk_hash_static()@ function |
70 | 2 | Tobias Brunner | can be used. |
71 | 2 | Tobias Brunner | |
72 | 2 | Tobias Brunner | * All default plugins implement the @get_features()@ method to define features |
73 | 2 | Tobias Brunner | and their dependencies. The plugin loader has been improved, so that plugins |
74 | 2 | Tobias Brunner | in a custom [[PluginLoad|load statement]] can be ordered freely or to express preferences |
75 | 2 | Tobias Brunner | without being affected by dependencies between plugin features. |
76 | 2 | Tobias Brunner | |
77 | 2 | Tobias Brunner | * A centralized thread can take care for watching multiple file descriptors |
78 | 2 | Tobias Brunner | concurrently. This removes the need for a dedicated listener threads in |
79 | 2 | Tobias Brunner | various plugins. The number of "reserved" threads for such tasks has been |
80 | 2 | Tobias Brunner | reduced to about five, depending on the plugin configuration. |
81 | 2 | Tobias Brunner | |
82 | 2 | Tobias Brunner | * Plugins that can be controlled by a UNIX socket IPC mechanism gained network |
83 | 2 | Tobias Brunner | transparency. Third party applications querying these plugins now can use |
84 | 2 | Tobias Brunner | TCP connections from a different host. |
85 | 2 | Tobias Brunner | See the respective _socket_ options in [[strongswan.conf]]. |
86 | 2 | Tobias Brunner | |
87 | 2 | Tobias Brunner | * Protocol and port can be specified for each individual subnet specified with |
88 | 2 | Tobias Brunner | the _left|rightsubnet_ [[ConnSection|ipsec.conf]] options. |
89 | 2 | Tobias Brunner | |
90 | 2 | Tobias Brunner | * The _closeaction_ [[ConnSection|ipsec.conf]] option is now also supported for IKEv1 (thanks to |
91 | 2 | Tobias Brunner | Oliver Smith for the initial patch). |
92 | 2 | Tobias Brunner | |
93 | 2 | Tobias Brunner | * libipsec now supports AES-GCM. |
94 | 2 | Tobias Brunner | |
95 | 2 | Tobias Brunner | * By replacing several linked lists that exist during the full lifetime of an SA with a |
96 | 2 | Tobias Brunner | simple array implementation the memory usage per tunnel is reduced by 5 KB or more. |
97 | 2 | Tobias Brunner | |
98 | 2 | Tobias Brunner | * Responders reuse _reqids_ of trapped policies, making _auto=route_ on both sides more reliable. |
99 | 2 | Tobias Brunner | |
100 | 2 | Tobias Brunner | * Instead of silently replacing a policy if the reqid changes, the _kernel-netlink_ |
101 | 2 | Tobias Brunner | plugin now rejects such requests. This has consequences e.g. if two clients behind the |
102 | 2 | Tobias Brunner | same NAT use transport mode (see #365). |
103 | 2 | Tobias Brunner | |
104 | 2 | Tobias Brunner | * [[ReducedPrivileges|Capability dropping]] has been improved. Every plugin verifies that the capabilities |
105 | 2 | Tobias Brunner | it requires are actually held and requests to keep only those that are really required at runtime. |
106 | 2 | Tobias Brunner | |
107 | 2 | Tobias Brunner | * Support for silent rules was added to the [[Autoconf|build system]], they can be enabled |
108 | 2 | Tobias Brunner | with _--enable-silent-rules_. @make V=0@ or @V=1@ can be used to build with a different |
109 | 2 | Tobias Brunner | verbosity than configured. |
110 | 2 | Tobias Brunner | |
111 | 2 | Tobias Brunner | * The unique identifier of an IKE_SA is passed as _PLUTO_UNIQUEID_ to the updown script. |
112 | 2 | Tobias Brunner | |
113 | 2 | Tobias Brunner | * Whether the _socket-default_ plugin uses IPv4 and/or IPv6 can be configured via [[strongswan.conf]]. |
114 | 2 | Tobias Brunner | |
115 | 2 | Tobias Brunner | * Fixed a race-condition if the DELETE for a redundant CHILD_SA created by a responder during a |
116 | 2 | Tobias Brunner | CHILD_SA rekey collision arrives before the responder's answer to the initiator's winning |
117 | 2 | Tobias Brunner | CREATE_CHILD_SA request. |
118 | 2 | Tobias Brunner | |
119 | 2 | Tobias Brunner | * The X.509 certificate decoder provided by the _openssl_ plugin supports IP address blocks (patch by Michael Rossberg). |
120 | 2 | Tobias Brunner | |
121 | 2 | Tobias Brunner | * [[scepclient]] can use a specific source address configured with the new _--bind_ option. |
122 | 2 | Tobias Brunner | |
123 | 2 | Tobias Brunner | * Negotiation of IKEv1 DPD with Cisco IOS devices has been fixed, if they do not send the |
124 | 2 | Tobias Brunner | DPD vendor ID in the first message. |
125 | 2 | Tobias Brunner | |
126 | 2 | Tobias Brunner | * The [[IPsecStroke|ipsec stroke]] _exportconncert_ and _exportconnchain_ commands can be used to export |
127 | 2 | Tobias Brunner | either a single end entity certificate or the full trust chain for a specific connection. |
128 | 2 | Tobias Brunner | |
129 | 2 | Tobias Brunner | * The [[IPsecStroke|ipsec stroke]] _up-nb_ and _down-nb_ commands do the same as _up_ and _down_, respectively, |
130 | 2 | Tobias Brunner | but they do not block until the command has finished. |