Security Analysis of WireGuard [pdf]
courses.csail.mit.edu
courses.csail.mit.edu
"The WireGuard handshake protocol has undergone rigorous formal verification of desired properties using the Tamarin proof system [2]. Many of the cryptographic primitive implementations have also been formally verified as correct. The remaining implementations have been carefully fuzzed against the verified implementations to ensure correctness."
So all put together the simplicity goal really paid off for WireGuard.
https://eprint.iacr.org/2018/080
And, of course, the original peer-reviewed NDSS paper:
https://www.ndss-symposium.org/ndss2017/ndss-2017-programme/...
Spoiler: it's pretty solid.
I mean, it's something.
I want to believe, but try getting a null result peer reviewed.
The review should happen independent of the result and ideally the publication decision should happen before the research is performed. (There are some publications that do something alike - it's called "Registered Reports" - but it's still a small minority.)
For increased adoption,it needs to support windows and iOS.
Not only that, high performance packet routing is sometimes done mostly in user-space (haven't looked much into XDP yet).
Algo, also called Algo VPN, is a separate project which is built on-top of Wireguard [0]. Algo claims to support Android [1].
Wireguard works on Arch and Android [2]. Wireguard for Arch has first class support [3]. Wireguard for Android exists in a forked repository [4].
[0] https://github.com/trailofbits/algo
[1] https://github.com/trailofbits/algo/blob/master/docs/client-...
[2] https://www.wireguard.com/install/
Copying public keys back and forth via email seemed a bit of a faff so there's probably a better way. Possibly using `qrencode` would let you set up the client configuration...
I wish there was an option to obfuscate the traffic as a plain HTTPS connection, but that would defeat the idea of keeping Wireguard simple.
Also see this guide on using a public VPS with a Wireguard server to share resources behind two different NAT'd networks: https://staaldraad.github.io/2017/04/17/nat-to-nat-with-wire...