Безпека

Шифрування банківського рівня для вашого цифрового життя

Архітектура Zero-Knowledge

ByteGuard побудований на моделі безпеки Zero-Knowledge. Ми ніколи не бачимо, не отримуємо доступ і не зберігаємо ваші ключі шифрування.

  • Головний пароль: Ваш особистий ключ для розблокування додатку. Ніколи не передається, ніколи не зберігається віддалено.
  • Секретний ключ (Secret Key): Фраза відновлення з 12 слів (BIP39), згенерована при створенні сховища. У поєднанні з головним паролем для максимальної безпеки.
  • Локальне формування ключів: Argon2id з витратами пам'яті 64 МБ і 3 ітераціями формує майстер-ключ локально. HKDF-SHA256 створює ієрархію ключів.
  • Без бекдорів: Якщо ви втратите і головний пароль, і секретний ключ, ми не зможемо відновити ваші дані. Це зроблено навмисно.

Деталі шифрування

Кілька рівнів шифрування захищають кожен конфіденційний елемент даних.

  • Шифрування на рівні полів: Кожне конфіденційне поле (паролі, номери карток, API-ключі) шифрується окремо за допомогою AES-256-GCM.
  • Ієрархія ключів: Майстер-ключ → Ключ шифрування ключів (KEK) → Ключ шифрування даних (DEK). Кожен елемент має власний DEK.
  • Унікальні IV: Кожна операція шифрування використовує унікальний вектор ініціалізації, гарантуючи, що однаковий відкритий текст створює різний шифротекст.

Зберігання даних

Ваші дані залишаються на вашому пристрої. Хмарна синхронізація необов'язкова і завжди зашифрована.

  • Спочатку локально: Усі дані зберігаються в зашифрованій локальній базі даних на вашому пристрої.
  • Необов'язкова синхронізація iCloud: При увімкненні дані шифруються на пристрої перед завантаженням у ваш приватний контейнер iCloud через CloudKit.
  • Біометричний захист: Face ID та Touch ID через Secure Enclave. Біометричні дані обробляються iOS, додаток не має до них доступу.

Що ми не можемо зробити

Наша архітектура Zero-Knowledge означає:

  • Ми не можемо переглядати, отримувати доступ або розшифровувати ваші збережені дані
  • Ми не можемо скинути ваш головний пароль
  • Ми не можемо відновити ваше сховище без секретного ключа
  • Ми не можемо ділитися вашими даними ні з ким — включаючи правоохоронні органи
  • Ми не можемо вбудувати бекдори у шифрування

Сумісність із безпекою пристрою

ByteGuard розроблено для бездоганної роботи з вбудованими функціями безпеки Apple.

  • Apple Lockdown Mode: Повна сумісність із найвищим рівнем захисту Apple. Усі функції — включно з AutoFill, синхронізацією iCloud та віджетами — працюють нормально при увімкненому режимі блокування.
  • Без залежності від WebView: ByteGuard не використовує жодного веб-рушія. Дані вашого сховища ніколи не обробляються через WebKit, що усуває цілий клас атак через браузер.
  • Інтеграція з Secure Enclave: Біометрична автентифікація повністю обробляється Secure Enclave в iOS. ByteGuard ніколи не отримує доступ до біометричних даних і не зберігає їх.

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.
Завантажити з App Store