INTAREA                                                     R. Moskowitz
Internet-Draft                                            HTT Consulting
Intended status: Standards Track                                 S. Card
Expires: 9 December 2023                              AX Enterprize, LLC
                                                             7 June 2023


                 The DRIP DET public Key Infrastructure
                      draft-moskowitz-drip-dki-04

Abstract

   The DRIP Entity Tag (DET) public Key Infrastructure (DKI) is a
   specific variant of classic Public Key Infrastructures (PKI) where
   the organization is around the DET, in place of X.520 Distinguished
   Names.  Further, the DKI uses DRIP Endorsements in place of X.509
   certificates for establishing trust within the DKI.

   There are two X.509 profiles for shadow PKI behind the DKI, with many
   of their X.509 fields mirroring content in the DRIP Endorsements.
   This PKI can at times be used where X.509 is expected and non-
   constrained communication links are available that can handle their
   larger size.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 9 December 2023.

Copyright Notice

   Copyright (c) 2023 IETF Trust and the persons identified as the
   document authors.  All rights reserved.






Moskowitz & Card         Expires 9 December 2023                [Page 1]

Internet-Draft                  DRIP DKI                       June 2023


   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
     1.1.  The DKI without an Apex Entity  . . . . . . . . . . . . .   5
       1.1.1.  RAA Trust lists . . . . . . . . . . . . . . . . . . .   6
       1.1.2.  RAA Cross-endorsements  . . . . . . . . . . . . . . .   6
       1.1.3.  Bridge RAA with cross-endorsements to RAAs  . . . . .   6
   2.  Terms and Definitions . . . . . . . . . . . . . . . . . . . .   7
     2.1.  Requirements Terminology  . . . . . . . . . . . . . . . .   7
     2.2.  Definitions . . . . . . . . . . . . . . . . . . . . . . .   7
   3.  The DET public Key Infrastructure (DKI) . . . . . . . . . . .   8
     3.1.  The DKI Levels  . . . . . . . . . . . . . . . . . . . . .   8
       3.1.1.  The Apex  . . . . . . . . . . . . . . . . . . . . . .   8
       3.1.2.  The RAAs  . . . . . . . . . . . . . . . . . . . . . .   8
         3.1.2.1.  Initial RAA assignments . . . . . . . . . . . . .   8
       3.1.3.  The HDAs  . . . . . . . . . . . . . . . . . . . . . .   9
     3.2.  The Offline Requirement for Authentication DETs . . . . .   9
     3.3.  DNS view of DKI . . . . . . . . . . . . . . . . . . . . .   9
     3.4.  Managing DET Revocation . . . . . . . . . . . . . . . . .  10
     3.5.  The Offline cache of HDA Issuing Endorsements . . . . . .  11
       3.5.1.  HDA Offline Trust cache . . . . . . . . . . . . . . .  11
     3.6.  RAAs set aside for Testing  . . . . . . . . . . . . . . .  11
   4.  The DKI's Shadow PKI  . . . . . . . . . . . . . . . . . . . .  11
     4.1.  Shadow Lite-PKI with minimal content Certificates . . . .  12
       4.1.1.  DRIP Lite X.509 certificate profile . . . . . . . . .  12
       4.1.2.  Serial Number . . . . . . . . . . . . . . . . . . . .  12
       4.1.3.  Subject . . . . . . . . . . . . . . . . . . . . . . .  13
       4.1.4.  Issuer  . . . . . . . . . . . . . . . . . . . . . . .  13
       4.1.5.  Subject Alternative Name  . . . . . . . . . . . . . .  13
       4.1.6.  The Lite test PKI . . . . . . . . . . . . . . . . . .  14
     4.2.  Shadow PKI with PKIX-like Certificates  . . . . . . . . .  14
       4.2.1.  DRIP X.509 certificate profile  . . . . . . . . . . .  14
       4.2.2.  Serial Number . . . . . . . . . . . . . . . . . . . .  15
       4.2.3.  Subject . . . . . . . . . . . . . . . . . . . . . . .  15
       4.2.4.  Subject Alternative Name  . . . . . . . . . . . . . .  16
       4.2.5.  Issuer  . . . . . . . . . . . . . . . . . . . . . . .  16
       4.2.6.  Subject Key Identifier  . . . . . . . . . . . . . . .  16
       4.2.7.  Authority Key Identifier  . . . . . . . . . . . . . .  16
       4.2.8.  The PKIX-like test PKI  . . . . . . . . . . . . . . .  16



Moskowitz & Card         Expires 9 December 2023                [Page 2]

Internet-Draft                  DRIP DKI                       June 2023


   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  17
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  17
     6.1.  Protecting against DKI/PKI compromise . . . . . . . . . .  17
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  17
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .  17
     7.2.  Informative References  . . . . . . . . . . . . . . . . .  18
   Appendix A.  Test DETs and Endorsements . . . . . . . . . . . . .  19
     A.1.  Test DNS  . . . . . . . . . . . . . . . . . . . . . . . .  21
   Appendix B.  Test X.509 certificates  . . . . . . . . . . . . . .  23
     B.1.  Test Lite X.509 certificates  . . . . . . . . . . . . . .  23
       B.1.1.  openSSL Lite config file  . . . . . . . . . . . . . .  29
     B.2.  Test PKIX-like X.509 certificates . . . . . . . . . . . .  31
       B.2.1.  openSSL config file . . . . . . . . . . . . . . . . .  37
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .  41
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  41

1.  Introduction

   A DRIP Entity Tag (DET, [RFC9374]) public Key Infrastructure (DKI) is
   designed as a strict hierarchy, governed by the administrator of the
   DET prefix [IPv6-SPECIAL] and having the authority to authorize RAAs.
   RAAs in turn authorize HDAs within their domain.  This authorization
   is managed via a set of DETs whose sole use is to define the DKI.
   The RAA Authorization DETs MUST reside in HID = RAA#|0 (Apex
   Authorization DET in HID = 0|0).

   There are three main classifications/types of DETs:

      Authorization DETs
         Used to assert the authorization of a DKI level.

      Issuing DETs
         Used to assert operations within DKI level.

      Operational DETs
         Used by operational entities within DKI level

   All DETs exist in DET-Endorsements (Appendix B of [drip-registries]).
   These DET-Endorsements provide the proof of registration and thus
   trust.  These DETs, through chained Endorsements define the DKI as
   follows:

                          +----------+
                          |   Auth   |
                          +-o------o-+
                            |      |
                            |    +-o-----+
           Apex             |   +--o----+|



Moskowitz & Card         Expires 9 December 2023                [Page 3]

Internet-Draft                  DRIP DKI                       June 2023


                            |   | Issue |+
                            |   +---o---+
                            |      |
                            |    +-o-----+
                            |   +--o----+|
                            |   |CRL,Srv|+
                            |   +-------+
                            |
          ******************|************************************
                          +-o--------+
                         +-o--------+|
                         |   Auth   |+
                         +--o-----o-+
                            |     |
                            |   +-o-----+
           RAAs             |  +--o----+|
                            |  | Issue |+
                            |  +---o---+
                            |     |
                            |   +-o-----+
                            |  +--o----+|
                            |  |CRL,Srv|+
                            |  +-------+
                            |
          ******************|************************************
                          +-o--------+
                         +-o--------+|
                         |   Auth   |+
                         +----o-----+
                              |
                            +-o-----+
           HDAs            +--o----+|
                           | Issue |+
                           +---o---+
                               |
                             +-o-------+
                            +--o------+|
                            | CRL,Srv ||
                            |UAS,Pilot|+
                            +---------+

          *******************************************************


                       Figure 1: The DKI Endorsements






Moskowitz & Card         Expires 9 December 2023                [Page 4]

Internet-Draft                  DRIP DKI                       June 2023


   The Authorization DETs exist in a set of DET-Authorization-
   Endorsements.  The lifetime of these endorsements SHOULD be no less
   than 1 year, recommended 5 years, and should not exceed 10 years.
   Endorsements SHOULD be reissued prior to expiry (may be for a new
   DET).  DETs used to define this authorization are replaced per
   undetermined policy (note these DETs do very little signing, see
   Section 6.1).

   This separation of DET type roles reduce the risk of private key loss
   for the critical Authentication DETs by making them infrequently used
   and only used in offline operations.  It does make the chain of trust
   for a HDA customers' Operational DETs to be 4 Endorsements.

1.1.  The DKI without an Apex Entity

   The hierarchial design of the DKI is the most efficient possible with
   the least data transmission overhead.  But it requires the
   participation of an Entity, in the role of the Apex, trusted by all
   the RAAs.  The logical Entity for this role is the International
   Civil Aviation Authority (ICAO), but the processes for ICAO to take
   on this role are complex.  Work is ongoing with the ICAO, but timing
   is indeterminate and immediately implementable alternatives are
   needed.

   The DKI can work by the RAAs establishing mutual trust within a
   geographic region.  It is envisioned that the initial RAA assignments
   will follow Section 3.1.2.1.  Without an Apex, each RAA self-endorses
   its Authentication DET, acting as its own apex.  However, RAAs issued
   DETs (via their HDAs) will not exist in the air by themselves (except
   perhaps for some small island nations), thus a geographic regional
   consortium of RAAs will need to deploy some mechanism for mutual
   trust for their End Entities to fly together.

   There are three reasonable approaches for RAAs to manage their mutual
   trust and it is likely that all will occur:

      1.  RAA Trust lists

      2.  RAA Cross-endorsements

      3.  Bridge RAA with cross-endorsements to RAAs

   It is recommended that the RAA Trust List be used during initial DKI
   testing.  The cross-endorsing options will need their own testing to
   work out how best to deploy them.






Moskowitz & Card         Expires 9 December 2023                [Page 5]

Internet-Draft                  DRIP DKI                       June 2023


1.1.1.  RAA Trust lists

   A consortium of RAAs MAY choose to maintain a list of RAAs they
   trust.  It is recommended that this list consist of the RAA's
   Authentication DET and HI.  Each RAA in the consortium SHOULD
   maintain its own list, signed with its Authentication DET.

   This Trust List MAY contain each RAA's Authentication DET self-
   endorsement validity dates.  If a trusted RAA has more than one self-
   endorsement (most likely to support key rollover), including these
   dates makes it easier to have an RAA duplicated in the list.

   How the RAAs communicate between themselves to maintain these lists
   is out of scope here.  Each RAA SHOULD include validity dates in its
   Trust List.  Frequency of Trust List updates is also out of scope
   here.

   Trust Lists is the simplest method to implement, but may not be the
   simplest to maintain over time.

1.1.2.  RAA Cross-endorsements

   A consortium of RAAs MAY choose to cross-endorse each's
   Authentication DET.  This is done by one RAA endorsing for its
   community, another's Authentication DET.  This establishes one-way
   trust; thus, in practice, each RAA needs to cross-endorse each RAA's
   Authentication DET within the consortium.

   RAA Cross-endorsements definitely has a scaling (n^2) problem.  It
   works for a starting point or for a very small group of RAAs.

   How these RAA Cross-endorsements are discovered has not been defined
   at this point.  One potential is via a to-be-defined DNS HHIT RR
   within the endorsing RAA's zone.  This information would need to be
   cached by any potential offline entity.

1.1.3.  Bridge RAA with cross-endorsements to RAAs

   A consortium of RAAs MAY select one RAA to function as a "Bridge"
   between all members of the consortium.  In this approach, the "Bridge
   RAA" does not authorize any sub-HDAs.  Its sole purpose is the cross-
   endorse to member RAAs.  The Bridge and each RAA cross endorse as in
   Section 1.1.2.








Moskowitz & Card         Expires 9 December 2023                [Page 6]

Internet-Draft                  DRIP DKI                       June 2023


   Bridge RAA Cross-endorsementing reduces the scaling challenge to only
   the number of RAAs in the consortium.  Plus there is little need to
   communicate any changes in the cross-endorsementing to the various
   parties within the consortium.  Thus this option scales the best out
   of the three alternatives to DKI Apex hierarchy.

   How these RAA Cross-endorsements are discovered has not been defined
   at this point.  The Bridge RAA will have to be known to all parties
   within the consortium.  One potential, as above, is via a to-be-
   defined DNS HHIT RR within the endorsing RAA's zone.  This
   information would need to be cached by any potential offline entity.

2.  Terms and Definitions

2.1.  Requirements Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

2.2.  Definitions

   This document uses the terms defined in Section 2.2 of [RFC9153] and
   in Section 2 of [drip-architecture].  The following new terms are
   used in the document:

   Authorization DETs
      DETs whose use is to define a hierarchy level and endorse lower
      hierarchy level Authorization DETs and finally Issuing DETs at
      this hierarchy level.  They the DETs in the Authentication
      Endorsements and X.509 certificates.

   DKI
      A DRIP Entity Tag (DET) public Key Infrastructure.  Similar to an
      X.509 PKI, but built on the DRIP Endorsements.

   Issuing DETs
      DETs whose use is to sign Endorsements and X.509 certificates for
      Operational DETs that are at the same hierarchy level as the
      Issuing DET.

   Operational DETs
      DETs used by various entities in DRIP protocols and as non-
      routable IPv6 addresses.  A partial list of such entities
      includes: GCS, Infrastructure (e.g. wireless tower systems),
      Pilots-in-command, Servers, UA.



Moskowitz & Card         Expires 9 December 2023                [Page 7]

Internet-Draft                  DRIP DKI                       June 2023


3.  The DET public Key Infrastructure (DKI)

3.1.  The DKI Levels

3.1.1.  The Apex

   The Apex Authorization DET is used to endorse RAA Authorization DETs
   and its own Apex Issuing DETs; it has no other use.  This is the case
   for all Authorization DETs.  Apex Issuing DETs are used to endorse
   DETs, with HID= 0|0, used by Apex services.

3.1.2.  The RAAs

   Each RAA use its Authorization DET (HID = RAA#|0) to endorse its RAA
   Issuing DET(s) (also HID = RAA#|0) and for signing its HDA
   Authorization DETs (HID = RAA#|HDA#).

   An RAA may have multiple Issuing DETs (HID = RAA#|0), each for a
   different use (e.g.  CRL signing, RAA server signing).  It is
   expected that, over time, an RAA will rollover its Issuing DETs, thus
   at times there will be more than ONE Issuing DET per role in use.

   These Issuing DETs, like those at the Apex level, constitute an
   implicit HDA.  There is no Authorization DET for this implicit HDA,
   but other than only signing for entities like servers needed by the
   RAA, it should be considered as an HDA in terms of policies.

3.1.2.1.  Initial RAA assignments

   It is expected that each nation state will manage RAAs for use of its
   National Air Space (NAS).  The allocation of RAA numbers for this
   purpose will initially be based on the ISO 3166 3-digit codes
   ([ISO-3166]).

   The initial allocation of RAAs will be (ISO-3166 number)*4 + [0-3].
   It is up to each state what they do with this initial allocation.

   Each UAS Manufacturer with a CTA-2063A [CTA2063A] number will be
   allocated an HDA out of a specific Manufacturer's RAA range.

   To manage the large CTA Manufacturer Code space (34 character set; 4
   characters; 1,336,336 possible codes) a range of RAA values are set
   aside for this purpose.  These are the RAA values of 4000 (0x0FA0) to
   4095 (0x0FFF).  This allows a single HDA for each Manufacturer Code.

   Any allocation of RAAs to non-states will start with RAA 4096.





Moskowitz & Card         Expires 9 December 2023                [Page 8]

Internet-Draft                  DRIP DKI                       June 2023


3.1.3.  The HDAs

   Each HDA use its Authorization DET to endorse its HDA Issuing DETs
   (e.g.  RAA=267, HDA=567).

   An HDA Issuing DET is used to endorse Operational DETs; those used by
   the HDA for its services (e.g.  USS) and for Devices (e.g.  UA, GCS,
   ground infrastructure) partaking in the HDA's services.

   If the Operational DET is a Manufacturer DET, the "valid not after"
   date (vna) MUST be 99991231235959Z.

3.2.  The Offline Requirement for Authentication DETs

   The Authentication DETs private keys MUST NEVER be on a system with
   any network connectivity.  Also efforts MUST be taken to limit any
   external digital media connections to these offline systems.
   Compromise of an Authentication DET compromises its and all lower
   hierarchy levels.  Such a compromise could result in a major re-
   signing effort with a new Authentication DET.  Also, during the time
   of compromise, fraudulent additions to the DKI could have occurred.

   This means that the process whereby the Authentication DET is used to
   sign the Endorsement/X.509 certificate of its level's Issuing DET(s)
   and lower level Authentication DETs MUST be conducted in an offline
   manner.

   This offline process need not be onerous.  For example, QR codes
   could be used to pass CSR objects to the offline Authentication DET
   system, and this system could produce QR codes containing the
   Endorsements and X.509 certificates it signed.

   A video conference between the parties could have one side show its
   QR code and the other copy and print it to move between the video
   conferencing system and the offline system.  This is a simplification
   of a larger signing operation, but shows how such a signing need not
   require travel and expensive hand-off methodologies.

   It should be noted that the endorsement of Issuing DETs follow the
   same restriction, as it is done with the Authentication DET.  It MUST
   be conducted in an offline manner.

3.3.  DNS view of DKI

   The primary view of the DKI is within DNS.  There are two main DNS
   structures, one for DETs and one for DKI entities.





Moskowitz & Card         Expires 9 December 2023                [Page 9]

Internet-Draft                  DRIP DKI                       June 2023


   In the DET DNS structure, only the Apex and RAA levels MUST be DNSSEC
   signed.  The HDA level may be too dynamic for DNSSEC signing (e.g.
   hundreds of new EE Operational DETs per hour); trust in the EE
   Operational DETs within the HDA level comes through inclusion of the
   HDA Endorsement of EE object.  A slow-churn HDA MAY use DNSSEC.  The
   RAA and HDA levels MUST contain their Endorsement by higher object;
   this provides the needed trust in the Endorsement of EE objects.  The
   Apex level Endorsement is self-signed, thus trust in it is only
   possible via DNSSEC.

   Endorsements are currently stored in DNS via the CERT RR using a
   private OID of 1.3.6.1.4.1.6715.2 (an alternative OID may be
   1.3.9.16.2) and further classified by the Endorsement Type.  The CERT
   RR is only a temporary RR for Endorsements, as it cannot support DET
   revocation (Section 3.4).  Other RR within these levels will vary.
   There may be HIP, TLSA, and/or URI RR.

   Each level needs FQDNs for its Authorization DET and Issuing DET(s)
   (e.g.  PTR to DETs?).  FQDNs for services offered may also be
   present, or a URI for the commercial FQDN for the DKI Entity.  TLSA
   RR of DET SPKI may be directly included here.  Same with HIP RR.  The
   Authorization Endorsement SHOULD be present, as SHOULD be Issuing
   Endorsements.

3.4.  Managing DET Revocation

   For Operational DETs, there is no direct concept of DET revocation.
   Operational DETs are either discoverable via DNS or not valid despite
   being in a non-expired Endorsement signed an Issuing DET.  Thus if an
   Issuing Entity needs to "revolk" an Operational DET it removes all
   entries for it from DNS, so a short TTL on those records is
   recommended.

   Authorization and Issuing DETs are not so easily "revoked"; something
   akin to an X.509 CRL mechanism is needed.  This could best be dealt
   with by Endorsements managed in a RR that includes revocation status.
   Thus [drip-registries] needs to define a specific RR for Endorsements
   that will be used here.  Minimally, at least the revocation status
   and revocation date(s) need to be in this RR.  Until this RR is
   defined, there is no mechanism, other than removal for Authorization
   and Issuing DET revocations.










Moskowitz & Card         Expires 9 December 2023               [Page 10]

Internet-Draft                  DRIP DKI                       June 2023


3.5.  The Offline cache of HDA Issuing Endorsements

   The Offline cache of HDA Issuing Endorsements, used to verify various
   EE signed objects without needing DNS access, SHOULD consist of the
   HDA Authentication DET Endorsements of the HDA Issuing DETs.  Thus
   the receiver has a trusted source of the HDA Issuing DET Public Key
   (HI) in a DRIP standard object (136 bytes).  If the DKI DNS tree
   includes GEO location data and coverage, a receiver could query some
   service for a trusted cache within some radius of its location.  Such
   as, please tell me of all HDAs within 100KM of...

   This cache MAY contain the full chain up to the Apex.  This could be
   helpful in limited connectivity environments when encountering an HDA
   Issuing DET under a unknowned Authenticated HDA or RAA.  The needed
   trust chain could be shorter.

3.5.1.  HDA Offline Trust cache

   There situations where a list of specific HDAs for an entity to trust
   for some application is needed.  This can best be met by maintaining
   a cache as above but only of the trusted HDA Issuing Endorsements.
   How a list of this limited trust is maintain and distributed is out
   of scope of this document and is left to those needing this specific
   feature.

3.6.  RAAs set aside for Testing

   The RAA range of 16376 - 16383 are reserved for testing.  It test DET
   DNS structure under drip-testing.org will use these.  RAAs 16376 -
   16389 are preallocated in this test DNS with 16390 - 16383 available
   for testing setting up RAAs.  Within RAAs 16376 - 16383, HDAs 16376 -
   16383 will be preset for testing of Operational DETs.  Other HDAs
   within RAAs 16376 - 16383 additional HDAs can be made available for
   testing of HDA setup and running said HDAs.

   It is anticipated that once a production DNS is established, these
   test RAAs and HDAs will carry forward.  The migration could be as
   simple as the production Apex endorsing the test RAA Authorization
   DETs and moving the various test DNS structures to the production
   structure.

4.  The DKI's Shadow PKI

   The following defines the components of a DKI's shadow PKI built from
   X.509 certificates with content that mirrors that in the DKI
   Endorsements.  There are two profiles provided; both may be used, or
   the community may select one for deployment.  In both cases, the PKI
   tree mirrors that of the DKI levels (Section 3.1).



Moskowitz & Card         Expires 9 December 2023               [Page 11]

Internet-Draft                  DRIP DKI                       June 2023


   At this point in defining the shadow PKIs, alternatives to a strict
   hierarchy is still an open work item.  This work will follow the
   pattern set in Section 1.1.

4.1.  Shadow Lite-PKI with minimal content Certificates

   The Lite-PKI is designed to fully mirror the DKI in the smallest
   reasonable X.509 certificates (e.g. 240 bytes for DER), but still
   adhere to [RFC5280] MUST field usage.

4.1.1.  DRIP Lite X.509 certificate profile

   The following is the profile for the DRIP X.509 certificates

           Certificate:
               Data:
                   Version: 3 (0x2)
                   Serial Number:
                   Signature Algorithm: ED25519
                   Issuer: CN =
                   Validity
                       Not Before:
                       Not After :
                   Subject: {CN = or Empty}
                   Subject Public Key Info:
                       Public Key Algorithm: ED25519
                           ED25519 Public-Key:
                           pub:
                   X509v3 extensions: {Operation Certs ONLY}
                       X509v3 Subject Alternative Name: critical
                           IP Address:
               Signature Algorithm: ED25519
               Signature Value:



                  Figure 2: DRIP Lite certificate profile

4.1.2.  Serial Number

   The Serial Number is a MUST field, but it has no usage in this Lite-
   PKI.  It is 1-byte in size and thus duplicates are guaranteed.  To
   drop this field could make many X.509 parsing libraries fail.








Moskowitz & Card         Expires 9 December 2023               [Page 12]

Internet-Draft                  DRIP DKI                       June 2023


4.1.3.  Subject

   The Subject field is only used in Authentication and Issuing
   Certificates.  In this usage it will be the left 8 bytes of the DET
   encoded in the commonName attribute.  Thus CN=2001003000000005 is for
   an Apex Authentication certificate for prefix 2001003/28 and SuiteID
   5.

   For Entity Certificates, the Subject is Empty and the DET will be in
   Subject Alternative Name (SAN).  In the SAN, the DET can be properly
   encoded as an IPv6 address.

   To distinguish the various Issuing DET certificates under an
   Authentication DET certificate, they will have a letter appended to
   the CN to identify their role.  For consistency across the PKI, these
   should be in an IANA registry.  Current thought is for at least:

      Issuing - I

      CRL signing - CRL

4.1.4.  Issuer

   The Issuer MUST be the higher level's Subject.

   The Issuer for the Apex Authentication certificate MUST be the
   Subject (indicating self-signed).

   As the Subject field streams down to Issuer, it is very important for
   walking the trust chain via the FQDNs derived from the CN.  Note that
   there may be multiple certificates with a CN, particularly during key
   rollover.  It is up to applications to select the proper signing
   certificate for validation.

4.1.5.  Subject Alternative Name

   Subject Alternative Name is only used in Operational (End Entity)
   certificates.  It is used to provide the DET as an IP address with an
   Empty Subject (SAN MUST be flagged as Critical).

   The Subject Alternative Name is also used in Manufacturer DET
   certificates.  These may contain the hardwareModuleName as described
   in [IEEE 802.1AR] that references [RFC4108].

   Per [RFC5280] and [IEEE 802.1AR], Manufacturer DET certificates with
   hardwareModuleName MUST have the notAfter date as 99991231235959Z.





Moskowitz & Card         Expires 9 December 2023               [Page 13]

Internet-Draft                  DRIP DKI                       June 2023


4.1.6.  The Lite test PKI

   The Lite test PKI, following the test DKI, was built with openSSL
   using the "req" command to create a CSR and the "ca" command to sign
   the CSR, making the certificate.  It should be noted that these CSRs
   have all the content for making a DRIP Endorsement, such that a
   registrar may prefer to receive CSRs and use it to make both
   structures.

   The self-signed certificates created by "req -x509" does not allow
   selection of the validity dates, only the number of days from NOW.
   The hack used around this limitation is to create a throw-away self-
   signed certificate as above with the Apex's DET.  Then create a CSR
   with that DET and sign it with the throw-away certificate, setting
   the validity dates as desired.  This now becomes the actual Apex
   self-signed Authentication certificate and the throw-away certificate
   can now be thrown away.

4.2.  Shadow PKI with PKIX-like Certificates

   The X.509 certificates are minimalistic (less than 400 bytes for
   DER).  Any DRIP specific OIDs should come from the ICAO arc (e.g.
   1.3.27.16.2).

4.2.1.  DRIP X.509 certificate profile

   The following is the profile for the DRIP X.509 certificates
























Moskowitz & Card         Expires 9 December 2023               [Page 14]

Internet-Draft                  DRIP DKI                       June 2023


              Certificate:
                  Data:
                      Version: 3 (0x2)
                      Serial Number:
                      Signature Algorithm: ED25519
                      Issuer: CN =
                      Validity
                          Not Before:
                          Not After :
                      Subject: CN =
                      Subject Public Key Info:
                          Public Key Algorithm: ED25519
                              ED25519 Public-Key:
                              pub:
                      X509v3 extensions:
                          X509v3 Subject Key Identifier:
                          X509v3 Authority Key Identifier:
                          X509v3 Basic Constraints: critical
                          X509v3 Key Usage: critical
                  Signature Algorithm: ED25519
                  Signature Value:



                     Figure 3: DRIP certificate profile

4.2.2.  Serial Number

   The certificates will contain a 8-byte randomly generated Serial
   Number, compliant with CABForum recommendations.  Serial Numbers are
   included for CRL functionality.

4.2.3.  Subject

   The certificates Subject will be coded in the commonName attribute.
   This will either be the DET or the left 8 bytes of the DET (for
   Authentication and Issuing DET certificates).  Thus
   CN=2001003000000005 is for an Apex Authentication certificate for
   prefix 2001003/28 and SuiteID 5.

   Author's Note: When the Subject is a DET, it may be better to put it
   in Subject Alternative Name and leave out Subject.  As the DET is an
   IPv6 address and using SAN for them is recommended in [RFC5280].

   To distinguish the various Issuing DET certificates for the
   Authentication DET certificate, they will have a letter appended to
   the CN to identify their role.  For consistency across the PKI, these
   should be in an IANA registry.  Current thought is for at least:



Moskowitz & Card         Expires 9 December 2023               [Page 15]

Internet-Draft                  DRIP DKI                       June 2023


      Issuing - S

      CRL signing - CRL

4.2.4.  Subject Alternative Name

   The Subject Alternative Name is NOT used in DET certificates with the
   exception of Manufacturer DETs.  These will contain the
   hardwareModuleName as described in [IEEE 802.1AR] that references
   [RFC4108].

   Per [RFC5280] and [IEEE 802.1AR], Manufacturer DET certificates MUST
   have the notAfter date as 99991231235959Z.

4.2.5.  Issuer

   The Issuer MUST be the higher level's Subject.

   The Issuer for the Apex Authentication certificate MUST be the
   Subject (indicating self-signed).

4.2.6.  Subject Key Identifier

   The Subject Key Identifier MUST be the DET.  This is a major
   deviation from "standard" X.509 certificates that hash (normally with
   SHA2) the Public Key to fill the Subject Key Identifier.

4.2.7.  Authority Key Identifier

   The Authority Key Identifier MUST be the higher level's Subject Key
   Identifier (i.e.  DET).  This partially follows standard practice to
   chain up the Authority Key Identifier' from the Subject Key
   Identifier, except for how the Subject Key Identifiers are populated.

   The Authority Key Identifier for the Apex Authentication certificate
   MUST be the Subject Key Identifier (indicating self-signed).

4.2.8.  The PKIX-like test PKI

   The PKIX-like test PKI, following the test DKI, was built with
   openSSL using the "req" command to create a CSR and the "ca" command
   to sign the CSR, making the certificate.  It should be noted that
   these CSRs have all the content for making a DRIP Endorsement, such
   that a registrar may prefer to receive CSRs and use it to make both
   structures.






Moskowitz & Card         Expires 9 December 2023               [Page 16]

Internet-Draft                  DRIP DKI                       June 2023


   The self-signed certificates created by "req -x509" does not allow
   selection of the validity dates, only the number of days from NOW.
   The hack used around this limitation is to create a throw-away self-
   signed certificate as above with the Apex's DET.  Then create a CSR
   with that DET and sign it with the throw-away certificate, setting
   the validity dates as desired.  This now becomes the actual Apex
   self-signed Authentication certificate and the throw-away certificate
   can now be thrown away.

5.  IANA Considerations

   TBD - may need a registry of Signing certificate types.

6.  Security Considerations

   Risks in the DKI are similar to those in any X.509 PKI.  The
   methodologies to mitigate risk in PKI management should be considered
   and implemented as appropriate.

   The DKI presents a tree-breath problem that is rarely seen in PKIs
   and needs practical solutions to minimize cost of operations and not
   introduce risks needlessly.  Consider that there can be 16,384 RAAs.
   Assume only 10,000 RAAs, each of which Authentication DET Endorsement
   has a 10 year validity period.  This means that, on average, 1,000
   RAAs per year need to rekey their Authentication DET Endorsement, or
   on average, 3 per day.  Current witnessed key signing processes will
   not scale to this volume.  Some virtual method (like in Section 3.2)
   is needed.

6.1.  Protecting against DKI/PKI compromise

   There is always a risk of key compromise that could be a major
   setback to the operation of a PKI and likewise the DRIP DKI.  To
   mitigate this risk, the Authentication DETs MUST only be used in
   offline signing operations.  They MUST NEVER be used on connected
   systems.  The information needed to create the Endorsements and X.509
   certificates are brought to them on media that cannot transfer code,
   for example in a QR code.  The objects that are created are then
   transferred away from the offline system to be used where needed.

   It should be noted that this offline process MUST be followed down
   the DKI/PKI tree.  That is, the Apex has offline operations that
   include signing the RAA Authentication DET that will be used in the
   RAA's set up.

7.  References

7.1.  Normative References



Moskowitz & Card         Expires 9 December 2023               [Page 17]

Internet-Draft                  DRIP DKI                       June 2023


   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

7.2.  Informative References

   [CTA2063A] ANSI/CTA, "ANSI/CTA 2063-A Small Unmanned Aerial Systems
              Numbers", September 2019, <https://shop.cta.tech/products/
              small-unmanned-aerial-systems-serial-numbers>.

   [drip-architecture]
              Card, S. W., Wiethuechter, A., Moskowitz, R., Zhao, S.,
              and A. Gurtov, "Drone Remote Identification Protocol
              (DRIP) Architecture", Work in Progress, Internet-Draft,
              draft-ietf-drip-arch-31, 6 March 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-drip-
              arch-31>.

   [drip-registries]
              Wiethuechter, A. and J. Reid, "DRIP Entity Tag (DET)
              Identity Management Architecture", Work in Progress,
              Internet-Draft, draft-ietf-drip-registries-09, 28 March
              2023, <https://datatracker.ietf.org/doc/html/draft-ietf-
              drip-registries-09>.

   [drip_scripts]
              "Python scripts to generate DETs and Endorsements", April
              2023, <https://github.com/ietf-wg-drip/drip-scripts>.

   [IEEE 802.1AR]
              IEEE, "IEEE Standard for Local and Metropolitan Area
              Networks - Secure Device Identity",
              DOI 10.1109/ieeestd.2018.8423794, 31 July 2018,
              <http://dx.doi.org/10.1109/ieeestd.2018.8423794>.

   [IPv6-SPECIAL]
              IANA, "IANA IPv6 Special-Purpose Address Registry",
              <https://www.iana.org/assignments/iana-ipv6-special-
              registry/>.

   [ISO-3166] ISO, "ISO 3166 Country Codes",
              <https://www.iso.org/iso-3166-country-codes.html>.




Moskowitz & Card         Expires 9 December 2023               [Page 18]

Internet-Draft                  DRIP DKI                       June 2023


   [RFC4108]  Housley, R., "Using Cryptographic Message Syntax (CMS) to
              Protect Firmware Packages", RFC 4108,
              DOI 10.17487/RFC4108, August 2005,
              <https://www.rfc-editor.org/info/rfc4108>.

   [RFC5280]  Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
              Housley, R., and W. Polk, "Internet X.509 Public Key
              Infrastructure Certificate and Certificate Revocation List
              (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
              <https://www.rfc-editor.org/info/rfc5280>.

   [RFC9153]  Card, S., Ed., Wiethuechter, A., Moskowitz, R., and A.
              Gurtov, "Drone Remote Identification Protocol (DRIP)
              Requirements and Terminology", RFC 9153,
              DOI 10.17487/RFC9153, February 2022,
              <https://www.rfc-editor.org/info/rfc9153>.

   [RFC9374]  Moskowitz, R., Card, S., Wiethuechter, A., and A. Gurtov,
              "DRIP Entity Tag (DET) for Unmanned Aircraft System Remote
              ID (UAS RID)", RFC 9374, DOI 10.17487/RFC9374, March 2023,
              <https://www.rfc-editor.org/info/rfc9374>.

Appendix A.  Test DETs and Endorsements

   The following are test DETs and Endorsements for the test DKI.  This
   testing environment is open to all.  There are 4 RAAs available for
   others to build out.  HDAs under the 4 preset RAAs, or under any of
   the 4, built out be others, are available.  Finally the test HDAs are
   available for setting up a handful of entities.  Any tester wanting
   more than a few DETs for entities should plan on doing that under
   their own HDA.

   The following are the test values and objects.  They were generated
   using the det-gen.py and endorse.py scripts available at
   [drip_scripts].

    Apex
        Authorizing DET  (HID=0|0)
            DET: 20010030000000052aeb9adc1ce8b1ec
            DET: 2001:0030:0000:0005:2aeb:9adc:1ce8:b1ec
            Raw HI:  d60268e6cf64ad693e5bb055d7c6e48c
                     7ed07013609e6ed02bb935b3d6acf53e
            vnb="05/01/2023"
            vna="06/01/2024"
            DETofP=0x20010030000000052aeb9adc1ce8b1ec
            Endorsement(136 bytes): 644f3940665a9cc020010030000000052a
                eb9adc1ce8b1ecd60268e6cf64ad693e5bb055d7c6e48c7ed07013
                609e6ed02bb935b3d6acf53e20010030000000052aeb9adc1ce8b1



Moskowitz & Card         Expires 9 December 2023               [Page 19]

Internet-Draft                  DRIP DKI                       June 2023


                ec17008ad1bc982c6cd8c955b1ef621ef80ee5c269aa3dbcfd34b5
                85162b19d39dad7d7ba78aeb0e84bc4dd8efc2246dd30834b1e5d0
                d220e7815af921a560fc0d

    rra16376
        Authorizing DET  (HID=16376|0)
            DET: 2001003ffe000005f970a4d7fd0e14a5
            DET: 2001:003f:fe00:0005:f970:a4d7:fd0e:14a5
            Raw HI:  df7e64cc1bfdcb65835437b37b6110d5
                     6fedb81443f58d53df8094e0e2828d23
            vnb="05/07/2023"
            vna="05/21/2024"
            DETofP=0x20010030000000052aeb9adc1ce8b1ec
            Endorsement(136 bytes): 64572240664c1c402001003ffe000005f9
                70a4d7fd0e14a5df7e64cc1bfdcb65835437b37b6110d56fedb814
                43f58d53df8094e0e2828d2320010030000000052aeb9adc1ce8b1
                ecea2cdf1933fb93842cb2c4e849fda3637493c9eedbfe08178fd5
                c7293c1b46acbd9a6c0c740a297ffda903b53bb34e8779ee8397d4
                9e6216b51ac7e87161200c

        Issuing DET  (HID=16376|0)
            DET: 2001003ffe000005191f150daf98f382
            DET: 2001:003f:fe00:0005:191f:150d:af98:f382
            Raw HI:  b81b0180631ce60c14d14ab80a69c214
                     7305836bf80b3b10284d36bae750265c
            vnb="05/07/2023"
            vna="05/21/2024"
            DETofP=0x20010030003ff805d80a0a62d3062894
            Endorsement(136 bytes): 64572240664c1c402001003ffe00000519
                1f150daf98f382b81b0180631ce60c14d14ab80a69c2147305836b
                f80b3b10284d36bae750265c20010030003ff805d80a0a62d30628
                94c1d2d6c8e0165da6318a8130a6eb5149830c9717bbad98be4fde
                abec31195df9d6c41319d477cafcebf19efaa2694abc05f4460cbb
                aedfee617fb44646523807

    hda16376-16376
        Authorizing DET  (HID=16376|16376)
            DET: 2001003ffe3ff805e805a98f9df15e2d
            DET: 2001:003f:fe3f:f805:e805:a98f:9df1:5e2d
            Raw HI:  b82b27f86b013468fe48d85b54f01bf6
                     5385f302ab2e136dc51a3b929c88ce5a
            vnb="05/14/2023"
            vna="05/14/2024"
            DETofP=0x2001003ffe000005f970a4d7fd0e14a5
            Endorsement(136 bytes): 64605cc06642e1c02001003ffe000005a1
                43e69785df6f61e8f6d91f7d5351485471420a9c7d5df180c7a31d
                b86cc937581ee8106f18e4eb2001003ffe000005f970a4d7fd0e14
                a5a791e3e1f8fe3fcc4848232df472cb4f796a1b836b918b55d69e



Moskowitz & Card         Expires 9 December 2023               [Page 20]

Internet-Draft                  DRIP DKI                       June 2023


                fac9a8d35d0fda184b5915e467969a8c6352f1e8ff65a0e8d42c2c
                08f1b22f800b1288512904

        Issuing DET  (HID=16376|16376)
            DET: 2001003ffe3ff8059b0e2860eb0bacde
            DET: 2001:003f:fe3f:f805:9b0e:2860:eb0b:acde
            Raw HI:  65f26bc01b89398f787c4785e4e7f6e0
                     1f2993137759995d7baa72791a44ac5d
            vnb="05/14/2023"
            vna="05/14/2024"
            DETofP=0x2001003ffe3ff805e805a98f9df15e2d
            Endorsement(136 bytes): 64605cc06642e1c02001003ffe3ff8059b
                0e2860eb0bacde65f26bc01b89398f787c4785e4e7f6e01f299313
                7759995d7baa72791a44ac5d2001003ffe3ff805e805a98f9df15e
                2d72e53262d8b49452bfd6324daf2193fce47bbbce37bce0391542
                bde64a156ab0942fa1ad340ecabf1e49eecf3818b25322955ef71d
                ffc7b786c5c48a6a84c003

        UA DET in 16376.16376
            DET: 2001003ffe3ff805a93e53b72709e0ba
            DET: 2001:003f:fe3f:f805:a93e:53b7:2709:e0ba
            Raw HI:  bf0453a01120ed8e651ae9f6951a8278
                     3da820296a338effd54a0ba846a99875
            vnb="05/14/2023"
            vna="05/21/2023"
            DETofP=0x2001003ffe3ff8059b0e2860eb0bacde
            Endorsement(136 bytes): 64605cc0646997402001003ffe3ff805a9
                3e53b72709e0babf0453a01120ed8e651ae9f6951a82783da82029
                6a338effd54a0ba846a998752001003ffe3ff8059b0e2860eb0bac
                de903ad90789c07f948737280159a071449caed275c91cb73d782d
                904a20492d12e27eb0f40c6098e70c5e5e382a3b43d9cac4994b4a
                e82758665d62346fd80d00



                         Figure 4: Test DKI values

A.1.  Test DNS

   The DNS tree(s) for the above test data is still in limbo and will be
   added in a later version of this draft.  But some of the RR for these
   DETs are available below:









Moskowitz & Card         Expires 9 December 2023               [Page 21]

Internet-Draft                  DRIP DKI                       June 2023


   Apex
       Authorizing DET  (HID=0|0)
           IN  TLSA 3 1 0 ( 302a300506032b6570032100d60268e6cf64ad693e5b
                b055d7c6e48c7ed07013609e6ed02bb935b3d6acf53e )
           IN  IN  HIP ( 5  2001003ffe000005f970a4d7fd0e14a5
                   1gJo5s9krWk+W7BV18bkjH7QcBNgnm7QK7k1s9as9T4= )
           IN  CERT 254 0 0 ( DAYKKwYBBAG0OwIGBmRPOUBmWpzAIAEAMAAAAAUq65
                 rcHOix7NYCaObPZK1pPluwVdfG5Ix+0HATYJ5u0Cu5NbPWrPU+IAEAM
                 AAAAAUq65rcHOix7BcAitG8mCxs2MlVse9iHvgO5cJpqj28/TS1hR
                 YrGdOdrX17p4rrDoS8TdjvwiRt0wg0seXQ0iDngVr5IaVg/A0= )

   rra16376
       Authorizing DET  (HID=16376|0)
           IN  TLSA 3 1 0 ( 302a300506032b6570032100efcd5ca4427d87d9642c
                   76ebf48776df567cf2a9e5e513cb50b966ce54162fa0 )
           IN  IN  HIP ( 5  2001003ffe000005f970a4d7fd0e14a5
                   335kzBv9y2WDVDeze2EQ1W/tuBRD9Y1T34CU4OKCjSM= )
           IN  CERT 254 0 0 ( DAYKKwYBBAG0OwIGBmRXIkBmTBxAIAEAP/4AAAX5cK
                 TX/Q4Upd9+ZMwb/ctlg1Q3s3thENVv7bgUQ/WNU9+AlODigo0jIAEAM
                 AAAAAUq65rcHOix7Oos3xkz+5OELLLE6En9o2N0k8nu2/4IF4/Vxy
                 k8G0asvZpsDHQKKX/9qQO1O7NOh3nug5fUnmIWtRrH6HFhIAw= )

       Issuing DET  (HID=16376|0)
           IN  TLSA 3 1 0 ( 302a300506032b6570032100b81b0180631ce60c14d1
                   4ab80a69c2147305836bf80b3b10284d36bae750265c )
           IN  IN  HIP ( 5  2001003ffe000005191f150daf98f382
                   uBsBgGMc5gwU0Uq4CmnCFHMFg2v4CzsQKE02uudQJlw= )
           IN  CERT 254 0 0 ( DAYKKwYBBAG0OwIGBmRXIkBmTBxAIAEAP/4AAAUZHx
                 UNr5jzgrgbAYBjHOYMFNFKuAppwhRzBYNr+As7EChNNrrnUCZcIAEAM
                 AA/+AXYCgpi0wYolMHS1sjgFl2mMYqBMKbrUUmDDJcXu62Yvk/eq+
                 wxGV351sQTGdR3yvzr8Z76omlKvAX0Rgy7rt/uYX+0RkZSOAc= )

   hda16376-16376
       Authorizing DET  (HID=16376|16376)
           IN  TLSA 3 1 0 ( 302a300506032b6570032100b82b27f86b013468fe48
                   d85b54f01bf65385f302ab2e136dc51a3b929c88ce5a )
           IN  HIP ( 5  2001003ffe3ff805e805a98f9df15e2d
                   uCsn+GsBNGj+SNhbVPAb9lOF8wKrLhNtxRo7kpyIzlo= )
           IN  CERT 254 0 0 ( DAYKKwYBBAG0OwIGBmRgXMBmQuHAIAEAP/4/+AXoBa
                    mPnfFeLbgrJ/hrATRo/kjYW1TwG/ZThfMCqy4TbcUaO5KciM5aIA
                    EAP/4AAAX5cKTX/Q4UpYcZ8SaHQTV9yscZCjN/KwqfqJXc/h3M4R
                    Hz366TSNShUany3nQG3bF+FR1vRQqOEbXIYdTID/PcgZaUiGezJw
                    w= )

       Issuing DET  (HID=16376|16376)
           IN  TLSA 3 1 0 ( 302a300506032b657003210065f26bc01b89398f787c
                    4785e4e7f6e01f2993137759995d7baa72791a44ac5d )
           IN  HIP ( 5  2001003ffe3ff8059b0e2860eb0bacde



Moskowitz & Card         Expires 9 December 2023               [Page 22]

Internet-Draft                  DRIP DKI                       June 2023


                   ZfJrwBuJOY94fEeF5Of24B8pkxN3WZlde6pyeRpErF0= )
           IN  CERT 254 0 0 ( DAYKKwYBBAG0OwIGBmRgXMBmQuHAIAEAP/4/+AWbDi
                    hg6wus3mXya8AbiTmPeHxHheTn9uAfKZMTd1mZXXuqcnkaRKxdIA
                    EAP/4/+AXoBamPnfFeLXLlMmLYtJRSv9YyTa8hk/zke7vON7zgOR
                    VCveZKFWqwlC+hrTQOyr8eSe7POBiyUyKVXvcd/8e3hsXEimqEwA
                    M= )

       UA DET in 16376.16376
           IN  TLSA 3 1 0 ( 302a300506032b6570032100bf0453a01120ed8e651a
                    e9f6951a82783da820296a338effd54a0ba846a99875 )
           IN  HIP ( 5  2001003ffe3ff805a93e53b72709e0ba
                   vwRToBEg7Y5lGun2lRqCeD2oIClqM47/1UoLqEapmHU= )
           IN  CERT 254 0 0 ( DAYKKwYBBAG0OwIGBmRgXMBkaZdAIAEAP/4/+AWpPl
                    O3Jwngur8EU6ARIO2OZRrp9pUagng9qCApajOO/9VKC6hGqZh1IA
                    EAP/4/+AWbDihg6wus3pA62QeJwH+UhzcoAVmgcUScrtJ1yRy3PX
                    gtkEogSS0S4n6w9AxgmOcMXl44KjtD2crEmUtK6CdYZl1iNG/YDQ
                    A= )



                         Figure 5: Test DNS Records

Appendix B.  Test X.509 certificates

B.1.  Test Lite X.509 certificates

   The following the test DRIP X.509 certificates that mirror the test
   Endorsements.























Moskowitz & Card         Expires 9 December 2023               [Page 23]

Internet-Draft                  DRIP DKI                       June 2023


      apex.cert.pem (der is 233 bytes)

      -----BEGIN CERTIFICATE-----
      MIHmMIGZoAMCAQICAX0wBQYDK2VwMBsxGTAXBgNVBAMMEDIwMDEwMDMwMDAwMDAw
      MDUwHhcNMjMwNTAxMDAwMDAwWhcNMjQwNjAxMDAwMDAwWjAbMRkwFwYDVQQDDBAy
      MDAxMDAzMDAwMDAwMDA1MCowBQYDK2VwAyEA1gJo5s9krWk+W7BV18bkjH7QcBNg
      nm7QK7k1s9as9T6jAjAAMAUGAytlcANBACPlOBP4moEXJ71aX5K/U73RL07f20Av
      1XFK2Vsl3GKDVJ5AQPar68i+o3JGHXdvAUaI7WucxuMBy/akgicsrAA=
      -----END CERTIFICATE-----

      Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 125 (0x7d)
            Signature Algorithm: ED25519
            Issuer: CN = 2001003000000005
            Validity
                Not Before: May  1 00:00:00 2023 GMT
                Not After : Jun  1 00:00:00 2024 GMT
            Subject: CN = 2001003000000005
            Subject Public Key Info:
                Public Key Algorithm: ED25519
                    ED25519 Public-Key:
                    pub:
                        d6:02:68:e6:cf:64:ad:69:3e:5b:b0:55:d7:c6:e4:
                        8c:7e:d0:70:13:60:9e:6e:d0:2b:b9:35:b3:d6:ac:
                        f5:3e
        Signature Algorithm: ED25519
        Signature Value:
            23:e5:38:13:f8:9a:81:17:27:bd:5a:5f:92:bf:53:bd:d1:2f:
            4e:df:db:40:2f:d5:71:4a:d9:5b:25:dc:62:83:54:9e:40:40:
            f6:ab:eb:c8:be:a3:72:46:1d:77:6f:01:46:88:ed:6b:9c:c6:
            e3:01:cb:f6:a4:82:27:2c:ac:00


                 Figure 6: DRIP Apex Lite X.509 certificate















Moskowitz & Card         Expires 9 December 2023               [Page 24]

Internet-Draft                  DRIP DKI                       June 2023


      rra16376.cert.pem (der is 233 bytes)

      -----BEGIN CERTIFICATE-----
      MIHmMIGZoAMCAQICAQowBQYDK2VwMBsxGTAXBgNVBAMMEDIwMDEwMDMwMDAwMDAw
      MDUwHhcNMjMwNTE1MDAwMDAwWhcNMjQwNTI0MDAwMDAwWjAbMRkwFwYDVQQDDBAy
      MDAxMDAzZmZlMDAwMDA1MCowBQYDK2VwAyEA335kzBv9y2WDVDeze2EQ1W/tuBRD
      9Y1T34CU4OKCjSOjAjAAMAUGAytlcANBAP2wkuzxmUj18bodQCs2PyZf+zGYGTfq
      QGp6bE85jKymT/w3Di94fDJwuEW03gaWM8fwbWTND2DjFfYru3Vd+w4=
      -----END CERTIFICATE-----

      Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 10 (0xa)
            Signature Algorithm: ED25519
            Issuer: CN = 2001003000000005
            Validity
                Not Before: May 15 00:00:00 2023 GMT
                Not After : May 24 00:00:00 2024 GMT
            Subject: CN = 2001003ffe000005
            Subject Public Key Info:
                Public Key Algorithm: ED25519
                    ED25519 Public-Key:
                    pub:
                        df:7e:64:cc:1b:fd:cb:65:83:54:37:b3:7b:61:10:
                        d5:6f:ed:b8:14:43:f5:8d:53:df:80:94:e0:e2:82:
                        8d:23
        Signature Algorithm: ED25519
        Signature Value:
            fd:b0:92:ec:f1:99:48:f5:f1:ba:1d:40:2b:36:3f:26:5f:fb:
            31:98:19:37:ea:40:6a:7a:6c:4f:39:8c:ac:a6:4f:fc:37:0e:
            2f:78:7c:32:70:b8:45:b4:de:06:96:33:c7:f0:6d:64:cd:0f:
            60:e3:15:f6:2b:bb:75:5d:fb:0e


              Figure 7: DRIP RAA 16376 Lite X.509 certificate















Moskowitz & Card         Expires 9 December 2023               [Page 25]

Internet-Draft                  DRIP DKI                       June 2023


      Authentication hda16376-16376.cert.pem (der is 234 bytes)

      -----BEGIN CERTIFICATE-----
      MIHnMIGaoAMCAQICAgDxMAUGAytlcDAbMRkwFwYDVQQDDBAyMDAxMDAzZmZlMDAw
      MDA1MB4XDTIzMDUyMTAwMDAwMFoXDTI0MDUyMTAwMDAwMFowGzEZMBcGA1UEAwwQ
      MjAwMTAwM2ZmZTNmZjgwNTAqMAUGAytlcAMhAOj22R99U1FIVHFCCpx9XfGAx6Md
      uGzJN1ge6BBvGOTrowIwADAFBgMrZXADQQA1tx7/4AWWsW3NdmWgWVDiShJF96kn
      pw7CVU2vsYuXnXuLE/qIAluUEW+lnjGFAE9HjIgGks1He/uZekxCD9kI
      -----END CERTIFICATE-----

      Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 241 (0xf1)
            Signature Algorithm: ED25519
            Issuer: CN = 2001003ffe000005
            Validity
                Not Before: May 21 00:00:00 2023 GMT
                Not After : May 21 00:00:00 2024 GMT
            Subject: CN = 2001003ffe3ff805
            Subject Public Key Info:
                Public Key Algorithm: ED25519
                    ED25519 Public-Key:
                    pub:
                        e8:f6:d9:1f:7d:53:51:48:54:71:42:0a:9c:7d:5d:
                        f1:80:c7:a3:1d:b8:6c:c9:37:58:1e:e8:10:6f:18:
                        e4:eb
        Signature Algorithm: ED25519
        Signature Value:
            35:b7:1e:ff:e0:05:96:b1:6d:cd:76:65:a0:59:50:e2:4a:12:
            45:f7:a9:27:a7:0e:c2:55:4d:af:b1:8b:97:9d:7b:8b:13:fa:
            88:02:5b:94:11:6f:a5:9e:31:85:00:4f:47:8c:88:06:92:cd:
            47:7b:fb:99:7a:4c:42:0f:d9:08


    Figure 8: DRIP HDA 16376-16376 Authentication LiteX.509 certificate















Moskowitz & Card         Expires 9 December 2023               [Page 26]

Internet-Draft                  DRIP DKI                       June 2023


      Issuing hda16376-16376.cert.pem (der is 234 bytes)

      -----BEGIN CERTIFICATE-----
      MIHnMIGaoAMCAQICAWMwBQYDK2VwMBsxGTAXBgNVBAMMEDIwMDEwMDNmZmUzZmY4
      MDUwHhcNMjMwNTE0MDAwMDAwWhcNMjQwNTE0MDAwMDAwWjAcMRowGAYDVQQDDBEy
      MDAxMDAzZmZlM2ZmODA1STAqMAUGAytlcAMhAGXya8AbiTmPeHxHheTn9uAfKZMT
      d1mZXXuqcnkaRKxdowIwADAFBgMrZXADQQC59+Elr3gZjarg2Gjf7DFgkMvvwrBR
      y8j+1b5lm+V4GiWoPW24hWlO9oHmv5wMiyGuuE7w4Lmoka/AA2haQIEO
      -----END CERTIFICATE-----

      Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 99 (0x63)
            Signature Algorithm: ED25519
            Issuer: CN = 2001003ffe3ff805
            Validity
                Not Before: May 14 00:00:00 2023 GMT
                Not After : May 14 00:00:00 2024 GMT
            Subject: CN = 2001003ffe3ff805I
            Subject Public Key Info:
                Public Key Algorithm: ED25519
                    ED25519 Public-Key:
                    pub:
                        65:f2:6b:c0:1b:89:39:8f:78:7c:47:85:e4:e7:f6:
                        e0:1f:29:93:13:77:59:99:5d:7b:aa:72:79:1a:44:
                        ac:5d
        Signature Algorithm: ED25519
        Signature Value:
            b9:f7:e1:25:af:78:19:8d:aa:e0:d8:68:df:ec:31:60:90:cb:
            ef:c2:b0:51:cb:c8:fe:d5:be:65:9b:e5:78:1a:25:a8:3d:6d:
            b8:85:69:4e:f6:81:e6:bf:9c:0c:8b:21:ae:b8:4e:f0:e0:b9:
            a8:91:af:c0:03:68:5a:40:81:0e



       Figure 9: DRIP HDA 16376-16376 Issuing Lite X.509 certificate

     UA1-16376-16376 CSR

       Data:
           Version: 1 (0x0)
           Subject:
           Subject Public Key Info:
               Public Key Algorithm: ED25519
                   ED25519 Public-Key:
                   pub:
                       bf:04:53:a0:11:20:ed:8e:65:1a:e9:f6:95:1a:82:



Moskowitz & Card         Expires 9 December 2023               [Page 27]

Internet-Draft                  DRIP DKI                       June 2023


                       78:3d:a8:20:29:6a:33:8e:ff:d5:4a:0b:a8:46:a9:
                       98:75
           Attributes:
               Requested Extensions:
                   X509v3 Subject Alternative Name: critical
                       IP Address:2001:3F:FE3F:F805:A93E:53B7:2709:E0BA
       Signature Algorithm: ED25519
       Signature Value:
           e5:36:03:fa:3c:7b:c7:a8:03:4e:6e:37:37:de:79:7d:c3:d4:
           01:43:a4:62:4d:91:ec:e5:20:0e:7f:6e:2f:f2:44:02:3a:b8:
           b8:3f:1f:60:a8:e9:02:40:cc:e0:73:70:1c:2c:c5:1a:12:21:
           ff:a8:f8:d0:07:a8:47:29:fd:05

     UA1-16376-16376.cert.pem (der is 240 bytes)

     -----BEGIN CERTIFICATE-----
     MIHtMIGgoAMCAQICAgCtMAUGAytlcDAcMRowGAYDVQQDDBEyMDAxMDAzZmZlM2Zm
     ODA1STAeFw0yMzA1MjEwMDAwMDBaFw0yMzA1MjQwMDAwMDBaMAAwKjAFBgMrZXAD
     IQC/BFOgESDtjmUa6faVGoJ4PaggKWozjv/VSguoRqmYdaMiMCAwHgYDVR0RAQH/
     BBQwEocQIAEAP/4/+AWpPlO3JwngujAFBgMrZXADQQBK8rkblSDYvfLxsT34THDh
     ZBJTyEvtahfsTA1fY1bkMai8obOW5Gsn3tAad+BF1kyZUxR0tRl0Mwb+ZXZlsC8C
     -----END CERTIFICATE-----

   Certificate:
       Data:
           Version: 3 (0x2)
           Serial Number: 173 (0xad)
           Signature Algorithm: ED25519
           Issuer: CN = 2001003ffe3ff805I
           Validity
               Not Before: May 21 00:00:00 2023 GMT
               Not After : May 24 00:00:00 2023 GMT
           Subject:
           Subject Public Key Info:
               Public Key Algorithm: ED25519
                   ED25519 Public-Key:
                   pub:
                       bf:04:53:a0:11:20:ed:8e:65:1a:e9:f6:95:1a:82:
                       78:3d:a8:20:29:6a:33:8e:ff:d5:4a:0b:a8:46:a9:
                       98:75
           X509v3 extensions:
               X509v3 Subject Alternative Name: critical
                   IP Address:2001:3F:FE3F:F805:A93E:53B7:2709:E0BA
       Signature Algorithm: ED25519
       Signature Value:
           4a:f2:b9:1b:95:20:d8:bd:f2:f1:b1:3d:f8:4c:70:e1:64:12:
           53:c8:4b:ed:6a:17:ec:4c:0d:5f:63:56:e4:31:a8:bc:a1:b3:
           96:e4:6b:27:de:d0:1a:77:e0:45:d6:4c:99:53:14:74:b5:19:



Moskowitz & Card         Expires 9 December 2023               [Page 28]

Internet-Draft                  DRIP DKI                       June 2023


           74:33:06:fe:65:76:65:b0:2f:02



        Figure 10: DRIP UA in HDA 16376-16376 Lite X.509 certificate

B.1.1.  openSSL Lite config file

   The following openssl-conf file was used to create the above Lite,
   certificates.  It is dependent on a number of environment variables
   to make each unique certificate.  The conf file is a bit of a hack of
   multiple conf files and some sections are really not used.  It is
   included here as a guide.

    # OpenSSL root CA configuration file.
    # Copy to `$dir/openssl-lite.cnf`.

    [ ca ]
    # `man ca`
    default_ca = CA_default

    [ CA_default ]
    # Directory and file locations.
    dir               = $ENV::dir
    cadir             = $ENV::cadir
    format            = $ENV::format
    signcert          = $ENV::signcert
    #certkeyusage      = $ENV::certkeyusage
    #certextkeyusage   = $ENV::certextkeyusage
    #basicConstraints  = $ENV::basicConstraints

    certs             = $dir/certs
    crl_dir           = $dir/crl
    new_certs_dir     = $dir/newcerts
    database          = $dir/index.txt
    serial            = $dir/serial
    RANDFILE          = $dir/private/.rand

    # The signing key and signing certificate.
    private_key       = $cadir/private/$signcert.key.$format
    certificate       = $cadir/certs/$signcert.cert.$format

    # SHA-1 is deprecated, so use SHA-2 instead.
    default_md        = sha256

    name_opt          = ca_default
    cert_opt          = ca_default
    default_startdate = $ENV::startdate



Moskowitz & Card         Expires 9 December 2023               [Page 29]

Internet-Draft                  DRIP DKI                       June 2023


    default_enddate   = $ENV::enddate
    preserve          = no
    policy            = policy_loose
    copy_extensions   = copy

    [ policy_loose ]
    # Allow the intermediate CA to sign a more
    #   diverse range of certificates.
    # See the POLICY FORMAT section of the `ca` man page.
    countryName             = optional
    stateOrProvinceName     = optional
    localityName            = optional
    organizationName        = optional
    organizationalUnitName  = optional
    commonName              = optional

    [ req ]
    # Options for the `req` tool (`man req`).
    distinguished_name  = req_distinguished_name
    string_mask         = utf8only
    req_extensions      = req_ext
    default_crl_days  = 30

    # SHA-1 is deprecated, so use SHA-2 instead.
    default_md          = sha256

    # Extension to add when the -x509 option is used.
    x509_extensions     = v3_ca

    [ req_distinguished_name ]
    # See <https://en.wikipedia.org/wiki/Certificate_signing_request>.
    #countryName                     = Country Name (2 letter code)
    #stateOrProvinceName             = State or Province Name
    #localityName                    = Locality Name
    #0.organizationName              = Organization Name
    #organizationalUnitName          = Organizational Unit Name
    commonName                      = Common Name

    [ req_ext ]
    #basicConstraints = $ENV::basicConstraints
    #keyUsage = $ENV::certkeyusage

    [ v3_ca ]
    # Extensions for a typical CA (`man x509v3_config`).
    subjectKeyIdentifier = none
    #subjectKeyIdentifier = $ENV::DET
    authorityKeyIdentifier = none
    #authorityKeyIdentifier = keyid:always



Moskowitz & Card         Expires 9 December 2023               [Page 30]

Internet-Draft                  DRIP DKI                       June 2023


    #basicConstraints = $ENV::basicConstraints
    #keyUsage = $ENV::certkeyusage

    [ usr_cert ]
    # Extensions for client certificates (`man x509v3_config`).
    #basicConstraints = $ENV::basicConstraints
    subjectKeyIdentifier = none
    authorityKeyIdentifier = none
    #authorityKeyIdentifier = keyid:always
    #keyUsage = $ENV::certkeyusage
    #extendedKeyUsage = $ENV::certextkeyusage

    [ usr_req ]
    # Extensions for client certificates (`man x509v3_config`).
    subjectAltName = critical, $ENV::subjectAltName



    Figure 11: openSSL config file used for DRIP Lite X.509 certificates

B.2.  Test PKIX-like X.509 certificates

   The following the test DRIP X.509 certificates that mirror the test
   Endorsements.



























Moskowitz & Card         Expires 9 December 2023               [Page 31]

Internet-Draft                  DRIP DKI                       June 2023


      apex.cert.pem (der is 330 bytes)

      -----BEGIN CERTIFICATE-----
      MIIBRjCB+aADAgECAggzPdwRd/ptzzAFBgMrZXAwGzEZMBcGA1UEAwwQMjAwMTAw
      MzAwMDAwMDAwNTAeFw0yMzA1MDEwMDAwMDBaFw0yNDA2MDEwMDAwMDBaMBsxGTAX
      BgNVBAMMEDIwMDEwMDMwMDAwMDAwMDUwKjAFBgMrZXADIQDWAmjmz2StaT5bsFXX
      xuSMftBwE2CebtAruTWz1qz1PqNbMFkwGQYDVR0OBBIEECABADAAAAAFKuua3Bzo
      sewwGwYDVR0jBBQwEoAQIAEAMAAAAAUq65rcHOix7DAPBgNVHRMBAf8EBTADAQH/
      MA4GA1UdDwEB/wQEAwICBDAFBgMrZXADQQAiAqSpT++evXthhHp6VKtkGzAx60ih
      zEBxR/rgy6KXfb/N4JeK1u7qE37VgDASy9w90fpCSdUVpLqGNSr/f8wI
      -----END CERTIFICATE-----

      Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 3692349237099130319 (0x333ddc1177fa6dcf)
            Signature Algorithm: ED25519
            Issuer: CN = 2001003000000005
            Validity
                Not Before: May  1 00:00:00 2023 GMT
                Not After : Jun  1 00:00:00 2024 GMT
            Subject: CN = 2001003000000005
            Subject Public Key Info:
                Public Key Algorithm: ED25519
                    ED25519 Public-Key:
                    pub:
                        d6:02:68:e6:cf:64:ad:69:3e:5b:b0:55:d7:c6:e4:
                        8c:7e:d0:70:13:60:9e:6e:d0:2b:b9:35:b3:d6:ac:
                        f5:3e
            X509v3 extensions:
                X509v3 Subject Key Identifier:
                    20:01:00:30:00:00:00:05:2A:EB:9A:DC:1C:E8:B1:EC
                X509v3 Authority Key Identifier:
                    20:01:00:30:00:00:00:05:2A:EB:9A:DC:1C:E8:B1:EC
                X509v3 Basic Constraints: critical
                    CA:TRUE
                X509v3 Key Usage: critical
                    Certificate Sign
        Signature Algorithm: ED25519
        Signature Value:
            22:02:a4:a9:4f:ef:9e:bd:7b:61:84:7a:7a:54:ab:64:1b:30:
            31:eb:48:a1:cc:40:71:47:fa:e0:cb:a2:97:7d:bf:cd:e0:97:
            8a:d6:ee:ea:13:7e:d5:80:30:12:cb:dc:3d:d1:fa:42:49:d5:
            15:a4:ba:86:35:2a:ff:7f:cc:08



                   Figure 12: DRIP Apex X.509 certificate



Moskowitz & Card         Expires 9 December 2023               [Page 32]

Internet-Draft                  DRIP DKI                       June 2023


      rra16376.cert.pem (der is 330 bytes)

      -----BEGIN CERTIFICATE-----
      MIIBRjCB+aADAgECAghyVk2/k0Y2bjAFBgMrZXAwGzEZMBcGA1UEAwwQMjAwMTAw
      MzAwMDAwMDAwNTAeFw0yMzA1MTUwMDAwMDBaFw0yNDA1MjQwMDAwMDBaMBsxGTAX
      BgNVBAMMEDIwMDEwMDNmZmUwMDAwMDUwKjAFBgMrZXADIQDffmTMG/3LZYNUN7N7
      YRDVb+24FEP1jVPfgJTg4oKNI6NbMFkwGQYDVR0OBBIEECABAD/+AAAF+XCk1/0O
      FKUwGwYDVR0jBBQwEoAQIAEAMAAAAAUq65rcHOix7DAPBgNVHRMBAf8EBTADAQH/
      MA4GA1UdDwEB/wQEAwICBDAFBgMrZXADQQAr7eSKr5hT7z0S2minSBThyMMYrec+
      4iO29ispsh+zzsKL2hHfANPnrGklUH8/f9ZW+9R+i5SYMbHMJ2YI2SgI
      -----END CERTIFICATE-----

      Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 8238858053525845614 (0x72564dbf9346366e)
            Signature Algorithm: ED25519
            Issuer: CN = 2001003000000005
            Validity
                Not Before: May 15 00:00:00 2023 GMT
                Not After : May 24 00:00:00 2024 GMT
            Subject: CN = 2001003ffe000005
            Subject Public Key Info:
                Public Key Algorithm: ED25519
                    ED25519 Public-Key:
                    pub:
                        df:7e:64:cc:1b:fd:cb:65:83:54:37:b3:7b:61:10:
                        d5:6f:ed:b8:14:43:f5:8d:53:df:80:94:e0:e2:82:
                        8d:23
            X509v3 extensions:
                X509v3 Subject Key Identifier:
                    20:01:00:3F:FE:00:00:05:F9:70:A4:D7:FD:0E:14:A5
                X509v3 Authority Key Identifier:
                    20:01:00:30:00:00:00:05:2A:EB:9A:DC:1C:E8:B1:EC
                X509v3 Basic Constraints: critical
                    CA:TRUE
                X509v3 Key Usage: critical
                    Certificate Sign
        Signature Algorithm: ED25519
        Signature Value:
            2b:ed:e4:8a:af:98:53:ef:3d:12:da:68:a7:48:14:e1:c8:c3:
            18:ad:e7:3e:e2:23:b6:f6:2b:29:b2:1f:b3:ce:c2:8b:da:11:
            df:00:d3:e7:ac:69:25:50:7f:3f:7f:d6:56:fb:d4:7e:8b:94:
            98:31:b1:cc:27:66:08:d9:28:08



                Figure 13: DRIP RAA 16376 X.509 certificate



Moskowitz & Card         Expires 9 December 2023               [Page 33]

Internet-Draft                  DRIP DKI                       June 2023


      Authentication hda16376-16376.cert.pem (der is 331 bytes)

      -----BEGIN CERTIFICATE-----
      MIIBRzCB+qADAgECAgkAlImqzX0LPyEwBQYDK2VwMBsxGTAXBgNVBAMMEDIwMDEw
      MDNmZmUwMDAwMDUwHhcNMjMwNTIxMDAwMDAwWhcNMjQwNTIxMDAwMDAwWjAbMRkw
      FwYDVQQDDBAyMDAxMDAzZmZlM2ZmODA1MCowBQYDK2VwAyEA6PbZH31TUUhUcUIK
      nH1d8YDHox24bMk3WB7oEG8Y5OujWzBZMBkGA1UdDgQSBBAgAQA//j/4BegFqY+d
      8V4tMBsGA1UdIwQUMBKAECABAD/+AAAF+XCk1/0OFKUwDwYDVR0TAQH/BAUwAwEB
      /zAOBgNVHQ8BAf8EBAMCAgQwBQYDK2VwA0EAXQgei1JdjZLLQCxnjGix4ELvnri6
      dtMzz86qtFeUKo6+VOuDJGqg0MMvTgdG9WF4TYosDUec3OUQz1FlzP2/DQ==
      -----END CERTIFICATE-----

      Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
                94:89:aa:cd:7d:0b:3f:21
            Signature Algorithm: ED25519
            Issuer: CN = 2001003ffe000005
            Validity
                Not Before: May 21 00:00:00 2023 GMT
                Not After : May 21 00:00:00 2024 GMT
            Subject: CN = 2001003ffe3ff805
            Subject Public Key Info:
                Public Key Algorithm: ED25519
                    ED25519 Public-Key:
                    pub:
                        e8:f6:d9:1f:7d:53:51:48:54:71:42:0a:9c:7d:5d:
                        f1:80:c7:a3:1d:b8:6c:c9:37:58:1e:e8:10:6f:18:
                        e4:eb
            X509v3 extensions:
                X509v3 Subject Key Identifier:
                    20:01:00:3F:FE:3F:F8:05:E8:05:A9:8F:9D:F1:5E:2D
                X509v3 Authority Key Identifier:
                    20:01:00:3F:FE:00:00:05:F9:70:A4:D7:FD:0E:14:A5
                X509v3 Basic Constraints: critical
                    CA:TRUE
                X509v3 Key Usage: critical
                    Certificate Sign
        Signature Algorithm: ED25519
        Signature Value:
            5d:08:1e:8b:52:5d:8d:92:cb:40:2c:67:8c:68:b1:e0:42:ef:
            9e:b8:ba:76:d3:33:cf:ce:aa:b4:57:94:2a:8e:be:54:eb:83:
            24:6a:a0:d0:c3:2f:4e:07:46:f5:61:78:4d:8a:2c:0d:47:9c:
            dc:e5:10:cf:51:65:cc:fd:bf:0d


      Figure 14: DRIP HDA 16376-16376 Authentication X.509 certificate



Moskowitz & Card         Expires 9 December 2023               [Page 34]

Internet-Draft                  DRIP DKI                       June 2023


      Issuing hda16376-16376.cert.pem (der is 332 bytes)

      -----BEGIN CERTIFICATE-----
      MIIBRzCB+qADAgECAghbw3waCpcpHDAFBgMrZXAwGzEZMBcGA1UEAwwQMjAwMTAw
      M2ZmZTNmZjgwNTAeFw0yMzA1MTQwMDAwMDBaFw0yNDA1MTQwMDAwMDBaMBwxGjAY
      BgNVBAMMETIwMDEwMDNmZmUzZmY4MDVTMCowBQYDK2VwAyEAZfJrwBuJOY94fEeF
      5Of24B8pkxN3WZlde6pyeRpErF2jWzBZMBkGA1UdDgQSBBAgAQA//j/4BZsOKGDr
      C6zeMBsGA1UdIwQUMBKAECABAD/+P/gF6AWpj53xXi0wDwYDVR0TAQH/BAUwAwEB
      /zAOBgNVHQ8BAf8EBAMCAgQwBQYDK2VwA0EANlBTehdCwErnTOu2JQq58WBUuuFt
      CQYS16STIs1Kzlb96/33VmaQ6spp4wLV49BoGvOowktjiPheZRkz4HRyAw==
      -----END CERTIFICATE-----

      Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 6612265129198692636 (0x5bc37c1a0a97291c)
            Signature Algorithm: ED25519
            Issuer: CN = 2001003ffe3ff805
            Validity
                Not Before: May 14 00:00:00 2023 GMT
                Not After : May 14 00:00:00 2024 GMT
            Subject: CN = 2001003ffe3ff805S
            Subject Public Key Info:
                Public Key Algorithm: ED25519
                    ED25519 Public-Key:
                    pub:
                        65:f2:6b:c0:1b:89:39:8f:78:7c:47:85:e4:e7:f6:
                        e0:1f:29:93:13:77:59:99:5d:7b:aa:72:79:1a:44:
                        ac:5d
            X509v3 extensions:
                X509v3 Subject Key Identifier:
                    20:01:00:3F:FE:3F:F8:05:9B:0E:28:60:EB:0B:AC:DE
                X509v3 Authority Key Identifier:
                    20:01:00:3F:FE:3F:F8:05:E8:05:A9:8F:9D:F1:5E:2D
                X509v3 Basic Constraints: critical
                    CA:TRUE
                X509v3 Key Usage: critical
                    Certificate Sign
        Signature Algorithm: ED25519
        Signature Value:
            36:50:53:7a:17:42:c0:4a:e7:4c:eb:b6:25:0a:b9:f1:60:54:
            ba:e1:6d:09:06:12:d7:a4:93:22:cd:4a:ce:56:fd:eb:fd:f7:
            56:66:90:ea:ca:69:e3:02:d5:e3:d0:68:1a:f3:a8:c2:4b:63:
            88:f8:5e:65:19:33:e0:74:72:03


         Figure 15: DRIP HDA 16376-16376 Issuing X.509 certificate




Moskowitz & Card         Expires 9 December 2023               [Page 35]

Internet-Draft                  DRIP DKI                       June 2023


     UA1-16376-16376 CSR

       Data:
           Version: 1 (0x0)
           Subject: CN = 2001003ffe3ff805a93e53b72709e0ba
           Subject Public Key Info:
               Public Key Algorithm: ED25519
                   ED25519 Public-Key:
                   pub:
                       bf:04:53:a0:11:20:ed:8e:65:1a:e9:f6:95:1a:82:
                       78:3d:a8:20:29:6a:33:8e:ff:d5:4a:0b:a8:46:a9:
                       98:75
           Attributes:
               Requested Extensions:
                   X509v3 Basic Constraints:
                       CA:FALSE
                   X509v3 Subject Key Identifier:
                       20:01:00:3F:FE:3F:F8:05:A9:3E:53:B7:27:09:E0:BA
                   X509v3 Key Usage: critical
                       Digital Signature, Non Repudiation, Key Agreement
                   X509v3 Extended Key Usage:
                       TLS Web Client Authentication, E-mail Protection
       Signature Algorithm: ED25519
       Signature Value:
           fd:0f:f8:e2:7f:d4:08:47:c7:c9:3b:bd:e2:32:7b:e4:fb:7a:
           79:09:21:6d:0a:5a:ff:3d:ab:30:a6:36:b9:68:2a:e9:25:f6:
           dd:b8:f8:5b:dc:a8:8b:f1:35:79:64:3e:8c:33:f8:9d:0f:3f:
           37:07:d3:03:86:5d:55:84:b3:0a

     UA1-16376-16376.cert.pem (der is 373 bytes)

     -----BEGIN CERTIFICATE-----
     MIIBcTCCASOgAwIBAgIIe2BV2lAVh5gwBQYDK2VwMBwxGjAYBgNVBAMMETIwMDEw
     MDNmZmUzZmY4MDVFMB4XDTIzMDUyMTAwMDAwMFoXDTIzMDUyNDAwMDAwMFowKzEp
     MCcGA1UEAwwgMjAwMTAwM2ZmZTNmZjgwNWE5M2U1M2I3MjcwOWUwYmEwKjAFBgMr
     ZXADIQC/BFOgESDtjmUa6faVGoJ4PaggKWozjv/VSguoRqmYdaN0MHIwCQYDVR0T
     BAIwADAZBgNVHQ4EEgQQIAEAP/4/+AWpPlO3JwngujAOBgNVHQ8BAf8EBAMCA8gw
     HQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMBsGA1UdIwQUMBKAECABAD/+
     P/gFmw4oYOsLrN4wBQYDK2VwA0EAfyMc9orrcCxOTiUfFuTCdBNr1Ve0Prc/i9DQ
     lU6J6B/n9BXsxiFb38Nh7EyEWmFia9rLxOTRUWt+o3cYPxlpBA==
     -----END CERTIFICATE-----

   Certificate:
       Data:
           Version: 3 (0x2)
           Serial Number: 8890200060564178840 (0x7b6055da50158798)
           Signature Algorithm: ED25519
           Issuer: CN = 2001003ffe3ff805E



Moskowitz & Card         Expires 9 December 2023               [Page 36]

Internet-Draft                  DRIP DKI                       June 2023


           Validity
               Not Before: May 21 00:00:00 2023 GMT
               Not After : May 24 00:00:00 2023 GMT
           Subject: CN = 2001003ffe3ff805a93e53b72709e0ba
           Subject Public Key Info:
               Public Key Algorithm: ED25519
                   ED25519 Public-Key:
                   pub:
                       bf:04:53:a0:11:20:ed:8e:65:1a:e9:f6:95:1a:82:
                       78:3d:a8:20:29:6a:33:8e:ff:d5:4a:0b:a8:46:a9:
                       98:75
           X509v3 extensions:
               X509v3 Basic Constraints:
                   CA:FALSE
               X509v3 Subject Key Identifier:
                   20:01:00:3F:FE:3F:F8:05:A9:3E:53:B7:27:09:E0:BA
               X509v3 Key Usage: critical
                   Digital Signature, Non Repudiation, Key Agreement
               X509v3 Extended Key Usage:
                   TLS Web Client Authentication, E-mail Protection
               X509v3 Authority Key Identifier:
                   20:01:00:3F:FE:3F:F8:05:9B:0E:28:60:EB:0B:AC:DE
       Signature Algorithm: ED25519
       Signature Value:
           7f:23:1c:f6:8a:eb:70:2c:4e:4e:25:1f:16:e4:c2:74:13:6b:
           d5:57:b4:3e:b7:3f:8b:d0:d0:95:4e:89:e8:1f:e7:f4:15:ec:
           c6:21:5b:df:c3:61:ec:4c:84:5a:61:62:6b:da:cb:c4:e4:d1:
           51:6b:7e:a3:77:18:3f:19:69:04



          Figure 16: DRIP UA in HDA 16376-16376 X.509 certificate

B.2.1.  openSSL config file

   The following openssl-conf file was used to create the above
   certificates.  It is dependent on a number of environment variables
   to make each unique certificate.  The conf file is a bit of a hack of
   multiple conf files and some sections are really not used.  It is
   included here as a guide.

   # OpenSSL root CA configuration file.
   # Copy to `$dir/openssl-root.cnf`.

   [ ca ]
   # `man ca`
   default_ca = CA_default




Moskowitz & Card         Expires 9 December 2023               [Page 37]

Internet-Draft                  DRIP DKI                       June 2023


   [ CA_default ]
   # Directory and file locations.
   dir               = $ENV::dir
   cadir             = $ENV::cadir
   format            = $ENV::format
   signcert          = $ENV::signcert
   certkeyusage      = $ENV::certkeyusage
   certextkeyusage   = $ENV::certextkeyusage
   basicConstraints  = $ENV::basicConstraints

   certs             = $dir/certs
   crl_dir           = $dir/crl
   new_certs_dir     = $dir/newcerts
   database          = $dir/index.txt
   serial            = $dir/serial
   RANDFILE          = $dir/private/.rand

   # The signing key and signing certificate.
   private_key       = $cadir/private/$signcert.key.$format
   certificate       = $cadir/certs/$signcert.cert.$format

   # For certificate revocation lists.
   crlnumber         = $dir/crlnumber
   crl               = $dir/crl/ca.crl.pem
   crl_extensions    = crl_ext
   default_crl_days  = 30

   # SHA-1 is deprecated, so use SHA-2 instead.
   default_md        = sha256

   name_opt          = ca_default
   cert_opt          = ca_default
   default_startdate = $ENV::startdate
   default_enddate   = $ENV::enddate
   preserve          = no
   policy            = policy_strict
   copy_extensions   = copy

   [ policy_strict ]
   # The root CA should only sign intermediate certificates that match.
   # See the POLICY FORMAT section of `man ca`.
   countryName             = optional
   stateOrProvinceName     = optional
   organizationName        = optional
   organizationalUnitName  = optional
   commonName              = optional

   [ policy_loose ]



Moskowitz & Card         Expires 9 December 2023               [Page 38]

Internet-Draft                  DRIP DKI                       June 2023


   # Allow the intermediate CA to sign a more
   #   diverse range of certificates.
   # See the POLICY FORMAT section of the `ca` man page.
   countryName             = optional
   stateOrProvinceName     = optional
   localityName            = optional
   organizationName        = optional
   organizationalUnitName  = optional
   commonName              = optional

   [ req ]
   # Options for the `req` tool (`man req`).
   distinguished_name  = req_distinguished_name
   string_mask         = utf8only
   req_extensions      = req_ext
   default_crl_days  = 30

   # SHA-1 is deprecated, so use SHA-2 instead.
   default_md          = sha256

   # Extension to add when the -x509 option is used.
   x509_extensions     = v3_ca

   [ req_distinguished_name ]
   # See <https://en.wikipedia.org/wiki/Certificate_signing_request>.
   countryName                     = Country Name (2 letter code)
   stateOrProvinceName             = State or Province Name
   localityName                    = Locality Name
   0.organizationName              = Organization Name
   organizationalUnitName          = Organizational Unit Name
   commonName                      = Common Name

   # Optionally, specify some defaults.
   # countryName_default             = US
   # stateOrProvinceName_default     = MI
   # localityName_default            = Oak Park
   # 0.organizationName_default      = HTT Consulting
   # organizationalUnitName_default  =

   [ req_ext ]
   #basicConstraints = critical, CA:true
   basicConstraints = $ENV::basicConstraints
   # keyUsage = critical, digitalSignature, cRLSign, keyCertSign
   # keyUsage = critical, cRLSign, keyCertSign
   keyUsage = $ENV::certkeyusage

   [ v3_ca ]
   # Extensions for a typical CA (`man x509v3_config`).



Moskowitz & Card         Expires 9 December 2023               [Page 39]

Internet-Draft                  DRIP DKI                       June 2023


   subjectKeyIdentifier = $ENV::DET
   #subjectKeyIdentifier = hash
   #authorityKeyIdentifier = keyid:always,issuer
   authorityKeyIdentifier = keyid:always
   basicConstraints = critical, CA:true
   # keyUsage = critical, digitalSignature, cRLSign, keyCertSign
   # keyUsage = critical, cRLSign, keyCertSign
   keyUsage = $ENV::certkeyusage
   # subjectAltName = $ENV::subjectAltName

   [ usr_cert ]
   # Extensions for client certificates (`man x509v3_config`).
   basicConstraints = $ENV::basicConstraints
   subjectKeyIdentifier = $ENV::DET
   #authorityKeyIdentifier = keyid:always
   keyUsage = $ENV::certkeyusage
   extendedKeyUsage = $ENV::certextkeyusage
   # uncomment the following if the ENV variables set
   # crlDistributionPoints = $ENV::crlDP
   # authorityInfoAccess = $ENV::ocspIAI


   [ v3_intermediate_ca ]
   # Extensions for a typical intermediate CA (`man x509v3_config`).
   subjectKeyIdentifier = hash
   authorityKeyIdentifier = keyid:always,issuer
   basicConstraints = critical, CA:true, pathlen:0
   # keyUsage = critical, digitalSignature, cRLSign, keyCertSign
   # keyUsage = critical, cRLSign, keyCertSign
   keyUsage = $ENV::certkeyusage

   [ crl_ext ]
   # Extension for CRLs (`man x509v3_config`).
   authorityKeyIdentifier=keyid:always

   [ ocsp ]
   # Extension for OCSP signing certificates (`man ocsp`).
   basicConstraints = CA:FALSE
   subjectKeyIdentifier = hash
   authorityKeyIdentifier = keyid,issuer
   # keyUsage = critical, digitalSignature
   keyUsage = $ENV::certkeyusage
   # extendedKeyUsage = critical, OCSPSigning
   extendedkeyUsage = $ENV::certextkeyusage



      Figure 17: openSSL config file used for DRIP X.509 certificates



Moskowitz & Card         Expires 9 December 2023               [Page 40]

Internet-Draft                  DRIP DKI                       June 2023


Acknowledgments

   Many people assisted in creating the python scripts for making DETs
   and DRIP Endorsements.  Any roughness in the scripts is all my doing.

   The openssl-user mailing list provided needed help in getting openssl
   command line to do what was needed to build the test PKI.

Authors' Addresses

   Robert Moskowitz
   HTT Consulting
   Oak Park, MI 48237
   United States of America
   Email: rgm@labs.htt-consult.com


   Stuart W. Card
   AX Enterprize, LLC
   4947 Commercial Drive
   Yorkville, NY 13495
   United States of America
   Email: stu.card@axenterprize.com




























Moskowitz & Card         Expires 9 December 2023               [Page 41]