Re: [Sidrops] WG Adoption call for draft-harrison-sidrops-manifest-numbers-01 - ENDS 04/15/2024 (April 15 2024)

Tim Bruijnzeels <tbruijnzeels@ripe.net> Wed, 03 April 2024 09:14 UTC

Return-Path: <tbruijnzeels@ripe.net>
X-Original-To: sidrops@ietfa.amsl.com
Delivered-To: sidrops@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 60E6FC14CE29 for <sidrops@ietfa.amsl.com>; Wed, 3 Apr 2024 02:14:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.096
X-Spam-Level:
X-Spam-Status: No, score=-7.096 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=ripe.net
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8TsIAkiIiaQY for <sidrops@ietfa.amsl.com>; Wed, 3 Apr 2024 02:14:24 -0700 (PDT)
Received: from pikapika.ripe.net (pikapika.ripe.net [IPv6:2001:67c:2e8:11::c100:1315]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 28108C15107F for <sidrops@ietf.org>; Wed, 3 Apr 2024 02:14:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ripe.net; s=massmailer20240129; h=To:References:Message-Id:Content-Transfer-Encoding:Cc :Date:In-Reply-To:From:Subject:Mime-Version:Content-Type:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive:List-Unsubscribe-Post; bh=JytLLd85FhtgAuD8wqKZkh4589OjKmtezZk4W685l4M=; b=y8cHbi0eOFjFCcndEnLrltdjFk 6NqRQ51DGj+6CZ2+yOe2/gd/bXsELIWQYOCscwmdS+HrIRI3jZGOiGBBQ2qcm/0CIyx3F6d2MVyPU othVmy3OakbbS2m64tbqvVtWSmBcW6sYPufjsKckVAtS6TCBQr3zGy5cVc0794Pw8LEgREJCyoj88 xhoVORQgp0g0h9aU3m47+JYAF0Ft+zgQQotdGB8p6alxIydJC9oFndp3HwRr/+NRZ9w00zVbtLxhD tGF3MqsiRKg5QdLlETowCiaIkN+6QaM7OmsaGO4cOKscVNmkh0IWGvy/rVD8R/OWFR+ZCDf/0An7T 0z4URu1Q==;
Received: from [2001:67c:2e8:9::c100:14e6] (helo=smtpclient.apple) by pikapika.ripe.net with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.97.1) (envelope-from <tbruijnzeels@ripe.net>) id 1rrwhH-000000003ED-2S2L; Wed, 03 Apr 2024 09:14:19 +0000
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.500.171.1.1\))
From: Tim Bruijnzeels <tbruijnzeels@ripe.net>
In-Reply-To: <Zgwz2HEWQndhRYkg@snel>
Date: Wed, 03 Apr 2024 11:14:09 +0200
Cc: Keyur Patel <keyur=40arrcus.com@dmarc.ietf.org>, "sidrops@ietf.org" <sidrops@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <182ECD97-788C-4BC4-9FF6-355DFE11DF5E@ripe.net>
References: <4744462D-78D9-45EE-B3A2-06FF329EA87C@arrcus.com> <A77D691F-57BD-4A00-90E6-E61F257B43EB@ripe.net> <Zgwz2HEWQndhRYkg@snel>
To: Job Snijders <job=40fastly.com@dmarc.ietf.org>
X-Mailer: Apple Mail (2.3774.500.171.1.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/sidrops/siKWiwo1Uhyg8ljw_ENyIcSnV2c>
Subject: Re: [Sidrops] WG Adoption call for draft-harrison-sidrops-manifest-numbers-01 - ENDS 04/15/2024 (April 15 2024)
X-BeenThere: sidrops@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: A list for the SIDR Operations WG <sidrops.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sidrops>, <mailto:sidrops-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/sidrops/>
List-Post: <mailto:sidrops@ietf.org>
List-Help: <mailto:sidrops-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sidrops>, <mailto:sidrops-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Apr 2024 09:14:28 -0000

Hi,

> On 2 Apr 2024, at 18:35, Job Snijders <job=40fastly.com@dmarc.ietf.org> wrote:
> 
> Dear Tim, WG,
> 
> On Tue, Apr 02, 2024 at 01:45:59PM +0200, Tim Bruijnzeels wrote:
>> I support adoption and discussion.
>> 
>> I understand the issue this seeks to address for TA manifests. I am
>> not 100% convinced yet that the name change is the most desirable way
>> to achieve this. Perhaps it is. An alternative thought would be to
>> allow resetting the manifest number to a low value (or well: 1, but
>> RPs may not see it if another update follows shortly after) in case
>> the number has exceeded some extremely large value (like 2 to the
>> power of 159 ~ 19 octets and 8 bits…). I am not sure yet that this is
>> better either but I am just putting it out here as a thought.
> 
> Yup, Tom's deck on slide 5 also suggested 'Use serial number arithmetic
> to facilitate rollover' as a possible strategy:
> https://datatracker.ietf.org/meeting/119/materials/slides-119-sidrops-manifest-number-handling-02

If only there would have been more time to discuss presentations ;)

> 
> Thank you for sharing your thoughts, I think it is good to discuss and
> document our choices in the SIDROPS mailing list archives. I think there
> are three compelling reasons not to use serial number arithmetic in this
> particular context:
> 
> 1) The algorithm presented by RFC 1982 ("Serial Number Arithmetic") has
>   a significant shortcoming: there are sequence numbers for which
>   comparison is undefined. A potential solution is to use signed two's
>   complement binary arithmetic operations to workaround this shortfall,
>   this implies serial numbers of a bit-length matching the machine's
>   integer sizes (usually 32 or 64 bit), but in the RPKI we're dealing
>   with 159-bit serials... I consider arithmetic operations on a number
>   space this large an unwelcome complication to be avoided if possible.
> 
> 2) As you (Tim) point out: "RPs may not see it if another update follows
>   shortly after". Indeed, depending on all RPs seeing the initiation
>   and subsequent steps of the arithmetic trick seems fragile to me. 
> 
>   RFC 1982 section 7 states:
> 
>      "If this [red: a decrease] must be done, then take special care to
>       verify that ALL servers have correctly succeeded in following the
>       primary server's serial number changes, at each step."
> 
>   The type of verification RFC 1982 refers to is not possible in the
>   RPKI, as a CA can't query RPs whether they have correctly succeeded
>   in following the manifest's serial number changes.

Yeah, sure, but we could still think about a reset to a low number if the
number exceeded large some number. This being applicable to TA manifest
they are typically not republished frequently. E.g. a TA could only be allowed
to reset after a manifest has been out there for a while, like days or weeks,
or even months.

If this is to be more generally applicable to CAs (rather than forcing them
to do the key rollover mentioned) then this is probably not possible.

> 
> 3) Speaking from my own experience with the rpki-client implementation,
>   the code paths which open a previously cached manifest and a
>   purported new manifest along side each other, adequately validate &
>   compare these two objects, and finally select one of the two;
>   - already today - are amongst the most complicated pieces of code we
>   have to maintain. I am very hesitant to add more complications (such
>   as outlined above in reason 1) to this part of the code base beyond
>   what's already there.
> 
> My gut feeling is that 'filename change effectively results in serial
> numer reset' is easier to implement and easier to explain, than a
> RFC1982-based approach; having said that, I do recognize it certainly is
> not the only possible approach.

Ok, my concern is not blocking. If this is the way that current RP implementers
want to go that is fine by me (other RP implementers, opinions?).

But just to explain where my dislike of names comes from:

I don’t implement an RP today, but I was part of the team that implemented
one many years ago (see RFC 8488). This implementation intentionally separated
RPKI object fetching and validation, and did not rely on names. (and later
versions of that software also used asynchronous fetching of objects to prevent
blocking validation on bad repos). The reason for not relying on names was
that this would help to make validation URI and transport agnostic - allowing
for different mechanisms and possibly even mirroring in future.

Using names as an identifier in the way this I-D proposes complicates that
approach a bit. Then again, it seems that all other RP implementations just
use names as stable identifiers. So, this probable is not an issue to them.

Kind regards,
Tim

> 
> Kind regards,
> 
> Job
> 
> _______________________________________________
> Sidrops mailing list
> Sidrops@ietf.org
> https://www.ietf.org/mailman/listinfo/sidrops