Cryptile

La arquitectura de seguridad de Cryptile, capa a capa

Actualizado

Cryptile cifra cada archivo, miniatura e índice con AES-256-GCM, con claves generadas en tu teléfono a partir del patrón que dibujas. No hay cuenta ni servidor, y el desarrollador nunca tiene las claves.

Consigue Cryptile en la App Store

El resumen sencillo está en la página de seguridad.

¿Qué debo saber?

  • Tu patrón es el origen de todas las claves. Sin él no se guarda nada legible.
  • Los tamaños y el número de bóvedas se difuminan. Los archivos llevan relleno y los espacios señuelo ocultan cuántas bóvedas hay.
  • Puedes comprobarlo. El núcleo de cifrado está publicado para que cualquiera lo audite (código disponible), con un modelo de amenazas y vectores de prueba: github.com/jasonbrelsford/cryptile-core.

¿Cómo se convierte un patrón en una clave?

  1. El patrón se escribe como el tamaño de la cuadrícula seguido de las celdas que tocaste, en orden.
  2. Se mezcla con un secreto de dispositivo de 32 bytes guardado en el llavero del iPhone, solo para este dispositivo.
  3. PBKDF2-HMAC-SHA512 se aplica 600 000 veces sobre él. Cada intento cuesta todo ese trabajo.
  4. HKDF-SHA256 divide el resultado en una clave de búsqueda y una clave de envoltura.
  5. La clave de búsqueda da nombre al archivo de índice de la bóveda. La clave de envoltura lo abre.

Dentro del índice está la clave maestra aleatoria de 256 bits de la bóveda. HKDF deriva de ella subclaves distintas para los archivos, las miniaturas y el índice. Ninguna clave se usa para dos fines.

¿Cómo se cifran los archivos?

Los elementos pequeños, como las miniaturas y el índice, se sellan de una pieza con AES-256-GCM y un nonce aleatorio.

Los archivos grandes usan un formato STREAM en fragmentos de 1 MB. Cada fragmento tiene su propio nonce y registra su posición y si es el último. Cortar, reordenar o intercambiar fragmentos hace que el descifrado falle.

GCM también autentica cada cabecera, así que un archivo modificado se rechaza en lugar de mostrarse.

¿Cómo se ocultan los tamaños y el número de bóvedas?

Cada bloque pequeño y cada fragmento final de un archivo se rellena hasta un múltiplo de 64 KiB. Quien copie los datos ve tamaños aproximados, no exactos.

No hay lista de bóvedas. La app mantiene al menos 8 espacios con forma de índice, reales y señuelo, y vuelve a sortear los señuelos en cada escritura. Un patrón que no corresponde a ningún espacio abre una bóveda vacía.

¿Cómo funciona la recuperación?

Cada bóveda tiene una frase de recuperación de 9 palabras, que son 96 bits de aleatoriedad. Abre una copia de recuperación aparte de la bóveda, sellada con una clave generada a partir de la frase.

La copia en iCloud refleja los archivos cifrados tal como están. Por defecto no incluye el secreto del dispositivo, así que una copia por sí sola no sirve para adivinar patrones.

¿Qué se cifra y qué no?

Se cifra: fotos, vídeos, archivos, notas, miniaturas, nombres, carpetas, favoritos, texto reconocido y ubicaciones de las fotos. El pequeño archivo que controla los señuelos y los recuentos del plan gratuito se sella con una clave del dispositivo.

Cryptile no cifra:

  • Los ajustes. El tiempo de bloqueo automático, el orden y el interruptor de copia no contienen secretos.
  • Los elementos compartidos que esperan a añadirse. Quedan bajo la protección de archivos de iOS hasta que abres una bóveda.
  • El tamaño total del contenedor y las horas de escritura. Una bóveda de 10 GB no parece de 10 MB.
  • Todo lo que exportes. Una copia guardada en Fotos o en Archivos queda fuera de la bóveda.

¿De qué protege?

  • De quien copie los archivos de la app sin tu llavero. Obtiene texto cifrado y no puede probar patrones.
  • De Apple, o de una brecha en Apple. iCloud guarda texto cifrado y ninguna clave.
  • De la manipulación. Los datos modificados o reordenados no se descifran.
  • De nosotros. No tenemos servidor ni claves, así que no podemos restablecer el acceso.

¿De qué no protege?

  • De los patrones cortos. Un patrón es más débil que una frase de contraseña. Con tus archivos y tu llavero, un patrón de 6 celdas en una cuadrícula de 4×4 cae en minutos con una GPU. Usa 8 celdas o más.
  • Del malware en un teléfono desbloqueado. El código que lee la memoria mientras una bóveda está abierta escapa a cualquier app.
  • De quien te mira dibujar. Dibuja donde nadie pueda ver tu mano.
  • De perder el teléfono y la frase. La bóveda desaparece. No hay restablecimiento.

El patrón de pánico de Plus destruye el secreto del dispositivo, así que ninguna bóveda del teléfono se abre hasta que la restauras.

Consigue Cryptile en la App Store