Repository navigation
Security.de
Stand: 2026-05-12
Diese Seite beschreibt, wie ARIA sensible Werte speichert und wie der aktuelle Alpha-Sicherheitsrahmen funktioniert: Login, Secure Store, CSRF, Guardrails und bestaetigungspflichtige Aktionen.
In der Secure-DB (data/auth/aria_secure.sqlite) liegen aktuell:
- LLM- und Embedding-API-Keys
- Profil-API-Keys und Tokens fuer Connections
- Benutzer-Credentials mit Passwort-Hash und Rolle
- weitere Runtime-Secrets, wenn sie vom jeweiligen Modul dort abgelegt werden
Passwoerter werden nicht im Klartext gespeichert. Secrets werden AES-256-GCM verschluesselt.
Der Master-Key liegt in config/secrets.env:
ARIA_MASTER_KEYARIA_AUTH_SIGNING_SECRETARIA_FORGET_SIGNING_SECRET
Empfohlene Rechte: 600.
Diese Werte duerfen nicht in Git landen. Wenn sie fehlen, erzeugt ARIA persistente Werte beim ersten Start.
./aria.sh secure-migrateDabei werden Secrets aus config/config.yaml in die Secure-DB uebernommen, YAML-Felder geleert und ein Backup geschrieben.
- Login-URL:
/login - Session-Cookie: signiert
- Benutzernamen sind case-sensitive
- deaktivierte oder entfernte User verlieren ihre Session sofort
- der erste Bootstrap-User wird Admin, solange Bootstrap nicht gesperrt ist
- Admin-Modus und Rolle sind getrennt: nur Admins koennen Admin-Funktionen ueberhaupt nutzen
Zustandsaendernde Browser-Requests werden mit CSRF-Token geschuetzt:
- Cookie:
aria_csrf_token - Formulare enthalten das Token automatisch
- Fetch/HTMX sendet
X-CSRF-Token - fehlende oder falsche Tokens werden mit
403abgelehnt
ARIA setzt ausserdem Standard-Security-Header wie CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy und Permissions-Policy.
Der Agentic Action Flow trennt:
- Draft: Was koennte der User meinen?
- Policy/Guardrail: Ist das erlaubt, braucht es Bestaetigung oder wird blockiert?
- Runtime: Was wird wirklich ausgefuehrt?
Moegliche Policy-Ergebnisse:
-
allow- ausfuehren -
ask_user- im Chat bestaetigen lassen -
block- nicht ausfuehren
Beispiele:
- Read-only SSH wie
df -hoder Healthchecks: kann erlaubt sein - Service-Restarts: standardmaessig blocken oder explizite Admin-Policy verlangen
- Discord-/Webhook-Sends: bestaetigen lassen
Wenn ARIA eine Aktion nicht direkt ausfuehren soll, zeigt der Chat einen Button wie Aktion ausfuehren. Das ersetzt unsichere manuelle Token-Abschreiberei im Normalfall. Der alte Bestaetigungscode-Pfad kann fuer Fallbacks weiter existieren, sollte aber nicht der bevorzugte UX-Weg sein.
ARIA ist fuer kontrollierte Umgebungen gedacht:
- LAN/VPN oder Reverse Proxy mit sauberer Auth
- keine Secrets im Image
- keine Secrets in Git
- Volumes fuer persistente Daten
- Updates ueber Managed Helper oder bewusste Host-Kommandos
Direkter Public-Internet-Betrieb ohne Zusatzschutz ist fuer die Alpha nicht empfohlen.
-
ARIA_MASTER_KEY fehlt:config/secrets.envpruefen und ueber den vorgesehenen Startpfad starten. - Neue Keys wirken nicht:
security.enabled, Secure-DB-Pfad und Neustart pruefen. - Aktion wird blockiert: Chat-Details lesen, dort stehen Policy und Guardrail-Reason.
- Button bestaetigt nicht: Browser/CSRF/Session pruefen und den Chat-Detail-Typ
routed_action_pendingbeachten.