Seguridad
Cifrado de grado bancario para tu vida digital
Arquitectura Zero-Knowledge
ByteGuard está construido sobre un modelo de seguridad Zero-Knowledge. Nunca vemos, accedemos ni almacenamos tus claves de cifrado.
- Contraseña maestra: Tu clave personal para desbloquear la app. Nunca se transmite, nunca se almacena de forma remota.
- Clave secreta (Secret Key): Una frase de recuperación de 12 palabras (BIP39) generada al crear tu bóveda. Combinada con tu contraseña maestra para máxima seguridad.
- Derivación de claves local: Argon2id con coste de memoria de 64 MB y 3 iteraciones deriva la clave maestra localmente. HKDF-SHA256 crea la jerarquía de claves.
- Sin puertas traseras: Si pierdes tanto tu contraseña maestra como tu clave secreta, no podemos recuperar tus datos. Esto es por diseño.
Detalles del cifrado
Múltiples capas de cifrado protegen cada dato sensible.
- Cifrado a nivel de campo: Cada campo sensible (contraseñas, números de tarjeta, claves API) se cifra individualmente con AES-256-GCM.
- Jerarquía de claves: Clave maestra → Clave de cifrado de claves (KEK) → Clave de cifrado de datos (DEK). Cada elemento tiene su propia DEK.
- IVs únicos: Cada operación de cifrado utiliza un vector de inicialización único, asegurando que el mismo texto plano produce diferente texto cifrado.
Almacenamiento de datos
Tus datos permanecen en tu dispositivo. La sincronización en la nube es opcional y siempre está cifrada.
- Local primero: Todos los datos se almacenan en una base de datos local cifrada en tu dispositivo.
- Sincronización iCloud opcional: Al activarla, los datos se cifran en el dispositivo antes de subirlos a tu contenedor privado de iCloud a través de CloudKit.
- Protección biométrica: Face ID y Touch ID a través de Secure Enclave. Los datos biométricos los gestiona iOS, la app nunca accede a ellos.
Lo que no podemos hacer
Nuestra arquitectura Zero-Knowledge significa:
- No podemos ver, acceder ni descifrar tus datos almacenados
- No podemos restablecer tu contraseña maestra
- No podemos recuperar tu bóveda sin tu clave secreta
- No podemos compartir tus datos con nadie, incluidas las fuerzas del orden
- No podemos insertar puertas traseras en el cifrado
Compatibilidad de seguridad del dispositivo
ByteGuard está diseñado para funcionar perfectamente con las funciones de seguridad integradas de Apple.
- Apple Lockdown Mode: Totalmente compatible con la protección de seguridad más alta de Apple. Todas las funciones, incluidas AutoFill, sincronización de iCloud y widgets, funcionan normalmente cuando el modo de aislamiento está activado.
- Sin dependencia de WebView: ByteGuard no utiliza ningún motor de renderizado web. Los datos de su bóveda nunca se procesan a través de WebKit, eliminando toda una clase de vectores de ataque basados en el navegador.
- Integración con Secure Enclave: La autenticación biométrica es gestionada completamente por el Secure Enclave de iOS. ByteGuard nunca accede ni almacena datos biométricos.
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.
Descargar en App Store