Sicherheit: JWT-Token-Storage ungeschuetzt #72

Closed
opened 2026-05-16 23:42:18 +00:00 by jreinemann-euris · 0 comments
jreinemann-euris commented 2026-05-16 23:42:18 +00:00 (Migrated from github.com)

Bestandsaufnahme

JWT-Tokens (Access-Token + Refresh-Token) werden aktuell in der Room-Settings-Tabelle als Klartext Key-Value-Paare gespeichert (SettingsEntity).

Risiko

  • Auf gerooteten Geräten ist die Room-Datenbank trivial auslesbar (SQLite-Datei im App-Verzeichnis)
  • Ein gestohlener Refresh-Token ermöglicht dauerhaften Zugriff auf das Inventar des Users
  • Betrifft auch: Server-URL, Username – alles in derselben Tabelle

Betroffene Stellen

  • SettingsRepositoryImpl: Speichert/liest Tokens über SettingsDao
  • SyncServiceImpl: Nutzt Tokens aus dem Repository für HTTP-Requests
  • Keys: vermutlich access_token, refresh_token, server_url, username

Mögliche Lösungsrichtungen (zur Erarbeitung im Ticket)

  • EncryptedSharedPreferences (AndroidX Security)
  • Android Keystore für Token-Verschlüsselung
  • Tokens nur im Memory halten + bei App-Start neu authentifizieren
## Bestandsaufnahme JWT-Tokens (Access-Token + Refresh-Token) werden aktuell in der Room-Settings-Tabelle als Klartext Key-Value-Paare gespeichert (`SettingsEntity`). ### Risiko - Auf gerooteten Geräten ist die Room-Datenbank trivial auslesbar (SQLite-Datei im App-Verzeichnis) - Ein gestohlener Refresh-Token ermöglicht dauerhaften Zugriff auf das Inventar des Users - Betrifft auch: Server-URL, Username – alles in derselben Tabelle ### Betroffene Stellen - `SettingsRepositoryImpl`: Speichert/liest Tokens über `SettingsDao` - `SyncServiceImpl`: Nutzt Tokens aus dem Repository für HTTP-Requests - Keys: vermutlich `access_token`, `refresh_token`, `server_url`, `username` ### Mögliche Lösungsrichtungen (zur Erarbeitung im Ticket) - EncryptedSharedPreferences (AndroidX Security) - Android Keystore für Token-Verschlüsselung - Tokens nur im Memory halten + bei App-Start neu authentifizieren
Sign in to join this conversation.
No description provided.