-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Hello!
We are happpy to announce the release of OpenVPN-NL 2.6.22!
It is based on OpenVPN 2.6.22 with some backported security fixes from
2.7.7 and on Mbed TLS 3.6.7.
Cryptography
============
We now support TLS 1.3. However, due to a limitation in Mbed TLS, we do
not yet offer support for smartcards while using TLS 1.3. When using
smartcards, you need to add the option --tls-version-max 1.2. This will
be fixed in OpenVPN-NL 2.7.
We have added support for the Elliptic Curve Digital Signature Algorithm
(ECDSA) in certificates with the NIST P-256 and P-384 curves (also known
as secp256r1 and secp384r1).
As of this version, RSA keys need to be at least 3072 bit. Even though
2048-bit keys are not allowed by the deployment advisory (inzetadvies),
we added the option --allow-deprecated-2k-rsa-client-keys to simplify
the transition to 3072- or 4096-bit keys. When both the client and
server have this option set, the client can still use a 2048-bit key.
Note that a server with an RSA certificate must *always* use a 3072-bit
key or larger. If you still use 2048-bit RSA keys, we recommend
migrating to elliptic curve keys or larger RSA keys.
We have removed support for finite field ("traditional") Diffie-Hellman
key exchanges. Only elliptic curve Diffie-Hellman (ECDH) is supported
now. If you have disabled ECDH in your configuration with the tls-cipher
option, you will not be able to use OpenVPN-NL 2.6. Otherwise, this
change should not cause any problems when connecting two 2.6 peers or a
2.5 and a 2.6 peer. The --dh option is now obsolete and will be ignored
in configurations.
Plugin support deprecated
=========================
Plugin support is deprecated and will be removed in version 2.7.
New tls-crypt-v2 options
========================
We have added a new metadata format for tls-crypt-v2 client keys. It
is now possible to add a certificate serial number to a client key
in addition to a timestamp when generating a client key by adding the
option --tls-crypt-v2-cert.
We have added options for verifying this metadata in OpenVPN-NL:
* tls-crypt-v2-max-age <n>: Reject keys older than n days or that do
not have a timestamp in the metadata.
* tls-crypt-v2-verify-crl: Reject keys with a serial number on the
CRL (certificate revocation list) and keys that do not have an
associated serial number.
The purpose of checking the CRL here is as follows: Suppose that
a client gets compromised and the certificate, private key and
tls-crypt-v2 key are stolen. The breach is detected and the serial
number of the certificate is added to the CRL so that OpenVPN-NL servers
now reject the stolen certificate during the TLS handshake. Ordinarily,
the attacker could still use the tls-crypt-v2 client key to interact
with the TLS code and try to exploit any vulnerabilities that might
exist there.
The tls-crypt-v2-verify-crl option provides defense-in-depth by
preventing the attacker from interacting with the complex TLS handshake
code. The code for checking the tls-crypt-v2 client key is much simpler
and therefore less likely to be vulnerable.
Note that using tls-crypt-v2-verify-crl requires generating new client
keys, because all keys without a serial number in the metadata will be
rejected.
Convenience functions for generating certificates
=================================================
The standard OpenVPN approach of using a PKI for authentication is
cumbersome if the goal is to just connect a pair of computers. In this
case, one can use a pair of self-signed certificates and the
- --peer-fingerprint option instead of a CA. For convenience, we have
added the commands `openvpn --genkey server-cert` and
`openvpn --genkey client-cert` to generate self-signed certificates and
print out their fingerprints on the terminal. Note that, while
fingerprints do not have to be secret, they must be transferred to the
peer in an *authenticated* way.
More detailed instructions can be found in the file
openvpn-nl-point-to-point.md in the /usr/share/doc/openvpn-nl,
/usr/share/doc/packages/openvpn-nl or
C:\Program Files\OpenVPN-NL\doc directory.
DCO driver on Windows
=====================
We now bundle an NL version of the DCO driver for Windows which has
better performance than the old tap-windows6 driver. However, it
only works in client and peer-to-peer mode, so we also still bundle
tap-windows6, although we do not recommend running the Windows version
as a server. You can create a DCO interface using tapctl.exe.
We are currently not able to support the DCO driver for Linux. Due to
the way the driver is integrated into the Linux kernel, it is not
possible for Unit Weerbaarheid to positively evaluate it.
We are currently not able to support the DCO driver for Linux. Due
to the way the driver is integrated into the Linux kernel it is not
possible for Unit Weerbaarheid to positively evaluate it.
Windows GUI
===========
We have bundled the OpenVPN GUI for Windows.
Future plans
============
We are working on OpenVPN-NL 2.7 which will add support for
the X25519MLKEM768 post-quantum key exchange algorithm, TLS 1.3
with smartcards, better integration with the Linux networking
stack and most of the new features of upstream OpenVPN 2.7, see
https://community.openvpn.net/ReleaseHistory#openvpn-270-released-11-februa….
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEpK49A7EHchkpcCjYxU5xiqPE8EQFAmq+X3cACgkQxU5xiqPE
8EQNdBAAkF7I3IKUWU+Bsl/CqL4jBJ6ibGy1a6aFKkR3y10PTWbUX+keySkE9Wbn
6TorcacooA5GMGzddfSsqV5FLA50TzkhY3WAJdiYLCPcm5fJaf97uw/ImUgPtkiQ
5nWU5rDfc0hNFYfGDZctXXTaoGiV19DgzPri68/iDagIYs2YVEqBjk3i+9i+rX0w
h6iEJROnc8tZx2+9//BBs1Jb7caTCF29lPIgt7Byoh2ja8E0gyIUFxLAyKRUB4LJ
UGOKOzMy3Rk5WPyqJ2oFnC7wpalCt+irFulWDBczzYD/DoQ8oTurhdvl/KntKklS
IyXkTLtV+RG89Yt6mQicQd+ClBz7SVo+BRvt0gDsLPNglBG2zP629+FLeOkWdLcr
6gWJ9GgkvXsDpvxslTk7OtffmQiQpwaPwgx6oPBS9IlMQX9DzEOLRDe6vFTjYIlk
0HuiBGNizLv6NVHknSVzBtmHMGUaDgfgWoELAfhH4RaDlHUslT3RRg4Jq0QUzwGL
ynWHdn4mEnEbVhGOCXV2X3MxNG9PcvHvjbIcWE/YvNd4QKx2pyo4pMbYwOW8mkh7
l6w+iFxNVJz3DD0DBp34VhYy0QO2CzNU/It0WlJNitlgJcbV4WeK4ivqcuKv8//S
kjWmdMDkmr4JdoHmY1tZtxCTXTTyriZb6Ca3l5N/1dUlB3iIueU=
=eAnt
-----END PGP SIGNATURE-----