Re: [urn] Registration request for urn:eris: namespace

Peter Saint-Andre <stpeter@stpeter.im> Sat, 16 September 2023 22:08 UTC

Return-Path: <stpeter@stpeter.im>
X-Original-To: urn@ietfa.amsl.com
Delivered-To: urn@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9BB29C14CE4A for <urn@ietfa.amsl.com>; Sat, 16 Sep 2023 15:08:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.899
X-Spam-Level:
X-Spam-Status: No, score=-2.899 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, NICE_REPLY_A=-0.091, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_ZEN_BLOCKED_OPENDNS=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: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=stpeter.im header.b="vBGXASY7"; dkim=pass (2048-bit key) header.d=messagingengine.com header.b="iW2sbkIS"
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 SIdmzvwmcIK1 for <urn@ietfa.amsl.com>; Sat, 16 Sep 2023 15:08:41 -0700 (PDT)
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CF06FC14F73E for <urn@ietf.org>; Sat, 16 Sep 2023 15:08:41 -0700 (PDT)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 5DEEF5C00AC; Sat, 16 Sep 2023 18:08:37 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Sat, 16 Sep 2023 18:08:37 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stpeter.im; h=cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm3; t= 1694902117; x=1694988517; bh=nQGhhEJm/Xdt5pLn0bV3d1w7m4U3uDYOjlb TR0Ay9Zc=; b=vBGXASY7IvZ/Tzt7vgyV4nivugn2S3S2nuPnYCRRTT0uVSBLOHQ PkltUchPBSIM+v+8O8YrHoei1Tvgx/ApLyk6tumYc/28JquLbPjIR14y5PKctqZz ksYx0HpNaMavNzPCgUuc0mtsfkEgnoXLMUuuStEJIg0uIq3HO/xMvv+zO9Is50VK SiJJRK6hjPx7loH2ct3CpzkZFiZP3aUHVxu5JGCUvszsQoe8k52oF66rTYqezPWh /yFGzGP9NsCG09yk1D7/odxjDNMciR2nrOFsCO/zRdLpxgpOUO4sXlJS5zlxaVFU pYLk8eCZqI/zjKTbSmC8uM2WeBOsFH48rKw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1694902117; x= 1694988517; bh=nQGhhEJm/Xdt5pLn0bV3d1w7m4U3uDYOjlbTR0Ay9Zc=; b=i W2sbkIS0SgTdhojldRy4RZ84SbLgD7lE5ZxFmBsSv6N1hx1rSNUeWBYjXUvnUu2o X6nsVFhE7BbUaaFPdFAmEjgvGYylodQvHFqMysz7QYaX939xkfr5ulVvN3D3vH26 19JWTAFWt5VPaYWNkeI6kJVC9qND8i0MnSwYbxMXc9FCC7CU5I7LCaBfxyEnrd2f WCgh5VroJoSTkKKUwNRvyR+K5HQv/ZTLp0be+BaWOGNn5zzVf9g2RPbHsU7kt7Lz gUIg/pCQGJAVgLaDa8Lr5ntZx0hcZ3UUZN6xVpLFUVL4vPxfrV5zaWTgXy/lns5x MzX9cYNHhnjwnpeOZ2SNg==
X-ME-Sender: <xms:ZScGZX8u1rC6Muj_zrvZVWiygUa6JTV3QB_yHZA9zt_7zKG3Ww_8Dw> <xme:ZScGZTsCAgBtSvSJj2m8E-zMHpebAmGVUSVUD9per7NXGJyAbOV0dkZCYgTCT3Pqi gI3EnbhRDQQaTqLaw>
X-ME-Received: <xmr:ZScGZVBNoP5FwsQ4MaHZjfDiqVZ0znt75GhwibCYZlyozE3M1VTh-kbBZhCM4rsg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudejhedgtdeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefkffggfgfvfhfhufgjtgfgsehtje ertddtfeejnecuhfhrohhmpefrvghtvghrucfurghinhhtqdetnhgurhgvuceoshhtphgv thgvrhesshhtphgvthgvrhdrihhmqeenucggtffrrghtthgvrhhnpeekgeejgeelhfelje ffjeffgeeigfevfeeihfffgeekhfetfffhgffhueeiheetgfenucffohhmrghinheptgho uggvsggvrhhgrdhprghgvgdpihgvthhfrdhorhhgpdhpuhhrlhdrohhrghenucevlhhush htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehsthhpvghtvghrsehs thhpvghtvghrrdhimh
X-ME-Proxy: <xmx:ZScGZTc3WlrbyQD6DHCJ_FV-fHwa6g3EeorSE-L6YDOuSY7L7goBqA> <xmx:ZScGZcOw_Fr299dmv-7WVv1R5k4DHKSDm9VyCcrn6PH3WmyMnm2GoQ> <xmx:ZScGZVkREVPfeeQWGWMoldA-jXAtjPejC16YfHbYXb9V901P6UyjgQ> <xmx:ZScGZW1SNu36IjtGJO9zHLxAeUC-TpAkyVP6yPwgefHmiUe6eN6STw>
Feedback-ID: i24394279:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 16 Sep 2023 18:08:36 -0400 (EDT)
Message-ID: <3701429d-b00c-bf22-2101-584970862868@stpeter.im>
Date: Sat, 16 Sep 2023 16:08:35 -0600
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.15.0
Content-Language: en-US
To: Endo Renberg <ehmry@posteo.net>, urn@ietf.org
References: <1694856169.lcxe8yiejf.astroid@garbage.none>
From: Peter Saint-Andre <stpeter@stpeter.im>
In-Reply-To: <1694856169.lcxe8yiejf.astroid@garbage.none>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/urn/-p5fqLr2bsjniInz-irgyf3yLds>
Subject: Re: [urn] Registration request for urn:eris: namespace
X-BeenThere: urn@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Revisions to URN RFCs <urn.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/urn>, <mailto:urn-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/urn/>
List-Post: <mailto:urn@ietf.org>
List-Help: <mailto:urn-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/urn>, <mailto:urn-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 16 Sep 2023 22:08:46 -0000

Hello Endo,

Thank you for submitting this namespace registration request. Other 
reviewers might be more insightful than I am, but I've provided some 
comments and suggestions inline.

On 9/16/23 3:37 AM, Endo Renberg wrote:
> Namespace Identifier:  ERIS
> Version:  1
> Date:  2023-09-16
> Registrant:  Endo Renberg <ehmry@posteo.net>
> 
> 
> Purpose:  ERIS URNs identify and verify immutable data.

This description is rather terse. Indeed, the sentence "ERIS URNs 
identify and verify immutable data" would be almost as meaningful if we 
removed the word "ERIS". Visiting https://eris.codeberg.page/spec/ we 
learn that:

###

ERIS is an encoding of arbitrary content into a set of uniformly sized, 
encrypted and content-addressed blocks as well as a short identifier 
that can be encoded as an URN.

###

and:

###

[N]aive content-addressing has certain drawbacks:

- Large content is stored as a large chunk of data. In order to optimize 
storage and network operations it is better to split up content into 
smaller uniformly sized blocks and reassemble blocks when needed.

- Unencrypted: Content is readable by all peers involved in 
transporting, caching and storing content.

ERIS addresses these issues by splitting content into small uniformly 
sized and encrypted blocks. These blocks can be reassembled to the 
original content only with access to a short read capability, which can 
be encoded as an URN.

###

I suggest that you provide slightly more detail in the Purpose section.

> ERIS URNs are application, location, and protocol independent and may be
> created by anyone for any purpose which requires immutable data.
> 
> These URNs may be conveyed in URLs using the "URN to Resource" method
> described in RFC2169 (https://datatracker.ietf.org/doc/html/rfc2169).

First, using RFC 2169 seems like a resolution method (that document 
"specifies the 'THTTP' resolution protocol") and thus this sentence 
might belong in the Resolution section of the registration request.

Second, given that (a) RFC 2169 was Experimental and (b) HTTP 1.0 and 
1.1 have been superseded by more modern and secure versions of HTTP, is 
this resolution method truly advisable at this time?

> Software may resolve ERIS URNs to content by use of dedicated ERIS services
> or by embedding an ERIS software library, both of which are freely
> available.
> 
> 
> Syntax:
> 
> BASE32    =   A-Z / 2-7
> ERIS-URN  =  "urn:eris:" 106(BASE32)
> 
> The semantics of the base32 digits is described in
> https://eris.codeberg.page/spec/#section-2.6.

A reference to RFC 4648 might be appropriate regarding the definition of 
base32.

> The use of r/q/f components in URNs is application specific and is neither
> defined or prohibited.

Is that helpful? In the context of ERIS as a simple block-encoding 
method (and quoting descriptions from RFC 8141), I wonder about the 
purpose, even at a high level, of:

- "passing parameters to a URN resolution service" via the r-component?

- "passing parameters to either the named resource or a system that can 
supply the requested service" via the q-component?

- specifying "a location within, or region of, the named resource" via 
the f-component?

> Assignment:  ERIS operates independently of any authority. Data is
> assigned an ERIS URN by chunking it by one of two block-sizes and using
> a convergent (deterministic) or unique block encoding. This results in two
> possible convergent URNs for any given data or an unlimited number of unique
> URNs.

By "data" here do you mean a particular block of data or the content 
that is encoded into blocks? I suspect the former, but it would be good 
to ensure consistency with the terminology in the ERIS spec. (Strictly 
speaking, the URN seems to identify a "read capability", but I'm not 
sure how that differs from the content that is encoded into blocks.)

> Security and Privacy:  ERIS URNs identify data independently of location so
> knowledge of a URN must be assumed to be sufficient authorization to access
> the data that it refers to. 

That feels like a slightly suboptimal authorization model, but the URN 
review team isn't here to critique underlying protocols.

> This behavior also permits the so-called
> "Confirmation of A File" attack which may be partially mitigated by
> creating URNs using unique encodings.

What is meant here by "unique encodings"? Does that mean an encoding 
other than ERIS?

> Interoperability:  An ERIS namespace is not know to be in use elsewhere and
> the ERIS URN is designed to be highly interoperable. The interpretation of
> base32 data within the URN is constrained and non-extensible.

s/know/known/

> Resolution:  An ERIS URN may be resolved to content by standalone services
> or embedded software libraries. No organization is responsible for hosting
> and resolving ERIS encoded data.

What does resolution mean in the context of ERIS as (seemingly) a fully 
decentralized system? Is the read-capability URN resolved to the content 
itself? How does that interact with the encryption properties of ERIS?

> Documentation:  http://purl.org/eris

Pointing to https://eris.codeberg.page/spec/ might be better if that is 
expected to be the longer-lived URI.

BTW, do you also plan to register the blake2b namespace identifier 
mentioned in Section 2.7.1 of the ERIS spec?

Thanks,

Peter