Audience: Notified Bodies conducting conformity assessments under the EU AI Act, C3PAOs performing CMMC assessments, and compliance auditors evaluating multi-agent AI system deployments. No SDK installation required to use this guide.

1. What is Trust Mesh

The SWT3 Trust Mesh is a protocol for mutual compliance verification between AI agents. Before two agents exchange data, invoke tools, or share context, each presents a cryptographic credential proving its compliance posture. The receiving agent verifies the credential locally and assigns a trust level from 0 (DENIED) to 4 (SOVEREIGN).

Think of it as a TLS handshake for compliance. Just as TLS ensures the server you are talking to is who it claims to be, Trust Mesh ensures the agent you are sharing data with has active guardrails, valid attestations, and a verified identity. The critical difference: Trust Mesh requires no certificate authority, no shared infrastructure, and no pre-negotiation between organizations.

2. What to Ask For

When evaluating a Trust Mesh deployment, request the following evidence artifacts from the deployer:

ArtifactPurposeFormat
.swt3.yaml configuration fileDeclares trust policy: mode, minimum trust level, required procedures, signing requirementsYAML (version-controlled)
Sample SWT3 witness anchorsProves agents are actively producing compliance evidenceSWT3 anchor tokens (text)
Trust verification logsShows verification outcomes: grants, denials, trust levels assignedStructured logs (JSON/JSONL)
Signing key attestation recordsProves signing keys are bound to valid compliance anchorsAttestation objects (JSON)
Challenge-response liveness logsProves agents can demonstrate live key possession on demandChallenge/response pairs (JSON)
Deny list and revocation recordsShows the organization responds to compromised or non-compliant agentsEvent logs (JSON)
Agent inventoryLists all agents, their tenant membership, and expected trust levelsTable or spreadsheet
Key question to ask: "Can you show me a denied verification from the last 30 days?" If the answer is no, either the mesh is in permissive/monitor mode (acceptable for non-production) or it is not actively enforcing trust decisions (a finding).

3. Trust Level Verification Checklist

For each trust level the deployer claims to enforce, verify the following evidence:

Level 1 BASIC

Red flag: All agents at BASIC in production. This means no cryptographic identity verification is occurring.

Level 2 VERIFIED

Red flag: Signing keys stored in application code rather than a secrets manager. Ask where keys are stored and how they are rotated.

Level 3 ATTESTED

Red flag: Key attestations bound to anchors that are months old. Freshness matters because a stale attestation may reference a compliance posture that no longer holds.

Level 4 SOVEREIGN

Red flag: SOVEREIGN trust level claimed but no liveness mechanism configured. Liveness proofs are the distinguishing evidence for this level.

4. Credential Signature Verification

You can independently verify a Trust Mesh credential signature without installing the SDK. The canonical message format is deterministic.

Step 1: Reconstruct the canonical message

The signed message is a colon-separated string with the following fields in order:

{agentId}:{tenantId}:{anchorFingerprint}:{anchorTimestampMs}:{isSigned}:{hasHardwareAttestation}:{hasGuardrails}:{clearingLevel}:{sortedProcedures}

Boolean fields are encoded as 1 (true) or 0 (false). Procedures are sorted alphabetically and joined with commas.

Step 2: Compute the expected HMAC

Using the signing key and the canonical message, compute HMAC-SHA256:

echo -n "agent-classifier:acme-prod:a1b2c3d4e5f6:1717804800000:1:0:1:1:AI-GRD.1,AI-INF.1" \
  | openssl dgst -sha256 -hmac "your-signing-key"

Step 3: Compare

The output hex digest must match the credentialSignature field on the credential exactly. Any mismatch indicates tampering, a wrong key, or a message format error.

Important: The comparison in the SDK uses constant-time comparison to prevent timing attacks. When verifying manually, be aware that string comparison in shell scripts is not constant-time, which is acceptable for audit purposes but not for production verification logic.

5. Key Attestation Verification

Key attestation binds a signing key to a specific SWT3 witness anchor. When reviewing attestation records, verify:

The attestation message format for manual verification:

KEY_ATTEST:{agentId}:{tenantId}:{anchorFingerprint}:{publicKeyHash}:{keyPurpose}:{timestampMs}

Compute the HMAC-SHA256 of this message with the signing key and compare to the attestation's signature field.

6. Liveness Proof Review

A liveness proof demonstrates that an agent possesses its signing key at the moment of the challenge, not just historically. When reviewing liveness evidence:

What a valid exchange looks like

  1. Challenge issued: Contains a 32-byte random nonce, target agent ID, and timestamp
  2. Response returned: Contains the original nonce signed with HMAC-SHA256 using the agent's key
  3. Timing: Response timestamp is within 30 seconds of the challenge timestamp (default window)

What compromise looks like

Assessment tip: Request liveness logs from the last 7 days. Count the unique challenge-response pairs per agent. Agents at SOVEREIGN level should have regular liveness proofs. Gaps longer than the freshness window are a finding.

7. Configuration Review Checklist

Review the .swt3.yaml trust_mesh section against these 15 items:

#CheckExpected (Production)Severity if Missing
1Is mode set to strict?strictHIGH
2Is min_trust_level at least 2?2 or higherHIGH
3Is require_signature enabled?trueHIGH
4Is freshness_window set and reasonable?86400 or lessMEDIUM
5Are trusted_tenants explicitly listed?Non-empty listHIGH
6Are signing_keys registered for all agents?One per agentHIGH
7Are keys referenced via environment variables (not inline)?${VAR} syntaxHIGH
8Is require_intra_tenant_signing enabled?trueMEDIUM
9Is rate_limit_max_failures set?5-20MEDIUM
10Is verify_boolean_claims enabled?trueLOW
11Are required_procedures defined?At least AI-INF.1, AI-GRD.1MEDIUM
12Is per_level_freshness configured for SOVEREIGN?300 seconds or lessLOW
13Are deny_agents / deny_tenants lists maintained?Present (may be empty)LOW
14Is the config file under version control?Git-trackedMEDIUM
15Does the config hash match the deployed version?Exact matchHIGH

8. Common Findings

F-1: Unsigned Credentials in Production HIGH

All agent credentials are unsigned, capping trust at BASIC. Any process that can read the tenant ID can impersonate any agent.

Remediation: Enable require_signature: true and distribute signing keys to all agents.

F-2: Permissive Mode in Production HIGH

Trust mesh mode is set to permissive or monitor. Failed verifications are logged but do not block execution.

Remediation: Set mode: strict for production environments. Reserve permissive for staging.

F-3: Signing Keys in Source Code HIGH

Signing keys appear as plaintext strings in the .swt3.yaml file or application code rather than environment variable references.

Remediation: Replace inline keys with ${ENV_VAR} references. Store keys in a secrets manager.

F-4: Stale Freshness Window MEDIUM

Freshness window exceeds 7 days (604800 seconds). Agents could operate on week-old compliance evidence.

Remediation: Reduce freshness window to 24 hours (86400) for standard operations. Use per-level freshness for higher trust levels.

F-5: No Deny List Maintenance MEDIUM

Deny lists are empty and there is no evidence of deny events in the last 90 days. This may indicate the organization has no process for revoking trust from compromised agents.

Remediation: Establish a deny list update procedure. Configure onDenyEvent() hooks to log and alert on denials.

F-6: Missing Rate Limiting MEDIUM

Rate limiting is disabled (rate_limit_max_failures: 0). A compromised agent can attempt unlimited verifications without automatic denial.

Remediation: Set rate_limit_max_failures to 5-20 with a 60-second window.

F-7: No Intra-Tenant Signing MEDIUM

Agents within the same tenant do not sign credentials. A compromised agent can impersonate other same-tenant agents.

Remediation: Enable require_intra_tenant_signing: true for environments with more than three agents.

F-8: SOVEREIGN Claimed Without Liveness LOW

Agents claim SOVEREIGN trust level but no challenge-response liveness mechanism is configured. The highest trust level should include proof of live key possession.

Remediation: Implement challenge-response liveness checks for agents that require SOVEREIGN trust.

9. Regulatory Mapping

Trust Mesh evidence maps to multiple regulatory frameworks. Use this table when writing assessment findings.

Trust Mesh EvidenceEU AI ActNIST AI RMFNIST 800-53
Agent identity verificationArt. 9(2)(c) - risk management measuresMap 1.1 - intended contextIA-2 Identification and Authentication
Credential signingArt. 15(4) - cybersecurity measuresManage 2.4 - risk treatmentIA-5 Authenticator Management
Freshness windowsArt. 9(4)(a) - continuous monitoringMeasure 2.5 - continuous monitoringCA-7 Continuous Monitoring
Deny lists / revocationArt. 9(7) - corrective actionsManage 4.1 - risk responseAC-2 Account Management
Trust level enforcementArt. 15(1) - accuracy, robustnessManage 1.3 - risk prioritizationAC-3 Access Enforcement
Key attestationArt. 15(4) - cybersecurity resilienceManage 2.2 - risk mitigationIA-5(2) Public Key-Based Authentication
Challenge-response livenessArt. 15(4) - unauthorized access protectionManage 2.3 - risk monitoringSC-8 Transmission Confidentiality
Configuration under version controlArt. 17(1)(d) - quality managementGovern 1.4 - organizational practiceCM-3 Configuration Change Control
Rate limitingArt. 15(3) - resilience to errorsManage 2.4 - risk treatmentSC-5 Denial of Service Protection

10. Verification Without SDK Access

An auditor can verify Trust Mesh evidence using three tools: the SWT3 anchor, the public verify endpoint, and openssl.

Step 1: Verify the underlying anchor

Every Trust Mesh credential references an SWT3 anchor fingerprint. Verify the anchor is genuine using the public verification endpoint:

https://sovereign.tenova.io/verify?token=SWT3-E-AWS-AI-INF1-PASS-1717804800-a1b2c3d4e5f6

The verify page recomputes the SHA-256 fingerprint from the anchor components and confirms it matches. No authentication required.

Step 2: Verify the credential signature

Reconstruct the canonical message and compute the HMAC as described in Section 4. This confirms the credential was signed by the expected key.

Step 3: Verify key attestation (if present)

Reconstruct the attestation canonical message and compute the HMAC as described in Section 5. Confirm the bound anchor is still within the freshness window.

Step 4: Review configuration integrity

The SDK computes a SHA-256 hash of the .swt3.yaml file at startup. Ask the deployer for the config_hash from their running instance and compare it to the hash of the file they provided for review. A mismatch indicates the deployed configuration differs from the reviewed copy.

No SDK installation required. Every verification step in this guide can be performed with standard tools (a web browser, openssl, and a text editor). The SWT3 protocol is designed so that auditors never depend on the vendor's software to validate evidence.

For the full protocol specification including the canonical message format, all denial codes, and security properties, see the Trust Mesh Protocol Reference.

This guide is provided for informational purposes only and does not constitute legal, regulatory, or compliance advice. Regulatory mappings and crosswalk interpretations reflect the publisher's analysis and may not address all obligations applicable to your organization. Consult qualified legal counsel before making compliance decisions based on this content.