¿Están mis datos seguros?

Los datos viven en tu dispositivo

El concepto central de Capitally es que todos tus datos están cifrados y se guardan en tu dispositivo. Nuestros servidores solo almacenan una copia de tu proyecto para sincronizarlo entre dispositivos, pero como solo tú tienes acceso a las claves de cifrado, no podemos ver los datos reales, y no pasa absolutamente nada si bloqueas esas peticiones de sincronización.

Lo único que «vemos» es con qué símbolos de mercado has interactuado —qué has buscado o de qué has obtenido precios—, pero no lo vinculamos a tu cuenta.

Capitally es también un gestor de cartera sin Plaid, Yodlee ni ningún otro agregador que se conecte a tu broker. No te pedimos el usuario y la contraseña de tu broker, y no leemos tu cuenta bancaria. Las importaciones se hacen únicamente subiendo archivos directamente (CSV/XLS/XML/JSON) o introduciendo los datos a mano. Es una decisión de privacidad, pero también de precisión: los exportes CSV de los brokers llegan hasta el día en que se abrió la cuenta y conservan las operaciones corporativas, las reinversiones de dividendos y las conversiones de divisa que los agregadores suelen perder, que es justo el detalle del que depende un coste de adquisición exacto (y una declaración fiscal correcta).

Los proyectos se cifran por defecto

Cada proyecto de Capitally utiliza cifrado AES-256 en el cliente (AES-GCM) con claves derivadas de tu contraseña mediante PBKDF2 y protegidas mediante envoltura de claves RSA-OAEP. Se trata de cifrado de conocimiento cero: las claves de cifrado nunca salen de tu dispositivo y nuestros servidores solo almacenan texto cifrado.

Al cifrar tus datos, buscamos protegerlos frente a:

  • accesos no autorizados a los datos almacenados en nuestras bases de datos, ya sea por parte de empleados, hackers o agencias gubernamentales
  • accesos no autorizados en tu dispositivo, pero solo mientras protejas el perfil de tu navegador frente al acceso directo o no elijas la opción «Recuérdame» al iniciar sesión

No podemos protegerlos frente a:

  • ataques de cadena de suministro o de intermediario (man-in-the-middle) en los que los atacantes reemplacen nuestro código fuente
  • escrituras o borrados no autorizados en nuestras bases de datos o en el dispositivo cliente
  • detección de actividad del proyecto: los metadatos del proyecto, como el tipo de operación (operación creada, actualizada, eliminada, etc.) y las marcas de tiempo (cuándo hiciste el cambio, no la fecha real de la operación), no están cifrados

Cómo funciona el cifrado

Al crear un proyecto puedes elegir entre tres modos de cifrado:

  1. Contraseña de usuario: cuando inicias sesión, usamos PBKDF2 para derivar dos contraseñas a partir de la que introduces, utilizando dos sales distintas. La primera contraseña te autentica, de modo que nuestros servidores de autenticación (Google Identity Platform) nunca reciben la contraseña que escribes, y la segunda no se puede derivar de ella. La segunda contraseña cifra (con AES-GCM) un conjunto de claves privadas que se usan para cifrar el proyecto. Puedes optar por guardar esa clave de forma segura en tu navegador para no tener que volver a escribirla.
  2. Contraseña de proyecto: igual que la opción anterior, pero estableces una contraseña de proyecto independiente de la que usas para iniciar sesión y es la que deriva la clave de cifrado.
  3. Clave remota: una vez que inicias sesión, la app obtiene una clave de cifrado del servidor. La clave no se almacena en la base de datos; se deriva al vuelo a partir de tus credenciales, una sal y nuestra propia clave privada. El endpoint que custodia esa clave privada está aislado del resto.

Cada usuario del proyecto (el sistema está preparado para compartir proyectos, aunque hoy solo se admite un usuario) tiene un par de claves RSA-OAEP. La clave privada se cifra con la clave de cifrado principal anterior y se usa para descifrar las claves compartidas (otro AES-GCM), que a su vez cifran y descifran los datos del proyecto. Puede haber varias claves compartidas por proyecto; por ejemplo, una para cada conjunto de datos compartido entre los mismos usuarios.

La clave pública se usa para cifrar las claves compartidas emitidas al usuario y para firmar los mensajes generados por el backend (por ejemplo, nuevas operaciones procedentes de un broker) de forma que solo el usuario destinatario pueda leerlos.

Una vez que introduces una contraseña, no se guarda ni se envía a ninguna parte. Las claves de cifrado derivadas pueden almacenarse en tu navegador, pero son no exportables: pueden descifrar tus datos, pero el material de la clave en sí no puede extraerse, ni siquiera por el propio código de Capitally.

Alojamiento, RGPD y residencia de datos en la UE

Capitally se desarrolla en Europa para inversores de todo el mundo y opera bajo la legislación europea de privacidad.

  • Alojado en Europa. Todos los servidores y bases de datos están en centros de datos de la UE: tus datos cifrados nunca salen de la jurisdicción europea. Usamos Google Cloud, Railway, Hetzner, MongoDB y Cloudflare.
  • Conforme al RGPD. Tienes derecho a exportar y a eliminar de forma permanente tus datos en cualquier momento; ambas acciones se realizan con un solo clic desde la app, sin necesidad de enviar un correo.
  • Prácticas de servidor conforme a los estándares del sector, además del cifrado de extremo a extremo: HTTPS para todo el tráfico, cifrado en reposo, acceso bajo el principio de mínimo privilegio para nuestro equipo, autenticación en dos pasos y registros de acceso.
  • Sin intermediarios de datos de terceros. No compartimos datos con anunciantes y ningún SDK de analítica tiene acceso a tu cartera; también puedes desactivar la analítica por completo (consulta Analítica y seguimiento de errores más abajo).

¿El código es de código abierto y está verificado?

Capitally es un proyecto de código cerrado, pero la app cliente está escrita en TypeScript y todo el tratamiento de datos se realiza en el cliente. Toda la comunicación de red se puede verificar fácilmente desde las herramientas de desarrollo del navegador.

Como con cualquier software, al final todo se reduce a la confianza. Tienes que confiar en que ni nosotros (ni un atacante) modificaremos ese código de forma encubierta para robar las claves de cifrado o las contraseñas.

La mayoría de los demás gestores de cartera se describen como «con cifrado de nivel bancario», lo que significa que el proveedor guarda tus claves y puede leer tus datos. Capitally está cifrado de extremo a extremo, lo que significa que solo tú puedes hacerlo; ni siquiera nuestros propios ingenieros pueden, por diseño.

Analítica y seguimiento de errores

No queremos conocer tus datos financieros, pero para mejorar la app y ayudarte en caso de problemas, recopilamos algunos datos de uso si nos lo permites. Concretamente, recopilamos:

  • tu ID de usuario
  • la URL de la página, que puede contener el ID del activo
  • las URL de las solicitudes de red (que contendrán los IDs de activos del mercado)
  • los elementos en los que haces clic (solo su ID de sistema)
  • los mensajes del registro del sistema (que pueden contener IDs de activos del mercado)

Si no nos permites identificarte, no almacenaremos ninguno de los IDs mencionados anteriormente. En ese caso, solo registramos errores y un uso mínimo de funcionalidades, de forma completamente anónima, sin IDs ni registros detallados.

Lo que nunca recopilamos:

  • el tamaño o valor de tus inversiones
  • nombres, notas o cualquier texto que crees tú mismo
  • fuentes de precios personalizadas