Saltar al contenido

¿Cuán seguro es Crunu?

Diseñamos Crunu dando por hecho que su servidor será atacado. Aquí tienes lo que consigue cada atacante del modelo de amenazas del producto, lo que no consigue y qué capa se interpone, incluidos los casos en los que Crunu no puede ayudar.

  • AES-256-GCM cifra cada versión
  • X25519 sella las claves y Ed25519 firma
  • La clave de la cuenta sale de tu contraseña (PBKDF2-SHA256, 1 000 000 iteraciones) y de una Secret Key de unos 128 bits, y ninguna de las dos se envía al servidor
  • El servidor no tiene ninguna clave de descifrado, en ningún paso

Tres capas de protección y versiones publicadas que puedes comprobar

El modelo de amenazas de Crunu marca cada defensa con la capa que la aporta. Eso importa sobre todo cuando el atacante es el propio servidor, porque entonces solo algunas capas siguen funcionando.

  • Criptografía

    Quién tiene la clave

    Las claves de los entornos se sellan solo para las personas, máquinas y tokens que tú permites, y las listas de acceso y las versiones van firmadas. Sin la clave, los datos cifrados siguen siendo datos cifrados.

    Si alguien toma el control del servidorSigue funcionando.

  • Servidor

    A quién envía los datos cifrados y de quién acepta cambios

    Límites de inicio de sesión, caducidad de las sesiones, reglas de red, el periodo de espera del código de recuperación y el corte del acceso a quien diste de baja.

    Si alguien toma el control del servidorDeja de funcionar.

  • Cliente

    Qué comprueban tu navegador y el agente

    Firmas, números de versión y huellas: los dispositivos rechazan todo lo que no esté firmado o sea anterior a lo que ya han visto. Ocultar los valores en pantalla también es una regla del cliente, y evita accidentes, no copias.

    Si alguien toma el control del servidorSigue funcionando, salvo que el servidor envíe una página web manipulada.

  • Versiones publicadas verificables

    Si el código que ejecutas es auténtico

    Cada versión publicada del agente y de la app web se firma con Ed25519. La compilación web es reproducible y la página no admite scripts de terceros.

    Si alguien toma el control del servidorEl agente sigue comprobando sus actualizaciones. La app web se comprueba a sí misma dentro de la página que comprueba, así que no puede detectar un servidor que cambie ambas cosas.

Ejemplo. Kiteline es una empresa ficticia.

Ataque por ataque

Una tarjeta por cada atacante del modelo de amenazas de Crunu. El veredicto se refiere a los valores de tus entornos; todo lo demás que consigue un atacante figura en la tarjeta.

  • ProtegidoTus valores siguen ilegibles e intactos.
  • LimitadoConsigue algo real, indicado en la tarjeta.
  • Sin protecciónCrunu no puede impedirlo. La tarjeta dice qué ayuda.
  1. Se filtra una copia de la base de datos

    Protegido

    Una copia de seguridad filtrada, un disco robado, una brecha en otro servicio o una empresa de alojamiento que actúa de mala fe.

    Lo que consigue

    • Los datos cifrados de cada entorno, las claves públicas y los registros firmados
    • Metadatos: nombres de proyectos y entornos, quién forma parte del equipo y con qué frecuencia cambian las cosas
    • Tokens, pero solo como hashes con clave (HMAC)

    Lo que no consigue

    • Tus valores: en ella no hay ninguna clave de descifrado
    • Un atajo hacia tu contraseña: cada intento necesita también tu Secret Key, que nunca estuvo en el servidor, así que comprobar un solo intento supone recorrer unas 2¹²⁸ posibilidades
    • Tokens que funcionen: la clave de esos hashes no se guarda en la base de datos

    No pongas secretos en los nombres: un proyecto con el nombre de un acuerdo aún no anunciado le cuenta ese acuerdo a quien lea la copia.

    Protegido porCriptografíaServidor

  2. Alguien toma el control del servidor

    Limitado

    El control de su código y de su base de datos: un intruso, un operador malintencionado o una cuenta en la nube secuestrada. En app.crunu.com, ese servidor lo opera Crunu; si usas tu propio servidor, lo operas tú.

    Lo que consigue

    • Todo lo que hay en una copia de la base de datos, y además quién descargó qué versión y cuándo
    • El poder de negarse a dar servicio o de perder tus cambios
    • La posibilidad de enviar una página web manipulada que capture tu contraseña y tu Secret Key cuando inicias sesión. Este es el principal riesgo que queda.

    Lo que no consigue

    • Un lugar entre los destinatarios: las claves de los entornos se sellan solo para claves que tu organización certificó, y tus dispositivos comprueban la lista de acceso firmada
    • Una clave cambiada o datos alterados: las claves constan en registros firmados, y cada versión va firmada y ligada a su entorno y a su número
    • Una vuelta atrás silenciosa en un dispositivo que ya ha visto datos más recientes. Un dispositivo que nunca los ha visto no puede notarlo.

    La app se comprueba a sí misma con el manifiesto firmado de Crunu cada vez que se carga, y la página no admite scripts de terceros. Esa comprobación se ejecuta dentro de la misma página, así que no puede detectar un servidor que cambie ambas cosas.

    Protegido porCriptografíaCliente

  3. Alguien intercepta la conexión

    Limitado

    Un certificado TLS falsificado o un proxy malicioso entre tu dispositivo y el servidor.

    Lo que consigue

    • Lo que el servidor ve en esa conexión: datos cifrados y metadatos
    • La misma posibilidad que tiene quien toma el control del servidor de enviar una página web manipulada

    Lo que no consigue

    • Tu contraseña o tu Secret Key: ninguna de las dos cruza la red, de ninguna forma
    • Un inicio de sesión que reenviar: cada firma de inicio de sesión incluye la dirección del servidor y un valor de un solo uso (nonce), así que funciona una vez y solo en ese servidor

    Protegido porCriptografíaCliente

  4. Un compañero se va en malos términos

    Limitado

    Alguien a quien diste de baja de la organización y que se quedó con todo lo que pudo.

    Lo que consigue

    • Todo lo que vio antes de la baja. Esos valores siguen funcionando en tus proveedores hasta que los reemitas.

    Lo que no consigue

    • Nada más del servidor: deja de darle servicio al instante
    • Versiones nuevas: se rotan todas las claves de entorno que tenía, así que sus claves antiguas no abren nada nuevo, ni siquiera con datos cifrados robados

    El informe de exposición muestra qué versiones recibió, y la lista de reemisión enumera los valores que hay que cambiar en cada proveedor.

    Protegido porServidorCriptografía

  5. Un compañero mira más allá de su rol

    Protegido

    Un miembro honesto pero curioso: un desarrollador con acceso a development o alguien con el rol Operator que configura máquinas.

    Lo que consigue

    • Los entornos que se le dieron, que puede copiar. Ocultar los valores en la app es una opción de presentación, no cifrado.

    Lo que no consigue

    • El entorno production desde un acceso a development: no tiene su clave
    • Ningún valor con el rol Operator: ese rol no tiene ninguna clave de entorno
    • Otros archivos con el rol Specific files: recibe una copia sellada solo de los archivos elegidos

    Protegido porCriptografía

  6. Alguien roba un token de sesión

    Limitado

    Copiado de la memoria del navegador o del registro de un proxy.

    Lo que consigue

    • Lo que el servidor le permite a esa cuenta hasta que termina la sesión: tras 12 horas sin actividad o, como máximo, a los 7 días

    Lo que no consigue

    • Tus valores: descifrarlos requiere claves que el token no lleva
    • Cambios firmados: una lista de acceso o una versión necesita tu clave de firma
    • El control de tu cuenta: cambiar tu contraseña o tu Secret Key requiere ambas

    Tu cuenta muestra cada dispositivo y cada sesión, y puedes cerrar una o todas.

    Protegido porServidorCriptografía

  7. Te roban el portátil

    Limitado

    Un dispositivo en el que has iniciado sesión, robado con la app abierta o bloqueada.

    Lo que consigue

    • Tu Secret Key, que el navegador guarda por defecto, lo que deja tu contraseña como barrera
    • Lo que esté abierto, hasta que la app se bloquee tras 10 minutos sin actividad (el valor predeterminado)

    Lo que no consigue

    • Tus claves una vez que la app se ha bloqueado: siguen cifradas sin tu contraseña
    • Tu cuenta: una sesión abierta no puede cambiar tu contraseña, tu Secret Key ni las claves de tu cuenta

    Desde otro dispositivo, elimina el robado o usa «Device compromised»: sustituye las claves de tu cuenta y rota todos los entornos de los que tenías una clave.

    Protegido porCriptografíaServidor

  8. Alguien obtiene root en una máquina con el agente

    Limitado

    Una máquina que ejecuta el agente crunu es un destinatario legítimo, y también lo es quien la controle.

    Lo que consigue

    • Todo lo que se entregó a esa máquina. Un programa que ya está en ejecución conserva sus variables hasta que se reinicia.

    Lo que no consigue

    • Otras máquinas u otros entornos: cada máquina tiene sus propias claves y recibe solo lo que se le dio
    • Acceso por mucho tiempo: una concesión vence tras 24 horas sin contacto, y una máquina revocada pierde sus entornos en minutos mientras esté en línea

    Protegido porCriptografíaServidor

  9. Se filtra un código de inscripción

    Protegido

    El código de un solo uso que le das a crunu enroll en una máquina nueva.

    Lo que consigue

    • La posibilidad de inscribir una máquina propia, si usa el código antes que tu máquina

    Lo que no consigue

    • La aprobación: un administrador aprueba una máquina solo después de cotejar la huella que crunu enroll muestra en la máquina real
    • Un segundo intento silencioso: el código dura 15 minutos por defecto, queda invalidado con el primer uso y un código reutilizado genera una alerta

    Protegido porCriptografíaServidor

  10. Se filtra un token de CI

    Limitado

    Un token de servicio copiado del almacén de secretos de un pipeline.

    Lo que consigue

    • Exactamente lo que se le dio al token, a menudo un solo entorno, hasta que lo revoques o caduque

    Lo que no consigue

    • Ningún otro entorno: la clave de production nunca se sella para un token al que no se le dio production
    • Un inicio de sesión desde cualquier otro lugar, si el token está vinculado con OIDC: sin el token de tu proveedor de CI para el repositorio y la rama correctos, no entra

    Protegido porCriptografíaServidor

  11. Alguien intenta adivinar contraseñas en el servidor

    Protegido

    Intentos de inicio de sesión desde una sola dirección o repartidos entre muchas.

    Lo que consigue

    • 10 intentos fallidos por dirección IP y 5 por cuenta cada 15 minutos

    Lo que no consigue

    • Una pista de que una cuenta existe: un correo desconocido y una contraseña incorrecta reciben la misma respuesta
    • Entrar solo con la contraseña: el inicio de sesión también necesita tu Secret Key, y un dispositivo nuevo necesita tu segundo factor en cuanto activas uno
    • Un atajo a través de códigos y enlaces: llevan al menos 128 bits aleatorios y se guardan como hashes con clave

    Protegido porServidorCriptografía

  12. Alguien manipula una versión publicada del agente

    Protegido

    Un binario de crunu o un script de instalación modificados.

    Lo que consigue

    • Una vía de entrada solo si además controla la app web que muestra tu comando de instalación, como cuando alguien toma el control del servidor

    Lo que no consigue

    • Una instalación silenciosa: el comando de instalación de la app web lleva las sumas de verificación SHA-256 del manifiesto de la versión, y la app web comprueba la firma Ed25519 del manifiesto
    • Una actualización silenciosa: crunu self-update comprueba la firma de la versión con una clave incorporada en el agente

    Protegido porCriptografíaCliente

  13. Se ejecuta malware en tu dispositivo

    Sin protección

    Un keylogger, una extensión maliciosa del navegador o alguien con root en tu computadora.

    Lo que consigue

    • Tu contraseña y tu Secret Key mientras las escribes, y todo lo que ese dispositivo descifra

    Lo que no consigue

    • Los entornos que tu cuenta no puede abrir

    Ningún cifrado puede proteger un dispositivo de sí mismo. Usa dispositivos que controles y, tras un compromiso, usa «Device compromised» desde un dispositivo limpio y reemite los valores a los que pudo llegar.

    Protegido porNada en Crunu

Cada límite conocido y qué hacer al respecto

La criptografía

Componentes estándar en dos implementaciones: WebCrypto, integrado en el navegador, y la biblioteca estándar de Go en el agente. Ambas se prueban con los mismos vectores de prueba compartidos.

La criptografía
AlgoritmoQué hace en CrunuDónde se ejecuta
AES-256-GCMCifra cada versión de un entorno. Los datos autenticados adicionales (AAD) ligan los datos cifrados a su organización, su entorno y su número de versión, así que no pueden hacerse pasar por otros.Navegador y agente
X25519Sella una clave de entorno para un destinatario: una persona, una máquina o un token de servicio. Cada copia sellada usa un par de claves nuevo.Navegador y agente
Ed25519Firma las listas de acceso, las versiones, los enlaces de acceso y las versiones publicadas. Los dispositivos comprueban cada firma antes de confiar en un registro.Navegador y agente; Crunu firma las versiones publicadas
HKDF-SHA256Deriva una clave distinta para cada tarea a partir de un mismo secreto, así que ninguna clave sirve para dos fines.Navegador, agente y servidor
PBKDF2-SHA256, 1 000 000 iteraciones y la Secret KeyConvierte tu contraseña en una mitad de la clave de tu cuenta. Tu Secret Key, unos 128 bits aleatorios, es la otra mitad. Ninguna de las dos sale de tu dispositivo.Tu navegador o crunu en la terminal
SHA-256Enlaza las entradas del registro de auditoría en una cadena de hashes y genera huellas de clave que puedes comparar a simple vista.El servidor escribe la cadena; tu navegador y tus propias herramientas pueden recalcularla
Relleno hasta 4096 bytesRedondea cada versión cifrada hasta bloques completos de 4 KB, así que su tamaño exacto no se ve.Navegador y agente, antes de cifrar
  • Una clave para cada entorno. El acceso a development no abre nada en production. Cada persona, máquina y token recibe su propia copia sellada solo de las claves que tiene permitidas.
  • Cada formato lleva su versión. Cada registro indica su versión de formato ("v": 2), y la derivación de claves tiene la suya (kdf.v). Los dispositivos rechazan las versiones que no conocen, así que el servidor no puede facilitar la adivinación de tu contraseña ni colar un formato más antiguo.

Computadoras cuánticas

Una computadora cuántica lo bastante grande rompería algunos de estos componentes y apenas haría mella en otros. Hoy no existe ninguna. Esta es la situación de Crunu, sin aventurar cuándo podría existir una.

Computadoras cuánticas
AlgoritmoAtaque cuánticoQué supondría para Crunu
AES-256-GCMAlgoritmo de Grover: una búsqueda más rápida de la claveQuedan unos 128 bits de seguridad. El NIST prevé que AES-256 siga siendo seguro durante muchísimo tiempo.
SHA-256 y HMACBúsqueda al estilo de GroverQueda un amplio margen para la cadena de hashes del registro de auditoría y para los hashes con clave. El NIST usa SHA-256 como referencia para sus niveles de seguridad poscuántica.
PBKDF2 y la Secret KeyBúsqueda al estilo de Grover; el algoritmo de Shor no se aplicaAdivinar sigue necesitando los 128 bits aleatorios de la Secret Key, el tamaño de una clave AES-128, que el NIST prevé que siga siendo segura durante décadas. Ni la contraseña ni la Secret Key llegan al servidor.
X25519Algoritmo de Shor: la clave privada a partir de la públicaRoto. Las claves de entorno selladas con él podrían abrirse.
Ed25519Algoritmo de ShorRoto. Se podrían falsificar firmas, pero solo en el momento de un ataque. Los datos pasados no quedan expuestos.

Recolectar ahora, descifrar después

Cada clave de entorno se sella para las claves públicas X25519 de sus destinatarios, y las copias selladas se guardan en el servidor junto a esas claves públicas. Quien conserve una copia de la base de datos podría, cuando exista una computadora cuántica grande, abrir esas copias selladas y leer las versiones guardadas en esa copia de la base de datos. El NIST llama a esta amenaza «harvest now, decrypt later» (recolectar ahora, descifrar después).

Solo alcanza lo que contiene esa copia. Las versiones guardadas después de hacerse la copia no están en ella, y una credencial que ya reemitiste en su proveedor no le sirve de nada a quien descifre la antigua.

Tu contraseña, tu Secret Key y la clave de tu cuenta no quedan expuestas de esta forma: nunca llegan al servidor y sobre ellas solo se usan funciones simétricas. El ataque tampoco las necesita, porque apunta directamente a las claves X25519.

Firmas

Las firmas Ed25519 protegen las listas de acceso, las versiones y las versiones publicadas. Una computadora cuántica permitiría falsificar firmas nuevas, pero una falsificación solo importa cuando se crea y se acepta, así que es un riesgo para el día en que exista esa computadora, no para los datos registrados hoy. El NIST dice lo mismo: las firmas no corren riesgo por «harvest now, decrypt later».

Lo que Crunu usa hoy y lo que viene después

Crunu no usa hoy algoritmos poscuánticos. El NIST publicó sus primeros estándares poscuánticos en agosto de 2024: ML-KEM para establecer claves (FIPS 203) y ML-DSA para firmas (FIPS 204). Su plan de transición, finalizado en octubre de 2026, incluye el acuerdo de claves con curvas elípticas y EdDSA entre los algoritmos que declarará obsoletos después de 2030 y que dejará de permitir en los estándares del NIST después de 2035.

Pasar a la criptografía poscuántica está en la hoja de ruta de Crunu. No anunciamos algoritmos ni fechas con los que aún no podemos comprometernos: cuando cambie la criptografía de Crunu, esta página lo dirá.

Lo que puedes hacer ahora

  • Piensa cuánto tiempo conserva su valor cada secreto. Una clave que reemites cada pocos meses pierde poco ante una copia descifrada años después; una credencial raíz de larga duración pierde más.
  • Reemite en sus proveedores los valores de larga duración según un calendario, y guarda cada valor nuevo como una versión nueva.
  • Si te preocupa una copia de la base de datos en manos ajenas, ejecuta tu propio servidor. Así la base de datos y sus copias de seguridad se quedan contigo.

Compruébalo por tu cuenta

Aún no tenemos sellos ni certificados que mostrar. Esto es lo que puedes comprobar hoy y lo que falta.

  • Versiones publicadas firmadas.Cada versión publicada del agente y de la app web se firma con una clave de publicación Ed25519. crunu self-update comprueba la firma con una clave incorporada en el agente, y la app web muestra «Signed build» cuando se ha comprobado a sí misma con el manifiesto firmado.
  • Una compilación web reproducible.Un mismo commit del código fuente produce siempre los mismos archivos, byte a byte. El código fuente no está publicado, así que hoy solo Crunu puede recompilar una versión y compararla.
  • Sin scripts de terceros.La política de seguridad de contenidos (CSP) de la página solo admite el código propio de Crunu, que carga con sumas de verificación de integridad (SRI).
  • Pocas dependencias.El agente usa solo la biblioteca estándar de Go, y el código del navegador incluye un único paquete de npm, yaml.
  • Un registro de auditoría que puedes comprobar fuera de Crunu.Los propietarios y administradores pueden exportar el registro en JSONL y recalcular su cadena de hashes SHA-256 con sus propias herramientas.
  • Lo que falta.No hay auditoría de seguridad externa, ni certificación SOC 2 o ISO 27001, ni código fuente publicado. Crunu está en acceso anticipado; Auditorías y documentación enumera los documentos que sí tenemos.
  • ¿Has encontrado un problema?Escribe a security@crunu.com. El mismo contacto figura en nuestro security.txt, y Limitaciones conocidas enumera cada límite que ya conocemos.
Ejemplo. Kiteline es una empresa ficticia.

Preguntas sobre la seguridad de Crunu

¿Puede Crunu leer mis secretos?

No. El servidor, que opera Crunu en app.crunu.com o tú si lo alojas por tu cuenta, solo guarda datos cifrados y no tiene ninguna clave que pueda descifrarlos. Sí ve metadatos: nombres, direcciones de correo, el registro de auditoría y cuándo se guardó cada versión. Llegar a tus valores exigiría cambiar el código de tu dispositivo, por ejemplo con una página web manipulada, que es el principal riesgo que queda según esta página.

¿Qué pasa si hackean el servidor de Crunu?

Quien entre obtiene datos cifrados, claves públicas, hashes con clave de los tokens y metadatos. No puede descifrar tus valores, añadirse a una lista de acceso ni cambiar una versión sin que tus dispositivos lo noten. Puede dejar de darte servicio o enviar una página web manipulada. Si app.crunu.com sufre una vulneración, avisaremos por correo a los titulares de las cuentas afectadas sin demora indebida.

¿Y si olvido mi contraseña?

Nadie puede restablecerla, tampoco nosotros, porque nunca recibimos tu contraseña ni tu Secret Key. Tu Emergency Kit impreso y un código de recuperación son las vías para volver a entrar. Si pierdes todo eso, nadie puede abrir tu cuenta, aunque los propietarios y administradores siguen pudiendo abrir los entornos compartidos de la organización.

¿Protege Crunu contra las computadoras cuánticas?

En parte. Se espera que AES-256 y SHA-256 resistan. X25519 y Ed25519 caerían ante una computadora cuántica grande, que hoy no existe. Crunu no usa hoy algoritmos poscuánticos, así que una copia de la base de datos guardada durante años podría algún día exponer las versiones que contiene. Pasar a la criptografía poscuántica está en la hoja de ruta de Crunu.

¿Se ha auditado Crunu?

No. Crunu está en acceso anticipado, no tiene certificación SOC 2 ni ISO 27001 y no se ha publicado ninguna auditoría de seguridad externa. Tampoco se ha publicado su código fuente. Lo que puedes comprobar hoy está más arriba, en «Compruébalo por tu cuenta».

¿Es más seguro ejecutar mi propio servidor que usar app.crunu.com?

Cambia en quién confías, no el cifrado. Tu propio servidor deja la base de datos y sus copias de seguridad contigo y envía la página web desde una infraestructura que controlas. A cambio, las copias de seguridad, las actualizaciones y el secreto propio del servidor pasan a ser cosa tuya. El servidor se ofrece a petición: escribe a support@crunu.com.

¿Cómo informo de una vulnerabilidad?

Escribe a security@crunu.com con los pasos para reproducirla y no incluyas secretos reales en el informe. El mismo contacto figura en nuestro archivo security.txt, y la página «Modelo de seguridad» enumera las reglas para hacer pruebas.

Guarda los secretos de tu equipo en un servidor que no puede leerlos

Crea tu cuenta en app.crunu.com. Tus claves se generan en tu navegador y el servidor solo recibe datos cifrados.

Gratis durante el acceso anticipado. Lee el modelo de seguridad