Säkerhet

Kryptering på banknivå för ditt digitala liv

Zero-Knowledge-arkitektur

ByteGuard är byggt på en Zero-Knowledge-säkerhetsmodell. Vi ser, får åtkomst till eller lagrar aldrig dina krypteringsnycklar.

  • Huvudlösenord: Din personliga nyckel för att låsa upp appen. Överförs aldrig, lagras aldrig externt.
  • Hemlig nyckel (Secret Key): En 12-ords återställningsfras (BIP39) som genereras när du skapar ditt valv. Kombineras med huvudlösenordet för maximal säkerhet.
  • Lokal nyckelhärledning: Argon2id med 64 MB minneskostnad och 3 iterationer härleder huvudnyckeln lokalt. HKDF-SHA256 skapar nyckelhierarkin.
  • Inga bakdörrar: Om du förlorar både huvudlösenord och hemlig nyckel kan vi inte återställa dina data. Det är avsiktligt.

Krypteringsdetaljer

Flera lager av kryptering skyddar varje känsligt dataelement.

  • Fältnivåkryptering: Varje känsligt fält (lösenord, kortnummer, API-nycklar) krypteras individuellt med AES-256-GCM.
  • Nyckelhierarki: Huvudnyckel → Nyckelkrypteringsnyckel (KEK) → Datakrypteringsnyckel (DEK). Varje objekt har sin egen DEK.
  • Unika IV:er: Varje krypteringsoperation använder en unik initialiseringsvektor, vilket säkerställer att identisk klartext producerar olika kryptotext.

Datalagring

Dina data förblir på din enhet. Molnsynkronisering är valfri och alltid krypterad.

  • Lokalt först: All data lagras i en krypterad lokal databas på din enhet.
  • Valfri iCloud-synkronisering: När aktiverad krypteras data på enheten innan de laddas upp till din privata iCloud-container via CloudKit.
  • Biometriskt skydd: Face ID och Touch ID via Secure Enclave. Biometriska data hanteras av iOS, appen har aldrig åtkomst.

Vad vi inte kan göra

Vår Zero-Knowledge-arkitektur innebär:

  • Vi kan inte se, få åtkomst till eller dekryptera dina lagrade data
  • Vi kan inte återställa ditt huvudlösenord
  • Vi kan inte återställa ditt valv utan din hemliga nyckel
  • Vi kan inte dela dina data med någon — inklusive rättsvårdande myndigheter
  • Vi kan inte infoga bakdörrar i krypteringen

Kompatibilitet med enhetssäkerhet

ByteGuard är utformat för att fungera sömlöst med Apples inbyggda säkerhetsfunktioner.

  • Apple Lockdown Mode: Fullt kompatibelt med Apples högsta säkerhetsskydd. Alla funktioner — inklusive AutoFill, iCloud-synkronisering och widgetar — fungerar normalt när låsningsläget är aktiverat.
  • Inget WebView-beroende: ByteGuard använder ingen webbåtergivningsmotor. Dina valvdata bearbetas aldrig genom WebKit, vilket eliminerar en hel klass av webbläsarbaserade attackvektorer.
  • Secure Enclave-integration: Biometrisk autentisering hanteras helt av iOS Secure Enclave. ByteGuard kommer aldrig åt eller lagrar biometriska data.

Device-Level Protection

The biometric quick-unlock boundary is maintained jointly by iOS Keychain and Secure Enclave. The application never holds any Face ID/Touch ID-derived key.

  • iOS Keychain ACL: A copy of the Vault DEK is stored in Keychain with kSecAttrAccessibleWhenUnlockedThisDeviceOnly + kSecAccessControlBiometryCurrentSet. Unreadable when the device is locked or Face ID has not authenticated.
  • Secure Enclave Takes Over: The Keychain entry is encrypted by a device key inside Secure Enclave. When the app calls SecItemCopyMatching, iOS triggers Face ID; on success SE decrypts and returns the plaintext DEK — the app never touches any SE key.
  • Auto-Invalidation on Face ID Re-enrollment: biometryCurrentSet semantics: when the user removes/re-enrolls Face ID in system settings, iOS automatically deletes the Keychain entry. ByteGuard detects the invalidation at launch and forces Master Password re-entry.
  • Strict Mode (No Fallback): If biometryCurrentSet is unavailable (simulators, no enrolled biometrics), the DEK cache simply fails — never falls back to a less-protected Keychain entry. Fallback would be weaker than not enabling Face ID at all and would violate user intent.
  • Memory Zeroing (Vault DEK): On lock, suspension, or vault switch, the Vault DEK is overwritten three times (zero → random → zero) with a memory barrier defeating compiler optimization. Master Key / KEK are local variables inside the unlock function, released by Swift ARC (not explicitly zeroed). Argon2 internal buffers are zeroed by libsodium via sodium_memzero.
Ladda ner från App Store