NHE Constrained Bootstrap: A Self-Describing Capability and Constraint Declaration Protocol for Autonomous Agents
draft-ruvalcaba-nhe-bootstrap-00
This document is an Internet-Draft (I-D).
Anyone may submit an I-D to the IETF.
This I-D is not endorsed by the IETF and has no formal standing in the
IETF standards process.
| Document | Type | Active Internet-Draft (individual) | |
|---|---|---|---|
| Author | Cristian Xavier Ruvalcaba | ||
| Last updated | 2026-08-13 | ||
| RFC stream | (None) | ||
| Intended RFC status | (None) | ||
| Formats | |||
| Stream | Stream state | (No stream defined) | |
| Consensus boilerplate | Unknown | ||
| RFC Editor Note | (None) | ||
| IESG | IESG state | I-D Exists | |
| Telechat date | (None) | ||
| Responsible AD | (None) | ||
| Send notices to | (None) |
draft-ruvalcaba-nhe-bootstrap-00
Individual Submission C.X. Ruvalcaba
Internet-Draft Saluca LLC
Intended status: Standards Track 11 August 2026
Expires: 12 February 2027
NHE Constrained Bootstrap: A Self-Describing Capability and Constraint
Declaration Protocol for Autonomous Agents
draft-ruvalcaba-nhe-bootstrap-00
Abstract
This document specifies how a Non-Human Entity (NHE) declares, at
bootstrap, what it is capable of and is thereby bounded in what it is
permitted to do. An entity produces a signed, self-describing
capability manifest through automated introspection; a coordinator
classifies the manifest into a capability tier that maps to a
permission matrix --- the set of task types the entity is authorized
to perform --- and every subsequent task dispatch is gated against
that envelope. The result is a verifiable, self-describing
constraint on an entity established at the moment it joins, realizing
the bounded-authority invariant of the NHE architecture at boot time.
The manifest and handshake data model is specified here; the wire
encoding is deferred to the next revision.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 12 February 2027.
Copyright Notice
Copyright (c) 2026 IETF Trust and the persons identified as the
document authors. All rights reserved.
Ruvalcaba Expires 12 February 2027 [Page 1]
Internet-Draft NHE Bootstrap August 2026
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Relationship to the NHE Architecture . . . . . . . . . . . . 2
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. The Capability Manifest . . . . . . . . . . . . . . . . . . . 3
5. Capability Tiers and the Permission Matrix . . . . . . . . . 4
6. The Bootstrap Handshake . . . . . . . . . . . . . . . . . . . 4
7. Dispatch Gating and Capability Assurance . . . . . . . . . . 5
8. Wire Format (to be specified in -01) . . . . . . . . . . . . 5
9. Security Considerations . . . . . . . . . . . . . . . . . . . 5
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6
11. Normative References . . . . . . . . . . . . . . . . . . . . 6
12. Informative References . . . . . . . . . . . . . . . . . . . 6
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 7
1. Introduction
An autonomous entity should not be trusted to do whatever it asks to
do; it should be bounded to what it is actually capable of and
authorized for, and that bound should be established verifiably when
it joins, not assumed. This document specifies a bootstrap in which
an entity *describes itself* --- its resources, its capabilities, the
actions it can perform --- in a signed manifest, is classified into a
permission envelope on that basis, and is thereafter gated so that a
task exceeding its declared and authorized capability is never
dispatched to it. The motivating case is an entity that can drive
physical actuation: dispatching an actuator task to an entity not
tier-authorized for it is a safety failure, not merely a routing
error.
2. Relationship to the NHE Architecture
This document specifies part of the Governance interface of
[I-D.ruvalcaba-nhe-arch] and is the boot-time realization of that
model's *bounded-authority* invariant: authority is conferred by
classification of a verifiable self-description into a permission
envelope, and is exercised only within it. The entity is named by
its NHE identity [I-D.ruvalcaba-nhe-identity], and the key that signs
Ruvalcaba Expires 12 February 2027 [Page 2]
Internet-Draft NHE Bootstrap August 2026
its manifest is bound to that identity, so a capability assertion is
tied to the entity making it. This protocol governs what an entity
may ever do; the companion backchannel-authorization protocol
[I-D.ruvalcaba-nhe-authz] governs whether a specific action is
permitted at the time it is attempted.
3. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "MAY", and
"OPTIONAL" are to be interpreted as described in BCP 14 [RFC2119]
[RFC8174].
Capability manifest: A self-describing declaration of an entity's
resources and capabilities, produced by introspection and signed
by the entity.
Capability tier: A class assigned by the coordinator from the
manifest via quantitative thresholds.
Permission matrix: The set of task types and subtypes a tier is
authorized to perform.
Constraint manifest: The capability manifest together with the tier-
derived permission matrix; the entity's full authorization
envelope.
Coordinator: The party that classifies manifests, registers
entities, and gates task dispatch.
4. The Capability Manifest
An entity produces its capability manifest by automated
introspection. The manifest declares at least: a stable entity
identifier bound to the entity's identity, an enumeration of
computational resources, an enumeration of the classes of action the
entity can perform (including any that affect the physical world), an
enumeration of locally available inference capabilities with measured
throughput, and network characteristics. The specific fields are
extensible; the requirement is that the manifest be a complete,
honest self-description sufficient for classification.
Ruvalcaba Expires 12 February 2027 [Page 3]
Internet-Draft NHE Bootstrap August 2026
The manifest is signed over its *canonical serialization* --- JSON
Canonicalization Scheme [RFC8785], with the signature and signature-
method fields excluded from the signed content --- so any verifier
recomputes byte-identical signed input. The signature MAY be a
symmetric MAC under a coordinator-derived per-entity key (integrity
relative to a key-holder) or, where non-repudiation is required, an
asymmetric signature under an entity-generated key whose public half
is registered (Section 6).
5. Capability Tiers and the Permission Matrix
The coordinator classifies a manifest into a capability tier by
applying quantitative thresholds to the declared resources and
capabilities. Each tier maps to a permission matrix: the task types
and subtypes an entity in that tier is authorized to perform. The
pairing of the capability manifest with the tier-derived permission
matrix is the entity's constraint manifest --- its authorization
envelope. Classification is the point at which a self-description
becomes a bounded authority.
6. The Bootstrap Handshake
The bootstrap is a fixed, non-recursive sequence:
1. The entity introspects and builds its capability manifest.
2. The entity registers with the coordinator over a mutually
authenticated transport.
3. The coordinator derives a per-entity key --- for example by an
HKDF [RFC5869] from the entity's identity-bound identifier,
giving certificate-less identity without PKI provisioning --- and
returns it once, over the mutually authenticated channel (a
trust-on-first-use root), together with a scoped namespace and a
poll interval calibrated to the entity's tier.
4. The entity re-signs its manifest with the derived (or its own
asymmetric) key and returns it.
5. The coordinator verifies the re-signed manifest by independently
re-deriving the key (or checking the registered public key) and
recomputing the signature.
6. The coordinator registers the entity with its verified manifest,
computed tier, and key identifier.
Ruvalcaba Expires 12 February 2027 [Page 4]
Internet-Draft NHE Bootstrap August 2026
Because the per-entity key is derived from the same identity-bound
identifier that the signed manifest asserts, the capability assertion
is cryptographically knotted to the entity's derived identity: a
manifest cannot be presented under one identity but signed as
another.
7. Dispatch Gating and Capability Assurance
For each proposed task dispatch, the coordinator MUST verify that the
task type and subtype are permitted by the target entity's permission
matrix, that the capabilities the task requires are declared present
in the target's manifest, and that the target is active. A task is
enqueued only if all hold; otherwise it is rerouted to an entity
whose tier and manifest permit it, or denied. This is what prevents
capability-exceeding dispatch.
Because a self-description is self-reported and therefore potentially
false, the coordinator SHOULD perform capability assurance under
trust-on-first-use: it dispatches a test task exercising a claimed
capability and compares the result to an expected oracle, demoting or
quarantining an entity whose claimed capability does not check out.
Self-report establishes the envelope; spot-check and identity binding
keep it honest.
8. Wire Format (to be specified in -01)
The manifest content model, its canonical serialization and
signature, the tier-and-permission-matrix model, the six-step
handshake, and the dispatch gating rule are fixed by this revision.
The concrete encodings of the manifest and the handshake messages are
deferred to the next revision.
9. Security Considerations
A capability manifest is self-reported, so its declarations
authenticate an entity only as strongly as the key that signs it and
the assurance that backs it. A symmetric-MAC manifest provides
integrity relative to a key-holder but not non-repudiation, and an
identifier derived from semi-public attributes does not by itself
authenticate hardware; deployments needing non-repudiation or
hardware assurance MUST use the asymmetric-key variant bound to
identity [I-D.ruvalcaba-nhe-identity] and/or the hardware-rooted
attestation profile referenced there, plus spot-check capability
assurance (Section 7). The derived per-entity key is returned once
over the mutually authenticated channel; that channel is the trust-
on-first-use root and MUST be strongly authenticated.
Canonicalization [RFC8785] MUST be identical at signing and
verification, or valid manifests will be rejected or, worse, a
Ruvalcaba Expires 12 February 2027 [Page 5]
Internet-Draft NHE Bootstrap August 2026
binding gap will open. Dispatch gating is a safety control, not only
an authorization one: for actions affecting the physical world, a
gating bypass can cause physical harm, so gating MUST fail closed ---
an unclassifiable or unverifiable entity receives no permissions.
10. IANA Considerations
A future revision will request registries for capability-manifest
field identifiers and for task-type/subtype identifiers used in
permission matrices, under a Specification Required policy [RFC8126].
No IANA action is requested by this skeleton revision.
11. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, May 2017,
<https://www.rfc-editor.org/info/rfc8174>.
[RFC8785] Rundgren, A., Jordan, B., and S. Erdtman, "JSON
Canonicalization Scheme (JCS)", RFC 8785, June 2020,
<https://www.rfc-editor.org/info/rfc8785>.
12. Informative References
[I-D.ruvalcaba-nhe-arch]
Ruvalcaba, C.X., "An Architecture for Non-Human Entities
(NHE)", Work in Progress, Internet-Draft, draft-ruvalcaba-
nhe-arch-00, August 2026,
<https://datatracker.ietf.org/doc/html/draft-ruvalcaba-
nhe-arch-00>.
[I-D.ruvalcaba-nhe-authz]
Ruvalcaba, C.X., "NHE Backchannel Authorization", Work in
Progress, Internet-Draft, draft-ruvalcaba-nhe-authz-00,
August 2026, <https://datatracker.ietf.org/doc/html/draft-
ruvalcaba-nhe-authz-00>.
[I-D.ruvalcaba-nhe-identity]
Ruvalcaba, C.X., "NHE Identity", Work in Progress,
Internet-Draft, draft-ruvalcaba-nhe-identity-00, August
2026, <https://datatracker.ietf.org/doc/html/draft-
ruvalcaba-nhe-identity-00>.
Ruvalcaba Expires 12 February 2027 [Page 6]
Internet-Draft NHE Bootstrap August 2026
[RFC5869] Krawczyk, H. and P. Eronen, "HMAC-based Extract-and-Expand
Key Derivation Function (HKDF)", RFC 5869, May 2010,
<https://www.rfc-editor.org/info/rfc5869>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>.
Author's Address
Cristian Xavier Ruvalcaba
Saluca LLC
Email: cristian@saluca.com
Ruvalcaba Expires 12 February 2027 [Page 7]