wireguard.lists.zx2c4.com archive mirror
 help / color / mirror / Atom feed
From: Kalin KOZHUHAROV <me.kalin@gmail.com>
To: Brian Candler <b.candler@pobox.com>
Cc: WireGuard mailing list <wireguard@lists.zx2c4.com>
Subject: Re: Reflections on WireGuard Design Goals
Date: Fri, 10 Aug 2018 17:09:56 +0300	[thread overview]
Message-ID: <CAKXLc7cEmbN6ZG4X88DNMf_CO-oy+tgrMskwExFnY=oCyWR6Yw@mail.gmail.com> (raw)
In-Reply-To: <b66a15d1-c4f1-78a5-cf5a-4d2a4ca9ce54@pobox.com>

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

Please excuse my brevity, phone typing here...

On Fri, 10 Aug 2018, 16:36 Brian Candler, <b.candler@pobox.com> wrote:

> Thanks for explaining the project background, and your very sensible
> goals of simplicity and robustness.  And thanks for releasing this
> excellent piece of software.
>
>  From my point of view, the only thing which makes me uncomfortable
> about wireguard is the lack of any second authentication factor. Your
> private key is embedded in a plaintext file in your device (e.g.
> laptop), not even protected with a passphrase.

Not always. You can generate it on the fly (say 1st boot, no config file),
distribute it and be done. Or you can choose to protect it (e.g. pgp), may
be even store it in a HSM. Or throw it (keep in RAM) and regenerate, if
needed.

Anyone who gains access
> to that laptop is able to establish wireguard connections.
>
> Of course, it can be argued that the laptop holds other information
> which is more valuable that the wireguard key, therefore you should
> concentrate on properly securing the laptop itself (*). Furthermore, to
> be able to talk to the wireguard kernel module you're already root, and
> therefore have all sorts of malicious options available to you. etc etc
>
> But I'd feel a lot happier if a second level of authentication were
> required to establish a wireguard connection, if no packets had been
> flowing for more than a configurable amount of time - say, an hour. It
> would give some comfort around lost/stolen devices.
>
And what do we do (count or not) keepalive traffic?

Whilst I appreciate that wireguard is symmetrical, a common use case is
> to have remote "clients" with a central "office".  I'm thinking about a
> hook whereby the "office" side could request extra authentication when
> required - e.g. if it sees a connection from a wireguard public key
> which has been idle for more than a configurable amount of time, then it
> sends a challenge which requires (e.g.) a Yubikey to complete.  I
> appreciate that it's not going to be straightforward, requiring the
> kernel module to talk to userland components at both ends.
>
That is way overcomplicated...
And how did you solve your key distribution in such scenario BTW? (hint:
the functionality you request is part of key handling, i.e. NOT part of wg,
AFAIK). The office end can expire any user key and request sidechannel
(additional, 2FA or more) authentication via the established link. Who says
wg tunnel should be to the network core? Use a standard firewall, plug a
RADIUS even, or script your way on top of wg. Feel free to provide a clean
interface to wg and documentation and people who want that functionality
will use the code. Is there anything (e.g. design-level) that prevents
that? Or functionality that is lacking at the core?

>
> In the absence of that, it would be nice if the private key which is
> stored on the laptop were encrypted with a passphrase.  Simplest option
> may be to extend wg-quick so that the entire config file can be
> pgp-encrypted.
>

Now that also is not 2FA, and yes it should be a few lines of scripting.

Kalin.

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

  parent reply	other threads:[~2018-08-10 13:58 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.1318.1533866648.2201.wireguard@lists.zx2c4.com>
2018-08-10 13:35 ` Reflections on WireGuard Design Goals Brian Candler
2018-08-10 14:09   ` Matthias Urlichs
2018-08-10 14:09   ` Kalin KOZHUHAROV [this message]
2018-08-10 14:42   ` Eisfunke
2018-08-10 14:47   ` Konstantin Ryabitsev
2018-08-10 15:03   ` Roman Mamedov
2018-08-10 16:03     ` Brian Candler
2018-08-10 16:38       ` Kalin KOZHUHAROV
2018-08-10 16:40       ` jungle Boogie
2018-08-10 17:12         ` Aaron Jones
2018-08-10 17:25           ` jungle Boogie
2018-08-10 20:15   ` em12345
2018-08-10 23:07     ` Reuben Martin
2018-08-11 19:18   ` Jason A. Donenfeld
2018-08-11 22:52     ` Luiz Angelo Daros de Luca
2018-08-12  0:15       ` Aaron Jones
2018-08-12  0:46         ` Jason A. Donenfeld
2018-08-12  1:07           ` Aaron Jones
2018-08-09 21:52 Jason A. Donenfeld
2018-08-10 15:19 ` nicolas prochazka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAKXLc7cEmbN6ZG4X88DNMf_CO-oy+tgrMskwExFnY=oCyWR6Yw@mail.gmail.com' \
    --to=me.kalin@gmail.com \
    --cc=b.candler@pobox.com \
    --cc=wireguard@lists.zx2c4.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).