feat: add draft data, gap analysis report, and workspace config
This commit is contained in:
@@ -0,0 +1,695 @@
|
||||
---
|
||||
title: "Assurance Profiles for Agent Ecosystems (APAE)"
|
||||
abbrev: "APAE"
|
||||
category: info
|
||||
docname: draft-apae-assurance-profiles-01
|
||||
submissiontype: IETF
|
||||
number:
|
||||
date:
|
||||
v: 3
|
||||
area: "SEC"
|
||||
workgroup: "Security Dispatch"
|
||||
keyword:
|
||||
- dynamic trust
|
||||
- assurance
|
||||
- behavior verification
|
||||
- data provenance
|
||||
- quarantine
|
||||
|
||||
author:
|
||||
-
|
||||
fullname: TBD
|
||||
organization: Independent
|
||||
email: placeholder@example.com
|
||||
|
||||
normative:
|
||||
RFC2119:
|
||||
RFC8174:
|
||||
RFC7519:
|
||||
RFC7518:
|
||||
RFC9110:
|
||||
I-D.nennemann-wimse-ect:
|
||||
title: "Execution Context Tokens for Distributed Agentic Workflows"
|
||||
target: https://datatracker.ietf.org/doc/draft-nennemann-wimse-ect/
|
||||
I-D.nennemann-agent-dag-hitl-safety:
|
||||
title: "Agent Context Policy Token: DAG Delegation with Human Override"
|
||||
target: https://datatracker.ietf.org/doc/draft-nennemann-agent-dag-hitl-safety/
|
||||
|
||||
informative:
|
||||
RFC9334:
|
||||
|
||||
--- abstract
|
||||
|
||||
This document defines Assurance Profiles for Agent Ecosystems
|
||||
(APAE): dynamic trust scoring, behavior verification, data
|
||||
provenance, cross-domain trust, and graduated assurance profiles
|
||||
that allow the same agent ecosystem to operate in relaxed
|
||||
(dev/K8s) and regulated (healthcare, finance) environments.
|
||||
Trust events are derived from ECT outcomes. Trust assertions are
|
||||
ECTs. Behavior verification references ECT claims. Provenance
|
||||
chains are implicit in the ECT DAG. Assurance profiles select
|
||||
which combination of these mechanisms is required for a given
|
||||
deployment, mapping to ECT assurance levels L1/L2/L3. Agents
|
||||
whose trust falls below a floor are quarantined via a protocol
|
||||
defined here.
|
||||
|
||||
--- middle
|
||||
|
||||
# Introduction
|
||||
|
||||
Identity verifies who an agent is. ECT records what an agent did.
|
||||
But neither answers: should I rely on this agent? Is it doing what
|
||||
it promised? Can I trace where this data came from?
|
||||
|
||||
APAE adds four capabilities to the ecosystem:
|
||||
|
||||
1. **Dynamic trust scoring** — behavioral reputation that adjusts
|
||||
based on interaction outcomes (AIMD model).
|
||||
2. **Behavior verification** — checking agent actions against
|
||||
declared specifications.
|
||||
3. **Data provenance** — tracing data lineage through the DAG.
|
||||
4. **Cross-domain trust** — federating trust across administrative
|
||||
domains.
|
||||
|
||||
These capabilities are bundled into assurance profiles
|
||||
(Relaxed, Standard, Regulated) that map to ECT assurance levels,
|
||||
so the same ecosystem works from a dev cluster to a hospital.
|
||||
|
||||
# Conventions and Definitions
|
||||
|
||||
{::boilerplate bcp14-tagged}
|
||||
|
||||
Trust Score:
|
||||
: A floating-point value in \[0.0, 1.0\] representing one agent's
|
||||
assessed reliability of another.
|
||||
|
||||
Trust Event:
|
||||
: An interaction outcome that causes a trust score adjustment.
|
||||
Derived from ECTs.
|
||||
|
||||
Trust Domain:
|
||||
: An administrative boundary within which a single trust anchor
|
||||
(CA or JWK set) governs agent identity.
|
||||
|
||||
Behavior Specification:
|
||||
: A machine-readable declaration of permitted agent actions and
|
||||
constraints.
|
||||
|
||||
Provenance Chain:
|
||||
: The sequence of ECT nodes recording how a piece of data was
|
||||
produced, transformed, and consumed.
|
||||
|
||||
Assurance Profile:
|
||||
: A named configuration selecting which trust, verification, and
|
||||
provenance mechanisms are required.
|
||||
|
||||
Quarantine:
|
||||
: A state in which an agent's trust score has dropped below a
|
||||
configured floor; the agent is prohibited from accepting new
|
||||
delegations.
|
||||
|
||||
# Dynamic Trust Scoring {#trust}
|
||||
|
||||
## Trust Score Model
|
||||
|
||||
Each agent maintains a trust table: peer agent IDs mapped to
|
||||
trust scores. Initial trust for unknown agents is deployment-
|
||||
configured (RECOMMENDED: 0.5; zero-trust deployments: 0.1).
|
||||
|
||||
Scores update using additive-increase, multiplicative-decrease
|
||||
(AIMD):
|
||||
|
||||
- Positive event: `score = min(1.0, score + alpha)`
|
||||
- Negative event: `score = max(0.0, score * beta)`
|
||||
|
||||
Defaults: `alpha = 0.01`, `beta = 0.8`.
|
||||
|
||||
Trust builds slowly (100 successes: 0.5 → ~1.0) and drops fast
|
||||
(one failure: 0.82 → 0.66).
|
||||
|
||||
## Trust Events from ECT {#trust-events}
|
||||
|
||||
Trust events are derived from ECTs rather than agent-local
|
||||
counters, making trust computation auditable:
|
||||
|
||||
| ECT condition | Event | Adjustment |
|
||||
|--------------|-------|------------|
|
||||
| Completed, no error follows | `task_success` | +1x alpha |
|
||||
| Completed, partial result | `task_partial` | +0.5x alpha |
|
||||
| `atd:error` referencing agent | `task_failure` | 1x beta |
|
||||
| No response within threshold | `task_timeout` | 1x beta |
|
||||
| `atd:error` with `constraint_violation` | `policy_violation` | beta^2 |
|
||||
| ECT signature verification fails | `attestation_invalid` | beta^2 |
|
||||
| `atd:rollback_request` targeting agent | `rollback_triggered` | 1x beta |
|
||||
{: #fig-events title="Trust Events from ECT"}
|
||||
|
||||
## Trust Decay
|
||||
|
||||
If no interaction occurs for a configurable period (default:
|
||||
7 days): `score = max(initial_default, score - 0.01/day)`.
|
||||
|
||||
## Trust Assertions as ECT {#trust-assertions}
|
||||
|
||||
Agent A shares its trust assessment via a trust assertion ECT:
|
||||
|
||||
- `exec_act`: `"apae:trust_assertion"`
|
||||
|
||||
~~~json
|
||||
{
|
||||
"exec_act": "apae:trust_assertion",
|
||||
"ext": {
|
||||
"apae.subject": "spiffe://example.com/agent/b",
|
||||
"apae.trust_score": 0.82,
|
||||
"apae.interactions": 147,
|
||||
"apae.confidence": "high",
|
||||
"apae.hops": 0
|
||||
}
|
||||
}
|
||||
~~~
|
||||
{: #fig-assertion title="Trust Assertion ECT"}
|
||||
|
||||
Confidence: `low` (<10 interactions), `medium` (10-99),
|
||||
`high` (100+).
|
||||
|
||||
Trust assertion ECTs MUST be signed at L2/L3.
|
||||
|
||||
## Trust Propagation
|
||||
|
||||
When Agent C receives A's assertion about B:
|
||||
|
||||
~~~
|
||||
c_score_for_b = max(c_score_for_b,
|
||||
a_score * trust_of_a * attenuation)
|
||||
~~~
|
||||
|
||||
Default `attenuation`: 0.5. Direct observations always take
|
||||
precedence. `apae.hops` tracks propagation depth; agents MUST NOT
|
||||
propagate beyond their configured maximum (default: 1).
|
||||
|
||||
## Trust Thresholds as Policy
|
||||
|
||||
Trust thresholds are ACP-DAG-HITL node constraints:
|
||||
|
||||
~~~json
|
||||
{
|
||||
"constraints": {
|
||||
"apae.min_trust": 0.7,
|
||||
"apae.min_confidence": "medium"
|
||||
}
|
||||
}
|
||||
~~~
|
||||
{: #fig-threshold title="Trust Threshold as Node Constraint"}
|
||||
|
||||
Requests from agents below threshold MUST be denied with HTTP 403.
|
||||
The `apae.peer_trust_score` is a runtime context value derived
|
||||
from the trusting agent's trust table for the requesting peer;
|
||||
it is not an ECT claim itself.
|
||||
|
||||
Low trust can trigger HITL escalation:
|
||||
|
||||
~~~json
|
||||
{
|
||||
"id": "r-low-trust",
|
||||
"trigger": {
|
||||
"kind": "confidence_below",
|
||||
"op": "lt",
|
||||
"value": 0.5,
|
||||
"input_ref": "apae.peer_trust_score"
|
||||
},
|
||||
"required_role": "operator:security",
|
||||
"action": "escalate",
|
||||
"allow_override": true,
|
||||
"override_action": "continue"
|
||||
}
|
||||
~~~
|
||||
{: #fig-trust-hitl title="HITL Rule for Low Trust"}
|
||||
|
||||
## Automatic Revocation
|
||||
|
||||
When trust drops below a floor (default: 0.2), the trusting agent
|
||||
SHOULD revoke delegations and emit:
|
||||
`exec_act: "apae:trust_revoke"`.
|
||||
|
||||
# Quarantine Protocol {#quarantine}
|
||||
|
||||
When a trust score drops below the configured quarantine floor
|
||||
(default: 0.15), the agent enters quarantine.
|
||||
|
||||
## Quarantine Entry
|
||||
|
||||
The detecting agent MUST emit a quarantine ECT:
|
||||
|
||||
~~~json
|
||||
{
|
||||
"exec_act": "apae:quarantine",
|
||||
"ext": {
|
||||
"apae.subject": "spiffe://example.com/agent/b",
|
||||
"apae.score": 0.12,
|
||||
"apae.threshold": 0.15,
|
||||
"apae.quarantine_until": "2026-03-02T12:00:00Z",
|
||||
"apae.reason": "Repeated policy_violation events (3 in 1 hour)"
|
||||
}
|
||||
}
|
||||
~~~
|
||||
{: #fig-quarantine title="Quarantine ECT"}
|
||||
|
||||
The quarantine ECT MUST be broadcast to all agents that have
|
||||
received trust assertions about the quarantined agent
|
||||
(via `apae:trust_assertion` with matching `apae.subject`).
|
||||
|
||||
## Quarantined Agent Behavior
|
||||
|
||||
While quarantined, a subject agent:
|
||||
|
||||
- MUST NOT accept new delegations. New delegation requests MUST
|
||||
return HTTP 503 with `Retry-After` set to `apae.quarantine_until`.
|
||||
- MUST complete in-progress workflows (drain behavior per AEPB).
|
||||
- MAY accept direct operator commands (HITL Level 4 is unaffected).
|
||||
|
||||
Agents receiving the quarantine notification MUST update their
|
||||
trust table and MUST NOT delegate new tasks to the quarantined
|
||||
agent until the quarantine expires or is lifted.
|
||||
|
||||
## Quarantine Duration
|
||||
|
||||
The default quarantine duration is 1 hour, doubling on each
|
||||
successive quarantine entry:
|
||||
|
||||
| Quarantine count | Duration |
|
||||
|-----------------|---------|
|
||||
| 1 | 1 hour |
|
||||
| 2 | 2 hours |
|
||||
| 3 | 4 hours |
|
||||
| n | 2^(n-1) hours (max 168 hours / 7 days) |
|
||||
{: #fig-quarantine-duration title="Quarantine Duration Escalation"}
|
||||
|
||||
## Quarantine Expiry and Recovery
|
||||
|
||||
When the quarantine period expires:
|
||||
|
||||
1. The agent's trust score is reset to the initial default
|
||||
(deployment-configured; RECOMMENDED: 0.5 for recovery).
|
||||
2. The agent transitions back to active status per AEPB lifecycle.
|
||||
3. A recovery ECT MAY be emitted: `exec_act: "apae:quarantine"` with
|
||||
`apae.to_state: "active"`.
|
||||
|
||||
An operator MAY lift a quarantine early by issuing a HITL override
|
||||
(Level 1 or higher) with scope `apae:quarantine_lift` for the
|
||||
subject agent.
|
||||
|
||||
# Behavior Verification {#behavior}
|
||||
|
||||
## Behavior Specifications
|
||||
|
||||
A behavior specification declares what an agent is permitted to do.
|
||||
Specifications are JSON documents referencing ECT claims:
|
||||
|
||||
~~~json
|
||||
{
|
||||
"spec_version": "1.0",
|
||||
"agent_id": "spiffe://example.com/agent/firewall",
|
||||
"allowed_actions": ["update_rules", "read_config", "report"],
|
||||
"constraints": {
|
||||
"max_actions_per_minute": 60,
|
||||
"forbidden_targets": ["core-router-*"],
|
||||
"require_checkpoint_before": ["update_rules"]
|
||||
},
|
||||
"verification_frequency": "continuous"
|
||||
}
|
||||
~~~
|
||||
{: #fig-spec title="Behavior Specification"}
|
||||
|
||||
Behavior specifications SHOULD be signed and versioned. Changes
|
||||
MUST be recorded as ECTs.
|
||||
|
||||
## Verification Against ECT Stream
|
||||
|
||||
A verifier monitors the agent's ECT stream and checks:
|
||||
|
||||
1. `exec_act` values are in `allowed_actions`.
|
||||
2. Action rate does not exceed `max_actions_per_minute` (computed
|
||||
from `iat` timestamps).
|
||||
3. `atd:checkpoint` ECTs precede `update_rules` ECTs (from
|
||||
`require_checkpoint_before`).
|
||||
4. Targets in `ext` claims do not match `forbidden_targets`.
|
||||
|
||||
Verification results are ECTs:
|
||||
|
||||
- `exec_act`: `"apae:compliance_check"`
|
||||
|
||||
~~~json
|
||||
{
|
||||
"exec_act": "apae:compliance_check",
|
||||
"par": ["latest-agent-ect-uuid"],
|
||||
"ext": {
|
||||
"apae.compliance_status": "passing",
|
||||
"apae.violations": [],
|
||||
"apae.spec_version": "1.0",
|
||||
"apae.window": "2026-03-01T12:00:00Z/PT1H"
|
||||
}
|
||||
}
|
||||
~~~
|
||||
{: #fig-compliance title="Compliance Check ECT"}
|
||||
|
||||
Violations trigger trust score decreases (`policy_violation` event)
|
||||
and MAY trigger HITL escalation.
|
||||
|
||||
A violation compliance check ECT looks like:
|
||||
|
||||
~~~json
|
||||
{
|
||||
"exec_act": "apae:compliance_check",
|
||||
"par": ["offending-ect-uuid"],
|
||||
"ext": {
|
||||
"apae.compliance_status": "failing",
|
||||
"apae.violations": [
|
||||
{
|
||||
"rule": "require_checkpoint_before",
|
||||
"action": "update_rules",
|
||||
"ect": "offending-ect-uuid",
|
||||
"description": "update_rules at 12:03:15 has no preceding atd:checkpoint within 10s"
|
||||
}
|
||||
],
|
||||
"apae.spec_version": "1.0",
|
||||
"apae.window": "2026-03-01T12:00:00Z/PT1H"
|
||||
}
|
||||
}
|
||||
~~~
|
||||
{: #fig-violation title="Compliance Violation ECT"}
|
||||
|
||||
# Data Provenance {#provenance}
|
||||
|
||||
## DAG as Provenance Chain
|
||||
|
||||
The ECT DAG already encodes data provenance: each ECT's `par`
|
||||
references show which prior tasks produced its inputs. The
|
||||
`inp_hash` and `out_hash` claims prove what was processed without
|
||||
revealing the data.
|
||||
|
||||
For deployments requiring explicit provenance metadata, agents
|
||||
MAY include:
|
||||
|
||||
~~~json
|
||||
{
|
||||
"ext": {
|
||||
"apae.data_source": "database:patients",
|
||||
"apae.data_classification": "pii",
|
||||
"apae.retention_days": 365,
|
||||
"apae.transformations": ["anonymize", "aggregate"]
|
||||
}
|
||||
}
|
||||
~~~
|
||||
{: #fig-provenance title="Provenance Extension Claims"}
|
||||
|
||||
At Regulated assurance level, all data-transforming ECT nodes
|
||||
MUST include provenance claims.
|
||||
|
||||
## Provenance Queries
|
||||
|
||||
At L3, the audit ledger enables provenance queries:
|
||||
|
||||
- "Which agents touched this data?" → walk `par` chain from
|
||||
final ECT to roots.
|
||||
- "Was this data transformed?" → check `apae.transformations`
|
||||
along the chain.
|
||||
- "Is provenance complete?" → verify all `par` references
|
||||
resolve to ledger entries.
|
||||
|
||||
# Cross-Domain Trust {#cross-domain}
|
||||
|
||||
## Trust Domain Basics
|
||||
|
||||
A trust domain is an administrative boundary within which a
|
||||
single trust anchor (CA certificate or JWK set) governs agent
|
||||
identity. Trust scores are local to a trust domain by default.
|
||||
|
||||
## Trust Domain Registration
|
||||
|
||||
Each trust domain MUST publish a trust anchor at a well-known URI:
|
||||
|
||||
~~~
|
||||
GET /.well-known/apae/trust-anchor HTTP/1.1
|
||||
~~~
|
||||
|
||||
The response MUST be a JSON object containing:
|
||||
|
||||
~~~json
|
||||
{
|
||||
"domain": "example.com",
|
||||
"trust_anchor_type": "jwks",
|
||||
"trust_anchor_uri": "https://example.com/.well-known/jwks.json",
|
||||
"contact": "trust-admin@example.com"
|
||||
}
|
||||
~~~
|
||||
{: #fig-trust-anchor title="Trust Anchor Document"}
|
||||
|
||||
## Cross-Domain Delegation
|
||||
|
||||
When Agent A (domain X) delegates to Agent B (domain Y):
|
||||
|
||||
1. A MUST verify that its ACP-DAG-HITL policy permits cross-domain
|
||||
delegation to domain Y (bilateral trust agreement).
|
||||
2. A fetches B's trust anchor document to verify B's identity.
|
||||
3. A creates an `apae:cross_domain_assertion` ECT linking the
|
||||
two domains.
|
||||
4. Both A and B include their domain in ECT `iss` claims.
|
||||
|
||||
~~~json
|
||||
{
|
||||
"exec_act": "apae:cross_domain_assertion",
|
||||
"ext": {
|
||||
"apae.source_domain": "example.com",
|
||||
"apae.dest_domain": "hospital.example",
|
||||
"apae.bilateral_agreement_ref": "agreement-id-2026-001",
|
||||
"apae.min_assurance": "L2"
|
||||
}
|
||||
}
|
||||
~~~
|
||||
{: #fig-cross-domain title="Cross-Domain Assertion ECT"}
|
||||
|
||||
The ASCII diagram below illustrates a cross-domain delegation:
|
||||
|
||||
~~~
|
||||
Domain: example.com Domain: hospital.example
|
||||
┌──────────────────┐ ┌──────────────────────┐
|
||||
│ Agent A │ AEPB │ Agent B │
|
||||
│ (orchestrator) ├───────►│ (treatment planner) │
|
||||
│ ECT: L2 │ │ ECT: L3 │
|
||||
└──────────────────┘ └──────────────────────┘
|
||||
│ │
|
||||
└─── cross_domain_assertion ECT ──┘
|
||||
(bilateral agreement verified)
|
||||
~~~
|
||||
{: #fig-cross-domain-diag title="Cross-Domain Delegation"}
|
||||
|
||||
## Cross-Domain Trust Scores
|
||||
|
||||
Trust scores do not transfer across domain boundaries by default.
|
||||
When Agent A in domain X has no prior interactions with Agent B
|
||||
in domain Y:
|
||||
|
||||
- If a bilateral trust agreement exists: initial trust is set to
|
||||
the agreement's `default_trust` value (negotiated out of band).
|
||||
- If no agreement exists: delegation MUST be rejected (zero-trust
|
||||
default).
|
||||
|
||||
Cross-domain trust scores are isolated from intra-domain scores
|
||||
and are stored separately in the trust table.
|
||||
|
||||
# Assurance Profiles {#profiles}
|
||||
|
||||
## Profile Definitions
|
||||
|
||||
An assurance profile is a named configuration that selects which
|
||||
mechanisms are required. Profiles MUST be declared in ACP-DAG-HITL
|
||||
workflow policy and announced in the AEPB capability document.
|
||||
|
||||
| Mechanism | Relaxed | Standard | Regulated |
|
||||
|-----------|---------|----------|-----------|
|
||||
| **ECT level** | L1 | L2 | L3 |
|
||||
| **Trust scoring** | Optional | RECOMMENDED | REQUIRED |
|
||||
| **Trust threshold enforcement** | Optional | RECOMMENDED | REQUIRED |
|
||||
| **Behavior verification** | Off | Periodic | Continuous |
|
||||
| **HITL approval gates** | Optional | Critical paths | Mandatory |
|
||||
| **Data provenance claims** | Off | Optional | REQUIRED |
|
||||
| **Checkpoint before consequential** | RECOMMENDED | REQUIRED | REQUIRED |
|
||||
| **Audit ledger** | Optional | Optional | REQUIRED |
|
||||
| **Quarantine protocol** | Optional | RECOMMENDED | REQUIRED |
|
||||
| **Cross-domain trust agreements** | Optional | Required if cross-domain | Required if cross-domain |
|
||||
{: #fig-profiles title="Assurance Profile Requirements"}
|
||||
|
||||
Relaxed:
|
||||
: Internal dev/staging. L1 ECTs. Trust and verification
|
||||
optional. Useful for debugging and observability without
|
||||
cryptographic overhead.
|
||||
|
||||
Standard:
|
||||
: Production cross-org. L2 ECTs. Trust scoring and thresholds
|
||||
recommended. Periodic behavior verification. HITL on critical
|
||||
paths.
|
||||
|
||||
Regulated:
|
||||
: Healthcare, finance, EU AI Act. L3 ECTs with audit ledger.
|
||||
Continuous behavior verification. All trust mechanisms
|
||||
required. Full provenance chain. Mandatory HITL gates.
|
||||
|
||||
Profiles are declared in ACP-DAG-HITL node constraints:
|
||||
|
||||
~~~json
|
||||
{
|
||||
"constraints": {
|
||||
"apae.assurance_profile": "regulated"
|
||||
}
|
||||
}
|
||||
~~~
|
||||
{: #fig-profile-policy title="Profile as Node Constraint"}
|
||||
|
||||
A single deployment MAY use different profiles for different
|
||||
workflows.
|
||||
|
||||
## Profile Selection Guidance
|
||||
|
||||
Operators SHOULD select profiles using the following decision
|
||||
table:
|
||||
|
||||
| Deployment context | Recommended profile |
|
||||
|-------------------|--------------------|
|
||||
| Unit tests, local development | Relaxed |
|
||||
| Internal production (single org) | Standard |
|
||||
| Cross-organization production | Standard (with trust agreements) |
|
||||
| Financial services, EU AI Act critical | Regulated |
|
||||
| Healthcare (HIPAA, clinical trials) | Regulated |
|
||||
| Critical infrastructure (NIS2) | Regulated |
|
||||
{: #fig-profile-selection title="Profile Selection Guidance"}
|
||||
|
||||
## Upgrade Path Between Profiles
|
||||
|
||||
Operators MUST NOT downgrade assurance profile during an active
|
||||
workflow.
|
||||
|
||||
Relaxed → Standard:
|
||||
: (1) Add ECT signing keys (WIMSE WIT or X.509). (2) Update ECT
|
||||
emission to sign tokens. (3) Configure trust scoring
|
||||
(alpha/beta, initial trust, thresholds). (4) Define behavior
|
||||
specifications for critical agents. (5) Add HITL approval gates
|
||||
on critical DAG paths.
|
||||
|
||||
Standard → Regulated:
|
||||
: (1) Configure audit ledger endpoint. (2) Update ECT emission
|
||||
to commit each ECT to ledger. (3) Enable continuous behavior
|
||||
verification (change `verification_frequency` from `periodic`
|
||||
to `continuous`). (4) Enable provenance claims on all
|
||||
data-transforming ECTs. (5) Add mandatory HITL gates on all
|
||||
consequential actions. (6) Enable quarantine protocol.
|
||||
|
||||
# Security Considerations
|
||||
|
||||
## Trust Score Sensitivity
|
||||
|
||||
Trust scores are sensitive metadata. Agents MUST NOT expose
|
||||
full trust tables. Only pairwise assertions SHOULD be shared,
|
||||
and only in response to explicit authenticated requests.
|
||||
|
||||
## Score Inflation (Adversarial Trust Building)
|
||||
|
||||
An adversary performs many small successful interactions to
|
||||
inflate trust, then executes a malicious action. Mitigation:
|
||||
|
||||
- Apply double penalty (`beta^2`) for `policy_violation` events.
|
||||
- Enforce high trust thresholds for high-risk actions.
|
||||
- Rate-limit trust score increases: an agent MUST NOT increase
|
||||
trust by more than 0.1 per day toward any single peer.
|
||||
- Use behavior verification continuously at Standard+.
|
||||
|
||||
## Attestation Freshness
|
||||
|
||||
Stale compliance check ECTs MUST be rejected. The verifier MUST
|
||||
check that `apae:compliance_check` ECTs have `iat` within the
|
||||
configured verification window (default: 1 hour for Standard,
|
||||
5 minutes for Regulated).
|
||||
|
||||
## Provenance Chain Forgery
|
||||
|
||||
Each provenance hop must be signed (L2+) to prevent injection
|
||||
of false provenance records. Agents MUST verify the signature
|
||||
on all `par`-linked ECTs before accepting provenance claims.
|
||||
|
||||
## Sybil Attack on Trust
|
||||
|
||||
Fake agents inflate trust for each other to gain influence.
|
||||
Mitigation:
|
||||
|
||||
- Trust propagation attenuation (default 0.5) limits the impact
|
||||
of second-hand assertions.
|
||||
- Maximum hop count of 1 for trust propagation.
|
||||
- Require agents to be registered in a trusted directory before
|
||||
initial trust is assigned above the floor value.
|
||||
|
||||
## Cross-Domain Trust Downgrade
|
||||
|
||||
An attacker forces delegation through an untrusted domain by
|
||||
presenting a forged bilateral agreement. Mitigation:
|
||||
|
||||
- Bilateral trust agreements MUST be signed by operators of
|
||||
both domains.
|
||||
- Agents MUST verify the agreement signature before accepting
|
||||
cross-domain delegations.
|
||||
- Cross-domain ECTs MUST use L2+ assurance.
|
||||
|
||||
## Quarantine Evasion
|
||||
|
||||
An agent subject to quarantine re-registers under a different
|
||||
identity to escape the quarantine. Mitigation:
|
||||
|
||||
- Quarantine ECTs are broadcast; receiving agents record the
|
||||
quarantine by both agent ID and by behavioral fingerprint.
|
||||
- Agents SHOULD require re-onboarding with operator approval
|
||||
before accepting new identities from known-quarantined domains.
|
||||
|
||||
# IANA Considerations
|
||||
|
||||
## Assurance Profile Registry
|
||||
|
||||
This document requests the creation of the "APAE Assurance Profile
|
||||
Registry" under IANA. Registration policy: Specification Required.
|
||||
|
||||
Initial entries:
|
||||
|
||||
| Profile Name | Profile URI | Description | Reference |
|
||||
|-------------|------------|-------------|-----------|
|
||||
| Relaxed | `urn:ietf:params:apae:profile:relaxed` | Dev/test, L1 ECTs | This document |
|
||||
| Standard | `urn:ietf:params:apae:profile:standard` | Production, L2 ECTs | This document |
|
||||
| Regulated | `urn:ietf:params:apae:profile:regulated` | Regulated, L3 ECTs | This document |
|
||||
{: #fig-profile-registry title="Assurance Profile Registry"}
|
||||
|
||||
## `exec_act` Values
|
||||
|
||||
This document requests registration in the AEM Ecosystem
|
||||
Extension Registry:
|
||||
|
||||
| Value | Description | Reference |
|
||||
|-------|-------------|-----------|
|
||||
| `apae:trust_assertion` | Sharing trust score for a peer | This document |
|
||||
| `apae:trust_revoke` | Revoking delegations due to low trust | This document |
|
||||
| `apae:compliance_check` | Behavior verification result | This document |
|
||||
| `apae:quarantine` | Agent quarantine entry or exit | This document |
|
||||
| `apae:cross_domain_assertion` | Cross-domain delegation evidence | This document |
|
||||
{: #fig-iana-actions title="APAE exec_act Registrations"}
|
||||
|
||||
## Well-Known URI
|
||||
|
||||
This document requests registration of `apae/trust-anchor` as a
|
||||
well-known URI suffix per RFC 8615 for trust domain anchor
|
||||
publication.
|
||||
|
||||
--- back
|
||||
|
||||
# Acknowledgments
|
||||
{:numbered="false"}
|
||||
|
||||
APAE builds on ECT {{I-D.nennemann-wimse-ect}} for interaction
|
||||
evidence and audit, and ACP-DAG-HITL
|
||||
{{I-D.nennemann-agent-dag-hitl-safety}} for trust threshold and
|
||||
assurance profile policy enforcement. The AIMD trust model is
|
||||
adapted from TCP congestion control (RFC 5681). Behavior
|
||||
verification is informed by RATS architecture {{RFC9334}}.
|
||||
Reference in New Issue
Block a user