Known Limitations - WireGuard (2024)

Known Limitations

WireGuard is a protocol that, like all protocols, makes necessary trade-offs. This page summarizes known limitations due to these trade-offs.

Deep Packet Inspection

WireGuard does not focus on obfuscation. Obfuscation, rather, should happen at a layer above WireGuard, with WireGuard focused on providing solid crypto with a simple implementation. It is quite possible to plug in various forms of obfuscation, however.

TCP Mode

WireGuard explicitly does not support tunneling over TCP, due to the classically terrible network performance of tunneling TCP-over-TCP. Rather, transforming WireGuard's UDP packets into TCP is the job of an upper layer of obfuscation (see previous point), and can be accomplished by projects like udptunnel and udp2raw.

Hardware Crypto

WireGuard uses ChaCha20Poly1305, which is extremely fast in software on virtually all general purpose CPUs. As of writing, there is not an overwhelming amount of dedicated hardware support for it, though this is changing. Practically speaking, this is not a problem, as vector instructions on CPUs wind up being in the same ballpark (and sometimes even faster) than AES-NI instructions.

Roaming Mischief

WireGuard's roaming happens without an additional round trip or other authentication, which means an active man in the middle can replace source IP addresses. A man in the middle can already redirect packets, by virtue of being active, but it may be possible for the endpoint address to be updated and for the man in the middle to relay packets after having lost the man in the middle position. These packets, however, remain indecipherable by the attacker, by virtue of WireGuard's usual authenticated encryption. However, if this is an issue, ordinary firewalling can lock down the WireGuard socket to a particular IP address, and it's possible that future revisions of WireGuard will allow this innately. Relatedly, it may be possible to play a TCP sequence number guessing game in order to have a WireGuard server direct packets at an uncontrolled IP address.

Identity Hiding Forward Secrecy

WireGuard has forward secrecy of data packets, thanks to its handshake, but the handshake itself encrypts the sender's public key using the static public key of the responder, which means that a compromise of the responder's private key and a traffic log of previous handshakes would enable an attacker to figure out who has sent handshakes, but not what data is inside of them. Similarly, mac1 is made over the responder's public key, which means it is possible to trial hash to guess whether or not a packet is intended for a particular responder, though the mac1 could be forged. Mitigations include rotating or regenerating keys, based on expectations of unlinkability.

Post-Quantum Secrecy

WireGuard is not, by default, post-quantum secure. However, the pre-shared key parameter can be used to add a layer of post-quantum secrecy. It could be post-quantum secure were the public keys hashed instead of sent directly, but this is not part of the Noise Protocol Framework, on which WireGuard's handshake is based, and this hashing technique wouldn't enable forward-secure post-quantum secrecy either. The best bet for post-quantum security is to run a truly post-quantum handshake on top of WireGuard, and then insert that key into WireGuard's pre-shared key slot.

Denial of Service

WireGuard is supposed to be abuse-resistant, by virtue of its use of mac1 and mac2, though before mac2 kicks in, the ECDH computations may use considerable CPU. In practice, though, mac2 is usually sufficient.

Unreliable Monotonic Counter

WireGuard uses the system time as a reliable monotonic counter. If this jumps forward, a user might DoS their own keys, by making it impossible to later have a value larger, or an adversary controlling system time could store a handshake initiation for use later. If it jumps backwards, handshakes will similarly be impossible. Thus, the system time should not be under the control of a hostile adversary.

Routing Loops

There are currently a few issues with detecting routing loops, locally and over a network, and there are various tricks like changing the outer src to the inner src.

Known Limitations - WireGuard (2024)

FAQs

Known Limitations - WireGuard? ›

Unreliable Monotonic Counter. WireGuard uses the system time as a reliable monotonic counter. If this jumps forward, a user might DoS their own keys, by making it impossible to later have a value larger, or an adversary controlling system time could store a handshake initiation for use later.

Why not to use WireGuard? ›

It is extensible that new cryptographic primitives can be added. WireGuard does not have that. That means WireGuard will break at some point, because one of the cryptographic primitives will weaken or entirely break at some point.

Is anything better than WireGuard? ›

Verdict on Security

There are no known security flaws in either protocol. If security is your topmost priority, the conservative option is OpenVPN. It has simply been around much longer than WireGuard, gone through more third-party security audits, and has a far longer track record than WireGuard.

Can WireGuard be detected? ›

Yes, WireGuard can be detected. It doesn't do VPN obfuscation, mostly because of the insistence on UDP transmission mode.

Can WireGuard be trusted? ›

Is WireGuard secure? WireGuard is considered by many to be one of the safest, most secure VPN protocol options available today. Simplified design using less code equals fewer bugs and security vulnerabilities, while WireGuard's faster state-of-the-art cryptography employs superior default security settings.

Does WireGuard hide your IP? ›

Yes, WireGuard can hide your IP by routing traffic through a VPN server.

Is WireGuard quantum proof? ›

WireGuard is not, by default, post-quantum secure.

Why Tailscale over WireGuard? ›

WireGuard uses a keepalive protocol to keep connections open, even if there is no traffic to a node on your network. Tailscale makes your services easily addressable. Tailscale assigns your devices static IP addresses, which they maintain even as they move around on your network.

Why use WireGuard over OpenVPN? ›

Overall, WireGuard is the faster of the two protocols. OpenVPN, if configured in UDP mode, will offer similar latency, but it will still require higher data usage. Note that WireGuard runs only in UDP mode. Both OpenVPN and WireGuard use strong unbroken ciphers.

Should I use IKEv2 or WireGuard? ›

Based on these findings, if you're looking for the fastest secure tunneling protocol, you should go with NordLynx (or WireGuard). The second fastest will be IKEv2, which can confidently hold its own even when connecting to the other side of the world.

Does WireGuard route all traffic? ›

0.0/0 means all trafic gets routed through your wireguard VPN. But you could also only send specific IP's through the VPN. For eg with: 192.168. 1.100/32, 192.168.

How do I make WireGuard undetectable? ›

Best Ways to Make Your VPN Undetectable in 2024
  1. Choose a Quality VPN. The easiest way to avoid VPN detectors and VPN blocks is to just use a VPN proven to be undetectable. ...
  2. Change the VPN Protocol. ...
  3. Use Obfuscation Features. ...
  4. Use TCP Port 443. ...
  5. Use Tor over VPN. ...
  6. Change the VPN's IP Address. ...
  7. Use Mobile Data. ...
  8. Use Shadowsocks.

Can ISP detect WireGuard? ›

Your ISP can see, or at least guess, that you are using a VPN based on the port number. Different VPN protocols like OpenVPN (UDP or TCP), IKEv2, or WireGuard® use specific port numbers.

Can WireGuard VPN be hacked? ›

No software is completely hack-proof. However, WireGuard has undergone security audits and is designed to be less susceptible to certain types of attacks than other VPN protocols due to modern cryptographic algorithms and a simpler codebase, which reduces the likelihood of coding errors and vulnerabilities.

Is WireGuard a stealth? ›

Stealth is our custom WireGuard-based VPN protocol that uses several technologies to make it much harder to detect and block, including running over an obfuscated TLS tunnel over TCP.

Who is behind WireGuard? ›

WireGuard
Original author(s)Jason A. Donenfeld
Operating systemAndroid iOS Linux FreeBSD NetBSD OpenBSD macOS Windows 7+ Other
TypeVirtual private network
Licensevarious free and open-source
Websitewww.wireguard.com
8 more rows

Is WireGuard vulnerable? ›

Attack Surface and Potential Vulnerabilities

Additionally, the WireGuard codebase is open-source, allowing independent security researchers and experts to audit and analyze the code for potential weaknesses. However, it's important to note that no software is immune to vulnerabilities, and WireGuard is no exception.

Why use OpenVPN over WireGuard? ›

SUMMARY: OpenVPN offers greater freedom when it comes to encryption and security, but WireGuard is easier to audit and has a smaller attack surface. Both protocols are very secure, but less tech-savvy users may prefer to trust the experts at WireGuard, rather than take matters into their own hands.

What is the point of WireGuard? ›

WireGuard is a new-generation VPN protocol that radically streamlines secure communication for its end users and network administrators.

Top Articles
Latest Posts
Article information

Author: Melvina Ondricka

Last Updated:

Views: 6510

Rating: 4.8 / 5 (48 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Melvina Ondricka

Birthday: 2000-12-23

Address: Suite 382 139 Shaniqua Locks, Paulaborough, UT 90498

Phone: +636383657021

Job: Dynamic Government Specialist

Hobby: Kite flying, Watching movies, Knitting, Model building, Reading, Wood carving, Paintball

Introduction: My name is Melvina Ondricka, I am a helpful, fancy, friendly, innocent, outstanding, courageous, thoughtful person who loves writing and wants to share my knowledge and understanding with you.