Modelo de seguridad de KutunaCo

Última actualización:

En esta página

KutunaCo es un gestor de contraseñas sin conexión y sin cuenta para iOS y Android. Esta página explica qué protege KutunaCo 1.12.0, dónde se guardan tus datos y de qué los protege, y dice claramente lo que no puede hacer.

En resumen

  • La caja y la configuración se cifran en el teléfono con AES-256; la clave se guarda en el Keychain de iOS o en el Keystore de Android, solo en ese dispositivo.
  • No hay cuenta, servidor, sincronización, publicidad ni analíticas. La versión para Android ni siquiera tiene el permiso de acceso a internet; la app no puede hacer ninguna solicitud de red.
  • Las copias de seguridad se cifran con AES-256-GCM mediante una clave derivada de tu contraseña con Argon2id (64 MiB de memoria en las copias de seguridad nuevas).
  • La app se desbloquea con la biometría, el código del dispositivo o un PIN de la app de 4 a 8 dígitos.

¿Por qué sin conexión?

Los gestores de contraseñas en la nube guardan millones de bóvedas en los mismos servidores, y esos servidores son un único gran objetivo. Con KutunaCo no hay ninguna base de datos central que se pueda filtrar, ningún servidor que atacar ni ninguna cuenta de la que alguien se pueda apoderar. Tu caja solo existe en tu teléfono y en las copias de seguridad que haces.

La contrapartida es igual de clara: no hay sincronización automática entre dispositivos. Para pasarte a otro teléfono, haces una copia de seguridad cifrada y la importas en el nuevo.

Dónde se guardan tus datos

  • Elementos de la caja y configuración: en la carpeta propia de la app, cifrados con AES-256 mediante una clave de 256 bits generada aleatoriamente.
  • Clave de la caja: en iOS, en el Keychain con la protección "solo este dispositivo" (nunca se envía a iCloud ni se restaura en otro dispositivo); en Android, cifrada con una clave del Keystore.
  • PIN de la app: el PIN en sí nunca se guarda, solo un hash PBKDF2-HMAC-SHA256 con sal (210 000 iteraciones). A partir del quinto intento incorrecto, se aplica una espera que aumenta desde 30 segundos hasta una hora.
  • Copia del autocompletado: solo se entregan los elementos de contraseña que no están en la papelera. Las claves 2FA, las notas y los datos de tarjetas y de claves de API nunca se escriben en el almacenamiento del autocompletado.
  • Copias de seguridad: se guardan solo donde tú elijas; los archivos temporales se eliminan después de compartirlos.
  • Escaneo de códigos QR de 2FA: las imágenes de la cámara nunca se guardan; la copia temporal de una captura de pantalla que elijas se elimina después de leerla, y los códigos escaneados de una transferencia de Google Authenticator permanecen en la memoria hasta que los importas.

Bloqueo y autenticación

  • La app se desbloquea con la biometría (Face ID, huella digital), el código del dispositivo o el PIN de la app. En Android, el bloqueo solo acepta la biometría segura (clase 3) o el código del dispositivo.
  • Con un bloqueo solo con PIN, al activar el Desbloqueo biométrico se pide primero el PIN.
  • Opciones del bloqueo automático: inmediatamente, 30 segundos, 1 minuto, 5 minutos, 15 minutos o nunca. El tiempo se mide de forma que atrasar el reloj del dispositivo no permite eludirlo.
  • Las acciones delicadas, como exportar, eliminar todos los datos, desactivar el bloqueo o cambiar el PIN, te piden que vuelvas a verificar tu identidad.
  • Si olvidas tu PIN, verifica tu identidad con el bloqueo de pantalla o la biometría del dispositivo y crea uno nuevo. Esto funciona mientras Permitir restablecer el PIN con el bloqueo del dispositivo esté activado (lo está de forma predeterminada). Desactívalo para que alguien que conozca el código de tu dispositivo no pueda crear un PIN nuevo; en ese caso, olvidar el PIN significa eliminar todos los datos y restaurar una copia de seguridad, igual que en un dispositivo sin bloqueo de pantalla.

Autocompletado

  • Android: un elemento solo se sugiere cuando el nombre del paquete y el certificado de firma de la app que lo solicita coinciden con los de la app vinculada, o cuando el dominio coincide en un navegador conocido cuya firma se ha verificado. Antes de cada autocompletado se te pide que verifiques tu identidad, y con un bloqueo solo con PIN también se pide el PIN de la app. Solo se descifra la contraseña que se está completando. Sin un bloqueo de pantalla seguro, el autocompletado no funciona.
  • iOS: no se muestra nada en la lista sin la autenticación del propietario del dispositivo (Face ID, Touch ID o el código). Al sistema solo se le comunican el dominio y el nombre de usuario, nunca la contraseña.
  • Enlaces de 2FA: un enlace otpauth:// abierto desde un sitio web u otra app se muestra con una advertencia y solo se guarda después de que lo confirmes; nunca se sustituye una clave 2FA existente.

Portapapeles y pantalla

  • Las contraseñas copiadas se marcan como confidenciales: en Android 13 y versiones posteriores no aparecen en las vistas previas ni en el historial del portapapeles del teclado, y en iOS no pasan a tus otros dispositivos a través del Portapapeles Universal.
  • El portapapeles se borra una vez transcurrido el tiempo que elijas (30, 60 o 90 segundos, o nunca) y cuando la app se bloquea. Los códigos 2FA copiados también se marcan como confidenciales.
  • En Android, se bloquean las capturas y la grabación de pantalla. En iOS, el contenido se oculta mientras la app está en segundo plano y durante la grabación de pantalla.
  • En los campos con datos confidenciales, el aprendizaje del teclado y la autocorrección están desactivados.

Copias de seguridad

  • La clave se deriva de la contraseña de la copia de seguridad con Argon2id (64 MiB de memoria, 3 iteraciones, 4 carriles paralelos: la configuración recomendada en el RFC 9106); cada archivo indica sus propios parámetros, así que las copias de seguridad creadas antes de la versión 1.8.0 con 19 MiB / 2 iteraciones se siguen abriendo; el contenido se cifra con AES-256-GCM y el encabezado también se autentica, así que un archivo manipulado no se abre.
  • La contraseña de la copia de seguridad debe tener al menos 10 caracteres. Se rechazan las contraseñas fáciles de adivinar, como "Password123!", y también el nombre del producto, KutunaCo.
  • Si olvidas la contraseña, nadie puede abrir la copia de seguridad, ni siquiera nosotros.
  • Solo se hace una exportación sin cifrar si la confirmas expresamente, y cualquiera que abra ese archivo puede leer tus elementos.

Limitaciones conocidas

  • El bloqueo de la app es un bloqueo de la interfaz. La clave de la caja no está vinculada a la biometría; la caja se cifra con una clave que está disponible después del primer desbloqueo del dispositivo.
  • El Desbloqueo biométrico también acepta el código del dispositivo; quien conozca tu código puede abrir la caja.
  • La caja no pasa a un teléfono nuevo con una copia de seguridad del dispositivo en iCloud o Google. Haz una copia de seguridad cifrada de KutunaCo antes de cambiar o restablecer tu teléfono.
  • No hay comprobación de filtraciones (como Have I Been Pwned); la app nunca se conecta a internet, así que no puede consultar una lista externa. El informe de salud de las contraseñas se calcula por completo en el dispositivo.
  • No se admiten las llaves de acceso.
  • La extensión de Autorrelleno de iOS no pide el PIN de la app; solo pide la autenticación del propietario del dispositivo. Por eso, con un bloqueo solo con PIN y el restablecimiento del PIN desactivado, no se entrega ninguna contraseña al Autorrelleno de iOS, y el Autorrelleno no está disponible ahí.
  • Antes de que verifiques tu identidad, las sugerencias de autocompletado muestran el título y el nombre de usuario del elemento (QuickType en iOS; sugerencias bloqueadas en Android). En Android, Configuración › Seguridad › Ocultar nombres de usuario en sugerencias oculta el nombre de usuario.
  • En Android, el lector de códigos QR viene con los Servicios de Google Play y también lee las capturas de pantalla que elijas; sin los Servicios de Google Play, escribe o pega la clave de configuración. Los Servicios de Google Play pueden enviar a Google datos de diagnóstico anónimos sobre cada uso del lector (el tipo de evento, cuánto tardó, un código de error y datos del dispositivo y de la app, como el modelo del teléfono y la versión de la app); la imagen, el contenido del código QR y los elementos de tu caja nunca forman parte de ellos.
  • Para avisarte cuando hay una versión nueva, la app de Android pregunta a la app Play Store de tu teléfono si hay una actualización (Google Play In-App Updates) cada vez que se inicia y, cuando vuelves a ella, como máximo una vez por hora. Para responder, Play Store puede enviar a Google datos del dispositivo y de la app, como el modelo del teléfono y la versión de la app; los elementos de tu caja nunca forman parte de ellos, y la app en sí sigue sin hacer ninguna solicitud de red. En el iPhone la app no comprueba nada: Configuración › Acerca de abre la página de KutunaCo en el App Store.
  • Ninguna app puede proteger por completo los datos de un dispositivo con acceso root, con jailbreak o infectado con malware.

Notificar una vulnerabilidad

Si encuentras un problema de seguridad, escribe a support@kutuna.co. Indica la versión afectada, la plataforma y los pasos para reproducirlo; nunca envíes datos reales de tu caja ni contraseñas. Los datos de contacto también figuran en security.txt.