Cómo funciona el cifrado en against.
Una explicación en español claro del cifrado AES en el dispositivo que mantiene tus datos de against. ilegibles para cualquier persona que no seas tú.
against. cifra cada campo sensible en tu dispositivo con AES-256, usando una clave generada en el primer uso y almacenada en el enclave seguro de tu teléfono. Nada sale de tu dispositivo. Aquí te explicamos exactamente cómo funciona y qué te ofrece.
Qué significa “cifrado en el dispositivo” en la práctica
Cuando registras una nota de recaída, el texto que escribes no se envía por la red. Tampoco se escribe en texto plano en el almacenamiento de tu teléfono. Antes de guardar la fila en la base de datos, el texto pasa por AES (el Estándar de Cifrado Avanzado, un algoritmo que lleva más de veinte años siendo el referente mundial) usando una clave de 256 bits. El resultado es ilegible para cualquiera que no tenga esa clave.
La clave se genera la primera vez que abres la app. Son 32 bytes aleatorios, obtenidos del generador de números aleatorios criptográfico de tu teléfono (el mismo que protege la app de tu banco y tus mensajes). La clave se guarda en el enclave seguro de tu teléfono: Keychain en iOS, EncryptedSharedPreferences en Android. Nunca la vemos. Nunca la recibimos. No hay botón de “restablecer contraseña”, porque no hay contraseña que restablecer.
Qué ciframos y qué no
Ciframos los campos donde importa: notas de recaídas, anotaciones de disparadores, cualquier cosa que escribas que sea personal. No ciframos los campos que no lo necesitan: marcas de tiempo, IDs internos, versiones del esquema. Cifrar las marcas de tiempo no mejoraría tu privacidad y ralentizaría la app de forma perceptible en dispositivos de gama baja.
Puedes auditarlo tú mismo en el código abierto. Publicamos el esquema (consulta Privacidad y Seguridad) y los helpers de cifrado. No hay sorpresas.
Por qué modo CBC
Usamos AES en modo CBC (Cipher Block Chaining) con un vector de inicialización aleatorio nuevo para cada registro. CBC es bien conocido, no tiene debilidades conocidas contra el modelo de amenaza que aquí importa (acceso sin conexión al almacenamiento de un dispositivo), y está soportado en todas las plataformas móviles sin necesitar extensiones criptográficas específicas de la plataforma. Consideramos GCM, que también está ampliamente desplegado y añade autenticación; para nuestro caso de uso (dispositivo único, usuario único, sin datos en tránsito) la complejidad adicional no justificaba el esfuerzo. Podemos reconsiderarlo en una versión futura.
Contra qué protege
Si tu teléfono se pierde o es robado con la pantalla desbloqueada, against. no es diferente de cualquier otra app que el ladrón abra: verá lo que tú ves. Ese es un riesgo que no podemos solucionar a nivel de app; por eso la app permite un bloqueo biométrico opcional y una pantalla de privacidad opcional.
Si tu teléfono se pierde o es robado con la pantalla bloqueada, la base de datos cifrada en tu dispositivo es ilegible sin la clave, y la clave vive en el enclave seguro, que está protegido por hardware. Un atacante motivado con acceso físico y equipamiento de laboratorio es una amenaza que no afirmamos poder derrotar, pero para los riesgos realistas (robo de teléfono, acceso oportunista por alguien conocido), el cifrado está haciendo su trabajo.
Contra qué protege, más importante aún
La otra cosa contra la que protege el cifrado en el dispositivo es nosotros. Podríamos recibir una citación judicial. Podríamos ser adquiridos por una empresa con valores diferentes. Podríamos ser comprometidos por un atacante. Ninguno de esos eventos expondría tus datos, porque no tenemos tus datos. El cifrado es una garantía técnica, no una promesa.
Lecturas adicionales
- Por qué el enfoque offline-first importa para datos sensibles
- La privacidad no es lo mismo que el silencio
- Privacidad y Seguridad
Ver también: Privacidad y Seguridad.