FOLD
Sicherheits-Dossier

Sicherheit, von innen nach außen.

Diese Seite ist die destillierte Lesefassung unserer internen Sicherheits-Dokumente. Sie ist nicht Marketing, sondern Architektur-Spezifikation.

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.

EigenschaftFOLDApple MailMimestreamSparkThunderbirdOutlook (neu)
Kein zusätzliches Cloud-BackendJaJaJa direkt zu GmailNein Readdle-CloudJaNein MS-Cloud
App Sandbox aktivJaJaJaJaEingeschränkt Standard-Install nicht sandboxedJa
OpenPGP nativJa RFC 9580 Modern-SubsetNeinNeinNeinJaNein
S/MIME nativJaJaNeinNeinJaJa
Beliebiger IMAP-AnbieterJaJaNein nur GmailJaJaEingeschränkt über MS-Cloud erzwungen
Open SourceNeinNeinNeinNeinJa MPL 2.0Nein

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
FoundationApple SDK.
NetworkApple SDK · TLS via NWProtocolTLS.
CryptoKitEd25519, X25519, AES-GCM, ChaCha20-Poly1305, SHA-2, HKDF.
SecurityS/MIME (CMS) und Keychain.
AuthenticationServicesASWebAuthenticationSession für OAuth.
SQLite3System-SQLite über dünnen Swift-Wrapper. Kein GRDB, kein SQLite.swift.
os.LoggerApple SDK.
Ausgeschlossen
swift-cryptoCross-Platform-Doppelpaar zu CryptoKit, nicht nötig auf Apple-only.
libetpan, MailCoreC-Wrapper, wir wollen auditierbaren Swift-Code.
OpenPGP-LibrariesEigene Modern-Only-Implementierung statt großer Legacy-Surface.
SwiftData / CoreDataReichen nicht für 500k+ Mails, direkt auf SQLite.
Dritt-JSON/Logging/NetFoundation 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.

security@foldmail.de