Internet-Draft OAuth Mission Security Model June 2026
McGuinness Expires 1 January 2027 [Page]
Workgroup:
Network Working Group
Internet-Draft:
draft-mcguinness-oauth-mission-security-model-latest
Published:
Intended Status:
Informational
Expires:
Author:
K. McGuinness
Independent

Mission Security Model for OAuth 2.0

Abstract

Mission-Bound Authorization for OAuth 2.0 and its companion profiles spread enforcement across several components: an Authorization Server derives and gates authority, a Policy Enforcement Point and Policy Decision Point evaluate each action, a harness establishes a mediated execution environment, a consent rendering layer discloses authority to an Approver, and optional services report Mission state, adjudicate requested authority, log evidence, and report completion events. Each profile states its own security considerations, but no single document says which components must be trusted, what each assumes of the others, and how the compromise of each degrades the guarantees. This document provides that consolidated view. It is an Informational security model for the Mission suite: it defines the trusted base, the cross-cutting assumptions, and the consequence of each component's compromise, and it points to the normative security considerations of each profile rather than restating them.

About This Document

This note is to be removed before publishing as an RFC.

The latest revision of this draft can be found at https://mcguinness.github.io/draft-mcguinness-oauth-mission/draft-mcguinness-oauth-mission-security-model.html. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-mcguinness-oauth-mission-security-model/.

Source for this draft and an issue tracker can be found at https://github.com/mcguinness/draft-mcguinness-oauth-mission.

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 1 January 2027.

Table of Contents

1. Introduction

The Mission model treats the agent as part of the attack surface: an agent may be prompt-injected or compromised, and the suite's purpose is to bound what such an agent can do, not to make it trustworthy ([I-D.draft-mcguinness-oauth-mission-runtime]). Bounding the agent means relying on other components: the Authorization Server that derives and gates authority, the enforcement points that evaluate each action, the harness that removes unmediated paths, and a set of optional services. Those components are the trusted base: the parts that, if compromised, degrade or void the guarantees the suite otherwise provides.

Each profile documents the security considerations local to its own mechanism. What no single profile provides, and what a reviewer or a deploying operator needs, is the consolidated picture: the full trusted base in one place, what each component must achieve, what it assumes of the others, and what its compromise costs. This document is that picture.

This document defines no new mechanism, claim, or wire format. It is a model that aids review and deployment; the normative requirements live in the profiles it references.

2. Status: An Informational Model

This document is Informational. It does not place normative requirements on implementations; the enforcement obligations are defined by the issuance profile ([I-D.draft-mcguinness-oauth-mission]) and its companions. Where this document uses words like "must," it describes an expectation the consolidated model places on a deployment that claims the suite, realized by the referenced profile, not a new conformance requirement of its own.

3. Conventions and Terminology

This document uses Mission, Mission Issuer (Authorization Server), Policy Enforcement Point (PEP), Policy Decision Point (PDP), Approver, Subject, agent, Authority Set, and Mission state as defined in [I-D.draft-mcguinness-oauth-mission] and [I-D.draft-mcguinness-oauth-mission-runtime].

4. The Untrusted Agent

The agent is not in the trusted base. The model assumes the agent can be prompt-injected, can be compromised, and can attempt any action its position allows. Every guarantee below is a bound on what such an agent can achieve, and is stated relative to a trusted base that excludes the agent. Two structural choices carry this:

5. The Trusted Base

The following components are trusted to varying degrees. For each: what it must achieve, what it assumes of the others, and how its compromise degrades the guarantees. The authoritative security considerations are in the cited profile.

Authorization Server (Mission Issuer):

The root of trust. It derives the Authority Set, runs the approval event, commits the integrity anchors, and gates issuance on Mission state. It must derive faithfully and gate correctly; it assumes the Approver is authenticated and the agent is untrusted. Its compromise voids the model: a compromised issuer can mint arbitrary authority. This is the strongest trust assumption in the suite ([I-D.draft-mcguinness-oauth-mission]).

Policy Enforcement Point (PEP):

Sits at the last controllable boundary before an action and obtains a permit before each consequential action; under mediated execution it holds the sender-constraint key. It must be at the last boundary and must not act without a permit; it assumes the harness leaves no unmediated path. A compromised PEP can decline to consult the PDP or ignore its decision; the suite does not prevent this, and evidence makes it detectable after the fact, not in the moment ([I-D.draft-mcguinness-oauth-mission-runtime]).

Policy Decision Point (PDP):

Evaluates each action against the Mission and returns a permit or deny. It must evaluate faithfully and fail closed; it assumes the inputs the PEP supplies are authentic. A compromised PDP can return arbitrary decisions; as with the PEP, evidence detects this after the fact but does not prevent it ([I-D.draft-mcguinness-oauth-mission-runtime]).

Mission state source:

Reports current Mission state for the freshness the runtime layer requires, whether by introspection, the Status surface, or pushed Signals. It must report accurately within the staleness bound and be authenticated and integrity-protected. A compromised or spoofed state source can report active for a Mission that is revoked, defeating the kill switch; the runtime layer fails closed when state cannot be established within the bound ([I-D.draft-mcguinness-oauth-mission-status], [I-D.draft-mcguinness-oauth-mission-runtime]).

Harness:

Establishes the execution environment in which governed work has no unmediated path to the actions the PEP mediates, and binds sessions, queues, and caches to Mission state. It must ensure no unmediated egress and must re-check state. A compromised harness can hand the agent an unmediated path, which defeats mediated execution for the classes that path reaches ([I-D.draft-mcguinness-oauth-mission-harness]).

Consent rendering layer:

Renders the approved authority to the Approver at the approval event. It must render faithfully what is committed. A compromised renderer can display something other than the committed disclosure; the rendering assurance ladder bounds this by degree, up to an Approver authenticator signing the disclosure commitment, but no server-side commitment proves what a human perceived ([I-D.draft-mcguinness-oauth-mission-consent-evidence]).

Access Request Service:

When requestable denials are used, it adjudicates an agent's request for authority it discovers it needs. It must not auto-approve a high-consequence escalation without an independent approver. A compromised Access Request Service can grant escalations the model would otherwise route to a human, so it is in the trusted base wherever the access-request flow is enabled ([I-D.draft-mcguinness-oauth-mission-runtime]).

Transparency Service:

When audit transparency is used, it is an append-only, non-equivocating log that issues inclusion receipts. It must not equivocate. A single compromised service can present different histories to different auditors; registering with more than one service makes equivocation detectable, but the non-equivocation guarantee is per-service ([I-D.draft-mcguinness-oauth-mission-audit]).

Event source:

When completion or trigger-based discharge is used, it reports whether a completion event has occurred. It must report accurately and be authenticated. A compromised event source can keep a discharged entry derivable or falsely discharge one; the Authorization Server fails closed when it cannot determine the event status ([I-D.draft-mcguinness-oauth-mission-completion]).

6. Cross-Cutting Assumptions

Three assumptions hold across the whole model:

7. What the Model Does and Does Not Guarantee

Given an intact trusted base, the model guarantees that a compromised or injected agent cannot exceed the approved Authority Set, cannot move authority by influencing inert intent, and cannot unilaterally take a high-consequence action it does not hold a mediated credential for. It makes misuse bounded and, where evidence is produced, attributable.

It does not make a compromised trusted component safe. The compromise of each component degrades a specific guarantee, as listed in Section 5. It does not verify the agent's reasoning or the truthfulness of its outputs; semantic and intent verification are a non-goal of the suite ([I-D.draft-mcguinness-oauth-mission]). And it inherits the threat models of the substrates the companions profile (Token Exchange, Attenuating Agent Tokens, SCITT, Deferred Token Response), which those substrates own. Section 8 gives the per-adversary-move detail: what addresses each move, and the residual it leaves.

8. Adversary Model and Coverage

The trusted base (Section 5) is the component view; this is the adversary view. The adversary is assumed to control the agent, to reach the content and inputs the agent processes (so it can attempt prompt injection), and to capture tokens in transit. The adversary is assumed not to break the cryptographic primitives, not to forge an authenticated component's signing key, and not to compromise a trusted-base component; those last two are the residuals of Section 5, not adversary moves this table covers.

The following maps each adversary move to the mechanism that addresses it and to what is explicitly not stopped. The residual column is the honest part: it is what a deploying party still owns.

Table 1
Adversary move Addressed by Residual: not stopped
Compromised or injected agent acts beyond its task Authority fixed at the approval event (issuance); per-action PDP check (runtime) Misuse within the approved scope; low-consequence authority the agent legitimately holds
Prompt injection tries to widen authority Inert intent: goal, purpose, success_criteria never derive, widen, or gate authority Injected text can still drive actions already in scope
Stolen or exfiltrated token Sender-constraint (proof-of-possession); the high-consequence key is held by the PEP, not the agent (mediated execution) A token stolen together with its key; soundness of the PoP mechanism
Token replayed at another resource (confused deputy) Permit bound to audience, resource, sub, client_id, and action; cross-domain grant single-use and audienced Correct binding configuration is the deployment's
Parameters change between decision and use (TOCTOU) Parameter binding; the digest is reverified at the executing PEP immediately before acting The PEP must sit at the last controllable boundary
Active Mission used as ambient standing authority Per-action runtime enforcement, state re-check, fail-closed on stale state An issuance-only deployment gets audit, not action-time defense
Revoked or expired Mission still acts (kill switch) Issuance gating; runtime state re-check within the staleness bound; short token lifetimes A window up to the staleness bound or token TTL; a spoofed state source (a trusted component)
Approver approves more than was shown The rendered disclosure is committed; rendering-assurance ladder up to an authenticator-signed commitment Comprehension: no server-side commitment proves what a human perceived or understood
Exfiltration of private data (the third leg of the lethal trifecta) External communication is a gated consequential action; harness leaves no unmediated path; session taint downgrades egress after untrusted input PEP-placement completeness; no information-flow control, so a sequence of in-scope steps can launder data
Offline sub-agent fan-out abuse Capability monotonicity (narrow-only) and the runtime kill-switch re-check on the carried chain Fan-out breadth is unobserved by the issuer; bounded by depth and policy, not by the issuer
Audit tampered, dropped, or reordered Transparency: append-only log, inclusion receipts, non-equivocation Single-service equivocation (per-service only; register with several); a producer can still log a false record (accountability, not prevention)
Agent fabricates results or acts on false data Not addressed Full: semantic and grounding verification are a non-goal; pair with a grounding layer if needed
A trusted-base component is compromised Not addressed; evidence detects it after the fact Not prevented; degrades the specific guarantee per Section 5

Three residuals are worth stating on their own, because they are the limits most likely to matter and most often overstated away elsewhere:

9. Documenting the Trusted Base

A deployment cannot be evaluated against this model without knowing which components it actually trusts. The runtime profile already requires a deployment to document its enforcement scope, including its PEP locations, PDP identities, Mission state source, and the execution paths it mediates ([I-D.draft-mcguinness-oauth-mission-runtime]). A deployment claiming the Mission suite extends that documentation to its full trusted base: which of the components in Section 5 it relies on, which it does not deploy, and, for each consequential action class, which components must be intact for the class's guarantee to hold. This documentation is what lets a relying party or auditor reason about the deployment's actual security posture rather than the model's idealized one.

10. Security Considerations

This document is itself a security-considerations document. It defines no mechanism and adds no attack surface. Its content is the consolidation above; the authoritative, normative security considerations are those of the issuance profile ([I-D.draft-mcguinness-oauth-mission]) and each companion it cites. Where this document and a profile appear to differ, the profile governs.

11. Privacy Considerations

The trusted components see Mission data: the Authorization Server and PDP see the Authority Set, the consent rendering layer and Approver see the disclosed authority, and the Transparency Service and state sources see the Mission identifier and its activity over time. The single canonical mission_id is a durable cross-audience correlator the suite acknowledges and does not yet narrow ([I-D.draft-mcguinness-oauth-mission]); unlinkable or per-audience presentation of Mission-bound authority is out of scope across the suite. Each profile's Privacy Considerations govern the data its own component handles.

12. IANA Considerations

This document makes no IANA request.

13. References

13.1. Normative References

[I-D.draft-mcguinness-oauth-mission]
McGuinness, K., "Mission-Bound Authorization for OAuth 2.0", Work in Progress, Internet-Draft, draft-mcguinness-oauth-mission, , <https://datatracker.ietf.org/doc/html/draft-mcguinness-oauth-mission>.

13.2. Informative References

[I-D.draft-mcguinness-oauth-mission-audit]
McGuinness, K., "Mission Audit Transparency for OAuth 2.0", Work in Progress, Internet-Draft, draft-mcguinness-oauth-mission-audit, , <https://datatracker.ietf.org/doc/html/draft-mcguinness-oauth-mission-audit>.
[I-D.draft-mcguinness-oauth-mission-completion]
McGuinness, K., "Mission Completion for OAuth 2.0", Work in Progress, Internet-Draft, draft-mcguinness-oauth-mission-completion, , <https://datatracker.ietf.org/doc/html/draft-mcguinness-oauth-mission-completion>.
McGuinness, K., "Mission Consent Evidence for OAuth 2.0", Work in Progress, Internet-Draft, draft-mcguinness-oauth-mission-consent-evidence, , <https://datatracker.ietf.org/doc/html/draft-mcguinness-oauth-mission-consent-evidence>.
[I-D.draft-mcguinness-oauth-mission-harness]
McGuinness, K., "Mission-Aware Agent Harnesses for OAuth 2.0", Work in Progress, Internet-Draft, draft-mcguinness-oauth-mission-harness, , <https://datatracker.ietf.org/doc/html/draft-mcguinness-oauth-mission-harness>.
[I-D.draft-mcguinness-oauth-mission-runtime]
McGuinness, K., "Mission-Bound Runtime Enforcement for OAuth 2.0", Work in Progress, Internet-Draft, draft-mcguinness-oauth-mission-runtime, , <https://datatracker.ietf.org/doc/html/draft-mcguinness-oauth-mission-runtime>.
[I-D.draft-mcguinness-oauth-mission-status]
McGuinness, K., "Mission Status and Lifecycle for OAuth 2.0", Work in Progress, Internet-Draft, draft-mcguinness-oauth-mission-status, , <https://datatracker.ietf.org/doc/html/draft-mcguinness-oauth-mission-status>.

Acknowledgments

This document is part of the Mission-Bound Authorization for OAuth 2.0 work and consolidates the trusted base and security assumptions that its profiles establish individually.

Author's Address

Karl McGuinness
Independent