8

I spoke to a sysadmin in a business center today who intended to basically perform a MiTM (as he called it) on every connection in his network because people in his office building are using VPNs and https connections to stream video, download torrents etc.. These services use up all the bandwidth but because they are encrypted connections his load balancer doesn't work.

The security firm he hired convinced him it is possible to set up a proxy server with his own valid and signed certificate (for the proxy server of course) which would dupe all browsers and VPN connections to accept the proxy as their endpoint. This would allow him to decrypt all traffic, verify its content and throttle if necessary, encrypt it once more and send it on its intended way without anyone being the wiser.

On the https part I managed to explain/convince him that any half decent https implementation is meant specifically to avoid MiTM attacks because certificates are linked to a specific domain or company. There is no way his proxy can dupe a browser to think it is connecting to the website while in fact connecting to the proxy server.

However, concerning VPNs he is adamant (or better yet, the security firm he hired for his network) that many VPN services or protocols will accept any certificate signed by a CA to create a secure connection. Whether or not that certificate is actually attributed to the server you are connecting to is not checked.

This seems highly unlikely to me and contrary to everything I know of secure connections but before I pick up that discussion I want to make sure I'm not missing some little known vulnerability in VPN protocols of software that very few people know about.

My question: is it true that some VPN protocols or VPN software will only check the validity of a certificate by checking whether it is signed by a CA and will not at all verify if the certificate is in fact attributed to the server you are connecting to?

-- small edit -- To specify why this should be possible: according to the security firm quite a few VPN softwares will accept any valid certificate and do not check if the certificate is actually linked to the server: any valid certificate is accepted.

6
  • Also, if his objective is to perform bandwidth management, there is no need to resort to MITM. QoS can (and should) be done without resorting to packet inspection. Mar 15, 2014 at 20:41
  • Problem is he can't tell what sort of traffic it is because it is encrypted. How can you shape traffic if you can't tell what sort of traffic it is? Mar 15, 2014 at 20:47
  • 2
    Shape by volume/connection count/connection frequency, or use other traffic characteristics to identify the application. I can guarantee you it is possible, because I have used appliances that used heuristics to accurately ID the traffic source, and I know for a fact that no TLS MITM was being performed, because I was administering the appliance. Call the sales lines for Bluecoat/Fortigate/Barracuda and ask them too if you like :) Mar 15, 2014 at 20:53
  • Your explanation in the comment above suffices, makes sense that it can be done using "metadata" without knowing the actual contents. Almost worthy of a separate question though :) Mar 15, 2014 at 20:57
  • No worries. I would expect that almost 100% of QoS today is done by heuristics. Packet inspection is still very computationally expensive, and so is limited to things like Data Loss Prevention targeted at specific machines only. Corporate-sanctioned MITM of secure connections is even more rare - it's often discussed but I've never seen a working implementation except in sales demos. Mar 15, 2014 at 21:01

2 Answers 2

9

Short answer:

Nope, can't be done. This is because a reputable Certificate Authority will not issue a certificate for a domain that your sysadmin does not control.

Long answer:

It can be done under some scenarios.

For example - if you're using OpenVPN to create a TLS connection to a VPN concentrator elsewhere in the world called...say...awesomevpn.sx, one of the first steps in the TLS handshake is server certificate validation. Your sysadmin could attempt to MITM this connection, but he would not be able to present a certificate for awesomevpn.sx because no CA will issue it to him, which would cause the connection to fail.

However, consider a scenario where a company has contracted a vendor to install packet inspection appliances. In order to perform MITM attacks on secure connections, the vendors will compel the installation of their own "root" certs onto client machines. That way, they can use their own CA to sign certificates for any domain. This can be done on the fly by the inspection appliances. When those certificates are presented to the client during the MITM sequence, they will be accepted, allowing the connection to complete, and the packets to be inspected in the clear.

This sounds like a weakness of the CA system, but remember that in a corporate environment, you do not have physical control over the machines owned by the company. Without physical control, it's game over in terms of security.

So the explanation you've been given is missing a key point - they did not mention the requirement to install their own root certs on client machines. It has nothing to do with a weakness in the VPN clients, or the various protocols used for secure connections.

8
  • Ok, but in these cases either a CA issues certificates it should never have issued (i.e., no magic security implementation but a bad CA) or all clients are forced to have root certs from the security firm. As this is a business center (offices for rent including infrastructure) this is also unlikely. Mar 15, 2014 at 20:01
  • On second thought, one part of my question is not entirely addressed: according to this guy it could work because the VPN software simply does not check the certificate. His certificate could say "server XYZ" and it would always be accepted. Is this possible? Mar 15, 2014 at 20:18
  • I very much doubt it. If true it would be a humongous vulnerability - the VPN app vendor would almost certainly be forced to close, its reputation in ruins. If you want to verify, go ahead and ask the security firm for examples of vulnerable apps. Then go ask those app developers. Mar 15, 2014 at 20:36
  • I agree, but then that is my question: does anyone know of vulnerabilities in VPN software which mean VPN software does not check whether a certificate is linked to a server only if the cert is valid? I could have phrased it like that I suppose, but I wanted to add context. Mar 15, 2014 at 20:44
  • 1
    "Nope, can't be done. This is because a reputable Certificate Authority will not issue a certificate for a domain that your sysadmin does not control." - Trustwave FTW! (blog.spiderlabs.com/2012/02/…).
    – user29925
    Mar 16, 2014 at 1:17
2

You might want to read this piece on the Gibson Research Corporation site: The “S” added to the end of the “HTTP” means SECURE. (Or at least it was supposed to.)

The presence of the unbroken key or the lock icon on the web browser once meant that the connection between the user and the remote web server was authenticated, secured, encrypted . . . and not susceptible to any form of eavesdropping by any third party. Unfortunately, that is no longer always true.

And

How is this elegant system [cfr. CA-system] subverted?

Any corporation, educational institution, or other Internet connectivity provider who wishes to monitor every Internet action of its employees, students or users — every private user ID & password of every social networking or banking site they visit, their medical records, all “secure” eMail . . . EVERYTHING — simply arranges to add one additional “Pseudo Certificate Authority” to their users' browsers or computers. It's that simple.

7
  • 3
    One does not simply add one additional “Pseudo Certificate Authority” to all users' browsers or computers. when those browsers and computers are not issued or controlled by them. Mar 16, 2014 at 1:15
  • But the link does contain a few interesting examples definitely relevant to my question! Mar 16, 2014 at 1:19
  • @user3244085 You need nation-state entities to be able to load all browsers/computers with a CA of your choosing ofcourse. But just have a look at the 100+ CAs trusted by your system, do you know/trust all of them? However, a company basically just has to push a Group Policy (in a Windows environment) to their employees' systems to be able to install their own CA certificate onto the computer, allowing them to use a self-signed certificate to encrypt their VPN/HTTPS connections. This allows them to do packet-inspection but also to monitor everything users of their VPN do.
    – BlueCacti
    Jul 25, 2016 at 8:56
  • 1
    @GroundZero you don’t necessarily have to go that far. Just instruct your users to install your CA certificate (possibly under the pretext that it’s necessary in order to use some system of yours, which uses certificates from that CA)—maybe a handful will get suspicious, but a lot of them will just comply.
    – user149408
    Jan 12, 2017 at 12:37
  • @user149408: That is what happens at my university. The VPN currently (still) works with MPPE which I use but this will soon be removed since it is insecure. What is suggested is for users to install a root CA of the institution, which prevents users from connecting to an attacker-controlled server. On the other hand, I'm not comfortable with this since it seems to me the uni is now in a position to perform a MITM on all VPN users. Whether they do it, I do not know and if I had to guess I would say no, they do not. However, I feel uneasy because they could attack users if they wanted to.
    – Daniel
    Feb 22, 2019 at 13:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .