Im Vergleich
Wir vergleichen FOLD nur auf objektiv prüfbaren Eigenschaften und verlinken die Quelle pro Spalte. Stand: Mai 2026. Wenn ein Anbieter etwas ändert, ändert sich diese Tabelle.
| Eigenschaft | FOLD | Apple Mail | Mimestream | Spark | Thunderbird | Outlook (neu) |
|---|---|---|---|---|---|---|
| Kein zusätzliches Cloud-Backend | Ja | Ja | Ja direkt zu Gmail | Nein Readdle-Cloud | Ja | Nein MS-Cloud |
| App Sandbox aktiv | Ja | Ja | Ja | Ja | Eingeschränkt Standard-Install nicht sandboxed | Ja |
| OpenPGP nativ | Ja RFC 9580 Modern-Subset | Nein | Nein | Nein | Ja | Nein |
| S/MIME nativ | Ja | Ja | Nein | Nein | Ja | Ja |
| Beliebiger IMAP-Anbieter | Ja | Ja | Nein nur Gmail | Ja | Ja | Eingeschränkt über MS-Cloud erzwungen |
| Open Source | Nein | Nein | Nein | Nein | Ja MPL 2.0 | Nein |
Quellen: Apple Platform Security · Mimestream Supported Accounts · Spark Privacy Explained · Thunderbird · New Outlook Cloud-Sync (Cybernews, 2023).
Geschwindigkeitsvergleich auf der Startseite ist bewusst anonym gehalten und nimmt keine konkreten Konkurrenten in Bezug, solange wir keine reproduzierbaren Benchmarks veröffentlichen.
Dependency-Policy
Eine Fremdabhängigkeit wird nur dann akzeptiert, wenn alle vier Kriterien erfüllt sind: sie liefert eine Primitive, die wir nicht selbst korrekt bauen können · sie stammt aus vertrauenswürdiger Quelle (Apple, Swift Server Work Group, auditierte Quellen) · sie ist auditierbar (Source lesbar, Umfang überschaubar) · sie ist explizit in der Tabelle gelistet.
Im MVP sind ausschließlich Apple-System-Frameworks zugelassen.
| Erlaubt | |
|---|---|
Foundation | Apple SDK. |
Network | Apple SDK · TLS via NWProtocolTLS. |
CryptoKit | Ed25519, X25519, AES-GCM, ChaCha20-Poly1305, SHA-2, HKDF. |
Security | S/MIME (CMS) und Keychain. |
AuthenticationServices | ASWebAuthenticationSession für OAuth. |
SQLite3 | System-SQLite über dünnen Swift-Wrapper. Kein GRDB, kein SQLite.swift. |
os.Logger | Apple SDK. |
| Ausgeschlossen | |
|---|---|
swift-crypto | Cross-Platform-Doppelpaar zu CryptoKit, nicht nötig auf Apple-only. |
libetpan, MailCore | C-Wrapper, wir wollen auditierbaren Swift-Code. |
| OpenPGP-Libraries | Eigene Modern-Only-Implementierung statt großer Legacy-Surface. |
SwiftData / CoreData | Reichen nicht für 500k+ Mails, direkt auf SQLite. |
| Dritt-JSON/Logging/Net | Foundation und os sind genug. |
Krypto-Strategie
Primitive ausschließlich aus CryptoKit und Security.framework. Kein Eigenbau auf Primitiv-Ebene. Konstante Laufzeit bei Vergleichen (compare aus CryptoKit, niemals == auf Data). Zero-on-free für sensible Buffer.
OpenPGP: Modern-Only-Subset
Wir implementieren RFC 9580 bewusst klein. Ed25519 (Signatur), X25519 (KEX), AES-256 in OCB-Mode, SHA-256/512, HKDF-SHA-256. Kein RSA, DSA, ElGamal, CAST5, IDEA, Blowfish, 3DES, MD5, SHA-1. Begründung: die meisten OpenPGP-CVEs der letzten 20 Jahre kamen aus genau diesen Legacy-Pfaden.
S/MIME
Über Security.framework (CMS-API). Zertifikate aus System-Keychain. Trust-Validierung via SecTrust. Trust-Status erscheint als dezenter Mikro-Indikator, nicht als knalliges Banner.
TLS-Defaults
Strikte Zertifikats-Validierung. Min TLS 1.2, bevorzugt 1.3. STARTTLS: wir verbinden plaintext, fordern STARTTLS und brechen ab, wenn der Server nicht hochstuft, kein implizites Downgrade. Cipher-Suites über ATS-Defaults. Cert-Pinning standardmäßig aus (verhindert legitime CA-Wechsel), optional als Power-User-Feature pro Account.
Authentifizierung
Passwörter und OAuth-Tokens ausschließlich im Keychain mit kSecAttrAccessibleWhenUnlockedThisDeviceOnly. Nie in UserDefaults oder Plist. OAuth-Flows via ASWebAuthenticationSession, Tokens landen über den System-Browser zurück. PKCE Pflicht. Kein Client-Secret im Binary.
Logging-Policy
Hartes Verbot von PII, Mail-Inhalten, Subjects, Adressen, Tokens und Cookies in Logs, auch in Debug-Builds. Erlaubt: Verbindungsereignisse (Host, Port, TLS-Version, Latenz), Protokoll-State, Error-Categories, anonyme Counter. Der Raw-Command-Trace für den Header-Inspektor lebt nur im RAM-Ring-Buffer und wird nie auf Disk persistiert.
Sandbox & Hardened Runtime
macOS: App Sandbox aktiviert. Entitlements minimal, network.client, files.user-selected.read-write, keychain. Kein disable-library-validation. iOS: Sandbox by default, App Groups nur wenn nötig. Hardened Runtime aktiviert. Distribution mit Developer ID (macOS) bzw. App Store (iOS).
Fortress-Mode
Opt-in pro Account für Application-Level Encryption. Argon2id aus User-Passphrase + 32-Byte-Salt im Keychain (m=64 MiB, t=3, p=4) → 256-bit Master-Key nur im RAM. Pro-Account-Key über HKDF-SHA-256. AES-256-GCM für HotIndex-Textfelder, HeaderStore-TEXT-Felder und Body-Cache. Auto-Lock wischt Master-Key bei Inaktivität, Screen-Lock oder App-Hintergrund. Erwartete Overheads: +50 ms Cold-Start, +30 % Cold-Body-Read. Mit unseren Performance-Targets kompatibel.
Was Fortress nicht ist
Kein Ersatz für OpenPGP/S-MIME (das ist End-to-End über den Wire, Fortress schützt nur die lokale Kopie). Keine Magie gegen kompromittierten Kernel oder OS. Kein anonymisierender Modus, IMAP-Metadaten verraten weiterhin, mit wem du kommunizierst.
Threat-Model
Wir mappen unsere Verteidigungen explizit gegen MITRE ATT&CK (offensive Techniken) und MITRE D3FEND (defensive Counter-Mappings). Spear-Phishing-Anhänge, MIME-Bomben, Polyglot-Files, Cred-Dumping, MITM mit TLS-Stripping, HTML-Exfiltration im Stil EFAIL, für jede Technik ist die FOLD-Mitigation und der zugehörige Test benannt.
Test-Strategie
Strict Concurrency, ExistentialAny, warnings-as-errors im CI. Address-, Thread- und Undefined-Behavior-Sanitizer auf jedem Pull-Request. Eine CVE-Test-Suite gegen historische Mail-Client-CVEs (EFAIL, BadWinmail, iOS-Mail-Heap-Overflows). Fuzzing für MIMEParser, EncodedWord, AddressParser, HeaderBlockParser mit libFuzzer auf 100k+ Mails.
Coordinated Disclosure
Schwachstelle gefunden? Schreib uns an security@foldmail.de. Wir bestätigen innerhalb von 72 Stunden. Fixes werden mit Credit veröffentlicht, sobald sie ausgeliefert sind. PGP-Schlüssel auf Anfrage.