Prova de confiança de la porta de decisió + Arquitectura d’ancoratge
Audience: Engineers implementing or reviewing evidence trust enforcement, Audiència: Enginyers que implementen o revisen l’aplicació de la confiança en les proves, la validació de signatures i el comportament de la política d’ancoratge.
Taula de continguts
- Visió Executiva
- Model d’Evidència
- Línies de confiança i requisits
- Política de confiança del proveïdor (Signatures)
- Política de Divulgació d’Evidències
- Configuració de la Política d’Ancoratge
- Validació d’ancoratge al pla de control
- Verificació de l’Ancoratge de Runpack
- Evidència Afirmada (Precomprovació)
- File per Fitxer Referència Creuada
Executive Overview
La Decision Gate separa trust (evidència verificada vs afirmada) de integrity (ancoratges i signatures). Les vies de confiança controlen si l’evidència és elegible per a l’evaluació de la porta, mentre que les polítiques d’ancoratge i les signatures proporcionen enllaços verificables a sistemes externs. L’aplicació es produeix en dos llocs:
- Control plane runtime: applies trust requirements and validates anchors Temps d’execució del pla de control: aplica requisits de confiança i valida ancoratges quan està configurat.
- Verificador de Runpack: reprodueix les comprovacions de política d’ancoratge fora de línia.
La divulgació d’evidències es controla per separat a la capa d’eines. F:crates/decision-gate-core/src/core/evidence.rs L97-L257 F:crates/decision-gate-core/src/runtime/engine.rs L511-L618 F:crates/decision-gate-core/src/runtime/engine.rs L983-L1018 F:crates/decision-gate-core/src/runtime/runpack.rs L519-L567 F:crates/decision-gate-mcp/src/tools/router.rs L2294-L2334
La selecció de perfils de temps d’execució tipats ara admet una costura de resolutor delimitada (TypedProfileResolver) clauada per (tenant_id, namespace_id, provider_id). Això canvia els límits de cerca de perfils de temps d’execució però no altera la semàntica de validació de la confiança, la signatura o l’ancoratge. El temps d’execució REST també exposa una costura d’evaluador de polítiques (RestPolicyEvaluator) que pot denegar l’egress/pla d’autenticació abans de les trucades de xarxa mentre preserva els formats d’ancoratge existents.
Model d’Evidència
Els tipus d’evidència bàsica defineixen les càrregues útils canòniques i la metadada d’integritat:
EvidenceResultcarries a value, trust lane, hash, anchor, and optionalEvidenceResultporta un valor, un canal de confiança, un hash, un ancoratge i una signatura opcional.EvidenceAnchorconté un tipus d’ancora i un valor d’ancora codificat en JSON.EvidenceAnchorPolicymapeja proveïdors als tipus d’ancora i camps requerits.
F:crates/decision-gate-core/src/core/evidence.rs L175-L257
Trust Lanes i Requisits
Les vies de confiança són una reixeta de dos nivells:
Verificat(per defecte) per a proves proporcionades pel proveïdor.Afirmatper a proves subministrades pel client.
TrustRequirement especifica el mínim acceptable per a la via i s’aplica per condició i porta. Si l’evidència no compleix el requisit, es converteix en un resultat Unknown amb un error de trust_lane.
F:crates/decision-gate-core/src/core/evidence.rs L97-L141 F:crates/decision-gate-core/src/runtime/engine.rs L730-L746 F:crates/decision-gate-core/src/runtime/engine.rs L1573-L1593
La configuració del pla de control exposa:
- requisit_de_confiança_global
- sobrescriptures per proveïdor (a través de
provider_trust_overrides)
F:crates/decision-gate-core/src/runtime/engine.rs L111-L145
Política de confiança del proveïdor (Signatures)
La federació d’evidències MCP aplica la política de confiança del proveïdor abans que els resultats arribin a l’evaluació del pla de control:
TrustPolicy::Auditaccepta resultats sense signar.TrustPolicy::RequireSignaturerequiresEvidenceSignatureand validatesTrustPolicy::RequireSignaturerequereixEvidenceSignaturei valida signatures ed25519 utilitzant claus públiques configurades.
Avaluació de polítiques:
- Les signatures mancants, els esquemes no suportats o les claus no autoritzades són rebutjades.
- Si falta el hash de l’evidència, es calcula a partir de la càrrega canònica.
- Si el hash de l’evidència està present, ha de coincidir amb el hash de la càrrega útil canònica.
F:crates/decision-gate-mcp/src/evidence.rs L122-L210 F:crates/decision-gate-mcp/src/evidence.rs L628-L701
Política de Divulgació d’Evidències
La divulgació d’evidències s’aplica en el moment de evidence_query:
evidence.allow_raw_valuescontrola la divulgació global de valors en brut.evidence.require_provider_opt_inrequereix addicionalment l’opt-in del proveïdor.- Els proveïdors opten per participar a través de
ProviderConfig.allow_raw.
Si no s’accepten valors en brut, la resposta de l’eina redacta value i content_type, però conserva els hashes i els ancoratges. F:crates/decision-gate-config/src/config.rs L1226-L1234 F:crates/decision-gate-mcp/src/tools/router.rs L2294-L2334 F:crates/decision-gate-mcp/src/evidence.rs L138-L196
Configuració de la Política d’Ancoratge
La configuració de la política d’ancoratge s’expressa en la configuració MCP com anchors.providers[{provider_id, anchor_type, required_fields}]. La configuració es valida i es converteix en la EvidenceAnchorPolicy en temps d’execució utilitzada pel pla de control i el verificador de runpack. Els ids de proveïdor han de ser únics i retallats per evitar l’aplicació ambigua de l’ancoratge. F:crates/decision-gate-config/src/config.rs L1378-L1466
Validació d’Ancoratge al Pla de Control
Quan es configura un requisit d’ancoratge per a un proveïdor:
- Els resultats de l’evidència han d’incloure
evidence_anchor. anchor_typeha de coincidir amb el requisit.anchor_valueha de ser un objecte JSON canònic amb els camps escalar requerits.- Gate evaluation evidence records are stored in canonical condition order to Els registres d’evidència d’evaluació de portes es guarden en ordre de condició canònica per mantenir els artefactes de runpack deterministes a través de les execucions.
Per al proveïdor json integrat, els ancoratges utilitzen file_path_rooted amb els camps requerits root_id i path. El valor de path es normalitza a un camí relatiu d’estil POSIX sota l’arrel configurada per mantenir els hashes de runpack estables a través de plataformes.
Per al proveïdor rest integrat, els ancoratges utilitzen rest_request amb valors d’ancoratge JSON canònics. Les comprovacions json_path inclouen el context de la sol·licitud més un hash del cos de resposta a la metadada de l’ancoratge, mentre que les comprovacions header inclouen el context de la sol·licitud/comprovació sense un hash del cos. En ambdues comprovacions, evidence_hash es deriva del valor d’evidència retornat (o s’omet perquè el pla de control el calculi), no del cos de resposta brut.
Per als proveïdors tipats (type = "typed"), els valors d’ancoratge són impulsats pel perfil i emeten el tipus d’ancoratge tipat configurat (per defecte typed_request) amb metadades JSON canòniques que inclouen la identitat del proveïdor/comprovació/operació, l’URL de la sol·licitud, l’estat i el resum del perfil d’execució. Els proveïdors tipats romanen en la via de confiança verificada i estan subjectes al mateix camí de validació de la política d’ancoratge en l’execució central i la verificació de runpack. El vincle de sol·licitud tipada es neteja abans de l’execució sortint (rebuig d’encapçalaments reservats/propietat d’autenticació i substitució de camins codificats en percentatge), prevenint l’ambigüitat de la forma de la sol·licitud que pugui contaminar les metadades d’ancoratge o les comparacions d’integritat a la baixa.
Els ancoratges no vàlids resulten en un error de proveïdor anchor_invalid i el resultat de l’evidència es converteix en un resultat verificat buit per a l’avaluació. F:crates/decision-gate-core/src/runtime/engine.rs L730-L755 F:crates/decision-gate-core/src/runtime/engine.rs L983-L1018
Verificació de l’Ancoratge de Runpack
La verificació de runpack reprodueix les comprovacions de política d’ancoratge fora de línia:
- Els registres de l’especificació de l’escenari i d’evaluació de la porta es carreguen a partir dels artefactes de runpack.
- El mapeig de condicions a proveïdors es deriva de l’especificació.
- Els ancoratges d’evidència en els registres d’evaluació de portes es validen contra la política.
Els errors es recullen i es reporten en el informe de verificació. F:crates/decision-gate-core/src/runtime/runpack.rs L519-L567 F:crates/decision-gate-core/src/runtime/runpack.rs L579-L612
Evidència Afirmada (Precomprovació)
Precheck utilitza evidència assertada sense contactar amb els proveïdors:
- Els valors de càrrega útil estan embolicats com a
EvidenceResultamb el carrilAsserted. - Control plane applies trust requirements per condition/gate, which can force
El pla de control aplica requisits de confiança per condició/portella, que poden forçar l’evidència afirmada a
Unknowndepenent de la configuració.
F:crates/decision-gate-mcp/src/tools/router.rs L2663-L2707 F:crates/decision-gate-core/src/runtime/engine.rs L511-L618
File per Fitxer Referència Creuada
| Àrea | Fitxer | Notes |
|---|---|---|
| Model d’evidència + vies de confiança | crates/decision-gate-core/src/core/evidence.rs | Tipus canònics per a vies de confiança, ancoratges, polítiques. |
| Aplicació de confiança + validació d’ancoratge | crates/decision-gate-core/src/runtime/engine.rs | Aplica requisits de confiança i valida ancoratges. |
| Verificació d’ancoratge de Runpack | crates/decision-gate-core/src/runtime/runpack.rs | Validació offline contra la política d’ancoratge. |
| Política de signatura del proveïdor | crates/decision-gate-mcp/src/evidence.rs | Anàlisi de TrustPolicy + aplicació de signatura. |
| Ancoratges de proveïdor tipats | crates/decision-gate-providers/src/typed.rs | Emissió d’ancoratge de runtime tipat i vinculació de resum de perfil. |
| Política de divulgació d’evidències | crates/decision-gate-mcp/src/tools/router.rs | Redacció d’evidències en brut per a evidence_query. |
| Superfície de configuració | crates/decision-gate-config/src/config.rs | configuració evidence.* i anchors.*. |