Share.Ninja

Seguridad

La versión corta: tus archivos se cifran en tu dispositivo antes de que nada salga de él, las claves nunca nos llegan, y guardamos lo que no podemos leer. Sigue la versión larga.

Qué se cifra

Cada archivo, cada nombre de archivo, cada listado de carpeta y el nombre del compartido. Todo se cifra en tu dispositivo con una clave que se crea allí y se queda allí. Nuestros servidores, el almacenamiento detrás de ellos y la red que hay en medio solo manejan texto cifrado.

Las primitivas, para que no tengas que adivinar: AES-256-GCM para contenido y metadatos, X25519 con HKDF-SHA256 para envolver claves para un dispositivo o una cuenta, claves aleatorias de 256 bits por compartido.

Cómo lleva un enlace su clave

Un enlace de compartido tiene esta forma: share.ninja/#…. Todo lo que va después del # es un token que los navegadores nunca envían a un servidor; se queda en la barra de direcciones. El servidor guarda solo un hash de ese token, más la clave del compartido envuelta bajo una clave derivada de él. Quien abre el enlace deriva la clave de envoltura localmente, desenvuelve la clave del compartido y descifra. Quien no tiene el enlace no tiene nada, y eso nos incluye a nosotros.

Deja de compartir y el servidor rechaza el enlace en todas partes a la vez. La caducidad funciona igual.

Enlaces directos

En la web y en el escritorio un enlace puede ser directo. Entonces no se sube nada: los archivos se quedan en el equipo del remitente y se transmiten al destinatario en directo, por WebRTC. La transferencia se cifra dos veces: con el cifrado de transporte del propio WebRTC y con nuestra propia capa AES-256-GCM, cuya clave deriva de la clave del compartido. Si no existe una ruta de red directa, un relé reenvía los paquetes; el relé ve texto cifrado y nada más. Cierra el remitente y no queda nada que descargar.

Cercanos

Los dispositivos se encuentran de tres maneras: en la misma red local, por Bluetooth (solo apps), y a través de nuestro servidor, que agrupa los dispositivos que están detrás de la misma conexión a internet. Lo que anuncia un dispositivo es su nombre, una clave pública y una huella de ocho caracteres de esa clave, y solo mientras está visible. El interruptor está en la pestaña Cercanos.

Enviar cerca envuelve la clave del compartido para la clave pública del dispositivo receptor. El servidor pasa esa oferta sellada, pero no puede abrirla. El receptor ve el nombre y la huella del remitente y acepta o rechaza; la huella mostrada en ambas pantallas te permite comprobar que nadie está en medio. Tus propios dispositivos con sesión iniciada aceptan automáticamente. Los archivos viajan entonces directamente, o a través de un relé que solo ve texto cifrado.

Tu cuenta y tus dispositivos

Iniciar sesión crea una clave de identidad en tu primer dispositivo. Nunca sale de tus dispositivos en claro: cada dispositivo guarda una copia envuelta bajo su propia clave de dispositivo, y el servidor solo guarda esas copias envueltas y las mitades públicas.

Un dispositivo nuevo pide unirse. Un dispositivo en el que ya confías muestra la solicitud con el nombre y la huella del recién llegado, y si apruebas, envuelve la clave de identidad para él. No podemos añadir un dispositivo a tu cuenta, y no podemos leer tus compartidos para hacerlo por ti.

Si pierdes todos los dispositivos, la frase de recuperación de 24 palabras de Ajustes desenvuelve la clave de identidad en uno nuevo. Recuperar revoca todos los dispositivos anteriores. Si no tienes ni frase de recuperación ni dispositivo, los compartidos se han perdido; no tenemos ninguna copia que pueda recuperarlos. No es una política, es aritmética.

Qué pueden ver nuestros servidores

Aquí la honestidad importa más que una lista más corta.

  • De cada compartido: su identificador, cuándo se creó y cuándo caduca, el tamaño total de sus datos cifrados, si vive en la nube o es un enlace directo, y a quién pertenece si el propietario tiene sesión iniciada.
  • De cada descarga: que ocurrió, cuándo y desde qué dirección IP. Sobre esto funcionan los límites de frecuencia y la gestión de abusos.
  • De cada cuenta con sesión iniciada: dirección de correo, nombre visible, los nombres y claves públicas de sus dispositivos, el almacenamiento usado.
  • De cada dispositivo, con sesión o sin ella: un identificador de dispositivo, su clave pública, el nombre que anuncia a los dispositivos cercanos.
  • Registros de servidor con direcciones IP y rutas de las peticiones.

Los registros de servidor se conservan 30 días. Los registros de descarga y el registro de actividad de tu cuenta conservan la dirección IP 90 días; después solo queda el evento.

Lo que nuestros servidores no pueden ver: ningún archivo, ningún nombre de archivo, ningún listado de carpeta, ningún nombre de compartido, ninguna clave.

Con la sesión iniciada puedes ver este registro tú mismo: el registro de actividad en los ajustes de tu cuenta muestra cada acción en tu cuenta, con hora, dirección IP y dispositivo.

Almacenamiento e infraestructura

Nuestros servidores funcionan en Hetzner en la UE. Los datos cifrados viven allí en nuestros propios servidores de almacenamiento y en Wasabi S3, en varias regiones. El almacenamiento recibe y devuelve texto cifrado mediante URL firmadas de corta duración; nunca tiene una clave.

Abuso

La página de cada enlace tiene una acción Denunciar abuso que no necesita cuenta. Como no podemos abrir un compartido por nuestra cuenta, quien denuncia decide si incluye la clave del enlace en la denuncia; solo entonces podemos ver lo que se ha denunciado. Una denuncia confirmada desactiva el enlace en todas partes, y podemos bloquear el dispositivo que lo creó. El correo de contacto de quien denuncia se borra una vez gestionada la denuncia.

La web

Sin scripts de rastreo, sin cookies de analítica, nada se envía a terceros. Las visitas se cuentan a partir de nuestros propios registros de servidor. Las apps no llevan analítica en absoluto.

Informar de una vulnerabilidad

Escribe a support@share.ninja y pon «security» en el asunto. Respondemos a todos los informes.