My question is about how an SSL VPN connection such as OpenVPN is protected against MITM/Spoofing attacks on a public Wifi.

For example, if somebody has a 'pineapple' or router setup as a honeypot gateway acting as a proxy does the act of authentication between the client and OpenVPN server protect it from spoofing or MITM. Does the initial authentication using TLS and the exchange of server public key (certificate) and comparison between that and the CA certificate already stored on the clients device identify whether the OpenVPN server is who it actually says it is?

If I have got that wrong can somebody explain the process and if it is correct is there any other point along the handshake that is susceptible to MITM attacks?

Thank you all

  • That relates to HTTPS with which the handshake is authenticated by checking a public certificate which has been signed a trusted Certificate Authority. In the case of VPNs from my understanding they create their own CA and sign their own server and client certificates. Is the server signed certificate authenticated by comparison against the server CA certificate stored on the user's device to prove the server identity? – jameskgowan Nov 23 '14 at 16:18
  • @jameskgowan Yes, the CA certificate (or the public key itself) is stored on the client device. – Gilles 'SO- stop being evil' Nov 25 '14 at 13:07
  • Here's a post from the author of OpenVPN on their mailing list which goes into a lot of detail about this question. – GDP2 Sep 5 '17 at 23:46

In the case of OpenVPN the certificate is already known to the client, there is no exchange at that point, so MiTM is mitigated based on the idea that they would have to compromise the server cert in order to mislead the client into communicating with the middle device.

If the MiTM presented an alternate cert for communication, the client would reject it, likewise the best the middle attacker could do is present authentication for the client, which would result in a communication they couldn't read because they lack the private key material to decode the stream.

Compromise of something like OpenVPN is notoriously hard, provided the OpenVPN server is configured adequately. The security model of that product is based on layers of security, requiring an attacker to accomplish multiple attacks on unrelated code trees simultaneously. (I'm assuming best case scenario here using tls-auth is properly implemented etc)

The CVE list is small http://www.cvedetails.com/vulnerability-list/vendor_id-3278/Openvpn.html with most falling in the range of DoS as opposed to actual integrity leaks. To my knowledge, there hasn't been any compellingly successful MiTM attacks against the product.

There might be some alphabet organizations out there capable, but the average pineapple user isn't going to be able to do much here.

|improve this answer|||||
  • That's an excellent response thank you. So how is the initial connection made between client and server? What items are exchanged? Also which certificate is used to encrypt the exchange of the symmetric key used to encrypt the tunnel? Am I correct in saying that it is practically impossible to decrypt the communication which carries the exchange of the symmetric key and that the symmetric key would be so large that it would be difficult to decrypt that? – jameskgowan Nov 23 '14 at 19:50
  • You are correct, because the exchange is dependent on having access to the servers private material, certainly a non-trivial task. That falls into the realm of game over scenario, where your provider is already compromised. – atyoung Nov 23 '14 at 19:55
  • Which key is used to initiate the encryption of the symmetric key? – jameskgowan Nov 23 '14 at 19:57
  • And if the certificates are used to provide adequate authentication what is the need for 2nd Factor Authentication such as standard username/password combination or OTP? – jameskgowan Nov 23 '14 at 20:05
  • It depends on the configuration honestly, OpenVPN can use either paradigm, most commonly in commercial VPN providers they use the public/private key model. Symmetric Key based openvpn is more frequently used with people setting up their own VPN to a home network. Above the fold google result on openvpn configuration. linuxconfig.org/vpn-virtual-private-network-and-openvpn – atyoung Nov 23 '14 at 20:06

Not the answer you're looking for? Browse other questions tagged or ask your own question.