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: Juni 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 + RSA-LegacyNeinNeinNeinJaNein
S/MIME nativJaJaNeinNeinJaJa
DKIM im Client selbst geprüftJa RFC 6376/8463NeinNeinNeinAdd-on nicht im KernNein
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.

Die DKIM-Zeile meint eigenständige clientseitige Verifikation (Neuberechnung von Body-Hash und Signatur), nicht das bloße Anzeigen des serverseitigen Authentication-Results-Headers. Stand 06/2026.

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 erzeugen, Legacy eingehegt

Zwei-Teil-Doktrin. Erzeugen: Ed25519 (Signatur), X25519 (KEX), AES-256 in OCB-Mode, SHA-256/512, HKDF-SHA-256 (RFC 9580). Lesen und an Bestands-Empfänger schreiben: zusätzlich RSA (Security.framework, konstante Laufzeit), ECDH und SEIPD-v1 (AES-CFB mit Pflicht-MDC) — ohne gültigen MDC hart abgelehnt (EFAIL). Dauerhaft abgewiesen bleiben CAST5, IDEA, Blowfish, 3DES, MD5- und SHA-1-Signaturen sowie SED ohne Integritätsschutz. Byte-genau gegen echtes GnuPG geprüft.

S/MIME

Über die CMS-API von Security.framework: signieren, verschlüsseln und entschlüsseln (SignedData/EnvelopedData). .p12-Identität und Empfänger-Zertifikate (.cer/.pem/.der) lassen sich importieren, Zertifikate kommen aus der System-Keychain, Trust-Validierung via SecTrust. Gegen openssl-signierte Fixtures geprüft. macOS-only; iOS bewusst fail-closed. Der 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@datargo.com. Wir bestätigen innerhalb von 72 Stunden. Fixes werden mit Credit veröffentlicht, sobald sie ausgeliefert sind. PGP-Schlüssel auf Anfrage.

security@datargo.com