All of lore.kernel.org
 help / color / mirror / Atom feed
* [WireGuard] auth-only wireguard
@ 2016-10-06  2:12 Jehan Tremback
  2016-10-06  5:48 ` Jason A. Donenfeld
  2016-10-06 15:03 ` Bruno Wolff III
  0 siblings, 2 replies; 10+ messages in thread
From: Jehan Tremback @ 2016-10-06  2:12 UTC (permalink / raw)
  To: WireGuard mailing list

Are there any plans, or would you even consider, adding an option to
WireGuard to disable encryption, and only authenticate packets? I'm
assuming that an authentication-only mode would be significantly faster
(maybe I'm wrong though). My use-case only needs auth, so if I were to
use WireGuard, the encryption would be redundant. 

-- 
  Jehan Tremback
  jehan@altheamesh.com

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [WireGuard] auth-only wireguard
  2016-10-06  2:12 [WireGuard] auth-only wireguard Jehan Tremback
@ 2016-10-06  5:48 ` Jason A. Donenfeld
  2016-10-06 15:03 ` Bruno Wolff III
  1 sibling, 0 replies; 10+ messages in thread
From: Jason A. Donenfeld @ 2016-10-06  5:48 UTC (permalink / raw)
  To: Jehan Tremback; +Cc: WireGuard mailing list

Dear NSA,

No.

Love,
Jason

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [WireGuard] auth-only wireguard
  2016-10-06  2:12 [WireGuard] auth-only wireguard Jehan Tremback
  2016-10-06  5:48 ` Jason A. Donenfeld
@ 2016-10-06 15:03 ` Bruno Wolff III
  2016-10-06 16:34   ` Jehan Tremback
  2016-10-06 17:32   ` Jason A. Donenfeld
  1 sibling, 2 replies; 10+ messages in thread
From: Bruno Wolff III @ 2016-10-06 15:03 UTC (permalink / raw)
  To: Jehan Tremback; +Cc: WireGuard mailing list

On Wed, Oct 05, 2016 at 19:12:57 -0700,
  Jehan Tremback <jehan@altheamesh.com> wrote:
>Are there any plans, or would you even consider, adding an option to
>WireGuard to disable encryption, and only authenticate packets? I'm
>assuming that an authentication-only mode would be significantly faster
>(maybe I'm wrong though). My use-case only needs auth, so if I were to
>use WireGuard, the encryption would be redundant.

That would depend on how fast your internet connection is and how much CPU 
power you have. I suspect in many cases the extra latency is negligible 
and it would be rare for encryption to be limiting bandwidth.

Without encryption you authentication won't be useful against attackers 
that can modify packets or insert packets with the source address of your 
contact.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [WireGuard] auth-only wireguard
  2016-10-06 15:03 ` Bruno Wolff III
@ 2016-10-06 16:34   ` Jehan Tremback
  2016-10-06 17:35     ` Jason A. Donenfeld
  2016-10-06 17:42     ` Alex Xu
  2016-10-06 17:32   ` Jason A. Donenfeld
  1 sibling, 2 replies; 10+ messages in thread
From: Jehan Tremback @ 2016-10-06 16:34 UTC (permalink / raw)
  To: Bruno Wolff III; +Cc: WireGuard mailing list

Let me be more specific about my application. I'm trying to create a
system where routers in a "mesh" network (mixed ad-hoc wifi and
ethernet) pay their neighbors, or are paid by their neighbors for
bandwidth. To make this happen, I've got to be able to identify traffic
from specific neighbors with something less spoofable than MAC
addresses. Creating tunnels between neighbors fits the bill for now, and
gives me a good handle to apply traffic shaping to different neighbors.
The encapsulating tunnel packet will have the source IP address of the
previous hop neighbor, and will be sent to the next hop neighbor, and
can be prioritized . Authentication keeps anyone from spoofing addresses
and stealing bandwidth. 

Anyway, I'm experimenting with fastd right now, and it's working, but
WireGuard seems like a very nicely designed and executed piece of
software so I thought I'd ask. I understand that WireGuard is designed
to be very focused on a traditional VPN server usecase, so more
configurability may not be something you want to support. 

> Without encryption you authentication won't be useful against attackers 
> that can modify packets or insert packets with the source address of your 
> contact.

Isn't this exactly what authentication prevents? If the signature does
not match the sender and the packet content, it will fail authentication
by definition, at least by any definition of authentication that I am
familiar with.

-Jehan

-- 
  Jehan Tremback
  jehan@altheamesh.com

On Thu, Oct 6, 2016, at 08:03 AM, Bruno Wolff III wrote:
> On Wed, Oct 05, 2016 at 19:12:57 -0700,
>   Jehan Tremback <jehan@altheamesh.com> wrote:
> >Are there any plans, or would you even consider, adding an option to
> >WireGuard to disable encryption, and only authenticate packets? I'm
> >assuming that an authentication-only mode would be significantly faster
> >(maybe I'm wrong though). My use-case only needs auth, so if I were to
> >use WireGuard, the encryption would be redundant.
> 
> That would depend on how fast your internet connection is and how much
> CPU 
> power you have. I suspect in many cases the extra latency is negligible 
> and it would be rare for encryption to be limiting bandwidth.
> 
> Without encryption you authentication won't be useful against attackers 
> that can modify packets or insert packets with the source address of your 
> contact.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [WireGuard] auth-only wireguard
  2016-10-06 15:03 ` Bruno Wolff III
  2016-10-06 16:34   ` Jehan Tremback
@ 2016-10-06 17:32   ` Jason A. Donenfeld
  2016-10-06 19:27     ` Bruno Wolff III
  1 sibling, 1 reply; 10+ messages in thread
From: Jason A. Donenfeld @ 2016-10-06 17:32 UTC (permalink / raw)
  To: Bruno Wolff III; +Cc: WireGuard mailing list

On Thu, Oct 6, 2016 at 5:03 PM, Bruno Wolff III <bruno@wolff.to> wrote:
> Without encryption you authentication won't be useful against attackers that
> can modify packets or insert packets with the source address of your
> contact.

Either I've misunderstood you, or this is completely inaccurate.

What do you mean exactly?

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [WireGuard] auth-only wireguard
  2016-10-06 16:34   ` Jehan Tremback
@ 2016-10-06 17:35     ` Jason A. Donenfeld
  2016-10-06 17:42     ` Alex Xu
  1 sibling, 0 replies; 10+ messages in thread
From: Jason A. Donenfeld @ 2016-10-06 17:35 UTC (permalink / raw)
  To: Jehan Tremback; +Cc: WireGuard mailing list

On Thu, Oct 6, 2016 at 6:34 PM, Jehan Tremback <jehan@altheamesh.com> wrote:
> Let me be more specific about my application. I'm trying to create a
> system where routers in a "mesh" network (mixed ad-hoc wifi and
> ethernet) pay their neighbors, or are paid by their neighbors for
> bandwidth. To make this happen, I've got to be able to identify traffic
> from specific neighbors with something less spoofable than MAC
> addresses. Creating tunnels between neighbors fits the bill for now, and
> gives me a good handle to apply traffic shaping to different neighbors.
> The encapsulating tunnel packet will have the source IP address of the
> previous hop neighbor, and will be sent to the next hop neighbor, and
> can be prioritized . Authentication keeps anyone from spoofing addresses
> and stealing bandwidth.

And encryption keeps various neighbors traffic hidden from passive
eavesdroppers. Do your customers a service; encrypt their traffic
wherever possible.

>
> Anyway, I'm experimenting with fastd right now, and it's working, but
> WireGuard seems like a very nicely designed and executed piece of
> software so I thought I'd ask. I understand that WireGuard is designed
> to be very focused on a traditional VPN server usecase, so more
> configurability may not be something you want to support.

WireGuard isn't very focused on any particular use case. It certainly
aims to be something directly applicable for what you have in mind.
Recently we've been talking with a large community run ISP that
extends across Germany that does some interesting and complicated mesh
networking to bring affordable internet everywhere. They're currently
using fastd, too, but I believe are in a transition to WireGuard,
because the performance is substantially better than fastd.

>
>> Without encryption you authentication won't be useful against attackers
>> that can modify packets or insert packets with the source address of your
>> contact.
>
> Isn't this exactly what authentication prevents? If the signature does
> not match the sender and the packet content, it will fail authentication
> by definition, at least by any definition of authentication that I am
> familiar with.

I was confused by Bruno's statement too with more or less your exact
same reaction.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [WireGuard] auth-only wireguard
  2016-10-06 16:34   ` Jehan Tremback
  2016-10-06 17:35     ` Jason A. Donenfeld
@ 2016-10-06 17:42     ` Alex Xu
  2016-10-06 19:34       ` Jehan Tremback
  1 sibling, 1 reply; 10+ messages in thread
From: Alex Xu @ 2016-10-06 17:42 UTC (permalink / raw)
  To: wireguard

On Thu, 06 Oct 2016 09:34:18 -0700
Jehan Tremback <jehan@altheamesh.com> wrote:

> Let me be more specific about my application. I'm trying to create a
> system where routers in a "mesh" network (mixed ad-hoc wifi and
> ethernet) pay their neighbors, or are paid by their neighbors for
> bandwidth. To make this happen, I've got to be able to identify
> traffic from specific neighbors with something less spoofable than MAC
> addresses. Creating tunnels between neighbors fits the bill for now,
> and gives me a good handle to apply traffic shaping to different
> neighbors. The encapsulating tunnel packet will have the source IP
> address of the previous hop neighbor, and will be sent to the next
> hop neighbor, and can be prioritized . Authentication keeps anyone
> from spoofing addresses and stealing bandwidth.

So... now everybody can spy on each other's traffic instead of
also spoofing it. That doesn't seem like a huge improvement to me.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [WireGuard] auth-only wireguard
  2016-10-06 17:32   ` Jason A. Donenfeld
@ 2016-10-06 19:27     ` Bruno Wolff III
  2016-10-06 20:43       ` Jason A. Donenfeld
  0 siblings, 1 reply; 10+ messages in thread
From: Bruno Wolff III @ 2016-10-06 19:27 UTC (permalink / raw)
  To: Jason A. Donenfeld; +Cc: WireGuard mailing list

On Thu, Oct 06, 2016 at 19:32:36 +0200,
  "Jason A. Donenfeld" <Jason@zx2c4.com> wrote:
>On Thu, Oct 6, 2016 at 5:03 PM, Bruno Wolff III <bruno@wolff.to> wrote:
>> Without encryption you authentication won't be useful against attackers that
>> can modify packets or insert packets with the source address of your
>> contact.
>
>Either I've misunderstood you, or this is completely inaccurate.
>
>What do you mean exactly?

Someone able to watch and modify traffic can wait for authentication to occur 
and then take over the connection. So you don't know you are still 
communicating with the party that did the authentication. You need something 
protecting message integrity which is normally based on encryption, but I 
think there might be ways to do that with just hashing.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [WireGuard] auth-only wireguard
  2016-10-06 17:42     ` Alex Xu
@ 2016-10-06 19:34       ` Jehan Tremback
  0 siblings, 0 replies; 10+ messages in thread
From: Jehan Tremback @ 2016-10-06 19:34 UTC (permalink / raw)
  To: wireguard

> And encryption keeps various neighbors traffic hidden from passive
> eavesdroppers. Do your customers a service; encrypt their traffic
> wherever possible.

> So... now everybody can spy on each other's traffic instead of
> also spoofing it. That doesn't seem like a huge improvement to me.

Just to elaborate on why I don't want encryption for the specific tunnel
I describe: This is to be used between physical neighbors, to prevent
spoofing IP addresses to steal bandwidth. For example, let's say that
Alice and Bob are both connected to Charlie. Charlie has a connection to
the internet, and has made a contract with Bob to sell him a certain
amount of data (or a certain connection duration at a specified
bandwidth). Without authentication, Alice could spoof Bob's IP or MAC
address to use up his quota, or his bandwidth. This authentication is
happening at every hop, so it would be good to keep the overhead down.

There is typically another tunnel used on mesh networks, between exit
servers (which perform NAT and deal with legal complaints) and the end
user nodes. This would be encrypted, and I believe this is what the
network in Germany is looking at WireGuard for. Having two layers of
encryption within the network, in addition to whatever e2e the user may
be using, seems excessive.

Also, Bob doesn't necessarily trust Charlie. He is just providing a
service. Encryption between Bob and Charlie provides little benefit. The
NSA could join the mesh group, set up a cheaper uplink, get Bob to buy
some bandwidth, and see Bob's packets that way. The encryption is
provided by the tunnel to the exit server, and more importantly, the
user's e2e.

-- 
  Jehan Tremback
  jehan@altheamesh.com

On Thu, Oct 6, 2016, at 10:42 AM, Alex Xu wrote:
> On Thu, 06 Oct 2016 09:34:18 -0700
> Jehan Tremback <jehan@altheamesh.com> wrote:
> 
> > Let me be more specific about my application. I'm trying to create a
> > system where routers in a "mesh" network (mixed ad-hoc wifi and
> > ethernet) pay their neighbors, or are paid by their neighbors for
> > bandwidth. To make this happen, I've got to be able to identify
> > traffic from specific neighbors with something less spoofable than MAC
> > addresses. Creating tunnels between neighbors fits the bill for now,
> > and gives me a good handle to apply traffic shaping to different
> > neighbors. The encapsulating tunnel packet will have the source IP
> > address of the previous hop neighbor, and will be sent to the next
> > hop neighbor, and can be prioritized . Authentication keeps anyone
> > from spoofing addresses and stealing bandwidth.
> 
> So... now everybody can spy on each other's traffic instead of
> also spoofing it. That doesn't seem like a huge improvement to me.
> _______________________________________________
> WireGuard mailing list
> WireGuard@lists.zx2c4.com
> http://lists.zx2c4.com/mailman/listinfo/wireguard

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [WireGuard] auth-only wireguard
  2016-10-06 19:27     ` Bruno Wolff III
@ 2016-10-06 20:43       ` Jason A. Donenfeld
  0 siblings, 0 replies; 10+ messages in thread
From: Jason A. Donenfeld @ 2016-10-06 20:43 UTC (permalink / raw)
  To: Bruno Wolff III; +Cc: WireGuard mailing list

[-- Attachment #1: Type: text/plain, Size: 589 bytes --]

Hi Bruno,

On Oct 6, 2016 9:29 PM, "Bruno Wolff III" <bruno@wolff.to> wrote:
> Someone able to watch and modify traffic can wait for authentication to
occur and then take over the connection. So you don't know you are still
communicating with the party that did the authentication. You need
something protecting message integrity which is normally based on
encryption, but I think there might be ways to do that with just hashing.

You're misunderstanding terminology, I think. Rather than polluting this
thread here, I'd be happy to explain to you on IRC -- I'm zx2c4 on freenode.

Jason

[-- Attachment #2: Type: text/html, Size: 734 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-10-06 20:31 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-06  2:12 [WireGuard] auth-only wireguard Jehan Tremback
2016-10-06  5:48 ` Jason A. Donenfeld
2016-10-06 15:03 ` Bruno Wolff III
2016-10-06 16:34   ` Jehan Tremback
2016-10-06 17:35     ` Jason A. Donenfeld
2016-10-06 17:42     ` Alex Xu
2016-10-06 19:34       ` Jehan Tremback
2016-10-06 17:32   ` Jason A. Donenfeld
2016-10-06 19:27     ` Bruno Wolff III
2016-10-06 20:43       ` Jason A. Donenfeld

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.