Live data from Hacker News

WireGuard: next generation in-kernel modern VPN

wireguard.io

21–30 of 157 posts

Re: WireGuard: next generation in-kernel modern VPN

#21
post #3

Wow, I launched this 10 minutes ago and somebody already put it on Hacker News. Spectacular! I'm the author of this and would be happy to answer any questions you have.

Hey! Knew I recognized that username. You also make pass which I've been using since you released that too. Definitely going to give this a run. Thanks for more useful tools!

Re: WireGuard: next generation in-kernel modern VPN

#22
post #12
post #3

Wow, I launched this 10 minutes ago and somebody already put it on Hacker News. Spectacular! I'm the author of this and would be happy to answer any questions you have.

Thanks for being here, I have a few questions. Does the server get a separate wg interface for every client that connects? Or does it do something like multipoint GRE interfaces with next hop addresses in the arp table? Does this do a DH key agreement to guarantee forward secrecy or does it literally encrypt the packet with the peers public key? Also is it in the scope of this project for peers to discover each other…

> Does the server get a separate wg interface for every client that connects?

No. Each wg interface has a public/private key. It then has a list of peers' public keys and associated allowed IPs. By tying each public key to the allowed IPs of that public key, you can be sure that if a packet comes from wg0 and comes from a particular src IP, it comes from who you want. So no need for a new wg0 for each peer.

> Does this do a DH key agreement to guarantee forward secrecy or does it literally encrypt the packet with the peers public key?

It uses a 1-RTT ECDH key agreement based on the Noise Protocol Framework, with identity hiding, perfect forward secrecy, and so forth. So, it does what you hoped it does. :)

> Phase3 DMVPN

I'm not familiar with this, but I'll read up on it. Just found a large cisco document describing it. I suspect that "automatic discovery" wouldn't be very much to my taste, but I'll read up on it before dismissing it wholesale.

Re: WireGuard: next generation in-kernel modern VPN

#23
post #3

Wow, I launched this 10 minutes ago and somebody already put it on Hacker News. Spectacular! I'm the author of this and would be happy to answer any questions you have.

First of all, congratulations on launching !

This looks interesting and I will be sure to check it out when I get the chance. I see from the examples on the site that it's IPv4 everywhre. Is there IPv6 support ? If not, is it on the roadmap ?

Re: WireGuard: next generation in-kernel modern VPN

#25
post #16
post #13

I know asking for MIT / BSD or Apache 2 may be a little bit of stretch. But any chance of LGPL? Or would we need a conplete reimplementation for BSD?

I don't really have any problem re-licensing it less restrictively, I don't think. I'll have to think about it for more than 10 seconds I suppose. But I put "GPLv2" there without much thought simply because that's what Linux uses. But you make a good point about the BSDs.

Remember interoperability in mixed-OS environments. You won't get uptake or contributions from Microsoft, etc. if they have to re-license their kernel in GPL v2. Getting all links encrypted by default might be a worthy enough goal for a BSD license that proprietary will mooch off of. We all benefit in such situations. Especially given how often they muck up VPN's when they code them on their own. ;)

Re: WireGuard: next generation in-kernel modern VPN

#26
post #23
post #3

Wow, I launched this 10 minutes ago and somebody already put it on Hacker News. Spectacular! I'm the author of this and would be happy to answer any questions you have.

First of all, congratulations on launching ! This looks interesting and I will be sure to check it out when I get the chance. I see from the examples on the site that it's IPv4 everywhre. Is there IPv6 support ? If not, is it on the roadmap ?

IPv6 definitely is supported. I should add some examples. Every place you see an IPv4 address an IPv6 one can go. They can even be mixed and matched. There's full support and it works quite well.

Thanks for the documentation suggestion.

Re: WireGuard: next generation in-kernel modern VPN

#27
Looks awesome! I can't wait to play with it when it hits 1.0.

In advance of that, I'm curious: What's the tl;dr: on how this compares to Tinc? In particular, I'm wondering what WireGuard's mobile story looks like, especially in comparison with Tinc's (which is pretty rudimentary as far as I can tell), and about the extent of effort that's likely to be involved in ongoing configuration management.

Re: WireGuard: next generation in-kernel modern VPN

#28
post #16
post #13

I know asking for MIT / BSD or Apache 2 may be a little bit of stretch. But any chance of LGPL? Or would we need a conplete reimplementation for BSD?

I don't really have any problem re-licensing it less restrictively, I don't think. I'll have to think about it for more than 10 seconds I suppose. But I put "GPLv2" there without much thought simply because that's what Linux uses. But you make a good point about the BSDs.

As a hardcore BSD user, GPLv2 is perfectly fine with the BSDs. They all ship with GPLv2 software by default.

FreeBSD doesn't like GPLv3, but OpenBSD and DragonFlyBSD don't have a problem with it. I don't know about NetBSD off the top of my head.

IMO this seems like something that should be GPL and I think you needn't change it.

Re: WireGuard: next generation in-kernel modern VPN

#29
post #3

Wow, I launched this 10 minutes ago and somebody already put it on Hacker News. Spectacular! I'm the author of this and would be happy to answer any questions you have.

Don't have time for a detailed review. However, I like that you're working to replace IPsec with something simpler, easier to use, and with flexible deployment. Crypto algorithms look better than most VPN's I see as well. Good work on all that. Just remember to aid others' verification efforts later on by keeping it modular, minimal shared state, simple constructions in code, and so on. Whatever passes through a dece…

> Just remember to aid others' verification efforts later on by keeping it modular, minimal shared state, simple constructions in code, and so on. Whatever passes through a decent static analysis tool.

Yes this absolutely is the goal. I'm trying to keep the codebase as small and clear as possible.

> Design by Contract

Working out the precise pre and post conditions of every state would indeed be worthwhile. For all state transitions of the protocol, I've worked out by hand every possible combination and accounted it for it. I should publicize this work (i.e. type up my handwritten notes), and then let others join building on top of it.

Re: WireGuard: next generation in-kernel modern VPN

#30
post #10
post #3

Wow, I launched this 10 minutes ago and somebody already put it on Hacker News. Spectacular! I'm the author of this and would be happy to answer any questions you have.

Where has the code for the nuts and bolts of the crypto come from (e.g. everything in the "crypto" folder)?

ChaPoly is based on Martin Willi's implementation, but heavily modified.

Blake2s is essentially their reference code.

Curve25519 is based on Adam Langley's donna.

Post reply on HN