Skip to main content

Security

Security patterns and best practices for ARC Protocol.

Overview

ARC Protocol security through authentication, transport encryption, and authorization.

Topics

Security Layers

┌─────────────────────────────────────┐
│ Application Security │
│ (Business Logic, Input Validation) │
└──────────────┬──────────────────────┘

┌──────────────▼──────────────────────┐
│ Authorization Layer │
│ (OAuth2 Scopes, Permissions) │
└──────────────┬──────────────────────┘

┌──────────────▼──────────────────────┐
│ Authentication Layer │
│ (OAuth2, JWT Validation) │
└──────────────┬──────────────────────┘

┌──────────────▼──────────────────────┐
│ Transport Security │
│ (TLS 1.2+, Quantum-Safe Hybrid) │
└─────────────────────────────────────┘

Core Principles

  1. Defense in Depth - Multiple security layers
  2. Least Privilege - Minimal required permissions
  3. Zero Trust - Verify every request
  4. Encryption Everywhere - TLS for all communications
  5. Audit Trail - Log security events

Quick Reference

Authentication

from arc import Server
from arc.auth import MultiProviderJWTValidator

validator = MultiProviderJWTValidator(providers={...})
server = Server(server_id="secure-server", enable_auth=True)
server.set_jwt_validator(validator)

Transport Security

# Quantum-safe hybrid TLS (default)
client = Client(endpoint="...", token="...", use_quantum_safe=True)

Authorization

server.set_required_scopes({
"task.create": ["arc.task.controller"],
"chat.start": ["arc.chat.controller"]
})