Skip to content

Sentinel: Architecture

Understand how the Sentinel Agent monitors AI tool usage, enforces policies locally, and securely reports to TruthVouch Cloud.

Architecture Overview

┌─ Employee Device ───────────────────────────────────────┐
│ │
│ ┌─ Sentinel Agent ──────────────────────────────────┐ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────┐ │ │
│ │ │ Application Monitor │ │ │
│ │ │ • Detects AI tool launches (ChatGPT, │ │ │
│ │ │ Copilot, Gemini, Claude) │ │ │
│ │ │ • Hooks into application APIs │ │ │
│ │ └──────────┬───────────────────────────────────┘ │ │
│ │ │ │ │
│ │ ┌──────────▼───────────────────────────────────┐ │ │
│ │ │ Local Policy Engine │ │ │
│ │ │ • Loads policies from disk cache │ │ │
│ │ │ • Enforces DLP rules in real-time │ │ │
│ │ │ • No cloud round-trip (offline-first) │ │ │
│ │ │ • Blocks/warns based on policy │ │ │
│ │ └──────────┬───────────────────────────────────┘ │ │
│ │ │ │ │
│ │ ┌──────────▼───────────────────────────────────┐ │ │
│ │ │ Local Database (SQLite) │ │ │
│ │ │ • Usage logs │ │ │
│ │ │ • Policy cache │ │ │
│ │ │ • Encrypted at rest │ │ │
│ │ └───────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌─ Telemetry Reporter ──────────────────────────┐ │ │
│ │ │ (Hourly or on-demand) │ │ │
│ │ │ • Sends usage summary to cloud │ │ │
│ │ │ • Encrypted HTTPS │ │ │
│ │ │ • No user data or request contents │ │ │
│ │ └──────────┬───────────────────────────────────┘ │ │
│ │ │ │ │
│ └─────────────┼──────────────────────────────────────┘ │
│ │ HTTPS (encrypted) │
│ │ (Hourly sync) │
└────────────────┼──────────────────────────────────────────┘
TruthVouch Cloud
┌─────────────────┐
│ • Dashboard │
│ • Policy Mgmt │
│ • Analytics │
└─────────────────┘

Key Components

1. Application Monitor

Detects when users launch or interact with AI tools:

Supported Tools:

  • OpenAI (ChatGPT, GPT-4)
  • Anthropic (Claude)
  • Google (Gemini)
  • Microsoft (Copilot, GitHub Copilot)
  • Local models (Ollama, LLaMA)

Detection Methods:

  • Process monitoring (detect exe/app launch)
  • Network inspection (detect API calls)
  • Clipboard monitoring (detect pastes to web apps)
  • Browser extension integration

2. Local Policy Engine

Real-time policy enforcement without cloud round-trip:

Enforcement Rules:

  • Allowlist/Blocklist — Permitted AI tools
  • DLP patterns — Block sensitive data (PII, secrets, credentials)
  • Time-based policies — Restrict access during work hours
  • Risk-based policies — Flag high-risk requests, block suspicious usage
  • Content filters — Prevent submissions to non-approved tools

Execution:

  • Policies loaded from encrypted local cache
  • Evaluated instantly (sub-100ms latency)
  • Cached results prevent repeated checks

3. Local Database

SQLite database stores:

  • Usage logs — Tool, timestamp, blocked status, reason
  • Policy cache — Last-synced policies with hash verification
  • Configuration — Agent settings, endpoints, credentials

Security:

  • Encrypted at rest with device key
  • Accessible only to Sentinel process
  • Automatic rotation of old logs

4. Telemetry Reporter

Securely reports usage to TruthVouch Cloud:

What is sent:

  • Tool name, timestamp, action (allowed/blocked)
  • Policy rule that matched (without user data)
  • Aggregate counts, not individual requests

What is NOT sent:

  • User input or prompts
  • Request/response contents
  • Clipboard data
  • Browsing history
  • File contents

Frequency:

  • Default: Hourly sync
  • Configurable: 5 minutes to 24 hours
  • On-demand: Via dashboard or local API

Platform-Specific Details

Windows

  • Service: Runs as Windows Service (LOCAL SYSTEM)
  • Hooks: WinAPI process monitoring, network interception
  • Storage: C:\ProgramData\TruthVouch\Sentinel\
  • Logs: Event Viewer → Applications and Services → TruthVouch

macOS

  • Service: Runs as LaunchDaemon
  • Hooks: System Extensions (URLFilter, NetworkFilter)
  • Storage: /Library/Application Support/TruthVouch/Sentinel/
  • Logs: /var/log/TruthVouch/sentinel.log

Linux

  • Service: Systemd service
  • Hooks: netlink sockets, process monitoring
  • Storage: /etc/truthvouch/sentinel/
  • Logs: /var/log/truthvouch/sentinel.log

Policy Sync Architecture

┌─ Device ────────────────┐
│ Sentinel Agent │
│ ┌──────────────────┐ │
│ │ Policy Cache │ │
│ │ (Version: v42) │ │
│ └────────┬─────────┘ │
│ │ (Hourly) │
└───────────┼─────────────┘
│ HTTPS POST
│ /api/v1/policy?version=v42
Cloud
┌─────────────────┐
│ Policy Database │
│ (Version: v42) │
└─────────────────┘
If version matches: 304 Not Modified
If newer exists: 200 OK + policies.json (compressed)

Offline Mode

Sentinel continues functioning without cloud connectivity:

Capabilities:

  • All policies enforced from cache
  • Usage logs accumulated locally
  • Cloud features disabled (analytics, real-time alerts)

Restoration:

  • On reconnect, syncs accumulated logs
  • Checks for new policies
  • Resume real-time features

Log Retention:

  • Default: 30 days of local logs
  • Configurable: Up to 365 days
  • Auto-cleanup of oldest logs

Security Model

End-to-End Encryption

Device Key Cloud Key
(stored on device) (stored in cloud)
│ │
└────────────────┘
Shared
Secret
Used to encrypt
telemetry payloads
Encrypted ──HTTPS──▶ Cloud
(double encryption)

Certificate Pinning

  • Sentinel pins TruthVouch API certificate
  • Prevents man-in-the-middle attacks
  • Certificate updated via secure channel

Code Signing

  • Sentinel executable signed by TruthVouch
  • Signature verified on launch
  • Tampering detected immediately

Performance Characteristics

CPU Usage

  • Idle: <1% (no AI tools active)
  • Monitoring: 1-3% (watching for AI tool launch)
  • Enforcing: <1ms latency per policy check
  • Sync: <2% for 30 seconds (hourly)

Memory Usage

  • Baseline: 50-100MB
  • With policies loaded: 150-200MB
  • Policy cache limit: 500MB (configurable)

Disk Usage

  • Agent binaries: 30MB
  • Local database: 10-50MB (logs)
  • Cached policies: 5-10MB

Network Usage

  • Idle: ~1KB/hour (keep-alive)
  • Hourly sync: 5-50KB (depends on policy size)
  • Usage reports: 1-5KB/sync

Threat Model

Protected Against

  • User bypassing policies (enforced locally)
  • Local policy modification (signed, encrypted)
  • Eavesdropping (encrypted HTTPS)
  • Policy injection (hash verification)

Not Protected Against

  • Privileged user with admin/root access
  • Hardware keylogger
  • Physical device theft (encrypted data)

Architecture Decisions

Why Local Enforcement?

  • Offline capability — Works without cloud
  • Low latency — Sub-100ms enforcement
  • Privacy — No request contents sent to cloud
  • Compliance — Meets air-gap requirements

Why Hourly Sync?

  • Freshness — New policies within 1 hour
  • Overhead — Minimal bandwidth and CPU
  • Scalability — Millions of devices sustainable
  • Configurable — Adjust per organization

Why Encrypted Cache?

  • Data residency — Policies stay on device
  • Compliance — Meets GDPR/HIPAA requirements
  • Offline operation — Cache survives reboots

See Policy Synchronization for detailed policy sync process.