Bezpečnost

Šifrování bankovní úrovně pro váš digitální život

Architektura Zero-Knowledge

ByteGuard je postaven na bezpečnostním modelu Zero-Knowledge. Nikdy nevidíme, nepřistupujeme ani neukládáme vaše šifrovací klíče.

  • Hlavní heslo: Váš osobní klíč k odemknutí aplikace. Nikdy se nepřenáší, nikdy se neukládá vzdáleně.
  • Tajný klíč (Secret Key): 12slovná obnovovací fráze (BIP39) vygenerovaná při vytvoření trezoru. V kombinaci s hlavním heslem pro maximální bezpečnost.
  • Místní odvozování klíčů: Argon2id s náklady na paměť 64 MB a 3 iteracemi odvozuje hlavní klíč místně. HKDF-SHA256 vytváří hierarchii klíčů.
  • Žádná zadní vrátka: Pokud ztratíte hlavní heslo i tajný klíč, nemůžeme vaše data obnovit. Je to záměrné.

Detaily šifrování

Více vrstev šifrování chrání každý citlivý údaj.

  • Šifrování na úrovni polí: Každé citlivé pole (hesla, čísla karet, API klíče) je individuálně šifrováno AES-256-GCM.
  • Hierarchie klíčů: Hlavní klíč → Klíč pro šifrování klíčů (KEK) → Klíč pro šifrování dat (DEK). Každá položka má vlastní DEK.
  • Unikátní IV: Každá šifrovací operace používá unikátní inicializační vektor, což zajišťuje, že stejný otevřený text vytvoří odlišný šifrový text.

Ukládání dat

Vaše data zůstávají na vašem zařízení. Synchronizace v cloudu je volitelná a vždy šifrovaná.

  • Místní úložiště: Všechna data jsou uložena v šifrované místní databázi na vašem zařízení.
  • Volitelná synchronizace iCloud: Při aktivaci se data šifrují na zařízení před nahráním do vašeho soukromého kontejneru iCloud přes CloudKit.
  • Biometrická ochrana: Face ID a Touch ID prostřednictvím Secure Enclave. Biometrická data zpracovává iOS, aplikace k nim nemá přístup.

Co nemůžeme udělat

Naše architektura Zero-Knowledge znamená:

  • Nemůžeme zobrazit, přistupovat ani dešifrovat vaše uložená data
  • Nemůžeme resetovat vaše hlavní heslo
  • Nemůžeme obnovit váš trezor bez vašeho tajného klíče
  • Nemůžeme sdílet vaše data s nikým — včetně orgánů činných v trestním řízení
  • Nemůžeme vložit zadní vrátka do šifrování

Kompatibilita se zabezpečením zařízení

ByteGuard je navržen pro bezproblémovou spolupráci s vestavěnými bezpečnostními funkcemi Apple.

  • Apple Lockdown Mode: Plně kompatibilní s nejvyšší úrovní ochrany Apple. Všechny funkce — včetně AutoFill, synchronizace iCloud a widgetů — fungují normálně při aktivovaném režimu uzamčení.
  • Žádná závislost na WebView: ByteGuard nepoužívá žádný webový vykreslovací engine. Data vašeho trezoru nejsou nikdy zpracovávána přes WebKit, čímž se eliminuje celá třída útočných vektorů založených na prohlížeči.
  • Integrace Secure Enclave: Biometrická autentizace je zcela zpracovávána Secure Enclave v iOS. ByteGuard nikdy nepřistupuje k biometrickým datům ani je neukládá.

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.
Stáhnout z App Store