From: Axel Neumann <neumann@cgws.de>
To: "Toke Høiland-Jørgensen" <toke@toke.dk>,
"Matthias Urlichs" <matthias@urlichs.de>,
wireguard@lists.zx2c4.com
Subject: Need for HW-clock independent timestamps
Date: Wed, 16 May 2018 09:01:07 +0200 [thread overview]
Message-ID: <1FB166DA-4390-47BD-9CB0-8408C0691AC1@cgws.de> (raw)
In-Reply-To: <87k1s7wx30.fsf@toke.dk>
[-- Attachment #1: Type: text/plain, Size: 2631 bytes --]
On 13.05.2018 14:37, Toke Høiland-Jørgensen wrote:> Matthias Urlichs
<matthias@urlichs.de> writes:
>
>> Can anybody think of problems with this solution?
>
> Well, the possibility of DOS if you set the counter too high,
Correct me please, but skipping even many counter values should not be a problem at all. So do you mean DOS in case your hit a wrap around of the
counter? IMO this can be easily prevented.
If the
TAI64/96 bit timestamp field (64-bit seconds count + 32-bit nanoseconds count)
in WG handshake_init messages is used as a counter, then it seems sufficient to just use the 32-bit nano-cnt part for sequential increments after each handshake. Only the sec-cnt part needs to be saved with a +1 value (implicitly assuming nano-cnt saved as zero): during wg modprobe and also whenever the in-memory nano-cnt value got 80% exhausted. Reserving room for 800 000 000 handshakes (in non-reboot cases) before a new fs-write operation is needed. Given that just the handshake-required ECDH-Curve25519 takes more than a ms (eg 769 handshake/s measured on my intel notebook) calculation, that would happen at most once every 10 days. But realistically rather in terms of month or years.
So in practice, a sec-cnt+1 value, now representing not secs but handshake counts x 1000000000) would only be saved during each system boot or wg init.
> and the
> possibility of replay attacks if you fail to save the last state when
> you shut down comes to mind :)
Where is that possibility? If you fail then you would send
handshake_initiation messages with an already outdated timestamp field. Exactly what now happens by default with non-HWC equipped devices after each reboot.
>
> (Not saying it's not possible to create a workable solution, just that
> it's not trivial and requires careful thought to not break the security
> assumptions of the protocol).
I agree,
but looking at the recent discussion (how to secure NTP as a work around for for non-HWC devices) some of the assumptions made by the current approach seem already quite questionable to me right now. Like super-simple WG and firewall setup. Instead of two-lines documentation
you will likely need 2 pages plus some references for further reading to other tools (like NTP) and also inherit related problems. That does not sound like the WG philosophy to me.
/Axel
>
> -Toke
> _______________________________________________
> WireGuard mailing list
> WireGuard@lists.zx2c4.com
> https://lists.zx2c4.com/mailman/listinfo/wireguard
>
--
Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.
[-- Attachment #2: Type: text/html, Size: 2950 bytes --]
next prev parent reply other threads:[~2018-05-16 7:01 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-11 22:07 WG: Need for HW-clock independent timestamps Axel Neumann
2018-05-11 22:45 ` Kalin KOZHUHAROV
2018-05-12 0:05 ` Glen Bojsza
2018-05-12 19:29 ` Axel Neumann
2018-05-12 19:41 ` Aaron Jones
2018-05-15 20:21 ` Devan Carpenter
2018-05-15 20:49 ` Kalin KOZHUHAROV
2018-05-16 7:10 ` Matthias Urlichs
2018-05-16 19:32 ` Axel Neumann
2018-05-16 20:32 ` Steve Gilberd
2018-05-17 3:40 ` Paul
2018-05-17 5:03 ` Roman Mamedov
2018-05-17 5:53 ` Matthias Urlichs
2018-05-17 7:07 ` Axel Neumann
2018-05-17 8:28 ` Matthias Urlichs
2018-05-16 20:35 ` Kalin KOZHUHAROV
2018-05-12 22:10 ` Toke Høiland-Jørgensen
2018-05-12 23:05 ` Reuben Martin
2018-05-13 6:11 ` Matthias Urlichs
2018-05-13 12:37 ` Toke Høiland-Jørgensen
2018-05-16 7:01 ` Axel Neumann [this message]
2018-05-16 9:38 ` Toke Høiland-Jørgensen
2018-05-16 11:08 ` Matthias Urlichs
2018-05-16 11:12 ` Axel Neumann
2018-05-13 14:21 ` Wang Jian
2018-05-21 10:07 ` WG: " Axel Neumann
2018-05-21 11:22 ` Reto Brunner
2018-05-21 11:52 ` Axel Neumann
2018-05-21 12:31 ` Axel Neumann
2018-05-21 12:35 ` Reto Brunner
2018-05-21 13:53 ` Matthias Urlichs
2018-05-21 14:56 ` Bruno Wolff III
2018-05-21 15:34 ` Matthias Urlichs
2018-05-22 20:25 ` Ivan Labáth
2018-05-23 2:51 ` Matthias Urlichs
2019-02-04 14:56 ` Jason A. Donenfeld
2019-02-23 4:00 ` Axel Neumann
2019-02-23 12:35 ` Ivan Labáth
[not found] <1324673763.992877.1526187430298.ref@mail.yahoo.com>
2018-05-13 4:57 ` reiner otto
2018-05-13 12:35 ` Toke Høiland-Jørgensen
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=1FB166DA-4390-47BD-9CB0-8408C0691AC1@cgws.de \
--to=neumann@cgws.de \
--cc=matthias@urlichs.de \
--cc=toke@toke.dk \
--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).