Internet-Draft DRIP DKI May 2023
Moskowitz & Card Expires 24 November 2023 [Page]
Workgroup:
INTAREA
Internet-Draft:
draft-moskowitz-drip-dki-02
Published:
Intended Status:
Standards Track
Expires:
Authors:
R. Moskowitz
HTT Consulting
S. Card
AX Enterprize, LLC

The DRIP DET public Key Infrastructure

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 is a shadow PKI behind the DKI, with many of its 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 24 November 2023.

Table of Contents

1. Introduction

A DRIP Entity Tag (DET, [RFC9374]) public Key Infrastructure (DKI) is 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:

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----+|
                  |   | 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

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...).

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.

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.

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.

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

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.

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. Other RR within these levels will vary. There may be HIP, TLSA, 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. 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. 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. Further, the PKI tree mirrors that of the DKI levels (Section 3.1).

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.1. DRIP 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 =
        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 2: DRIP certificate profile

4.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.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:

  • Issuing - S
  • CRL signing - CRL

4.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.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.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.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.8. The test PKI

The 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.

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

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <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, , <https://www.rfc-editor.org/info/rfc8174>.

7.2. Informative References

[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, , <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, , <https://datatracker.ietf.org/doc/html/draft-ietf-drip-registries-09>.
[drip_scripts]
"Python scripts to generate DETs and Endorsements", , <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, , <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>.
[RFC4108]
Housley, R., "Using Cryptographic Message Syntax (CMS) to Protect Firmware Packages", RFC 4108, DOI 10.17487/RFC4108, , <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, , <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, , <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, , <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
            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
            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 3: 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:



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
                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 4: Test DNS Records

Appendix B. Test X.509 certificates

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


  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 5: DRIP Apex X.509 certificate

  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 6: DRIP RAA 16376 X.509 certificate

  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 7: DRIP HDA 16376-16376 Authentication X.509 certificate

  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 8: DRIP HDA 16376-16376 Issuing X.509 certificate


  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
        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 9: DRIP UA in HDA 16376-16376 X.509 certificate

B.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

[ 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 ]
# 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`).
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 10: openSSL config file used for DRIP X.509 certificates

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
Stuart W. Card
AX Enterprize, LLC
4947 Commercial Drive
Yorkville, NY 13495
United States of America