|
|
|
|
|
by apenwarr
2247 days ago
|
|
Persistent data structures (like git) are way harder to update than non-persistent structures (like ephemeral network packets). Hypothetical WireGuard v2 packets will simply not parse as WireGuard v1 packets; they can't be decrypted as WireGuard v1. And vice versa. It's therefore trivial to have both protocols coexist, even on the same UDP port, without any negotiation whatsoever. You simply need to discard packets that don't decrypt, which is what WireGuard already does. It's dangerous to include a downgrade-capable negotiation in your VPN protocol. I'm glad they left that out of WireGuard. |
|
If both ends will automatically fall back to v1, how do you prevent protocol downgrade attacks? An adversary dropping v2 packets looks exactly like the other end not supporting v2 packets.
>It's dangerous to include a downgrade-capable negotiation in your VPN protocol.
I agree. It's a hard problem to solve. But it's going to have to be solved eventually.