Project

General

Profile

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.