Sekuriteit
Bankgraad-enkripsie vir jou digitale lewe
Zero-Knowledge-argitektuur
ByteGuard is gebou op 'n Zero-Knowledge-sekuriteitsmodel. Ons sien, kry toegang tot of berg nooit jou enkripsie-sleutels nie.
- Hoofwagwoord: Jou persoonlike sleutel om die toep te ontsluit. Word nooit oorgedra nie, nooit op afstand geberg nie.
- Geheime sleutel (Secret Key): 'n 12-woord herstelfrase (BIP39) wat gegenereer word wanneer jy jou kluis skep. Gekombineer met jou hoofwagwoord vir maksimum sekuriteit.
- Plaaslike sleutelafleiding: Argon2id met 64 MB geheuekos en 3 iterasies lei die hoofsleutel plaaslik af. HKDF-SHA256 skep die sleutelhiërargie.
- Geen agterdeure nie: As jy beide jou hoofwagwoord en geheime sleutel verloor, kan ons nie jou data herwin nie. Dit is so ontwerp.
Enkripsiebesonderhede
Veelvoudige lae enkripsie beskerm elke sensitiewe data-element.
- Veldvlak-enkripsie: Elke sensitiewe veld (wagwoorde, kaartnommers, API-sleutels) word individueel geënkripteer met AES-256-GCM.
- Sleutelhiërargie: Hoofsleutel → Sleutel-enkripsie-sleutel (KEK) → Data-enkripsie-sleutel (DEK). Elke item het sy eie DEK.
- Unieke IV's: Elke enkripsie-bewerking gebruik 'n unieke inisialiseringsvektor, wat verseker dat identiese gewone teks verskillende syferteks produseer.
Data-berging
Jou data bly op jou toestel. Wolksinchronisasie is opsioneel en altyd geënkripteer.
- Plaaslik eerste: Alle data word geberg in 'n geënkripteerde plaaslike databasis op jou toestel.
- Opsionele iCloud-sinchronisasie: Wanneer geaktiveer, word data op die toestel geënkripteer voor dit via CloudKit na jou privaat iCloud-houer opgelaai word.
- Biometriese beskerming: Face ID en Touch ID via Secure Enclave. Biometriese data word deur iOS hanteer, nooit deur die toep benader nie.
Wat ons nie kan doen nie
Ons Zero-Knowledge-argitektuur beteken:
- Ons kan nie jou gebergde data sien, toegang kry of dekripteer nie
- Ons kan nie jou hoofwagwoord herstel nie
- Ons kan nie jou kluis herwin sonder jou geheime sleutel nie
- Ons kan nie jou data met enigiemand deel nie — insluitend wetstoepassers
- Ons kan nie agterdeure in die enkripsie plaas nie
Toestelsekerheid-versoenbaarheid
ByteGuard is ontwerp om naatloos saam te werk met Apple se ingeboude sekuriteitskenmerke.
- Apple Lockdown Mode: Ten volle versoenbaar met Apple se hoogste sekuriteitsvlak. Alle kenmerke — insluitend AutoFill, iCloud-sinkronisasie en legstukke — werk normaal wanneer Slotmodus geaktiveer is.
- Geen WebView-afhanklikheid: ByteGuard gebruik geen webweergawe-enjin nie. U kluisdata word nooit deur WebKit verwerk nie, wat 'n hele klas blaaier-gebaseerde aanvalsvektore uitskakel.
- Secure Enclave-integrasie: Biometriese verifikasie word geheel en al deur iOS Secure Enclave hanteer. ByteGuard kry nooit toegang tot biometriese data nie en stoor dit ook nooit nie.
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.
Laai af op App Store