News for hackers. Stuff that matters.
Re:MacOS command line version of the WireGuard VPN is now av... by jolmg on Thursday May 17, 2018 @11:25AM (#17092103)
> It’s a little hard to overstate how big a deal this is. [...] Nobody trusts either codebase, or, for that matter, either crypto protocol. Both are nightmares to configure and manage.

Those seem quite the overstatements. I don't remember having any particular distrust in OpenVPN's codebase or protocol. I also didn't have that much trouble configuring neither the server nor the clients. I particularly liked how OpenVPN's configuration is basically putting command line arguments in a file. I could test configurations by simply changing invocations of openvpn, and when I found something I liked, I just put the options in a file and enabled the service to use that configuration file. Compared to the configuration of other kinds of services, OpenVPN is pretty simple.

EDIT: This is my first time hearing of WireGuard. I can't say how it compares, but the way this reads like a sales pitch and is so dismissive of SSH and OpenVPN, both of which I've had nothing but good experiences from, doesn't leave a good impression on me. I mean:

> Death to SSH over the public Internet. Death to OpenVPN. Death to IPSEC. Long live WireGuard!

Really?

This page would've been more effective on me if it objectively described how WireGuard was better than these technologies.

Re:MacOS command line version of the WireGuard VPN is now av... by tptacek on Thursday May 17, 2018 @12:17PM (#17092673)
Here's the OpenVPN security announcements page:

https://community.openvpn.net/openvpn/wiki/SecurityAnnouncem...

There was a serverside remote code execution vulnerability in OpenVPN less than a year ago.

OpenVPN is large and gnarly. It's not one of the better understood codebases. The assumption that software security assessors have closely inspected it would not be well-founded. It has had "formal" audits, but audits are point-in-time snapshots done under timebox conditions.

The point of WireGuard, from an assurance perspective, is that it's designed to mitigate these concerns. It is a VPN with most of the mechanism of legacy VPNs stripped out. Less mechanism = less attack surface. It's two orders of magnitude smaller than other VPNs in terms of lines of code. Less code = easier to review = more reviews. It's not just small: it's thoughtfully small, as the post we're commenting spells out.

OpenVPN is built on TLS. TLS is a complicated protocol. It needs to support a variety of different users and the complexity of that task shows in the protocol; that complexity (and legacy support) is also a big part of the vulnerability history of TLS. Ordinarily, it would be worth assuming the risks of TLS's complexity rather than building a custom transport protocol, because secure transport protocols can be tricky to get right. But WireGuard has had formal academic analysis (in addition to a Tamarin model) and inherits cryptographic design from work Trevor Perrin did. WireGuard's protocol only has to serve WireGuard's use case, and is significantly less likely to have cryptographic vulnerabilities than TLS or the OpenVPN system as a whole.

The right way to think about it is that OpenVPN is like Sendmail, and WireGuard is something closer to qmail.

[dead]
Re:MacOS command line version of the WireGuard VPN is now av... by tptacek on Thursday May 17, 2018 @05:44PM (#17096231)
Please take this weird decades-long argument you've had with Bernstein to a thread where it makes sense. My comparison has nothing to do with the attributes of qmail you're talking about.

(https://cr.yp.to/qmail/knowles.html)

[dead]
Re:MacOS command line version of the WireGuard VPN is now av... by tptacek on Friday May 18, 2018 @03:09PM (#17104103)
The first post you wrote like this was flagged off the site. If enough people actually see this one, it will be too. What you're doing here is abusive and says more about you than about anything you're trying to argue. Please stop.
Re:MacOS command line version of the WireGuard VPN is now av... by nickpsecurity on Thursday May 17, 2018 @11:47AM (#17092338)
Its underlying library, OpenSSL, had all kinds of issues. OpenVPN itself allowed many configurations of varying strength and weakness. OpenVPN users could set their own security up to fail while getting false assurances because they were "using a VPN." It was also a large, complex codebase which simultaneously increases number of incidental vulnerabilities and the work necessary for defenders to prevent/find all of them. When one government adopted it, the security firm had to do a lot of hardening (OpenVPN-NL) to reduce its risks. That shouldn't be necessary in a VPN.

On contrary, WireGuard started with strongest crypto it could making it default. There's also the protocol and implementation correctness to consider. WireGuard was formally-verified in Tamarin, kept small on purpose to reduce errors, carefully coded by project author focusing on security more than feature bloat, and reviewed with positive results by other security-focused coders.

It's better assurance than OpenVPN across the board. Even if I didn't have those details, the fact that WireGuard is usable out of the box in Linux while OpenVPN needs to be hardened and extra-carefully configured first would already tell me what I need to know. Use WireGuard, not OpenVPN, if you're able to.

Re:MacOS command line version of the WireGuard VPN is now av... by gshulegaard on Thursday May 17, 2018 @12:36PM (#17092883)
Just throwing it out there, but WireGuard does more than just make strong crypto "default". Instead of separating, say, transport from encryption (transformation) they tightly couple them. It's intentionally limiting this flexibility for the sake of performance and administration simplicity...in their own words:

> It intentionally lacks cipher and protocol agility. If holes are found in the underlying primitives, all endpoints will be required to update.

(https://www.wireguard.com/papers/wireguard.pdf)

Just skimming their whitepaper it seems this is done to cram everything into Layer 3 which has administrative and performance benefits. But comes with a significant tradeoff to flexibility.

They follow up that statement with something that slightly confuses me:

> As shown by the continuing torrent of SSL/TLS vulnerabilities, cipher agility increases complexity monumentally.

But the general sense I am getting is WireGuard is strongly opinionated and limited...and one way of spinning that is less vulnerable to user error. Personally, I have trouble equating that to meaning WireGuard is more secure. For similar reasons I have trouble equating OpenVPN configuration to "requiring hardening".

That said WireGuard's approach and lower layer, like IPsec, has some serious performance advantages over OpenVPN. Their whitepaper also seems to indicate that it performs better the IPsec, but I would have to see more benchmarks from other sources before making a definitive conclusion on that.

Judging from this article and the comments in this overall thread though, it appears that WireGuard has some zealous (perhaps a bit over-zealous) evangelists though.

Re:MacOS command line version of the WireGuard VPN is now av... by tptacek on Thursday May 17, 2018 @01:12PM (#17093215)
There's a growing consensus among cryptography engineers (by no means all of them, but a pretty significant set of them) that cryptographic agility in protocols is a design mistake.

That doesn't mean that we should assume modern primitives and constructions are unbreakable (though the trend has been for protocol designers to seriously overestimate the likelihood of _any_ primitive being broken).

What it means is that instead of designing and implementing elaborate handshake mechanisms, which inevitably succumb to downgrade attack bugs or, often, worse things, we should version entire protocols.

So obviously, if the ChaPoly stack is broken at some point, people will need to update WireGuard (just like they update OpenVPN when TLS bugs are discovered). But they protocol doesn't need to account for anything more than the fact that it might someday be replaced with a different protocol using different primitives.

The "agility" protocol designers are looking for has probably, historically, been implemented at the wrong layer. As usual, the closer something is to policy or prognostication, the further up the stack it should go. TLS bakes this stuff into the transport layer, which has hamstrung us and, ironically, not actually done much to protect us against vulnerabilities. WireGuard makes a different, better decision.

There's no tradeoff here; this decision is by itself a reason to adopt WireGuard.

Re:MacOS command line version of the WireGuard VPN is now av... by JoachimS on Thursday May 17, 2018 @01:49PM (#17093604)
"There's a growing consensus among cryptography engineers (by no means all of them, but a pretty significant set of them) that cryptographic agility in protocols is a design mistake."

And yet in 2018 we have proposals like this: https://tools.ietf.org/html/draft-ietf-ntp-using-nts-for-ntp...

To me it looks enormously over engineered with options, versions and flexibility everywhere.

Re:MacOS command line version of the WireGuard VPN is now av... by tptacek on Thursday May 17, 2018 @02:30PM (#17094034)
There's an even growinger consensus among cryptographers that IETF cryptography standardization is a disaster, even with smart people chairing the WGs. It's just a bad process.
Re:MacOS command line version of the WireGuard VPN is now av... by woah on Thursday May 17, 2018 @01:53PM (#17093652)
I'm on a team using Wireguard as a primitive in a complex system: http://altheamesh.com

We use Wireguard as an all-purpose tunnel to encrypt bulk traffic in two places in the system. OpenVPN's performance is unacceptable, and IPSec is impossible to work with. Wireguard is very fast, elegant, easy to understand, and well encapsulated. The zealotry is warranted and it's uses go far beyond your basic desktop VPN use case.

Re:MacOS command line version of the WireGuard VPN is now av... by daxorid on Thursday May 17, 2018 @03:34PM (#17094712)
Your project looks interesting, but what are your plans to solve the "exit node problem", e.g. one end user downloads child pornography and two weeks later the Uplink node is swatted by the FBI?
Re:MacOS command line version of the WireGuard VPN is now av... by woah on Thursday May 17, 2018 @07:07PM (#17096972)
We are running exit nodes which are no more risky than running a regular ISP. Other companies are welcome to run exit nodes as well once there is more demand.

EDIT: just to clarify, the exit nodes are in data centers near to networks, they are distinct from "gateways" which are the nodes selling internet bandwidth into the mesh network.

Re:MacOS command line version of the WireGuard VPN is now av... by daxorid on Friday May 18, 2018 @03:07PM (#17104086)
Ok, so the uplink gateways don't actually sink/source packets to the cleartext Internet, they have one more (encrypted) hop to your datacenters first?
Re:MacOS command line version of the WireGuard VPN is now av... by Fnoord on Thursday May 17, 2018 @03:02PM (#17094431)
How do Wireguard and ZeroTier compare?
Re:MacOS command line version of the WireGuard VPN is now av... by nickpsecurity on Thursday May 17, 2018 @01:54PM (#17093658)
My list shouldnt be seen as exhaustive. You're right that the project has even more traits with benefits.

"But the general sense I am getting is WireGuard is strongly opinionated and limited...and one way of spinning that is less vulnerable to user error. Personally, I have trouble equating that to meaning WireGuard is more secure."

The principles behind which systems are going to be more secure have been consistent from people like Paul Karger doing 1970's designs/pentests to folks like Bernstein later on. The number of vulnerabilities go up with complexity: handling state, potential interactions that are visible, covert/side channels that might not be, and too many options for users increasing odds of bad configs. We've seen these all happen to complex VPN's, too.

So, this isn't mere zealous recommendations: many of us have watched decades worth of software broken ignoring proven principles, WireGuard is one of few of any software following them, empirical evidence says it will be more secure in most (if not all) cases, and so we're promoting it.

A better metaphor would be security engineers and researchers promoting a security product since it has strong evidence of actually being secure. Which is exactly what you're seeing for at least four of us here. ;)

Re:MacOS command line version of the WireGuard VPN is now av... by lvh on Thursday May 17, 2018 @11:43AM (#17092297)
It does give extensive rationale: not only is it easy to configure (much easier than OpenVPN, let alone anything IPsec), the trusted codebase is tiny, and the cryptographic protocol is significantly more trustworthy.

Respectfully: I suggest you check out the research and design that went into wireguard first, because he trustworthiness of the two protocols is not the same just because you’re unfamiliar with it.

Re:MacOS command line version of the WireGuard VPN is now av... by Panino on Thursday May 17, 2018 @03:55PM (#17094948)
> Those seem quite the overstatements.

In addition to other comments, OpenVPN's default cipher is Blowfish. Since that sounds unbelievable, here's the manpage:

https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage

"The default is BF-CBC, an abbreviation for Blowfish in Cipher Block Chaining mode."

If you read just a little further you'll see that RC2, 56-bit DES and other obsolete ciphers are supported as well. To put this in perspective, DES is from the same time period as Pink Floyd's Dark Side of the Moon.

I'm very excited for WireGuard to be ported to other platforms.

Re:MacOS command line version of the WireGuard VPN is now av... by aeries on Thursday May 17, 2018 @06:48PM (#17096823)
When both sides are OpenVPN 2.4+, AES-256-GCM will be negotiated by default.
Re:MacOS command line version of the WireGuard VPN is now av... by agnokapathetic on Thursday May 17, 2018 @08:33PM (#17097616)
Emphasis on "negotiated".

The entire negotiation and key agreement stack is a larger codebase than all of Wireguard.

Re:MacOS command line version of the WireGuard VPN is now av... by stouset on Thursday May 17, 2018 @09:24PM (#17097902)
The difference between “it can be made to work securely” and “it works securely” is much more important than most people realize.
Re:MacOS command line version of the WireGuard VPN is now av... by topspin on Thursday May 17, 2018 @12:24PM (#17092742)
OpenVPN isn't that hard to configure; I have also done this on a few occasions. However, I do believe it's true to claim that to approach WireGuard's "standard" attack surface profile with OpenVPN you have to go beyond basic, naive OpenVPN configuration. Hardening OpenVPN requires additional effort and some amount of expertise and investigation to evaluate and apply configuration choices and the configuration you end up with must be aligned to by clients as well; a complication when you have limited access to or authority over the clients.

I agree that the page is a bit hyperbolic but don't let that dissuade you from investigating WireGuard; the people behind WireGuard are hard headed engineers and the work is worthy of your attention.

Re:MacOS command line version of the WireGuard VPN is now av... by zizek23 on Thursday May 17, 2018 @05:06PM (#17095817)
Wireguard is easier to configure and use and in my informal tests performed at close to line speed, around 870 Mbs on a gigabit network.

This is extremely fast for an encrypted network given most other solutions tend to take a severe toll on performance often operating at 140/180 Mbs on gigabit networks.

The only drawback currently is it's a kernel module and needs to be compiled, which makes setup across systems a bit involved, however there are ongoing efforts to merge into the kernel.

It's unfortunate innovate open source tools like Wireguard that add a lot of value to networking and clustering are not more well known.

Re:MacOS command line version of the WireGuard VPN is now av... by bsder on Friday May 18, 2018 @05:02AM (#17099814)
> The only drawback currently is it's a kernel module and needs to be compiled, which makes setup across systems a bit involved, however there are ongoing efforts to merge into the kernel.

Do these things have to be kernel modules? Is this a kernel module on OS X?

I ask because 90%+ of the time my OS X system goes unstable the moment I add a .kext.

Re:MacOS command line version of the WireGuard VPN is now av... by mcpherrinm on Friday May 18, 2018 @12:51PM (#17102934)
There is a Go implementation which runs in userspace, which is what the OSX version is. No .kext here.
Re:MacOS command line version of the WireGuard VPN is now av... by bradknowles on Thursday May 17, 2018 @05:40PM (#17096193)
OpenVPN can also be configured to operate a near line speed. It all depends on the underlying hardware, software, and configuration you're using.

Without being more specific in those areas and benchmarking the best reasonable configuration of one tool against the best reasonable configuration of the other tool, and then holding the rest of the factors constant, you've created a completely implausible and unsupportable conclusion.

I'm not saying that WireGuard isn't faster. I'm saying that you have done a poor job of describing how it is faster, and pointing to benchmark references to back up your claims.

Re:MacOS command line version of the WireGuard VPN is now av... by lisper on Thursday May 17, 2018 @05:34PM (#17096128)
> This page would've been more effective on me if it objectively described how WireGuard was better than these technologies.

Not to mention telling me where to find the code.

Re:MacOS command line version of the WireGuard VPN is now av... by dewyatt on Thursday May 17, 2018 @11:41AM (#17092277)
It's just pure marketing - create a problem where it doesn't exist, and sell the solution.
Re:MacOS command line version of the WireGuard VPN is now av... by lvh on Thursday May 17, 2018 @11:45AM (#17092318)
Would you care to rebut the arguments the blog post puts forth, such as argue that wireguard is actually harder to configure than IPSec or that the protocol is actually less trustworthy?

IPsec’s design era, implementation size... really nothing about the thing is even vaguely comparable.

Also: wireguard is free and open source software. So what precisely are we (people advocating for it) selling? We paid a hell of a lot more than the cost of an OpenVPN AS license so that everyone could get a macOS client, for free. I don’t make a dime off of you using wireguard.

So far 100% of the deployed OpenVPN I’ve seen has had bad crypto. Wireguard just categorically doesn’t have that problem.

Re:MacOS command line version of the WireGuard VPN is now av... by atonse on Thursday May 17, 2018 @11:46AM (#17092328)
Oh the problem definitely exists. And it shows in the fact that only more sophisticated teams use VPN.

And when they have to use VPN, too many teams use OpenVPN because it's seemingly the easiest to use. Also there are scripts like the amazing Algo that make it easier to run your own VPN server.

But this has historically been a totally unsolved problem from the perspective of usability.

I look at it as the difference between PGP and keybase. PGP was always too complex to use, and that's a bad security design. Keybase is a lot easier to use (and Signal even easier).

Wireguard is like that. Although I haven't used it yet, the configurations seem like "really? that's it? there's got to be more to it"

Re:MacOS command line version of the WireGuard VPN is now av... by seanieb on Thursday May 17, 2018 @12:10PM (#17092574)
Stated with such confidence... Clearly you've never dug into the internals of OpenVPN.
Re:MacOS command line version of the WireGuard VPN is now av... by kashyapc on Thursday May 17, 2018 @03:28PM (#17094664)
Yes, as an everyday user of OpenVPN for years, I find the above "death chants" extremely off-putting and amateurish. It implies the author of the post has little elementary common sense to resist not to foul-mouth existing projects that are serving a useful purpose.

Speaking of WireGuard ... FWIW, we made a QEMU Advent Calendar[1] disk image[2] for it in 2016 December. Check that out if you want to give it a spin in a virtual machine.

Reading this thread reminds me to give it a try again now.

(I recall listening to the Wireguard talk at FOSDEM 2017, and a long-time Linux kernel developer, who works on memory management, was sitting next to me and remarked that he was not convinced of some details -- but unfortunately I don't remember the technical reason he mentioned as to why he thought so. Sorry :-( )

[1] http://www.qemu-advent-calendar.org/2016/#about

[2] http://www.qemu-advent-calendar.org/2016/#day-21

Re:MacOS command line version of the WireGuard VPN is now av... by kashyapc on Thursday May 17, 2018 @05:48PM (#17096273)
Hm, guess the down votes are for the useless remark in brackets at the end, which I already hesitated before hitting "reply"; was genuinely trying to recall. (And probably for the chiding of the post author in the first paragraph.)

Live and learn.