Sikkerhet
Kryptering på banknivå for ditt digitale liv
Zero-Knowledge-arkitektur
ByteGuard er bygget på en Zero-Knowledge-sikkerhetsmodell. Vi ser, får tilgang til eller lagrer aldri krypteringsnøklene dine.
- Hovedpassord: Din personlige nøkkel for å låse opp appen. Overføres aldri, lagres aldri eksternt.
- Hemmelig nøkkel (Secret Key): En 12-ords gjenopprettingsfrase (BIP39) generert når du oppretter hvelvet ditt. Kombinert med hovedpassordet for maksimal sikkerhet.
- Lokal nøkkelavledning: Argon2id med 64 MB minnekostnad og 3 iterasjoner avleder hovednøkkelen lokalt. HKDF-SHA256 oppretter nøkkelhierarkiet.
- Ingen bakdører: Hvis du mister både hovedpassordet og den hemmelige nøkkelen, kan vi ikke gjenopprette dataene dine. Dette er med hensikt.
Krypteringsdetaljer
Flere lag med kryptering beskytter hvert sensitivt dataelement.
- Feltnivå-kryptering: Hvert sensitivt felt (passord, kortnumre, API-nøkler) er individuelt kryptert med AES-256-GCM.
- Nøkkelhierarki: Hovednøkkel → Nøkkelkrypteringsnøkkel (KEK) → Datakrypteringsnøkkel (DEK). Hvert element har sin egen DEK.
- Unike IV-er: Hver krypteringsoperasjon bruker en unik initialiseringsvektor, som sikrer at identisk klartekst produserer forskjellig kryptotekst.
Datalagring
Dataene dine forblir på enheten din. Skysynkronisering er valgfri og alltid kryptert.
- Lokalt først: Alle data lagres i en kryptert lokal database på enheten din.
- Valgfri iCloud-synkronisering: Når aktivert, krypteres data på enheten før opplasting til din private iCloud-container via CloudKit.
- Biometrisk beskyttelse: Face ID og Touch ID via Secure Enclave. Biometriske data håndteres av iOS, appen har aldri tilgang.
Hva vi ikke kan gjøre
Vår Zero-Knowledge-arkitektur betyr:
- Vi kan ikke se, få tilgang til eller dekryptere lagrede data
- Vi kan ikke tilbakestille hovedpassordet ditt
- Vi kan ikke gjenopprette hvelvet uten den hemmelige nøkkelen
- Vi kan ikke dele dataene dine med noen — inkludert rettshåndhevelse
- Vi kan ikke sette inn bakdører i krypteringen
Kompatibilitet med enhetssikkerhet
ByteGuard er designet for å fungere sømløst med Apples innebygde sikkerhetsfunksjoner.
- Apple Lockdown Mode: Fullt kompatibel med Apples høyeste sikkerhetsbeskyttelse. Alle funksjoner — inkludert AutoFill, iCloud-synkronisering og widgeter — fungerer normalt når sperremodus er aktivert.
- Ingen WebView-avhengighet: ByteGuard bruker ingen nettlesergjengivelsesmotor. Hvelvdataene dine behandles aldri via WebKit, noe som eliminerer en hel klasse nettleserbaserte angrepsvektorer.
- Secure Enclave-integrasjon: Biometrisk autentisering håndteres utelukkende av iOS Secure Enclave. ByteGuard får aldri tilgang til eller lagrer biometriske 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.
Last ned fra App Store