Re: [dtn] [EXT] Re: IPN update text-form and CBOR-form parity with allocator zero

Rick Taylor <rick@tropicalstormsoftware.com> Sun, 07 April 2024 14:49 UTC

Return-Path: <rick@tropicalstormsoftware.com>
X-Original-To: dtn@ietfa.amsl.com
Delivered-To: dtn@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 05DA2C14F5FC for <dtn@ietfa.amsl.com>; Sun, 7 Apr 2024 07:49:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.895
X-Spam-Level:
X-Spam-Status: No, score=-1.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, 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=ham autolearn_force=no
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 4Z8E-0Ko6HEM for <dtn@ietfa.amsl.com>; Sun, 7 Apr 2024 07:49:15 -0700 (PDT)
Received: from mail.tropicalstormsoftware.com (mail.tropicalstormsoftware.com [188.94.42.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4A52FC14F5E7 for <dtn@ietf.org>; Sun, 7 Apr 2024 07:49:13 -0700 (PDT)
Received: from tss-server1.home.tropicalstormsoftware.com ([fe80::753b:fa82:5c0:af0d]) by tss-server1.home.tropicalstormsoftware.com ([fe80::753b:fa82:5c0:af0d%10]) with mapi id 14.03.0513.000; Sun, 7 Apr 2024 15:49:10 +0100
From: Rick Taylor <rick@tropicalstormsoftware.com>
To: "Birrane, Edward J." <Edward.Birrane@jhuapl.edu>, Brian Sipos <brian.sipos+ietf@gmail.com>, "dtn@ietf.org" <dtn@ietf.org>
Thread-Topic: [EXT] Re: [dtn] IPN update text-form and CBOR-form parity with allocator zero
Thread-Index: AQHaiG+Sd52fx0ghXkayp/KBMFrfALFco1XwgAAUpICAACoX4A==
Date: Sun, 07 Apr 2024 14:49:10 +0000
Message-ID: <38A5475DE83986499AEACD2CFAFC3F9802737059AE@tss-server1.home.tropicalstormsoftware.com>
References: <CAM1+-gguR8ASktZUo8i80_Fhf158d4xO9RX1m75+7Mg1DZyxSg@mail.gmail.com>, <38A5475DE83986499AEACD2CFAFC3F980273705904@tss-server1.home.tropicalstormsoftware.com> <5b9dc919f43e49ac8d95a894fcdfcfaa@jhuapl.edu>
In-Reply-To: <5b9dc919f43e49ac8d95a894fcdfcfaa@jhuapl.edu>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.10.0.3]
Content-Type: multipart/alternative; boundary="_000_38A5475DE83986499AEACD2CFAFC3F9802737059AEtssserver1hom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/dtn/e0Nm7vJK0WLeWaMfwJqqSdc_C28>
Subject: Re: [dtn] [EXT] Re: IPN update text-form and CBOR-form parity with allocator zero
X-BeenThere: dtn@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "Delay Tolerant Networking \(DTN\) discussion list at the IETF." <dtn.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dtn>, <mailto:dtn-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dtn/>
List-Post: <mailto:dtn@ietf.org>
List-Help: <mailto:dtn-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dtn>, <mailto:dtn-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 07 Apr 2024 14:49:20 -0000

I’ve been mulling this over, and I think I’m going back on my previous comment.

The *canonical* text representation must be unique (by definition), and shortest (by design), and therefore I don’t like allowing ‘ipn:0.X.Y’ as a valid canonical representation.  Of course a generous parser might allow “ipn:00000.0000001.0000003” to map to “ipn:1.3”, but I do think the canonical representation should be to drop the 0 if the allocator id is zero.

I will double check appendix A, but surely with any process that creates cryptographic hashes over text, the expectation/specification is that the text is in canonical format?

@Brian – I’m not convinced that a CBOR->Text->CBOR will lose information:  If the allocator_id is not present, then it is treated as 0, so although 0 is not emitted, it is clear from the overall format that it is implicitly 0.  Much as I would like to make trivial transcoders more trivial, I’m not sure it’s a design goal that outweighs brevity of representation or uniqueness.

Cheers,

Rick

From: Birrane, Edward J. [mailto:Edward.Birrane@jhuapl.edu]
Sent: 07 April 2024 14:09
To: Rick Taylor; Brian Sipos; dtn@ietf.org
Subject: RE: [EXT] Re: [dtn] IPN update text-form and CBOR-form parity with allocator zero

Rick,

  My read on this is that the decisions around how we textually represent the default allocator and encode them in the 2 and 3 element case are all fine as-is. No changes to sections 4 or 6 or appendices b or d are needed.

  I think there is a typo in appendix a which Brian found and needs to be corrected. Appendix a needs to allow a zero allocator id to be compliant with the text in the rest of the document.

-Ed

Sent with BlackBerry Work
(www.blackberry.com)

From: dtn <dtn-bounces@ietf.org<mailto:dtn-bounces@ietf.org>> on behalf of: Rick Taylor <rick@tropicalstormsoftware.com<mailto:rick@tropicalstormsoftware.com>>
Date: Sunday, Apr 07, 2024 at 6:58 AM
To: Brian Sipos <brian.sipos+ietf@gmail.com<mailto:brian.sipos+ietf@gmail.com>>, dtn@ietf.org <dtn@ietf.org<mailto:dtn@ietf.org>>
Subject: [EXT] Re: [dtn] IPN update text-form and CBOR-form parity with allocator zero

APL external email warning: Verify sender forwardingalgorithm@ietf.org before clicking links or attachments



Thanks Brian,

A good comment.  We prevaricated about whether the leading ‘0’ for the Default Allocator was permissible in the text representation, or whether it MUST be omitted.  It sounds like we went with the wrong choice.

I’ll have a good look at the impact of relaxing the MUST to SHOULD, but it sounds like the right way to go in light of your comments.

Update incoming ASAP.

Cheers,

Rick

From: dtn [mailto:dtn-bounces@ietf.org] On Behalf Of Brian Sipos
Sent: 06 April 2024 23:13
To: dtn@ietf.org
Subject: [dtn] IPN update text-form and CBOR-form parity with allocator zero

Authors of ipn-update draft,
There is a nuance to the text form specified in Appendix A [1] that prohibits a zero-valued allocator component so that the zero-allocator can only be represented by the two-component text form. This is in contrast to the CDDL definition in Appendix C which does allow a zero-valued allocator component.

A side-effect of this is that there is not a one-to-one correspondence between text-form and CBOR-form EIDs. Certainly the semantic meaning is the same between a zero-allocator three-component form and the two-component form, but the lack of exact correspondence means that a trivial transcoder needs to have some special cases for this situation. This can be seen in the discrepancy between EIDs present in Appendix B.1 vs. D.1 and B.3 vs. D.3. It also means that not all IPN-scheme EIDs can be written in a three-component canonical form.

Because of this, it is possible that a CBOR-to-text-to-CBOR conversion will lose information and the output will be different than the input. This will have implications for things that require guarantees about re-encodings such as BPSec processing.

I think a simple change in Appendix A from

allocator-identifier = non-zero-number
to

allocator-identifier = number
will resolve this in a way that probably is compatible with existing three-component EID codec implementations anyway.

This also calls into question the single statement in Section 8.3; there should probably be a stronger security statement and a requirement that implementations must preserve the component count when transcoding IPN EIDs.

Apologies for this late feedback, but I think it will avoid a subtle security issue and potential user headaches.

- Brian S.

[1] https://www.ietf.org/archive/id/draft-ietf-dtn-ipn-update-10.html#appendix-A