Saltar al contenido
Volver a proyectos

Caso de estudio · API de transferencia de archivos

Secure Transfer

Una API Express que crea un paquete cifrado para transferir archivos y lo guarda mediante Supabase Storage.

Demo no disponible · base de datos eliminada

Recorrido del archivo
CLIENTE
Archivo + clave pública
SERVIDOR · EXPRESS
Cifrar · hash · firmar · empaquetar
Supabase Storage
CLIENTE → API → ALMACENAMIENTOEsquema explicativo

Tecnologías

  • Node.js
  • TypeScript
  • Express
  • Supabase

SECURE_TRANSFER

Problema y alcance

El repositorio implementa un flujo de backend para recibir un archivo, construir un paquete con material criptográfico y guardarlo en almacenamiento. El recorrido representado aquí refleja las operaciones presentes en el código de carga.

Arquitectura y recorrido

El cliente entrega el archivo y la clave pública del destinatario a la API. En el servidor se calcula un hash SHA-256, se genera una clave AES-256-GCM para el archivo, se envuelve la clave de sesión con RSA-OAEP y se firma el hash con RSA-PSS antes de preparar el ZIP y subirlo a Supabase.

Estas son operaciones descritas por el código; no equivalen a una auditoría independiente del diseño de seguridad.

Decisiones técnicas

El contenido usa cifrado autenticado AES-GCM; la clave de sesión se cifra para el receptor y el paquete guarda hash y firma junto con los metadatos. El manejo de claves queda del lado servidor durante la creación del paquete.

Validación documentada

Hay utilidades y pruebas manuales locales para las primitivas criptográficas, además de una demo de flujo en el repositorio. No se ejecutaron aquí; la demo pública no está disponible.

Límites conocidos

La función de extracción completa del ZIP declara que aún no está implementada y lanza un error. La base de datos fue eliminada, no hay demo disponible y no se confirma una revisión de seguridad. La autoría individual tampoco está confirmada.