# Native Android Security ## Umgesetzte Schutzmaßnahmen - Die Sitzung liegt ausschließlich in `EncryptedSharedPreferences` mit Android-Master-Key. - Release-Builds enthalten keinen HTTP-Body-Logger. Der detaillierte OkHttp-Logger ist auf Nicht-Release-Builds begrenzt. - Release-Netzwerkverkehr erlaubt kein Cleartext. Nur der lokale Debug-Flavor darf `10.0.2.2` und `localhost` per HTTP ansprechen. - Chat, Galerie, Persönliches und der Adult-Bereich setzen `FLAG_SECURE`. Damit verhindert Android Screenshots, Bildschirmaufnahmen und die Anzeige im App-Switcher. - Uploads werden vor dem Service auf einen erlaubten MIME-Typ und eine Größe begrenzt: Bilder/Verifikationsnachweise 10 MiB, Videos 100 MiB. Bilder werden zusätzlich durch Sharp dekodiert, damit ein behaupteter MIME-Typ nicht genügt. ## Bewusste Entscheidungen ### Certificate Pinning Certificate Pinning wird aktuell **nicht** erzwungen. Die API verwendet HTTPS und die plattformseitige Trust-Store-Prüfung. Pinning würde bei Zertifikats- oder CDN-Wechseln ohne App-Update zu vollständigen Ausfällen führen. Es wird erst eingeführt, wenn es mindestens zwei parallel gültige Pins, ein dokumentiertes Rotation-Verfahren und Monitoring für Pin-Fehler gibt. ### Root- und Bootloader-Erkennung Die App blockiert gerootete Geräte nicht. Eine lokale Erkennung ist umgehbar und würde legitime Nutzer sowie Emulator-Tests ausschließen. Sensible Daten bleiben verschlüsselt, Screenshots in sensiblen Bereichen sind gesperrt und Berechtigungen werden auf dem Server durchgesetzt. Play Integrity wird bei späteren Hochrisiko-Aktionen als serverseitig prüfbares Signal bewertet, nicht als pauschale Startblockade. ## Dependency Scanning `.github/workflows/android-security.yml` führt bei Pull Requests und Pushes einen OSV-Abhängigkeitsscan sowie Android-Lint für den Produktions-Release aus. Kritische Findings werden vor einem Release bewertet.