Documento Técnico

SendTime Protocol

Arquitectura de cifrado, fragmentación de claves y entrega programada para la custodia inmutable de activos digitales en el tiempo.

v1.0 — Marzo 2026
00 — Abstract
Custodia digital sin confianza en terceros

SendTime implementa un protocolo de custodia temporal donde tus archivos se cifran antes de almacenarse. La clave de cifrado se divide en múltiples fragmentos y se distribuye entre servidores separados.

Así, ningún servidor por sí solo contiene la clave completa, añadiendo una capa adicional de protección. El contenido permanece inaccesible hasta la fecha de entrega programada, y todo acceso queda auditado.

01 — Visión General
Flujo de datos end-to-end

Desde la creación hasta la entrega, cada dato pasa por 5 etapas críticas. En ningún momento el contenido existe sin cifrar en el servidor.

Usuario
Crea contenido
Cifrado
Fernet AES-128
Fragmentación
Shamir 3-de-5
Custodia
Almacenamiento cifrado
Entrega
Fecha programada
0
Datos sin cifrar en reposo
3/5
Fragmentos mínimos
72h
Expiración de enlace
02 — Pipeline de Cifrado
Cifrado por archivo

Cada cápsula genera una clave de cifrado única. Tus archivos se cifran en memoria antes de almacenarse. La clave completa no se conserva en ningún servidor individual.

📄
Tu contenido
texto | video | audio | foto
Clave única
por cápsula
🔐
Cifrado en memoria
Cifrado simétrico
con verificación de integridad
Solo datos cifrados
🗄️
Almacenamiento seguro
Contenido ilegible
sin la clave
Clave única
Una clave distinta por cada cápsula
Integridad
Cualquier alteración se detecta
En memoria
El cifrado ocurre antes de escribir a disco
Sin clave completa
Ningún servidor la conserva íntegra
03 — Fragmentación de Clave
Distribución entre servidores separados

La clave de cifrado se fragmenta mediante Shamir's Secret Sharing en un esquema 3-de-5. Los fragmentos se distribuyen entre servidores separados con credenciales independientes, de modo que ningún servidor individual conserva la clave completa ni puede reconstruirla por sí solo.

🗄️
Fragmento #1
Servidor A
Activo
📄
Fragmento #2
Custodia del usuario
Activo
💾
Fragmento #3
Servidor B
Activo
🛡️
Fragmento #4
Guardián designado
Externo
🔗
Fragmento #5
Reservado
Futuro
Reconstrucción controlada
Selecciona 3 fragmentos para reconstruir

Haz clic en los fragmentos para simular la reconstrucción. La clave solo puede reconstruirse temporalmente cuando al menos 3 fragmentos válidos son recuperados a través del flujo autorizado de descifrado.

Aislamiento de credenciales
Cada servidor que almacena un fragmento opera con credenciales maestras independientes. Un acceso comprometido no otorga acceso a los demás.
Solo en memoria
La reconstrucción ocurre exclusivamente en memoria y por tiempo limitado. La clave reconstruida nunca se escribe a disco, logs ni colas de mensajes.
04 — Almacenamiento
Custodia segura y auditoría

Los datos cifrados se almacenan aislados por usuario y cápsula. Los fragmentos de clave residen en servidores con credenciales independientes. Todo acceso queda registrado.

Principios de almacenamiento
Cifrado en reposo
Todo el contenido se almacena cifrado. Sin la clave reconstruida, los archivos son ilegibles.
Aislamiento por identidad
Cada cápsula tiene un identificador único. Los datos de un usuario nunca se mezclan con los de otro.
Credenciales separadas
Los servidores que almacenan fragmentos no comparten credenciales maestras. Un acceso comprometido no da acceso a los demás.
Sin acceso directo
Los archivos cifrados nunca se sirven directamente. Cada acceso pasa por verificación de permisos y autenticación.
Auditoría y control
Registro de acceso
Cada solicitud de reconstrucción de clave queda registrada: quién la solicitó, cuándo y desde dónde.
Enlaces temporales y firmados
Los enlaces de descarga expiran en 72 horas y son de un solo uso. Están firmados para evitar manipulación.
Rotación de credenciales
Las credenciales de acceso a los servidores de fragmentos se rotan periódicamente para minimizar ventanas de exposición.
Rate limiting
Los endpoints sensibles tienen límites de solicitudes para prevenir ataques de fuerza bruta o abuso.
05 — Entrega Programada
Mecanismo de entrega temporal

Un worker Celery verifica diariamente las cápsulas pendientes. Cuando llega la fecha, reconstruye la clave, descifra el contenido y genera un enlace temporal seguro.

T + 0
Cápsula sellada
El usuario crea la cápsula. El contenido se cifra, la clave se fragmenta y se distribuye. Status: sealed
T + 1d ... T + Nd
Periodo de custodia
Los datos permanecen cifrados e inaccesibles. Guardianes reciben recordatorios anuales (1 de enero). Nadie puede leer el contenido.
T + delivery_date
Celery worker: check_and_deliver
El worker detecta delivery_date <= today. Reconstruye la clave Fernet con 3 fragmentos via interpolación de Lagrange. Descifra el contenido en memoria.
T + delivery_date + 0s
Generación de enlace temporal
Se genera un token UUID único. El destinatario recibe un email con el enlace. Status: delivering
T + delivery_date + 72h
Expiración del enlace
El enlace temporal expira. Si el destinatario no abrió el mensaje, se reintenta (máximo 3 intentos). Después se notifica a los guardianes.
Estrategia de reintentos
Intento 1
Email → destinatario
Intento 2
Reenvío a 48h
Intento 3
Reenvío final
Fallback
Notificar guardianes
06 — Red de Guardianes
Capa humana de resiliencia

Los guardianes son personas de confianza designadas por el usuario. No tienen acceso al contenido, pero aseguran que la entrega se complete incluso si las circunstancias del destinatario cambian.

🔐
👤
🛡️
🛡️
Responsabilidades del guardián
Recordatorio anual
Confirmar datos del destinatario
Actualizar contacto
Si el destinatario cambia de email
Facilitar entrega
Si el email original falla
Custodiar fragmento #4
Enviado por email al ser designado
Importante: Los guardianes nunca ven el contenido de la cápsula. Solo tienen un fragmento de la clave y la capacidad de actualizar información de contacto.
07 — Llave de Emergencia
PDF con fragmento Shamir del usuario

Al sellar la cápsula, el usuario puede descargar un PDF con su fragmento de clave (#2). Este documento es la única copia del fragmento — no se almacena en el servidor después de la descarga.

SendTime
Llave de Emergencia
eyJ4IjogMiwgInkiOiAi NTg3MjM0MTk4NzY1NDMyMT AwOTg3NjU0MzIxMDk4NzY 1NDMyMTA5ODc2NTQzMjEw...
Ciclo de vida del fragmento #2
1
Generación
Se genera al fragmentar la clave Fernet con Shamir. El fragmento f(2) se almacena temporalmente en la sesión Flask.
2
Descarga
El usuario descarga el PDF con el fragmento. El PDF se genera en tiempo real con fpdf2 e incluye branding corporativo, datos de la cápsula y el fragmento codificado en base64.
3
Destrucción en servidor
Inmediatamente después de la descarga, el fragmento se elimina de la sesión. No existe copia en el servidor.
4
Uso en emergencia
El usuario contacta soporte con el PDF. El fragmento se combina con otros 2 disponibles para reconstruir la clave y descifrar el contenido.
08 — Especificaciones
Especificaciones técnicas
Seguridad criptográfica
Parámetro Especificación Detalle
Cifrado de contenido Cifrado simétrico autenticado Protección de la confidencialidad e integridad de la información
Material criptográfico Claves de 32 bytes Generadas mediante una fuente criptográficamente segura
Fragmentación de secretos Secret Sharing Scheme Esquema 3 de 5 para recuperación controlada
Protección de credenciales Hash seguro de contraseñas Almacenamiento no reversible de credenciales
Límites operativos
Parámetro Especificación Detalle
Tamaño máximo de carga 500 MB Soporte para archivos multimedia y contenido adjunto
Duración máxima de video 3 minutos Compatible con formatos estándar para entorno web
Duración máxima de audio 5 minutos Compatible con formatos de audio para navegador
Longitud máxima de texto 10.000 caracteres Límite máximo por contenido textual
Vigencia de enlace 72 horas Enlace único con expiración automática
Política de reintentos 3 intentos Posteriormente se activa una notificación de respaldo
Controles de aplicación
Parámetro Especificación Detalle
Mejora de contenido Procesamiento inteligente de texto Optimización opcional de redacción, claridad y consistencia
Protección de formularios Protección CSRF Aplicada en todos los formularios del sistema
Control de uso Rate limiting Restricción de consumo en endpoints sensibles

Protege lo que importa

Crea tu primera cápsula del tiempo digital con cifrado de grado militar y entrega programada garantizada.

Crear mi envío