Bezpieczeństwo

Szyfrowanie klasy bankowej dla Twojego cyfrowego życia

Architektura Zero-Knowledge

ByteGuard jest zbudowany na modelu bezpieczeństwa Zero-Knowledge. Nigdy nie widzimy, nie uzyskujemy dostępu ani nie przechowujemy Twoich kluczy szyfrowania.

  • Hasło główne: Twój osobisty klucz do odblokowania aplikacji. Nigdy nie przesyłane, nigdy nie przechowywane zdalnie.
  • Klucz tajny (Secret Key): 12-wyrazowa fraza odzyskiwania (BIP39) generowana przy tworzeniu sejfu. W połączeniu z hasłem głównym zapewnia maksymalne bezpieczeństwo.
  • Lokalne wyprowadzanie kluczy: Argon2id z kosztem pamięci 64 MB i 3 iteracjami wyprowadza klucz główny lokalnie. HKDF-SHA256 tworzy hierarchię kluczy.
  • Brak tylnych drzwi: Jeśli stracisz zarówno hasło główne, jak i klucz tajny, nie możemy odzyskać Twoich danych. Tak zostało zaprojektowane.

Szczegóły szyfrowania

Wiele warstw szyfrowania chroni każde wrażliwe dane.

  • Szyfrowanie na poziomie pola: Każde wrażliwe pole (hasła, numery kart, klucze API) jest indywidualnie szyfrowane AES-256-GCM.
  • Hierarchia kluczy: Klucz główny → Klucz szyfrowania kluczy (KEK) → Klucz szyfrowania danych (DEK). Każdy element ma własny DEK.
  • Unikalne IV: Każda operacja szyfrowania używa unikalnego wektora inicjalizacji, zapewniając, że ten sam tekst jawny generuje różny tekst zaszyfrowany.

Przechowywanie danych

Twoje dane pozostają na Twoim urządzeniu. Synchronizacja w chmurze jest opcjonalna i zawsze zaszyfrowana.

  • Najpierw lokalnie: Wszystkie dane są przechowywane w zaszyfrowanej lokalnej bazie danych na Twoim urządzeniu.
  • Opcjonalna synchronizacja iCloud: Po włączeniu dane są szyfrowane na urządzeniu przed przesłaniem do prywatnego kontenera iCloud przez CloudKit.
  • Ochrona biometryczna: Face ID i Touch ID przez Secure Enclave. Dane biometryczne są obsługiwane przez iOS, nigdy nie są dostępne dla aplikacji.

Czego nie możemy zrobić

Nasza architektura Zero-Knowledge oznacza:

  • Nie możemy przeglądać, uzyskiwać dostępu ani odszyfrowywać przechowywanych danych
  • Nie możemy zresetować Twojego hasła głównego
  • Nie możemy odzyskać sejfu bez Twojego klucza tajnego
  • Nie możemy udostępniać Twoich danych nikomu — włącznie z organami ścigania
  • Nie możemy wstawiać tylnych drzwi do szyfrowania

Zgodność z zabezpieczeniami urządzenia

ByteGuard jest zaprojektowany do bezproblemowej współpracy z wbudowanymi funkcjami bezpieczeństwa Apple.

  • Apple Lockdown Mode: W pełni kompatybilny z najwyższym poziomem ochrony Apple. Wszystkie funkcje — w tym AutoFill, synchronizacja iCloud i widgety — działają normalnie po włączeniu trybu blokady.
  • Brak zależności od WebView: ByteGuard nie używa żadnego silnika renderowania stron internetowych. Dane Twojego sejfu nigdy nie są przetwarzane przez WebKit, co eliminuje całą klasę wektorów ataku opartych na przeglądarce.
  • Integracja z Secure Enclave: Uwierzytelnianie biometryczne jest w całości obsługiwane przez Secure Enclave w iOS. ByteGuard nigdy nie uzyskuje dostępu do danych biometrycznych ani ich nie przechowuje.

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.
Pobierz z App Store