Re: [urn] Request for a Namespace Registration for Unique (Vaccination) Certificate Identifier

"Hakala, Juha E" <juha.hakala@helsinki.fi> Wed, 04 August 2021 08:09 UTC

Return-Path: <juha.hakala@helsinki.fi>
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 648793A0C87 for <urn@ietfa.amsl.com>; Wed, 4 Aug 2021 01:09:17 -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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=helsinkifi.onmicrosoft.com
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 DhyMp82rQU7C for <urn@ietfa.amsl.com>; Wed, 4 Aug 2021 01:09:13 -0700 (PDT)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80114.outbound.protection.outlook.com [40.107.8.114]) (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 36C8F3A0C85 for <urn@ietf.org>; Wed, 4 Aug 2021 01:09:09 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Sdi4gmZfyL05jRzDA2E53t26uzeBBjgwhymOA49rF8LQDpsqsFWUy971IYv4fafDeFLDrGnWMeIhn1VCcKZ5rLx8yqFHfLAmyjfKV0SwWjZiI7k79eUhRVB+kjrWpIOVDGIdfMfgmBioATj3NM4uYd44UOaTyHrvGXIAzzo11PO7OxKkT4nL4ZE4t8EGAfI0iEX7Zxuc84rEAGBLdoA0SCROJ4FI4R7VRiCl7P9egiiaWx6Or/2dRsu2hmp4U0M/gytNukdt9T2eP2gRLdUCXz2xGX4j3Nr15y3Zzr09NWVY09zVZnXin72K6BLwXxujPJQ3xH/7mSxKwsMVXwamSA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wtfN1DxXslUAAt/VQ7KqjZFNBOwC0aezd8IXMwGlzlY=; b=nm3BJ/5FT8SQ9/5xAh9YKeTxmYa8DejiC/RChK+mAT7a/OnCyeav0ntzUlWqzYzZDJTKkGJ5pKcVvZ8dMKlFcgTsKrxcBb22/cbY2Mwh4CFIxL0PhH457p0bcofNmaLUczWmO19dUCy7If3BN7M6INc5lUFc/Col1m7Q7aCwbHTWI2GwspcSQcTpN/oYsPFdWc25zrOh4MuGTnGI566t/xTAq8Rzo1fFQYMMdpJ55jq/wQXwfcIAzFuS66+K7nryxV85Uj/giS4MhhtwobSmfVrLCe0khNJGkrP5X//kx7kGrAu8RdPkwwMEBr7Be7PB7OCGHxrLWjEByzzsy97f+g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=helsinki.fi; dmarc=pass action=none header.from=helsinki.fi; dkim=pass header.d=helsinki.fi; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=HelsinkiFI.onmicrosoft.com; s=selector1-HelsinkiFI-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wtfN1DxXslUAAt/VQ7KqjZFNBOwC0aezd8IXMwGlzlY=; b=Iqs0dNkg7rhrzuEjcCnwRAF4pbvlkZJIUqKGmenqHcYFk0TS0GpCAoBuSA4d3A8xHuZ/1DYEgSSn6t4NERADEG4Py/quB065sbvD8KLxZ/2H+g3pSfxoB5RmgmzFFBjh6vloF5LRiYVdBRy5LbtjbQuGWDx/I2nK76sSt75Iy1Q=
Received: from HE1PR07MB3196.eurprd07.prod.outlook.com (2603:10a6:7:2e::17) by HE1PR0702MB3545.eurprd07.prod.outlook.com (2603:10a6:7:83::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.12; Wed, 4 Aug 2021 08:09:06 +0000
Received: from HE1PR07MB3196.eurprd07.prod.outlook.com ([fe80::5cbd:6e90:9895:edf5]) by HE1PR07MB3196.eurprd07.prod.outlook.com ([fe80::5cbd:6e90:9895:edf5%4]) with mapi id 15.20.4394.015; Wed, 4 Aug 2021 08:09:05 +0000
From: "Hakala, Juha E" <juha.hakala@helsinki.fi>
To: Dirk-Willem van Gulik <dirkx@webweaving.org>, "urn@ietf.org" <urn@ietf.org>
CC: the eHEALTH-NETWORK Secretariat <eHEALTH-NETWORK@ec.europa.eu>
Thread-Topic: [urn] Request for a Namespace Registration for Unique (Vaccination) Certificate Identifier
Thread-Index: AQHXhtrBj5u4k155C0+sKmN3v8QUpKti+u0g
Date: Wed, 04 Aug 2021 08:09:04 +0000
Message-ID: <HE1PR07MB3196717FB71AD7BADAD42F84FAF19@HE1PR07MB3196.eurprd07.prod.outlook.com>
References: <3053F7E9-7C6A-4AAB-AC87-63DC1D6A58D7@webweaving.org>
In-Reply-To: <3053F7E9-7C6A-4AAB-AC87-63DC1D6A58D7@webweaving.org>
Accept-Language: en-GB, en-US
Content-Language: fi-FI
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: webweaving.org; dkim=none (message not signed) header.d=none; webweaving.org; dmarc=none action=none header.from=helsinki.fi;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 72653c6d-3811-441a-d9f3-08d9571f207b
x-ms-traffictypediagnostic: HE1PR0702MB3545:
x-microsoft-antispam-prvs: <HE1PR0702MB35458A76B94CFE67D57C9781FAF19@HE1PR0702MB3545.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: CMshWfqx0tj/2FycqeIx7IfDF8abGqytb3n+xHFJuHQ5Sd/5HEJIfN9ThxsC96XUZzKVQwMrM4buNkFoJeVQdv43MoXXwNYzWL6I3WexscxC3Wlo6ULXx9SSxqmMuSiy8GoU3qi39Uu2IBLIZiiGFA1nUyimf8iiA3947dtVvvNmOaBK+14fio+xoFFffdyKGzJDpEaFXYyfwu+DKbqlyXdh+y3AmMtMT7lLlcINgICETH4ogFS0IUAgVIZgkFm2qlxDcGSa+14sQzHYTlEwR8edYXm2Cyv57cl+ahgGP689SlRLH6ddcvgtFgO3odIbCOgVMtgOvJs1ZDVnDIxzWNt93/lAZ/cM/bijYkgn1wthz7PrMd2Wk5OMKhCNWsDMdSr/fl1lQNX00nqLrNGohtwBl+IEx2mc0NCEFzSbf8HAOgLArdUSu0kVEKwnsbK0ZBXjARLGeCz3dd4izGI5ylRJYeip6klURCmvn4g+h4mQ86cHbd20gd/iroimZGUToOIsQmWc7lTq1l2aDsAqzbKXf/73pFY8SdhbceBkRvUgHOe43tjanZio/TI6TyVKBv9cB3ChyUq1YGdA+l95BM8Q+BR5T5TfEDo6HKGRwO837CBMIDye8MI1zF/H1PujP04tu2dJ0B13wFJusMJTNq69xSN7g0HZglLECkWY1qFmAGxDdxKDPn4NRjLmneZmCBeofXo+tDqIpWotiM6NCaTDQY8BpWq+dh0Xv5/+Tfa/GYSFJiJebTJAl5BZEpDmNMrqdUS3T3H9+TrLo9Fcxq6Ii+Gsod0wTsUTD6L0odH7/5/5FVdtDgH+EEM+c2NBdXF7+k8abzW9Q7FXdnvv/JCSYjrPleWEpkUmyKICuKAIhKkxcGO642repW5DIxsCxW0hMpXY+u4Kzuh/M1nmuA==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HE1PR07MB3196.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(136003)(39850400004)(396003)(346002)(366004)(7696005)(38100700002)(38070700005)(316002)(966005)(5660300002)(30864003)(786003)(8936002)(6506007)(66946007)(66446008)(64756008)(66556008)(33656002)(66476007)(9686003)(76116006)(55016002)(86362001)(8676002)(122000001)(66574015)(71200400001)(478600001)(166002)(110136005)(83380400001)(186003)(52536014)(4326008)(26005)(2906002)(222643001)(562404015)(579004); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: rufIRMdUXHtESfC85uwbOLPVafRUNKgQhYrYzmEcZbXkNoPuxqQbyz8Hy9Q1EbxwXIBYW+I5U/nPAeU9l0nqH625O9BJTFbLuaeKGZtpLcwfsYdwC9mdXm360aM3b2to4iOaKpyHGYUowIPI0EMlyN9QL4dwOQNCVcF2U6ivrWeUuejvU6jt32TqQIESU6KniL6TOeAremNxUbeBwkV9VpwUmG7IX4bjN8mnTCtbfBGfcD0zEn83UcOx0+SAmQzOcuoS7TQImesJNcV8XybJCRxvI9C7nUcdXl8mzNAIiHUs5lw8Mam7XSL6H4nlvCOePSxloitXb637tHjpUpwiZmFZUgYsN6aKPjURCTx1o0SCNNhlZSFvushRlSQxPWocRF2YmDB68Ducji/r8BgZuZ/BJAEFo1bXh4yNEFOvjxYgs2q8LKa6QY0mD9zf2CsTKYcCXVsfvFUM71dEmcWwQ74EKIyUH/ycbNQi3TwQQPy9eLhgY26U5ft84nycgBQuHhTC92h4IMob0zO/RtXeqX1i+TnJGgRw81nPGeegDas02oMidWtM4Y7n51hdmfsVsaodmvUH5BWSmJdbNdChF9L7b0qOCRG9jX4tu6UdrxQPHLDs98EoVw7G/4o8q6EMlufbQiqZpx8auA7Wkb3CBXi2ywCJ3JG2sstgTpcVGwhP9EsGPY5DKpU2Q5/vRt54DiV9JSZGb1w3hW44bLt/fT0jQQ3WN5+Sl4nkfdVuKRv5Ezkj4OYKdRC7KoZGjAw+1LyZEBdBRdK8cCFs1d3FLT+/bV54a7wC6ze/URdINF7KEke9ErTnjljzPk8PMe2+zAzzPt/AnIW8coO2KrvSNlTGb7WluUy9KWAZN9JFpgRWNdLstdGpL0Mikxyqzykbdpg9bOY+G1gKn78vuMvSZegY1ypE9+e08AUMa1kFI2skd33ZPywSbaz7EV9lc4wdv6b7sjstc9Apw49p3UFZI9uI8MEaFoX9wymUuJzLWtZw0YNh5ynPFoV0+T1jvqk2zkqyrRYcimGtS2uYrFnwt2DLFudEVrba5juI3SG/wk8EZ6b4aDJZmlZucCkHOECsan7RMGACNkcpVWwSPbVDs/YzRjmrwE4KGlTxjMrDREDKNGNYBdpxT7EWE619zH2prGcz4dMIR79seNKtbCLA2srLKnh1KSrgFlf3d4XkDV5kY2NTHOMNAliuKamjsRHOS7Y58fqk6dUU4GowZEKoV7ldN/f9WuY+P8jKzB+vFEO/4e19E7ncVmx2TJHbW3sEke6/BxP1kxiSg+X56DxF4hFcVmgU37yu8C2fVmKUes8=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_HE1PR07MB3196717FB71AD7BADAD42F84FAF19HE1PR07MB3196eurp_"
MIME-Version: 1.0
X-OriginatorOrg: helsinki.fi
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: HE1PR07MB3196.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 72653c6d-3811-441a-d9f3-08d9571f207b
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Aug 2021 08:09:04.9796 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 98ae7559-10dc-4288-8e2e-4593e62fe3ee
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: r9N+xhmsKrxxD7DDtHV9HrXYjoCIuDTnHQzz5mPPQDFiDUpbH84SKGDdzVT+bl2GzA1+rxYif1FuIGpS66CaTg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0702MB3545
Archived-At: <https://mailarchive.ietf.org/arch/msg/urn/ll7tlgFF0NzuvgAMMae2MMoc0ME>
Subject: Re: [urn] Request for a Namespace Registration for Unique (Vaccination) Certificate Identifier
X-BeenThere: urn@ietf.org
X-Mailman-Version: 2.1.29
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: Wed, 04 Aug 2021 08:09:18 -0000

Dear Mr. van Gulik,

thank you for sending this request. I received my own certificate a couple of weeks ago, and was surprised to see an unregistered URN namespace being used in the identifier. I am glad that the request has now been sent, and that it is well written.

I accept this request, but have a comment and two questions about it.

It is unfortunate that some parties have used namespace UCI, which was registered in 2005 by Korean National Computerization Agency (NCA). The parties who have used UCI should contact NCA and make sure that their usage of UCI will not cause problems either for themselves or NCA.

Since the COVID-19 pandemic is likely to continue for some time, and the virus may never be eradicated totally, it is likely that some or all people may receive a COVID-19 vaccine booster shot or shots in the future. How will the identifier take this into account?

COVID-19 will not be the last pandemic. There will be more, and researchers will again develop vaccines against the viruses causing them. People may be required to have certificates of two or more vaccinations at the same time. The syntax presented will still work, at least if NSS contains the vaccine identifier, but is that the only way to accomplish this? And should the registration say something about this kind of future proofing?

All the best,

Juha Hakala

Lähettäjä: urn <urn-bounces@ietf.org> Puolesta Dirk-Willem van Gulik
Lähetetty: sunnuntai 1. elokuuta 2021 16.37
Vastaanottaja: urn@ietf.org
Kopio: the eHEALTH-NETWORK Secretariat <eHEALTH-NETWORK@ec.europa.eu>
Aihe: [urn] Request for a Namespace Registration for Unique (Vaccination) Certificate Identifier

Namespace Registration for Unique (Vaccination) Certificate Identifier

Namespace ID: UVCI (requested of IANA, case insensitive)

     Version: 1.01

        Date: 2021-07-28

  Registrant: eHealth Network

Post address: The eHealth Network,
              eHealth Network Secretariat
        p/a:  Directorate-General for Health and Food Safety
              European Commission
              1049 Bruxelles/Brussel
              Belgium

       eMail: eHEALTH-NETWORK(at)ec(dot)europa(dot)eu

Requesting entity is a network of national authorities responsible for
eHealth established pursuant to Article 14 of Directive 2011/24/EU and
the European Commission Implementing Decision 2019/1765. It essentially
consists of the representatives of Ministries of Health or the equivalent
national Public Health Authorities of the EU and EEA Member States.

Overview:

In response to the COVID-19 Pandemic the public health authorities of
the EU Member States collaborated on a single-purpose, cross-border,
interoperable, digital health certificate specific to COVID-19[1].

This certificate takes the form of a paper or digital document, that
may also be displayed in a mobile app. In its digital version[2] it is
a QR code that contains Base45 encoded, Zlib compressed, digitally
signed (COSE) structured block (CBOR) of medical and citizen
identifying data. An out of band trust management mechanism provides
the ECC public keys for (offline) signare validation and key revocation.

Regulation 2021/953[4] prohibits the storage or retention of data
following verification. The exchange of Personally Identifiable
Information is not necessary for the purposes of the Regulation.
However in certain cases (e.g. to prevent or detect fraud) it may still
be essential to exchange lists of revoked certificates.

For this reason the design[2] calls for a Unique (Vaccination)
Certificate Identifier (UVCI) that uniquely identifies a specific test,
vaccination or recovery certificate. The format chosen for this UVCI is
that of a Universal Resource name or URN that follows the best current
practices (BCP: 66, RFC8141). The NID selected is ‘UVCI’.

The NSS[3 annex 2] consists of a version and country/issuing entity
prefix followed by an opaque unique string, an opaque unique string
prefixed by a regional Issuing Entity or a triplet of entity,
vaccination and again an opaque unique string. This latter format never
saw any use  - and may be dropped from future versions of the standard.

When used in print it may be followed by a ‘#’ and a LUHN based
checksum.

To further ease of reliable manual entry the character set is limited
to A-Z and 0-9, case insensitive. Elements are separated by a slash
within the main block; and a colon for the version and country.

It is up to each Member State to manage this space well and ensure that
the URN as a whole stays unique. Some countries have opted for a single
space for the whole country; others have delegated parts of the space
to nations or regions within the member state; each with their own
prefix or range.

Examples are:

        urn:uvci:01:BG:UFR5PLGKU8WDSZK7#0
        urn:uvci:01:PT:SPMS/TRC01234567890123456#1
        URN:UVCI:01:PL:3/655052DD53A649E897FA10AC9C175654
        URN:UvCI:01:NL:2WC7BASRIALG5FBUHLNNNX3A42#:
        URN:UVCI:01:GB:112739138279141HSFJYRDT#R

The syntax of the NSS (i.e. the string past the URN prefix and NID,
‘urn:uvci:’) is defined in [3]; and can be paraphrased as:

        VERSION ':' COUNTRY ':' C_NSS [ '#' LUHN ]

With:

        VERSION      version number. Currently set to the string '01'.

        COUNTRY      Issuing entity, in general a country. The
                     ISO3166-1 character code must be used. Other codes
                     (3 characters, and longer, e.g. 'UNHCR' or 'WHO'
                     are reserved for future use))

        C_NSS        Country specific/managed/delegated NNS

        LUHN         OPTIONAL checksum for print.

The country specific NSS, C_NSS is one of the following 3 formats:

1)      ALPHANUMSTR

2)      ISSUER '/' ALPHANUMSTR

3)      ISSUER '/' VACCINE '/' ALPHANUMSTR

With:

        ALPHANUMSTR  A string consisting of A-Z, 0-9 (case insensitive).

        ISSUER       An ALPHANUMSTR that denotes an issuer specific
                     to the Country.

        VACCINE      An ALPHANUMSTR that denotes a vaccine or similar
                     sub grouping.

None of these strings can be empty. All are case insensitive (as they
may be entered from a printed document).

Appendix 1 contains a ABNF of above.

Exceptions and Legacy:

At this time there are two known deviations.

Firstly - there are two suffixes in use; the original UVCI and a newer
UCI. The reason for this was that during the design and first roll-outs
the pandemic evolved; and it became clear that not just vaccination
certificates would be issued - but also test and recovery certificates.
So some countries started to use the more generic UCI.

However - UCI is already in use (RFC4179). So this newer UCI will need
to be phased out; with UVCI remaining (only 1 or 2 countries appear to
use this).

Secondly - a few countries have issued abbreviated UVCIs; which lack
the URN:UVCI prefix. An example of this is: "01/LU/2O1I84U8U12I5#UK".

Rules for Lexical Equivalence:

The URN should be compared case-insensitive in its entirety; from (and
including the ‘URN:’ up and until, but not including the optional ‘#’
and optional checksum. The optional checksum is not part  of the URN
(or its comparison). It is however recommended when the URN is printed.

If the context allows for it - the removal of the 'urn:uvci' from the
printed (and human entered) string is allowed. And should be restored
prior to digital handling, comparisons and transmission (e.g. in a
QR code).

Assignment:

Assignment of the URNs is delegated to each of the member states; who
may delegate this within their state - e.g. to a regional health
authority or to a nation within their state. The Secretariat of the
eHealth Network maintains a list of contacts for each State.

Each Member State is responsible for managing this space well and
keeping the entries overall unique (some States may have multiple
ISO3166-1 entries; these, and the version number, are considered an
integral part of the identifier, also for uniqueness purposes).

Security and Privacy:

This URN is classified as a piece of Personally Identifiable
Information (it references a medical 'fact' about a person; about
the traveler) and, for this reason subject to the regulation[4]
and national law.

Interoperability:

The UVCI is a unique and persistent identifier.  An UVCI, once it has
been assigned, must never be reused.

There are no characters in UVCI which would require percent-encoding.

Persistence of the resources:

The UVCI pertains to a specific (medical) record about a specific
person’s vaccination, test or recovery at event level [1,2]. This
record is subject to national legislation and regulation.

Persistence of the identifier:

The UVCI as an identifier is persistent in the sense that once
assigned, an UVCI will never be reassigned.

Resolution:

For URN resolution purposes, all elements up to, but not including the
'#' and checksum must be taken into account.

Persistence of the remote/public resolvers:

At this time there are no remote or public resolvers -- the cross border
continuity of care scenario referenced in below documents has not been
implemented at this time. No timeline (or a decision) to implement such
has been taken.

Documentation/References:

1: COMMISSION IMPLEMENTING DECISION (EU) 2021/1073 of 28 June 2021
   laying down technical specifications and rules for the implementation
   of the trust framework for the EU Digital COVID Certificate established
   by Regulation (EU) 2021/953 of the European Parliament and of the
   Council, <http://data.europa.eu/eli/reg/2021/953/oj>

2: eHealth Network, Guidelines on Technical Specifications for EU
   Digital COVID Certificates, Volumes 1-5,
   <https://ec.europa.eu/health/ehealth/key_documents_en>

3: eHealth Network Guidelines on verifiable vaccination certificates -
   basic interoperability elements, Release 2, 2021-03-12,
   <https://ec.europa.eu/health/ehealth/key_documents_en>

4: Regulation (EU) 2021/953 on a framework for the issuance,
   verification and acceptance of interoperable COVID-19 vaccination,
   test and recovery certificates (EU Digital COVID Certificate) to
   facilitate free movement during the COVID-19 pandemic,
   <https://eur-lex.europa.eu/eli/reg/2021/953/oj>

Additional Information:

    See: https://ec.europa.eu/health/ehealth/key_documents_en

Revision Information:

    Version 1.00 -- This registration is based on the 2021/1073 of
                    28 June 2021 implementing decision. (2021/07/20)

    Version 1.01 -- Add legacy/exception example (LU), several typos
                    Fixed, URLs added (2021/07/28).

Appendix 1 - RFC5234 Augmented BNF of the URN

This is a non-normative ABNF derived from [2,3]. The definitions for
ALPHA and DIGIT are from RFC5234. The NID or NSS are conform RFC8141.

       URN = "URN" URN_SEP NID URN_SEP NSS

       NID = "UVCI"; note that an ABNF string is case _in_ sensitive.

       NSS =  VERSION NSS_SEP COUNTRY NSS_SEP C_NSS [ CRC_SEP LUHN ]

   VERSION = 2*DIGIT  ; only the value "01" is defined at this time.

   COUNTRY = 2*ALPHA [ *ALPHA ] ; only 2 char from ISO 3166-1 defined
                                ; at this time.

     C_NSS = OPTION1 / OPTION2 / OPTION 3

   OPTION1 = AZ09STR

   OPTION2 = ISSUER CNTRY_SEP AZ09STR

   OPTION3 = ISSUER CNTRY_SEP VACCINE CNTRY_SEP AZ09STR ; not observed
                                                        ; in active use.

   URN_SEP = ":"

   NSS_SEP = ":"

 CNTRY_SEP = "/"

   CRC_SEP = "#"

      LUHN = 1*ALPHANUM

    ISSUER = AZ09STR

   VACCINE = AZ09STR

   AZ09STR = 1*AZ09 [ *AZ09 ]; non empty arbitrary len alpha numeric
                             ; ascii string

       AZ09 = ALPHA / DIGIT

Although commonly used software imposes a limit of around 2kByte on
the length of a URI, implementers are advised to stay below the 60
characters for usability reasons (they may need to be routinely entered
from a paper travel document by hand).