DEV Community

Edison Flores
Edison Flores

Posted on

Sécuriser les agents IA avec un pipeline de vérification en 12 étapes

Introduction

Cet article est un guide technique pour les développeurs francophones qui veulent sécuriser leurs agents IA. Nous allons couvrir le pipeline de vérification en 12 étapes du Universal Trust Adapter (UTA).

Pourquoi 12 étapes

Vérifier une crédential ne se résume pas à vérifier la signature cryptographique. Une crédential peut avoir une signature correcte et pourtant être :

  • Expirée (signée correctement, mais il y a 3 ans)
  • Révoquée (signée correctement, mais l'émetteur l'a révoquée)
  • Mal scopée (signée correctement, mais demande des permissions non intentionnelles)
  • Émetteur inconnu (signée correctement, mais qui est l'émetteur ?)
  • Sans proof-of-possession (signée correctement, mais qui la présente ?)
  • Sans provenance (signée correctement, mais d'où vient-elle ?)

Chacun de ces cas nécessite une étape de vérification séparée.

Le pipeline

PARSER → DETECT → SCHEMA → CRYPTO → ISSUER → KEY_BINDING
       → POP → PROVENANCE → LIFECYCLE → EVIDENCE → POLICY → DECISION
Enter fullscreen mode Exit fullscreen mode

1. PARSER

Reçoit des bytes bruts (JSON, CBOR, PEM, DER) et les convertit en structure interne.

2. DETECT

Identifie le format de la crédential : JWT ? W3C VC ? ATC v3 ? MCP Card ? UTA supporte 8 formats.

3. SCHEMA

Valide les champs obligatoires du format détecté.

4. CRYPTO

Vérifie la signature cryptographique.

5. ISSUER

Résout l'identité de l'émetteur. CA connue ? Émetteur dans une liste de confiance ? Inconnu ?

6. KEY_BINDING

Vérifie que la clé utilisée pour signer est liée à l'émetteur déclaré.

7. POP (Proof of Possession)

Vérifie que celui qui présente la crédential possède bien la clé privée liée.

8. PROVENANCE

Trace l'origine de la crédential. De l'émetteur direct ? D'un cache ? D'un tiers ?

9. LIFECYCLE

Vérifie la validité temporelle : not_before, expires_at, revocation_status.

10. EVIDENCE

Collecte les preuves cryptographiques pour audit.

11. POLICY

Applique les politiques spécifiques au système.

12. DECISION

Combine les résultats des 11 étapes précédentes et émet un verdict : PERMIT, DENY, ou UNDETERMINED.

Implémentation

import { verify, getStageResult } from '@marketnow/trust-core';

const result = await verify(card);
console.log(result.decision);           // 'PERMIT' | 'DENY' | 'UNDETERMINED'
console.log(result.failed_stage);        // 'LIFECYCLE' si expirée
console.log(getStageResult('CRYPTO'));   // détail de la vérification crypto
Enter fullscreen mode Exit fullscreen mode

Benchmarks

  • 6 744 vérifications par seconde (pipeline complet, single core)
  • Étape la plus lente : CRYPTO (~0.08ms moyen, Ed25519)
  • Étape la plus rapide : PARSER (~0.01ms)

Conclusion

La vérification des crédentials n'est pas une étape, c'est un pipeline. Si vous la traitez comme une étape, vous aurez des faux positifs (crédentials invalides qui passent) ou des faux négatifs (crédentials valides qui ne passent pas).

UTA implémente les 12 étapes. Vous décidez lesquelles activer.


Repo : alicelabs-llc/universal-trust-adapter · API : marketnow.site/api/trust

Top comments (0)