Arquitectura

Qué máquinas componen LOOKLOCK y qué hace cada una. Tres piezas: una central que actúa de directorio, uno o varios nodos que guardan buzones cifrados, y los dispositivos de los usuarios, únicos que ven el texto en claro.

Servidor central

El directorio de la red

Es un VPS Windows Server con IIS, PHP 8.4 y MySQL 8.0. Aloja el sitio web looklock.chat y la API de la app, y hace de DIRECTORIO: gestiona las cuentas, las claves públicas, qué nodo aloja a cada usuario y los tokens públicos de depósito. Las conversaciones NO pasan por la central: van directas al nodo del destinatario. La central solo actúa de respaldo temporal si tu nodo no está disponible, y aun así nunca ve el texto en claro (solo sobres cerrados que no puede abrir).

Servidores nodo

Buzones cifrados (trae tu propio nodo)

Uno o varios VPS Linux con Python 3 ejecutando llnode.py: un fichero único, sin dependencias externas, con su propio SQLite. Su rol es ser BUZONES: guardan mensajes y ficheros CIFRADOS separados por usuario. Cualquiera puede montar uno, de ahí el lema "trae tu propio nodo". El operador nunca puede leer lo que almacena.

Dispositivos de usuario

Donde vive el secreto

La app Android (Flutter) es la única pieza que guarda la clave privada (SK) y el texto en claro. Cifra y descifra EN LOCAL, dentro del propio teléfono. Este es el modelo zero-knowledge: los servidores nunca ven el contenido, solo blobs sellados que no pueden abrir.

Resumen de máquinas

Máquina SO / Software Rol
Central Windows Server, IIS, PHP 8.4, MySQL 8.0 Web, API y directorio (cuentas, claves públicas, tokens de depósito)
Nodo Linux, Python 3, llnode.py, SQLite Buzón: guarda mensajes y ficheros cifrados por usuario
Dispositivo Android (Flutter) Guarda la clave privada; cifra y descifra en local

Diagrama del flujo

CENTRAL · Directorio Windows · IIS · MySQL quién está en qué nodo · claves públicas consulta el directorio: en qué nodo está B y su clave pública Dispositivo A app · clave privada CIFRA en local NODO · Buzón Linux · Python · SQLite guarda sobres cifrados Dispositivo B app · clave privada DESCIFRA en local 1 · deposita 2 · recoge Solo A y B pueden abrir el sobre. La central y el nodo solo ven cifrado (zero-knowledge).

El dispositivo A cifra el mensaje, consulta a la central (directorio) qué nodo aloja al destinatario y deposita el sobre cifrado en ese nodo. El dispositivo B lo recoge de su buzón y lo descifra en local. Las conversaciones no pasan por la central; solo hace de directorio (y de respaldo si el nodo no responde).

Como funcionan los mensajes Transparencia