We are going to have some kind of secure VoIP implementation. We have come into make decision between VPN-based methods like PPTP or L2TP/IPsec and TLS-based methods. The question is which one is better; more secure and more efficient for VoIP applications? If we had both in work, could we obtain more security (confidentiality, authenticity, and integrity)? Thank you very much in advance.
2 Answers
Which one is more secure and efficient for VoIP: PPTP, L2TP, or TLS...
Here is some general information related to the question... VoIP can use dynamic compression codes and codecs, so they can be insecure regardless of the underlying encryption technology. See, for example, Spot me if you can: Uncovering spoken phrases in encrypted VoIP conversations.
Also, the NSA produces a phone for the US government using commodity hardware. The phones use two layers of encryption. The first is a traditional IPSec VPN. The second is a encrypted VoIP using stream SRTP tunneled through the VPN. So you have both network layer and application layer security. See, for example, Fishbowl (secure phone).
Also, the question is kind of vague (but in non-obvious ways)... We don't know what your security model is, and we don't know what your threat model is, so its hard to say which will (or will not) meet your goals and objectives. Apparently, NSA's threat model includes a cryptanalysis that VPN alone cannot contain :)
-
Thank you very much. My threat model is the same. I've threats in both network and application layer. I want to know if I exploit the confidentiality provided by TLS as the application layer encryption, and use IPsec for the network layer encryption, how much it would be confidential? Indeed, by doing this, I will have two level of encryptions with two different keys. So, I think it brings about more confidentiality. Am I right?– NasserNov 21, 2015 at 6:01
-
While it's true that the Q is not exactly detailed regarding potential threats to secure against, I feel it doesn't help to add information such as "spot me if you can" without being clear what it actually means. Thee "spot me if you can" scenario can only be applied if you have access to encrypted VoIP packets, which would not apply if you can only monitor the encrypted tunnel. So depending on the VoIP approach, this scenario may not even apply internally.– Run CMDNov 22, 2015 at 10:00
Regarding architecture, considering the options in each of the two dimensions separately:
Secured tunnel vs secure connection:
- In a VoIP scenario, usually there are many connections involved. VoIP clients register with a VoIP server, but for the actual call, the clients directly connect.
- Establishing a secured connection involves a huge overhead as compared to establishing insecure connections, which a secure tunnel avoids.
- Conceptually, some attacks are possible only during the connection phase, so a tunnel reduces the number of points in time where such attacks can take place.
- Regarding setup and maintenance, I prefer a VPN connection. E.g. no unnecessary server exposure and easier filter rules for acceptance of connections (only local IP addresses). Also, you'll primarily have to monitor security advisories for the tunnel alone, rather than having to monitor them for all exposed services.
- Regarding security, a secured tunnel will keep an observer from seeing how your two LANs interact, so he'll gain much fewer information and have fewer points to attack.
Two-layer tunnel with secure higher layer vs secure lower layer:
- Although there are conceptual differences regarding possible attacks, the degree of security is comparable.
- In practice, securing the tunnel allows for higher flexibility (see below).
Regarding the specific solutions you mention:
- PPTP is flawed and insecure and does not provide any reasonable amount of security.
- L2TP/IPsec is an approach with an (in itself) insecure tunnel over a secured connection.
- Security is very high and no leaks are known, although it has been indicated that intelligence agencies have tried to introduce vulnerabilities.
- A fixed port and protocol is required, and any usage of IPv6 cannot be hidden in the tunnel but is obvious to the outside. This means that all infrastructure between the VPN endpoints must support this particular setup.
- OpenVPN is an approach with a secured tunnel over an (in itself) insecure connection.
- With TLS, security is very high and no security leaks are known.
- The tunnel can use any IP infrastructure, including the port of your choice and hiding internal details of the tunnel, such that you can route IPv6 packets through the tunnel even though the infrastructure between the VPN endpoints supports only IPv4.
- IPsec offers a tunnel mode where the encrypted data packets are wrapped into new data packets. This mode differs from L2TP/IPsec in the authentication methods which it provides. Whenever you need a kind of logon, this mode cannot be used easily.
Conclusion:
- Go for a tunnel approach due to higher overall security (likelihood) and fewer headaches.
- Given that security is comparable, I'd favour OpenVPN due to its higher flexibility. But study the details of the security aspects of both approaches; if users can set up OpenVPN connections it may become much less secure.
- If performance is more important than flexibility, some have claimed OpenVPN is faster but honestly I'd do my own test under given circumstances, because if there are performance differences worth mentioning, then I'd not expect them to be based on the software alone (just a gut feeling).
-
Many thanks. But, in case of L2TP/IPsec, how a secured connection is established? By using IPsec? In fact, I cannot understand what do you mean by connection.– NasserNov 17, 2015 at 11:58
-
I'm using the term "connection" for a host-to-host connection and "tunnel" for something with two routing endpoints. Yes, L2TP/IPsec establishes a secure host-to-host connection and establishes an unsecured tunnel on top of it.– Run CMDNov 17, 2015 at 12:04
-
I'm really sorry, but I've a lot of questions in my mind. AFAIK, there is also a tunnel mode with IPsec, which is secure indeed. So, why it is used with L2TP for tunneling? Why we need an insecure tunnel over a secured connection?– NasserNov 17, 2015 at 12:17
-
No, there's no tunnel in IPsec. Where did you read that? L2TP is a separate tunnel protocol, which can use e.g. IPsec as an underlying layer. Read
/
as "over" in the context of protocols, e.g. "TCP/IP" is "TCP ocer IP" and "L2TP/IPsec" is "L2TP over IPsec".– Run CMDNov 17, 2015 at 13:13 -
OK. But, we have both tunnel mode and transport mode in IPsec. Tunnel mode is usually used in scenarios where traffic between two gateways is intended to be transferred securely. While, with transport mode, the traffic between two hosts is secured. Moreover, in transport mode, the GRE protocol is usually used to first encapsulate IP packets and then to encrypt them using IPsec encryption algorithms.– NasserNov 17, 2015 at 13:36
PPTP
since it's not at all secure. BTW, if tunnels re an option, why not look atOpenVPN
?