Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Protección de datos y llavero: cuándo queda cifrado lo que la app guarda

4 tareas · 45 min · Principiante

iOS cifra los archivos de una app con una clave que depende de una clase de protección, y esa clase decide cuándo se pueden leer: solo con el teléfono desbloqueado, desde el primer desbloqueo tras encender, o siempre. El llavero tiene su propio juego de clases de accesibilidad, y además permite que un elemento se quede en este aparato o pueda pasar a otro. Un dato sensible con la clase equivocada, o en un sitio sin clase, es el hallazgo clásico de almacenamiento local. En esta sala se leen los archivos, el llavero y las preferencias que Quetzal Cliente dejó en un dispositivo de pruebas y se decide qué cuenta.

0 de 4 · 0%

Objetivo de la sala

iOS cifra los archivos de una app con una clave que depende de una clase de protección, y esa clase decide cuándo se pueden leer: solo con el teléfono desbloqueado, desde el primer desbloqueo tras encender, o siempre. El llavero tiene su propio juego de clases de accesibilidad, y además permite que un elemento se quede en este aparato o pueda pasar a otro. Un dato sensible con la clase equivocada, o en un sitio sin clase, es el hallazgo clásico de almacenamiento local. En esta sala se leen los archivos, el llavero y las preferencias que Quetzal Cliente dejó en un dispositivo de pruebas y se decide qué cuenta.

Cada archivo del contenedor de una app tiene una clase de protección. Hay cuatro. La más estricta hace que el archivo solo se pueda abrir con el teléfono desbloqueado. Otra permite seguir escribiendo un archivo que ya estaba abierto cuando el teléfono se bloqueó. La tercera lo abre desde el primer desbloqueo tras encender el aparato, aunque después se vuelva a bloquear. La cuarta no protege el archivo con la clave de acceso del usuario.

Si la app no elige otra, los archivos reciben la tercera, que es el valor intermedio. Eso significa que, tras un primer desbloqueo, un archivo con la clase por defecto queda disponible aunque la pantalla esté bloqueada. Para un dato que debe estar protegido en cuanto el teléfono se bloquea, la clase por defecto no basta y la app debe pedir la más estricta.

Responde para continuar

¿Qué pasa con un archivo que lleva la clase de protección por defecto después de que el usuario desbloquea el teléfono una vez?

Ver pista de ayuda

La clase por defecto abre el archivo desde el primer desbloqueo, no solo mientras el teléfono está desbloqueado.

La clase sin protección no es un problema por sí misma: una imagen pública de una campaña o un catálogo de talleres no pierden nada porque se lean. El hallazgo aparece cuando esa clase coincide con un dato personal o de negocio. La revisión cruza dos columnas: qué protección tiene el archivo y qué contiene.

El listado del contenedor de Quetzal trae seis archivos con su clase y una nota sobre el contenido. Dos llevan la clase sin protección. Cruza la columna de clase con la de contenido y quédate con el que guarda datos de personas.

Responde para continuar

Escribe el nombre del archivo que no tiene protección y guarda datos personales de los clientes.

Ver pista de ayuda

Filtra primero los archivos con clase None y después lee qué contiene cada uno.

El llavero guarda secretos pequeños (tokens, claves, contraseñas) con una clase de accesibilidad por elemento. Las habituales son: solo con el teléfono desbloqueado, tras el primer desbloqueo, y variantes que además atan el elemento a este aparato o exigen que haya un código de acceso puesto. La clase por defecto, si la app no elige, es la de solo con el teléfono desbloqueado.

Hay una clase que permite leer el elemento siempre, incluso con el teléfono recién encendido y sin desbloquear, y que Apple marcó como obsoleta. Quitar la protección del bloqueo de un secreto es justo lo que el llavero existe para evitar. Revisa el listado del llavero de Quetzal y localiza el elemento con esa clase.

Responde para continuar

Escribe el nombre de la cuenta del elemento del llavero que usa la clase de accesibilidad obsoleta que permite leerlo siempre.

Ver pista de ayuda

Mira la columna de accesibilidad y busca la constante que termina en Always.

En el dispositivo de pruebas, el token de sesión de la cuenta de prueba está en el llavero, donde corresponde, y además en un archivo de preferencias de la app, que no tiene el cifrado reforzado de un elemento de llavero y suele entrar en las copias de seguridad del dispositivo. Esa segunda copia es el hallazgo: el secreto está protegido en un sitio y desprotegido en otro, y vale lo que valga el eslabón más débil.

El arreglo no es proteger mejor la copia, es no tenerla. Y como el valor ya estuvo guardado en un sitio débil, se recomienda también invalidar los tokens emitidos, porque no se puede dar por perdido el secreto sin rotarlo.

Responde para continuar

Encuentras el token de sesión tanto en el llavero como en las preferencias. ¿Qué se recomienda?

Ver pista de ayuda

Un secreto es tan fuerte como su copia más débil. Se arregla quitando la copia, no maquillándola.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad