﻿<?xml version='1.0' encoding='utf-8'?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc iprnotified="no" ?>
<?rfc strict="no" ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" consensus="true" docName="draft-ietf-drip-dki-03"
	category="info" ipr="trust200902" obsoletes="" submissionType="IETF" tocDepth="3"
	xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" version="3">

<front> <title abbrev="DRIP DKI">The DRIP DET public Key Infrastructure</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-drip-dki-03"/>
	<author fullname="Robert Moskowitz" initials="R" surname="Moskowitz">
    <organization>HTT Consulting</organization>
    <address>
      <postal>
	    <street></street>
        <city>Oak Park</city>
        <region>MI</region>
        <code>48237</code>
        <country>USA</country>
      </postal>
      <email>rgm@labs.htt-consult.com</email>
	</address>
	</author>
	<author fullname="Stuart W. Card" initials="S." surname="Card">
	<organization>AX Enterprize, LLC</organization>
	<address>
	  <postal>
	    <street>4947 Commercial Drive</street>
	    <city>Yorkville</city>
	    <region>NY</region>
	    <code>13495</code>
	    <country>USA</country>
	  </postal>
	  <email>stu.card@axenterprize.com</email>
	</address>
	</author>
<date year="2024" />
   <area>Internet</area>
   <workgroup>INTAREA</workgroup>
    <keyword>RFC</keyword>
     <keyword>Request for Comments</keyword>
     <keyword>I-D</keyword>
     <keyword>Internet-Draft</keyword>
     <keyword>DRIP</keyword>
     <keyword>PKIX</keyword>
<abstract>
<t>
	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.
</t>
<t>
	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.
</t>
<t>
	C509 (CBOR) encoding of all X.509 certificates are also provided as 
	an alternative for where there are gains in reduced object size.
</t>
</abstract>
</front>
<middle>
<section numbered="true" toc="default"> <name>Introduction</name>
<t>
	A DRIP Entity Tag (DET, <xref target="RFC9374" format="default"/>) 
	public Key Infrastructure (DKI) is designed as a strict hierarchy, 
	governed by the administrator of the DET prefix <xref 
	target="IPv6-SPECIAL" format="default"/> 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).
</t>
<t>
	There are three main classifications/types of DETs:
</t>
<ul empty="true">
	<li>
	<dl newline="true" spacing="normal">
		<dt>Authorization DETs</dt>
		<dd>
			Used to assert the authorization of a DKI level.
		</dd>
		<dt>Issuing DETs</dt>
		<dd>
			Used to assert operations within DKI level.
		</dd>
        <dt>Operational DETs</dt>
        <dd>
			Used by operational entities within DKI level
		</dd>
 	</dl>
 	</li>
</ul>
<t>
	All DETs exist in DET-Endorsements (<xref 
	target="I-D.ietf-drip-registries" section="B" format="default"/>). 
	These DET-Endorsements provide the proof of registration and thus 
	trust.  These DETs, through chained Endorsements define the DKI as 
	follows:
</t>
<figure anchor="reg-class-fig"> <name>The DKI Endorsements</name>
	<artwork align="center" name="" type="" alt="">
<![CDATA[
                +----------+
                |   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 |+
                  |  |Oper,Pilot|+
                  |  +----------+
                  |      
******************|************************************
                +-o--------+
               +-o--------+|
               |   Auth   |+
               +----o-----+
                    |
                  +-o-----+
 HDAs            +--o----+|
                 | Issue |+
                 +---o---+
                     |
                   +-o-------+
                  +--o------+|
                  | CRL,Srv ||
                  |   UAS   |+
                  +---------+
                   
*******************************************************
]]>
	</artwork>
</figure>
<t>
	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 <xref target="offline_keys" />).
</t>
<t>
	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.
</t>
<section anchor="no-apex" numbered="true" toc="default"> <name>The DKI without an Apex Entity</name>
<t>
	The hierarchical 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.
</t>
<t>
	The DKI can work by the RAAs establishing mutual trust within a 
	geographic region.  It is envisioned that the initial RAA 
	assignments will follow <xref target="I-D.ietf-drip-registries" 
	section="6.2.1" format="default"/>, Table 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.
</t>
<t>
	There are three reasonable approaches for RAAs to manage their 
	mutual trust and it is likely that all will occur:
</t>
<ul empty="true">
	<li>
		<ol>
			<li>
				RAA Trust lists
			</li>
			<li>
				RAA Cross-endorsements
			</li>
			<li>
				Bridge RAA with cross-endorsements to RAAs
			</li>
		</ol>
 	</li>
</ul>
<t>
	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.
</t>
<section anchor="raa_trust_list" numbered="true" toc="default"> <name>RAA Trust lists</name>
<t>
	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.
</t>
<t>
	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.
</t>
<t>
	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.
</t>
<t>
	Trust Lists is the simplest method to implement, but may not be the 
	simplest to maintain over time.
</t>
<t>
	There is a natural Trust List of ALL RAAs, based on what is 
	allocated in the DRIP DNS tree.
</t>
</section>
<section anchor="raa_cross_endorse" numbered="true" toc="default"> <name>RAA Cross-endorsements</name>
<t>
	A consortium of RAAs MAY choose to cross-endorse each's 
	Authentication DET.  This is done by one RAA endorsing for its 
	community, an other'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.
</t>
<t>
	RAA Cross-endorsements definitely has a scaling (n^2) problem.  It 
	works for a starting point or for a very small group of RAAs.
</t>
<t>
	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.
</t>
</section>
<section anchor="raa_bridge_endorse" numbered="true" toc="default"> <name>Bridge RAA with cross-endorsements to RAAs</name>
<t>
	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 <xref target="raa_cross_endorse" />.
</t>
<t>
	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.
</t>
<t>
	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 (<xref target="I-D.ietf-drip-registries" 
	section="A" format="default"/>) within the endorsing RAA's zone.  
	This information would need to be cached by any potential offline 
	entity.
</t>
</section>
</section>
<section anchor="c509" numbered="true" toc="default"> <name>The C509 encoding of X.509 Certificates</name>
<t>
	A price in object size is paid in the ASN.1 encoding of X.509 
	certificates.  This is often a barrier for use over constrained 
	links and even storage demands on constrained processing platforms. 
	The <xref target="I-D.ietf-cose-cbor-encoded-cert" 
	format="default"/> provides an alternative encoding in two 
	different manners:
</t>
<ul empty="true">
	<li>
		<ol>
			<li>
				An invertible CBOR re-encoding of DER encoded X.509 
				certificates <xref target="RFC5280"/>, which can be 
				reversed to obtain the original DER encoded X.509 
				certificate.
			</li>
			<li>
				Natively signed C509 certificates, where the signature 
				is calculated over the CBOR encoding instead of over 
				the DER encoding as in 1. This removes the need for 
				ASN.1 and DER parsing and the associated complexity but 
				they are not backwards compatible with implementations 
				requiring DER encoded X.509.
			</li>
		</ol>
 	</li>
</ul>
<t>
	The invertible CBOR encoding is recommended for use here.  This can 
	be readily implemented through libraries that do the translation, 
	as needed, between X.509 and c509.
</t>
</section>
</section>
<section anchor="terms" numbered="true" toc="default"> <name>Terms and Definitions</name>
<section numbered="true" toc="default"> <name>Requirements Terminology</name>
	<t>
		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 <xref target="RFC2119" /> <xref
		target="RFC8174" /> when, and only when, they appear in all
		capitals, as shown here.
	</t>
</section>
<section numbered="true" toc="default"> <name>Definitions</name>
<t>
	This document uses the terms defined in <xref target="RFC9153" 
	section="2.2" format="default">Drip Requirements and 
	Terminology</xref> and in <xref target="RFC9434" section="2" 
	format="default">Drip Architecture</xref>.  The following new terms 
	are used in the document:
</t>
	<dl newline="true" spacing="normal">
		<dt>Authorization DETs</dt>
		<dd>
			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.
		</dd>
		<dt>DKI</dt>
		<dd>
			A DRIP Entity Tag (DET) public Key Infrastructure.  Similar 
			to an X.509 PKI, but built on the DRIP Endorsements.
		</dd>
		<dt>International Aviation Trust Framework (IATF)</dt>
		<dd>
			The ICAO IATF is comprised of a set of policies, 
			requirements, and best practices that will enable resilient 
			and secured ground-ground, air-ground, and air-air exchange 
			of digital information, and among both traditional and 
			newly-emerging system stakeholders.
		</dd>
		<dt>Issuing DETs</dt>
		<dd>
			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.
		</dd>
		<dt>Operational DETs</dt>
		<dd>
			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), UAS Operators, Pilots-in-command, Servers, UA.
		</dd>
		<dt>​System Wide Information Management (SWIM)</dt>
		<dd>
			The ICAO SWIM consists of Standards, Infrastructure and 
			Governance enabling the management of Air Navigation 
			Systems (ANS) related information and its exchange between 
			qualified parties via interoperable services.
		</dd>
 	</dl>
</section>
</section>
<section anchor="DKI" numbered="true" toc="default"> <name>The DET public Key Infrastructure (DKI)</name>
<section anchor="DKI_Levels" numbered="true" toc="default"> <name>The DKI Levels</name>
<section anchor="DKI_apex" numbered="true" toc="default"> <name>The Apex</name>
<t>
	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.
</t>
<t>
	The DET Apex may be only theoretical if no Entity steps forward to 
	provide this role.
</t>
</section>
<section anchor="DKI_raas" numbered="true" toc="default"> <name>The RAAs</name>
<t>
	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#).
</t>
<t>
	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.
</t>
<t>
	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.
</t>
<t>
	The initial RAA range assignments are defined in <xref 
	target="I-D.ietf-drip-registries" section="6.2.1" 
	format="default"/>, Table 1.  It is anticipated that DRIP usage 
	will expand to use into General/Civil Aviation.  Thus at some point 
	a block of RAAs will be set aside much like for the CTA-2063A <xref 
	target="CTA2063A" format="default"/> range.
</t>
</section>
<section anchor="DKI_hdas" numbered="true" toc="default"> <name>The HDAs</name>
<t>
	Each HDA use its Authorization DET to endorse its HDA Issuing 
	DETs (e.g. RAA=267, HDA=567).
</t>
<t>
	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.
</t>
<t>
	If the Operational DET is a Manufacturer DET, the "valid not after" 
	date (vna) MUST be 99991231235959Z.
</t>
</section>
</section>
<section anchor="Offline_Auth" numbered="true" toc="default"> <name>The Offline Requirement for Authentication DETs</name>
<t>
	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.
</t>
<t>
	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.
</t>
<t>
	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.
</t>
<t>
	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.
</t>
<t>
	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.
</t>
</section>
<section anchor="DKI_dns" numbered="true" toc="default"> <name>DNS view of DKI</name>
<t>
	The primary view of the DKI is within DNS.  This is in the 
	3.0.0.1.0.0.2.ip6.arpa zone (Apex level of the DRIP IPv6 DET 
	format).
</t>
<t>
	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.
</t>
<t>
	Endorsements are expected to be stored in DNS HHIT RR (<xref 
	target="I-D.ietf-drip-registries" section="A" format="default"/>) 
	will soon provide an alternative and specifically designed RR for 
	this purpose.  Other RR within these levels will vary.  There also 
	may be HIP, TLSA, and/or URI RR.
</t>
<t>
	Each level continues on down the 3.0.0.1.0.0.2.ip6.arpa zone for 
	its Authorization DET and Issuing DET(s). RR with FQDNs for 
	services offered may also be present in various forms (e.g. 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.
</t>
</section>
<section anchor="DET_revok" numbered="true" toc="default"> <name>Managing DET Revocation</name>
<t>
	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 "revoke" an Operational DET it 
	removes all entries for it from DNS, so a short TTL on those 
	records is recommended.
</t>
<t>
	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 the new DET RR that 
	includes revocation status.  Thus <xref 
	target="I-D.ietf-drip-registries" section="A" format="default"/> 
	defines the 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 available, there is no 
	mechanism, other than removal for Authorization and Issuing DET 
	revocations.
</t>
</section>
<section anchor="Offline_cache" numbered="true" toc="default"> <name>The Offline cache of HDA Issuing Endorsements</name>
<t>
	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...
</t>
<t>
	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 unknown Authenticated HDA or RAA.  The 
	needed trust chain could be shorter.
</t>
<section anchor="trust_cache" numbered="true" toc="default"> <name>HDA Offline Trust cache</name>
<t>
	There are 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.
</t>
</section>
</section>
</section>
<section anchor="Shadow_PKI" numbered="true" toc="default"> <name>The DKI's Shadow PKI</name>
<t>
	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 (<xref target="DKI_Levels" 
	format="default"/>).
</t>
<t>
	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 <xref target="no-apex" format="default"/>.
</t>
<section anchor="Shadow_lite_PKI" numbered="true" toc="default"> <name>Shadow Lite-PKI with minimal content Certificates</name>
<t>
	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 <xref target="RFC5280" format="default"/> MUST field 
	usage.
</t>
<section anchor="Lite_cert_content" numbered="true" toc="default"> <name>DRIP Lite X.509 certificate profile</name>
<t>
	The following is the profile for the DRIP X.509 Lite certificates
</t>
<figure anchor="x509-lite-profile-fig"> <name>The X.509 Lite Profile</name>
<artwork anchor="x509-lite-profile" name="" type="" alt="">
<![CDATA[
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:
]]>
</artwork>
</figure>
</section>
<section anchor="Manditory_cert_content" numbered="true" toc="default"> <name>DRIP Lite Manditory Certificate Content</name>
<t>
	The following detail the Manditory to include content in all DRIP 
	Lite certificates.
</t>
<section anchor="Lite_Serial_Number" numbered="true" toc="default"> <name>Serial Number</name>
<t>
	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.
</t>
<t>
	However, CA certificate's Serial Number MAY be the common 20 bytes. 
	This is to avoid possible issues with general softward expecting 
	this size Serial Numbers for CAs.
</t>
</section>
<section anchor="Lite_Subject" numbered="true" toc="default"> <name>Subject</name>
<t>
	The Subject field is only used in Authentication and Issuing 
	Certificates.  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.
</t>
<t>
	The Subject field in Authentication and Issuing 
	Certificates uses the following format:
</t>
<figure anchor="Lite-CA-subj-fig"> <name>Lite CA Certificate Subject Name Format</name>
	<artwork align="center" name="" type="" alt="">
<![CDATA[
DRIP-{APEX|RAA|HDA}-{A|I}[-RAA#][-HDA#]

Examples:

    DRIP-RAA-A-16376
    DRIP-HDA-I-16376-16376

]]>
	</artwork>
</figure>
<t>
	The CA Subject Name serves a duo purpose: foremostly, to place the 
	CA within the DKI tree, but secondly for outside of DRIP usage to 
	tag that this CA's function is to serve DRIP Entities.
</t>
</section>
<section anchor="Lite_SAN" numbered="true" toc="default"> <name>Subject Alternative Name</name>
<t>
	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).
</t>
<t>
	The Subject Alternative Name is also used in Manufacturer DET 
	certificates.  These may contain the hardwareModuleName as 
	described in <xref target="DOI_10.1109_IEEESTD.2018.8423794" 
	format="default"/> that references <xref target="RFC4108" 
	format="default"/>.
</t>
<t>
	Per <xref target="RFC5280" format="default"/> and <xref 
	target="DOI_10.1109_IEEESTD.2018.8423794" format="default"/>, 
	Manufacturer DET certificates with hardwareModuleName MUST have the 
	notAfter date as 99991231235959Z.
</t>
</section>
<section anchor="Lite_Issuer" numbered="true" toc="default"> <name>Issuer</name>
<t>
	The Issuer MUST be the higher level's DET.
</t>
<t>
	The Issuer for the Apex Authentication certificate MUST be the 
	Subject (indicating self-signed).
</t>
<t>
	The Issuer content of its DET assists in finding this specific 
	Issuer in the DRIP ip6.arpa. DNS tree and any additional 
	information.
</t>
</section>
<section anchor="test_Lite_PKI" numbered="true" toc="default"> <name>The test DKI and Lite PKI</name>
<t>
	The test DKI and Lite PKI, (<xref target="test_dki" 
	format="default"/>/<xref target="test_pki_certs" format="default"/>), 
	were created using the python scripts at <xref 
	target="drip_scripts" format="default"/>.  First csr-gen.py is used 
	to create an X.509 CSR (and optionally the EdDSA keypair).  This 
	CSR is minimal in content.  For example, a UA might only have 
	knowledge of its Manufacturer Serial Number and can generate its 
	keypair.  Per <xref 
	target="I-D.wiethuechter-drip-det-registration-coap-cwt" 
	format="default"/>, this CSR may be sent to the CA with additional 
	information provided by the Operator, for example desired 
	validityDates.  The raa-endorse.py and hda-endorse.py scripts are 
	provided to produce the DRIP Endorsements and X.509 certificates.
</t>
<t>
	At this time, with no Apex level, each RAA Authorization CA is 
	self-signed.  These are created using the RAA's CSR and its own 
	keypair as input to the raa-endorse.py script.  Normally, the 
	raa-endorse.py script is used to create the HDA's Authorization and 
	Issuing CAs and the hda-endorse.py script for the End Entity 
	certificates.
</t>
</section>
</section>
<section anchor="Optional_CA_cert_content" numbered="true" toc="default"> <name>DRIP Lite Optional CA Certificate Content</name>
<t>
	The following detail the Optional content for DRIP Lite CA 
	certificates.  Inclusion of these objects are based on the policies 
	of the CA using them and CAs higher in the trust chain.
</t>
<section anchor="Lite_CA_SAN_URI" numbered="true" toc="default"> <name>CA Subject Alternative Name URI</name>
<t>
	This is the one exception to <xref target="Lite_SAN" 
	format="default"/>.  A CA certificate MAY have a SAN URI, 
	containing a pointer where additional information on the CA and 
	certificates under its control.  For example, an authorized 
	authority may access EE PII like an Oberator phone number through 
	this URI link.
</t>
</section>
<section anchor="Lite_CA_Policy_OIDs" numbered="true" toc="default"> <name>CA Policy OIDs</name>
<t>
	The CA MAY have policy OIDs defining rules for EEs within its 
	domain.  The OIDs used here will tend to be within ICAO's arc of 
	1.3.9.16.
</t>
</section>
</section>
</section>
<section anchor="Shadow_reg_PKI" numbered="true" toc="default"> <name>Abandoned: Shadow PKI with PKIX-like Certificates</name>
<t>
	Author's Note:  The PKIX-like Certificate model has been abandoned 
	for now due to lack of interest in these larger ~400 bytes for DER) 
	size.  For information on these certificates, please review the 
	first draft of this document.
</t>
</section>
</section>
<section anchor="IAC" numbered="true" toc="default"> <name>The DKI and the ICAO IAC PKI</name>
<t>
	The ICAO has defined an International Aviation Common PKI (IAC) PKI 
	in their ICAO Doc 10169 Aviation Common Certificate Policy (ACCP).  
	A test version of this PKI is rolling out for testing the Aviation 
	System Wide Information Management (SWIM) environment.
</t>
<t>
	Currently, this PKI is using ECDSA P-256 in its certificates.  This 
	is equivalent to DET SuiteID of "3".  The subjectNames in use can 
	readily by mapped to RAAs (<xref target="I-D.ietf-drip-registries" 
	section="6.2.1" format="default"/>, Table 1) and HDAs. Thus it is a 
	potential straight-forward technical work item to add DET support 
	into the PKI.
</t>
<t>
	The DETs can readily be stored in subjectAltName or more 
	interestingly in subjectKeyIdentifier (and thus 
	authorityKeyIdentifier).
</t>
<t>
	There are a number of advantages in the IATF and SWIM to have DETs 
	and the matching DNS available.  For example, the "cost" of adding 
	DETs to these certificates could result in moving much of their 
	content into DNS SRV RR and potentially reduce their size by 1/3rd.  
	DETs as the authorityKeyIdentifier would enable DNS for Trust Chain 
	discovery.
</t>
<t>
	Another approach is direct inclusion in this PKI of the DET "Lite" 
	EE certificates for constrained A2A communications.
</t>
<t>
	Discussions are ongoing with those involved with the IATF PKI and 
	this could open up DET usage into General/Civil Aviation.
</t>
</section>
<section anchor="IANA" numbered="true" toc="default"> <name>IANA Considerations</name>
<t>
	TBD
</t>
</section>
<section anchor="security-considerations" numbered="true" toc="default"> <name>Security Considerations</name>
<t>
	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.
</t>
<t>
	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 <xref target="Offline_Auth" />) is needed.
</t>
<section anchor="offline_keys" numbered="true" toc="default"> <name>Protecting against DKI/PKI compromise</name>
<t>
	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.
</t>
<t>
	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.
</t>
</section>
</section>
</middle>
<back>
<displayreference target="I-D.ietf-cose-cbor-encoded-cert" to="C509-Certificates"/>
<displayreference target="I-D.ietf-drip-registries" to="drip-registries"/>
<displayreference target="I-D.wiethuechter-drip-det-registration-coap-cwt" to="drip-registration-cwt"/>
<displayreference target="DOI_10.1109_IEEESTD.2018.8423794" to="IEEE 802.1AR"/>
<references> <name>References</name>
<references title="Normative References">
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
</references>
<references title="Informative References">
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4108.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9153.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9374.xml"/>
<!--	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9380.xml"/> -->
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9434.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-cose-cbor-encoded-cert.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-drip-registries.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-wiethuechter-drip-det-registration-coap-cwt.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml7/reference.DOI.10.1109/IEEESTD.2018.8423794.xml"/>
	<reference anchor="IPv6-SPECIAL"  target="https://www.iana.org/assignments/iana-ipv6-special-registry/">
		<front>
			<title>IANA IPv6 Special-Purpose Address Registry</title>
			<author><organization>IANA</organization></author>
		</front>
	</reference>
	<reference anchor="CTA2063A" target="https://shop.cta.tech/products/small-unmanned-aerial-systems-serial-numbers">
	<front>
		<title>ANSI/CTA 2063-A Small Unmanned Aerial Systems Numbers</title>
		<author>
			<organization>ANSI/CTA</organization>
		</author>
		<date month="09" year="2019"/>
	</front>
	</reference>
<!--	<reference anchor="ISO-3166"  target="https://www.iso.org/iso-3166-country-codes.html">
		<front>
			<title>ISO 3166 Country Codes</title>
			<author><organization>ISO</organization></author>
		</front>
	</reference> -->
	<reference anchor="drip_scripts" target="https://github.com/ietf-wg-drip/drip-scripts">
	<front>
	<title>Python scripts to generate DETs and Endorsements</title>
    <author/>
		<date month="4" year="2023"/>
	</front>
	</reference>
</references>
</references>
<section anchor="test_dki" numbered="true" toc="default"> <name>Test DETs and Endorsements</name>
<t>
	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 by others, are available.  Finally the test 
	HDA is 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.
</t>
<t>
	The following are the test values and objects.  They were generated 
	using the csr-gen.py, raa-endorse.py, and hda-endorse.py scripts 
	available at <xref target="drip_scripts" format="default"/>.
</t>
<t>
	Note, that as there is no APEX level at this time, the RAA 
	Endorsement is self-signed.
</t>
<figure anchor="DKI_DET_Endorse-fig"> <name>Test DKI DETs and Endorsements</name>
<artwork anchor="test_dki_val-1" name="" type="" alt="">
<![CDATA[
raa16376
    Authorizing DET  (HID=16376|0)

# SN is there just because script needs it.
python csr-gen.py --keyname=raa16376 --serialnumber=0 --raa=16376/
 --hda=0
python raa-endorse.py --commandfile=raa16376

    HI: 32528c1c115d004d1f008d07ac507a2d83bbab746040522ea6cdc786fa
        bc8057
    DET: 2001003ffe00000506ab58754f68e6b3
    DET: 2001:003f:fe00:0005:06ab:5875:4f68:e6b3
    vnb="09/01/2024"
    vna="08/31/2026"
    Endorsement(136 bytes): 66d3e6c06a94fc402001003ffe00000506ab58
    754f68e6b332528c1c115d004d1f008d07ac507a2d83bbab746040522ea6cd
    c786fabc80572001003ffe00000506ab58754f68e6b3f5d13f1074171192f8
    f5e4b25f200cf3cc5ef6a8cc10d0c93e91ab882a888ccd7fb970c56c20e97e
    22f60b7d1179d214a7c9fa8c70081c3482667add575d0a08

]]>
</artwork>
<artwork anchor="test_dki_val-2" name="" type="" alt="">
<![CDATA[
hda16376-16376
    Authorizing DET  (HID=16376|16376)
# SN is there just because script needs it.
python csr-gen.py --keyname=hda16376-16376A --serialnumber=0
python raa-endorse.py --commandfile=hda16376-16376A

    HI: 4293a3ec0639737e65db3979fb3dab83a97510cfb52e83d5ecaea40adf
        45585d
    DET: 2001003ffe3ff805ce4d71fcd8a27a9d
    DET: 2001:003f:fe3f:f805:ce4d:71fc:d8a2:7a9d
    DETofRAA=2001003ffe00000506ab58754f68e6b3
    vnb="09/15/2024"
    vna="07/01/2026"

    Endorsement(136 bytes): 66e65bc06a4490c02001003ffe3ff805ce4d71
    fcd8a27a9d4293a3ec0639737e65db3979fb3dab83a97510cfb52e83d5ecae
    a40adf45585d2001003ffe00000506ab58754f68e6b3a96328ac620f9dd7d1
    2a7d9f6e94424b69e59584116d73763145be04ef743bbada14d11f158ee32e
    ff33296fb8cc6cad8d3cdfee866e27a720b685c731edde07
]]>
</artwork>
<artwork anchor="test_dki_val-3" name="" type="" alt="">
<![CDATA[
    Issuing DET  (HID=16376|16376)

# SN is there just because script needs it.
python csr-gen.py --keyname=hda16376-16376I --serialnumber=0
python raa-endorse.py --commandfile=hda16376-16376I

    HI: 95f4a64fc559a17092c738f7be02a9ed7aef51b152e4eb2c8b0a0dc175
        80b7e0
    DET: 2001003ffe3ff8059f5514beac58f8db
    DET: 2001:003f:fe3f:f805:9f55:14be:ac58:f8db
    DETofHDA=0x2001003ffe3ff805ce4d71fcd8a27a9d
    vnb="09/15/2024"
    vna="07/01/2026"

    Endorsement(136 bytes): 66e65bc06a4490c02001003ffe3ff8059f5514
    beac58f8db95f4a64fc559a17092c738f7be02a9ed7aef51b152e4eb2c8b0a
    0dc17580b7e02001003ffe3ff805ce4d71fcd8a27a9dea50c3de79536ea208
    fe792a3e7241d0d8c67fc8a94ec925709a3b19e8b7eaa4c1714762f4c83ea2
    0e10c4dc5ea049b22a51cfbbae39be5874c31fd5bf9e4f00
]]>
</artwork>
<artwork anchor="test_dki_val-4" name="" type="" alt="">
<![CDATA[
    UA DET in 16376.16376
    
python csr-gen.py --keyname=ua1-16376-16376/
 --serialnumber=x1224AABBCCDDEE56789
python hda-endorse.py --commandfile=ua1-16376-16376

    DET: 2001003ffe3ff80578cc488c41b52b28
    DET: 2001:003f:fe3f:f805:78cc:488c:41b5:2b28
    SN:  x1224AABBCCDDEE56789
    DETofHDA=0x2001003ffe3ff8059f5514beac58f8db
    vnb="09/19/2024"
    vna="09/20/2025"
    Endorsement(136 bytes): 66eba1c068ce26c02001003ffe3ff80578cc48
    8c41b52b2888f5e2d5c7161b5b15a590b4a56c4759fe46cb1bbad11f070eb3
    ec7bdd28a9692001003ffe3ff8059f5514beac58f8db861d2e2a41193aac09
    8d96c6e23611733cfbbace751e66f3c1e525e0864fa249e2dc3e48e3477256
    770d02dfb0d83ec29ae7887851c2031c907a90f966b05d0d
]]>
</artwork>
</figure>
<section anchor="test_dns" numbered="true" toc="default"> <name>Test DNS</name>
<t>
	The DNS tree(s) for the above test data is still in limbo and will 
	be added in a later version of this draft with the proposed DET RR 
	from <xref target="I-D.ietf-drip-registries" format="default"/>.  
</t>
</section>
</section>
<section anchor="test_pki_certs" numbered="true" toc="default"> <name>Test X.509 certificates</name>
<section anchor="test_pki_lite_certs" numbered="true" toc="default"> <name>Test Lite X.509 certificates</name>
<t>
	The following the test DRIP X.509 certificates that mirror the test 
	Endorsements.
</t>
<figure anchor="Lite_x509-fig"> <name>Test Lite X.509 certificates</name>
<artwork anchor="x509-Lite-raa16376-cert" name="" type="" alt="">
<![CDATA[
  raa16376.pem (der is 334 bytes)
  
-----BEGIN CERTIFICATE-----
MIIBSjCB/aADAgECAhR3h9ip63LkGZCv25TKeVSCy5PSxTAFBgMrZXAwKzEpMCcG
A1UEAwwgMjAwMTAwM2ZmZTAwMDAwNTA2YWI1ODc1NGY2OGU2YjMwHhcNMjQwOTAx
MDAwMTAwWhcNMjYwODMxMjM1OTAwWjAbMRkwFwYDVQQDDBBEUklQLVJBQS1BLTE2
Mzc2MCowBQYDK2VwAyEAMlKMHBFdAE0fAI0HrFB6LYO7q3RgQFIups3Hhvq8gFej
QzBBMB4GA1UdEQEB/wQUMBKHECABAD/+AAAFBqtYdU9o5rMwDwYDVR0TAQH/BAUw
AwEB/zAOBgNVHQ8BAf8EBAMCAgQwBQYDK2VwA0EA7+m7dHX/Mv9yLszLuWfBa2kO
mQCEhxyu4yPKaRPEdzzTGsbq8ECF+CGDBiWwt2jiOIK52x6TGtvUbmBpmfbhDw==
-----END CERTIFICATE-----
 
Certificate: 509 bytes
    Data:
        Version: 3 (0x2)
        Serial Number:
          77:87:d8:a9:eb:72:e4:19:90:af:db:94:ca:79:54:82:cb:93:d2:c5
        Signature Algorithm: ED25519
        Issuer: CN = 2001003ffe00000506ab58754f68e6b3
        Validity
            Not Before: Sep  1 00:01:00 2024 GMT
            Not After : Aug 31 23:59:00 2026 GMT
        Subject: CN = DRIP-RAA-A-16376
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    32:52:8c:1c:11:5d:00:4d:1f:00:8d:07:ac:50:7a:
                    2d:83:bb:ab:74:60:40:52:2e:a6:cd:c7:86:fa:bc:
                    80:57
        X509v3 extensions:
            X509v3 Subject Alternative Name: critical
                IP Address:2001:3F:FE00:5:6AB:5875:4F68:E6B3
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign
    Signature Algorithm: ED25519
    Signature Value:
        ef:e9:bb:74:75:ff:32:ff:72:2e:cc:cb:b9:67:c1:6b:69:0e:
        99:00:84:87:1c:ae:e3:23:ca:69:13:c4:77:3c:d3:1a:c6:ea:
        f0:40:85:f8:21:83:06:25:b0:b7:68:e2:38:82:b9:db:1e:93:
        1a:db:d4:6e:60:69:99:f6:e1:0f
]]>
</artwork>
<artwork anchor="x509-Lite-Ahda16376-16376-cert" name="" type="" alt="">
<![CDATA[
  Authentication hda16376-16376.pem (der is 341 bytes)

-----BEGIN CERTIFICATE-----
MIIBUTCCAQOgAwIBAgIUWffmfHh1wD4kx1sh/voUrCHqYEQwBQYDK2VwMCsxKTAn
BgNVBAMMIDIwMDEwMDNmZmUwMDAwMDUwNmFiNTg3NTRmNjhlNmIzMB4XDTI0MDkx
NTAwMDEwMFoXDTI2MDcwMTIzNTkwMFowITEfMB0GA1UEAwwWRFJJUC1IREEtQS0x
NjM3Ni0xNjM3NjAqMAUGAytlcAMhAEKTo+wGOXN+Zds5efs9q4OpdRDPtS6D1eyu
pArfRVhdo0MwQTAeBgNVHREBAf8EFDAShxAgAQA//j/4Bc5NcfzYonqdMA8GA1Ud
EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMAUGAytlcANBACHQ+i1C56CwyE6d
rjq7Ogrez4vfylAXgB6xSTXl7Uh85TI9B+jUl3BJPlvFJS5KXXw4mc1Fa3L7hIGd
zSQWPQc=
-----END CERTIFICATE-----
  
Certificate:   518 bytes
    Data:
        Version: 3 (0x2)
        Serial Number:
          59:f7:e6:7c:78:75:c0:3e:24:c7:5b:21:fe:fa:14:ac:21:ea:60:44
        Signature Algorithm: ED25519
        Issuer: CN = 2001003ffe00000506ab58754f68e6b3
        Validity
            Not Before: Sep 15 00:01:00 2024 GMT
            Not After : Jul  1 23:59:00 2026 GMT
        Subject: CN = DRIP-HDA-A-16376-16376
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    42:93:a3:ec:06:39:73:7e:65:db:39:79:fb:3d:ab:
                    83:a9:75:10:cf:b5:2e:83:d5:ec:ae:a4:0a:df:45:
                    58:5d
        X509v3 extensions:
            X509v3 Subject Alternative Name: critical
                IP Address:2001:3F:FE3F:F805:CE4D:71FC:D8A2:7A9D
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign
    Signature Algorithm: ED25519
    Signature Value:
        21:d0:fa:2d:42:e7:a0:b0:c8:4e:9d:ae:3a:bb:3a:0a:de:cf:
        8b:df:ca:50:17:80:1e:b1:49:35:e5:ed:48:7c:e5:32:3d:07:
        e8:d4:97:70:49:3e:5b:c5:25:2e:4a:5d:7c:38:99:cd:45:6b:
        72:fb:84:81:9d:cd:24:16:3d:07
]]>
</artwork>
<artwork anchor="x509-Lite-Ehda16376-16376-cert" name="" type="" alt="">
<![CDATA[
  Issuing hda16376-16376.pem (der is 341 bytes)

-----BEGIN CERTIFICATE-----
MIIBUTCCAQOgAwIBAgIURlST/Y7ug5+XOsyX0nxxMubKnmkwBQYDK2VwMCsxKTAn
BgNVBAMMIDIwMDEwMDNmZmUzZmY4MDVjZTRkNzFmY2Q4YTI3YTlkMB4XDTI0MDkx
NTAwMDEwMFoXDTI2MDcwMTIzNTkwMFowITEfMB0GA1UEAwwWRFJJUC1IREEtSS0x
NjM3Ni0xNjM3NjAqMAUGAytlcAMhAJX0pk/FWaFwksc4974Cqe1671GxUuTrLIsK
DcF1gLfgo0MwQTAeBgNVHREBAf8EFDAShxAgAQA//j/4BZ9VFL6sWPjbMA8GA1Ud
EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMAUGAytlcANBANXZXfdkuaUGbHzS
To8zHiNLL/EVBJYfX65JafReppAEDdcu22nHykZpLJS+gVv4BHY8fI+MwsFqkXn5
iWr3PQE=
-----END CERTIFICATE-----

Certificate:    518 bytes
    Data:
        Version: 3 (0x2)
        Serial Number:
          46:54:93:fd:8e:ee:83:9f:97:3a:cc:97:d2:7c:71:32:e6:ca:9e:69
        Signature Algorithm: ED25519
        Issuer: CN = 2001003ffe3ff805ce4d71fcd8a27a9d
        Validity
            Not Before: Sep 15 00:01:00 2024 GMT
            Not After : Jul  1 23:59:00 2026 GMT
        Subject: CN = DRIP-HDA-I-16376-16376
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    95:f4:a6:4f:c5:59:a1:70:92:c7:38:f7:be:02:a9:
                    ed:7a:ef:51:b1:52:e4:eb:2c:8b:0a:0d:c1:75:80:
                    b7:e0
        X509v3 extensions:
            X509v3 Subject Alternative Name: critical
                IP Address:2001:3F:FE3F:F805:9F55:14BE:AC58:F8DB
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign
    Signature Algorithm: ED25519
    Signature Value:
        d5:d9:5d:f7:64:b9:a5:06:6c:7c:d2:4e:8f:33:1e:23:4b:2f:
        f1:15:04:96:1f:5f:ae:49:69:f4:5e:a6:90:04:0d:d7:2e:db:
        69:c7:ca:46:69:2c:94:be:81:5b:f8:04:76:3c:7c:8f:8c:c2:
        c1:6a:91:79:f9:89:6a:f7:3d:01
]]>
</artwork>
<artwork anchor="x509-Lite-UA1-hda16376-16376-cert" name="" type="" alt="">
<![CDATA[
  UA1-16376-16376 CSR

Certificate Request:
    Data:
        Version: 1 (0x0)
        Subject: serialNumber = x1224AABBCCDDEE56789
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    88:f5:e2:d5:c7:16:1b:5b:15:a5:90:b4:a5:6c:47:
                    59:fe:46:cb:1b:ba:d1:1f:07:0e:b3:ec:7b:dd:28:
                    a9:69
        Attributes:
            (none)
            Requested Extensions:
    Signature Algorithm: ED25519
    Signature Value:
        e1:18:e8:0f:78:ef:99:47:8f:ce:12:c7:f0:fa:48:eb:17:3b:
        7e:b8:0d:25:46:0e:ca:ff:bb:48:54:ea:d0:8b:52:89:9c:49:
        8a:4c:35:be:8f:b2:77:ff:9d:64:e4:1e:cf:23:12:5b:8b:24:
        e2:0f:ac:07:33:39:b9:10:eb:00

  UA1-16376-16376.pem (der is 255 bytes)

-----BEGIN CERTIFICATE-----
MIH8MIGvoAMCAQICAiIOMAUGAytlcDArMSkwJwYDVQQDDCAyMDAxMDAzZmZlM2Zm
ODA1OWY1NTE0YmVhYzU4ZjhkYjAeFw0yNDA5MTkwMDAxMDBaFw0yNTA5MjAyMzU5
MDBaMAAwKjAFBgMrZXADIQCI9eLVxxYbWxWlkLSlbEdZ/kbLG7rRHwcOs+x73Sip
aaMiMCAwHgYDVR0RAQH/BBQwEocQIAEAP/4/+AV4zEiMQbUrKDAFBgMrZXADQQB1
g4Yw/Rer9hISVLVUvad8dKJSe2giAaNOZbDtexeWhsZEXMWNWuhGkEefKk5IbAM9
cs9islWR1bX+o91HMXcB
-----END CERTIFICATE-----

Certificate:    400 bytes
    Data:
        Version: 3 (0x2)
        Serial Number: 8718 (0x220e)
        Signature Algorithm: ED25519
        Issuer: CN = 2001003ffe3ff8059f5514beac58f8db
        Validity
            Not Before: Sep 19 00:01:00 2024 GMT
            Not After : Sep 20 23:59:00 2025 GMT
        Subject: 
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    88:f5:e2:d5:c7:16:1b:5b:15:a5:90:b4:a5:6c:47:
                    59:fe:46:cb:1b:ba:d1:1f:07:0e:b3:ec:7b:dd:28:
                    a9:69
        X509v3 extensions:
            X509v3 Subject Alternative Name: critical
                IP Address:2001:3F:FE3F:F805:78CC:488C:41B5:2B28
    Signature Algorithm: ED25519
    Signature Value:
        75:83:86:30:fd:17:ab:f6:12:12:54:b5:54:bd:a7:7c:74:a2:
        52:7b:68:22:01:a3:4e:65:b0:ed:7b:17:96:86:c6:44:5c:c5:
        8d:5a:e8:46:90:47:9f:2a:4e:48:6c:03:3d:72:cf:62:b2:55:
        91:d5:b5:fe:a3:dd:47:31:77:01
]]>
</artwork>
</figure>
</section>
<section anchor="c509_certs" numbered="true" toc="default"> <name>Test Lite C509 certificates</name>
<t>
	The CBOR Encoded X.509 Certificates (C509 Certificates) <xref 
	target="I-D.ietf-cose-cbor-encoded-cert" format="default"/> 
	provides a standards-based approach to reduce the size of X.509 
	certificates both on-the-wire and in storage.
</t>
<t>
	These C509 certificates MAY be stored in the DET RR, but are more 
	likely to by used in over-the-air protocols and exist only for 
	transmission, being converted from/to their source X.509 
	certificates.
</t>
<t>
	Author's Note:  This section is still a Work in Progress.  The CBOR 
	diagnostic tool is currently not working, and that content should 
	be added back in on a later revision.  Further note that we think 
	there is a bug in the c509 code, making the certificate version = 
	1, not 3.
</t>
<t>
	The following are examples of a C509 cert.
</t>
<figure anchor="Lite_c509-fig"> <name>Test Lite C.509 certificates</name>
<artwork anchor="x509-raa16376-c509-cert" name="" type="" alt="">
<![CDATA[
  raa16376.cert CBOR:
  
COSE_X509 (212 bytes)
8B 01 54 77 87 D8 A9 EB 72 E4 19 90 AF DB 94 CA 79 54 82 CB 93 D2 C5
78 20 32 30 30 31 30 30 33 66 66 65 30 30 30 30 30 35 30 36 61 62 35
38 37 35 34 66 36 38 65 36 62 33 1A 66 D3 AE BC 1A 6A 96 15 44 70 44
52 49 50 2D 52 41 41 2D 41 2D 31 36 33 37 36 0A 58 20 32 52 8C 1C 11
5D 00 4D 1F 00 8D 07 AC 50 7A 2D 83 BB AB 74 60 40 52 2E A6 CD C7 86
FA BC 80 57 86 22 82 07 50 20 01 00 3F FE 00 00 05 06 AB 58 75 4F 68
E6 B3 23 20 21 18 20 0C 58 40 EF E9 BB 74 75 FF 32 FF 72 2E CC CB B9
67 C1 6B 69 0E 99 00 84 87 1C AE E3 23 CA 69 13 C4 77 3C D3 1A C6 EA
F0 40 85 F8 21 83 06 25 B0 B7 68 E2 38 82 B9 DB 1E 93 1A DB D4 6E 60
69 99 F6 E1 0F
]]>
</artwork>
<artwork anchor="x509-UA1-16376-16376-c509-cert-diag" name="" type="" alt="">
<![CDATA[
  ua1-16376-16376.cert CBOR:

COSE_X509 (173 bytes)
8B 01 42 22 0E 78 20 32 30 30 31 30 30 33 66 66 65 33 66 66 38 30 35
39 66 35 35 31 34 62 65 61 63 35 38 66 38 64 62 1A 66 EB 69 BC 1A 68
CF 3F C4 80 0A 58 20 88 F5 E2 D5 C7 16 1B 5B 15 A5 90 B4 A5 6C 47 59
FE 46 CB 1B BA D1 1F 07 0E B3 EC 7B DD 28 A9 69 82 22 82 07 50 20 01
00 3F FE 3F F8 05 78 CC 48 8C 41 B5 2B 28 0C 58 40 75 83 86 30 FD 17
AB F6 12 12 54 B5 54 BD A7 7C 74 A2 52 7B 68 22 01 A3 4E 65 B0 ED 7B
17 96 86 C6 44 5C C5 8D 5A E8 46 90 47 9F 2A 4E 48 6C 03 3D 72 CF 62
B2 55 91 D5 B5 FE A3 DD 47 31 77 01
]]>
</artwork>
</figure>
</section>
</section>
<section numbered="false" toc="default"> <name>Acknowledgments</name>
<t>
	Many people assisted in creating the python scripts for making DETs 
	and DRIP Endorsements. Any roughness in the scripts is all my 
	doing.
</t>
<t>
	The openssl-user mailing list provided needed help in getting 
	openssl command line to do what was needed to build the test PKI.
</t>
<t>
	The COSE C509 authors are providing active help in creating the 
	C509 equivalent objects.
</t>
</section>
</back>
</rfc>
