[openpgp] Insufficient guidance for IANA registry management

Andrew Gallagher <andrewg@andrewg.com> Thu, 10 October 2024 12:24 UTC

Return-Path: <andrewg@andrewg.com>
X-Original-To: openpgp@ietfa.amsl.com
Delivered-To: openpgp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 93E15C11D366 for <openpgp@ietfa.amsl.com>; Thu, 10 Oct 2024 05:24:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.107
X-Spam-Level:
X-Spam-Status: No, score=-2.107 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_BLOCKED=0.001, 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=andrewg.com
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 QauNIPvJ71M3 for <openpgp@ietfa.amsl.com>; Thu, 10 Oct 2024 05:24:52 -0700 (PDT)
Received: from fum.andrewg.com (fum.andrewg.com [135.181.198.78]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2622FC169433 for <openpgp@ietf.org>; Thu, 10 Oct 2024 05:24:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=andrewg.com; s=andrewg-com; t=1728563089; bh=XLd9DIXRvwYXd58KHUfrjnMzMuCZ1oZColzkn48ybRQ=; h=From:Subject:Date:To:From; b=Xlaz04WaFPx+Ncg+gyYcr9kzAmtwRAsSpVFY3IWjslE2QIG15X0q4YdW2XhqxlQ5Z FsjNKn4LCzHmNpUv7iiC8LKem9b/QWdA3K/GVIxol2qUeSq4NOG0+9VHgpyZ5cSUkW ZsJqiHmlwyB7lQATyPuhe2hK4WPIWZ8Vis2cX4n7J6q0RzkYk6r7Na0sYQGDJyxTYl PJIj2i+hNE5JnxPS1D/vki3tNL02w4m89ka1koXmTiUam9pIl3slUhbokZvHGhnYEn bf5pv/gyJu4pLU7qi5SgsXSLyAvkVt2FLEaWR1FQ/t1ZuoaMFMc8R4qxrUNHfXn/R7 0CFcUtIJZbglg==
Received: from smtpclient.apple (serenity [IPv6:fc93:5820:7349:eda2:99a7::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by fum.andrewg.com (Postfix) with ESMTPSA id DECD95DCA6 for <openpgp@ietf.org>; Thu, 10 Oct 2024 12:24:48 +0000 (UTC)
From: Andrew Gallagher <andrewg@andrewg.com>
Content-Type: multipart/signed; boundary="Apple-Mail=_56727CDF-CC27-445C-963F-78FE5C27E7BE"; protocol="application/pgp-signature"; micalg="pgp-sha512"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.700.6.1.1\))
Message-Id: <7B102AA4-EF23-4B85-A0A5-339E15C0312A@andrewg.com>
Date: Thu, 10 Oct 2024 13:24:27 +0100
To: "openpgp\\\\@ietf.org" <openpgp@ietf.org>
X-Mailer: Apple Mail (2.3731.700.6.1.1)
Message-ID-Hash: IJ5DDDP2WBOSF3FGFLH5OFXNDXDJNYEB
X-Message-ID-Hash: IJ5DDDP2WBOSF3FGFLH5OFXNDXDJNYEB
X-MailFrom: andrewg@andrewg.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-openpgp.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc5
Precedence: list
Subject: [openpgp] Insufficient guidance for IANA registry management
List-Id: "Ongoing discussion of OpenPGP issues." <openpgp.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/openpgp/apm42ZabQO82hsQoEIihoSyM430>
List-Archive: <https://mailarchive.ietf.org/arch/browse/openpgp>
List-Help: <mailto:openpgp-request@ietf.org?subject=help>
List-Owner: <mailto:openpgp-owner@ietf.org>
List-Post: <mailto:openpgp@ietf.org>
List-Subscribe: <mailto:openpgp-join@ietf.org>
List-Unsubscribe: <mailto:openpgp-leave@ietf.org>

Hi, all.

There are quite a few code points in the IANA OpenPGP registries that are marked “Reserved” with little or no explanation. They all have references to RFC9580, which is the source of the registry data, but the RFC is not always forthcoming about the reasoning behind their reservation.

Some code points are reserved for future use and can presumably be un-reserved once a draft spec is finalised. Others are reserved to avoid incompatibility with deprecated or experimental features and presumably should not be reused. Some may have been reserved for speculative features that were never implemented and so may be more appropriately classified as “unassigned". It is not always clear which case is which, or under what conditions an un-reservation should be performed.

Reserved code points with sufficient documentation and references (IMO):

* Packet type 19 (MDC)
* Symmetric key algorithms 253-255 (compatibility with s2k usage)
* Public key algorithm 20 (ElGamal encrypt/sign)
* Signature type 0xFF (anti-malleability)

Reserved code points that are documented somewhere but not properly referenced in the registry:

* Packet tag 20 (librepgp)
* Signature subpacket type 10 (marked “placeholder”; effectively reserved for ADK)
* Signature subpacket type 34 (rfc4880bis aead algos, deprecated)
* Signature subpacket types 37 and 38 (1pa3pc, key block)
* Feature flags 0x02 and 0x04 (librepgp)
* Key flag 0x0004 (ADSK)
* Symmetric key algorithms 5 and 6 (RFC2440)
* Hash algorithms 4-7 (RFC2440)

Reserved code points without documentation, but with obvious intent:

* Various zero encryption algorithm IDs (for consistency with 0 == “unencrypted”)
* Hash algorithm 13 (presumably SHA3-384)

Unclear:

* S2K type 2 (was this iterated+UNsalted S2K?)
* Packet type 0 (strongly forbidden, without explanation)
* UAT Subpacket Type 0 and Encoding Format 0 (was this just a distaste for zero values?)
* Signature subpacket types 0, 1, 8, 13-15, and 17-19 (unallocated in RFC2440, but reserved in RFC4880)
* Key flag 0x0008 (timestamping)
* Public key algorithms 21, 23 and 24 (X9.42, AEDH, AEDSA)

It would IMO be preferable to add a reference to documentation of these code points (this does not need to be an RFC or even an I-D, just a stable URL), or failing that to explicitly state in the registry itself the intent of the reservation. In the signature subpacket registry, it may also be appropriate to revert some of the unused reservations to “unallocated”, if it can be determined that they were never used.

There are also a number of unassigned gaps in the registries that are not specifically marked as reserved, but which are presumably intentional:

* Packet type 15 is the only unassigned code point that can be represented in legacy framing so was presumably kept available for emergencies - but why is 16 also left unassigned?
* Why are public key algorithms 4-15 left unassigned?
* Why the gap in the reason for revocation registry?
* The gaps in the Signature Types registry are obviously for grouping into sub-ranges with similar semantics, however they are not formally defined, and the 0x4N and 0x5N signature type ranges are not well motivated IMO.

If anyone can shed further light on the intent of the above code points, it would be very welcome. It would also IMO be useful if clearer guidance were provided for the benefit of the IANA experts when evaluating registration applications.

Thanks,
A