Sikkerhed
Kryptering på bankniveau til dit digitale liv
Zero-Knowledge-arkitektur
ByteGuard er bygget på en Zero-Knowledge-sikkerhedsmodel. Vi ser, tilgår eller gemmer aldrig dine krypteringsnøgler.
- Hovedadgangskode: Din personlige nøgle til at låse appen op. Overføres aldrig, gemmes aldrig eksternt.
- Hemmelig nøgle (Secret Key): En 12-ords gendannelsesfrase (BIP39) genereret, når du opretter dit boks. Kombineret med din hovedadgangskode for maksimal sikkerhed.
- Lokal nøgleafledning: Argon2id med 64 MB hukommelsesomkostninger og 3 iterationer afleder hovednøglen lokalt. HKDF-SHA256 opretter nøglehierarkiet.
- Ingen bagdøre: Hvis du mister både din hovedadgangskode og hemmelige nøgle, kan vi ikke gendanne dine data. Det er bevidst.
Krypteringsdetaljer
Flere lag af kryptering beskytter hvert følsomt dataelement.
- Feltniveau-kryptering: Hvert følsomt felt (adgangskoder, kortnumre, API-nøgler) er individuelt krypteret med AES-256-GCM.
- Nøglehierarki: Hovednøgle → Nøglekrypteringsnøgle (KEK) → Datakrypteringsnøgle (DEK). Hvert element har sin egen DEK.
- Unikke IV'er: Hver krypteringsoperation bruger en unik initialiseringsvektor, der sikrer, at identisk klartekst producerer forskellig kryptotekst.
Datalagring
Dine data forbliver på din enhed. Cloudsynkronisering er valgfri og altid krypteret.
- Lokalt først: Alle data gemmes i en krypteret lokal database på din enhed.
- Valgfri iCloud-synkronisering: Når aktiveret, krypteres data på enheden, før de uploades til din private iCloud-container via CloudKit.
- Biometrisk beskyttelse: Face ID og Touch ID via Secure Enclave. Biometriske data håndteres af iOS, tilgås aldrig af appen.
Hvad vi ikke kan gøre
Vores Zero-Knowledge-arkitektur betyder:
- Vi kan ikke se, tilgå eller dekryptere dine gemte data
- Vi kan ikke nulstille din hovedadgangskode
- Vi kan ikke gendanne dit boks uden din hemmelige nøgle
- Vi kan ikke dele dine data med nogen — heller ikke retshåndhævelse
- Vi kan ikke indsætte bagdøre i krypteringen
Enhedssikkerhedskompatibilitet
ByteGuard er designet til at fungere problemfrit med Apples indbyggede sikkerhedsfunktioner.
- Apple Lockdown Mode: Fuldt kompatibel med Apples højeste sikkerhedsbeskyttelse. Alle funktioner — inklusive AutoFill, iCloud-synkronisering og widgets — fungerer normalt, når låsetilstand er aktiveret.
- Ingen WebView-afhængighed: ByteGuard bruger ingen web-renderingsmotor. Dine boksdata behandles aldrig via WebKit, hvilket eliminerer en hel klasse af browserbaserede angrebsvektorer.
- Secure Enclave-integration: Biometrisk godkendelse håndteres udelukkende af iOS Secure Enclave. ByteGuard tilgår eller gemmer aldrig 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.
Download i App Store