====== AGLX – Sicherheitsaspekte und Verschlüsselung ====== Sicherheit ist ein zentrales Designziel des AGLX-Protokolls. Da Agenten eigenständig handeln, Entscheidungen treffen und miteinander kommunizieren, müssen **Authentizität, Integrität und Vertraulichkeit** jederzeit gewährleistet sein. AGLX setzt dafür auf eine Kombination aus Verschlüsselung, digitaler Signierung, Vertrauenszonen und kontextabhängiger Zugriffskontrolle. ===== Grundprinzip ===== Sicherheit in AGLX wird nicht zentral verwaltet, sondern **dezentral durch Vertrauen und kryptografische Verfahren** gewährleistet. Jeder Agent ist selbst verantwortlich für den Schutz seiner Kommunikation und Identität. ^ Prinzip ^ Beschreibung ^ | **Ende-zu-Ende-Verschlüsselung** | Jede TCP-Kommunikation zwischen Agenten kann verschlüsselt werden (TLS oder DTLS). | | **Signierte Nachrichten** | Jede Nachricht kann digital signiert werden, um Manipulationen zu verhindern. | | **Vertrauenszonen (Trust Zones)** | Agenten in derselben Zone teilen Schlüssel oder Zertifikate. | | **Authentifizierung** | Agenten authentifizieren sich gegenseitig über Signaturen, Tokens oder Zertifikate. | | **Minimal Exposure** | Agenten veröffentlichen nur die notwendigsten Daten in der Registry. | ===== Authentifizierung und Identität ===== Jeder Agent besitzt eine eindeutige digitale Identität, die in einer **Agenten-ID** und einem **Signaturschlüssel** besteht. Diese Identität wird beim Start erzeugt und optional durch ein Zertifikat einer Registry bestätigt. **Beispiel:** Registrierung mit signierter Identität AGLX/1.0 TCP FROM: agent://node17.local TO: registry://global.aglx.net TYPE: registry.update CONTENT-TYPE: application/json { "agent_name": "Node17", "agent_type": "worker", "public_key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A...", "signature": "hmac-sha256:3f8d1ab2...", "capabilities": ["data.analyze", "task.execute"], "status": "READY" } Die Registry prüft die Signatur gegen den öffentlichen Schlüssel und gibt eine signierte Bestätigung zurück. AGLX/1.0 TCP FROM: registry://global.aglx.net TO: agent://node17.local TYPE: registry.ack SIGNATURE: rsa-sha256:72c1b9d0... STATUS: 200 OK ===== Transportverschlüsselung ===== AGLX unterstützt mehrere Transportmodi, die abhängig von Netztyp und Sicherheitsniveau gewählt werden können. ^ Modus ^ Beschreibung ^ Einsatzgebiet ^ | **TCP (unverschlüsselt)** | Nur für geschlossene, interne LANs. Schnell, aber unsicher über WAN. | Testnetze, lokale Simulationen | | **TCP + TLS** | Standardmodus für produktive Umgebungen. Schützt Daten gegen Abhören und Manipulation. | Public WAN, Rechenzentren | | **UDP + DTLS** | Optional für Broadcasts und Statusmeldungen mit leichter Sicherheitsschicht. | Lokale Discovery | | **Peer Encryption** | Ende-zu-Ende-Verschlüsselung auf Anwendungsebene über AGLX-Header-Feld. | Direktkommunikation zwischen Agenten | **Beispiel einer verschlüsselten Direktnachricht:** AGLX/1.0 TCP FROM: agent://alpha.local TO: agent://beta.local TYPE: task.assign ENCRYPTION: aes256-gcm CONTENT-TYPE: application/json { "iv": "8h2G6fzx4VwP+YtN", "payload": "ENCRYPTED:df9d23bb...7f1a" } ===== Integrität und Manipulationsschutz ===== Um sicherzustellen, dass Nachrichten unverändert ankommen, wird jede Nachricht mit einer Prüfsumme oder digitalen Signatur versehen. ^ Verfahren ^ Beschreibung ^ | **HMAC-SHA256** | Schnelles Verfahren für lokale Netze, Schlüsselbasiert | | **RSA-SHA256** | Asymmetrische Signierung, geeignet für übergreifende Netzwerke | | **ECDSA** | Kompaktes Signaturverfahren mit geringer Rechenlast | | **Checksum-Header** | Fallback für unkritische UDP-Meldungen | **Beispiel mit HMAC-Signatur:** AGLX/1.0 TCP FROM: agent://node51.local TO: agent://node23.local TYPE: task.result HMAC: 3f1ad62f99bcb5e1bcd942ab38e0cf3c1dd06b9e CONTENT-TYPE: application/json { "task_id": "b912-a1d9-7ce3", "result": "OK", "credits_earned": 2 } ===== Zugriffskontrolle (Access Control) ===== Zugriffskontrolle in AGLX erfolgt dynamisch und rollenbasiert. Ein Agent kann definieren, welche Nachrichtentypen oder Aufgaben er akzeptiert. **Beispiel einer Policy-Datei:** { "accept": ["task.assign", "registry.update"], "deny": ["credit.transfer", "debug.dump"], "trusted_agents": ["agent://mentor01.local", "agent://router.global"], "max_concurrent_tasks": 5 } ^ Regeltyp ^ Beschreibung ^ | **Accept/Deny-Listen** | Filterung erlaubter Nachrichtentypen | | **Trusted Agents** | Whitelist bekannter und vertrauenswürdiger Agenten | | **Rate Limiting** | Begrenzung eingehender Aufgaben pro Zeitraum | | **Credit Validation** | Prüfung, ob Absender über ausreichende Credits verfügt | ===== Datenschutz und Minimierung ===== Agenten sollten nur die notwendigsten Informationen teilen. Das gilt besonders für Registrierungs- und Monitoringdaten. ^ Maßnahme ^ Beschreibung ^ | **Anonymisierte Statusmeldungen** | Senden nur technischer Daten (z. B. uptime, load, status) | | **Verzicht auf personenbezogene Daten** | Keine Userdaten oder Inhalte in Protokollnachrichten | | **Temporäre Einträge** | Automatische Löschung in der Registry nach Ablauf der TTL | | **Datenverschlüsselung im Cache** | Speicherung sensibler Inhalte nur verschlüsselt | ===== Sicherheitsrichtlinien für Entwickler ===== - Alle TCP-Kommunikationen sollen TLS oder gleichwertige Verfahren nutzen. - UDP darf **nur für Discovery im LAN** eingesetzt werden (siehe IANA-Anpassung). - Jede Nachricht mit ökonomischem Wert (Credits, Reputation, Aufgaben) muss signiert werden. - Agenten sollten regelmäßig ihre Schlüssel erneuern (Key Rotation). - Mentoren und Registrys benötigen höhere Vertrauensstufen und erweiterte Signaturprüfung. AGLX verfolgt das Prinzip der **„verteilten Sicherheit“**: Jeder Agent ist selbst dafür verantwortlich, Vertrauen aufzubauen, Nachrichten zu prüfen und seine Kommunikationspartner zu verifizieren. Sicherheit entsteht nicht durch zentrale Kontrolle, sondern durch konsequente Integrität auf allen Ebenen. ===== Versionierung ===== * **Modul:** Sicherheit & Verschlüsselung * **Version:** 1.0 (Draft) * **Stand:** 27.10.2025 * **Autor:** Andreas Röne (Konzept)