[Ntp] Objections to the current language in draft-ietf-data-minimization

Harlan Stenn <stenn@nwtime.org> Tue, 26 March 2019 08:02 UTC

Return-Path: <stenn@nwtime.org>
X-Original-To: ntp@ietfa.amsl.com
Delivered-To: ntp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4096512028B for <ntp@ietfa.amsl.com>; Tue, 26 Mar 2019 01:02:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UUjs3CfzOyCp for <ntp@ietfa.amsl.com>; Tue, 26 Mar 2019 01:02:18 -0700 (PDT)
Received: from chessie.everett.org (chessie.everett.org [IPv6:2001:470:1:205::234]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A1FE712028C for <ntp@ietf.org>; Tue, 26 Mar 2019 01:02:18 -0700 (PDT)
Received: from [10.208.75.157] (75-139-194-196.dhcp.knwc.wa.charter.com [75.139.194.196]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by chessie.everett.org (Postfix) with ESMTPSA id 44T3WZ1Q1fzL7N; Tue, 26 Mar 2019 08:02:18 +0000 (UTC)
To: "ntp@ietf.org" <ntp@ietf.org>
From: Harlan Stenn <stenn@nwtime.org>
Openpgp: preference=signencrypt
Autocrypt: addr=stenn@nwtime.org; prefer-encrypt=mutual; keydata= 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
Message-ID: <8b9e85cb-3d6a-4e71-cbe7-9956e301a22d@nwtime.org>
Date: Tue, 26 Mar 2019 01:02:15 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.3
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/ntp/CA6-gV9NbOrCfBMFlLju-MkW5wU>
Subject: [Ntp] Objections to the current language in draft-ietf-data-minimization
X-BeenThere: ntp@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <ntp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ntp>, <mailto:ntp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ntp/>
List-Post: <mailto:ntp@ietf.org>
List-Help: <mailto:ntp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ntp>, <mailto:ntp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Mar 2019 08:02:23 -0000

In my opinion, draft-ietf-ntp-data-minimization-04, like its -03
predecessor, exclusively focuses on ways to expose as little information
as possible and completely ignores and discounts the costs or problems
that can and in some cases will occur if its recommendations are followed.

If my claims are accepted, section 1. Introduction of
draft-ietf-ntp-data-minimization should be appropriately rewritten to
remove its incorrect, or at least misleading, claims, and many of the
“SHOULD” recommendations in the document should be changed to “MAY”.

In particular, draft-ietf-ntp-data-minimization blindly and explicitly
recommends setting LI, the poll interval, and the REFID to 0, with no
offered analysis for the costs or benefits of the effects of these
recommendations.

In this email I’ll use a leap second event to illustrate these points.

Regardless of whether or not you believe leap smearing is “good”, there
are time servers out there that only offer correct time, some that only
offer leap-smeared time, and some that offer one or the other -
depending on how they’re asked.

For better or worse, a noticeable group of time server operators now
offer leap-smeared time in response to NTP mode 3 (client) requests.
Sometimes this is what the clients want, sometimes it is not.
Regardless, there is clear value and benefit in being able to see if:

a server is offering correct, or leap-smeared time
a client is following a correct, or a leap-smearing server

Let’s look a the poll interval first.  If a server knows a leap second
event is coming, it is in a position to look at the poll interval from
the client and send back a recommended poll interval that will make sure
the client properly handles leap second handling.  Yes, even if the
client “lies” and doesn’t tell the server its actual poll interval, the
server can respond conservatively, and be responsible to the client.
This behavior may well cause an unnecessary increase in the server load.
 It is also possible that the server may choose to remember the IP and
port of the incoming request to independently try and verify the actual
poll interval used.  But this is also a case of cost-shifting, and I am
opposed to it.

Now let’s move to the approaching leap second event.  In this case, I’ll
be assuming the behavior of what I call 12/12 leap smearing, where a
half-second of correction is applied beginning at UTC noon on the day of
the leap second (ie, for 12 hours’ time), and the final half-second of
correction is applied starting at midnight UTC after the leap second was
applied until UTC noon on the day after the leap second (ie, for the
remaining 12 hours’ time).
To save folks from having to look it up, NTP communicates knowledge
about pending leap events via the first two bits of the NTP packet,
known as the LI, or Leap Indicator bits:

 0x0	Normal time
 0x1	Last minute of the last DOM has 61 seconds
 0x2	Last minute of the last DOM has 59 seconds
 0x3	Not synchronized

NTP instances sending mode 3 (client request) queries expect to receive
a mode 4 (server) response.  This response may be the correct time, and
it may be leap-smeared time.  The key questions are:

- Does the client want leap-smeared time?
- Should the server respond with correct, or leap-smeared time?

This leads to the follow-on questions:

- How can the client know if it's getting correct, or leap-smeared time?
- How can one tell if a client is following a leap-smearing server?

The following simple solution handles both of the first two questions.

If the client sends its request with LI values of 0x1 or 0x2, it is
telling the server that it believes a leap event is pending.  In this
case the server SHOULD respond with correct time with an LI value of
0x0, 0x1, or 0x2; not leap-smeared time.  If the client sends a packet
with LI=0x3, the server SHOULD also respond with correct time with an LI
value of 0x0, 0x1, or 0x2.

If the client sends its request with an LI value of 0x0 before leap
smearing starts, the server SHOULD respond with correct time with an LI
value of 0x0, 0x1, or 0x2.  If the client sends its request with an LI
value of 0x0 *during* a leap smear correction, the server SHOULD respond
with leap-smeared time and an LI value of 0x0, and MAY respond with
correct time and an LI value of 0x1 or 0x2.

Furthermore, responses containing leap-smeared time SHOULD include a
REFID that identifies the "system peer" as a leap-smeared source.  See
draft-stenn-ntp-leap-smear-refid for more information.  This response
also SHOULD include a SUGGESTED-REFID extension field, as described by
draft-stenn-ntp-suggest-refid, to make it obvious that the system is
following leap-smeared time.  These points address the  two follow-on
questions.

The LEAP-SMEAR-REFID and SUGGESTED-REFID extensions have another key
role during the application of a leap smear - that of making sure the
system behaves properly during the last half of the 12/12 leap smear
correction.

Once the leap second has applied, the LI value for correct time reverts
to 0x0.  When a leap smearing client asks for time during the second
phase of this correction, it will be sending its requests with LI=0x0,
as *all* time requests from a leap-smearing client will contain LI=0x0
when a leap event is not pending.  But in this case, how does the server
know it should continue sending leap-smeared time, as opposed to correct
time?  The answer is that the client requests include the client's
REFID, which in this case SHOULD be a LEAP-SMEAR-REFID.

When a server receives a mode 3 (client) request containing a
LEAP-SMEAR-REFID during the second phase of a leap-smear correction, the
server SHOULD respond with leap-smeared time and a LEAP-SMEAR-REFID as
the SUGGESTED-REFID.

When the leap-smear correction has ended, normal query/responses will
again be in effect.

Finally, servers should know when a leap event is about to occur.  Other
systems may not have this information.  It’s polite, cooperative, and
informative if the client sends its poll interval to the server.  A
server that knows a leap second event is coming SHOULD reply with a
suggested poll interval that will, even in the face of dropped UDP
packets, allow the client that pays attention to the suggested poll
interval from the server to re-query often enough to quickly track these
events and stay well-synchronized.

In short, if you care about data minimization more than you care about
having accurate synchronized time, minimize away.

If you are primarily interested in having accurate synchronized time,
playing nice with others, getting the time you want and be able to see
what's going on during a leap second event:

- be honest with your LI bits
- be honest when reporting your poll interval
- pay attention if a server asks you to adjust your poll interval
- consciously choose the REFID in your messages

The upcoming (full) Reference Implementation release of ntp-4.4.0 from
the NTP Project will have these behaviors in it.

-- 
Harlan Stenn, Network Time Foundation
http://nwtime.org - be a Member!