Zurück zur Startseite

Verschlüsselung über MAX: AES-256 für Android/iOS

Der Artikel beschreibt die Entwicklung der Offline-Dark Message-Anwendung für Verschlüsselung über Messenger mit AES-256-GCM und PBKDF2. Analyse plattformübergreifender UTF-8-Probleme, CI/CD auf GitHub Actions ohne Mac, Veröffentlichung im App Store. Volle Android-iOS-Windows-Kompatibilität.

Offline AES-256-Verschlüsselung für beliebige Messenger
Advertisement 728x90

Plattformübergreifende Verschlüsselung über Messenger: Implementierung für iOS und Android

Wenn nur zugelassene Messenger ohne Ende-zu-Ende-Verschlüsselung verfügbar sind, ist eine zusätzliche Schutzschicht über dem bestehenden Transport erforderlich. Dark Message implementiert Offline-Verschlüsselung von Nachrichten, Dateien und Dokumenten mit AES-256-GCM. Verschlüsselter Inhalt wird in jeden Übertragungskanal kopiert – MAX, E-Mail oder SMS – ohne Zugriff auf die Originaldaten auf dem Gerät des Senders oder Empfängers.

Die App arbeitet ohne Netzwerkberechtigungen und verschlüsselt Daten lokal. Der Empfänger entschlüsselt mit einem gemeinsamen Passwort, was Kompatibilität zwischen Android, iOS und Windows gewährleistet.

Architektur und Kryptografie

Symmetrische Verschlüsselung basiert auf AES-256-GCM für Vertraulichkeit und Authentifizierung. Die Schlüsselableitung verwendet PBKDF2-HMAC-SHA512 mit 600.000 Iterationen und einem zufälligen Salt. Das verschlüsselte Paketformat ist: [Version:1B][Inhaltstyp:1B][Salt:16B][Nonce:12B][Chiffretext+GCM_Tag:NB]. Dies garantiert eindeutigen Chiffretext selbst bei identischen Eingabedaten mit demselben Passwort.

Google AdInline article slot

Unterstützte Typen:

  • Textnachrichten (Ausgabe als Base64-String).
  • Bilder und Dateien (Ausgabe als .darkm).
  • Dokumente in jedem Format (PDF, DOCX, XLSX, ZIP).

Entwicklung mit KI: Von der Architektur zum Debugging

Claude wurde für Codegenerierung, Strukturentwurf und Fehleranalyse eingesetzt. KI schlug Architektur vor, erstellte Entwürfe und half bei Byte-Vergleichen während plattformübergreifender Tests. Endgültige Tests und Verfeinerungen erfolgten manuell auf echten Geräten.

Prozess:

Google AdInline article slot
  • Aufgabenbeschreibung – Vorschlag der Struktur.
  • Codegenerierung – lokales Testen.
  • Debugging von Diskrepanzen (Bytes, Schlüssel).
  • Testen auf Python zur Verifizierung.

KI beschleunigte die Entwicklung und ersetzte ein plattformübergreifendes Team, beseitigte aber nicht die Notwendigkeit der Hardwarevalidierung.

CI/CD ohne Mac: GitHub Actions für iOS

iOS-Builds erfolgen auf einem virtuellen macOS in GitHub Actions. Die Pipeline verwendet XcodeGen, um das Projekt aus YAML zu generieren, und vermeidet die Speicherung von .xcodeproj im Repository. Automatische Signierung und Upload zu App Store Connect.

Pipeline-Phasen:

Google AdInline article slot
  • Repository-Klonen.
  • Xcode-Projektgenerierung.
  • Build und Archivierung.
  • Upload zu TestFlight (15 Minuten ab Commit).

Android wird lokal über Gradle (APK/AAB) gebaut. Dies ermöglicht plattformübergreifende Entwicklung auf Windows.

Plattformübergreifende Probleme und Lösungen

Die Sicherstellung identischer Entschlüsselung zwischen Plattformen offenbarte Schlüsseldiskordanzen.

UTF-8 in der Schlüsselableitung

Java PBEKeySpec konvertiert Passwörter über char[], iOS über UTF-8-Bytes. Lösung: benutzerdefiniertes PBKDF2 auf Android mit passphrase.toByteArray(Charsets.UTF_8).

Visuell identische Zeichen

Passwort "a" (kyrillisch U+D0B0) auf iPhone vs. lateinisch "a" (U+0061) auf Android. Tests mit einem Python-Skript bestätigten Unterschiede in den Schlüsseln.

KDF-Auswahl

Argon2id auf Android kollidierte mit CI/CD (Abhängigkeitsprobleme). Wechsel zu PBKDF2 sicherte Vereinheitlichung.

Veröffentlichung: Lektionen aus App Store und RuStore

App Store: zwei Ablehnungen aufgrund von Erwähnungen von Messengern in Metadaten, generierten Screenshots und unvollständigen Lokalisierungen. Anforderungen: echte Screenshots, saubere Beschreibungen, vollständige Lokalisierungen, Support-URL mit Kontakten.

RuStore: Screenshots strikt 9:16, Erhöhung von versionCode.

Wichtige Punkte

  • Offline-Betrieb: keine Netzwerkanfragen, Daten verlassen das Gerät nicht.
  • Kompatibilität: verschlüsselt auf Android – entschlüsselt auf iOS/Windows.
  • Robustheit: AES-256-GCM + PBKDF2 (600k Iterationen) gegen Brute-Force.
  • Einfachheit: Kopieren/Einfügen über jeden Transport.
  • Offenheit: potenzielle Open Source für Audit.

Nutzung in Projekten

Integration in bestehende Apps ist möglich durch Export der Verschlüsselungslogik. Für mittlere/senior Entwickler: Implementierung von PBKDF2 mit festen Parametern für plattformübergreifende Kompatibilität. Testen auf echten Geräten, Fokus auf UTF-8-Passwortnormalisierung.

— Editorial Team

Advertisement 728x90

Weiterlesen