Re: [Ntp] NTS Pools

David Venhoek <> Thu, 29 February 2024 08:36 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 47F55C1516EA for <>; Thu, 29 Feb 2024 00:36:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.907
X-Spam-Status: No, score=-6.907 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id mBZ0O4neUmWr for <>; Thu, 29 Feb 2024 00:35:56 -0800 (PST)
Received: from ( [IPv6:2a00:1450:4864:20::62a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by (Postfix) with ESMTPS id C0BF4C151981 for <>; Thu, 29 Feb 2024 00:35:19 -0800 (PST)
Received: by with SMTP id a640c23a62f3a-a440b1c445eso108086166b.1 for <>; Thu, 29 Feb 2024 00:35:19 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20230601; t=1709195717; x=1709800517;; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=qeJIIH4TRoVpj5l3QwUHwmMPz6uXmVmO//57TcOYghk=; b=uT/8SB9Y8OosQBcayHbBMb6a+Sb9gW0mFqro/SDLD/jpK5K4gwPm8I8HzViqGQTHN1 eZwPsWKrAdG/4+HQ2AaRlMG8d2wP46D/EHLXS7OhCfjer48bZ+jzq4SmHe/EoSDXgoMs Ats+7L9eDDRvHodIzAertQAusymBMlei8OP6DxZ/7BxYZ76FH8Tg/dp73hmffWmBltlw 1P1X04PxWekxxsoM6RG44Z2k0yrqJIzN6HJaLN+ZtbDevDzWQeEkfPxnGULl0YHHebgE MWpOUXjFvsAl5FI/gLMz+WROmp3DDFygWdp/DtMD3bh4/w+EyqkP5weE2YRQcWlZcn/y GYlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20230601; t=1709195717; x=1709800517; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qeJIIH4TRoVpj5l3QwUHwmMPz6uXmVmO//57TcOYghk=; b=jNq8B/K1TIrHPkl2MWNmgH772+RyGkH42HzKrJcE62mDzFavmkjv47inayDP/Qf1uN +RfduVyrjRKVN+vZ59Lfu/13ufHERkg5XB3dSS+BfKFL3pWqjvu3d9lstXaWxZU5R8/k WN+XCHz+Nyy+Q5VbX2aGu6kSTFR2EanM9PZl+TKJ1guWycVRINCG1TEgDtRfe1rhTn6V r/Gw3xKXNtVzUuRD59BL81gbl/OHb76H0+dF51q3AkIMJqCKnRTQ9Lk7Mtzmj+kki1b9 S6AP7nQQgX/Mm2mb7cJkJRiaaGtdkCrbR7FqCQbu5ajMT5AUyvk1KZ5vpHJlrPy3MEVi hdvg==
X-Forwarded-Encrypted: i=1; AJvYcCWNlRPnt2Ac8W2u6SfSY/LIA+zOV1xXdUg5poXvsrFl/scZ1PaJBQjDTP7UMhKb/cteKax6/ATYbrYsZiU=
X-Gm-Message-State: AOJu0Yz/tX6I51GeDe2jN1O4wzwD9xfHmFMpi8Hm4DUgVBkLxpKQ2aJW aeBJ4pBfmsSmOEMdwadiqic27RmHhnOxQUk2CXWYzugau8k0uyjM6yVcGG8fZJ19t9/NQeeEmLK kjohQM3Ue+vf5WJb8FdVIdxmRbDopOykXFjeDOw==
X-Google-Smtp-Source: AGHT+IE34uLX913jndTZsvWUdx9eFp8XvLgcHoDmLH56E2Agx5ltnERj19kVP9gCDhp/jf57VHI2Z8NnasKSfUr05B8=
X-Received: by 2002:a17:906:4ec6:b0:a41:5675:4e2e with SMTP id i6-20020a1709064ec600b00a4156754e2emr1013163ejv.19.1709195717003; Thu, 29 Feb 2024 00:35:17 -0800 (PST)
MIME-Version: 1.0
References: <> <Zdx0Nst2_w1mEMKG@localhost> <>
In-Reply-To: <>
From: David Venhoek <>
Date: Thu, 29 Feb 2024 09:35:05 +0100
Message-ID: <>
To: Miroslav Lichvar <>
Cc:, NTP WG <>,,, Rainer Bermbach <>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <>
Subject: Re: [Ntp] NTS Pools
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Network Time Protocol <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 29 Feb 2024 08:36:00 -0000

Building upon the previous email, let me also clarify what my aims
were/are with the draft published a few weeks back.

My primary goal currently is to work towards a pool or pool-like solution that
1) Is drop in for end-users. I.e. if you have a working NTS client,
the pool can be used without any changes to software.
2) Can support hetrogeneity in the time server implementation, i.e.
does not force a specific NTP implementation or set of cryptographic

This has the primary aim of securing the connection between the client
and the time server, similar to what the aim of Let's encrypt is for
http. Such encryption is valuable on its own as it protects users from
impact from insecured wifi networks. In other words, my focus is
primarily on the first of the two forms of trust.

The rationale behind the first subpoint is that this is in my view
critical for adoption. Without it, I think it is hard to get to a
critical level of adoption. Furthermore, requiring specific support in
the client likely means there will always be some clients not
supporting that pool.

As for the second point, this is in my eyes important as it can help
lessen the impact from security issues with any one implementation.

Rationale for the NTS-KE load balancer approach:
Given these goals, I myself find the NTS-KE load balancer approach the
most attractive. Requirement 1 limits the options to either Shared
domain name, NTS-KE generating cookies or NTS-KE load balancer.

The poor isolation between NTP providers for the Shared domain name
option makes it unattractive to me as any NTP provider could still man
in the middle, meaning that ultimate trust is needed in all of them.

An NTS-KE server generating cookies can be a good opton, particular in
more tightly controlled setups where all servers are running the same
software. However, when running multiple implementations this would
either require standardizing cookie formats (reducing cryptographic
agility for those) or implementing all the various cookie formats used
by the implementations. This latter option would involve significantly
more implementation work and potentially makes upgrades tricky should
anything ever change in the cookie format, requiring additional

Kind regards,
David Venhoek

PS: I forgot to properly open up comments on the sheet previously.
They are now open, feel free to place comments on it.

On Wed, Feb 28, 2024 at 9:29 AM David Venhoek <> wrote:
> Hi All,
> I have made a spreadsheet showing a short overview of the implications
> of the various options, see
> Glossary of terms:
> Pool: the actual entity operating the dns record and infrastructure of the pool
> NTP provider: entity providing time as part of the pool.
> The options currently included in the sheet are the following:
> Upgrade from IP
> ---------------
> Suggested by among others Martin
> Idea: Client gets IP address via DNS, if it also accepts connections
> on tcp:4460 then upgrade to NTS. The server on tcp:4460 uses a TLS
> certificate for the IP address on which it is running
> DNS SRV records
> ---------------
> Suggested by among others Watson, Miroslav, Christer
> Idea: Client gets SRV records via DNS containing FQDM of actual NTP
> provider. It then does NTS-KE with the FQDM in the srv record. The ntp
> provider has a certificate for the domain name in the SRV record.
> Shared domain name
> ------------------
> Not sure who originally suggested it.
> Idea: All NTP providers run their own NTS-KE servers under the domain
> name of the pool. All providers have TLS certificates for the pool
> domain name.
> NTS-KE generating cookies
> -------------------------
> Suggested by among others Miroslav
> Idea: Pool runs NTS-KE server which generates cookies for the various
> NTP providers.
> NTS-KE load balancer
> --------------------
> Suggested by among others David
> Idea: Pool runs NTS-KE server which contacts an NTS-KE server from the
> NTP provider and they coordinate to create cookies.
> Separately from the discussion on which infrastructure approach to
> take there has also been a discussion on the security model.
> Essentially, there are two forms of trust involved in NTS (credit
> Dieter):
> 1) Trust that I am talking to the server which I intended to talk to.
> 2) Trust that the server I am intending to talk to has the correct time.
> The discussion on technical approach mainly affects 1. 2 depends
> mostly on how the particular pool is operated (note that this means
> that, unlike with the NTP pool, there is thus room for more than 1
> type of public/wide area pool)
> Hope this clarifies the discussion for those not as intimately
> involved. If anything is missing in the sheet please suggest edits
> either here or on the sheet.
> Kind regards,
> David Venhoek
> PS: I will email separately later with an indepth reaction to the
> points raised by Martin, Dieter and Miroslav, as I am out of time for
> now. However, this should provide a reasonable overview to serve as
> the foundation of that discussion.
> On Mon, Feb 26, 2024 at 12:21 PM Miroslav Lichvar <> wrote:
> >
> > On Thu, Feb 22, 2024 at 03:39:40PM +0100, wrote:
> > >    I was talking with Krisof Teichel, Dieter Sibold and Rainer Bermbach about
> > >    how we should handle NTS secured NTP pools. It's not easy as there are
> > >    different perspectives on the purpose, use cases and security
> > >    considerations. In general, I think I can provide support from the PTB
> > >    side, even though I have very little time for it at the moment.
> >
> > I'm getting lost in these "NTS support in pools" discussions. I'd
> > appreciate if someone could clarify what exactly is meant by pool and
> > what is the intended use case in the different proposals.
> >
> > For me, a pool is a set of servers available under the same DNS name,
> > which can be specified in the client's configuration with a pool
> > directive to use some number of the servers at the same time instead
> > of a single server. There is the well-known pool with
> > thousands of servers provided by volunteers and there are other
> > smaller pools run by different companies and organizations.
> >
> > This DNS-based concept of a pool works with plain NTP and it works
> > also with NTS. There can be multiple NTS servers available under the
> > same name. The client can use more than one server at the same time.
> > The NTS-KE part can be separated from the NTS-NTP part. The client
> > doesn't care. I've been using my own mini pool of NTS servers without
> > any issues since NTS became a thing.
> >
> > There are now three different proposals to solve some issues with NTS
> > wrt pools. There is the older one from Watson based on DNSSRV records
> > and two newer ones from David and Martin. Can anyone summarize what
> > issues do they solve and don't solve?
> >
> > One idea seems to be to run one NTS-KE server with multiple NTS-NTP
> > servers and mix different implementations of NTS-KE and NTS-NTP. What
> > exactly is the use case for that? My understanding is that NTS-KE is
> > the weakest part of the whole system, most easily overloaded and it
> > the ratio should actually be inverted, run more NTS-KE servers for one
> > NTS-NTP server.
> >
> > If NTS was to be supported in the pool, I think NTS-KE
> > servers would need to be run by the volunteers, not on the
> > pool's own limited resources. I'd not expect many of them to be
> > separated from NTS-NTP and even fewer of them mixing different
> > implementations.
> >
> > If I have a limited number of computers to provide an NTS service, why
> > would I want to split them into NTS-KE and NTS-NTP servers, when they
> > can all provide both functions at the same time and provide a larger
> > capacity for NTS-KE and NTS-NTP?
> >
> > --
> > Miroslav Lichvar
> >