-----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-februar....
list-openvpn-nl@lists.sentyron.com