Internet DRAFT - draft-nichols-tsv-defined-trust-transport

draft-nichols-tsv-defined-trust-transport







Network Working Group                                         K. Nichols
Internet-Draft                                               Pollere LLC
Intended status: Informational                               V. Jacobson
Expires: 12 January 2023                                            UCLA
                                                                 R. King
                                                   Operant Networks Inc.
                                                            11 July 2022


      Defined-Trust Transport (DeftT) Protocol for Limited Domains
              draft-nichols-tsv-defined-trust-transport-00

Abstract

   This document describes a broadcast-friendly, many-to-many Defined-
   trust Transport (DeftT) that makes it simple to express and enforce
   application and deployment specific integrity, authentication, access
   control and behavior constraints directly in the protocol stack.
   DeftT combined with IPv6 multicast and modern hardware-based methods
   for securing keys and code provides an easy to use foundation for
   secure and efficient communications in Limited Domains (RFC8799), in
   particular for Operational Technology (OT) networks.

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 12 January 2023.

Copyright Notice

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

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.



Nichols, et al.          Expires 12 January 2023                [Page 1]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
     1.1.  Environment and use . . . . . . . . . . . . . . . . . . .   4
     1.2.  Transporting information  . . . . . . . . . . . . . . . .   5
     1.3.  Securing information  . . . . . . . . . . . . . . . . . .   7
     1.4.  Current status  . . . . . . . . . . . . . . . . . . . . .   9
   2.  Terms and Definitions . . . . . . . . . . . . . . . . . . . .   9
   3.  DeftT and Defined-trust Communications  . . . . . . . . . . .  11
     3.1.  DeftT role in application communications  . . . . . . . .  12
     3.2.  Information movement is based on trust rules  . . . . . .  13
     3.3.  Relays extend a trust domain  . . . . . . . . . . . . . .  14
     3.4.  DeftT and congestion control  . . . . . . . . . . . . . .  15
     3.5.  Defined-trust management  . . . . . . . . . . . . . . . .  16
       3.5.1.  About trust schemas . . . . . . . . . . . . . . . . .  16
       3.5.2.  A language for DeftT trust schemas  . . . . . . . . .  18
     3.6.  DC certificates and identity bundles  . . . . . . . . . .  21
       3.6.1.  About DC certificates . . . . . . . . . . . . . . . .  21
   4.  Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . .  23
     4.1.  Secure Industrial IoT . . . . . . . . . . . . . . . . . .  23
     4.2.  Secure access to Distributed Energy Resources (DER) . . .  25
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .  27
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  29
   7.  Normative References  . . . . . . . . . . . . . . . . . . . .  29
   8.  Informative References  . . . . . . . . . . . . . . . . . . .  30
   Appendix A.  DeftT run-time modules . . . . . . . . . . . . . . .  36
     A.1.  Syncps set reconciliation . . . . . . . . . . . . . . . .  37
     A.2.  SchemaLib trust management  . . . . . . . . . . . . . . .  38
     A.3.  Signature managers  . . . . . . . . . . . . . . . . . . .  38
     A.4.  Distributors  . . . . . . . . . . . . . . . . . . . . . .  39
     A.5.  Faces . . . . . . . . . . . . . . . . . . . . . . . . . .  40
     A.6.  Shims . . . . . . . . . . . . . . . . . . . . . . . . . .  40
   Appendix B.  Formats  . . . . . . . . . . . . . . . . . . . . . .  42
     B.1.  Publications  . . . . . . . . . . . . . . . . . . . . . .  42
     B.2.  Certificates  . . . . . . . . . . . . . . . . . . . . . .  44
     B.3.  cState  . . . . . . . . . . . . . . . . . . . . . . . . .  44
     B.4.  cAdd  . . . . . . . . . . . . . . . . . . . . . . . . . .  45
   Appendix C.  Contributors . . . . . . . . . . . . . . . . . . . .  46
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  47






Nichols, et al.          Expires 12 January 2023                [Page 2]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


1.  Introduction

   Decades of success in providing IP connectivity over any physical
   media ("IP over everything") has commoditized IP-based
   communications.  This makes IP an attractive option for Internet of
   Things (IoT), Industrial IoT (IIoT) and Operational Technologies (OT)
   applications like building automation, embedded systems and
   transportation control, that previously required proprietary or
   analog connectivity.  For the energy sector in particular, the
   growing use of Distributed Energy Resources (DER) like residential
   solar has created interest in low cost commodity networked devices
   but with added features for security, robustness and low-power
   operation [MODOT][OPR][CIDS].  Other emerging uses include connecting
   controls and sensors in nuclear power plants and carbon capture
   monitoring.  [DIGN][IIOT]

   While moving to an IP network layer is a major advance for OT,
   current Internet transport options are a poor match to its needs.
   TCP generalized the Arpanet transport notion of a packet "phone call"
   between two endpoints into a generic, reliable, bi-directional
   bytestream working over IP's stateless unidirectional best-effort
   delivery model.  Just as the voice phone call model spawned a global
   voice communications infrastructure in the 1900s, TCP/IP's two-party
   data "phone calls" are the foundation of today's global data
   communication infrastructure.  But "good for global communication"
   isn't the same as "good for everything".  OT applications tend to be
   localized and communication intensive (devices such as sensors only
   exist to communicate).  Since OT's function is coordination and
   control, communication is many-to-many, not two-party.  As
   Section 1.2 notes, implementing many-many over two-party changes the
   configuration burden and traffic scaling from the native media's
   O(_n_) to O(_n_^2).  Also, OT devices have specific, highly
   prescribed roles with strict constraints on "who can say what to
   which".  The opacity of modern encrypted two-party connections can
   make it impossible to enforce or even audit these constraints.
















Nichols, et al.          Expires 12 January 2023                [Page 3]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   This memo describes a new, open transport protocol, Defined-trust
   Transport (DeftT) for Limited Domains [RFC8799] in which multipoint
   communications are enabled through use of a named collection
   abstraction and secured by an integrated trust management engine.
   DeftT employs multicast (specifically IPv6 link-local[RFC4291]),
   distributed set reconciliation PDU transport, a flexible application-
   level pub/sub, and a declarative language used to define the local
   context and communication constraints of a deployment.  The language
   is compiled into a compact, optimized _trust schema_ used by DeftT's
   runtime trust management engine to enforce adherence to the
   constraints.  The resulting system is both efficient and scalable:
   Signing and validation costs are constant per-publication,
   independent of the richness and complexity of the deployment's
   constraints or the number of entites deployed.

   Device enrollment consists of securely configuring a device with one
   or more _identity bundles_, each containing a signing (identity)
   certificate plus secret key together with all the certs in the
   identity's signing chain and the trust schema that governs what the
   identity can say and hear.  All signing chains share a common trust
   root so the bundle suffices for the device to authenticate and
   authorize communication from peers and vice-versa.  Thus new entities
   can be added without changes to the existing members and, since an OT
   system's "who says what to which" communication patterns are
   constraints, the trust schema can subsume all the labor intensive and
   error-prone device-to-device association configuration.

1.1.  Environment and use

   Due to physical deployment constraints and the high cost of wiring,
   OT networks overwhelmingly prefer radio as a communication medium.
   Use of wires is impossible in many installations (untethered Things,
   adding smart devices to home and infrastructure networks, vehicular
   uses, etc.).  Wiring costs far exceed the cost of current System-on-
   Chip Wi-Fi IoT devices and the cost differential is increasing
   [WSEN][COST].  For example, the popular ESP32 is a 32bit/320KB SRAM
   RISC with 60 analog and digital I/O channels plus complete 802.11b/g/
   n and bluetooth radios on a 5mm die that consumes 70uW in normal
   operation.  It costs $0.13 in small quantities while the estimated
   cost of pulling cable to retrofit nuclear power plants is $2000/ft
   [NPPI].

   OT communications are frequently local with a many-to-many
   communication pattern using application-specific identifiers
   ("topics") for rendezvous.  This fits the generic Publish/Subscribe
   communications model and, as table 1 in [PRAG] shows, nine of the
   eleven most widely used IoT protocols use a topic-based pub/sub
   transport.  For example MQTT, an open standard developed in 1999 to



Nichols, et al.          Expires 12 January 2023                [Page 4]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   monitor oil pipelines over satellite [MQTT][MHST], is now probably
   the most widely used IoT protocol (https://mqtt.org/use-cases/
   (https://mqtt.org/use-cases/)).  In addition to providing local pub/
   sub in buildings, factories and homes, Microsoft Azure, Amazon AWS,
   Google Cloud, and Cloudflare all offer hosted MQTT brokers for
   collecting and connecting sensor and control data.

   Pub/sub protocols are not connection or session oriented but instead
   organized around publishing and subscribing to topics.  To
   communicate, publishers and subscribers need to use the same topic
   but need no knowledge of one another.  IoT pub/sub is typically
   implemented as an application layer protocol over an Internet
   transport like TCP or TLS.  These endpoint-based transport protocols
   do require in-advance configuration of peer addresses and credentials
   at each endpoint.

1.2.  Transporting information

   The smart lighting example of Figure 1 shows a topic-based publish/
   subscribe application layer protocol and a wireless broadcast domain.
   Each switch is set up to do triple-duty: one click of its on/off
   paddle controls some particular light(s), two clicks control all the
   lights in the room, and three clicks control all available lights
   (five kitchen plus the four den ceiling).  Thus a switch button push
   may require a message to as many as nine light devices.  On a
   broadcast physical network each message published by the switch is
   heard by all nine devices.  IPv6 multicast provides a network layer
   that can take advantage of this but current IP transport protocols
   cannot.  Instead, each switch needs to establish nine transport
   associations in order to send the published message for all lights to
   turn on.  Communicating devices must be configured with each other's
   IP address and enrolled identity so, for _n_ devices, both the
   configuration burden and traffic scale as O(_n^2_).  For example,
   when an "_all_" event is triggered, every light's radio will receive
   nine messages but discard the eight determined to be "not mine."  If
   a device sleeps, is out-of-range, or has partial connectivity,
   additional application-level mechanisms have to be implemented to
   accommodate it.

   (Artwork only available as svg: iotDeftt-rfc.svg)

                  Figure 1: Smart lighting use of Pub/Sub

   MQTT and other broker-based pub/sub approaches mitigate this by
   adding a _broker_ where all transport connections terminate
   (Figure 2).  Each entity makes a single TCP transport connection with
   the broker and tells the broker the topics to which it subscribes.
   Thus the kitchen switch uses its single transport session to publish



Nichols, et al.          Expires 12 January 2023                [Page 5]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   commands to topic kitchen/counter, topic kitchen or all.  The kitchen
   counter light uses its broker session to subscribe to those same
   three topics.  The kitchen ceiling lights subscribe to topics kitchen
   ceiling, kitchen and all while den ceiling lights subscribe to topics
   den ceiling, den and all.  The broker reduces the configuration
   burden from O(_n_^2) to O(_n_): 18 transport sessions to 11 for this
   simple example but for realistic deployments the reduction is often
   greater.  There are other advantages: besides their own IP addresses
   and identities, devices only need to be configured with those of the
   broker.  Further, the broker can store messages for temporarily
   unavailable devices and use the transport session to confirm the
   reception of messages.  This approach is popular because the pub/sub
   application layer protocol provides an easy-to-use API and the broker
   reduces configuration burden while maintaining secure, reliable
   delivery and providing short-term in-network storage of messages.
   Still the broker implementation doubles the per-device configuration
   burden by adding an entity that exists only to implement transport
   and traffic still scales as O(_n^2_).  E.g., any switch publishing to
   all lights results in ten (unicast) message transfers over the wifi
   network.

   (Artwork only available as svg: iotMQTT-rfc.svg)

     Figure 2: Brokers enable Pub/Sub over connection/session protocols

   A transport protocol not organized around bilateral associations
   ("connections") would better suit this problem.  In the distributed
   systems literature, communication associated with coordinating shared
   objectives has long been modeled by the mathematics of distributed
   set reconciliation.  In this approach, the domain of discourse is
   some named set, e.g., _myhouse.iot_, the event created by a button
   press on a switch is added as a new object to the instance of
   _myhouse.iot_ at its point of origin, then the reconciliation process
   ensures that every entity holding _myhouse.iot_ has the same set of
   objects by propagating this new object.  Recent progress in
   distributed set reconciliation via Invertible Bloom Lookup Tables
   (IBLTs) [DIFF][IBLT][MPSR] enables solution of this problem by a
   simple, efficient multicast transport.  DeftT implements IBLT set
   reconciliation and takes advantage of IPv6's ability to use link
   local multicast without requiring manual configuration or a routing
   agent, yielding Figure 1 where each device has a single, auto-
   configured transport that makes use of the broadcast radio medium
   without need for a broker or multiple transport associations.  Each
   button push is broadcast exactly once to be added to the distributed
   set.






Nichols, et al.          Expires 12 January 2023                [Page 6]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


1.3.  Securing information

   In addition to reliability, current transport protocols provide some
   security via encrypting the sessions between end points.  In the
   Internet, trust in the credentials of an endpoint (e.g., a website)
   is usually attested by a third party certificate authority (CA) and
   is bound to a DNS name.  Each secure transport association requires
   the exchange of these credentials.  Instead of third party
   certificates, OT tends to prefer locally created certificates,
   configuring them into on-device trusted enclaves [TPM][HSE][ATZ] as
   part of the device enrollment process.  Thus, a transport for OT
   should work with a local root of trust.  In Figure 2 each connection
   is a separate security association where each device needs to
   validate the broker's credential and the broker has to validate each
   device's (the validity check usually involves cryptographic
   verification of a signature chain terminating on a common trust
   root).  This approach ensures that transport associations are between
   two enrolled devices (protecting against outsider and some MITM
   attacks) and allows for secure exchange of a nonce symmetric key that
   can be used to ensure transport privacy.  However, once transport has
   been established there are no constraints whatsoever on what devices
   can say.  Thus this type of security does not protect against the
   insider attacks that currently plague OT, e.g., [CHPT] description of
   a lightbulb taking over a network.  Hardening an OT system against
   these attacks requires trust management operating at the individual
   publication level, not the connection or session level.  For example,
   the basic function of a light switch requires that it be allowed to
   tell a light to turn on or off but it almost certainly shouldn't be
   allowed to tell the light to overwrite its firmware (fwupd), even
   though "on/off" and "fwupd" are both standard capabilities of most
   smart light APIs.  Once the session is established, its security
   handles the "fwupd" publications the same way as the "on/off"
   publications.  Per-publication trust decisions can enable the fwupd
   from the light switch to be rejected.

   The requirement for per-publication trust decisions combined with
   OT's preponderance of many-to-many communications over broadcast
   infrastructure suggests that per-publication signing is preferable to
   session-based signing.  Securing each publication rather than the
   path it arrives on deals with a wider spectrum of threats while
   avoiding the quadratic session state and traffic burden.  This
   results in a trust management system such as [DLOG] where each
   publisher is responsible for supplying all of the "who/what/where/
   when" information needed for each subscriber to _prove_ the
   publication complies with system policies.  If, as described in
   [DLOG], the system's trust requirements are expressed using a
   _declarative_ framework, they can be validated for consistency and
   completeness then converted to a compact runtime form which can be



Nichols, et al.          Expires 12 January 2023                [Page 7]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   authorized and secured via signing with the system trust anchor, then
   distributed, validated and updated using the same mechanisms used for
   identity certificates.  This trust schema can be used both to
   construct and validate publications, guaranteeing that _all_ parts of
   the system _always_ conform to and enforce the same rules, even as
   those rules evolve to meet new threats.

   OT communication maps well to pub/sub because it consists of
   independent messages that, due to interoperability requirements,
   conform to rigid standards on syntax and semantics
   [IEC61850][ISO9506MMS][ONE][MATR][OSCAL][NMUD][ST][ZCL].  Using
   conventional session-based transports combines these independent
   publications under a single session key.  Moving to a publication-
   based transport makes it possible to embed the trust management
   mechanism described above directly in the publish and subscribe data
   paths as shown below:

   (Artwork only available as svg: trustElements-rfc.svg)

               Figure 3: Trust management elements of DeftT.

   This style of trust management extends LangSec's [LANG] "be definite
   in what you accept" principle by using the authenticated common
   ruleset for belt-and-suspenders enforcement by both ends of the
   transport: If the trust schema shows the publication builder it
   doesn't have the credentials needed to produce a valid publication,
   an error is thrown and nothing is published.  Independently, if the
   publication validator doesn't have a locally validated, complete
   signing chain for the credential that signed some pub, the schema
   shows the signing chain isn't appropriate to the pub, or the pub's
   signature doesn't validate, the pub is ignored.  Since an app's
   subscriptions determine the pubs it will see, only certs of chains
   that sign pubs matching the subscriptions need to be validated or
   retained.  Thus a device's communication state burden and computation
   costs are a function of how many different things are allowed to talk
   to it but not how many things it talks to or the total number of
   devices in the system.  In particular, event driven, publish-only
   devices like sensors spend no time or space on validation.  And,
   unlike most 'secure' systems, adding additional trust schema
   constraints to reduce attack surface results in devices doing _less_
   work.










Nichols, et al.          Expires 12 January 2023                [Page 8]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   The particular rules for any deployment are application-specific
   (e.g., Is it home IoT or a nuclear power plant?) and site-specific
   (specific form of credential and idiosyncrasies in rules) which DeftT
   accommodates by being invoked with a ruleset particular for a
   deployment.  We anticipate that the efforts to create common data
   models for specific sectors will lead to easier and more forms-based
   configuration of DeftT deployments.

1.4.  Current status

   An open-source Defined-trust Communications Toolkit [DCT] with a
   reference implementation of DeftT is maintained by the corresponding
   author's company, Pollere.  Pollere is also working on home IoT uses.
   Massive build out of the renewable energy sector is driving
   connectivity needs for both monitoring and control.  Author King's
   company, Operant, is currently developing extensions of DeftT in a
   mix of open-source and proprietary software tailored for commercial
   deployment in support of distributed energy resources (DER).  Current
   small scale use cases have performed well and expanded usage is
   planned.  Pollere and Operant welcome collaborators with problems
   suitable for DeftT.

   [DCT] has examples of using DeftT to implement secure brokerless
   message-based pub/sub using UDP/IPv6 multicast and unicast UDP/TCP
   and include extending a trust domain via a unicast connection or
   between two broadcast domains.  As the needs of our use cases expand,
   the Defined-trust Communications (DC) architecture will evolve.
   Working implementations and performance improvements are occasionally
   added to the repository.  This reflects the development philosophy of
   DC to start from solving useful problems with a well-defined scope
   and extend from there.  DeftT's reference implementation code is
   open-source, as befits any communications protocol, but even more
   critical for one attempting to offer security.  DCT itself makes use
   of the open-source cryptographic library libsodium [SOD] and the
   project is open to feedback on potential security issues.

2.  Terms and Definitions

   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.

   *  DC: Defined-trust Communications
   *  Defined-trust transport (DeftT): the transport protocol of DC





Nichols, et al.          Expires 12 January 2023                [Page 9]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   *  DCT: Defined-trust Communications Toolkit.  Running code, examples
      and documentation for DC tools, a trust schema language and
      compiler, a DeftT implementation, and illustrative examples
   *  trust schema: defined set of rules that cover the communications
      for a particular application domain.  Where it is necessary to
      distinguish between the human readable version and the compiled
      binary version, the modifiers "readable" or "binary" will be used.
      The binary version is placed in a certificate signed by a trust
      anchor.
   *  trust anchor: NIST SP 800-57 Part 1 Rev. 5 definition "An
      authoritative entity for which trust is assumed.  In a PKI, a
      trust anchor is a certification authority, which is represented by
      a certificate that is used to verify the signature on a
      certificate issued by that trust-anchor.  The security of the
      validation process depends upon the authenticity and integrity of
      the trust anchor's certificate.  Trust anchor certificates are
      often distributed as self-signed certificates."  In DCF, a trust
      anchor is a self-signed certificate which is the ultimate signer
      of all certificates in use in a trust domain, including the trust
      schema.  From RFC4949: trust anchor definition: An established
      point of trust (usually based on the authority of some person,
      office, or organization) from which a certificate user begins the
      validation of a certification chain.
   *  trust domain (TD): a zero trust network governed by a single trust
      anchor and trust schema which is enforced at run-time by a library
      using a signed binary copy of the trust schema at each member
      entity.  Nothing is accepted without validation; non-conforming
      communications are silently discarded.  As the trust schema cert
      is signed by the trust anchor, the trust schema cert's thumbprint
      uniquely identifies a trust domain.
   *  signing identity: a unique signing certificate of a particular
      entity that is the leaf of a certificate chain that terminates in
      the local root of trust.  Certificates in the chain contain role
      and capability information thus signing identities are distributed
      with their chain-of-trust
   *  capabilities: certificates that contain attributes of a signing
      identity and are part of the identity's chain-of-trust as defined
      in a trust schema
   *  certificate thumbprint: the 32 byte SHA256 digest of the entire
      signing cert including its signature ensuring that each thumbprint
      resolves to one and only one cert and signing chain
   *  identity bundle - entities in a trust zone are commissioned with
      an identity bundle of trust anchor, signed trust schema, and the
      signing certs associated with a particular identity
   *  protocol data unit (PDU): (following the wikiPedia definition) a
      single unit of information transmitted among peer entities of a
      computer network composed of protocol-specific control information
      and user data



Nichols, et al.          Expires 12 January 2023               [Page 10]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   *  Publication: a named information object exchanged used by DeftT
      where name structure and the required identity roles and
      capabilities for Publications are specified by the trust schema.
      Publications are the elements of sets that are reconciled by
      DeftT's sync protocol.  (Capitalization is used to distinguish
      this specific use from both the action and more generic use of the
      term.)
   *  sync zone: a trust domain, or subdomain, on a single subnet.  A
      sync zone comprises all the sync collections that DeftTs with a
      particular trust schema participate in on a single subnet (e.g.,
      pubs, cert, keys)
   *  sync protocol: a protocol that implements the set reconciliation
      of Publications making use of cState and cAdd PDUs
   *  collection: a set of elements denoted by structured names
      including the identifier of a particular trust schema
   *  cState: (from "collection state")
   *  cAdd: (from "collection additions")
   *  Face: maintains tables of DeftT's cState PDUs to manage efficient
      communications with the system transport in use (UDP multicast,
      TCP, etc.)
   *  trust-based relay: a special-purpose entity that connects a trust
      domain across different subnets
   *  Things: as per [RFC8520], networked digital devices specifically
      not intended to be used for general purpose computing

3.  DeftT and Defined-trust Communications

   DeftT synchronizes and secures communications between enrolled
   entities of a Limited Domain [RFC8799].  Like QUIC, DeftT is a user-
   space transport protocol that sits between an application and a
   system-provided transport like UDP.  DeftT's set reconciliation
   communication model contrasts with the bilateral communication model
   of TCP or QUIC where a source and a destination coordinate with one
   another to transport information.  DeftT collections (sets) are
   denoted by structured names including the identifier of a particular
   trust schema.  Communicating DeftTs may hold different subsets of the
   collection at any time (e.g., immediately after entities add elements
   to the collection) but the protocol ensures they all converge to
   holding the complete set of elements within a few round-trip-times
   following the changes.











Nichols, et al.          Expires 12 January 2023               [Page 11]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


3.1.  DeftT role in application communications

   DeftT's security enforces "who can say what to which" as well as
   providing required integrity, authenticity and confidentiality.
   Applications use DeftT to add to and access from a distributed
   collection of Publications.  Transparently to applications, a DeftT
   instance both constructs and validates all Publications against a set
   of formal, validated rules.  Each new DeftT is configured with these
   rules in certificate form along with a signing chain that includes
   its private signing identity and has the same root of trust as the
   certificate of trust rules.  A DeftT is identified by its signing
   identity and the role and capabilities in that identity's signing
   chain.  Each DeftT must add its credentials (signing chain) to a
   certificate collection prior to adding publications to the
   collection.  DeftT validates credentials as a chain of trust against
   the shared trust rules and does not accept Publications without a
   fully validated signer identity.

   Communicating DeftTs must be in the same _trust domain_ (TD), i.e.,
   identities derive from the same root of trust and follow an identical
   trust schema.  Using this shared set of rules, DeftT provides fully
   distributed policy enforcement for the TD without relying on a
   secured-perimeter physical network and/or extensive per-device
   configuration.  Trust schemas are distributed as a trust-root-signed
   certificate and that certificate's thumbprint uniquely identifies a
   TD in DeftT PDUs.  DeftT can share an IP network with non-DeftT
   traffic as well as DeftT traffic of a different TD.  Privacy via AEAD
   PDU content encryption is automatically handled within DeftT.

   (Artwork only available as svg: ./transportBD0v2-rfc.svg)

         Figure 4: DeftT's external interaction in a network stack

   Figure 4 shows the data that flows in and out of a DeftT instance.
   An application-specific format is used for information exchanged with
   an application.  DeftT uses its trust schema to turn this information
   into Publications that it adds to its set (_sync_ collection).  DeftT
   implements two types of transport PDU, both broadcast on its subnet,
   that it uses to manage the set.  One represents the _collection
   state_ (cState) of one or more DeftTs by an IBLT that contains all
   the Publications the DeftT currently has in its collection.  The
   cState serves as a query for additional data that isn't reflected in
   its local state.  The other PDU carries the _collection additions_
   (cAdds) that are sent in response to a cState.  Reception of a cAdd
   with new data responds to a particular cState so a receiving DeftT
   removes that cState as a pending query (it will be replaced with a
   new cState with the addition of the new items).  DeftT requires and
   implements signing and validation of publications as well as the cAdd



Nichols, et al.          Expires 12 January 2023               [Page 12]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   PDUs that transport them.  As these dynamics are exactly that of
   Named-Data Networking's Interest (cState) and Data (cAdd) packets,
   the DeftT reference implementation uses a restricted subset of that
   format for its PDUs along with its own broadcast-optimized Face
   protocol.  (DeftT does not utilize a NDN forwarder or implement the
   full NDN protocol.)

   Any DeftT that is missing a Publication (due to being out-of-range or
   asleep, etc.) can receive it from any other DeftT.  The
   reconciliation protocol will continue to send cAdds as long as
   cStates are received that don't contain some of their publications.
   This results in reliability that is subscriber-oriented, not
   publisher-oriented and is efficient for broadcast media, particularly
   with protocol features designed to prevent multiple redundant
   broadcasts.  DeftT's reference implementation includes an efficient
   multicast-optimized approach.

3.2.  Information movement is based on trust rules

   The Internet's transport and routing protocols emphasize universal
   reachability and packet forwarding is based on destination.  A
   significant number of uses neither need nor desire to transit the
   Internet.  For a wide class of OT applications, depending on the good
   sending practices of others while accepting packets has left critical
   applications open to misconfiguration and attacks.  DC only moves its
   Publications if they follow trust rules, an approach that differs
   from Internet forwarding but offers new opportunities.

   DeftTs on the same subnet may not be in the same trust domain (TD)
   and DeftTs in the same TD may not be on the same subnet.  In the
   former case, cState and cAdd PDUs of different TDs are differentiated
   by the trust domain id (thumbprint of the certificate holding the
   domain's trust rules) which can be used to determine whether or not
   to process a PDU.  A particular sync zone is managed on a single
   subnet: cState and cAdds are not forwarded off that subnet.  Trust-
   based _relays_ connect separate sync zones while preserving a trust
   domain for the publications.  A relay is an application running on a
   device with a network interface on each subnet that has two or more
   DeftT instances.  Each DeftT participates in a different sync zone
   and has a signing identity valid for its sync zone.  Each subnet's
   DeftT uses the same trust rules to validate Publications and those
   that arrive via one DeftT are added to the collections of all other
   DeftTs of the relay (after validation).  Only Publications are
   relayed between subnets and the Publication must match a trust rule
   in the DeftT's trust engine.  (Note that cAdd encryption is unique
   per subnet/sync collection.)





Nichols, et al.          Expires 12 January 2023               [Page 13]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


3.3.  Relays extend a trust domain

   Relay DeftTs use a special API module (a "shim", see Appendix A.6)
   that performs "pass-through" of valid Publications rather than
   creating Publications.  The relay of Figure 5-left has three separate
   wireless subnets.  If all three DeftTs use the same trust schema, a
   new validated cert added to the cert store of one DeftT is passed to
   the other two, which will validate it before adding to its own cert
   store (superfluous in this case, but not a lot of overhead for
   additional security).  When a valid Publication is received by one
   DeftT, it is passed to the other two DeftTs to validate against their
   trust schema copies and published if it passes.

   (Artwork only available as svg: relayextend-rfc.svg)

                      Figure 5: Relays connect subnets

   Relays can also connect subsets of a TD, either proper subsets or
   overlapping subsets.  A relay may have different identities and trust
   schemas for each of its DeftT but must have the same trust anchor.
   Publications that are undefined for a particular DeftT will not pass
   its validation and will be silently discarded.  This means the relay
   application of Figure 5-left can remain the same but Publications
   will only be published to a different subnet if its DeftT has that
   format in its ruleset.  If the added efficiency of filtering
   Publications prior to validation checks is desired, a relay can be
   altered to limit subscriptions (a one-line change) on some DeftT(s)
   or may add code to filter Publications before passing to other
   DeftT(s).  Figure 5-right shows extending a trust domain
   geographically by using a unicast connection (e.g., over a cell line
   or tunnel over the Internet) between two relays which also interface
   to local broadcast networks.  Everything on each local network shows
   up on the other.  A TD subset could be used here to limit the types
   of Publications sent on the remote link, e.g., logs or alerts.  Using
   this approach in Figure 5-right, local communications for subnet 1
   can be kept local while subnet 2 might send commands and/or collect
   log files from subnet 1.

   More generally, relays can form a mesh of broadcast networks with no
   additional configuration (i.e., relays on a broadcast network do not
   need to be configured with others' identities).  The mesh is
   efficient: publications are only added to an individual DeftT's
   collection once regardless of how it is received.  More on the
   applicability of DeftT meshes is in Section 4.







Nichols, et al.          Expires 12 January 2023               [Page 14]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


3.4.  DeftT and congestion control

   Each DeftT instance manages its collection on a single broadcast
   subnet (since unicast is a proper subset of multicast, a point-to-
   point connection is viewed as a trivial broadcast subnet) thus only
   has to deal with that subnet's congestion.  (As described in the
   previous section, a device connected to two or more subnets may
   create DeftT instances having the same collection name on each subnet
   with an app-level _publication_ relay between them but DeftT never
   forwards _PDUs_ between subnets.  It is, of course, possible to run
   DeftT over an extended broadcast network like a PIM multicast group
   (or NDN NFD forwarding mesh?) but the result will generally require
   more configuration and be less reliable, efficient and secure than
   DeftT's self-configuring peer-to-peer relay mesh described in the
   previous section.

   DeftT will send _at most one_ copy of any publication over any
   subnet, _independent_ of the number of publishers and subscribers on
   the subnet.  Thus the total DeftT traffic on a subnet is strictly
   upper bounded by the app-level publication rate.  As described in
   Section 3.1, instances publish a cState specifying the set elements
   they currently hold.  If an instance receives a cState specifying the
   same elements it holds, it doesn't send its cState.  Thus the upper
   bound on cState publication rate is the number of peers on the subnet
   divided by the cState lifetime (typically seconds to minutes) but is
   typically one per cState lifetime due to the duplicate suppression.
   Each peer can send at most one cAdd in response to a cState.  This
   creates a strict request/response flow balance which upper bounds the
   cAdd traffic rate to number of peers - 1 times the cState publication
   rate.  The flow balance ensures an instance can't send a new cState
   until it's previous one is either obsoleted by a cAdd or times out.
   Similarly a cAdd can only be sent in response to the cState which it
   obsoletes.  Thus the number of outstanding PDUs per instance is at
   most one and DeftT cannot cause subnet congestion collapse.

   If a relay is used to extend a TD over a path whose bandwidth delay
   product is many times larger than typical subnet MTUs (1.5-9KB), the
   one-outstanding-PDU per peer constraint can result in poor
   performance (1500 bytes per 100ms transcontinental RTT is only
   120Kbps).  DeftT can run over any lower layer transport and stream-
   oriented transports like TCP or QUIC allow for a 'virtual MTU' that
   can be set large enough for DeftT to relay at or above the average
   publication rate (the default is 64KB which can relay up to 5Mbps of
   publications into a 100ms RTT).  In this case there can be many lower
   layer packets in flight for each DeftT PDU but their congestion
   control is handled by TCP or QUIC.





Nichols, et al.          Expires 12 January 2023               [Page 15]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


3.5.  Defined-trust management

   OT applications are distinguished (from general digital
   communications) by well-defined roles, behaviors and relationships
   that constrain the information to be communicated.  Structured
   abstract profiles characterize the capabilities and attributes of
   Things and can be machine-readable.  Energy applications in
   particular have defined strict role-based access controls [IEC]
   though proposed enforcement approaches require interaction of a
   number of mechanisms across the communications stack [NERC].  These
   structured profiles and rules strictly define permitted behaviors
   including what types of messages can be issued or acted on; undefined
   behaviors should not be permitted.  DC can incorporate these rules
   along with local configuration directly into the trust schemas used
   in DeftT's integrated trust management engine.  This not only
   provides a fine-grained security but a highly _usable_ security, an
   approach that can make an application writer's job easier since
   applications do not need to contain local configuration and security
   considerations.

   DeftT's trust engine modules use trust schemas which are compiled
   into a binary format to become the content of a certificate signed by
   the trust domain's root of trust.  The trust schema contains the
   defined rules that describe the format of PDUs and the specific roles
   and credentials that must be in the signing chain of entities that
   create them.  Defined-trust Communications includes the use of trust
   schemas, a language for expressing the trust schemas, and the use of
   a compiler and other tools to create the credentials a DeftT needs at
   run-time to function in a particular TD.

3.5.1.  About trust schemas

   Defined-trust communications formalizes the rules governing
   communications in _trust schemas_. Trust schemas grew out of early
   work in CCN [SNC] which in turn was partially based on the seminal
   SDSI [SDSI] approach to create user-friendly namespaces creating
   transitive trust through a certificate (cert) chain that validates
   locally controlled and managed keys, rather than requiring a global
   Public Key Infrastructure (PKI).  Certificates are created that have
   a particular context in which they should be utilized and trusted
   rather than conferring total authority.  [CRTMG] proposed using
   locally controlled and administered secure identities that were
   verifiable at each (routing) process to provide a key management
   structure for intradomain IP routing.  Blaze et. al.  [DTM] defined
   the term _trust management_ for the study of security policies,
   security credentials, and trust relationships.  Li et. al.  [DLOG]
   later refines some trust management concepts arguing that the
   expressive language for the rules should be declarative (as opposed



Nichols, et al.          Expires 12 January 2023               [Page 16]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   to the original work).  This body of work influences that of trust
   schemas, which allow for specifying security rules based on
   application name structures.  Trust schemas for Named-Data Networking
   were described by Yu et al [STNDN] as "an overall trust model of an
   application, i.e., what is (are) legitimate key(s) for each data
   packet that the application produces or consumes" and gave a general
   description of how trust schema rules might be used by an
   authenticating interpreter finite state machine to apply the rules to
   packets, only addressing validation.

   A new approach to both the trust schema language and the integration
   of trust schemas with applications was introduced in [NDNW], extended
   in [DNMP][DCT].  In this approach, a trust schema is analogous to the
   plans for constructing a building.  Construction plans serve multiple
   purposes:

   1.  Allow permitting authorities to check that the design meets
       applicable codes
   2.  Show construction workers what to build
   3.  Let building inspectors validate that as-permitted matches as-
       built

   Construction plans get this flexibility from being declarative: they
   describe "what", not "how".  As noted in p.4, a declarative trust
   management specification based on a formal foundation guarantees all
   parties to a communication have the same notion of what constitutes
   compliance.  This allows a single schema to provide the same
   protection as dozens of manually configured, per-node ACL rules.
   This approach is a critical part of Defined-trust Communications and
   an implementation (VerSec) is included with the Defined-trust
   Communications Toolkit [DCT].  Versec includes a declarative schema
   specification language with a compiler that checks the formal
   soundness of a specification (case 1 above) then converts it to a
   signed, compact, binary form.  The binary form is used by DeftT to
   build (case 2) or validate (case 3) the Publications of a sync
   collection.  In the reference implementation [DCT], these objects are
   called "publications" and have names, content and signatures (using a
   restricted subset of NDN Data packets, covered in Appendix B).
   Certificates are a type of publication, allowing them to be
   distributed and validated using DeftT, but they are subject to many
   additional constraints (Section 3.6.1,Appendix B.2) that ensure
   DeftT's security framework is well-founded.









Nichols, et al.          Expires 12 January 2023               [Page 17]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


3.5.2.  A language for DeftT trust schemas

   The language follows LangSec [LANG] principles to minimize
   misconfiguration and attack surface.  It has a structure amenable to
   a forms-based input or a translator from structured data
   descriptions.  Declarative languages are expressive and strongly
   typed, so they can express the constructs in these standards in the
   trust schema.  Versec continues to evolve to add new features as we
   expand our application domains and the latest released version is at
   [DCT].  Other languages and compilers are possible as long as they
   supply the features and output needed for DeftT.

   Defined-trust Communications makes the rules of trust available to
   every entity.  A trust schema expresses the intent for an application
   domain's communications in fine-grained rules: who can say what.
   Credentials that define "who" are specified along with complete
   definitions of "what".  For application domains where the
   communicating entities share an administrative control, using a third
   party to certify identity is unnecessary and can introduce
   vulnerability.  Defined-trust Communications is targeted at OT
   networking where administrative control is explicit and it is not
   unreasonable to assume that identities and trust rules are securely
   configured for every deployed entity.

   A trust schema details the meaning and relationship of individual
   components of the filename-like names (URI syntax RFC3986) of
   publications and certificates.  A simple trust schema (Figure 6)
   defines a publication of this trust domain as #pub with a six
   component name.  The strings between the slashes are the tags used to
   reference each component in the structure form and in the run-time
   schema library.  An example of this usage is the component constraint
   following the "&" where ts is a timestamp (64-bit unix timepoints in
   microseconds) which will be set with the current time when a
   publication is created.  The first component gets its value from the
   variable "domain." #pubPrefix is designated as this single component
   (though multiple components are permitted) so that the trust schema
   contains information on what part of the name is considered common
   prefix.  The Figure 6 trust schema puts no constraints on other name
   components (not the usual case for OT applications) but does require
   that Publications of template #pub are signed by ("<=") a roleCert
   whose format and signing rule (signed by a netCert) is also defined.
   The "Validator" lines specify cryptographic signing and validation
   algorithms from DCT's run-time library for both the Publication and
   the cAdd PDU that carries Publications.  Here, both use EdDSA
   signing.  The trust domain defined by this schema has no constraints
   on the inner four name components (additional constraints could be
   imposed by the application but they won't be enforced by DeftT) but
   must sign all Publication using the EdDSA algorithm and the



Nichols, et al.          Expires 12 January 2023               [Page 18]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   Collection synchronization module must sign all cAdds using the EdDSA
   algorithm.  Entity identity comes from a roleCert (including private
   key) which allows it to create legal communications.  The signing
   certificate MUST adhere to the trust schema and Publications or cAdds
   with unknown signers are discarded.  The timestamp component can be
   used to prevent replay attacks.  DeftT is structured to add its
   identity (public) certs to a trust domain's certificate collection
   (see {#certificates)) when instantiated, making its identity
   available to all other entities in the trust domain.  This approach
   means entities are not configured with identities of other members of
   a trust domain and new entities can join a trust domain at any time.

#pub: /_domain/trgt/topic/loc/arg/_ts & { _ts: timestamp() } <= roleCert
roleCert:       _domain/_role/_roleId/_keyinfo <= netCert
netCert:        _domain/_keyinfo
#pubPrefix:     _domain
#pubValidator:  "EdDSA"
#cAddValidator: "EdDSA"
_domain:        "example"
_keyinfo:       "KEY"/_/"dct"/_

                  Figure 6: An example trust schema

   To keep the trust schema both compact and secure, it is compiled into
   a binary format that is the content of a trust schema certificate.
   [DCT] contains a compiler (schemaCompile) that converts the text
   version (e.g.  Figure 6) of the trust schema into a binary output
   file as well as diagnostic output (see Figure 7) used to confirm the
   intent of the trust rules (and which will flag problems).  Entities
   are configured with the trust domain's trust anchor, the trust schema
   and their own identity in the trust domain.  From these elements, any
   other TD member's credentials can be verified, so no entity has
   apriori knowledge of any other entity.  Device configuration should
   be carried out using appropriate applicable best practices
   [TATT][DMR][IAWS][TPM][RFC8995].
















Nichols, et al.          Expires 12 January 2023               [Page 19]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   Publication #pub:
     parameters: trgt topic loc arg
     tags: /_domain/trgt/topic/loc/arg/_ts
   Publication #pubPrefix:
     parameters:
     tags: /_domain
   Publication #pubValidator:
     parameters:
     tags: /"EdDSA"
   Publication #cAddValidator:
     parameters:
     tags: /"EdDSA"
   Certificate templates:
     cert roleCert: /"example"/_role/_roleId/"KEY"/_/"dct"/_
     cert netCert: /"example"/"KEY"/_/"dct"/_
   binary schema  is 301 bytes

     Figure 7: schemaCompile diagnostic output for example of Figure 6

   This simple trust schema provides useful security, using identities
   both to constrain communications actions (via strict format of
   communications) and to convey membership.  To increase security, more
   detail can be added to the trust schema of Figure 6.  For example,
   different types of roles can be created, here "admin" and "sensor",
   and communications privacy can added by specifying AEAD Validator to
   encrypt cAdds.  To make those roles meaningful, role-specific
   publications can be defined such that only admins can issue commands
   and only sensors can issue status.  Specifying the AEAD validator
   means that at least one entity in the trust domain will need the key
   maker capability in its signing chain and here that capability is put
   in the signing chain of all sensors.  WIth AEAD specified, a key
   maker is elected during instantiation of DeftT and that key maker
   creates, publishes, and periodically updates the shared encryption
   key.  (Late joining entities are able to discover that a key maker
   has already been chosen.)  These are the _only_ changes required in
   order to increase security and add privacy: neither application code
   nor binary needs to change and DeftT handles all aspects of
   validators.  The unique approach to integrating the communication
   rules into the transport makes it easy to produce secure application
   code.

   adminCert:  roleCert & { _role: "admin" } <= netCert
   sensorCert: roleCert & { _role: "sensor" } <= kmCap
   capCert:    _network/"CAP"/_capId/_capArg/_keyinfo <= netCert
   kmCap:      capCert & { _capId: "KM" }
   #reportPub: #pub & {topic:"status"} <= sensorCert
   #commandPub: #pub & {topic:"command"} <= adminCert
   #cAddValidator: "EdDSA"



Nichols, et al.          Expires 12 January 2023               [Page 20]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


          Figure 8: Enhancing security in the example trust schema

   Converting desired behavioral structure into a trust schema is the
   major task of implementing Defined-trust Communications for an
   application domain.  Once completed, all the deployment information
   is contained in a trust schema, which makes an application writer's
   job much easier.  Although a particular trust schema cert defines a
   particular trust domain, the text version of a trust schema can be
   re-used for related applications.  For example, a home IoT trust
   schema could be edited to be specific to a particular home network or
   a solar rooftop neighborhood and then signed with a chosen trust
   anchor.

3.6.  DC certificates and identity bundles

   To participate in a trust domain, an entity needs the domain's trust
   anchor, signed trust schema cert and an identity signing cert (public
   key cert that includes private key) complete with its signing chain
   (public certs only) terminating at the zone's trust anchor.  The
   public signing certs of other entities are obtained and validated
   (using the common trust schema and anchor) at run-time and as
   entities join.  Well-formed certificates and identity bundle
   deployment are critical elements of DC.  This section describes
   certificate requirements and the construction and installation of an
   identity bundle.  DCT includes utilities to create certs and bundles.

3.6.1.  About DC certificates

   As previously noted, use of third party CAs is often antithetical to
   OT security needs.  Any use of a CA (remote or local) results in a
   single point of failure that greatly reduces system reliability.
   Employing a SDSI-like architecture with a single, local, trust root
   cert (trust anchor) simplifies trust management and avoids the well-
   known certificate authority (CA) federation and delegation issues
   (there are no CAs; just the local trust anchor) and other weaknesses
   of the X.509 architecture (summarized at [W509], original references
   include [RSK][NVR]).  DC certs (see {#certificates)) can be generated
   and signed locally so there is no reason to aggregate a plethora of
   unrelated claims into one cert (avoiding the Aggregation problem
   [W509]).  A cert's one and only Subject Name is the name of the
   Publication that contains the cert as its content and neither name
   nor content are allowed to contain any optional information or
   extensions.  Signing identities are granted roles and capabilities in
   a trust schema by the certs that appear in their chain of trust.

   All certificates are created with a lifetime; local production means
   cert lifetimes can be just as long as necessary (as recommended in
   [RFC2693]) so there's no need for the code burden and increased



Nichols, et al.          Expires 12 January 2023               [Page 21]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   attack surface associated with certificate revocation lists (CRLs) or
   use of on-line certificate status protocol (OSCP).  Key roles that
   require longer lifetimes, like device keys, get new certs before the
   current ones expire and may distribute those through DeftT.  If there
   is a need to exclude previously authorized entities from a trust
   domain, there are a variety of options.  The most expedient is via
   use of the AEAD Validator by ensuring that the group key maker(s) for
   a trust domain exclude that entity from subsequent symmetric key
   distributions.  It is also possible to distribute a new trust schema
   and signing identities (without changing the trust anchor) using
   remote attestation via the TPM.

3.6.1.1.  Identity bundles

   Identity bundles hold the certificates an entity's DeftT needs to
   participate in a trust domain: trust anchor, trust schema, and certs
   in the signing identity chain of trust.  Identity bundles are
   intended to be installed securely when a device is first commissioned
   (out-of-band) for a network.  The public certs can be placed in a
   file in a well-known location; only the private key of the bundle
   must be secured.  The process of enrolling a device into a network by
   provisioning an initial secret and identity in the form of public-
   private key pair and using this information to securely onboard a
   device to a network has a long history.  Current and emergent
   industry best practices provide a range of approaches for secure
   installation and update of private keys.  For example, the private
   key of the bundle can be secured using the Trusted Platform Module,
   the best current practice in IoT
   [TATT][DMR][IAWS][TPM][OTPM][SIOT][QTPM][SKH], or secure enclave
   [ATZ].  Then an authorized configurer adding a new device can use TPM
   tools to secure the private signing key and install the rest of the
   bundle file in a known location before deploying the device in the
   network.  Figure 9 shows the steps involved in configuring entities
   and the correspondence of the steps to the "building plans" model.
   The corresponding tools available in DCT are shown across the bottom
   and the relationship to the "building plans" model is shown across
   the top.

   (Artwork only available as svg: tools.config-rfc.svg)

            Figure 9: Creating and configuring identity bundles

   In the examples at [DCT], an identity bundle is given directly to an
   application directly via the command line, useful for development.
   For deployment, good key hygiene using best current practices must be
   followed e.g., [CIOT].  In deployment [maybe point to Use Case?], a
   small application manager is programmed for two specific purposes.
   First, it is registered with a supervisor [SPRV] (or similar process



Nichols, et al.          Expires 12 January 2023               [Page 22]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   control) for its own (re)start to serve as a bootstrap for the
   application entity.  Second, it has access to the TPM functions and
   the ability to create "short-lived" (~hours to several days) public/
   private key pair(s) that will be signed by the private key of the
   installed identity cert using the TPM, which will happen at (re)start
   and at the periodicity of the cert lifetime.  Since the signing
   happens via requests to the TPM, the key cannot be exfiltrated.  At
   (re)start, the signing cert is added to the stored bundle file (the
   entire chain should be rechecked for validity) and passed to the
   application entity as it is invoked.  For periodic signing cert
   updates, only the new cert needs to be passed to the already running
   entity as the rest of the bundle does not change.  The entity's DeftT
   uses its cert distributor to publish its new certs.  Figure 10
   outlines the procedures.

   (Artwork only available as svg: InstallIdbundle-rfc.svg)

    Figure 10: Representative commissioning and signing key maintenance

   All DCT certs have a validity period.  Certs that sign publications
   are typically generated locally for the app that's going to use them
   thus can easily be refreshed at need.  Trust anchors, trust schema,
   and the secured signing identity are higher value and often require
   gereation under hermetic conditions by some central authority.  Their
   lifetime should be application- and deployment-specific, but the
   higher difficulty of cert production and distribution often requires
   liftetimes of weeks to years.  Updating trust schemas and other
   certificates over the deployed network is application-domain specific
   and can either make use of domain best practices or develop custom
   DeftT-based distribution.  Changing the trust anchor is considered a
   re-commissioning and not expected to be done over-the-air.

4.  Use Cases

4.1.  Secure Industrial IoT

   IIoT sensors offer significant advantages in industrial process
   control including: improved accuracy, process optimization,
   predictive maintenance and analysis, higher efficiency, low-cost
   remote accessibility and monitoring, reduced downtime, power savings,
   and reduced costs [IIOT].  The large physical scale of many
   industrial processes necessitates that expensive cabling costs be
   avoided through wireless transport and battery power.  This is
   particularly an issue in nuclear power plant applications where
   radioactive shielding walls are very thick concrete and security
   regulations make any plant modifications to add cabling subject to
   expensive and time-consuming reviews and permitting.  Wireless sensor
   deployments in an industrial environment can suffer from signal



Nichols, et al.          Expires 12 January 2023               [Page 23]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   outages due to shielding walls and interference caused by rotating
   machinery and electrical generators.  Resiliency through the use of
   multiple gateway devices, that can receive sensor information and
   transmit to monitor/controllers and servers, can be used to create a
   robust architecture.  Gateways that use DeftT can form a robust
   wireless mesh that is resilient against transmission outages,
   facilitating reliability.  DeftT forms meshes with no additional
   configuration as Publications missing from one DeftT's set can be
   supplied by another within range.  Several gateways are typically
   within a single sensor's wireless range, reducing the number of lost
   sensor packets.  Other meshed gateways can relay the sensor's
   publications either wirelessly or via a wired ethernet backhaul.

   IIoT sensors require tight security.  Critical Digital Assets (CDA)
   are a class of industrial assets such as power plants or chemical
   factories which must be carefully controlled to avoid loss-of-life
   accidents.  Even when IIoT sensors are not used for direct control of
   CDA, spoofed sensor readings can lead to destructive behavior.  There
   are real-life examples (such as uranium centrifuges) of nation-state
   actors changing sensor readings through cyberattacks leading to
   equipment damage.  These risks result in a requirement for stringent
   security reviews and regulation of CDA sensor networks.  Despite the
   advantages of deploying CDA sensors, adequate security is
   prerequisite to deploying the CDA sensors.  Information conveyed via
   DeftT has an ensured provenance and may be encrypted in an efficient
   implementation making it ideal for this use.

   IIoT sensors may be mobile (including drone-based) and different
   gateways may receive the wireless broadcast of a particular sensor
   over time.  A DeftT mesh captures Publications anywhere within its
   combined wireless network coverage area and ensures it efficiently
   reaches all other subscribing DeftTs as long as they are in range of
   at least one that has received the information.  An out-of-service or
   out-of-range DeftT can receive all active subscribed publications
   once it is in range and/or able to communicate.  This type of use of
   DeftT is illustrated in Figure 11 where gateway devices are deployed
   with DeftT relay applications that have a Bluetooth (BT) interface
   and a WiFi interface.  A number of BT devices are deployed as
   sensors, switches, cameras, lock openers, etc.  The WiFi network
   includes tablet devices and a monitor/controller computer.  Gateways
   are placed so that there is always at least one gateway in range of a
   BT device and at least one gateway (or the controller) in its WiFi
   range.  WiFi tablets can move around within range of one or more
   gateways.  If all the DeftTs have an identical trust schema, devices
   on the WiFi network have access to all of the BT devices though
   applications on any particular device may subscribe to any subset of
   the information available.  The WiFi DeftTs can be given a trust
   schema that requires encrypting its cAdds so that longer-range data



Nichols, et al.          Expires 12 January 2023               [Page 24]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   is kept private.  These configuration choices are made by changes in
   the trust schemas alone, the application code is exactly the same.
   No configuration is needed to make devices recognize one another and
   the dynamics of syncps will keep communications efficient, ensuring
   that all DeftTs in the trust domain know what information is
   available.  The Face implementation ensures that requested
   Publications are only sent once (within a particular range).  These
   features mean that DeftT forms efficient broadcast meshes with no
   additional configuration, an important advantage.

   (Artwork only available as svg: relaymesh-rfc.svg)

       Figure 11: IIOT meshed gateways using DeftT relay applications

   In addition to specifying encryption and signing types, trust rules
   control which users can access specific sensors.  For example, an
   outside predictive maintenance analysis vendor can be allowed access
   to the vibration sensor data from critical motors which is relayed
   through the internet, while only plant Security can see images from
   the site cameras due to privacy concerns.

4.2.  Secure access to Distributed Energy Resources (DER)

   The electrical power grid is evolving to encompass many smaller
   generators with complex interconnections.  Renewable energy systems
   such as smaller-scale wind and solar generator sites must be
   economically accessed by multiple users such as building owners,
   renewable asset aggregators, utilities, and maintenance personnel
   with varying levels of access rights.  North American Electric
   Reliability Corporation Critical Infrastructure Protection (NERC CIP)
   regulations specify requirements for communications security and
   reliability to guard against grid outages [DER].  Legacy NERC CIP
   compliant utility communications approaches, using dedicated
   physically secured links to a few large generators, are no longer
   practical.  DeftT offers multiple advantages over point-point TLS
   connections for this use case:

   *  Security.  Encryption, authentication, and authorization of all
      information objects.  Secure broker-less pub/sub avoids single-
      point broker vulnerabilities.  Large generation assets of hundreds
      of megawatts to more than 1 gigawatt, particularly nuclear power
      plants must be controlled securely or risk large-scale loss of
      life accidents.  Hence, they are attractive targets for
      sophisticated nation-state cyber attackers seeking damage with
      national security implications.  Even small-scale DER generators
      are susceptible to a coordinated attack which could still bring
      down the electric grid.




Nichols, et al.          Expires 12 January 2023               [Page 25]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   *  Scalability.  Provisioning, maintaining, and distributing multiple
      keys with descriptive, institutionalized, hierarchical names.
      DeftT allows keys to be published and securely updated on-line.
      Where historically a few hundred large-scale generators could
      supply all of the energy needs for a wide geographic area, now
      small-scale DER such as residential solar photovoltaic (PV)
      systems are located at hundreds of thousands of geographically
      dispersed sites.  Many new systems are added daily and must be
      accommodated economically to spur wider adoption.
   *  Resiliency.  A mesh network of multiple client users, redundant
      servers, and end devices adds reliability without sacrificing
      security.  Generation assets must be kept on-line continuously or
      failures risk causing a grid-wide blackout.  Climate change is
      driving frequent natural disasters including wildfires,
      hurricanes, and temperature extremes which can impact the
      communications infrastructure.  If the network is not resilient
      communications breakdowns can disable generators on the grid
      leading to blackouts.
   *  Efficiency.  Data can be published once from edge gateways over
      expensive cellular links and be accessed through servers by
      multiple authorized users, without sacrificing security.  For
      small residential DER systems, economical but reliable
      connectivity is required to spur adoption of PV compared to
      purchasing from the grid.  However, for analytics, maintenance and
      grid control purposes, regular updates from the site by multiple
      users are required.  Pub/sub via DefT allows both goals to be met
      efficiently.
   *  Flexible Trust rules: Varying levels of permissions are possible
      on a user-by-user and site-by-site basis to tightly control user
      security and privacy at the information object level.  In an
      energy ecosystem with many DER, access requirements are quite
      complex.  For example, a PV and battery storage system can be
      monitored on a regular basis by a homeowner.  Separate equipment
      vendors for batteries and solar generation assets, including
      inverters, need to perform firmware updates or to monitor that the
      equipment is operating correctly for maintenance and warranty
      purposes.  DER aggregators may contract with a utility to supply
      and control multiple DER systems, while the utility may want to
      access production data and perform some controls themselves such
      as during a fire event where the system must be shut down.
      Different permissions are required for each user.  For example,
      hourly usage data which gives detailed insight into customer
      behaviors can be seen by the homeowner, but for privacy reasons
      might only be shared with the aggregator if permission is given.
      These roles and permissions can be expressed in the trust rules
      and then secured by DeftT's use of compiled trust schemas.





Nichols, et al.          Expires 12 January 2023               [Page 26]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   The specificity of the requirements of NERC CIP can be used to create
   trust schemas that contain site-specifics, allowing applications to
   be streamlined and generic for their functionality, rather than
   containing security and site-specifics.

5.  Security Considerations

   Security of data in the application space is out-of-scope for this
   document.  This document covers a transport protocol that secures the
   information it conveys (COMSEC in the language of [RFC3552]).

   Security of DeftT's code is out-of-scope for this document.  Changes
   to DeftT code could bypass validation of received PDUs or modify the
   content of outgoing PDUs prior to signing (but valid PDUs would still
   have to be sent or else they will be dropped by uncompromised
   entities).  In the event that modifications of a device's software/
   firmware by unauthorized usage is of concern, a trusted execution
   environment such as ARM's TrustZone should be employed.  As show in
   {#fig3}, DeftT has been designed to accomodate this: all of the DeftT
   code and data is on the right side of the diagram and reachable
   _only_ via two narrow API calls, Publish and Subscribe.  The code and
   data could easily be put in a secure zone reachable only via
   callgates for each API call.

   Providing crypto functions is out-of-scope of this document.  The
   reference implementation uses libsodium, an open source library
   maintained by experts in the field [SOD].  Crypto functions used in
   any alternative implementation should be high quality.

   Enrollment of devices is out of scope.  There are a range of
   solutions available and selection of one can be application-
   dependent.  Example approaches include the Open Connectivity
   Foundation (OCF) onboarding and BRSKI [RFC8995].

   Protecting private signing keys is out-of-scope for this document.
   Good key hygiene should be practiced, securing private credentials
   using best practices for a particular application class, e.g.
   [COMIS][OWASP].

   DeftT's unit of information transfer is a Publication.  It is an
   atomic unit sized to fit in a lower layer transport PDU
   (fragmentation and reassembly are done above DeftT if necessary).
   All Publications MUST be signed and the signature MUST be validated.
   All Publications start with a 'name' (Appendix B.1).  Publications
   are used both for ephemeral communication, like commands and status
   reports, and long-lived information like certs.  The set
   reconciliation sync protocol identifies Publications using a hash of
   the entire Publication, including its signature.  A sync collection



Nichols, et al.          Expires 12 January 2023               [Page 27]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   can contain at most one instance of any Publication so replays of
   Publications in the collection are discarded as duplicates on
   arrival.  The current DeftT implementation requires weakly
   synchronized clocks with a known maximum skew.  Ephemeral
   Publications have a lifetime enforced by their sync collection and
   their names include a timestamp used both to enforce that lifetime
   and prevent replay attacks by keeping a Publication in the local
   collection (but not advertising its existence) until its lifetime
   plus the skew has passed.  Publications arriving a skew time before
   their timestamp or a skew time plus lifetime after their timestamp
   are discarded.

   An attacker can modify, drop, spoof, or replay any DeftT PDU or
   Publication but DeftT is designed for this to have minimal effect.

   1.  modification - all DeftT cAdd PDUs MUST be either signed or AEAD
       encrypted with a securely distributed nonce group key.  This
       choice is specified in the trust schema and the per-app startup
       checks that one of these two properties holds for the trust
       schema and throws an error if not.

       *  for signed PDUs each receiving DeftT MUST already have the
          complete, fully validated signing chain of the signer or the
          PDU is dropped.  The signing cert MUST validate the PDUs
          signature or the PDU is dropped.

       *  for encrypted PDUs the symmetric group key is automatically
          and securely distributed using signing identities.  Each
          receiver uses its copy of the current symmetric key to
          validate the AEAD MAC and decrypt the PDU content.  Invalid or
          malformed PDUs are dropped.

       cState modification to continually send an older, less complete
       state in order to generate the sending of cAdds could create a
       DoS attack but counter measures could be implemented using
       available DeftT information in order to isolate that entity or
       remove it from the trust domain.

   2.  dropped PDUs - DeftT's sync protocol periodically republishes
       cState messages which results in (re)sending cAdds.  Unlike
       unicast transports, DeftT can and will obtain any Publications
       missing from its collection from any peer that has a valid copy.

   3.  spoofing - DeftT uses a trust management engine that validates
       the signing.  Malformed Publications and PDUs are dropped as
       early as possible.





Nichols, et al.          Expires 12 January 2023               [Page 28]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   4.  replay - A cAdd is sent in response to a specific cState, so a
       replayed cAdd that matches a current cState simply serves a
       retransmit of the cAdd's Publication which will be filtered for
       duplicates and obsolescence as described above.  A cAdd that
       doesn't match a current cState will be dropped on arrival.

   Peer entity authentication in DeftT comes through the integrated
   trust management engine.  Every DeftT instance is started with an
   identity bundle that includes the public root of trust, a certificate
   of the trust schema signed by the trust root, and its own signing
   identity chain with a private signing key and the chain signed at top
   by trust root.  This is published before any Publications are sent.
   The trust management engine unconditionally drops any Publication or
   PDU that does not have a valid signer or whose signer lacks the role
   or capabilities required for that particular Publication or PDU.

   DeftT takes a modular approach to signing/validation of its PDUs and
   Publications, so a number of approaches to integrity, authenticity,
   and confidentiality are available.  Certificates are distributed
   using integrity signing only since they are validated via chain of
   trust.  Security features that are found to have vulnerabilities will
   be removed or updated and new features are easily added.

   A compromised member of a trust domain can only build messages that
   match the role and capabilities in its signing chain.  Thus, a
   compromised lightbulb can lie about its state or refuse to turn on,
   but it can't tell the front door to unlock or send camera footage to
   a remote location.  Multiple PDUs could be generated, resulting in
   flooding the subnet.  There are possible counter-measures that could
   be taken if some detection code is added to the current DeftT, but
   this is deferred for specific applications with specific types of
   threats and desired responses.

   The reference encryption modules use encryption only on cAdd PDUs (so
   the specific entity that sent the cAdd cannot be determined) but the
   Publications it carries MUST be signed and will be validated.  In
   DeftT, any entity can resend a Publication from any other entity
   (without modification) so group encryption (in effect, group signing)
   is no different.  Some other encryption approaches are provided whose
   potential vulnerabilities are described in the code headers and a
   signed, encrypted approach is also available.

6.  IANA Considerations

   This document has no IANA actions.

7.  Normative References




Nichols, et al.          Expires 12 January 2023               [Page 29]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


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

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

   [RFC8799]  Carpenter, B. and B. Liu, "Limited Domains and Internet
              Protocols", RFC 8799, DOI 10.17487/RFC8799, July 2020,
              <https://www.rfc-editor.org/info/rfc8799>.

8.  Informative References

   [ATZ]      Ngabonziza, B., Martin, D., Bailey, A., Cho, H., and S.
              Martin, "TrustZone Explained: Architectural Features and
              Use Cases", 2016, <https://doi.org/10.1109/CIC.2016.065>.

   [CBIS]     Jacobson, V., Braynard, R., Diebert, T., Mahadevan, P.,
              Mosko, M., Briggs, N. H., Barber, S., Plass, M. F., Solis,
              I., Uzun, E., Lee, B., Jang, M., Byun, D., Smetters, D.
              K., and J. D. Thornton, "Custodian-based information
              sharing", 2012,
              <https://doi.org/10.1109/MCOM.2012.6231277>.

   [CHPT]     CheckPoint, "The Dark Side of Smart Lighting: Check Point
              Research Shows How Business and Home Networks Can Be
              Hacked from a Lightbulb", February 2020,
              <https://www.globenewswire.com/news-
              release/2020/02/05/1980090/0/en/The-Dark-Side-of-Smart-
              Lighting-Check-Point-Research-Shows-How-Business-and-Home-
              Networks-Can-Be-Hacked-from-a-Lightbulb.html>.

   [CIDS]     OperantNetworks, "Cybersecurity Intrusion Detection System
              for Large-Scale Solar Field Networks", 2021,
              <https://www.sbir.gov/sbirsearch/detail/2104327>.

   [CIOT]     Lydersen, L., "Commissioning Methods for IoT", February
              2019,
              <https://www.silabs.com/documents/public/presentations/ew-
              2019-iot-security-commissioning-methods-for-iot.pdf>.

   [COMIS]    Lydersen, L., "Commissioning Methods for IoT", February
              2019,
              <https://www.silabs.com/documents/public/presentations/ew-
              2019-iot-security-commissioning-methods-for-iot.pdf>.




Nichols, et al.          Expires 12 January 2023               [Page 30]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   [COST]     Guy, W., "Wireless Industrial Networking Alliance, Wired
              vs. Wireless: Cost and Reliability", October 2005,
              <https://www.fierceelectronics.com/embedded/wired-vs-
              wireless-cost-and-reliability>.

   [CRTMG]    Nichols, K., "Certificate-managed Secure Identity,
              proposal to Department of Homeland Security for topic
              H-SB010.2.003", June 2010,
              <http://pollere.net/Pdfdocs/1021103-technical_only.pdf>.

   [DCT]      Pollere, "Defined-trust Communications Toolkit", 2022,
              <https://github.com/pollere/DCT>.

   [DER]      NERC, "North American Electric Reliability Corporation:
              Distributed Energy Resources: Connection, Modeling, and
              Reliability Considerations", February 2017,
              <https://www.nerc.com/pa/RAPA/ra/
              Reliability%20Assessments%20DL/
              Distributed_Energy_Resources_Report.pdf>.

   [DIFF]     Eppstein, D., Goodrich, M. T., Uyeda, F., and G. Varghese,
              "What's the difference?: efficient set reconciliation
              without prior context", 2011.

   [DIGN]     Bandyk, M., "As Dominion, others target 80-year nuclear
              plants, cybersecurity concerns complicate digital
              upgrades", November 2019,
              <https://www.utilitydive.com/news/as-nuclear-plants-look-
              to-digitize-controls-and-enhance-performance-
              cyber/566478/>.

   [DLOG]     Li, N., Grosof, B., and J. Feigenbaum, "Delegation logic",
              February 2003, <https://doi.org/10.1145/605434.605438>.

   [DMR]      al., M. C. E., "Device Management Requirements to Secure
              Enterprise IoT Edge Infrastructure", April 2021,
              <https://www.wwt.com/white-paper/device-management-
              requirements-to-secure-enterprise-iot-edge-
              infrastructure/>.

   [DNMP]     Nichols, K., "Lessons Learned Building a Secure Network
              Measurement Framework Using Basic NDN", September 2019.

   [DTM]      Blaze, M., Feigenbaum, J., and J. Lacy, "Decentralized
              Trust Management", June 1996,
              <https://doi.org/10.1109/SECPRI.1996.502679>.





Nichols, et al.          Expires 12 January 2023               [Page 31]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   [HSE]      Kapersky, "Secure Element", 2022,
              <https://encyclopedia.kaspersky.com/glossary/secure-
              element/>.

   [IAWS]     Ganapathy, K., "Using a Trusted Platform Module for
              endpoint device security in AWS IoT Greengrass", November
              2019, <Using a Trusted Platform Module for endpoint device
              security in AWS IoT Greengrass>.

   [IBLT]     Goodrich, M. T. and M. Mitzenmacher, "Invertible bloom
              lookup tables", 2011,
              <https://doi.org/10.1109/Allerton.2011.6120248>.

   [IEC]      IEC, "Power systems management and associated information
              exchange - Data and communications security - Part 8:
              Role-based access control for power system management",
              2022, <https://webstore.iec.ch/publication/61822>.

   [IEC61850] Wikipedia, "IEC 61850", 2021,
              <https://en.wikipedia.org/wiki/IEC_61850>.

   [IIOT]     Rajiv, "Applications of Industrial Internet of Things
              (IIoT)", June 2018, <https://www.rfpage.com/applications-
              of-industrial-internet-of-things/>.

   [IOTK]     Nichols, K., "Trust schemas and {ICN:} key to secure home
              IoT", 2021, <https://doi.org/10.1145/3460417.3482972>.

   [ISO9506MMS]
              ISO, "Industrial automation systems --- Manufacturing
              Message Specification --- Part 1: Service definition",
              2003, <https://www.iso.org/obp/ui/#iso:std:iso:9506:-1:ed-
              2:v1:en>.

   [LANG]     LANGSEC, "LANGSEC: Language-theoretic Security "The View
              from the Tower of Babel"", 2021, <http://langsec.org>.

   [MATR]     Alliance, C. S., "Matter is the foundation for connected
              things", 2021, <https://buildwithmatter.com/>.

   [MHST]     Wikipedia, "MQTT", 2022,
              <https://en.wikipedia.org/wiki/MQTT>.









Nichols, et al.          Expires 12 January 2023               [Page 32]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   [MODOT]    Saleem, D., Granda, S., Touhiduzzaman, M., Hasandka, A.,
              Hupp, W., Martin, M., Hossain-McKenzie, S., Cordeiro, P.,
              Onunkwo, I., and D. Jose, "Modular Security Apparatus for
              Managing Distributed Cryptography for Command and Control
              Messages on Operational Technology Networks (Module-OT)",
              January 2022,
              <https://www.nrel.gov/docs/fy22osti/79974.pdf>.

   [MPSR]     Mitzenmacher, M. and R. Pagh, "Simple multi-party set
              reconciliation", 2018.

   [MQTT]     OASIS, "MQTT: The Standard for IoT Messaging", 2022,
              <mqtt.org>.

   [NDNS]     NDN, "Named Data Networking Packet Format Specification
              0.3", 2022,
              <https://named-data.net/doc/NDN-packet-spec/current/>.

   [NDNW]     Jacobson, V., "Watching NDN's Waist: How Simplicity
              Creates Innovation and Opportunity", July 2019,
              <http://ice-ar.named-data.net/meetings/2019-ICE-WEN-
              Annual/0-ICNWEN-Van-Keynote.pdf>.

   [NERC]     NERC, "Emerging Technology Roundtable - Substation
              Automation/IEC 61850", November 2016,
              <https://www.nerc.com/pa/CI/Documents/roundtable%20-%20IEC
              %2061850%20slides%20%20(20161115).pdf>.

   [NMUD]     al, D. D. E., "Securing Small-Business and Home Internet
              of Things (IoT) Devices: Mitigating Network-Based Attacks
              Using Manufacturer Usage Description (MUD)", May 2021,
              <https://nvlpubs.nist.gov/nistpubs/SpecialPublications/
              NIST.SP.1800-15.pdf>.

   [NPPI]     Hashemian, H. M., "Nuclear Power Plant Instrumentation and
              Control", 2011, <https://cdn.intechopen.com/pdfs/21051/InT
              echNuclear_power_plant_instrumentation_and_control.pdf>.

   [NVR]      Gutmann, P., "Everything you Never Wanted to Know about
              PKI but were Forced to Find Out", 2002,
              <https://www.cs.auckland.ac.nz/~pgut001/pubs/
              pkitutorial.pdf>.

   [ONE]      OneDM, "One Data Model", 2022, <https://onedm.org/>.

   [OPR]      King, R., "Commercialization of NDN in Cybersecure Energy
              System Communications video", 2019, <https://www.nist.gov/
              news-events/events/2019/09/ndn-community-meeting>.



Nichols, et al.          Expires 12 January 2023               [Page 33]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   [OSCAL]    NIST, "OSCAL: the Open Security Controls Assessment
              Language", 2022, <https://pages.nist.gov/OSCAL/>.

   [OTPM]     Hinds, L., "Keylime - An Open Source TPM Project for
              Remote Trust", November 2019,
              <https://www.youtube.com/watch?v=YtPsruEqGeY>.

   [OWASP]    owasp.org/www-project-sidekek/, "SideKEK README", June
              2020, <https://github.com/OWASP/SideKEK>.

   [PRAG]     e}bowicz, J. W., Cabaj, K., and J. Krawiec, "Messaging
              Protocols for IoT Systems---A Pragmatic Comparison", 2021,
              <https://www.mdpi.com/1424-8220/21/20/6904>.

   [QTPM]     Arthur, D. C. W., "Quick Tutorial on TPM 2.0", January
              2015, <https://link.springer.com/
              chapter/10.1007/978-1-4302-6584-9_3>.

   [RFC2693]  Ellison, C., Frantz, B., Lampson, B., Rivest, R., Thomas,
              B., and T. Ylonen, "SPKI Certificate Theory", RFC 2693,
              DOI 10.17487/RFC2693, September 1999,
              <https://www.rfc-editor.org/info/rfc2693>.

   [RFC3552]  Rescorla, E. and B. Korver, "Guidelines for Writing RFC
              Text on Security Considerations", BCP 72, RFC 3552,
              DOI 10.17487/RFC3552, July 2003,
              <https://www.rfc-editor.org/info/rfc3552>.

   [RFC4291]  Hinden, R. and S. Deering, "IP Version 6 Addressing
              Architecture", RFC 4291, DOI 10.17487/RFC4291, February
              2006, <https://www.rfc-editor.org/info/rfc4291>.

   [RFC8520]  Lear, E., Droms, R., and D. Romascanu, "Manufacturer Usage
              Description Specification", RFC 8520,
              DOI 10.17487/RFC8520, March 2019,
              <https://www.rfc-editor.org/info/rfc8520>.

   [RFC8995]  Pritikin, M., Richardson, M., Eckert, T., Behringer, M.,
              and K. Watsen, "Bootstrapping Remote Secure Key
              Infrastructure (BRSKI)", RFC 8995, DOI 10.17487/RFC8995,
              May 2021, <https://www.rfc-editor.org/info/rfc8995>.

   [RSK]      Ellison, C. and B. Schneier, "Ten Risks of PKI: What
              You're Not Being Told About Public Key Infrastructure",
              2000.

   [SDSI]     Rivest, R. L. and B. W. Lampson, "SDSI - A Simple
              Distributed Security Infrastructure", April 1996.



Nichols, et al.          Expires 12 January 2023               [Page 34]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   [SIOT]     Truong, T., "How to Use the TPM to Secure Your IoT/Device
              Data", January 2017, <https://tonytruong.net/how-to-use-
              the-tpm-to-secure-your-iot-device-data/>.

   [SKH]      Yates, T., "Secure key handling using the TPM", October
              2018, <https://lwn.net/Articles/768419/>.

   [SNC]      Smetters, D. K. and V. Jacobson, "Securing Network
              Content", October 2009, <https://named-data.net/wp-
              content/uploads/securing-network-content-tr.pdf>.

   [SOD]      Bernstein, D., Lange, T., and P. Schwabe, "libsodium",
              2022, <https://doc.libsodium.org/>.

   [SPRV]     AgendalessConsulting, "Supervisor: A Process Control
              System", 2022, <http://supervisord.org/>.

   [ST]       Samsung, "SmartThings API (v1.0-PREVIEW)", 2020,
              <https://smartthings.developer.samsung.com/docs/api-ref/
              st-api.html##operation/listCapabilities>.

   [STNDN]    Yu, Y., Afanasyev, A., Clark, D. D., claffy, K., Jacobson,
              V., and L. Zhang, "Schematizing Trust in Named Data
              Networking", 2015.

   [TATT]     Microsoft, "TPM attestation", June 2021,
              <https://docs.microsoft.com/en-us/azure/iot-dps/concepts-
              tpm-attestation>.

   [TPM]      Griffiths, P., "TPM 2.0 and Certificate-Based IoT Device
              Authentication", September 2020,
              <https://www.globalsign.com/en/resources/white-papers-
              ebooks/white-paper-tpm-20-and-certificate-based-iot-
              device-authentication>.

   [W509]     Wikipedia, "X.509: Security", October 2021,
              <https://en.wikipedia.org/wiki/X.509#Security>.

   [WSEN]     Kintner-Meyer, M., Brambley, M., Carlon, T., and N.
              Bauman, "Wireless Sensors: Technology and Cost-Savings for
              Commercial Buildings", 2002,
              <https://www.aceee.org/files/proceedings/2002/data/papers/
              SS02_Panel7_Paper10.pdf>.

   [ZCL]      zigbeealliance, "Zigbee Cluster Library Specification
              Revision 6", 2019, <https://zigbeealliance.org/wp-content/
              uploads/2019/12/07-5123-06-zigbee-cluster-library-
              specification.pdf>.



Nichols, et al.          Expires 12 January 2023               [Page 35]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


Appendix A.  DeftT run-time modules

   DeftT's required functionality is broken into modules that have been
   implemented in libraries in the reference implementation [DCT].
   Extensions and alternate module implementations are possible but the
   functionality and interfaces must be preserved.  DeftT is organized
   in functional modules that may provide services to other modules in
   the course of preparing application-level information for transport
   and for extracting application-level information from packets.  In
   particular, following good security practice, DeftT's Publications
   are constructed and signed early in their creation, then are
   validated (or discarded) early in the reception process.  The signing
   and validation modules (_signature managers_) are used for both
   Publications and cAdds.The _schemaLib_ module provides certificate
   store access throughout DeftT along with access to _distributors_ of
   group keys, Publication-building and structural validation, and other
   functions of the trust management engine.  This organization would
   not be possible in a strictly layered implementation.

   Figure 12 shows the DC modules which are organized in libraries in
   the DCT reference implementation.  The component descriptions and
   interactions can appear complex but the internals of DeftT are
   completely transparent to an application and the reference
   implementation is efficient in both lines of code and performance.
   Where there are alternatives, a DeftT's trust schema completely
   determines which modules are used.  A DeftT participates in two
   required Collections and MAY participate in others if required by the
   schema-designated signature managers.  One of the required
   Collections handles the Publications that carry out application
   communications and uses "pubs" for the descriptive collection name
   component (see Table 2).  The other required Collection manages the
   certificates of the trust domain and uses "cert" for the descriptive
   collection name component.  Specific signature managers MAY require
   group key distribution in descriptive-named Collection "keys."

   (Artwork only available as svg: DeftTmodules-rfc.svg)

                        Figure 12: Run-time modules

   A shim serves as the translator between application semantics and the
   named information objects (Publications) whose format is defined by
   the trust schema.  Besides the shim, DeftT components are not
   application-specific although new signature managers, distributors,
   and Face modules may be added to the library to extend features.







Nichols, et al.          Expires 12 January 2023               [Page 36]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


A.1.  Syncps set reconciliation

   Syncps has roots in the sync protocols developed for Information-
   Centric Networking, e.g., [CBIS], over the past decade.  A DC sync
   protocol MUST provide mechanisms that are end-point agnostic, be
   broadcast-friendly, and have an efficient implementation.  Syncps has
   been in development to meet these needs for some time, starting with
   the first version (covered in [DNMP]).  It currently appears that
   syncps is the only sync protocol DC needs so discussion of the sync
   protocol module is explicitly syncps.  Future uses and research
   developments may lead to new sync protocols suitable for DC but they
   must fulfill the same role and provide the same interfaces as syncps.

   The sync module performs set reconciliation over the Publications of
   a Collection, providing the enabling protocol for any-to-any
   communications.  A single syncps instance manages a single
   collection.  Each syncps announces the Publications it currently has
   in its Collection by sending a cState containing an IBLT [IBLT].
   IBLTs solve the multi-party set-difference problem efficiently
   without the use of prior context and with communication proportional
   to the size of the difference between the sets being compared.
   Syncps manages both active and inactive Publications to know when and
   if to communicate them to peers (though Face) and subscribers (via
   upcalls), but it knows nothing about the format or semantics of
   Publications.  Upcalls from syncps to other modules provide
   validation and expiration information for Publications as well as
   validation and signing of cAdds.  If a cAdd fails to validate, it is
   silently discarded.  Syncps can confirm that Publications have
   reached their collection if an optional callback handler is provided.
   This feature piggybacks on normal syncps dynamics, reporting when
   that Publication appears in the state summary of some other entity.
   As such, it should not be used as a measure of the transmission time
   of a Publication.

   Syncps keeps its DeftT instance synchronized with the sync zone at
   the attached Face.  It adds new DeftT-local Publications to the
   collection and transfers validated, subscribed Publications to a shim
   (or distributor).  Syncps creates two PDUs to manage collections: a
   cState, which summarizes the current state of its Collection and a
   cAdd, used to respond to received cStates with any applicable
   Publications (i.e., cAdd carry Publications).  Syncps subscribes to
   everything in a collection.  The Publications that initiate upcalls
   can be limited by the shim in setting up subscriptions with syncps.








Nichols, et al.          Expires 12 January 2023               [Page 37]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


A.2.  SchemaLib trust management

   SchemaLib implements the trust management engine of DeftT.  It
   validates certificates, uses the trust schema, and instantiates the
   distributors required by the trust schema.

   When a DeftT is instantiated, it is handed its identity bundle which
   contains the trust anchor for the trust domain, the particular
   (compiled) trust schema for the domain and the signing identity chain
   for the DeftT.  This component performs validation of these
   certificates and they are stored locally.  Templates for all the
   legal (according the the trust schema and the signing identity)
   Publications are created and saved to use whenever a new Publication
   is constructed, ensuring its structural validity.

   The DeftT's certificate distributor publishes all the public certs in
   its chain in order to connect to the collections used by this DeftT.
   A DeftT is not connected until a delivery indication has been
   received for its identity certificate chain.  If information privacy
   is required in the trust schema, the distributors for the required
   keys are instantiated.

   Signing identities published by others are received, validated,
   stored and used to create templates for structural validation of
   Publications that originate with those signing identities.

A.3.  Signature managers

   Signature Managers (sigmgrs) implement the signing and validation of
   Data (which may include encryption/decryption) selected by the trust
   schema for Publications and their cAdd as well as by the particular
   signing and validation required by distributors.  Use of an
   encryption sigmgr requires a group key distributor (see A.5).
   Integrity signing and null signing is not available in trust schemas
   (i.e., not used to specify Publications or their cAdd) and are only
   used in certificate and key distribution.

   Six sigmgrs are currently implemented in DCT, supplying the following
   signing and validation algorithms:

   EdDSA using the DCT identity cert associated with the particular
   DeftT

   RFC7693 and SHA256: integrity (not available to trust schemas)

   AEAD encryption/decryption for an entire sync zone where the key is
   created, distributed and updated by the group key distributor.  The
   key distributor encrypts the group key individually for each valid



Nichols, et al.          Expires 12 January 2023               [Page 38]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   signing identity that has been published in the cert Collection
   (validated and stored locally).  Members are added to the group as
   their validated signing identities become known; no members are added
   apriori.

   PPAEAD is a version of AEAD encryption/decryption where the
   encryption key is unique to a particular publisher and the group of
   authorized subscribers.  Authorized subscribers must have the
   required capability in their signing chain and the subscriber group
   key pair is distributed by a subscriber group key distributor which
   creates (and updates) a key pair for the subscriber group, putting
   the public key in the clear and encrypting the secret key for each
   subscriber group member.  Data can only be decrypted by authorized
   subscribers (subscriber group members).

   PPsigned adds EdDSA signing and validation to PPAEAD.  Its use is
   indicated if there is a need to protect against authorized members of
   the subscriber group forging packets from Collection publishers.  The
   encrypted packet is also signed by the publisher.  Uses the same
   subscriber group key distributor as PPAEAD.

A.4.  Distributors

   Distributors manage certificate and key Collections transparently to
   applications through their own syncps.  A certificate distributor
   MUST be provided in order to manage the signing certificate
   collection for any application.  Its Publications are signing chain
   certificates and when a DeftT is first instantiated it is used to
   publish the certs of its own signing chain.  The cert distributor
   must confirm their delivery to the cert Collection (i.e., shows up in
   an IBLT summary originated by a different DeftT) before the DeftT
   upcalls to the application that it can start communications.  The
   cert distributor passes subscribed certs to schemaLib where validated
   certificates are stored; invalid certificates are silently discarded.

   The use of other distributors is dependent on the signature manager
   selected.  AEAD, PPAEAD, and PPsigned require group key distributors
   to manage a key Collection.  DCT contains a group key distributor for
   AEAD as well as a group key distributor for publisher privacy.  These
   use the capabilities contained in signing identities to determine
   eligibility to be a group's key maker and eligibility to subscribe
   (decrypt) Publications in a publisher privacy collection.  Key maker
   election, key creation (and re-creation), and key distribution are
   all handled by the distributors and transparent to the application.







Nichols, et al.          Expires 12 January 2023               [Page 39]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


A.5.  Faces

   Faces translate between the cAdd and cStates of the sync protocol and
   the system packet transport used for a particular DeftT instance.
   Any packet transport can be used as long as it provides:

   *  send packet and register callback for received packet
   *  connect registration callback invoked when packets can be sent or
      received
   *  information callback - MTU is returned

   DCT currently implements a broadcast Face that is used with UDP
   multicast over IPv6 and a unicast face over UDP or TCP.  The DCT Face
   derives that of NDN, where cState are Interests and cAdds are Data,
   but its structure has been optimized for use on broadcast media and
   to interact directly with a sync module, not a forwarder node.  The
   Face keeps:

   *  Pending Interest Table (PIT): similar to its use in CCN and NDN,
      this is a table of unsatisfied Interests.  Interests are removed
      when a corresponding Data arrives ("satisfies the Interest") or
      the Interest times out (when its lifetime has been exceeded).
   *  Registered Interest Table (RIT) : this is used to hold the
      Interest type that this DeftT can respond to
   *  Duplicate Interest Table (DIT): is used to keep Interests from
      looping (without the need for a spanning tree) and tracks the
      Interest plus its nonce.  (A cAdd is never sent to the Interface
      on which it arrived.)

A.6.  Shims

   A shim is application-class-specific, converting between application-
   meaningful messages and DeftT's Publications.  A shim is passed the
   salient information about a particular communication and its
   application level data unit and uses these to create trust schema
   compliant Publications, using knowledge about this application class
   and calls to schemaLib modules.  A shim parses received Publications
   for call back(s) to the application.  A shim can be customized to a
   particular application (the approach taken in the now-obsolete
   [DNMP]) or can provide more general communication models, such as
   pub/sub, streaming, request/response.

   This latter approach has been used to create a DCT library shim, a
   message-based publish/subscribe (MBPS) API whose semantics resemble
   MQTT but the protocol is brokerless and collection-secure, unlike
   MQTT.  MBPS handles breaking application-level messages into trust
   schema specified Publications and provides an option for delivery
   confirmation to be passed to the application.  MBPS has been used for



Nichols, et al.          Expires 12 January 2023               [Page 40]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   multiple applications: two examples are in DCT and Operant has used
   for other applications.  MBPS provides a simple API that hides
   network layer and security details and offers two levels of message
   QoS: a default unacknowledged delivery and a confirmation that the
   publication has reached at least one other member of the collection.
   Applications can use the following MBPS methods:

   connect(successCB, <opt>failureCB): Performs set up (if any)
   necessary to allow communications to start.  (e.g., signing key
   distribution is carried out).  Invokes appropriate callback, success
   or failure.publish(msg, args, <opt>confCB): Publishes the given
   message content and returns a unique message ID.  If a confirmation
   callback is included, mbps invokes confCB with an indicator of
   success or failure of the message.

   subscribe(handler): subscribes to all the topics in the pubs
   Collection.  A received message's underlying publication(s) is
   validated before the handler is invoked. subscribe(topic, handler):
   distinguishes application-level subscriptions further by topic
   (component(s) of name that mbps will append to the pubPrefix of the
   trust schema) and passes a handler to use for a particular topic.

   run(): once application set up is finished, this turns over control
   to the transport.

   The API simplicity is shown in this application snippet:

   void msgPubr(mbps &cm, const auto& toSnd) {
       //... lines of code to prepare arguments
       cm.publish(toSnd, a); //load arguments in a
   }
   static void msgRecv(mbps &cm, const auto& msg, const msgArgs& a) {
       //... do something with msg
   }
   int main(int argc, char∗ argv[]) {
       mbps cm(argv[optind]); // make shim using identity bundle
       cm.subscribe(msgRecv);
       cm.connect([&cm]() {
           ... // prepare toSnd
           msgPubr(cm, toSnd);
       });
       cm.run();
   }








Nichols, et al.          Expires 12 January 2023               [Page 41]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


Appendix B.  Formats

   Application information is packaged in Publications which are carried
   in cAdds that are used along with cState PDUs to communicate about
   and synchronize Collections.  This section documents the format of
   Publications, cStates, and cAdds along with certificates, which are a
   special case of Publication (where keys are the information carried).
   A restricted version of the NDNv3 TLV encoding is used, with TLV
   types from NDN's TLV Type Registry [NDNS].  Publications and cAdds
   use a compatible format which allows them to use the same library
   signing/validation modules (_sigmgrs_).

   In Tables 1-3, the Type in level _i_ is contained within the TLV of
   the previous level _i-1_ TLV.

B.1.  Publications

   Publications are used throughout DeftT's modules.  A Name TLV is used
   to encode the name defined in the trust schema.  A Publication is
   valid if it starts with the correct TLV, its Name validates against
   the trust schema and it contains the five required Level 1 TLVs in
   the right order (top-down in Table 1) and nothing else.  MetaInfo
   contains the ContentType (in DeftT either type Key or Blob).  The
   Content carries the named information and MAY be empty.
   SignatureInfo indicates the SignatureType used to select the
   appropriate signature manager (Appendix A.3).  The SignatureType for
   a collection's Publications is specified in the trust schema and each
   Publication MUST match it.  (A list of current types can be found in
   [DCT] file include/dct/sigmgrs/sigmgr.hpp.)  The KeyLocator
   associated with the SignatureType follows then the ValidityPeriod (if
   the Publication is a Certificate).  Finally, SignatureValue is
   determined by the SignatureType and its format is verified by the
   signature manager. .


















Nichols, et al.          Expires 12 January 2023               [Page 42]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


    +=======+================+================+======================+
    | Level | Level 1        | Level 2        | Comments             |
    | 0     |                |                |                      |
    +=======+================+================+======================+
    | Type  |                |                | MUST be Data         |
    +-------+----------------+----------------+----------------------+
    |       | Name           |                |                      |
    +-------+----------------+----------------+----------------------+
    |       |                | Generic (or    | trust schema sets    |
    |       |                | other)         | number of and        |
    |       |                |                | constraints on these |
    +-------+----------------+----------------+----------------------+
    |       | MetaInfo       |                |                      |
    +-------+----------------+----------------+----------------------+
    |       |                | ContentType    | MUST be type Key or  |
    |       |                |                | Blob                 |
    +-------+----------------+----------------+----------------------+
    |       | Content        |                | arbitrary sequence   |
    |       |                |                | of bytes including   |
    |       |                |                | embedded TLVs; MAY   |
    |       |                |                | have length 0        |
    +-------+----------------+----------------+----------------------+
    |       | SignatureInfo  |                |                      |
    +-------+----------------+----------------+----------------------+
    |       |                | SignatureType  | Value indicates      |
    |       |                |                | which signature      |
    |       |                |                | manager              |
    +-------+----------------+----------------+----------------------+
    |       |                | KeyLocator     | Absent for           |
    |       |                |                | integrity-only       |
    |       |                |                | signature types      |
    +-------+----------------+----------------+----------------------+
    |       |                | ValidityPeriod | Only for             |
    |       |                |                | Certificates         |
    +-------+----------------+----------------+----------------------+
    |       | SignatureValue |                | Packet signature     |
    |       |                |                | (format determined   |
    |       |                |                | by SignatureType)    |
    +-------+----------------+----------------+----------------------+
    | Table: Publication format                                      |
    +----------------------------------------------------------------+

                                 Table 1








Nichols, et al.          Expires 12 January 2023               [Page 43]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


B.2.  Certificates

   Certificates (certs) are Publications with the ContentType set to Key
   and both a KeyLocator and a ValidityPeriod.  DCT certs are compatible
   with the NDN Certificate standard V2 but adhere to a stricter set of
   conventions to make them resistant to substitution, work factor and
   DoS attacks.  The only KeyLocator type allowed in a DCT cert is a
   KeyDigest type that MUST contain the 32 byte SHA256 digest of the
   _entire_ signing cert (including SignatureValue).  A self-signed cert
   (such as a trust anchor) MUST set this digest to all zero.  This
   digest, a cert _thumbprint_ [IOTK], is the only locator allowed in
   _any_ signed DC object (e.g., Publications, cAdd, schemas, certs) and
   MUST be present in every signed object.  A signed object using any
   other type of locator will be considered unverifiable and silently
   ignored.  Certificate Names use a suffix:

     KEY/<keyID>/dct/<version>

   where the cert's thumbprint is the keyID and its creation time is the
   version.

   The original publisher of any signed object MUST ensure that that
   _all_ certs, schemas, etc., needed to validate the object have been
   published _before_ the object is published.  If an entity receives a
   signed object but is missing any of its signing dependencies, the
   object should be considered unverifiable and silently ignored.  Such
   objects MUST NOT be propagated to other entities.

B.3.  cState

   cState and cAdds are are the PDUs exchanged with the system-level
   transport in use (e.g., UDP) but are only used by the Sync (sec A.1)
   and Face (sec A.5) modules.  Sync creates cState and cAdd PDUs while
   the Face manages the protocol interaction within the trust domain.  A
   cState PDU (see Table 2) is used to report the state of a Collection
   at its originator.  A cState serves to inform all subscribing
   entities of a trust domain about Publications currently in the
   Collection, both so an entity can obtain Publications it is missing
   and so an entity can add Publications it has that are not reflected
   in the received cState.











Nichols, et al.          Expires 12 January 2023               [Page 44]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   +=========+==========+=========+====================================+
   | Level 0 | Level 1  | Level 2 | Comments                           |
   +=========+==========+=========+====================================+
   | Type    |          |         | MUST be Interest                   |
   +---------+----------+---------+------------------------------------+
   |         | Name     |         |                                    |
   +---------+----------+---------+------------------------------------+
   |         |          | Generic | trust domain id                    |
   +---------+----------+---------+------------------------------------+
   |         |          | Generic | descriptive collection name        |
   +---------+----------+---------+------------------------------------+
   |         |          | Generic | collection state (sender's view)   |
   +---------+----------+---------+------------------------------------+
   |         | Nonce    |         | uniquely distinguishes this        |
   |         |          |         | cState                             |
   +---------+----------+---------+------------------------------------+
   |         | Lifetime |         | expiry time (ms after arrival)     |
   +---------+----------+---------+------------------------------------+
   | Table: cState format                                              |
   +-------------------------------------------------------------------+

                                  Table 2

   A cState is valid if it starts with the correct TLV and it contains
   the three required Level 1 TLVs in the right order (top-down in
   Table 2) and nothing else.  Its Name MUST start with the trust domain
   id of the DeftT, then a descriptive Collection name (of at least one
   component) and finally a representation of the the state of the
   Collection at the originator.  There is no signature for a cState
   PDU.  (The cState format is a restricted subset of an NDNv3
   Interest.)

B.4.  cAdd

   A cAdd PDU is used to add Publications to a Collection and carries
   Publications as Content.  A cAdd PDU is created after a cState is
   received and only if the recipient has Publications that are not
   reflected in the recipient's local state.  A cAdd is valid if it
   starts with the correct TLV, contains the five required Level 1 TLVs
   in the right order (top-down in Table 3) and nothing else.  A cAdd
   name MUST be identical to the cState to which it responds.










Nichols, et al.          Expires 12 January 2023               [Page 45]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   +=======+================+================+========================+
   | Level | Level 1        | Level 2        | Comments               |
   | 0     |                |                |                        |
   +=======+================+================+========================+
   | Type  |                |                | MUST be Data           |
   +-------+----------------+----------------+------------------------+
   |       | Name           |                |                        |
   +-------+----------------+----------------+------------------------+
   |       |                | Generic        | trust domain id        |
   +-------+----------------+----------------+------------------------+
   |       |                | Generic        | descriptive collection |
   |       |                |                | name                   |
   +-------+----------------+----------------+------------------------+
   |       |                | Generic        | collection state (from |
   |       |                |                | cState) to which the   |
   |       |                |                | Content's Publications |
   |       |                |                | are to be added        |
   +-------+----------------+----------------+------------------------+
   |       | MetaInfo       |                |                        |
   +-------+----------------+----------------+------------------------+
   |       |                | ContentType    | MUST be type cAdd      |
   +-------+----------------+----------------+------------------------+
   |       | Content        |                |                        |
   +-------+----------------+----------------+------------------------+
   |       |                | Publication(s) | one or more            |
   |       |                |                | Publications to add to |
   |       |                |                | the Collection         |
   +-------+----------------+----------------+------------------------+
   |       | SignatureInfo  |                |                        |
   +-------+----------------+----------------+------------------------+
   |       |                | SignatureType  | Value indicates which  |
   |       |                |                | signature manager      |
   +-------+----------------+----------------+------------------------+
   |       |                | KeyLocator     | Presence depends on    |
   |       |                |                | SignatureType          |
   +-------+----------------+----------------+------------------------+
   |       | SignatureValue |                | Value holds the        |
   |       |                |                | signature for this PDU |
   +-------+----------------+----------------+------------------------+
   | Table: cAdd format                                               |
   +------------------------------------------------------------------+

                                 Table 3

Appendix C.  Contributors

   Roger Jungerman
   Operant Networks Inc.



Nichols, et al.          Expires 12 January 2023               [Page 46]

Internet-Draft       Defined-Trust Transport (DeftT)           July 2022


   Lixia Zhang
   UCLA
   Email: lixia@cs.ucla.edu


   Roger contributed much of Section 4.

Authors' Addresses

   Kathleen Nichols
   Pollere LLC
   Email: nichols@pollere.net


   Van Jacobson
   UCLA
   Email: vanj@cs.ucla.edu


   Randy King
   Operant Networks Inc.
   Email: randy.king@operantnetworks.com





























Nichols, et al.          Expires 12 January 2023               [Page 47]