Безопасность
Шифрование банковского уровня для вашей цифровой жизни
Архитектура 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