<?xml version="1.0" encoding="UTF-8"?>
<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  ipr="trust200902"
  category="info"
  submissionType="independent"
  docName="draft-dpa-uzpif-framework-01"
  sortRefs="true"
  symRefs="true"
  tocInclude="true"
  version="3">

  <front>
    <title abbrev="UZPIF">The Universal Zero-Port Interconnect Framework (UZPIF): An Identity-Centric Architecture for Post-Port Networking</title>

    <author fullname="Benjamin Anthony Fisher" initials="B.A." surname="Fisher">
      <organization abbrev="DPA R&amp;D">DPA R&amp;D Ltd (https://www.dpa-cloud.co.uk)</organization>
      <address>
        <email>b.fisher@dpa-cloud.co.uk</email>
        <uri>https://orcid.org/0009-0004-4412-2269</uri>
      </address>
    </author>

    <date year="2026" month="March" day="16"/>

    <keyword>zero-port networking</keyword>
    <keyword>identity-centric networking</keyword>
    <keyword>rendezvous protocols</keyword>
    <keyword>zero trust</keyword>
    <keyword>post-quantum cryptography</keyword>

    <abstract>
      <t>
        The Universal Zero-Port Interconnect Framework (UZPIF) describes a post-port networking model in which
        communication is established via outbound, identity-bound sessions to Rendezvous Nodes (RNs).
        By removing publicly reachable listening ports at endpoints, UZPIF changes exposure assumptions and can
        reduce unsolicited ingress and Internet-wide scanning pressure, but it does not by itself guarantee privacy,
        decentralisation, or availability.
      </t>
      <t>
        This document outlines architectural motivation, a high-level security model, operational and economic
        considerations, a Pantheon trust and policy plane baseline, and an incremental migration approach. It is
        part of an experimental, research-oriented Independent Stream suite and defines the current normative
        baseline for trust objects, validation rules, and security semantics within the suite framework. Hard
        interoperability is expected for shared object semantics and validation rules. Full wire-level, clustering,
        and proof-family interoperability is not claimed everywhere yet; the remaining details are intentionally
        profile-defined or deferred in companion drafts or profiles. UZPIF is intended to be read alongside
        companion work describing the Universal Zero-Port Transport Protocol (UZP; <xref target="UZP"/>) and
        TLS-DPA (<xref target="TLS-DPA"/>).
      </t>
    </abstract>
  </front>

  <middle>

    <section anchor="scope-and-status" toc="include">
      <name>Scope and Status</name>
      <t>
        This Internet-Draft is part of an experimental, research-oriented suite prepared for the Independent Stream.
        It is published to enable structured technical review, interoperability discussion, and disciplined
        specification development around the Universal Zero-Port Interconnect Framework (UZPIF).
      </t>
      <t>
        Within that suite, this document defines the current normative baseline for trust objects, validation rules,
        and security semantics governing the suite's shared identities, Grants, RN roles, and trust relationships.
        Hard interoperability is expected for shared object semantics and validation rules.
      </t>
      <t>
        The material is a research artefact.
        It does not claim technical completeness, production readiness, or endorsement by the IETF or any other
        standards body, and it is not presented as a standards-track specification.
      </t>
      <t>
        Full wire-level, clustering, and proof-family interoperability is not claimed everywhere yet. Companion wire
        encodings, clustering details, proof families, and deployment profiles remain intentionally profile-defined or
        deferred, so this draft should not be read as claiming a fully closed transport, proof, or availability
        model.
      </t>
      <t>
        It is designed for experimentation and profile-driven deployments within its target environment.
        Privacy, decentralisation, and RN availability remain deployment- and profile-dependent properties.
      </t>
      <t>
        During conversion from internal research documents into IETF XML, care has been taken to:
      </t>
      <ul>
        <li><t>preserve a clear distinction between normative and informative content;</t></li>
        <li><t>use requirement language (e.g., "MUST", "SHOULD", "MAY") only where protocol behaviour is intentionally specified;</t></li>
        <li><t>avoid any implication of registry finalisation, mandatory implementation, or standard-track status; and</t></li>
        <li><t>maintain intellectual-property neutrality, with no implied patent grants or licensing commitments beyond the IETF Trust copyright licence applicable to Internet-Draft text.</t></li>
      </ul>
      <t>
        Ongoing research, implementation, performance validation, and real-world pilot work remain outside the scope
        of this Internet-Draft text and may be pursued separately.
      </t>
    </section>

    <section anchor="executive-summary" toc="include">
      <name>Executive Summary</name>
      <t>
        The Internet still commonly exposes services via publicly reachable transport ports, a legacy design choice
        that enables scanning and unsolicited connection attempts at global scale.
        Operationally, this contributes to exposure for denial-of-service attacks, credential attacks, and lateral
        movement within networks.
      </t>
      <t>
        UZPIF (the framework) and UZP (<xref target="UZP"/>) (its transport protocol) remove the concept of exposed ports at endpoints.
        Both endpoints initiate outbound, identity-anchored sessions to a Rendezvous Node (RN), which only stitches
        traffic when identity, context, and declared purpose align under policy issued by Pantheon, the identity and
        policy plane.
      </t>
      <t>
        The intent is a model where discoverability and session establishment are policy-mediated rather than assumed
        by default, and where application traffic can be end-to-end authenticated and encrypted.
        UZP (<xref target="UZP"/>) is designed to support performance properties such as:
      </t>
      <ul>
        <li><t>block-level reliability,</t></li>
        <li><t>selective retransmission, and</t></li>
        <li><t>deterministic pacing.</t></li>
      </ul>
      <t>
        Legacy applications and non-UZPIF-capable hardware are intended to continue to operate via a Hardware
        Integration Layer (HIL) that acts as the explicitly modelled compatibility edge between port-based protocols
        and identity-centric sessions.
      </t>
      <t>
        A UZPIF-aligned design should be evaluated not only for its steady-state cryptographic model, but also for
        whether its bootstrap, recovery, downgrade, mediation, operational override, and observability paths
        reintroduce singular trust dependencies that the architecture is intended to avoid.
      </t>
      <t>
        UZPIF builds on transport, security, and identity work embodied in QUIC <xref target="RFC9000"/>,
        TLS 1.3 <xref target="RFC8446"/>, and the Host Identity Protocol <xref target="RFC7401"/>, while aligning with
        modern zero-trust guidance (e.g., NIST SP 800-207 <xref target="NIST-SP800-207"/>) and post-quantum
        cryptography standardisation efforts (e.g., the NIST PQC project <xref target="NIST-PQC"/>).
      </t>
    </section>

    <section anchor="introduction">
      <name>Introduction</name>
      <t>
        This document provides an architectural overview of UZPIF and the deployment conditions addressed by an
        identity-first, rendezvous-based model that avoids publicly reachable listeners.
      </t>
      <t>
        UZPIF should therefore be read as part of an experimental, research-oriented Independent Stream suite and as
        the current normative baseline for trust objects, validation rules, and security semantics within the
        framework. Hard interoperability is expected for shared object semantics and validation rules. Full
        wire-level, clustering, and proof-family interoperability is not claimed everywhere yet; the remaining
        details are intentionally profile-defined or deferred. Removing listeners alone does not by itself solve
        privacy, decentralisation, or RN availability.
      </t>

      <section anchor="why-now">
        <name>Motivation and Deployment Context</name>
        <ul>
          <li>
            <t>
              Investment in perimeter defences (e.g., DDoS mitigation and application firewalls) can yield diminishing
              returns as attackers automate scanning and exploit discovery at Internet scale.
            </t>
          </li>
          <li>
            <t>
              Zero Trust Network Access (ZTNA) and SASE deployments indicate demand for identity-first networking, yet
              many approaches still expose TCP/UDP ingress and rely on perimeter constructs.
              <xref target="NIST-SP800-207"/>
            </t>
          </li>
          <li>
            <t>
              Post-quantum cryptography efforts provide a path to identity-first transport without prohibitive
              performance regression as key encapsulation and signature schemes mature.
              <xref target="NIST-PQC"/>
            </t>
          </li>
        </ul>
      </section>

      <section anchor="whats-new">
        <name>Relationship to VPN-Based Approaches</name>
        <t>
          Conventional VPNs and overlay networks typically retain the assumption that services listen on IP:port
          tuples, even if those ports are only reachable within a private address space or through a gateway.
          QUIC <xref target="RFC9000"/>, TLS 1.3 <xref target="RFC8446"/>, HIP <xref target="RFC7401"/>, and systems such
          as Tor <xref target="Tor"/> demonstrate that identity, encryption, and rendezvous can be decoupled from raw
          addressing semantics, but they generally retain listener-based service reachability.
        </t>
        <ul>
          <li><t><strong>No listeners</strong> at endpoints.</t></li>
          <li><t><strong>Identity-as-address</strong> via identities (e.g., canonical and ephemeral identities) rather than IP:port.</t></li>
          <li><t><strong>Companion transport profiles</strong> define session and transport behaviour rather than inheriting a VPN tunnel abstraction.</t></li>
          <li><t><strong>Pantheon policy plane</strong> encoding purpose, context, and validity into every session.</t></li>
        </ul>
      </section>
    </section>

    <section anchor="terminology">
      <name>Terminology</name>
      <t>
        <strong>Requirements Language:</strong>
        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 <xref target="RFC2119"/> and <xref target="RFC8174"/> when, and only when,
        they appear in all capitals.
      </t>

      <t>
        This Internet-Draft is primarily architectural; requirement language is used sparingly and only where
        behaviour is intentionally specified.
      </t>

      <dl newline="false">
        <dt>EP</dt>
        <dd><t>Endpoint. A host or service that participates in UZPIF by initiating outbound sessions.</t></dd>
        <dt>RN</dt>
        <dd><t>Rendezvous Node. A mediator that accepts outbound sessions and stitches permitted flows.</t></dd>
        <dt>RN Controller</dt>
        <dd><t>Control-plane software used to operate an RN deployment, including policy decisions and transparency log publication.</t></dd>
        <dt>Pantheon</dt>
        <dd><t>An identity, attestation, and policy plane whose authorities bind identity, policy, and trust metadata to keys or selectors accepted under local policy, may validate or certify those bindings, and may issue credentials, Grants, and delegations over them; when federated, they rely on authority metadata, issuer discovery, cross-authority validation, and conflict handling.</t></dd>
        <dt>HIL</dt>
        <dd><t>Hardware Integration Layer. A constrained edge mediation component that exposes or terminates legacy port-based protocols on behalf of non-UZPIF-capable hardware, while participating in UZPIF as a policy-bound identity-aware gateway.</t></dd>
        <dt>CID</dt>
        <dd><t>Canonical Identity. A long-term cryptographic identity used to identify an EP (or a delegated sub-identity).</t></dd>
        <dt>EID</dt>
        <dd><t>Ephemeral Identity. A short-lived identity used for sessions, derived or issued under policy.</t></dd>
        <dt>ZPIT</dt>
        <dd><t>Zero-Port Interconnect Tunnel. An end-to-end encrypted tunnel stitched via one or more RNs.</t></dd>
        <dt>Proof of RN Misbehaviour</dt>
        <dd><t>A cryptographically verifiable evidence package that demonstrates RN protocol deviation without requiring a central adjudicator.</t></dd>
      </dl>
    </section>

    <section anchor="common-signed-artefact-envelope">
      <name>Common Signed Artefact Envelope</name>
      <t>
        This section defines the normative signed-object backbone for the UZPIF suite, including Pantheon Grants,
        Pantheon Certificates (PCerts), bootstrap and recovery artefacts, revocation signals and threshold evidence
        as profiled by TLS-DPA (<xref target="TLS-DPA"/>), Proof-of-Reachability evidence as defined by UZP
        (<xref target="UZP"/>), RN set advertisements, RN transparency entries, Discovery Grants, Signed
        Checkpoints, Indexer Receipts, and Revocation Acknowledgement artefacts as profiled by outbound indexing
        (<xref target="OUTBOUND-INDEXING"/>), and related auditable objects. For interoperable exchange across the
        suite, such objects MUST use this common signed artefact envelope.
      </t>
      <t>
        The envelope is wire-neutral: it does not define transport framing or carriage format. It does define a
        single logical object model, canonical serialisation, signature coverage rule, extension rule, and validation
        baseline so that conforming implementations do not sign the same logical object differently.
      </t>
      <t>
        Each signed artefact consists of three top-level members: "envelope", "body", and "signatures". The
        top-level member set is closed; unknown top-level members MUST cause rejection. The "envelope" member carries
        the suite-wide semantics defined here. The "body" member carries the object-specific semantics defined by the
        relevant draft. The "signatures" member carries one or more embedded signatures over the canonical signature
        input defined below. Object-specific drafts MAY extend the body, but they MUST NOT redefine the envelope
        semantics, canonical serialisation, exact signature coverage, extension handling, object identifier
        derivation, algorithm identifier handling, epoch-versus-sequence precedence, detached-signature policy, or
        ordering rules defined in this section.
      </t>
      <t>
        This section is normatively central for suite-interoperable signed objects. Companion drafts define only the
        body profile, object-specific eligibility checks, and any explicitly deferred proof-family behaviour for a
        registered object type. They MUST NOT redefine canonical serialisation, exact signature coverage, object
        identifier derivation, unknown-field handling, signature ordering, algorithm identifier comparison,
        epoch-versus-sequence precedence, or detached-signature policy. If a companion draft conflicts with this
        section, this section controls for suite-interoperable exchange.
      </t>

      <figure anchor="fig-common-signed-artefact-envelope">
        <name>Informative example of the common signed artefact envelope.</name>
        <artwork><![CDATA[
{
  "envelope": {
    "version": 1,
    "object_type": "grant",
    "object_id": "urn:uzpif:obj:v1:sha256:6f9c8a4c...",
    "issuer_authority_id": "authority:example",
    "subject_id": "cid:subject",
    "audience_id": "cid:audience",
    "scope": "tenant=alpha;service=payments;action=connect",
    "policy_id": "pantheon-connect",
    "policy_version": "2026-03-13",
    "issued_at": "2026-03-13T12:00:00Z",
    "not_before": "2026-03-13T12:00:00Z",
    "not_after": "2026-03-13T12:05:00Z",
    "epoch": 44,
    "sequence": 181,
    "nonce": "4f1c8a9d...",
    "key_id": "sig-main-2026q1",
    "prev_hash": "sha256:...",
    "log_ref": "log://rn.example/181"
  },
  "body": {
    "requested_peer": "cid:peer",
    "action": "connect",
    "qos_class": "interactive"
  },
  "signatures": [
    {
      "key_id": "sig-main-2026q1",
      "alg": "ed25519",
      "value": "base64..."
    }
  ]
}
]]></artwork>
      </figure>
      <t>
        This figure is illustrative only. The normative envelope semantics, canonical serialisation rules, and
        validation requirements are defined by the text in this section.
      </t>

      <section anchor="common-signed-artefact-canonicalisation">
        <name>Canonical Serialisation and Signature Coverage</name>
        <t>
          Producers and verifiers MUST use the JSON Canonicalization Scheme (JCS) defined in
          <xref target="RFC8785"/> over UTF-8 JSON text.
        </t>
        <t>
          Object production and verification use two exact canonical preimages. First, the producer derives
          "object_id" from the JCS serialisation of {"body": body, "envelope": envelope_without_object_id}, where
          envelope_without_object_id is the final envelope with only the "object_id" member omitted. Second, after
          inserting the derived "object_id", the canonical signature input is exactly the UTF-8 octet string of the
          JCS serialisation of {"body": body, "envelope": envelope}. The top-level "signatures" member, any
          detached-signature container, and any transport wrapper are outside both canonical preimages.
        </t>
        <t>
          The "object_id" value MUST be formatted as
          "urn:uzpif:obj:v1:sha256:&lt;lowercase-hex&gt;", where the digest is the SHA-256 hash of the object-id
          preimage described above. Verifiers MUST recompute and compare "object_id" before evaluating signatures.
          Adding, removing, or reordering signatures does not change "object_id". Any change to envelope or body
          content, including extensions, validity bounds, policy references, or sequence metadata, MUST produce a
          different "object_id".
        </t>
        <t>
          Each accepted signature MUST cover the exact canonical signature input bytes and nothing else.
          Suite-interoperable signatures MUST NOT be computed over pretty-printed JSON, partially selected members,
          alternate canonicalisation schemes, XML renderings, CBOR transcodings, log wrappers, transport records, or
          presentation-layer containers.
        </t>
        <t>
          If an object-specific schema admits optional defaults, producers MUST materialise the exact values to be
          signed before canonicalisation. Verifiers MUST recompute "object_id" and the signature input from the
          received values, not from locally inferred defaults or omitted aliases.
        </t>
        <t>
          Non-finite numbers, duplicate member names, semantically equivalent but non-canonical encodings, or values
          that cannot be represented under <xref target="RFC8785"/> MUST cause rejection.
        </t>
      </section>

      <section anchor="common-signed-artefact-members">
        <name>Envelope Members and Extensions</name>
        <t>
          Every common signed artefact MUST include "version", "object_type", "object_id", "issuer_authority_id",
          "subject_id", "scope", "issued_at", "not_before", "not_after", "key_id", and at least one entry in
          "signatures". The "body" member MUST be a JSON object whose direct member set is closed by the declared
          "object_type": direct body members not defined for that object type, "extensions", or
          "critical_extensions" MUST cause rejection. "audience_id", "policy_id", "policy_version", "epoch",
          "sequence", "nonce", "prev_hash", and "log_ref" MUST be present when relevant to the object's semantics,
          replay model, or transparency linkage.
        </t>
        <t>
          Authenticity alone is insufficient for reliance on a common signed artefact. A valid signature proves
          origin and integrity, but a relying party MUST also evaluate freshness, scope, supersession, audience
          binding where relevant, and policy eligibility before treating the artefact as current authority.
        </t>

        <dl newline="false">
          <dt>version</dt>
          <dd><t>Identifies the envelope version so that parsers and relying parties can apply the correct validation rules. Suite-interoperable objects defined by this revision MUST set "version" to 1.</t></dd>
          <dt>object_type</dt>
          <dd><t>Classifies the artefact using the exact case-sensitive token registered in <xref target="common-signed-artefact-object-types"/>. For suite-interoperable exchange, aliases or profile-specific synonyms are invalid.</t></dd>
          <dt>object_id</dt>
          <dd><t>Provides the stable identifier for the logical signed object. Producers MUST derive it according to <xref target="common-signed-artefact-canonicalisation"/>. The same envelope and body content MUST always produce the same object_id, regardless of signature count. Producers MUST NOT reuse an object_id for different envelope or body content.</t></dd>
          <dt>issuer_authority_id</dt>
          <dd><t>Identifies the authority context under which the object is issued. It MUST map to signed authority metadata or other locally trusted issuer metadata.</t></dd>
          <dt>subject_id</dt>
          <dd><t>Identifies the principal, resource set, or relationship primarily affected by the artefact.</t></dd>
          <dt>audience_id</dt>
          <dd><t>Identifies the intended relying party or recipient when the artefact is not intended for universal consumption.</t></dd>
          <dt>scope</dt>
          <dd><t>Defines the operational scope of the artefact, such as authorised actions, resource sets, tenant boundaries, RN context, or revocation domain.</t></dd>
          <dt>policy_id / policy_version</dt>
          <dd><t>Name the policy basis and version under which the artefact was issued when policy tracking matters.</t></dd>
          <dt>issued_at / not_before / not_after</dt>
          <dd><t>Define issuance time and validity bounds. Artefacts outside their validity window MUST be rejected.</t></dd>
          <dt>epoch / sequence</dt>
          <dd><t>Provide ordering and conflict-detection context. If both are present, "epoch" takes precedence for semantic supersession and "sequence" orders objects within the same epoch or append-only stream. A higher "epoch" supersedes any lower "epoch" regardless of "sequence". If "epoch" is equal, a higher "sequence" is newer. A lower-epoch object MUST NOT supersede a higher-epoch object merely because its "sequence" is larger.</t></dd>
          <dt>nonce</dt>
          <dd><t>Carries replay-unique entropy for replay-sensitive artefacts such as Grants, PoR evidence, or session-bound authorisations. Re-usable objects that are not replay-sensitive MAY omit it.</t></dd>
          <dt>key_id</dt>
          <dd><t>Identifies the primary issuer key used for key discovery. It MUST match the first embedded signature entry after signature-array sorting and MUST match at least one embedded signature entry.</t></dd>
          <dt>prev_hash / log_ref</dt>
          <dd><t>Link the artefact into an append-only sequence or an external transparency record when auditability or append-only verification is required.</t></dd>
          <dt>body members</dt>
          <dd><t>The direct members of "body" are defined by the registered object-type profile. Unknown direct body members MUST cause rejection unless they are carried under "body.extensions".</t></dd>
          <dt>body.extensions / body.critical_extensions</dt>
          <dd><t>Object-specific extension values MUST appear only under "body.extensions", which, if present, MUST be a JSON object. "body.critical_extensions", if present, MUST be an array of unique extension keys sorted in ascending lexicographic order, and each listed key MUST exist in "body.extensions". Extension keys MUST be unique namespaced ASCII strings. Unknown extension values MAY be ignored only if they are not listed in "body.critical_extensions". Unknown critical extensions MUST cause rejection. Unknown members in "envelope", in an embedded signature entry, or as direct body members MUST cause rejection.</t></dd>
        </dl>
      </section>

      <section anchor="common-signed-artefact-object-types">
        <name>Suite-wide object_type Registry</name>
        <t>
          The "object_type" member is a case-sensitive lowercase ASCII token. For suite-interoperable exchange, it
          MUST use one of the exact values registered in <xref target="tbl-common-object-types"/>. Companion drafts
          define only the body profile and additional validation for their registered object types; they MUST NOT
          rename, alias, or reinterpret a registered value. New suite-wide object types require an explicit update to
          this registry.
        </t>
        <t>
          Detached signatures are not permitted for any registered object type in this revision. A future suite
          revision MAY change that only by updating both this registry and
          <xref target="common-signed-artefact-signatures"/>.
        </t>
        <table anchor="tbl-common-object-types">
          <name>Registered suite-wide object types</name>
          <thead>
            <tr>
              <th>object_type</th>
              <th>Body profile</th>
              <th>Detached signatures</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>grant</td>
              <td>Pantheon Grant body profile (<xref target="grant-structure"/>)</td>
              <td>No</td>
            </tr>
            <tr>
              <td>pcert</td>
              <td>Pantheon Certificate body profile (<xref target="certificate-format"/>)</td>
              <td>No</td>
            </tr>
            <tr>
              <td>bootstrap-seed-bundle</td>
              <td>Bootstrap trust seed bundle (<xref target="bootstrap-seed-bundle"/>)</td>
              <td>No</td>
            </tr>
            <tr>
              <td>bootstrap-admission</td>
              <td>Bootstrap admission body profile (<xref target="bootstrap-admission-object"/>)</td>
              <td>No</td>
            </tr>
            <tr>
              <td>recovery-reenrolment-bundle</td>
              <td>Recovery / Re-Enrolment body profile (<xref target="recovery-reenrolment-bundle"/>)</td>
              <td>No</td>
            </tr>
            <tr>
              <td>rn-set-statement</td>
              <td>RN set advertisement body profile (<xref target="rn-set-advertisement-and-discovery"/>)</td>
              <td>No</td>
            </tr>
            <tr>
              <td>rn-transparency-entry</td>
              <td>RN transparency log entry body profile (<xref target="rn-transparency-log-format"/>)</td>
              <td>No</td>
            </tr>
            <tr>
              <td>misbehaviour-proof</td>
              <td>RN misbehaviour evidence body profile (<xref target="proof-of-rn-misbehaviour"/>)</td>
              <td>No</td>
            </tr>
            <tr>
              <td>revocation</td>
              <td>TLS-DPA Revocation Signal body profile (<xref target="TLS-DPA"/>)</td>
              <td>No</td>
            </tr>
            <tr>
              <td>threshold-consensus-evidence</td>
              <td>TLS-DPA threshold-consensus body profile (<xref target="TLS-DPA"/>)</td>
              <td>No</td>
            </tr>
            <tr>
              <td>por-evidence</td>
              <td>UZP Proof-of-Reachability body profile (<xref target="UZP"/>)</td>
              <td>No</td>
            </tr>
            <tr>
              <td>discovery-grant</td>
              <td>Outbound indexing Discovery Grant body profile (<xref target="OUTBOUND-INDEXING"/>)</td>
              <td>No</td>
            </tr>
            <tr>
              <td>index-transparency-entry</td>
              <td>Outbound indexing transparency-entry body profile (<xref target="OUTBOUND-INDEXING"/>)</td>
              <td>No</td>
            </tr>
            <tr>
              <td>signed-checkpoint</td>
              <td>Outbound indexing checkpoint body profile (<xref target="OUTBOUND-INDEXING"/>)</td>
              <td>No</td>
            </tr>
            <tr>
              <td>indexer-receipt</td>
              <td>Outbound indexing receipt body profile (<xref target="OUTBOUND-INDEXING"/>)</td>
              <td>No</td>
            </tr>
            <tr>
              <td>revocation-acknowledgement</td>
              <td>Outbound indexing revocation-acknowledgement body profile (<xref target="OUTBOUND-INDEXING"/>)</td>
              <td>No</td>
            </tr>
          </tbody>
        </table>
      </section>

      <section anchor="common-signed-artefact-algorithms">
        <name>Signature Algorithm Identifiers</name>
        <t>
          The "alg" member is a case-sensitive ASCII token that identifies the exact signature verification procedure
          applied to the signature bytes in "value". Comparison is byte-for-byte. Aliases, case folding, numeric
          registry codes, OIDs, or implicit translation between naming schemes MUST NOT be used for
          suite-interoperable verification.
        </t>
        <t>
          Trusted issuer metadata MUST bind each signing key identifier to one or more exact "alg" tokens. A
          verifier MUST accept a signature only when the signature entry's "alg" exactly matches a token bound to
          that key and local policy permits that algorithm for the declared object_type and time interval.
        </t>
        <t>
          Composite or hybrid constructions, if used, MUST have their own exact "alg" token and verification
          procedure. They MUST NOT be represented by multiple "alg" values within one signature entry or by guessing
          from key type alone.
        </t>
      </section>

      <section anchor="common-signed-artefact-signatures">
        <name>Signature Entries, Ordering, and Detached Form</name>
        <t>
          The "signatures" array MUST contain at least one embedded signature. Each embedded signature entry MUST
          contain exactly "key_id", "alg", and "value". The embedded-signature member set is closed.
        </t>
        <t>
          The array order is significant for serialised interchange and MUST be sorted in ascending lexicographic
          order by "key_id", then "alg", then "value". Duplicate entries with the same "key_id" and "alg", or
          duplicate complete entries, MUST cause rejection. A received array that is not already in this order MUST
          cause rejection. The envelope "key_id" MUST identify the first embedded signature entry after sorting.
        </t>
        <t>
          The "alg" value is mandatory and case-sensitive, and it is processed according to
          <xref target="common-signed-artefact-algorithms"/>. A signature entry whose "alg" is absent, unknown,
          unsupported, mismatched to the key metadata, or forbidden by local policy MUST be treated as invalid. If
          the remaining valid signatures do not satisfy the required signature set, the object MUST be rejected.
        </t>
        <t>
          Embedded signatures are the only interoperable signature form for the registered object types in
          <xref target="tbl-common-object-types"/>. For those object types, detached signatures MUST NOT be used and
          MUST NOT count toward policy satisfaction. If a future suite revision explicitly permits detached
          signatures for a specific object type, each detached signature MUST cover the same canonical signature input
          as the embedded form and MUST carry "object_id", "key_id", "alg", and "signed_object_hash", where
          "signed_object_hash" is "sha256:&lt;lowercase-hex&gt;" over the canonical signature input. If both
          embedded and detached signatures are present for such a future object type, every signature MUST verify
          against the same canonical signature input and object_id; any mismatch MUST cause rejection.
        </t>
      </section>

      <section anchor="common-signed-artefact-validation">
        <name>Validation Rules</name>
        <t>Relying parties validating a common signed artefact MUST verify at least the following:</t>
        <ul>
          <li><t>the top-level member set, envelope member set, embedded-signature member set, and object-type-specific direct body member set are well-formed and contain no unknown members except under "body.extensions";</t></li>
          <li><t>the envelope version is supported for the declared object_type, and registered suite-wide object types defined by this revision use "version" equal to 1;</t></li>
          <li><t>the declared object_type is an exact registered suite-wide token when interoperable suite exchange is claimed;</t></li>
          <li><t>object_id recomputation succeeds;</t></li>
          <li><t>issuer_authority_id is locally trusted, validly delegated, or otherwise accepted under the applicable federation policy;</t></li>
          <li><t>the signing key identified by key_id is valid for the object_type and time interval, and the envelope key_id matches the first embedded signature entry after sorting;</t></li>
          <li><t>signature ordering and duplicate checks succeed, and every accepted signature verifies over the exact canonical signature input;</t></li>
          <li><t>each "alg" value exactly matches trusted key metadata and a locally permitted signature verification procedure for the declared object_type;</t></li>
          <li><t>the required signature set satisfies local policy, including any threshold or quorum rule;</t></li>
          <li><t>the current time falls within the declared validity interval;</t></li>
          <li><t>audience_id matches the relying party when the object is audience-bound;</t></li>
          <li><t>nonce uniqueness and epoch or sequence freshness checks succeed when replay resistance or state ordering matter;</t></li>
          <li><t>the artefact has not been superseded, rendered stale under local policy, or made policy-ineligible for the relevant scope and decision;</t></li>
          <li><t>prev_hash or log_ref, when present, are consistent with the relevant append-only or transparency evidence; and</t></li>
          <li><t>body.critical_extensions, when present, is unique, sorted, references only keys present in body.extensions, and contains no unsupported critical extension names.</t></li>
        </ul>
        <t>
          Objects sharing the same issuer_authority_id, object_type, subject_id, scope, and applicable epoch or
          sequence state, but with incompatible canonical signature inputs, MUST be treated as conflicting artefacts
          and processed according to <xref target="conflict-and-split-brain-handling"/>.
        </t>
      </section>
    </section>

    <section anchor="core-architecture">
      <name>Core Architecture Overview (Informative)</name>
      <t>
        This section is informative. It provides high-level role and flow sketches only. Authoritative session,
        handshake, stitching, failover, and proof semantics are defined in the companion UZP
        (<xref target="UZP"/>) and TLS-DPA (<xref target="TLS-DPA"/>) drafts. Authoritative shared object semantics
        are defined by the common signed artefact envelope and the object-specific sections of this document and the
        relevant companion drafts.
      </t>
      <t>
        If any figure or shorthand message label in this section conflicts with the companion transport or handshake
        drafts, the companion drafts govern.
      </t>

      <section anchor="flow-ep-rn-ep">
        <name>High-Level Flow: EP to RN to EP (Informative)</name>
        <t>
          In UZPIF, both peers initiate outbound sessions towards an RN.
          After policy evaluation and authorisation, the RN stitches the two sessions into a tunnel (ZPIT) that carries
          end-to-end protected application data.
        </t>
        <figure anchor="fig-high-level-flow">
          <name>High-level communication pattern (informative)</name>
          <artwork><![CDATA[
EP A (Initiator)        RN        EP B (Responder)
    |---- outbound ----->|              |
    |                    |<---- outbound|
    |<==== end-to-end encrypted ZPIT (stitched via RN) ====>|
]]></artwork>
        </figure>
        <t>This figure shows both endpoints initiating outbound sessions to the RN, which stitches them into a single ZPIT.</t>
        <t>The labels in this figure are illustrative only; this document does not define authoritative wire messages or handshake ordering for the transport steps shown.</t>
      </section>

      <section anchor="pantheon-grant-verification">
        <name>Pantheon Grant Verification (Informative)</name>
        <t>
          Prior to stitching, an EP is expected to obtain a signed authorisation ("Grant") from Pantheon, as defined
          in <xref target="grant-structure"/>.
          Grants bind identity to purpose and validity constraints, enabling RNs to make consistent policy decisions.
          The authoritative Grant format and interoperability requirements are defined in
          <xref target="grant-structure"/> and <xref target="common-signed-artefact-envelope"/>.
        </t>
        <figure anchor="fig-grant-verification">
          <name>Grant request and issuance flow (informative)</name>
          <artwork><![CDATA[
 EP             Pantheon             RN
  |-- Grant Request -->|              |
  |<- Signed Grant ----|              |
  |----------- Grant + CID/EID ----------------->|
]]></artwork>
        </figure>
        <t>This figure illustrates the basic grant request and issuance exchange between an EP and Pantheon.</t>
        <t>The message labels are illustrative only. Authoritative Grant object semantics are defined in <xref target="grant-structure"/>, and authoritative transport or handshake sequencing is defined in companion drafts.</t>
      </section>

      <section anchor="flow-stitching">
        <name>Flow Stitching by the RN (Informative)</name>
        <t>
          The RN establishes a stitched tunnel only if both peers present acceptable identities and authorisations.
          The exact transport, stitching, failover, and protected-traffic semantics are defined in the companion UZP
          and TLS-DPA drafts.
        </t>
        <figure anchor="fig-flow-stitching">
          <name>Join and stitch establishment (informative)</name>
          <artwork><![CDATA[
EP A                 RN                  EP B
 |-- Join Request -->|                    |
 |<-- Stitch OK -----|                    |
 |                    |<-- Join Request --|
 |                    |-- Stitch OK ----->|
 |
 |<====== end-to-end encrypted ZPIT (SessionID-bound) ==========>|
]]></artwork>
        </figure>
        <t>This figure shows the RN joining two authorised sessions into a stitched tunnel without learning plaintext.</t>
        <t>The message names and sequencing in this figure are illustrative only. Authoritative stitching, failover, and session semantics are defined in the companion UZP and TLS-DPA drafts.</t>
      </section>

      <section anchor="multi-rn-stitching">
        <name>Multi-RN Stitching for High-Assurance Tenants (Informative)</name>
        <t>
          UZPIF can be extended to multi-hop stitching, for example where a tenant requires multiple independently
          operated RNs and attestation chains.
          End-to-end protection is expected to remain between endpoints.
        </t>
        <figure anchor="fig-multi-rn">
          <name>Multi-hop stitching with end-to-end authenticated encryption (informative)</name>
          <artwork><![CDATA[
EP A -> RN1 -> RN2 -> EP B

EP A <======== end-to-end AEAD protected traffic ========> EP B
]]></artwork>
        </figure>
        <t>This figure depicts a multi-hop RN chain while end-to-end AEAD protection remains between endpoints.</t>
        <t>This subsection is a deployment sketch only and does not define authoritative multi-RN transport semantics.</t>
      </section>

    </section>

    <section anchor="legacy-hardware-integration">
      <name>Legacy Hardware Integration via HIL</name>
      <t>
        Where attached equipment cannot natively participate in UZPIF, a Hardware Integration Layer (HIL) MAY mediate
        between legacy port-based protocols and UZPIF sessions.
        Real-world examples include industrial devices, medical and laboratory equipment, older appliances, embedded
        controllers, legacy PBXs, telephony systems, and other equipment whose firmware cannot be remodelled around
        identity-first session initiation or removal of hard-coded inbound listeners.
      </t>
      <t>
        A HIL is a compatibility and containment boundary, not a redefinition of legacy protocols as identity-native.
        A HIL is not an exception to UZPIF.
        It is the explicitly modelled compatibility edge through which such equipment interacts with an identity-first
        deployment.
        A HIL does not make a legacy protocol identity-safe; it constrains and evidences the points at which a legacy
        protocol is permitted to interact with an identity-first system.
      </t>
      <t>
        HILs MUST apply explicit policy, minimise exposed legacy surface, and produce auditable evidence for mediated
        actions.
        A deployment using a HIL MUST treat the attached device as outside the native UZPIF trust model unless that
        device is separately enrolled with its own identity and policy context.
        The HIL therefore terminates the trust boundary cleanly rather than treating legacy traffic as natively
        identity-bound.
      </t>

      <section anchor="hil-requirements">
        <name>HIL Requirements</name>
        <t>A HIL used to bridge non-UZPIF-capable equipment:</t>
        <ul>
          <li><t>MUST be explicitly identified as a translation boundary;</t></li>
          <li><t>MUST terminate trust domains cleanly rather than representing legacy traffic as natively identity-bound;</t></li>
          <li><t>MUST enforce a narrow allow-listed protocol surface for the specific attached device or device class;</t></li>
          <li><t>MUST expose only the minimum necessary legacy port behaviour toward the attached equipment;</t></li>
          <li><t>MUST NOT elevate unauthenticated legacy assertions into Pantheon, Grant, or attestation truth without validation;</t></li>
          <li><t>SHOULD support one-way or brokered operation where possible rather than transparent raw pass-through; and</t></li>
          <li><t>MUST be auditable as a security-critical adapter.</t></li>
        </ul>
        <t>When a HIL mediates an action into UZPIF, it SHOULD bind that action to auditable evidence including:</t>
        <ul>
          <li><t>the HIL identity;</t></li>
          <li><t>the attached device identity or slot or port identity;</t></li>
          <li><t>the translated protocol;</t></li>
          <li><t>the relevant time interval;</t></li>
          <li><t>the applicable policy or Grant; and</t></li>
          <li><t>an evidence-log reference or equivalent audit record.</t></li>
        </ul>
      </section>

      <section anchor="local-trust-boundary-of-hil-attached-systems">
        <name>Local Trust Boundary of HIL-Mediated Systems</name>
        <t>
          A HIL secures the boundary between a UZPIF environment and a legacy device interface; it does not guarantee
          the integrity or confidentiality of the local physical segment behind that boundary.
          Deployments MUST treat the HIL-attached legacy domain as an independently exposed trust zone unless
          additional protections are present.
        </t>
        <t>
          The HIL's protection applies to the mediated protocol boundary, not automatically to the local wire, serial
          line, bus, switch port, backplane, maintenance interface, or other attached legacy segment behind it.
          Compromise of that local segment may still permit false device input, spoofed local traffic, local firmware
          replacement, bus replay, serial-line manipulation, switch-port insertion, maintenance-port misuse, false
          sensor injection, or manipulation of translated events before they cross into the UZPIF-mediated side.
        </t>
        <t>
          HIL containment therefore reduces and evidences legacy exposure, but it does not retroactively make the
          attached hardware domain cryptographically trustworthy.
          Where stronger assurance is required, deployments SHOULD consider physical controls, tamper detection, local
          attestation, secure serial or bus wrappers where available, and device-origin integrity checks where
          feasible.
        </t>
      </section>

      <section anchor="hil-software-and-supply-chain-integrity">
        <name>HIL Software and Supply-Chain Integrity</name>
        <t>
          A compromised HIL is especially dangerous because it sits at the boundary between legacy protocol behaviour
          and native identity-bound operation.
          A malicious or subverted HIL may spoof device status, fabricate translated events, widen the permitted
          legacy surface, create covert ingress, or launder insecure traffic into a deployment that appears to be
          operating under stronger trust assumptions.
        </t>
        <t>
          HIL software manifests, configurations, policy bundles, and updates SHOULD be signed and auditable.
          No HIL software, configuration, or policy change SHALL become authoritative unless its manifest, version,
          signer set, scope, and policy eligibility validate successfully under the deployment's normal trust model.
        </t>
        <t>
          HIL update, provisioning, and recovery channels MUST NOT become hidden sovereign authority paths.
          Local administrative overrides, emergency maintenance paths, or vendor tooling MUST NOT silently bypass the
          same validation model claimed for ordinary operation.
          This is aligned with the ICSD (<xref target="ICSD"/>) principle that privileged update or override paths must
          be modelled so that invalid states are rejected rather than normalised.
        </t>
      </section>

      <section anchor="hil-compatibility-classes">
        <name>Legacy Compatibility Classes</name>
        <t>
          This document distinguishes three compatibility classes for legacy integration so that deployments can state
          clearly whether a device is fully mediated, tightly brokered, or merely forwarded.
        </t>
        <dl newline="false">
          <dt>Class A - Full Mediation</dt>
          <dd><t>The HIL terminates the legacy protocol and exposes a modelled, policy-bound interface into UZPIF. This is the RECOMMENDED integration model.</t></dd>
          <dt>Class B - Brokered Pass-Through</dt>
          <dd><t>The HIL permits tightly scoped transport bridging for a specific session under explicit Grant, time, scope, and evidence rules. This MAY be used where full mediation is not feasible, but it provides weaker containment than Class A.</t></dd>
          <dt>Class C - Direct Forwarding Compatibility Mode</dt>
          <dd><t>The HIL forwards arbitrary port traffic. This mode is outside the recommended security model, SHOULD NOT be used except as a bounded migration exception, and MUST NOT be represented as equivalent to native UZPIF participation or to Class A or Class B mediation.</t></dd>
        </dl>
      </section>
    </section>

    <section anchor="decentralisation-authority-model">
      <name>Decentralisation and Authority Model</name>
      <t>
        This section defines constitutional constraints for UZPIF deployments and federation behaviour.
        These constraints are normative.
      </t>
      <t>
        RN controllers are permissionless to deploy.
        No central authorising body is required for RN controller deployment.
      </t>
      <t>
        UZPIF federation MUST be bilateral or multilateral among consenting parties and MUST NOT require a mandatory
        hierarchical control model.
      </t>
      <t>
        UZPIF MUST NOT depend on any single registry, single directory, or single governance entity for protocol
        operation.
        UZPIF MUST NOT require a global mandatory trust root.
      </t>

      <section anchor="bootstrap-model-clarification">
        <name>Bootstrap Model Clarification</name>
        <t>
          Bootstrap MAY use multiple Bootstrap Seed Bundles, mirrored distribution paths, offline media, local
          ceremony, and DNS or similar mechanisms as transports for seed distribution.
          The transport used to deliver seed material does not itself create trust; trust begins only after the device
          validates a Bootstrap Seed Bundle under local bootstrap policy.
        </t>
        <t>
          Bootstrap mechanisms MUST be replaceable across deployments and over time.
          Bootstrap mechanisms MUST NOT depend on a single distribution source.
          No single seed source SHALL be mandatory.
        </t>
      </section>

      <section anchor="bootstrap-recovery-and-reenrolment">
        <name>Bootstrap, Recovery, and Re-Enrolment</name>
        <t>
          Bootstrap, recovery, factory reset, re-enrolment, and emergency rekeying are privileged trust transitions.
          A deployment that appears decentralised during steady-state operation but depends on a singular bootstrap or
          recovery path has introduced a hidden trust anchor and does not satisfy the intended UZPIF sovereignty
          model.
        </t>

        <t>
          New-node bootstrap, client recovery after state loss, RN rejoin after corruption, initial HIL enrolment,
          and emergency rekeying after compromise MUST NOT require a singular globally mandatory authority or delivery
          path.
          These workflows MUST NOT depend solely on one website, one operator, one Recovery / Re-Enrolment Bundle, one vendor
          endpoint, or one golden administrative key as the only path to valid trust state.
        </t>
        <t>
          Recovery workflows MUST fail closed on missing, unsigned, expired, conflicting, or policy-ineligible
          recovery material. Recovered trust state MUST remain independently verifiable through the signed artefacts,
          authority metadata, and transparency or quorum evidence defined below before it becomes authoritative.
        </t>
        <t>
          This document defines a minimal baseline model for those privileged transitions. Baseline-conformant
          bootstrap or recovery support consists of validated Bootstrap Seed Bundle input, explicit first-contact
          admission through a Bootstrap Admission Object, explicit continuity-sensitive return through a Recovery /
          Re-Enrolment Bundle when prior state existed, and issuance of only bounded initial or recovered identity and
          Grant state under policy.
        </t>
        <t>
          Factory reset and re-enrolment MUST be treated as privileged trust transitions rather than convenience
          workflows.
          A reset or re-enrolled endpoint, RN, or HIL MUST re-establish trust as a new or explicitly recovered
          principal under local policy, and previous trust state MUST NOT be silently reinstated absent verifiable
          recovery artefacts.
        </t>
        <t>
          Profiles MAY use multiple Bootstrap Seed Bundles, mirrored distribution paths, offline recovery packages,
          out-of-band provisioning, or quorum-approved rekey procedures.
          However, no single bootstrap or recovery source SHALL be mandatory for global protocol validity.
          This aligns with the invariant-closed design discipline described in ICSD (<xref target="ICSD"/>), where
          privileged recovery transitions are modelled so that invalid or unauthorised recovery states are rejected
          rather than normalised.
        </t>

        <section anchor="bootstrap-trust-transition-artefacts">
          <name>Bootstrap Trust-Transition Artefacts</name>
          <t>
            For interoperable exchange, bootstrap and recovery trust-transition artefacts MUST use the common signed
            artefact envelope defined in <xref target="common-signed-artefact-envelope"/>. This document defines three
            baseline object types: "bootstrap-seed-bundle", "bootstrap-admission", and
            "recovery-reenrolment-bundle".
          </t>

          <section anchor="bootstrap-seed-bundle">
            <name>Bootstrap Seed Bundle</name>
            <t>
              A Bootstrap Seed Bundle carries the initial trust material a device uses before it has normal steady-state
              authority.
              It is the artefact that introduces the first accepted authority metadata and the first accepted RN set or
              RN discovery hints into the device's trust evaluation.
            </t>
            <t>A Bootstrap Seed Bundle MUST carry at least:</t>
            <ul>
              <li><t>the initial trusted authority metadata, or stable digests and retrieval references for that metadata;</t></li>
              <li><t>the accepted RN set, RN discovery hints, or both;</t></li>
              <li><t>a validity interval suitable for bounded bootstrap use;</t></li>
              <li><t>a bootstrap policy identifier or equivalent environment or trust-domain identifier;</t></li>
              <li><t>an epoch or sequence value sufficient for supersession and rollback detection; and</t></li>
              <li><t>a signature set sufficient for the local bootstrap policy.</t></li>
            </ul>
            <t>
              A Bootstrap Seed Bundle authorises initial trust discovery only.
              It does not by itself admit a device, grant long-term authority, or silently create steady-state trust.
            </t>
            <t>
              At baseline, before first authority contact, the device MUST verify the Bootstrap Seed Bundle's
              signature set, bootstrap policy identifier, validity interval, authority metadata, and epoch or
              sequence freshness. Manufacturer certificates, vendor-hosted seed material, or installer media MAY
              contribute to that evaluation only if explicitly accepted by local bootstrap policy; they are not
              sufficient by themselves to admit the device or create steady-state trust.
            </t>
          </section>

          <section anchor="bootstrap-admission-object">
            <name>Bootstrap Admission Object</name>
            <t>
              A Bootstrap Admission Object is the bounded initial enrolment artefact used to admit a new device or
              principal into first authority contact.
              It is a narrow bootstrap credential, not a substitute for steady-state identity, Grant, or administrative
              authority.
            </t>
            <t>A Bootstrap Admission Object MUST carry at least:</t>
            <ul>
              <li><t>a binding to the device or principal being admitted, such as an attestation digest, presented public key, hardware identifier, or ceremony token;</t></li>
              <li><t>the intended bootstrap audience, such as the authority context, enrolment service, or admitted RN class;</t></li>
              <li><t>the permitted first-contact actions, such as initial identity issuance, initial Grant acquisition, or bootstrap-session establishment;</t></li>
              <li><t>a narrow scope, expiry, and nonce, counter, or equivalent one-time-use bound;</t></li>
              <li><t>the bootstrap policy identifier under which admission is evaluated; and</t></li>
              <li><t>the approval signatures or approval evidence required by the local bootstrap policy.</t></li>
            </ul>
            <t>
              A Bootstrap Admission Object MUST be treated as bounded and bootstrap-only.
              It MUST NOT be equivalent to unlimited long-term authority, a standing administrator credential, or an
              implicit right to bypass normal Grant, revocation, or transparency processing.
            </t>
            <t>
              At baseline, first authority contact MUST fail closed unless the Bootstrap Admission Object matches the
              presented device or principal binding, intended bootstrap audience, permitted first-contact action set,
              and one-time-use or bounded-validity constraints. Successful admission MAY yield only bounded initial
              identity state, bounded initial Grant state, or both, and MUST NOT create broader authority than the
              object and policy explicitly permit.
            </t>
            <t>
              When onboarding is mediated by a HIL, the admission decision MUST still be made under bootstrap policy
              and MUST bind the admitted device or principal and, where relevant, the mediating HIL context. HIL
              presence, reachability, or vendor tooling is not a substitute for Day Zero trust admission.
            </t>
          </section>

          <section anchor="recovery-reenrolment-bundle">
            <name>Recovery / Re-Enrolment Bundle</name>
            <t>
              A Recovery / Re-Enrolment Bundle is the artefact set used after state loss, corruption, key rotation,
              compromise response, or factory reset.
              It defines how a device or principal re-establishes trust after prior state existed and therefore carries
              stronger continuity and incident-handling semantics than initial bootstrap admission.
            </t>
            <t>A Recovery / Re-Enrolment Bundle MUST carry at least:</t>
            <ul>
              <li><t>the recovered subject or replacement subject binding;</t></li>
              <li><t>the recovery reason or incident class, such as state loss, corruption, compromise, or planned rotation;</t></li>
              <li><t>references to the last known trusted state, such as prior object identifiers, issuer state, or highest accepted epoch or sequence values when available;</t></li>
              <li><t>the recovery actions permitted, including whether identity continuity, replacement identity issuance, rekey, or Grant re-establishment is allowed;</t></li>
              <li><t>a bounded validity interval and intended recovery audience;</t></li>
              <li><t>the required approval signatures, quorum evidence, or recovery evidence references; and</t></li>
              <li><t>refreshed authority metadata, RN hints, or both when recovery requires trust-anchor or routing refresh.</t></li>
            </ul>
            <t>
              Recovery requires a distinct evaluation path from bootstrap.
              A Recovery / Re-Enrolment Bundle MUST be evaluated under explicit recovery policy and MUST require
              stronger approval, continuity evidence, or incident classification than ordinary bootstrap admission when
              prior state existed or compromise is suspected.
            </t>
            <t>
              At baseline, a Recovery / Re-Enrolment Bundle MUST be evaluated against explicit prior-state linkage,
              incident classification, intended recovery audience, and the required approval or quorum evidence before
              any recovered identity or Grant state is accepted. Replaying bootstrap seed or bootstrap-admission
              artefacts without those tighter recovery checks MUST NOT be treated as valid recovery.
            </t>
          </section>
        </section>

        <section anchor="bootstrap-baseline-flow">
          <name>Baseline Trust-Transition Flow</name>
          <t>The baseline bootstrap and recovery ceremony is as follows:</t>
          <ol>
            <li><t>The device begins outside the closed trust domain and MUST NOT assume Pantheon-recognised identity, Grant state, accepted steady-state RN authority, or inherited session trust.</t></li>
            <li><t>The device receives and validates one or more Bootstrap Seed Bundles through one or more policy-accepted distribution paths and verifies signatures, validity, scope, and supersession state before use.</t></li>
            <li><t>Under bootstrap policy, the device performs first authority contact using the accepted seed material and a Bootstrap Admission Object, or a Recovery / Re-Enrolment Bundle when recovering existing trust state.</t></li>
            <li><t>The contacted authority validates bootstrap or recovery artefacts, applies local bootstrap or recovery policy, and issues bounded initial or recovered identity and Grant state only within the bounds authorised for that transition.</t></li>
            <li><t>The device transitions into normal steady-state trust handling, after which ordinary UZPIF identity, Grant, revocation, transparency, scope, and policy validation rules apply.</t></li>
          </ol>
          <t>
            If the device is recovering after prior state loss, corruption, or compromise, it MUST NOT rely on a
            Bootstrap Admission Object alone when stronger recovery controls are required by policy.
            Recovery admission MUST be explicit rather than hidden inside an apparently ordinary bootstrap ceremony.
          </t>
          <t>
            A HIL, manufacturer channel, or deployment installer MAY stage artefacts or carry first-contact traffic,
            but none of them is itself the baseline bootstrap mechanism. The baseline mechanism is the validated
            trust-transition artefact chain plus the policy-controlled authority action described above.
          </t>
        </section>

        <section anchor="initial-trust-establishment">
          <name>Initial Trust Establishment</name>
          <t>
            The zero-port trust model begins only after initial enrolment.
            A device cannot originate within the closed trust domain; it must first be admitted to it through an
            explicit bootstrap process.
            Bootstrap trust is therefore a first-class architectural concern and MUST NOT be treated as an implicit
            property of zero-port operation.
          </t>
          <t>
            A brand-new device, endpoint, RN, or HIL is not yet within the closed trust domain and may lack a
            Pantheon-recognised identity, Grant, trusted RN set, valid policy bundle, known authority set, secure time
            basis, prior session relationship, or attested operational state.
            Pre-enrolment identity establishment is therefore an explicit bootstrap transition rather than a mature
            steady-state protocol property.
          </t>
          <t>
            Initial enrolment depends on bootstrap artefacts and a bootstrap trust ceremony accepted under deployment
            policy.
            At baseline, that means a validated Bootstrap Seed Bundle plus a Bootstrap Admission Object, or a
            Recovery / Re-Enrolment Bundle when prior trust state is being restored or replaced.
            Deployments MUST define which bootstrap sources and Bootstrap Seed Bundles they accept rather than assuming
            any universal root of truth.
            Acceptable bootstrap inputs MAY include manufacturer attestation, operator-installed seed trust,
            pre-provisioned deployment credentials, local physical ceremony, physically mediated enrolment, custodial
            onboarding authority, verified HIL-assisted enrolment, or enterprise MDM-style enrolment under signed
            policy.
            Bootstrap authority MUST be explicit, bounded, and auditable.
          </t>
          <t>
            Manufacturer identity or vendor material MAY be one acceptable bootstrap input, but it does not by itself
            solve enrolment, is not equivalent to a Bootstrap Admission Object or Recovery / Re-Enrolment Bundle, and
            MUST NOT silently become sovereign steady-state authority.
            Admission into Pantheon or another local authority context still requires explicit acceptance under local
            policy via a Bootstrap Admission Object or stronger recovery artefact.
          </t>
          <t>
            A HIL MAY assist onboarding, staging, or mediated admission of non-native devices, but HIL presence does
            not by itself solve the bootstrap problem.
            HIL-assisted enrolment still requires explicit acceptance of the HIL, its policy context, a validated
            Bootstrap Seed Bundle, and either a Bootstrap Admission Object or Recovery / Re-Enrolment Bundle under
            local deployment policy.
          </t>
          <t>
            Bootstrap trust does not, by itself, confer unlimited steady-state authority.
            After enrolment, the normal UZPIF model for identity, Grant issuance, revocation, transparency, scope, and
            policy validation MUST apply.
            Recovery after state loss, corruption, or compromise MUST transition through the Recovery / Re-Enrolment
            Bundle model rather than silently restoring prior authority as if no privileged transition had occurred.
          </t>
        </section>
      </section>

      <section anchor="key-custody-and-signing-role-separation">
        <name>Key Custody and Signing-Role Separation</name>
        <t>
          Cryptographic separation of keys is not, by itself, sufficient if the same actor, machine, or operational
          role can exercise all practically decisive signing and administrative powers.
          A deployment that concentrates issuance, policy, revocation, software-release, routing, and trust-bundle
          control into one custody domain has recreated a hidden sovereign control point even if each function uses a
          distinct key.
        </t>
        <t>
          Deployments SHOULD separate, where practical, at least some of the following roles:
        </t>
        <ul>
          <li><t>identity issuance;</t></li>
          <li><t>Grant or policy signing;</t></li>
          <li><t>revocation quorum participation;</t></li>
          <li><t>software release or patch manifest signing;</t></li>
          <li><t>RN operational administration; and</t></li>
          <li><t>transparency witnessing or equivalent append-only verification roles.</t></li>
        </ul>
        <t>
          This document does not mandate one governance structure.
          It does define the architectural principle that concentrated custody of all such roles SHOULD be avoided when
          stronger separation is practical, especially for deployments claiming high assurance, multi-party
          accountability, or resistance to unilateral control.
        </t>
        <t>
          Where small or local deployments combine roles, that concentration SHOULD be explicit, auditable, and
          bounded by stronger local controls such as threshold approval, independent logging, external witnessing, or
          stricter operational review.
          Combined-role operation MUST NOT be treated as evidence that organisational separation is unnecessary at
          broader deployment scale.
        </t>
      </section>

      <section anchor="client-sovereignty-model">
        <name>Client Sovereignty Model</name>
        <t>
          In UZPIF, clients are the ultimate trust arbiters at the edge.
        </t>
        <t>Clients MUST:</t>
        <ul>
          <li><t>validate RN transparency logs;</t></li>
          <li><t>verify Proof-of-Reachability (PoR) responses as defined by UZP (<xref target="UZP"/>); and</t></li>
          <li><t>independently determine trust decisions using local policy and cryptographic evidence.</t></li>
        </ul>
      </section>

      <section anchor="rn-controller-properties">
        <name>RN Controller Properties</name>
        <t>
          An RN Controller is the control-plane implementation used to operate one or more RNs.
          The following requirements apply to RN Controller designs.
        </t>
        <t>RN Controllers MUST:</t>
        <ul>
          <li><t>be self-hostable without external approval;</t></li>
          <li><t>publish signed transparency logs;</t></li>
          <li><t>support cryptographic verifiability of routing behaviour; and</t></li>
          <li><t>allow client-side trust evaluation.</t></li>
        </ul>
        <t>RN Controllers MUST NOT:</t>
        <ul>
          <li><t>enforce global revocation unilaterally;</t></li>
          <li><t>depend on a single upstream authority; and</t></li>
          <li><t>possess unilateral kill-switch capability.</t></li>
        </ul>

        <section anchor="rn-non-sovereignty-and-compromise-containment">
          <name>RN Non-Sovereignty and Compromise Containment</name>
          <t>
            Rendezvous Nodes are operationally significant, availability-sensitive infrastructure and MAY be high-value
            attack targets.
            However, UZPIF-compliant designs MUST ensure that RN compromise, local administrative access, or physical
            possession do not by themselves permit issuance of valid identity, Grant, revocation, or control-plane
            truth.
            RN-relevant state transitions MUST be cryptographically validated, MUST fail closed on integrity mismatch,
            and MUST remain independently auditable.
          </t>
          <t>
            An RN MUST be treated as a traffic-stitching and rendezvous facilitator, a transparency-logged operator,
            and a cryptographically constrained participant.
            It MUST NOT become a unilateral authority for identity, Grant issuance, revocation, software truth, or any
            other control-plane truth that would silently redefine system validity.
          </t>
          <t>
            RN behaviour MUST be externally verifiable through signed state, append-only transparency records, or other
            independently checkable evidence.
            Compromise of one RN MUST NOT permit undetectable falsification of end-to-end identity or authorisation
            state.
            Physical control of RN infrastructure MUST NOT, by itself, be sufficient to create valid protocol
            artefacts, alter authoritative control-plane state, or impersonate endpoints without cryptographically
            detectable divergence.
          </t>
          <t>
            RN control-plane changes MUST follow deterministic validation rules.
            No RN SHALL apply unsigned or policy-ineligible control-plane state.
            No RN-observed traffic event SHALL be sufficient to mint valid endpoint identity or Grant state.
            No local administrative path SHALL silently bypass the same verification rules required of normal
            control-plane transitions.
          </t>
        <t>
            RN software manifests, configurations, policy bundles, and updates SHOULD be signed by independent release
            authorities, and deployments SHOULD verify reproducible or attestable build identity where feasible.
            No RN software, configuration, or policy update SHALL become authoritative unless its manifest, version,
            signer set, scope, and policy eligibility validate successfully.
            Update or provisioning channels MUST NOT become hidden sovereign authority paths.
            Clients and relying parties MUST NOT infer trust from RN software version claims alone.
          </t>
          <t>
            Deployments SHOULD provide operator plurality, multi-RN alternatives, or client escape paths where
            practical so that no single RN or RN Controller is the sole required trust anchor for continued protocol
            validity.
            Companion work on Invariant-Closed System Design (ICSD) (<xref target="ICSD"/>) is informative for
            structuring RN controller state so that rollback, drift, partial-write, unsigned-override, or otherwise
            invalid states are rejected rather than normalised.
          </t>
        </section>

        <section anchor="multi-rn-consistency-and-failover-semantics">
          <name>Multi-RN Consistency and Failover Semantics</name>
          <t>
            Deployments MAY use multiple RNs for resilience, locality, operator diversity, or high-assurance
            stitching.
            In such deployments, RNs remain coordination points rather than sovereign issuers of identity, Grant,
            revocation, or other control-plane truth.
            Divergent RN views MUST NOT, by themselves, create valid authorisation or identity truth.
          </t>
          <t>
            Deployments that require resilience SHOULD provision, discover, or otherwise maintain multiple candidate
            RNs acceptable under local policy.
            RN identity, role eligibility, and participation in stitching MUST be independently verifiable from
            Pantheon artefacts, RN Set Statements, transparency evidence, and local policy rather than inferred merely
            from referral by another RN.
            UZPIF does not require a single globally authoritative RN, and compliant deployments SHOULD avoid designs in
            which loss of one RN renders an otherwise healthy trust domain permanently unreachable.
          </t>

          <section anchor="rn-set-advertisement-and-discovery">
            <name>RN Set Advertisement and Discovery</name>
            <t>
              For interoperable RN discovery, a deployment SHOULD publish one or more RN Set Statements using the
              common signed artefact envelope with "object_type" set to "rn-set-statement".
              A Bootstrap Seed Bundle or Recovery / Re-Enrolment Bundle MAY carry one or more RN Set Statements
              directly, or MAY carry references and digests that allow retrieval and validation of the current RN Set
              Statement under the same trust policy.
            </t>
            <t>
              Endpoints claiming resilient rendezvous MUST validate an RN Set Statement under the common envelope
              rules before using it for RN selection. At baseline, that means verifying the signature set,
              trust-domain scope, validity interval, and epoch or sequence state, and preferring the highest eligible
              non-conflicting statement for the relevant scope. Where policy and deployment topology permit,
              endpoints SHOULD maintain multiple currently eligible RNs rather than a single active candidate.
            </t>
            <t>An RN Set Statement MUST carry at least:</t>
            <ul>
              <li><t>the issuing authority context or trust domain for which the RN set is valid;</t></li>
              <li><t>the eligible RN identifiers and sufficient contact or discovery hints for each RN;</t></li>
              <li><t>the RN roles, capabilities, or scope restrictions relevant to stitching, relay, or recovery use;</t></li>
              <li><t>the validity interval for the RN set;</t></li>
              <li><t>an epoch or sequence value sufficient for supersession and rollback detection;</t></li>
              <li><t>optional locality, priority, diversity, or operator-separation hints; and</t></li>
              <li><t>the signature set required by the deployment policy.</t></li>
            </ul>
            <t>
              RN referrals learned from an RN MAY be used as hints, but they MUST NOT by themselves establish RN
              eligibility.
              Before an endpoint uses an alternate RN for authorisation-relevant operation, the RN MUST be accepted by
              a valid RN Set Statement, a Bootstrap Seed Bundle, a Recovery / Re-Enrolment Bundle, or another equally
              trusted signed bootstrap or recovery artefact accepted under local policy.
            </t>
            <t>
              An RN Set Statement is the baseline plurality artefact: it advertises which RNs are eligible for a
              given scope and role, but it does not by itself authorise a session or override current Grant,
              revocation, transparency, or other control-plane truth.
            </t>
            <t>
              If multiple RN Set Statements conflict for the same trust domain, scope, epoch, or sequence, endpoints
              MUST process them using the normal conflict rules for signed objects and MUST fail closed for
              authorisation-expanding actions until a non-conflicting eligible RN set is established.
            </t>
          </section>

          <section anchor="alternate-rn-eligibility-and-failover-baseline">
            <name>Alternate RN Eligibility and Failover Baseline</name>
            <t>
              An endpoint MAY treat an alternate RN as eligible only if all of the following are true:
            </t>
            <ul>
              <li><t>the RN appears in a currently valid RN Set Statement or equally trusted bootstrap or recovery artefact;</t></li>
              <li><t>the RN role and capability set are compatible with the requested stitching or recovery action;</t></li>
              <li><t>the RN is not locally distrusted, revoked, or outside the currently accepted trust-domain scope; and</t></li>
              <li><t>the endpoint has enough fresh authority and continuity state to satisfy the chosen failover mode.</t></li>
            </ul>
            <t>
              Prior successful use of an RN does not by itself keep that RN eligible. Eligibility MUST be
              re-evaluated at failover time against current RN Set Statements, current policy scope, current distrust
              or revocation state, and the exact stitching or recovery role the endpoint is attempting to use.
            </t>
            <t>
              Baseline failover triggers include RN loss, overload, local unreachability, policy-eligible alternate-RN
              preference, bounded continuity expiry, transparency inconsistency, partition suspicion, or signed or
              otherwise locally accepted evidence of RN misbehaviour.
              Triggering failover does not by itself alter identity, Grant validity, or authority truth.
            </t>
            <t>
              When a failover trigger fires, the endpoint enters failover handling, freezes new
              authorisation-expanding actions, and retains only portable state pending alternate-RN selection and
              revalidation. It MUST NOT promote the failed or disconnected RN into a truth anchor merely because it
              was the last RN in use.
            </t>
            <t>
              The baseline portability rule is:
              identity, Grants, revocation state, Pantheon metadata, RN Set Statements, transparency checkpoints, and
              other externally verifiable authorisation artefacts are portable across RNs; RN-local queue placement,
              opaque stitch handles, pacing state, relay caches, and other non-verifiable relay state are not.
            </t>
          </section>

          <section anchor="restitching-and-bounded-continuity-state">
            <name>Re-Stitching and Bounded Continuity State</name>
            <t>
              Fresh authorisation presentation is the default baseline for re-stitching at a new RN.
              An alternate RN MAY accept bounded continuity state instead of full fresh authorisation only for
              non-expanding continuity when local policy permits it.
            </t>
            <t>
              Bounded continuity state MUST be externally verifiable or endpoint-verifiable and MUST be bound to the
              authenticated subject, peer, accepted Grant object identifiers or digests, relevant authority epoch or
              sequence state, and the accepted RN set.
              It MUST carry its own expiry and MUST NOT be treated as standing authority.
            </t>
            <t>
              Failover MAY reuse bounded continuity state only when the resulting session scope is unchanged or
              narrower, the underlying Grant or equivalent authorisation remains valid, replay and freshness checks
              still succeed, and no unresolved RN disagreement or partition condition would make the reused state
              ambiguous.
              Otherwise, the endpoint MUST obtain fresh authorisation or perform a fresh re-stitch under current policy.
            </t>
            <t>
              Before an alternate RN returns a session to normal stitched operation, the endpoint and alternate RN
              MUST revalidate at least the chosen RN's current eligibility, the applicable RN Set Statement or equally
              trusted bootstrap or recovery artefact, current Grant and revocation state for the requested scope, any
              required transparency or misbehaviour evidence, and the binding, freshness, and expiry of any continuity
              state that will be resumed.
            </t>
            <t>
              Session continuity MUST NOT be confused with trust continuity.
              Even when transport or application continuity is preserved, the alternate RN MUST revalidate the
              externally verifiable artefacts needed for the requested action and MUST NOT inherit opaque
              authorisation-relevant state solely because another RN previously held it.
            </t>
          </section>

          <section anchor="rn-disagreement-and-partition-handling">
            <name>RN Disagreement and Partition Handling</name>
            <t>
              Loss, overload, unreachability, or partition of an RN is an availability event rather than an
              authorisation event.
              Failure of one RN MUST NOT by itself invalidate endpoint identity, Grants, revocation state, or other
              externally verifiable control-plane truth.
            </t>
            <t>
              If two RNs or RN clusters present conflicting control views for the same session, subject, scope, epoch,
              or routing decision, endpoints and relying services MUST treat that disagreement as an availability or
              continuity issue rather than as proof that either view is newly authoritative.
            </t>
            <t>
              Under RN disagreement or suspected partition, endpoints MUST suspend new authorisation-expanding actions
              until the relevant artefacts are revalidated against externally verifiable authority.
              Endpoints MAY continue narrowly scoped, already-established non-expanding operation only within an
              explicitly bounded continuity window allowed by local policy.
              When the disagreement cannot be resolved within that window, implementations SHOULD prefer fresh
              re-stitching or clean session termination over silent continuity shortcuts.
            </t>
            <t>
              If only one RN remains reachable during disagreement or partition, endpoints MUST still treat external
              artefacts rather than that RN's local control view as authorisation truth. A lone surviving RN is a
              remaining coordination path, not a newly elevated trust anchor.
            </t>
          </section>

          <section anchor="rn-failover-continuity-constraints">
            <name>RN Failover Continuity Constraints</name>
            <t>
              Failover MAY preserve continuity only if end-to-end trust assumptions are preserved.
              An RN failover path MUST NOT silently weaken identity binding, freshness checks, replay resistance,
              transparency requirements, or downgrade posture merely to keep traffic flowing.
              When continuity and freshness are in tension, deployments SHOULD prefer fresh and independently verifiable
              authority for authorisation-expanding decisions, while allowing only bounded, policy-defined continuity
              behaviour for non-expanding recovery or session resumption.
            </t>
            <t>
              Session continuity across RN loss is not guaranteed.
              A second RN or RN cluster MAY resume rendezvous only from externally verifiable artefacts and bounded
              continuity state accepted under local policy; it MUST NOT inherit opaque trust-relevant state solely
              because another RN previously held it.
              When no safe resumable state exists, implementations SHOULD prefer fresh re-stitching over continuity
              shortcuts that weaken trust assumptions.
            </t>
            <t>
              This document does not require peer-to-peer fallback, HIL substitution, or reversion to inbound-port
              exposure as a universal recovery mechanism.
              Profiles MAY define degraded or mediated recovery modes, but such modes MUST be explicit, policy-bound,
              auditable, and MUST NOT silently reintroduce weaker trust assumptions, hidden authority paths, or legacy
              open-listener exposure merely to preserve reachability.
            </t>
          </section>
        </section>
      </section>

      <section anchor="rn-transparency-log-format">
        <name>RN Transparency Log Format</name>
        <t>
          Each RN MUST publish a transparency log as an append-only sequence of signed entries.
          Logs MUST be cryptographically verifiable, timestamped, and publicly retrievable.
          Transparency entries used for interoperable verification MUST use the common signed artefact envelope defined
          in <xref target="common-signed-artefact-envelope"/> with "object_type" set to
          "rn-transparency-entry".
        </t>
        <t>Each RN transparency log MUST contain signed records for:</t>
        <ul>
          <li><t>uptime attestations;</t></li>
          <li><t>session summaries at aggregated granularity; and</t></li>
          <li><t>error reports.</t></li>
        </ul>
        <t>
          Signed policy decisions are OPTIONAL but RECOMMENDED and SHOULD be published when policy constraints allow.
        </t>
        <t>
          Each log entry MUST include at least a monotonically increasing sequence number, a timestamp, an entry type,
          a payload digest, and an RN signature.
          In the common envelope, these properties are expressed via "object_type", "sequence", "issued_at",
          "prev_hash" or "log_ref", the object-specific body, and the embedded signature set.
          Log interfaces MUST allow third parties to retrieve entries and independently verify append-only integrity.
        </t>
        <t>
          Evidence published for accountability SHOULD be sufficient for independent verification without unnecessarily
          exposing protected content, business-sensitive metadata, or broader activity graphs.
        </t>
      </section>

      <section anchor="proof-of-rn-misbehaviour">
        <name>Proof of RN Misbehaviour</name>
        <t>
          A Proof of RN Misbehaviour is a cryptographic evidence object that can be validated without a central judge.
          Misbehaviour proofs used for interoperable exchange MUST use the common signed artefact envelope defined in
          <xref target="common-signed-artefact-envelope"/> with "object_type" set to "misbehaviour-proof".
        </t>
        <t>Proofs MAY be constructed from one or more of the following evidence classes:</t>
        <ul>
          <li><t>signed evidence of misrouting;</t></li>
          <li><t>evidence that an RN failed to relay a required nonce during reachability procedures defined by UZP (<xref target="UZP"/>);</t></li>
          <li><t>log inconsistency proofs (for example, two different signed entries for the same sequence number) derived from the transparency material in <xref target="rn-transparency-log-format"/>; and</t></li>
          <li><t>signature replay detection evidence.</t></li>
        </ul>
        <t>
          Clients MUST be able to validate misbehaviour proofs locally using published keys and log material.
          When proof validation succeeds, clients MAY blacklist the RN and SHOULD support policy controls for local
          blacklist retention and expiry.
        </t>
        <t>
          UZPIF MUST NOT require a token-slashing mechanism or any central adjudication entity for RN accountability.
          Exclusion decisions are evidence-based and locally enforceable.
        </t>
      </section>
    </section>

    <section anchor="explicit-non-goals">
      <name>Explicit Non-Goals</name>
      <t>
        To avoid governance ambiguity, the UZPIF stack does not define or require the following:
      </t>
      <ul>
        <li><t>enforcement of a global content policy;</t></li>
        <li><t>mandatory jurisdictional compliance mechanisms;</t></li>
        <li><t>centralised identity arbitration; and</t></li>
        <li><t>global kill-switch functionality.</t></li>
      </ul>
    </section>

    <section anchor="pantheon-governance">
      <name>Pantheon: Identity and Governance Model</name>
      <t>
        Pantheon is the identity, attestation, and policy plane for UZPIF.
        It MAY be deployed as a single authority or as a multi-authority federation.
        As specified in <xref target="decentralisation-authority-model"/>, Pantheon federation is not a mandatory
        hierarchy and does not imply a single global authority.
      </t>
      <t>
        A deployment MUST NOT claim interoperable Pantheon federation unless relying parties can obtain authority
        metadata, discover issuers, apply cross-authority validation, and process conflicts or split-brain conditions
        using the rules in this section or a stricter profile.
        Without those capabilities, Pantheon remains a local authority deployment rather than an interoperable
        federation.
      </t>
      <t>
        Pantheon objects exchanged across authorities MUST use the common signed artefact envelope defined in
        <xref target="common-signed-artefact-envelope"/>.
      </t>

      <section anchor="identity-model">
        <name>Identity Model</name>
        <t>
          Pantheon authorities bind identity, policy, and trust metadata to keys or selectors accepted under policy.
        </t>
        <t>
          Deployments MAY use locally generated or externally attested keys if policy allows; Pantheon authorities
          validate or certify those bindings rather than being required to generate the underlying private keys.
        </t>
        <t>
          In the suite baseline, Pantheon authorities issue credentials, Grants, and delegations over accepted
          bindings rather than being required to generate or custody the underlying private keys.
        </t>
        <t>Pantheon commonly binds or delegates the following identity-bearing material:</t>
        <ul>
          <li><t>long-term public signing keys bound to CIDs;</t></li>
          <li><t>ephemeral session keys or ephemeral public keys bound to EIDs under policy; and</t></li>
          <li><t>delegated sub-identities, selectors, or delegated credentials for services or microprocesses.</t></li>
        </ul>
        <t>
          This identity approach is conceptually aligned with HIP's separation of endpoint identities from locators
          <xref target="RFC7401"/>, but elevated to a policy plane.
        </t>
      </section>

      <section anchor="certificate-format">
        <name>Certificate Format</name>
        <t>Pantheon Certificates (PCerts) used for interoperable federation SHOULD include at least the following elements:</t>
        <ul>
          <li><t>an issuer authority identifier;</t></li>
          <li><t>a CID and public signing key (and optionally a post-quantum key encapsulation key);</t></li>
          <li><t>purpose tags (e.g., service, role, tenant);</t></li>
          <li><t>validity bounds (time or epoch); and</t></li>
          <li><t>optional attestation claims (e.g., hardware trust or enclave measurement).</t></li>
        </ul>
        <t>
          A PCert binds identity, scope, and trust metadata to an asserted public key.
          It does not by itself state how the corresponding private key was generated or who holds custody of it unless
          explicit attestation claims in the object-specific body say so.
        </t>
        <t>
          Profiles MAY extend PCerts with additional fields, but interoperable federation requires enough issuer,
          subject, and validity information for cross-authority validation under
          <xref target="cross-authority-validation"/>.
        </t>
        <t>
          For interoperable exchange, a PCert MUST use the common signed artefact envelope with "object_type" set to
          "pcert". The certificate-specific fields listed above populate the object-specific body and MUST NOT
          redefine envelope semantics.
        </t>
      </section>

      <section anchor="grant-structure">
        <name>Grant Structure</name>
        <t>A Grant is described as a signed assertion binding:</t>
        <ul>
          <li><t>the CID/EID of the requester;</t></li>
          <li><t>the requested peer identity;</t></li>
          <li><t>purpose and action;</t></li>
          <li><t>a time window and replay nonce; and</t></li>
          <li><t>an authorised quality-of-service (QoS) class.</t></li>
        </ul>
        <t>
          For interoperable exchange across the suite, a Grant MUST be represented as a signed artefact with
          "object_type" set to "grant", using the envelope defined in
          <xref target="common-signed-artefact-envelope"/>.
        </t>
        <t>
          This section is the canonical suite-level Grant definition for the architecture described in UZPIF.
          Companion drafts such as UZP, TLS-DPA, and outbound indexing may add object-specific fields or
          application-specific constraints in the object-specific body, but they MUST preserve this baseline Grant
          semantics and the shared artefact envelope.
        </t>
      </section>

      <section anchor="authority-identifiers-and-metadata">
        <name>Authority Identifiers and Metadata</name>
        <t>
          Each Pantheon authority participating in a federation MUST be identified by a stable authority_id.
          An authority_id MUST remain stable across ordinary signing-key rollover and MUST be unique within the
          relying party's trust context.
        </t>
        <t>
          Each authority MUST publish signed authority metadata sufficient for relying parties and peer authorities to
          validate issued objects.
          At a minimum, the metadata MUST identify:
        </t>
        <ul>
          <li><t>the authority_id;</t></li>
          <li><t>one or more current signing keys, and optionally future or retiring keys for rollover;</t></li>
          <li><t>service endpoints used for issuing or retrieving Pantheon objects;</t></li>
          <li><t>a metadata validity interval;</t></li>
          <li><t>the supported object types (for example PCerts, Grants, delegations, revocations, or attestation artefacts); and</t></li>
          <li><t>an optional transparency-log endpoint.</t></li>
        </ul>
        <t>
          Metadata MAY contain additional deployment-specific policy claims, but Pantheon federation MUST NOT depend on
          a single global metadata registry or a mandatory schema beyond the minimum semantics above.
        </t>
      </section>

      <section anchor="issuer-discovery">
        <name>Issuer Discovery</name>
        <t>
          Issuer discovery is deliberately non-centralised.
          A relying party MAY discover an authority and its signed metadata through one or more of the following
          mechanisms:
        </t>
        <ul>
          <li><t>local trust bundles;</t></li>
          <li><t>signed referrals;</t></li>
          <li><t>cached authority metadata; and</t></li>
          <li><t>out-of-band provisioning.</t></li>
        </ul>
        <t>
          No global registry, mandatory directory, or single discovery service is required for Pantheon federation.
          Deployments MAY combine discovery mechanisms and MAY continue to rely on cached metadata when fresh discovery
          is temporarily unavailable, subject to local expiry policy.
          An authority without discoverable or locally provisioned metadata MUST NOT be treated as an interoperable
          federation participant.
        </t>
      </section>

      <section anchor="cross-authority-validation">
        <name>Cross-Authority Validation</name>
        <t>
          A client, RN, or other relying service evaluating a PCert, Grant, revocation statement, delegation, or other
          signed Pantheon object MUST accept that object only if its issuer is:
        </t>
        <ul>
          <li><t>locally trusted;</t></li>
          <li><t>delegated from a locally trusted authority, with a delegation chain valid for the relevant object type and scope; or</t></li>
          <li><t>accepted under a profile-defined federation rule.</t></li>
        </ul>
        <t>
          If none of these conditions holds, the object MUST be rejected.
          Validation MUST include signature verification, issuer metadata validity, object-type authorisation, scope,
          and time validity.
        </t>
        <t>
          Acceptance of one object type from an authority does not automatically authorise acceptance of other object
          types unless the applicable delegation or federation profile explicitly permits it.
        </t>
      </section>

      <section anchor="conflict-and-split-brain-handling">
        <name>Conflict and Split-Brain Handling</name>
        <t>
          Pantheon federation MUST distinguish between issuer misbehaviour and federation divergence.
          These cases are not equivalent and MUST NOT be processed using a single merge rule.
        </t>
        <t>
          If the same authority issues conflicting signed objects for the same epoch and scope, relying parties MUST
          treat the condition as evidence of authority misbehaviour.
          The conflicting objects SHOULD be retained as auditable evidence and MAY trigger local distrust, quarantine,
          or incident-response policy.
        </t>
        <t>
          If different authorities publish conflicting signed views for the same subject, scope, or revocation state,
          relying parties MUST treat the condition as federation divergence.
          Such conflicts MUST NOT be auto-merged or silently normalised.
          Resolution MUST be performed by local policy, an explicit federation profile, or quorum rules agreed by the
          deployment.
        </t>
        <t>
          Until resolved, implementations SHOULD fail closed for authorisation-expanding decisions and SHOULD surface
          the divergence to operators or relying services with enough issuer metadata to support audit and review.
        </t>
      </section>

      <section anchor="attestation-model">
        <name>Attestation Model</name>
        <t>RNs and endpoints may publish attestations such as:</t>
        <ul>
          <li><t>hardware and software measurements;</t></li>
          <li><t>configuration hashes; and</t></li>
          <li><t>policy compliance data.</t></li>
        </ul>
        <t>
          Attestation artefacts SHOULD be published in transparency logs retrievable by relying parties.
          Storage and serving MAY be provided by Pantheon services, RN Controllers, or both, mirroring transparency
          and verifiability goals in broader zero-trust guidance.
          <xref target="NIST-SP800-207"/>
        </t>
      </section>

      <section anchor="caching-rules">
        <name>Caching Rules</name>
        <t>
          The following caching guidance is illustrative deployment guidance rather than a protocol-level
          interoperability requirement.
          Deployment profiles MAY tighten or relax these values according to their revocation, freshness, and
          transparency policies.
        </t>
        <t>
          Authenticity alone is insufficient for continued reliance on cached authority.
          Before cached metadata, PCerts, Grants, or attestation material are used for security-relevant decisions,
          implementations SHOULD evaluate freshness, scope, sequence or epoch where applicable, and current policy
          eligibility under local stale-state rules.
          Authorisation-expanding decisions SHOULD require revalidation once a locally permitted stale window has been
          exceeded or when superseding state may exist.
        </t>
        <t>Endpoints may cache:</t>
        <ul>
          <li><t>authority metadata for the shorter of its stated validity interval or a locally configured cache cap;</t></li>
          <li><t>PCerts for a locally configured interval appropriate to the deployment's revocation and freshness model (for example, up to 24 hours in low-churn environments);</t></li>
          <li><t>Grants for the shorter of their validity window or session lifetime; and</t></li>
          <li><t>attestation proofs for the duration of RN handshake paths.</t></li>
        </ul>
      </section>

    </section>

    <section anchor="benefits-tradeoffs">
      <name>Benefits and Trade-offs</name>
      <t>
        UZPIF and UZP (<xref target="UZP"/>) intentionally reuse established transport and cryptographic primitives, but change where and how
        they are bound to identity, policy, and reachability.
        In particular, QUIC <xref target="RFC9000"/> and TLS 1.3 <xref target="RFC8446"/> demonstrate encrypted
        transports with modern handshake properties, while UZPIF shifts the reachability model away from listening
        endpoints.
      </t>

      <table anchor="tbl-transport-comparison">
        <name>Comparison of transport architectures</name>
        <thead>
          <tr>
            <th>Dimension</th>
            <th>UZPIF/UZP (<xref target="UZP"/>)</th>
            <th>Traditional TCP/TLS</th>
            <th>QUIC/TLS</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>Exposure</td>
            <td>No open ports (endpoints are not publicly listening)</td>
            <td>Open ports and/or proxies</td>
            <td>Open ports at network edge</td>
          </tr>
          <tr>
            <td>Identity</td>
            <td>Mandatory cryptographic identity</td>
            <td>Typically TLS-level identity only</td>
            <td>TLS-level identity</td>
          </tr>
          <tr>
            <td>Transport semantics</td>
            <td>Defined by companion transport profile</td>
            <td>TCP byte-stream transport</td>
            <td>QUIC stream transport</td>
          </tr>
          <tr>
            <td>RN trust</td>
            <td>Drop/delay only (no end-to-end plaintext visibility expected)</td>
            <td>N/A</td>
            <td>N/A</td>
          </tr>
          <tr>
            <td>Latency control</td>
            <td>Deterministic pacing (design goal)</td>
            <td>Congestion control variants (e.g., Reno/CUBIC)</td>
            <td>Congestion control variants (e.g., BBR/CUBIC)</td>
          </tr>
          <tr>
            <td>Legacy applications</td>
            <td>Supported via HIL (intended)</td>
            <td>Native</td>
            <td>Often requires gateways or adaptation</td>
          </tr>
          <tr>
            <td>Post-quantum readiness</td>
            <td>Designed for cryptographic agility</td>
            <td>Inconsistent deployment</td>
            <td>Emerging</td>
          </tr>
        </tbody>
      </table>
    </section>

    <section anchor="threat-model">
      <name>Threat Model</name>
      <t>
        This section sketches attacker classes and example controls.
        It is not a complete security analysis and will evolve with implementation experience.
      </t>

      <t><strong>Attacker classes</strong> include:</t>
      <ul>
        <li><t>Internet-wide scanners;</t></li>
        <li><t>botnets seeking command-and-control beacons;</t></li>
        <li><t>malicious RNs (assumed capable of drop/delay/reorder);</t></li>
        <li><t>insiders with credentials; and</t></li>
        <li><t>traffic analysts performing correlation.</t></li>
      </ul>

      <t>
        Existing rendezvous and overlay systems (e.g., Tor <xref target="Tor"/>) and NAT traversal mechanisms based on
        STUN <xref target="RFC5389"/> and TURN <xref target="RFC5766"/> demonstrate the power of indirection, but they
        still assume exposed or discoverable listeners somewhere in the path.
        UZPIF's design intent is to remove those listeners from the endpoint security model.
      </t>

      <t>Example controls discussed for UZPIF include:</t>
      <ul>
        <li><t>end-to-end authenticated encryption (AEAD);</t></li>
        <li><t>RN and endpoint attestation;</t></li>
        <li><t>puzzles and identity-bound rate limits;</t></li>
        <li><t>multi-RN stitching for higher assurance; and</t></li>
        <li><t>post-quantum readiness and cryptographic agility (see <xref target="NIST-PQC"/>).</t></li>
      </ul>
    </section>

    <section anchor="economics">
      <name>Economics</name>
      <ul>
        <li><t>Capital expenditure reduction: reduced reliance on perimeter appliances and complex DMZ designs.</t></li>
        <li><t>Operational expenditure reduction: fewer ACL/NAT rule changes and less inbound exposure management.</t></li>
        <li><t>Risk reduction: reduced externally visible attack surface.</t></li>
        <li><t>Potential service models: governance and RN validation as managed components.</t></li>
      </ul>
    </section>

    <section anchor="migration-plan">
      <name>Migration Plan for Organisations</name>
      <t>
        UZPIF is intended for incremental deployment alongside existing TCP/TLS and QUIC-based stacks
        <xref target="RFC8446"/> and <xref target="RFC9000"/>.
      </t>
      <ol>
        <li><t><strong>Deploy an RN:</strong> Introduce an outbound-only rendezvous node.</t></li>
        <li><t><strong>Deploy the HIL:</strong> Install the Hardware Integration Layer at endpoints or device edges where legacy applications or hardware require mediated compatibility.</t></li>
        <li><t><strong>Dual-stack operation:</strong> Run UZP (<xref target="UZP"/>) alongside existing TCP/TLS.</t></li>
        <li><t><strong>Cutover:</strong> Migrate services gradually to zero-port operation.</t></li>
      </ol>
    </section>

    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>
        UZPIF's central security claim is that avoiding publicly reachable listeners at endpoints reduces exposure to
        scanning and unsolicited ingress.
        However, the framework introduces reliance on identity, authorisation, and policy evaluation components
        (e.g., Pantheon and RNs) whose compromise or misconfiguration could impact availability and authorisation
        correctness.
      </t>
      <t>
        The threat model in <xref target="threat-model"/> discusses attacker classes and candidate controls.
        Future revisions of this document (and the companion UZP (<xref target="UZP"/>) and TLS-DPA (<xref target="TLS-DPA"/>) documents) are expected to provide a more
        systematic analysis, including key management, revocation, attestation trust, and traffic analysis resistance.
      </t>

      <section anchor="transition-of-network-security-roles">
        <name>Transition of Network Security Roles</name>
        <t>
          UZPIF shifts primary access control from network-coordinate filtering toward cryptographic identity, Grants,
          and invariant-bound policy enforcement.
          Network address and open-port exposure therefore cease to be the primary admission model in a native UZPIF
          deployment.
        </t>
        <t>
          Traditional firewalls, DPI systems, and other middleboxes MAY remain useful for containment, telemetry,
          egress control, QoS enforcement, volumetric denial-of-service handling, forensic monitoring, HIL containment,
          regulatory inspection domains, and non-UZPIF legacy enclaves.
          However, they MUST NOT be treated as authoritative truth sources for identity or policy validity.
        </t>
        <t>
          UZPIF does not assume that packet visibility implies authority.
          Where middleboxes remain deployed, they operate as bounded policy, containment, or observability components
          rather than as trust anchors that define whether an identity or Grant is valid.
        </t>
      </section>

      <section anchor="compliance-observability-and-intercept-boundaries">
        <name>Compliance, Observability, and Intercept Boundaries</name>
        <t>
          Some deployments will require explicit policy enforcement, enterprise inspection, regulated access, or other
          observability controls.
          This document does not define a universal lawful-intercept or hidden inspection authority for UZPIF.
        </t>
        <t>
          Where compliance, monitoring, mediation, or inspection components are deployed, they MUST remain explicit,
          bounded, and cryptographically distinguishable from protocol truth.
          The existence of such a component MUST NOT silently redefine endpoint identity, Pantheon authority, Grant
          validity, revocation state, or other authorisation-relevant truth in the UZPIF suite.
        </t>
        <t>
          A compliance or inspection function MAY enforce local policy, provide observability, or participate in a
          regulated deployment boundary, but it MUST be treated as a deployment-specific control surface rather than as
          implicit sovereign protocol authority.
          Operator or institutional pressure to insert monitoring MUST NOT be satisfied by silently converting
          middleboxes, RNs, HILs, or auxiliary services into hidden trust anchors.
        </t>
      </section>

      <section anchor="network-centric-visibility-gaps">
        <name>Identity-Aware Observability Shift</name>
        <t>
          Network-address and port-oriented monitoring may lose significant explanatory power in UZPIF environments.
          Legacy network-centric visibility therefore becomes incomplete rather than useless: defenders may see less
          value in source or destination address patterns, open-port exposure, unsolicited inbound attempts, protocol
          signatures, or packet-shape heuristics than in conventional port-based environments.
        </t>
        <t>
          This does not imply that UZPIF blinds defenders.
          It does mean that security analytics SHOULD rely increasingly on identity-aware telemetry, authority
          artefacts, Grant usage patterns, rendezvous behaviour, and policy-verification events rather than on legacy
          assumptions about open-port exposure.
          Otherwise, Shadow IT activity, stealthy misuse of valid outbound behaviour, unauthorised stitching requests,
          abuse of legitimate-looking identity objects, or compromised internal workloads acting within apparently
          allowed tunnel patterns may become harder to explain or detect.
        </t>
        <t>
          Privacy-related properties in UZPIF MUST be separated.
          Reduced service discoverability means that publicly reachable listeners and routine unsolicited scanning lose
          some value.
          Encrypted content protection means that authorised endpoints can protect payloads and application content
          from intermediaries.
          Traffic-pattern privacy concerns whether observers can still infer communication existence, counterpart
          relationships, cadence, timing, or operational significance from metadata.
          Improvement in one of these properties MUST NOT be represented as automatically delivering the other two.
        </t>
        <t>
          Effective deployment profiles SHOULD expose auditable telemetry such as Grant issuance and usage logs, RN
          selection patterns, failed stitching attempts, revocation-consistency signals, identity or authority
          anomalies, HIL mediation events, downgrade or compatibility-mode activation, and unusual policy-bound session
          graphs.
          Such telemetry SHOULD remain explicit, policy-bound, and reviewable rather than being inferred indirectly
          from legacy packet visibility alone.
        </t>
      </section>

      <section anchor="time-as-a-trust-dependency">
        <name>Time as a Trust Dependency</name>
        <t>
          Time is a security-relevant input in the UZPIF suite.
          Grant expiry, revocation freshness, log checkpoints, replay defence, policy activation windows, and software
          or patch manifest validity all depend on time evaluation.
          Implementations MUST therefore treat local time and time-derived freshness decisions as part of the trusted
          security boundary rather than as a purely operational convenience.
        </t>
        <t>
          Policy decisions that depend on time SHOULD tolerate bounded clock drift as defined by deployment policy or a
          stricter profile.
          However, no single unauthenticated time source SHALL become a mandatory truth anchor for continued protocol
          validity.
          Deployments SHOULD use independently checkable, redundant, or otherwise policy-vetted time inputs where time
          correctness materially affects authorisation or freshness decisions.
        </t>
        <t>
          When time is uncertain, inconsistent, or outside locally permitted drift bounds, implementations SHOULD
          degrade safely rather than silently accepting stale or not-yet-valid authority.
          Safe degradation MAY include rejecting time-sensitive artefacts, requiring revalidation, narrowing replay
          windows, surfacing operator alarms, or falling back to more conservative local policy.
        </t>
        <t>
          This document does not define a suite-wide time synchronisation protocol.
          It does define the security posture that incorrect or manipulated time MUST NOT silently widen authority,
          revive expired Grants, delay emergency revocation effect, or normalise ambiguous checkpoint ordering without
          explicit local policy.
        </t>
      </section>

      <section anchor="replay-caching-and-stale-authority">
        <name>Replay, Caching, and Stale Authority</name>
        <t>
          Authenticity alone is insufficient for security-relevant artefacts in the UZPIF suite.
          Grants, revocation signals and threshold evidence as profiled by TLS-DPA (<xref target="TLS-DPA"/>), PoR
          artefacts as defined by UZP (<xref target="UZP"/>), Proofs of RN Misbehaviour
          (<xref target="proof-of-rn-misbehaviour"/>), transparency checkpoints and receipts as profiled by outbound
          indexing (<xref target="OUTBOUND-INDEXING"/>), and similar signed objects MUST also be evaluated for
          freshness, scope, sequence or epoch, audience where relevant, and current policy eligibility before they
          influence authorisation or trust decisions.
        </t>
        <t>
          An old but well-signed artefact MUST NOT be accepted merely because its signature validates.
          Implementations MUST determine whether the artefact has expired, has been superseded by a newer eligible
          artefact, falls outside the current policy scope, or remains within any locally permitted stale window for
          the decision being made.
        </t>
        <t>
          Profiles SHOULD define bounded stale windows for continued operation during outage or partition conditions.
          Within such a window, implementations MAY continue to rely on cached authority for narrowly scoped,
          non-expanding behaviour if local policy permits it.
          Outside that window, or when freshness cannot be established, systems SHOULD require revalidation before
          continuing security-relevant operation and SHOULD fail closed for authorisation-expanding decisions.
        </t>
      </section>

      <section anchor="downgrade-and-compatibility-mode-abuse">
        <name>Downgrade and Compatibility-Mode Abuse</name>
        <t>
          UZPIF deployments may support native operation, HIL-mediated operation, brokered compatibility modes,
          legacy transport fallback, optional transparency behaviour, or advisory revocation thresholds.
          These modes create downgrade risk if an attacker can force the system onto a weaker posture while preserving
          the appearance of normal operation.
        </t>
        <t>
          Fallback and degraded modes MUST be explicit, observable, and policy-bound.
          An implementation MUST NOT silently downgrade from native identity-first operation to mediated, brokered,
          legacy-compatible, transparency-reduced, or revocation-weakened behaviour without an allowed policy rule and
          locally observable state indicating that the downgrade occurred.
        </t>
        <t>
          Peers, operators, or relying services SHOULD be able to determine whether a session or decision is operating
          in native, mediated, brokered, or otherwise degraded mode.
          Degraded operation MUST NOT silently inherit the same trust posture, authority scope, or audit assumptions
          as native operation.
          Profiles SHOULD narrow permissions, reduce session lifetime, strengthen revalidation requirements, or
          require additional operator visibility when compatibility or degraded modes are active.
        </t>
        <t>
          Suppressed transparency checks, unavailable revocation evidence, weaker identity binding rules, or temporary
          compatibility exceptions MUST be treated as explicit trust reductions rather than harmless operational
          details.
          If the required stronger mode cannot be established, implementations SHOULD fail closed for
          authorisation-expanding behaviour unless local policy explicitly permits the weaker mode for a bounded scope
          and duration.
        </t>
      </section>

      <section anchor="break-glass-and-emergency-override-discipline">
        <name>Break-Glass and Emergency Override Discipline</name>
        <t>
          Real-world deployments may require emergency action during outage, recovery, migration, or incident
          containment.
          However, a break-glass path that silently disables normal trust checks is itself a high-risk authority path.
        </t>
        <t>
          Any emergency override MUST be explicit, narrowly scoped, time-bounded, auditable, and incapable of silently
          becoming normal steady-state policy.
          A break-glass decision MUST NOT be normalised as an invisible standing exception to identity validation,
          Grant evaluation, revocation processing, transparency expectations, or other authorisation-relevant checks in
          the UZPIF suite.
        </t>
        <t>
          Deployment profiles SHOULD record the triggering reason, affected scope, approving authority, activation
          time, expiry condition, and review outcome for such overrides.
          Emergency operation SHOULD surface clear local state to operators and relying parties when the stronger
          normal posture has been reduced.
        </t>
      </section>

      <section anchor="metadata-leakage-and-traffic-analysis">
        <name>Metadata Leakage and Traffic Analysis</name>
        <t>
          UZPIF can materially reduce direct service and endpoint discoverability without guaranteeing metadata
          indistinguishability.
          Removing publicly reachable listening ports does not, by itself, provide strong privacy or anonymity.
          Unscannable is not the same as unseen.
          Rendezvous, transparency, and indexing infrastructure MAY still expose valuable metadata such as which
          parties communicate, which RN or RN cluster they use, how often they communicate, when sessions occur, how
          long they persist, retry patterns, topology clusters, discovery behaviour, revocation bursts, patch or
          rollout waves, and whether bursts correlate with alarms, updates, or emergency operations.
        </t>
        <t>
          Even where payload plaintext remains protected, this metadata can support correlation, surveillance, tenant
          mapping, operational fingerprinting, or coercive analysis.
          A Rendezvous Node or indexing service that is not a truth anchor may still become a surveillance anchor if
          deployments over-retain, over-expose, or casually centralise metadata visibility.
        </t>
        <t>
          Reduced discoverability, encrypted content protection, and traffic-pattern privacy are separate design axes.
          UZPIF can reduce unsolicited inbound exposure and support protected payload transport while still leaving
          observable metadata patterns available to infrastructure operators or network observers.
          Observers such as carriers, backbone operators, ISPs, or state-level monitors may still infer communication
          existence, cadence, rendezvous relationships, and operational timing from outbound rendezvous patterns unless
          additional privacy-preserving measures are deployed.
          Claims about strong observation resistance or traffic-pattern privacy MUST therefore be bounded and
          profile-dependent.
        </t>
        <t>
          Operators SHOULD minimise metadata retention, restrict unnecessary visibility, and avoid collecting or
          exposing finer-grained metadata than is needed for security, accountability, or operational continuity.
          Deployment profiles SHOULD define retention bounds, access controls, aggregation rules, and disclosure
          controls for security-relevant logs, receipts, checkpoints, and session records.
        </t>
        <t>
          Privacy-sensitive profiles MAY use identifier rotation, cover traffic, padding, batching, aggregation,
          timing obfuscation, multi-RN distribution, traffic shaping, delayed publication, or metadata-minimising RN
          policy to reduce correlation risk where those measures are compatible with the deployment's accountability and
          performance goals.
          Removal of inbound ports alone MUST NOT be treated as sufficient support for broader privacy claims.
        </t>
      </section>

      <section anchor="denial-of-service-and-state-exhaustion">
        <name>Rendezvous Concentration and Availability Pressure</name>
        <t>
          UZPIF and its companion mechanisms introduce stateful verification paths, including handshake processing,
          PoR validation, Grant verification, transparency checking, authority discovery or resolution, repeated
          stitching attempts, and HIL-mediated translation work.
          These paths may improve exposure relative to openly listening services while still creating denial-of-service
          or state-exhaustion risk if attackers can force expensive pre-authorisation work at scale.
        </t>
        <t>
          Removing inbound exposure from endpoints does not eliminate denial-of-service risk; it shifts strategic
          pressure toward rendezvous and control-plane infrastructure.
          UZPIF therefore redistributes attack surface away from broad endpoint exposure and toward smaller sets of
          highly defended coordination infrastructure.
          UZPIF-compliant deployments MUST therefore treat RN availability as a first-class design concern rather than
          as an operational afterthought.
        </t>
        <t>
          RNs are likely focal points for volumetric, state-exhaustion, and coordination-disruption attacks.
          Endpoint hardening alone does not solve network-wide availability.
          Deployments SHOULD assume deliberate RN-targeted overload attempts and SHOULD use plurality, geographic
          dispersion, bounded-state processing, rate controls, admission pacing, queue isolation, and failure isolation
          where practical.
          The availability of RN infrastructure also depends partly on underlying transport and routing ecosystems that
          are outside the protocol's direct control, so protocol and deployment design SHOULD minimise the consequences
          of temporary RN overload, routing impairment, or RN loss.
        </t>
        <t>
          Expensive cryptographic verification, policy evaluation, federation lookups, or translation work SHOULD occur
          as late as safely possible in the processing path.
          Stateless screening, bounded-prestate admission checks, puzzles, quotas, or other low-cost filters SHOULD be
          preferred where practical before allocating scarce state or invoking high-cost validation.
        </t>
        <t>
          RNs, HILs, and related control-plane services SHOULD rate-limit, queue-bound, or otherwise constrain
          untrusted requests before high-cost cryptographic or policy evaluation where feasible.
          Implementations SHOULD separate basic survivability controls from richer verification paths so that overload
          of one validation function does not automatically collapse unrelated session handling or local containment.
        </t>
        <t>
          Basic survivability SHOULD NOT depend on a single always-available validation bottleneck such as one
          authority-resolution path, one transparency endpoint, or one high-cost policy service.
          Deployment profiles SHOULD define bounded-failure behaviour, degraded but observable operation, and local
          overload policy so that exhaustion pressure does not silently widen authority or force unsafe fallback.
        </t>
      </section>
    </section>

    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
      <t>UZPIF is an architectural framework and does not define protocol parameters requiring registries.</t>
    </section>

  </middle>

  <back>

    <references>
      <name>Normative References</name>
      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2119.xml"/>
      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8174.xml"/>
      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8785.xml"/>
    </references>

    <references>
      <name>Informative References</name>
      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5389.xml"/>
      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5766.xml"/>
      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7401.xml"/>
      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8446.xml"/>
      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.9000.xml"/>

      <reference anchor="UZP">
        <front>
          <title>UZP: Universal Zero-Port Transport Protocol</title>
          <author fullname="Benjamin Anthony Fisher"/>
          <date/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-dpa-uzp-transport"/>
      </reference>

      <reference anchor="TLS-DPA">
        <front>
          <title>TLS-DPA: An Identity-Bound Security Protocol for Traditional, Overlay, and Zero-Port Transports</title>
          <author fullname="Benjamin Anthony Fisher"/>
          <date/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-dpa-tls-dpa"/>
      </reference>

      <reference anchor="OUTBOUND-INDEXING">
        <front>
          <title>Outbound Indexing over UZPIF: Consent-First Discovery and Indexing</title>
          <author fullname="Benjamin Anthony Fisher"/>
          <date/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-dpa-uzpif-outbound-indexing"/>
      </reference>

      <reference anchor="ICSD">
        <front>
          <title>Invariant-Closed System Design (ICSD)</title>
          <author fullname="Benjamin Anthony Fisher"/>
          <date/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-dpa-icsd"/>
      </reference>

      <reference anchor="NIST-PQC" target="https://csrc.nist.gov/Projects/post-quantum-cryptography">
        <front>
          <title>NIST Post-Quantum Cryptography Standardization Project</title>
          <author>
            <organization>National Institute of Standards and Technology</organization>
          </author>
          <date year="2022"/>
        </front>
      </reference>

      <reference anchor="NIST-SP800-207" target="https://doi.org/10.6028/NIST.SP.800-207">
        <front>
          <title>Zero Trust Architecture</title>
          <author fullname="Scott Rose"/>
          <author fullname="Oliver Borchert"/>
          <author fullname="Stu Mitchell"/>
          <author fullname="Sean Connelly"/>
          <date year="2019"/>
        </front>
        <seriesInfo name="NIST SP" value="800-207"/>
      </reference>

      <reference anchor="Tor">
        <front>
          <title>Tor: The Second-Generation Onion Router</title>
          <author fullname="Roger Dingledine"/>
          <author fullname="Nick Mathewson"/>
          <author fullname="Paul Syverson"/>
          <date year="2004"/>
        </front>
      </reference>

    </references>
  </back>

</rfc>
