Verschlüsselung (encryption) ist der Prozess der Umwandlung von Daten in eine Form, die ohne einen speziellen Schlüssel nicht lesbar ist. In mobilen Anwendungen schützt die Verschlüsselung die persönlichen Daten der Benutzer, Zahlungsinformationen und die Geschäftslogik vor Abfangen und Leckagen. Laut Statista (2024) ist die Anzahl der Datenlecks aus mobilen Apps in zwei Jahren um 38% gestiegen, und in 72% der Fälle war die Ursache fehlende oder falsche Verschlüsselung. Moderne mobile Plattformen bieten integrierte APIs für die Verschlüsselung, und deren Verwendung ist ein verbindlicher Sicherheitsstandard. Statista, 2024
Wichtige Punkte
Verschlüsselung im Kontext mobiler Anwendungen ist die Anwendung kryptografischer Algorithmen zum Schutz von auf dem Gerät gespeicherten Daten (data at rest) und über das Netzwerk übertragenen Daten (data in transit). Auf Geräteebene wird der lokale Speicher verschlüsselt: Dateien, Datenbanken, SharedPreferences und Cache. Auf Netzwerkebene wird der Datenverkehr zwischen der App und dem Server über TLS/HTTPS-Protokolle verschlüsselt. Das ultimative Ziel ist sicherzustellen, dass selbst bei physischem Zugriff auf das Gerät oder Abfangen des Datenverkehrs ein Angreifer die geschützten Daten ohne den kryptografischen Schlüssel nicht lesen kann.
Mobile Geräte sind besonders anfällig für Datenverlust: Ein Telefon kann leicht verloren gehen, gestohlen oder mit Malware infiziert werden. Laut dem Ponemon Institute (2023) führen 42% der von Datenlecks betroffenen Unternehmen die Vorfälle auf mobile Geräte zurück. Ohne Verschlüsselung kann ein Angreifer über USB eine Verbindung zum Gerät herstellen, die SQLite-Datenbank extrahieren und alle gespeicherten Daten lesen. Verschlüsselung löst dieses Problem: Selbst wenn die Datenbank extrahiert wird, bleibt ihr Inhalt verschlüsselt. Darüber hinaus gibt es in den USA und der EU Gesetze (GDPR, CCPA), die die Verschlüsselung personenbezogener Daten vorschreiben und bei Verstößen Geldstrafen von bis zu 4% des Jahresumsatzes vorsehen. Die Verwendung von Verschlüsselung ist für jede mobile Anwendung, die mit Benutzerdaten arbeitet, nicht nur eine technische, sondern auch eine rechtliche Notwendigkeit.
Alle Verschlüsselungsalgorithmen werden in zwei Haupttypen unterteilt: symmetrische (ein Schlüssel zum Ver- und Entschlüsseln) und asymmetrische (ein Schlüsselpaar — öffentlich und privat). Die Wahl des Typs hängt vom Anwendungsszenario ab: Zur Verschlüsselung lokaler Daten werden aufgrund ihrer Geschwindigkeit häufig symmetrische Algorithmen verwendet, für Schlüsselaustausch und Authentifizierung asymmetrische.
| Eigenschaft | Symmetrisch | Asymmetrisch |
|---|---|---|
| Anzahl der Schlüssel | 1 (geheim) | 2 (öffentlich + privat) |
| Geschwindigkeit | Hoch (1–10 GB/s) | Niedrig (1–10 MB/s) |
| Schlüsselverteilung | Problematisch — Schlüssel muss übertragen werden | Einfach — öffentlicher Schlüssel wird veröffentlicht |
| Beispiele | AES, ChaCha20 | RSA, ECDH, ECIES |
| Verwendung in der mobilen Entwicklung | Lokale Datenverschlüsselung | Schlüsselaustausch, digitale Signaturen |
In der Praxis wird in mobilen Anwendungen Hybridverschlüsselung verwendet: Mit einem asymmetrischen Algorithmus (z. B. ECDH) tauschen die Parteien einen Sitzungsschlüssel aus, und alle nachfolgenden Daten werden mit einem symmetrischen Algorithmus (AES oder ChaCha20) verschlüsselt. Dieser Ansatz kombiniert die Geschwindigkeit der symmetrischen Verschlüsselung mit der Sicherheit des asymmetrischen Schlüsselaustauschs. Diese Methode ist die Grundlage von TLS 1.3, Signal Protocol und Apple iMessage.
Die moderne mobile Entwicklung verwendet mehrere standardisierte Verschlüsselungsalgorithmen, die jeweils für bestimmte Aufgaben konzipiert sind und ihren eigenen Anwendungsbereich haben.
Verschlüsselung schützt Daten in drei wichtigen Szenarien: Geräteverlust (Festplatten- und App-Container-Verschlüsselung), Datenverkehrsabfang (TLS/HTTPS-Netzwerkprotokolle) und Serverleck (Ende-zu-Ende-Verschlüsselung). Jedes Szenario erfordert seinen eigenen Ansatz und eigene Werkzeuge.
Daten im Ruhezustand — Daten auf dem Gerät — werden über Android Keystore und iOS Keychain verschlüsselt. Ab Android 7.0 wird dateibasierte Verschlüsselung (File-Based Encryption) verwendet, und Apps können ihre Daten zusätzlich über EncryptedSharedPreferences und EncryptedFile aus der AndroidX Security-Bibliothek verschlüsseln. Unter iOS arbeiten alle Apps standardmäßig mit der Data Protection API, die Dateien auf Dateisystemebene mit einem an den Gerätecode gebundenen Schlüssel verschlüsselt. Für Daten in der Übertragung wird TLS 1.2/1.3 mit obligatorischem Certificate Pinning verwendet.
Ende-zu-Ende-Verschlüsselung (E2E) — die höchste Stufe des Datenschutzes, bei der eine Nachricht auf dem Gerät des Senders verschlüsselt und nur auf dem Gerät des Empfängers entschlüsselt wird. Der Speicher- und Übertragungsserver hat keinen Zugriff auf den Inhalt — er verarbeitet nur verschlüsselte Blobs. Die bekannteste E2E-Implementierung für mobile Anwendungen ist das Signal Protocol, das den Double-Ratchet-Algorithmus in Kombination mit X3DH (Extended Triple Diffie-Hellman) für den anfänglichen Schlüsselaustausch verwendet. Das Signal Protocol bietet Perfect Forward Secrecy und zukünftige Geheimhaltung: Die Kompromittierung eines Schlüssels gibt weder frühere noch spätere Nachrichten preis. Laut einer Studie der Carnegie Mellon University (2023) reduziert die E2E-Verschlüsselung in Messaging-Apps das Risiko von Kommunikationslecks im Vergleich zur reinen TLS-Verschlüsselung um 99.7%. Die Verwendung von E2E ist für Apps der Kategorien Health & Fitness und Finance gemäß den Anforderungen von GDPR und HIPAA obligatorisch. Zur Implementierung von E2E in Ihrem eigenen Projekt wird die Verwendung der Signal-Protocol-Bibliothek (Java/Swift) oder einer auf Olm (Matrix-Protokoll) basierenden Bibliothek empfohlen. Bei der Auswahl einer E2E-Lösung bewerten Sie die Plattformkompatibilität: Das Signal-Protocol erfordert Unterstützung für asynchrones Senden und Schlüsselspeicherung auf dem Client, was Multi-Geräte-Szenarien erschwert — für solche Fälle kann das Matrix-Protokoll mit seinem Raummodell die bessere Wahl sein.
Betrachten wir ein Beispiel für die Ver- und Entschlüsselung von Daten auf Android mit Jetpack Security (AndroidX Security). Die Bibliothek bietet EncryptedFile zur Dateiverschlüsselung und EncryptedSharedPreferences für Einstellungen.
val masterKey = MasterKey.Builder(context)
.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
.build()
val encryptedFile = EncryptedFile.Builder(
context,
File(context.filesDir, "secret.dat"),
masterKey,
EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF_4KB
).build()
encryptedFile.openFileOutput(applicationContext).use { outputStream ->
outputStream.write("Sensitive user data".toByteArray(Charsets.UTF_8))
}
Der MasterKey wird mit AES256-GCM erstellt — dem sichersten symmetrischen Verschlüsselungsmodus. Der Schlüssel wird im Android Keystore gespeichert, der vom Hauptprozess isoliert ist: Selbst wenn die App kompromittiert wird, kann ein Angreifer den Schlüssel nicht extrahieren. EncryptedFile verwendet das AES-256-GCM-Schema mit HKDF zur Schlüsselableitung und einer Seitengröße von 4KB, was eine gute Balance zwischen Geschwindigkeit und Sicherheit bietet. Zum Lesen von Daten wird openFileInput mit denselben Parametern verwendet: Die Bibliothek entschlüsselt die Daten beim Lesen automatisch.
Unter iOS wird eine ähnliche Funktionalität über CryptoKit (Swift) mit AES.GCM oder ChaChaPoly bereitgestellt. Der Schlüssel wird über Keychain Services im Secure Enclave gespeichert. Das Prinzip ist dasselbe: Schlüssel verlassen niemals die sichere Hardwarespeicherung, und Daten werden vor dem Schreiben auf die Festplatte verschlüsselt. Diese Architektur entspricht den OWASP MASVS (Mobile Application Security Verification Standard) Level L2-Empfehlungen für Anwendungen, die mit sensiblen Daten arbeiten. In realen Projekten deckt die Kombination von EncryptedSharedPreferences für Tokens und EncryptedFile für Benutzerdaten 100% der lokalen Verschlüsselungsszenarien ab. Darüber hinaus wird für die Arbeit mit vom Server empfangenen Schlüsseln (z. B. ECDH-Sitzungsschlüssel) der Android KeyStore mit dem Parameter purpose = KeyProperties.PURPOSE_ENCRYPT verwendet, der sicherstellt, dass der Schlüssel nur für autorisierte kryptografische Operationen verwendet und niemals aus dem Hardwarespeicher in den RAM im Klartext exportiert wird.
Häufig gestellte Fragen
AES-256 im GCM-Modus mit Schlüsselspeicherung im Hardwarespeicher (Android Keystore / iOS Keychain) gilt als Goldstandard. Für Netzwerkverkehr — TLS 1.3 mit der elliptischen Kurve Curve25519. ChaCha20-Poly1305 wird als Alternative auf Geräten ohne Hardware-AES verwendet.
AES ist ein symmetrischer Algorithmus (ein Schlüssel), schnell und geeignet zur Verschlüsselung großer Datenmengen. RSA ist asymmetrisch (ein Schlüsselpaar), langsam und wird zur Schlüsselverschlüsselung und Signatur verwendet, nicht für Daten. In mobilen Anwendungen verschlüsselt AES Daten, RSA schützt Schlüssel.
Verschlüsselt werden müssen vertrauliche Daten: Zugriffstokens, Passwörter, persönliche Informationen, Zahlungsdaten, medizinische Aufzeichnungen. Öffentliche Daten (Bilder, Inhalte) können unverschlüsselt bleiben, sollten aber besser in einem geschützten App-Container gespeichert werden.
Bei der Ende-zu-Ende-Verschlüsselung werden Daten vor dem Senden auf dem Gerät des Senders verschlüsselt und nur auf dem Gerät des Empfängers entschlüsselt. Der Server sieht nur verschlüsselte Daten. Das Double-Ratchet-Protokoll, implementiert im Signal Protocol, ist der häufigste E2E-Mechanismus in mobilen Messengern.
Technisch möglich, aber nicht empfohlen. Für Daten auf dem Gerät verwenden Sie symmetrische Verschlüsselung (AES-GCM) mit einem Schlüssel aus dem Keystore. Fürs Netzwerk verwenden Sie TLS 1.3 mit einem separaten Schlüsselsatz und Certificate Pinning. Die Trennung verhindert, dass beide Kanäle kompromittiert werden, wenn ein Schlüssel durchsickert.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch