Version: 1.11.0 | Stand: 2026-04-21
Privacy-First Voice Assistant auf MacBook Air M2. Verarbeitet Sprache, steuert Mac, hat Zugriff auf lokale Dateien, Shell, AppleScript, und (je nach Tier) Cloud-APIs.
- Alle API Keys ausschliesslich in
.env(nie in Git) .envin.gitignore(verifiziert)- Kein Key im Chat, Commit oder Log
- Bei Verdacht auf Leak: sofort rotieren
- Keys pro Scope minimal (Principle of Least Privilege)
| Tier | Scope | Kontrolle |
|---|---|---|
| 0 | 100% lokal — Ollama, faster-whisper, Kokoro, SQLite | Default, keine externe Uebertragung |
| 1 | Selektiv Claude API mit Redaktion | data_filter.py Pflicht |
| 2 | Full Cloud — Claude + Fish Audio + Composio | data_filter.py Pflicht + Tier-Switching via Voice |
backend/privacy/data_filter.py redigiert vor jedem Cloud-Call:
- Emails
- Tokens (Bearer, API-Keys)
- File-Pfade mit PII
- Telefonnummern
- IBANs / Kreditkarten
| Threat | Vektor | Mitigation |
|---|---|---|
| Prompt Injection via Voice | Unbefugte Nutzer sprechen mit Mac | Wake-Word + ggf. Voice-Identification (spaeter) |
| API-Key-Leak | Key in Log/Commit | .gitignore + Log-Redaktion + Secret-Scan im CI |
| Shell-Command-Injection | Sprachbefehl triggert os.system |
Allowlist in backend/tools/ |
| PII im Cloud-Transit | Claude/Fish Audio sieht Emails | data_filter.py vor jedem Cloud-Call |
| Man-in-the-Middle (Telegram) | Telegram-Nachrichten abgefangen | Nur HTTPS, Bot-Token in .env |
| Ollama-Modell-Substitution | Manipulierter Modell-Download | Modell-Hash in ADR festhalten |
| OpenClaw VPS kompromittiert | HTTP-Bridge als Einfallstor | mTLS / API-Token, Allowlist-IPs |
Ausfuehrliches Threat-Modeling via /security-architect vor Features mit Privacy-Impact.
- Feature sofort deaktivieren (
.envFlag) - Linear Issue anlegen (Label:
incident,privacyodersecurity) /breakfixWorkflow (sobald Skill vorhanden)- SecondBrain: ADR "Incident YYYY-MM-DD" anlegen
- CLAUDE.md-Regel ergaenzen um Wiederauftreten zu verhindern
DSGVO/GDPR: Jarvis verarbeitet personenbezogene Daten lokal. Cloud-Nutzung nur nach expliziter Tier-Auswahl. Loeschkonzept: backend/memory/store.py erlaubt SQL-Delete auf Session-Ebene.
Details via /dpo Skill bei Features mit personenbezogenen Daten.